"use strict";goog.provide("Blockly.Msg.zh.hans");goog.require("Blockly.Msg");Blockly.Msg.ADD_COMMENT="添加注释";Blockly.Msg.CANNOT_DELETE_VARIABLE_PROCEDURE="不能删除变量“%1”,因为它是功能“%2”定义的一部分";Blockly.Msg.CHANGE_VALUE_TITLE="更改值:";Blockly.Msg.CLEAN_UP="整理块";Blockly.Msg.COLLAPSE_ALL="折叠块";Blockly.Msg.COLLAPSE_BLOCK="折叠块";Blockly.Msg.COLOUR_BLEND_COLOUR1="颜色1";Blockly.Msg.COLOUR_BLEND_COLOUR2="颜色2";Blockly.Msg.COLOUR_BLEND_HELPURL="http://meyerweb.com/eric/tools/color-blend/";Blockly.Msg.COLOUR_BLEND_RATIO="比例";Blockly.Msg.COLOUR_BLEND_TITLE="混合";Blockly.Msg.COLOUR_BLEND_TOOLTIP="用一个给定的比率(0.0-1.0)混合两种颜色。";Blockly.Msg.COLOUR_PICKER_HELPURL="https://zh.wikipedia.org/wiki/颜色";Blockly.Msg.COLOUR_PICKER_TOOLTIP="从调色板中选择一种颜色。";Blockly.Msg.COLOUR_RANDOM_HELPURL="http://randomcolour.com";Blockly.Msg.COLOUR_RANDOM_TITLE="随机颜色";Blockly.Msg.COLOUR_RANDOM_TOOLTIP="随机选择一种颜色。";Blockly.Msg.COLOUR_RGB_BLUE="蓝色";Blockly.Msg.COLOUR_RGB_GREEN="绿色";Blockly.Msg.COLOUR_RGB_HELPURL="http://www.december.com/html/spec/colorper.html";Blockly.Msg.COLOUR_RGB_RED="红色";Blockly.Msg.COLOUR_RGB_TITLE="颜色";Blockly.Msg.COLOUR_RGB_TOOLTIP="通过指定红色、绿色和蓝色的量创建一种颜色。所有的值必须在0和100之间。";Blockly.Msg.CONTROLS_FLOW_STATEMENTS_HELPURL="https://github.com/google/blockly/wiki/Loops#loop-termination-blocks";Blockly.Msg.CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK="中断循环";Blockly.Msg.CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE="继续下一次循环";Blockly.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK="中断包含它的循环。";Blockly.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE="跳过这个循环的剩余部分,并继续下一次迭代。";Blockly.Msg.CONTROLS_FLOW_STATEMENTS_WARNING="警告:此块仅可用于在一个循环内。";Blockly.Msg.CONTROLS_FOREACH_HELPURL="https://github.com/google/blockly/wiki/Loops#for-each";Blockly.Msg.CONTROLS_FOREACH_TITLE="为每个项目 %1 在列表中 %2";Blockly.Msg.CONTROLS_FOREACH_TOOLTIP="遍历每个列表中的项目,将变量“%1”设定到该项中,然后执行某些语句。";Blockly.Msg.CONTROLS_FOR_HELPURL="https://github.com/google/blockly/wiki/Loops#count-with";Blockly.Msg.CONTROLS_FOR_TITLE="使用 %1 从范围 %2 到 %3 每隔 %4";Blockly.Msg.CONTROLS_FOR_TOOLTIP="从起始数到结尾数中取出变量“%1”的值,按指定的时间间隔,执行指定的块。"; Blockly.Msg.CONTROLS_IF_ELSEIF_TOOLTIP="在if语句块中增加一个条件。";Blockly.Msg.CONTROLS_IF_ELSE_TOOLTIP="添加一个最终的,包括所有情况的节到if块中。";Blockly.Msg.CONTROLS_IF_HELPURL="https://github.com/google/blockly/wiki/IfElse";Blockly.Msg.CONTROLS_IF_IF_TOOLTIP="增加、删除或重新排列各节来重新配置“if”块。";Blockly.Msg.CONTROLS_IF_MSG_ELSE="否则";Blockly.Msg.CONTROLS_IF_MSG_ELSEIF="否则如果";Blockly.Msg.CONTROLS_IF_MSG_IF="如果";Blockly.Msg.CONTROLS_IF_TOOLTIP_1="如果值为真,执行一些语句。";Blockly.Msg.CONTROLS_IF_TOOLTIP_2="如果值为真,则执行第一块语句。否则,则执行第二块语句。";Blockly.Msg.CONTROLS_IF_TOOLTIP_3="如果第一个值为真,则执行第一块的语句。否则,如果第二个值为真,则执行第二块的语句。";Blockly.Msg.CONTROLS_IF_TOOLTIP_4="如果第一个值为真,则执行第一块对语句。否则,如果第二个值为真,则执行语句的第二块。如果没有值为真,则执行最后一块的语句。";Blockly.Msg.CONTROLS_REPEAT_HELPURL="https://zh.wikipedia.org/wiki/For循环";Blockly.Msg.CONTROLS_REPEAT_INPUT_DO="执行";Blockly.Msg.CONTROLS_REPEAT_TITLE="重复 %1 次";Blockly.Msg.CONTROLS_REPEAT_TOOLTIP="多次执行一些语句。";Blockly.Msg.CONTROLS_WHILEUNTIL_HELPURL="https://github.com/google/blockly/wiki/Loops#repeat";Blockly.Msg.CONTROLS_WHILEUNTIL_OPERATOR_UNTIL="重复直到";Blockly.Msg.CONTROLS_WHILEUNTIL_OPERATOR_WHILE="重复当";Blockly.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL="只要值为假,执行一些语句。";Blockly.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE="只要值为真,执行一些语句。";Blockly.Msg.DELETE_ALL_BLOCKS="删除所有%1块吗?";Blockly.Msg.DELETE_BLOCK="删除块";Blockly.Msg.DELETE_VARIABLE="删除“%1”变量";Blockly.Msg.DELETE_VARIABLE_CONFIRMATION="删除“%2”变量的%1用途么?";Blockly.Msg.DELETE_X_BLOCKS="删除 %1 块";Blockly.Msg.DISABLE_BLOCK="禁用块";Blockly.Msg.DUPLICATE_BLOCK="复制";Blockly.Msg.ENABLE_BLOCK="启用块";Blockly.Msg.EXPAND_ALL="展开块";Blockly.Msg.EXPAND_BLOCK="展开块";Blockly.Msg.EXTERNAL_INPUTS="外部输入";Blockly.Msg.HELP="帮助";Blockly.Msg.INLINE_INPUTS="单行输入";Blockly.Msg.IOS_CANCEL="取消";Blockly.Msg.IOS_ERROR="错误";Blockly.Msg.IOS_OK="确定";Blockly.Msg.IOS_PROCEDURES_ADD_INPUT="+添加输入";Blockly.Msg.IOS_PROCEDURES_ALLOW_STATEMENTS="允许声明";Blockly.Msg.IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR="此功能有重复输入内容。";Blockly.Msg.IOS_PROCEDURES_INPUTS="输入";Blockly.Msg.IOS_VARIABLES_ADD_BUTTON="添加";Blockly.Msg.IOS_VARIABLES_ADD_VARIABLE="+添加变量"; Blockly.Msg.IOS_VARIABLES_DELETE_BUTTON="删除";Blockly.Msg.IOS_VARIABLES_EMPTY_NAME_ERROR="您不能使用空变量名称。";Blockly.Msg.IOS_VARIABLES_RENAME_BUTTON="重命名";Blockly.Msg.IOS_VARIABLES_VARIABLE_NAME="变量名称";Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL="https://github.com/google/blockly/wiki/Lists#create-empty-list";Blockly.Msg.LISTS_CREATE_EMPTY_TITLE="创建空列表";Blockly.Msg.LISTS_CREATE_EMPTY_TOOLTIP="返回一个列表,长度为 0,不包含任何数据记录";Blockly.Msg.LISTS_CREATE_WITH_CONTAINER_TITLE_ADD="列表";Blockly.Msg.LISTS_CREATE_WITH_CONTAINER_TOOLTIP="增加、删除或重新排列各部分以此重新配置这个列表块。";Blockly.Msg.LISTS_CREATE_WITH_HELPURL="https://github.com/google/blockly/wiki/Lists#create-list-with";Blockly.Msg.LISTS_CREATE_WITH_INPUT_WITH="建立列表使用";Blockly.Msg.LISTS_CREATE_WITH_ITEM_TOOLTIP="将一个项添加到列表中。";Blockly.Msg.LISTS_CREATE_WITH_TOOLTIP="建立一个具有任意数量项目的列表。";Blockly.Msg.LISTS_GET_INDEX_FIRST="第一";Blockly.Msg.LISTS_GET_INDEX_FROM_END="倒数第#";Blockly.Msg.LISTS_GET_INDEX_FROM_START="#";Blockly.Msg.LISTS_GET_INDEX_GET="取得";Blockly.Msg.LISTS_GET_INDEX_GET_REMOVE="取出并移除";Blockly.Msg.LISTS_GET_INDEX_LAST="最后";Blockly.Msg.LISTS_GET_INDEX_RANDOM="随机";Blockly.Msg.LISTS_GET_INDEX_REMOVE="移除";Blockly.Msg.LISTS_GET_INDEX_TAIL="空白";Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FIRST="返回列表中的第一个项目。";Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM="返回在列表中的指定位置的项。";Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_LAST="返回列表中的最后一项。";Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM="随机返回列表中的一个项目。";Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST="移除并返回列表中的第一个项目。";Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM="移除并返回列表中的指定位置的项。";Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST="移除并返回列表中的最后一个项目。";Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM="移除并返回列表中的一个随机项目中。";Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST="移除列表中的第一项";Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM="移除在列表中的指定位置的项。";Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST="移除列表中的最后一项";Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM="删除列表中的一个随机的项。";Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_END="到倒数第#"; Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_START="到#";Blockly.Msg.LISTS_GET_SUBLIST_END_LAST="到最后";Blockly.Msg.LISTS_GET_SUBLIST_HELPURL="https://github.com/google/blockly/wiki/Lists#getting-a-sublist";Blockly.Msg.LISTS_GET_SUBLIST_START_FIRST="从头获得子列表";Blockly.Msg.LISTS_GET_SUBLIST_START_FROM_END="从倒数#取得子列表";Blockly.Msg.LISTS_GET_SUBLIST_START_FROM_START="从#取得子列表";Blockly.Msg.LISTS_GET_SUBLIST_TAIL="空白";Blockly.Msg.LISTS_GET_SUBLIST_TOOLTIP="复制列表中指定的部分。";Blockly.Msg.LISTS_INDEX_FROM_END_TOOLTIP="%1是最后一项。";Blockly.Msg.LISTS_INDEX_FROM_START_TOOLTIP="%1是第一个项目。";Blockly.Msg.LISTS_INDEX_OF_FIRST="找出第一个项出现";Blockly.Msg.LISTS_INDEX_OF_HELPURL="https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list";Blockly.Msg.LISTS_INDEX_OF_LAST="找出最后一个项出现";Blockly.Msg.LISTS_INDEX_OF_TOOLTIP="返回在列表中的第一/最后一个匹配项的索引值。如果找不到项目则返回%1。";Blockly.Msg.LISTS_INLIST="在列表中";Blockly.Msg.LISTS_ISEMPTY_HELPURL="https://github.com/google/blockly/wiki/Lists#is-empty";Blockly.Msg.LISTS_ISEMPTY_TITLE="%1是空的";Blockly.Msg.LISTS_ISEMPTY_TOOLTIP="如果改列表为空,则返回真。";Blockly.Msg.LISTS_LENGTH_HELPURL="https://github.com/google/blockly/wiki/Lists#length-of";Blockly.Msg.LISTS_LENGTH_TITLE="%1的长度";Blockly.Msg.LISTS_LENGTH_TOOLTIP="返回列表的长度。";Blockly.Msg.LISTS_REPEAT_HELPURL="https://github.com/google/blockly/wiki/Lists#create-list-with";Blockly.Msg.LISTS_REPEAT_TITLE="建立列表使用项 %1 重复 %2 次";Blockly.Msg.LISTS_REPEAT_TOOLTIP="建立包含指定重复次数的值的列表。";Blockly.Msg.LISTS_REVERSE_HELPURL="https://github.com/google/blockly/wiki/Lists#reversing-a-list";Blockly.Msg.LISTS_REVERSE_MESSAGE0="倒转%1";Blockly.Msg.LISTS_REVERSE_TOOLTIP="倒转一个列表的拷贝。";Blockly.Msg.LISTS_SET_INDEX_HELPURL="https://github.com/google/blockly/wiki/Lists#in-list--set";Blockly.Msg.LISTS_SET_INDEX_INPUT_TO="为";Blockly.Msg.LISTS_SET_INDEX_INSERT="插入在";Blockly.Msg.LISTS_SET_INDEX_SET="设置";Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST="在列表的起始处添加该项。";Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_FROM="插入在列表中指定位置的项。";Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_LAST="将该项追加到列表的末尾。"; Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM="在列表中随机插入项。";Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_FIRST="设置列表中的第一个项目。";Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_FROM="设置在列表中指定位置的项。";Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_LAST="设置列表中的最后一项。";Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_RANDOM="设置列表中一个随机的项目。";Blockly.Msg.LISTS_SORT_HELPURL="https://github.com/google/blockly/wiki/Lists#sorting-a-list";Blockly.Msg.LISTS_SORT_ORDER_ASCENDING="升序";Blockly.Msg.LISTS_SORT_ORDER_DESCENDING="降序";Blockly.Msg.LISTS_SORT_TITLE="排序%1 %2 %3";Blockly.Msg.LISTS_SORT_TOOLTIP="排序一个列表的拷贝。";Blockly.Msg.LISTS_SORT_TYPE_IGNORECASE="按字母排序,忽略大小写";Blockly.Msg.LISTS_SORT_TYPE_NUMERIC="按数字排序";Blockly.Msg.LISTS_SORT_TYPE_TEXT="按字母排序";Blockly.Msg.LISTS_SPLIT_HELPURL="https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists";Blockly.Msg.LISTS_SPLIT_LIST_FROM_TEXT="从文本制作列表";Blockly.Msg.LISTS_SPLIT_TEXT_FROM_LIST="从列表拆出文本";Blockly.Msg.LISTS_SPLIT_TOOLTIP_JOIN="加入文本列表至一个文本,由分隔符分隔。";Blockly.Msg.LISTS_SPLIT_TOOLTIP_SPLIT="拆分文本到文本列表,按每个分隔符拆分。";Blockly.Msg.LISTS_SPLIT_WITH_DELIMITER="用分隔符";Blockly.Msg.LOGIC_BOOLEAN_FALSE="假";Blockly.Msg.LOGIC_BOOLEAN_HELPURL="https://github.com/google/blockly/wiki/Logic#values";Blockly.Msg.LOGIC_BOOLEAN_TOOLTIP="返回真或假。";Blockly.Msg.LOGIC_BOOLEAN_TRUE="真";Blockly.Msg.LOGIC_COMPARE_HELPURL="https://zh.wikipedia.org/wiki/不等";Blockly.Msg.LOGIC_COMPARE_TOOLTIP_EQ="如果两个输入结果相等,则返回真。";Blockly.Msg.LOGIC_COMPARE_TOOLTIP_GT="如果第一个输入结果比第二个大,则返回真。";Blockly.Msg.LOGIC_COMPARE_TOOLTIP_GTE="如果第一个输入结果大于或等于第二个输入结果,则返回真。";Blockly.Msg.LOGIC_COMPARE_TOOLTIP_LT="如果第一个输入结果比第二个小,则返回真。";Blockly.Msg.LOGIC_COMPARE_TOOLTIP_LTE="如果第一个输入结果小于或等于第二个输入结果,则返回真。";Blockly.Msg.LOGIC_COMPARE_TOOLTIP_NEQ="如果两个输入结果不相等,则返回真。";Blockly.Msg.LOGIC_NEGATE_HELPURL="https://github.com/google/blockly/wiki/Logic#not";Blockly.Msg.LOGIC_NEGATE_TITLE="非%1";Blockly.Msg.LOGIC_NEGATE_TOOLTIP="如果输入结果为假,则返回真;如果输入结果为真,则返回假。";Blockly.Msg.LOGIC_NULL="空";Blockly.Msg.LOGIC_NULL_HELPURL="https://en.wikipedia.org/wiki/Nullable_type"; Blockly.Msg.LOGIC_NULL_TOOLTIP="返回空值。";Blockly.Msg.LOGIC_OPERATION_AND="和";Blockly.Msg.LOGIC_OPERATION_HELPURL="https://github.com/google/blockly/wiki/Logic#logical-operations";Blockly.Msg.LOGIC_OPERATION_OR="或";Blockly.Msg.LOGIC_OPERATION_TOOLTIP_AND="如果两个输入结果都为真,则返回真。";Blockly.Msg.LOGIC_OPERATION_TOOLTIP_OR="如果至少有一个输入结果为真,则返回真。";Blockly.Msg.LOGIC_TERNARY_CONDITION="测试";Blockly.Msg.LOGIC_TERNARY_HELPURL="https://zh.wikipedia.org/wiki/条件运算符";Blockly.Msg.LOGIC_TERNARY_IF_FALSE="如果为假";Blockly.Msg.LOGIC_TERNARY_IF_TRUE="如果为真";Blockly.Msg.LOGIC_TERNARY_TOOLTIP="检查“test”中的条件。如果条件为真,则返回“if true”的值,否则,则返回“if false”的值。";Blockly.Msg.MATH_ADDITION_SYMBOL="+";Blockly.Msg.MATH_ARITHMETIC_HELPURL="https://zh.wikipedia.org/wiki/算术";Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_ADD="返回两个数字的和。";Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE="返回两个数字的商。";Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS="返回两个数字的区别。";Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY="返回两个数字的乘积。";Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_POWER="返回第一个数的第二个数次幂。";Blockly.Msg.MATH_CHANGE_HELPURL="https://zh.wikipedia.org/wiki/加法";Blockly.Msg.MATH_CHANGE_TITLE="更改 %1 从 %2";Blockly.Msg.MATH_CHANGE_TOOLTIP="将一个数添加到变量“%1”。";Blockly.Msg.MATH_CONSTANT_HELPURL="https://zh.wikipedia.org/wiki/数学常数";Blockly.Msg.MATH_CONSTANT_TOOLTIP="返回一个常见常量:π (3.141…)、e (2.718…)、φ (1.618…)、平方根 (1.414…)、开平方根 (0.707…)或∞ (infinity)。";Blockly.Msg.MATH_CONSTRAIN_HELPURL="https://en.wikipedia.org/wiki/Clamping_(graphics)";Blockly.Msg.MATH_CONSTRAIN_TITLE="限制数字 %1 介于 (低) %2 到 (高) %3";Blockly.Msg.MATH_CONSTRAIN_TOOLTIP="限制数字介于两个指定的数字之间";Blockly.Msg.MATH_DIVISION_SYMBOL="÷";Blockly.Msg.MATH_IS_DIVISIBLE_BY="可被整除";Blockly.Msg.MATH_IS_EVEN="是偶数";Blockly.Msg.MATH_IS_NEGATIVE="为负";Blockly.Msg.MATH_IS_ODD="是奇数";Blockly.Msg.MATH_IS_POSITIVE="为正";Blockly.Msg.MATH_IS_PRIME="是质数";Blockly.Msg.MATH_IS_TOOLTIP="如果数字是偶数、奇数、非负整数、正数、负数或如果它可被某数字整除,则返回真或假。";Blockly.Msg.MATH_IS_WHOLE="为整数";Blockly.Msg.MATH_MODULO_HELPURL="https://zh.wikipedia.org/wiki/模除";Blockly.Msg.MATH_MODULO_TITLE="取余数自 %1 ÷ %2"; Blockly.Msg.MATH_MODULO_TOOLTIP="返回这两个数字相除后的余数。";Blockly.Msg.MATH_MULTIPLICATION_SYMBOL="×";Blockly.Msg.MATH_NUMBER_HELPURL="https://zh.wikipedia.org/wiki/数";Blockly.Msg.MATH_NUMBER_TOOLTIP="一个数字。";Blockly.Msg.MATH_ONLIST_HELPURL="";Blockly.Msg.MATH_ONLIST_OPERATOR_AVERAGE="列表中的平均数";Blockly.Msg.MATH_ONLIST_OPERATOR_MAX="列表中的最大值";Blockly.Msg.MATH_ONLIST_OPERATOR_MEDIAN="列表中位数";Blockly.Msg.MATH_ONLIST_OPERATOR_MIN="列表中的最小值";Blockly.Msg.MATH_ONLIST_OPERATOR_MODE="列表模式";Blockly.Msg.MATH_ONLIST_OPERATOR_RANDOM="列表的随机项";Blockly.Msg.MATH_ONLIST_OPERATOR_STD_DEV="列表中的标准差";Blockly.Msg.MATH_ONLIST_OPERATOR_SUM="列表中的数的总和";Blockly.Msg.MATH_ONLIST_TOOLTIP_AVERAGE="返回列表中的数值的平均值。";Blockly.Msg.MATH_ONLIST_TOOLTIP_MAX="返回列表中最大数。";Blockly.Msg.MATH_ONLIST_TOOLTIP_MEDIAN="返回列表中的中位数。";Blockly.Msg.MATH_ONLIST_TOOLTIP_MIN="返回列表中最小数。";Blockly.Msg.MATH_ONLIST_TOOLTIP_MODE="返回列表中的最常见的项的列表。";Blockly.Msg.MATH_ONLIST_TOOLTIP_RANDOM="从列表中返回一个随机的元素。";Blockly.Msg.MATH_ONLIST_TOOLTIP_STD_DEV="返回列表的标准偏差。";Blockly.Msg.MATH_ONLIST_TOOLTIP_SUM="返回列表中的所有数字的和。";Blockly.Msg.MATH_POWER_SYMBOL="^";Blockly.Msg.MATH_RANDOM_FLOAT_HELPURL="https://zh.wikipedia.org/wiki/随机数生成器";Blockly.Msg.MATH_RANDOM_FLOAT_TITLE_RANDOM="随机分数";Blockly.Msg.MATH_RANDOM_FLOAT_TOOLTIP="返回介于(包含)0.0到1.0之间的随机数。";Blockly.Msg.MATH_RANDOM_INT_HELPURL="https://zh.wikipedia.org/wiki/随机数生成器";Blockly.Msg.MATH_RANDOM_INT_TITLE="从 %1 到 %2 之间的随机整数";Blockly.Msg.MATH_RANDOM_INT_TOOLTIP="返回两个指定的范围(含)之间的随机整数。";Blockly.Msg.MATH_ROUND_HELPURL="https://zh.wikipedia.org/wiki/数值修约";Blockly.Msg.MATH_ROUND_OPERATOR_ROUND="向下舍入";Blockly.Msg.MATH_ROUND_OPERATOR_ROUNDDOWN="向下舍入";Blockly.Msg.MATH_ROUND_OPERATOR_ROUNDUP="向上舍入";Blockly.Msg.MATH_ROUND_TOOLTIP="数字向上或向下舍入。";Blockly.Msg.MATH_SINGLE_HELPURL="https://zh.wikipedia.org/wiki/平方根";Blockly.Msg.MATH_SINGLE_OP_ABSOLUTE="绝对";Blockly.Msg.MATH_SINGLE_OP_ROOT="平方根";Blockly.Msg.MATH_SINGLE_TOOLTIP_ABS="返回一个数的绝对值。";Blockly.Msg.MATH_SINGLE_TOOLTIP_EXP="返回一个数的e次幂。";Blockly.Msg.MATH_SINGLE_TOOLTIP_LN="返回一个数的自然对数。";Blockly.Msg.MATH_SINGLE_TOOLTIP_LOG10="返回一个数的对数。"; Blockly.Msg.MATH_SINGLE_TOOLTIP_NEG="返回一个数的逻辑非。";Blockly.Msg.MATH_SINGLE_TOOLTIP_POW10="返回一个数的10次幂。";Blockly.Msg.MATH_SINGLE_TOOLTIP_ROOT="返回一个数的平方根。";Blockly.Msg.MATH_SUBTRACTION_SYMBOL="-";Blockly.Msg.MATH_TRIG_ACOS="acos";Blockly.Msg.MATH_TRIG_ASIN="asin";Blockly.Msg.MATH_TRIG_ATAN="atan";Blockly.Msg.MATH_TRIG_COS="cos";Blockly.Msg.MATH_TRIG_HELPURL="https://zh.wikipedia.org/wiki/三角函数";Blockly.Msg.MATH_TRIG_SIN="sin";Blockly.Msg.MATH_TRIG_TAN="tan";Blockly.Msg.MATH_TRIG_TOOLTIP_ACOS="返回一个数的反余弦值。";Blockly.Msg.MATH_TRIG_TOOLTIP_ASIN="返回一个数的反正弦值。";Blockly.Msg.MATH_TRIG_TOOLTIP_ATAN="返回指定角度的反正切值。";Blockly.Msg.MATH_TRIG_TOOLTIP_COS="返回指定角度的余弦值(非弧度)。";Blockly.Msg.MATH_TRIG_TOOLTIP_SIN="返回指定角度的正弦值(非弧度)。";Blockly.Msg.MATH_TRIG_TOOLTIP_TAN="返回指定角度的正切值(非弧度)。";Blockly.Msg.NEW_VARIABLE="创建变量...";Blockly.Msg.NEW_VARIABLE_TITLE="新变量的名称:";Blockly.Msg.ORDINAL_NUMBER_SUFFIX="空白";Blockly.Msg.PROCEDURES_ALLOW_STATEMENTS="允许声明";Blockly.Msg.PROCEDURES_BEFORE_PARAMS="与:";Blockly.Msg.PROCEDURES_CALLNORETURN_HELPURL="https://zh.wikipedia.org/wiki/子程序";Blockly.Msg.PROCEDURES_CALLNORETURN_TOOLTIP="运行用户定义的函数“%1”。";Blockly.Msg.PROCEDURES_CALLRETURN_HELPURL="https://zh.wikipedia.org/wiki/子程序";Blockly.Msg.PROCEDURES_CALLRETURN_TOOLTIP="运行用户定义的函数“%1”,并使用它的输出值。";Blockly.Msg.PROCEDURES_CALL_BEFORE_PARAMS="与:";Blockly.Msg.PROCEDURES_CREATE_DO="创建“%1”";Blockly.Msg.PROCEDURES_DEFNORETURN_COMMENT="描述该功能...";Blockly.Msg.PROCEDURES_DEFNORETURN_DO="空白";Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL="https://zh.wikipedia.org/wiki/子程序";Blockly.Msg.PROCEDURES_DEFNORETURN_PROCEDURE="做点什么";Blockly.Msg.PROCEDURES_DEFNORETURN_TITLE="至";Blockly.Msg.PROCEDURES_DEFNORETURN_TOOLTIP="创建一个不带输出值的函数。";Blockly.Msg.PROCEDURES_DEFRETURN_HELPURL="https://zh.wikipedia.org/wiki/子程序";Blockly.Msg.PROCEDURES_DEFRETURN_RETURN="返回";Blockly.Msg.PROCEDURES_DEFRETURN_TOOLTIP="创建一个有输出值的函数。";Blockly.Msg.PROCEDURES_DEF_DUPLICATE_WARNING="警告: 此函数具有重复参数。";Blockly.Msg.PROCEDURES_HIGHLIGHT_DEF="突出显示函数定义";Blockly.Msg.PROCEDURES_IFRETURN_HELPURL="http://c2.com/cgi/wiki?GuardClause"; Blockly.Msg.PROCEDURES_IFRETURN_TOOLTIP="如果值为真,则返回第二个值。";Blockly.Msg.PROCEDURES_IFRETURN_WARNING="警告: 仅在定义函数内可使用此块。";Blockly.Msg.PROCEDURES_MUTATORARG_TITLE="输入名称:";Blockly.Msg.PROCEDURES_MUTATORARG_TOOLTIP="添加函数输入。";Blockly.Msg.PROCEDURES_MUTATORCONTAINER_TITLE="输入";Blockly.Msg.PROCEDURES_MUTATORCONTAINER_TOOLTIP="添加、删除或重新排此函数的输入。";Blockly.Msg.REDO="重做";Blockly.Msg.REMOVE_COMMENT="删除注释";Blockly.Msg.RENAME_VARIABLE="重命名变量...";Blockly.Msg.RENAME_VARIABLE_TITLE="将所有“%1”变量重命名为:";Blockly.Msg.TEXT_APPEND_HELPURL="https://github.com/google/blockly/wiki/Text#text-modification";Blockly.Msg.TEXT_APPEND_TITLE="至%1附加文本%2";Blockly.Msg.TEXT_APPEND_TOOLTIP="将一些文本追加到变量“%1”。";Blockly.Msg.TEXT_CHANGECASE_HELPURL="https://github.com/google/blockly/wiki/Text#adjusting-text-case";Blockly.Msg.TEXT_CHANGECASE_OPERATOR_LOWERCASE="转为小写";Blockly.Msg.TEXT_CHANGECASE_OPERATOR_TITLECASE="将首字母大写";Blockly.Msg.TEXT_CHANGECASE_OPERATOR_UPPERCASE="转为大写";Blockly.Msg.TEXT_CHANGECASE_TOOLTIP="在不同大小写下复制并返回这段文字。";Blockly.Msg.TEXT_CHARAT_FIRST="获得第一个字符";Blockly.Msg.TEXT_CHARAT_FROM_END="获得倒数第#个字符";Blockly.Msg.TEXT_CHARAT_FROM_START="获得字符#";Blockly.Msg.TEXT_CHARAT_HELPURL="https://github.com/google/blockly/wiki/Text#extracting-text";Blockly.Msg.TEXT_CHARAT_LAST="获得最后一个字符";Blockly.Msg.TEXT_CHARAT_RANDOM="获取随机的字母";Blockly.Msg.TEXT_CHARAT_TAIL="空白";Blockly.Msg.TEXT_CHARAT_TITLE="在文本%1 %2中";Blockly.Msg.TEXT_CHARAT_TOOLTIP="返回位于指定位置的字母。";Blockly.Msg.TEXT_COUNT_HELPURL="https://github.com/google/blockly/wiki/Text#counting-substrings";Blockly.Msg.TEXT_COUNT_MESSAGE0="将%1计算在%2之内";Blockly.Msg.TEXT_COUNT_TOOLTIP="计算在一些其他文本中,部分文本重现了多少次。";Blockly.Msg.TEXT_CREATE_JOIN_ITEM_TOOLTIP="将一个项添加到文本中。";Blockly.Msg.TEXT_CREATE_JOIN_TITLE_JOIN="加入";Blockly.Msg.TEXT_CREATE_JOIN_TOOLTIP="添加、移除或重新排列各节来重新配置这个文本块。";Blockly.Msg.TEXT_GET_SUBSTRING_END_FROM_END="到倒数第#个字符";Blockly.Msg.TEXT_GET_SUBSTRING_END_FROM_START="到字符#";Blockly.Msg.TEXT_GET_SUBSTRING_END_LAST="到最后一个字符";Blockly.Msg.TEXT_GET_SUBSTRING_HELPURL="https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; Blockly.Msg.TEXT_GET_SUBSTRING_INPUT_IN_TEXT="自文本";Blockly.Msg.TEXT_GET_SUBSTRING_START_FIRST="取得一段字串自第一个字符";Blockly.Msg.TEXT_GET_SUBSTRING_START_FROM_END="取得一段字串自倒数第#个字符";Blockly.Msg.TEXT_GET_SUBSTRING_START_FROM_START="取得一段字串自#";Blockly.Msg.TEXT_GET_SUBSTRING_TAIL="空白";Blockly.Msg.TEXT_GET_SUBSTRING_TOOLTIP="返回指定的部分文本。";Blockly.Msg.TEXT_INDEXOF_HELPURL="https://github.com/google/blockly/wiki/Text#finding-text";Blockly.Msg.TEXT_INDEXOF_OPERATOR_FIRST="寻找第一个出现的文本";Blockly.Msg.TEXT_INDEXOF_OPERATOR_LAST="寻找最后一个出现的文本";Blockly.Msg.TEXT_INDEXOF_TITLE="在文本%1 %2 %3中";Blockly.Msg.TEXT_INDEXOF_TOOLTIP="返回在第二个字串中的第一/最后一个匹配项的索引值。如果未找到则返回%1。";Blockly.Msg.TEXT_ISEMPTY_HELPURL="https://github.com/google/blockly/wiki/Text#checking-for-empty-text";Blockly.Msg.TEXT_ISEMPTY_TITLE="%1是空的";Blockly.Msg.TEXT_ISEMPTY_TOOLTIP="如果提供的文本为空,则返回真。";Blockly.Msg.TEXT_JOIN_HELPURL="https://github.com/google/blockly/wiki/Text#text-creation";Blockly.Msg.TEXT_JOIN_TITLE_CREATEWITH="建立字串使用";Blockly.Msg.TEXT_JOIN_TOOLTIP="通过串起任意数量的项以建立一段文字。";Blockly.Msg.TEXT_LENGTH_HELPURL="https://github.com/google/blockly/wiki/Text#text-modification";Blockly.Msg.TEXT_LENGTH_TITLE="%1的长度";Blockly.Msg.TEXT_LENGTH_TOOLTIP="返回提供文本的字母数(包括空格)。";Blockly.Msg.TEXT_PRINT_HELPURL="https://github.com/google/blockly/wiki/Text#printing-text";Blockly.Msg.TEXT_PRINT_TITLE="打印%1";Blockly.Msg.TEXT_PRINT_TOOLTIP="打印指定的文字、数字或其他值。";Blockly.Msg.TEXT_PROMPT_HELPURL="https://github.com/google/blockly/wiki/Text#getting-input-from-the-user";Blockly.Msg.TEXT_PROMPT_TOOLTIP_NUMBER="提示用户输入数字。";Blockly.Msg.TEXT_PROMPT_TOOLTIP_TEXT="提示用户输入一些文本。";Blockly.Msg.TEXT_PROMPT_TYPE_NUMBER="输入数字并显示提示消息";Blockly.Msg.TEXT_PROMPT_TYPE_TEXT="输入数字并显示提示消息";Blockly.Msg.TEXT_REPLACE_HELPURL="https://github.com/google/blockly/wiki/Text#replacing-substrings";Blockly.Msg.TEXT_REPLACE_MESSAGE0="在%3中,将%1替换为%2";Blockly.Msg.TEXT_REPLACE_TOOLTIP="在某些其他文本中,替换部分文本的所有事件。";Blockly.Msg.TEXT_REVERSE_HELPURL="https://github.com/google/blockly/wiki/Text#reversing-text";Blockly.Msg.TEXT_REVERSE_MESSAGE0="倒转%1"; Blockly.Msg.TEXT_REVERSE_TOOLTIP="倒转文本中字符的排序。";Blockly.Msg.TEXT_TEXT_HELPURL="https://zh.wikipedia.org/wiki/字符串";Blockly.Msg.TEXT_TEXT_TOOLTIP="一个字母、单词或一行文本。";Blockly.Msg.TEXT_TRIM_HELPURL="https://github.com/google/blockly/wiki/Text#trimming-removing-spaces";Blockly.Msg.TEXT_TRIM_OPERATOR_BOTH="消除两侧空格";Blockly.Msg.TEXT_TRIM_OPERATOR_LEFT="消除左侧空格";Blockly.Msg.TEXT_TRIM_OPERATOR_RIGHT="消除右侧空格";Blockly.Msg.TEXT_TRIM_TOOLTIP="复制这段文字的同时删除两端多余的空格。";Blockly.Msg.TODAY="今天";Blockly.Msg.UNDO="撤销";Blockly.Msg.VARIABLES_DEFAULT_NAME="项目";Blockly.Msg.VARIABLES_GET_CREATE_SET="创建“设定%1”";Blockly.Msg.VARIABLES_GET_HELPURL="https://github.com/google/blockly/wiki/Variables#get";Blockly.Msg.VARIABLES_GET_TOOLTIP="返回此变量的值。";Blockly.Msg.VARIABLES_SET="赋值 %1 到 %2";Blockly.Msg.VARIABLES_SET_CREATE_GET="创建“获得%1”";Blockly.Msg.VARIABLES_SET_HELPURL="https://github.com/google/blockly/wiki/Variables#set";Blockly.Msg.VARIABLES_SET_TOOLTIP="设置此变量,以使它和输入值相等。";Blockly.Msg.VARIABLE_ALREADY_EXISTS="已存在名为“%1”的变量。";Blockly.Msg.VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE="名叫“%1”的变量已存在,但作为另一个变量类型“%2”存在。";Blockly.Msg.PROCEDURES_DEFRETURN_TITLE=Blockly.Msg.PROCEDURES_DEFNORETURN_TITLE;Blockly.Msg.CONTROLS_IF_IF_TITLE_IF=Blockly.Msg.CONTROLS_IF_MSG_IF;Blockly.Msg.CONTROLS_WHILEUNTIL_INPUT_DO=Blockly.Msg.CONTROLS_REPEAT_INPUT_DO;Blockly.Msg.CONTROLS_IF_MSG_THEN=Blockly.Msg.CONTROLS_REPEAT_INPUT_DO;Blockly.Msg.CONTROLS_IF_ELSE_TITLE_ELSE=Blockly.Msg.CONTROLS_IF_MSG_ELSE;Blockly.Msg.PROCEDURES_DEFRETURN_PROCEDURE=Blockly.Msg.PROCEDURES_DEFNORETURN_PROCEDURE;Blockly.Msg.LISTS_GET_SUBLIST_INPUT_IN_LIST=Blockly.Msg.LISTS_INLIST;Blockly.Msg.LISTS_GET_INDEX_INPUT_IN_LIST=Blockly.Msg.LISTS_INLIST;Blockly.Msg.MATH_CHANGE_TITLE_ITEM=Blockly.Msg.VARIABLES_DEFAULT_NAME;Blockly.Msg.PROCEDURES_DEFRETURN_DO=Blockly.Msg.PROCEDURES_DEFNORETURN_DO;Blockly.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF=Blockly.Msg.CONTROLS_IF_MSG_ELSEIF;Blockly.Msg.LISTS_GET_INDEX_HELPURL=Blockly.Msg.LISTS_INDEX_OF_HELPURL;Blockly.Msg.CONTROLS_FOREACH_INPUT_DO=Blockly.Msg.CONTROLS_REPEAT_INPUT_DO; Blockly.Msg.LISTS_SET_INDEX_INPUT_IN_LIST=Blockly.Msg.LISTS_INLIST;Blockly.Msg.CONTROLS_FOR_INPUT_DO=Blockly.Msg.CONTROLS_REPEAT_INPUT_DO;Blockly.Msg.LISTS_CREATE_WITH_ITEM_TITLE=Blockly.Msg.VARIABLES_DEFAULT_NAME;Blockly.Msg.TEXT_APPEND_VARIABLE=Blockly.Msg.VARIABLES_DEFAULT_NAME;Blockly.Msg.TEXT_CREATE_JOIN_ITEM_TITLE_ITEM=Blockly.Msg.VARIABLES_DEFAULT_NAME;Blockly.Msg.LISTS_INDEX_OF_INPUT_IN_LIST=Blockly.Msg.LISTS_INLIST;Blockly.Msg.PROCEDURES_DEFRETURN_COMMENT=Blockly.Msg.PROCEDURES_DEFNORETURN_COMMENT;Blockly.Msg.MATH_HUE="230";Blockly.Msg.LOOPS_HUE="120";Blockly.Msg.LISTS_HUE="260";Blockly.Msg.LOGIC_HUE="210";Blockly.Msg.VARIABLES_HUE="330";Blockly.Msg.TEXTS_HUE="160";Blockly.Msg.PROCEDURES_HUE="290";Blockly.Msg.COLOUR_HUE="20"; "use strict";Blockly.Blocks.colour={};Blockly.Constants={};Blockly.Constants.Colour={};Blockly.Constants.Colour.HUE=20;Blockly.Blocks.colour.HUE=Blockly.Constants.Colour.HUE;Blockly.defineBlocksWithJsonArray([{type:"colour_picker",message0:"%1",args0:[{type:"field_colour",name:"COLOUR",colour:"#ff0000"}],output:"Colour",colour:"%{BKY_COLOUR_HUE}",helpUrl:"%{BKY_COLOUR_PICKER_HELPURL}",tooltip:"%{BKY_COLOUR_PICKER_TOOLTIP}",extensions:["parent_tooltip_when_inline"]},{type:"colour_random",message0:"%{BKY_COLOUR_RANDOM_TITLE}",output:"Colour",colour:"%{BKY_COLOUR_HUE}",helpUrl:"%{BKY_COLOUR_RANDOM_HELPURL}",tooltip:"%{BKY_COLOUR_RANDOM_TOOLTIP}"},{type:"colour_rgb",message0:"%{BKY_COLOUR_RGB_TITLE} %{BKY_COLOUR_RGB_RED} %1 %{BKY_COLOUR_RGB_GREEN} %2 %{BKY_COLOUR_RGB_BLUE} %3",args0:[{type:"input_value",name:"RED",check:"Number",align:"RIGHT"},{type:"input_value",name:"GREEN",check:"Number",align:"RIGHT"},{type:"input_value",name:"BLUE",check:"Number",align:"RIGHT"}],output:"Colour",colour:"%{BKY_COLOUR_HUE}",helpUrl:"%{BKY_COLOUR_RGB_HELPURL}",tooltip:"%{BKY_COLOUR_RGB_TOOLTIP}"},{type:"colour_blend",message0:"%{BKY_COLOUR_BLEND_TITLE} %{BKY_COLOUR_BLEND_COLOUR1} %1 %{BKY_COLOUR_BLEND_COLOUR2} %2 %{BKY_COLOUR_BLEND_RATIO} %3",args0:[{type:"input_value",name:"COLOUR1",check:"Colour",align:"RIGHT"},{type:"input_value",name:"COLOUR2",check:"Colour",align:"RIGHT"},{type:"input_value",name:"RATIO",check:"Number",align:"RIGHT"}],output:"Colour",colour:"%{BKY_COLOUR_HUE}",helpUrl:"%{BKY_COLOUR_BLEND_HELPURL}",tooltip:"%{BKY_COLOUR_BLEND_TOOLTIP}"}]);Blockly.Blocks.lists={};Blockly.Constants.Lists={};Blockly.Constants.Lists.HUE=260;Blockly.Blocks.lists.HUE=Blockly.Constants.Lists.HUE;Blockly.defineBlocksWithJsonArray([{type:"lists_create_empty",message0:"%{BKY_LISTS_CREATE_EMPTY_TITLE}",output:"Array",colour:"%{BKY_LISTS_HUE}",tooltip:"%{BKY_LISTS_CREATE_EMPTY_TOOLTIP}",helpUrl:"%{BKY_LISTS_CREATE_EMPTY_HELPURL}"},{type:"lists_repeat",message0:"%{BKY_LISTS_REPEAT_TITLE}",args0:[{type:"input_value",name:"ITEM"},{type:"input_value",name:"NUM",check:"Number"}],output:"Array",colour:"%{BKY_LISTS_HUE}",tooltip:"%{BKY_LISTS_REPEAT_TOOLTIP}",helpUrl:"%{BKY_LISTS_REPEAT_HELPURL}"},{type:"lists_reverse",message0:"%{BKY_LISTS_REVERSE_MESSAGE0}",args0:[{type:"input_value",name:"LIST",check:"Array"}],output:"Array",inputsInline:!0,colour:"%{BKY_LISTS_HUE}",tooltip:"%{BKY_LISTS_REVERSE_TOOLTIP}",helpUrl:"%{BKY_LISTS_REVERSE_HELPURL}"},{type:"lists_isEmpty",message0:"%{BKY_LISTS_ISEMPTY_TITLE}",args0:[{type:"input_value",name:"VALUE",check:["String","Array"]}],output:"Boolean",colour:"%{BKY_LISTS_HUE}",tooltip:"%{BKY_LISTS_ISEMPTY_TOOLTIP}",helpUrl:"%{BKY_LISTS_ISEMPTY_HELPURL}"},{type:"lists_length",message0:"%{BKY_LISTS_LENGTH_TITLE}",args0:[{type:"input_value",name:"VALUE",check:["String","Array"]}],output:"Number",colour:"%{BKY_LISTS_HUE}",tooltip:"%{BKY_LISTS_LENGTH_TOOLTIP}",helpUrl:"%{BKY_LISTS_LENGTH_HELPURL}"}]); Blockly.Blocks.lists_create_with={init:function(){this.setHelpUrl(Blockly.Msg.LISTS_CREATE_WITH_HELPURL);this.setColour(Blockly.Blocks.lists.HUE);this.itemCount_=3;this.updateShape_();this.setOutput(!0,"Array");this.setMutator(new Blockly.Mutator(["lists_create_with_item"]));this.setTooltip(Blockly.Msg.LISTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("items",this.itemCount_);return a},domToMutation:function(a){this.itemCount_=parseInt(a.getAttribute("items"),10);this.updateShape_()},decompose:function(a){var b=a.newBlock("lists_create_with_container");b.initSvg();for(var c=b.getInput("STACK").connection,d=0;d","GT"],["\u2265","GTE"]]},{type:"input_value",name:"B"}],inputsInline:!0,output:null,colour:"%{BKY_LOGIC_HUE}",helpUrl:"%{BKY_LOGIC_COMPARE_HELPURL}",extensions:["logic_compare","logic_op_tooltip"]},{type:"logic_operation",message0:"%1 %2 %3",args0:[{type:"input_value",name:"A",check:null},{type:"field_dropdown",name:"OP",options:[["%{BKY_LOGIC_OPERATION_AND}","AND"],["%{BKY_LOGIC_OPERATION_OR}","OR"]]},{type:"input_value",name:"B",check:null}],inputsInline:!0,output:null,colour:"%{BKY_LOGIC_HUE}",helpUrl:"%{BKY_LOGIC_OPERATION_HELPURL}",extensions:["logic_op_tooltip"]},{type:"logic_negate",message0:"%{BKY_LOGIC_NEGATE_TITLE}",args0:[{type:"input_value",name:"BOOL",check:null}],output:null,colour:"%{BKY_LOGIC_HUE}",tooltip:"%{BKY_LOGIC_NEGATE_TOOLTIP}",helpUrl:"%{BKY_LOGIC_NEGATE_HELPURL}"},{type:"logic_null",message0:"%{BKY_LOGIC_NULL}",output:null,colour:"%{BKY_LOGIC_HUE}",tooltip:"%{BKY_LOGIC_NULL_TOOLTIP}",helpUrl:"%{BKY_LOGIC_NULL_HELPURL}"},{type:"logic_ternary",message0:"%{BKY_LOGIC_TERNARY_CONDITION} %1",args0:[{type:"input_value",name:"IF",check:"Boolean"}],message1:"%{BKY_LOGIC_TERNARY_IF_TRUE} %1",args1:[{type:"input_value",name:"THEN"}],message2:"%{BKY_LOGIC_TERNARY_IF_FALSE} %1",args2:[{type:"input_value",name:"ELSE"}],output:null,colour:"%{BKY_LOGIC_HUE}",tooltip:"%{BKY_LOGIC_TERNARY_TOOLTIP}",helpUrl:"%{BKY_LOGIC_TERNARY_HELPURL}",extensions:["logic_ternary"]}]); Blockly.defineBlocksWithJsonArray([{type:"controls_if_if",message0:"%{BKY_CONTROLS_IF_IF_TITLE_IF}",nextStatement:null,enableContextMenu:!1,colour:"%{BKY_LOGIC_HUE}",tooltip:"%{BKY_CONTROLS_IF_IF_TOOLTIP}"},{type:"controls_if_elseif",message0:"%{BKY_CONTROLS_IF_ELSEIF_TITLE_ELSEIF}",previousStatement:null,nextStatement:null,enableContextMenu:!1,colour:"%{BKY_LOGIC_HUE}",tooltip:"%{BKY_CONTROLS_IF_ELSEIF_TOOLTIP}"},{type:"controls_if_else",message0:"%{BKY_CONTROLS_IF_ELSE_TITLE_ELSE}",previousStatement:null,enableContextMenu:!1,colour:"%{BKY_LOGIC_HUE}",tooltip:"%{BKY_CONTROLS_IF_ELSE_TOOLTIP}"}]);Blockly.Constants.Logic.TOOLTIPS_BY_OP={EQ:"%{BKY_LOGIC_COMPARE_TOOLTIP_EQ}",NEQ:"%{BKY_LOGIC_COMPARE_TOOLTIP_NEQ}",LT:"%{BKY_LOGIC_COMPARE_TOOLTIP_LT}",LTE:"%{BKY_LOGIC_COMPARE_TOOLTIP_LTE}",GT:"%{BKY_LOGIC_COMPARE_TOOLTIP_GT}",GTE:"%{BKY_LOGIC_COMPARE_TOOLTIP_GTE}",AND:"%{BKY_LOGIC_OPERATION_TOOLTIP_AND}",OR:"%{BKY_LOGIC_OPERATION_TOOLTIP_OR}"};Blockly.Extensions.register("logic_op_tooltip",Blockly.Extensions.buildTooltipForDropdown("OP",Blockly.Constants.Logic.TOOLTIPS_BY_OP));Blockly.Constants.Logic.CONTROLS_IF_MUTATOR_MIXIN={elseifCount_:0,elseCount_:0,mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_){return null}var a=document.createElement("mutation");this.elseifCount_&&a.setAttribute("elseif",this.elseifCount_);this.elseCount_&&a.setAttribute("else",1);return a},domToMutation:function(a){this.elseifCount_=parseInt(a.getAttribute("elseif"),10)||0;this.elseCount_=parseInt(a.getAttribute("else"),10)||0;this.updateShape_()},decompose:function(a){var b=a.newBlock("controls_if_if");b.initSvg();for(var c=b.nextConnection,d=1;d<=this.elseifCount_;d++){var e=a.newBlock("controls_if_elseif");e.initSvg();c.connect(e.previousConnection);c=e.nextConnection}this.elseCount_&&(a=a.newBlock("controls_if_else"),a.initSvg(),c.connect(a.previousConnection));return b},compose:function(a){var b=a.nextConnection.targetBlock();this.elseCount_=this.elseifCount_=0;a=[null];for(var c=[null],d=null; b;){switch(b.type){case"controls_if_elseif":this.elseifCount_++;a.push(b.valueConnection_);c.push(b.statementConnection_);break;case"controls_if_else":this.elseCount_++;d=b.statementConnection_;break;default:throw"Unknown block type."}b=b.nextConnection&&b.nextConnection.targetBlock()}this.updateShape_();for(b=1;b<=this.elseifCount_;b++){Blockly.Mutator.reconnect(a[b],this,"IF"+b),Blockly.Mutator.reconnect(c[b],this,"DO"+b)}Blockly.Mutator.reconnect(d,this,"ELSE")},saveConnections:function(a){a=a.nextConnection.targetBlock();for(var b=1;a;){switch(a.type){case"controls_if_elseif":var c=this.getInput("IF"+b),d=this.getInput("DO"+b);a.valueConnection_=c&&c.connection.targetConnection;a.statementConnection_=d&&d.connection.targetConnection;b++;break;case"controls_if_else":d=this.getInput("ELSE");a.statementConnection_=d&&d.connection.targetConnection;break;default:throw"Unknown block type."}a=a.nextConnection&&a.nextConnection.targetBlock()}},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var a=1;this.getInput("IF"+a);){this.removeInput("IF"+a),this.removeInput("DO"+a),a++}for(a=1;a<=this.elseifCount_;a++){this.appendValueInput("IF"+a).setCheck("Boolean").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+a).appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN)}this.elseCount_&&this.appendStatementInput("ELSE").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSE)}};Blockly.Extensions.registerMutator("controls_if_mutator",Blockly.Constants.Logic.CONTROLS_IF_MUTATOR_MIXIN,null,["controls_if_elseif","controls_if_else"]);Blockly.Constants.Logic.CONTROLS_IF_TOOLTIP_EXTENSION=function(){this.setTooltip(function(){if(this.elseifCount_||this.elseCount_){if(!this.elseifCount_&&this.elseCount_){return Blockly.Msg.CONTROLS_IF_TOOLTIP_2}if(this.elseifCount_&&!this.elseCount_){return Blockly.Msg.CONTROLS_IF_TOOLTIP_3}if(this.elseifCount_&&this.elseCount_){return Blockly.Msg.CONTROLS_IF_TOOLTIP_4}}else{return Blockly.Msg.CONTROLS_IF_TOOLTIP_1 }return""}.bind(this))};Blockly.Extensions.register("controls_if_tooltip",Blockly.Constants.Logic.CONTROLS_IF_TOOLTIP_EXTENSION);Blockly.Constants.Logic.fixLogicCompareRtlOpLabels=function(){var a={LT:"\u200f<\u200f",LTE:"\u200f\u2264\u200f",GT:"\u200f>\u200f",GTE:"\u200f\u2265\u200f"},b=this.getField("OP");if(b){b=b.getOptions();for(var c=0;ce;e++){var f=1==e?b:c;f&&!f.outputConnection.checkType_(d)&&(Blockly.Events.setGroup(a.group),d===this.prevParentConnection_?(this.unplug(),d.getSourceBlock().bumpNeighbours_()):(f.unplug(),f.bumpNeighbours_()),Blockly.Events.setGroup(!1))}}this.prevParentConnection_=d}};Blockly.Extensions.registerMixin("logic_ternary",Blockly.Constants.Logic.LOGIC_TERNARY_ONCHANGE_MIXIN);Blockly.Blocks.loops={};Blockly.Constants.Loops={};Blockly.Constants.Loops.HUE=120;Blockly.Blocks.loops.HUE=Blockly.Constants.Loops.HUE;Blockly.defineBlocksWithJsonArray([{type:"controls_repeat_ext",message0:"%{BKY_CONTROLS_REPEAT_TITLE}",args0:[{type:"input_value",name:"TIMES",check:"Number"}],message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1",args1:[{type:"input_statement",name:"DO"}],previousStatement:null,nextStatement:null,colour:"%{BKY_LOOPS_HUE}",tooltip:"%{BKY_CONTROLS_REPEAT_TOOLTIP}",helpUrl:"%{BKY_CONTROLS_REPEAT_HELPURL}"},{type:"controls_repeat",message0:"%{BKY_CONTROLS_REPEAT_TITLE}",args0:[{type:"field_number",name:"TIMES",value:10,min:0,precision:1}],message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1",args1:[{type:"input_statement",name:"DO"}],previousStatement:null,nextStatement:null,colour:"%{BKY_LOOPS_HUE}",tooltip:"%{BKY_CONTROLS_REPEAT_TOOLTIP}",helpUrl:"%{BKY_CONTROLS_REPEAT_HELPURL}"},{type:"controls_whileUntil",message0:"%1 %2",args0:[{type:"field_dropdown",name:"MODE",options:[["%{BKY_CONTROLS_WHILEUNTIL_OPERATOR_WHILE}","WHILE"],["%{BKY_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL}","UNTIL"]]},{type:"input_value",name:"BOOL",check:"Boolean"}],message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1",args1:[{type:"input_statement",name:"DO"}],previousStatement:null,nextStatement:null,colour:"%{BKY_LOOPS_HUE}",helpUrl:"%{BKY_CONTROLS_WHILEUNTIL_HELPURL}",extensions:["controls_whileUntil_tooltip"]},{type:"controls_for",message0:"%{BKY_CONTROLS_FOR_TITLE}",args0:[{type:"field_variable",name:"VAR",variable:null},{type:"input_value",name:"FROM",check:"Number",align:"RIGHT"},{type:"input_value",name:"TO",check:"Number",align:"RIGHT"},{type:"input_value",name:"BY",check:"Number",align:"RIGHT"}],message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1",args1:[{type:"input_statement",name:"DO"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:"%{BKY_LOOPS_HUE}",helpUrl:"%{BKY_CONTROLS_FOR_HELPURL}",extensions:["contextMenu_newGetVariableBlock","controls_for_tooltip"]},{type:"controls_forEach",message0:"%{BKY_CONTROLS_FOREACH_TITLE}",args0:[{type:"field_variable",name:"VAR",variable:null},{type:"input_value",name:"LIST",check:"Array"}],message1:"%{BKY_CONTROLS_REPEAT_INPUT_DO} %1",args1:[{type:"input_statement",name:"DO"}],previousStatement:null,nextStatement:null,colour:"%{BKY_LOOPS_HUE}",helpUrl:"%{BKY_CONTROLS_FOREACH_HELPURL}",extensions:["contextMenu_newGetVariableBlock","controls_forEach_tooltip"]},{type:"controls_flow_statements",message0:"%1",args0:[{type:"field_dropdown",name:"FLOW",options:[["%{BKY_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK}","BREAK"],["%{BKY_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE}","CONTINUE"]]}],previousStatement:null,colour:"%{BKY_LOOPS_HUE}",helpUrl:"%{BKY_CONTROLS_FLOW_STATEMENTS_HELPURL}",extensions:["controls_flow_tooltip","controls_flow_in_loop_check"]}]); Blockly.Constants.Loops.WHILE_UNTIL_TOOLTIPS={WHILE:"%{BKY_CONTROLS_WHILEUNTIL_TOOLTIP_WHILE}",UNTIL:"%{BKY_CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}"};Blockly.Extensions.register("controls_whileUntil_tooltip",Blockly.Extensions.buildTooltipForDropdown("MODE",Blockly.Constants.Loops.WHILE_UNTIL_TOOLTIPS));Blockly.Constants.Loops.BREAK_CONTINUE_TOOLTIPS={BREAK:"%{BKY_CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK}",CONTINUE:"%{BKY_CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}"};Blockly.Extensions.register("controls_flow_tooltip",Blockly.Extensions.buildTooltipForDropdown("FLOW",Blockly.Constants.Loops.BREAK_CONTINUE_TOOLTIPS));Blockly.Constants.Loops.CUSTOM_CONTEXT_MENU_CREATE_VARIABLES_GET_MIXIN={customContextMenu:function(a){var b=this.getFieldValue("VAR");if(!this.isCollapsed()&&null!=b){var c={enabled:!0};c.text=Blockly.Msg.VARIABLES_SET_CREATE_GET.replace("%1",b);b=goog.dom.createDom("field",null,b);b.setAttribute("name","VAR");b=goog.dom.createDom("block",null,b);b.setAttribute("type","variables_get");c.callback=Blockly.ContextMenu.callbackFactory(this,b);a.push(c)}}};Blockly.Extensions.registerMixin("contextMenu_newGetVariableBlock",Blockly.Constants.Loops.CUSTOM_CONTEXT_MENU_CREATE_VARIABLES_GET_MIXIN);Blockly.Extensions.register("controls_for_tooltip",Blockly.Extensions.buildTooltipWithFieldValue("%{BKY_CONTROLS_FOR_TOOLTIP}","VAR"));Blockly.Extensions.register("controls_forEach_tooltip",Blockly.Extensions.buildTooltipWithFieldValue("%{BKY_CONTROLS_FOREACH_TOOLTIP}","VAR"));Blockly.Constants.Loops.CONTROL_FLOW_IN_LOOP_CHECK_MIXIN={LOOP_TYPES:["controls_repeat","controls_repeat_ext","controls_forEach","controls_for","controls_whileUntil"],onchange:function(){if(this.workspace.isDragging&&!this.workspace.isDragging()){var a=!1,b=this;do{if(-1!=this.LOOP_TYPES.indexOf(b.type)){a=!0;break}b=b.getSurroundParent()}while(b);a?(this.setWarningText(null),this.isInFlyout||this.setDisabled(!1)):(this.setWarningText(Blockly.Msg.CONTROLS_FLOW_STATEMENTS_WARNING),this.isInFlyout||this.getInheritedDisabled()||this.setDisabled(!0)) }}};Blockly.Extensions.registerMixin("controls_flow_in_loop_check",Blockly.Constants.Loops.CONTROL_FLOW_IN_LOOP_CHECK_MIXIN);Blockly.Blocks.math={};Blockly.Constants.Math={};Blockly.Constants.Math.HUE=230;Blockly.Blocks.math.HUE=Blockly.Constants.Math.HUE;Blockly.defineBlocksWithJsonArray([{type:"math_number",message0:"%1",args0:[{type:"field_number",name:"NUM",value:0}],output:"Number",colour:"%{BKY_MATH_HUE}",helpUrl:"%{BKY_MATH_NUMBER_HELPURL}",tooltip:"%{BKY_MATH_NUMBER_TOOLTIP}",extensions:["parent_tooltip_when_inline"]},{type:"math_arithmetic",message0:"%1 %2 %3",args0:[{type:"input_value",name:"A",check:"Number"},{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_ADDITION_SYMBOL}","ADD"],["%{BKY_MATH_SUBTRACTION_SYMBOL}","MINUS"],["%{BKY_MATH_MULTIPLICATION_SYMBOL}","MULTIPLY"],["%{BKY_MATH_DIVISION_SYMBOL}","DIVIDE"],["%{BKY_MATH_POWER_SYMBOL}","POWER"]]},{type:"input_value",name:"B",check:"Number"}],inputsInline:!0,output:"Number",colour:"%{BKY_MATH_HUE}",helpUrl:"%{BKY_MATH_ARITHMETIC_HELPURL}",extensions:["math_op_tooltip"]},{type:"math_single",message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_SINGLE_OP_ROOT}","ROOT"],["%{BKY_MATH_SINGLE_OP_ABSOLUTE}","ABS"],["-","NEG"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]},{type:"input_value",name:"NUM",check:"Number"}],output:"Number",colour:"%{BKY_MATH_HUE}",helpUrl:"%{BKY_MATH_SINGLE_HELPURL}",extensions:["math_op_tooltip"]},{type:"math_trig",message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_TRIG_SIN}","SIN"],["%{BKY_MATH_TRIG_COS}","COS"],["%{BKY_MATH_TRIG_TAN}","TAN"],["%{BKY_MATH_TRIG_ASIN}","ASIN"],["%{BKY_MATH_TRIG_ACOS}","ACOS"],["%{BKY_MATH_TRIG_ATAN}","ATAN"]]},{type:"input_value",name:"NUM",check:"Number"}],output:"Number",colour:"%{BKY_MATH_HUE}",helpUrl:"%{BKY_MATH_TRIG_HELPURL}",extensions:["math_op_tooltip"]},{type:"math_constant",message0:"%1",args0:[{type:"field_dropdown",name:"CONSTANT",options:[["\u03c0","PI"],["e","E"],["\u03c6","GOLDEN_RATIO"],["sqrt(2)","SQRT2"],["sqrt(\u00bd)","SQRT1_2"],["\u221e","INFINITY"]]}],output:"Number",colour:"%{BKY_MATH_HUE}",tooltip:"%{BKY_MATH_CONSTANT_TOOLTIP}",helpUrl:"%{BKY_MATH_CONSTANT_HELPURL}"},{type:"math_number_property",message0:"%1 %2",args0:[{type:"input_value",name:"NUMBER_TO_CHECK",check:"Number"},{type:"field_dropdown",name:"PROPERTY",options:[["%{BKY_MATH_IS_EVEN}","EVEN"],["%{BKY_MATH_IS_ODD}","ODD"],["%{BKY_MATH_IS_PRIME}","PRIME"],["%{BKY_MATH_IS_WHOLE}","WHOLE"],["%{BKY_MATH_IS_POSITIVE}","POSITIVE"],["%{BKY_MATH_IS_NEGATIVE}","NEGATIVE"],["%{BKY_MATH_IS_DIVISIBLE_BY}","DIVISIBLE_BY"]]}],inputsInline:!0,output:"Boolean",colour:"%{BKY_MATH_HUE}",tooltip:"%{BKY_MATH_IS_TOOLTIP}",mutator:"math_is_divisibleby_mutator"},{type:"math_change",message0:"%{BKY_MATH_CHANGE_TITLE}",args0:[{type:"field_variable",name:"VAR",variable:"%{BKY_MATH_CHANGE_TITLE_ITEM}"},{type:"input_value",name:"DELTA",check:"Number"}],previousStatement:null,nextStatement:null,colour:"%{BKY_VARIABLES_HUE}",helpUrl:"%{BKY_MATH_CHANGE_HELPURL}",extensions:["math_change_tooltip"]},{type:"math_round",message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_ROUND_OPERATOR_ROUND}","ROUND"],["%{BKY_MATH_ROUND_OPERATOR_ROUNDUP}","ROUNDUP"],["%{BKY_MATH_ROUND_OPERATOR_ROUNDDOWN}","ROUNDDOWN"]]},{type:"input_value",name:"NUM",check:"Number"}],output:"Number",colour:"%{BKY_MATH_HUE}",helpUrl:"%{BKY_MATH_ROUND_HELPURL}",tooltip:"%{BKY_MATH_ROUND_TOOLTIP}"},{type:"math_on_list",message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[["%{BKY_MATH_ONLIST_OPERATOR_SUM}","SUM"],["%{BKY_MATH_ONLIST_OPERATOR_MIN}","MIN"],["%{BKY_MATH_ONLIST_OPERATOR_MAX}","MAX"],["%{BKY_MATH_ONLIST_OPERATOR_AVERAGE}","AVERAGE"],["%{BKY_MATH_ONLIST_OPERATOR_MEDIAN}","MEDIAN"],["%{BKY_MATH_ONLIST_OPERATOR_MODE}","MODE"],["%{BKY_MATH_ONLIST_OPERATOR_STD_DEV}","STD_DEV"],["%{BKY_MATH_ONLIST_OPERATOR_RANDOM}","RANDOM"]]},{type:"input_value",name:"LIST",check:"Array"}],output:"Number",colour:"%{BKY_MATH_HUE}",helpUrl:"%{BKY_MATH_ONLIST_HELPURL}",mutator:"math_modes_of_list_mutator",extensions:["math_op_tooltip"]},{type:"math_modulo",message0:"%{BKY_MATH_MODULO_TITLE}",args0:[{type:"input_value",name:"DIVIDEND",check:"Number"},{type:"input_value",name:"DIVISOR",check:"Number"}],inputsInline:!0,output:"Number",colour:"%{BKY_MATH_HUE}",tooltip:"%{BKY_MATH_MODULO_TOOLTIP}",helpUrl:"%{BKY_MATH_MODULO_HELPURL}"},{type:"math_constrain",message0:"%{BKY_MATH_CONSTRAIN_TITLE}",args0:[{type:"input_value",name:"VALUE",check:"Number"},{type:"input_value",name:"LOW",check:"Number"},{type:"input_value",name:"HIGH",check:"Number"}],inputsInline:!0,output:"Number",colour:"%{BKY_MATH_HUE}",tooltip:"%{BKY_MATH_CONSTRAIN_TOOLTIP}",helpUrl:"%{BKY_MATH_CONSTRAIN_HELPURL}"},{type:"math_random_int",message0:"%{BKY_MATH_RANDOM_INT_TITLE}",args0:[{type:"input_value",name:"FROM",check:"Number"},{type:"input_value",name:"TO",check:"Number"}],inputsInline:!0,output:"Number",colour:"%{BKY_MATH_HUE}",tooltip:"%{BKY_MATH_RANDOM_INT_TOOLTIP}",helpUrl:"%{BKY_MATH_RANDOM_INT_HELPURL}"},{type:"math_random_float",message0:"%{BKY_MATH_RANDOM_FLOAT_TITLE_RANDOM}",output:"Number",colour:"%{BKY_MATH_HUE}",tooltip:"%{BKY_MATH_RANDOM_FLOAT_TOOLTIP}",helpUrl:"%{BKY_MATH_RANDOM_FLOAT_HELPURL}"}]); Blockly.Constants.Math.TOOLTIPS_BY_OP={ADD:"%{BKY_MATH_ARITHMETIC_TOOLTIP_ADD}",MINUS:"%{BKY_MATH_ARITHMETIC_TOOLTIP_MINUS}",MULTIPLY:"%{BKY_MATH_ARITHMETIC_TOOLTIP_MULTIPLY}",DIVIDE:"%{BKY_MATH_ARITHMETIC_TOOLTIP_DIVIDE}",POWER:"%{BKY_MATH_ARITHMETIC_TOOLTIP_POWER}",ROOT:"%{BKY_MATH_SINGLE_TOOLTIP_ROOT}",ABS:"%{BKY_MATH_SINGLE_TOOLTIP_ABS}",NEG:"%{BKY_MATH_SINGLE_TOOLTIP_NEG}",LN:"%{BKY_MATH_SINGLE_TOOLTIP_LN}",LOG10:"%{BKY_MATH_SINGLE_TOOLTIP_LOG10}",EXP:"%{BKY_MATH_SINGLE_TOOLTIP_EXP}",POW10:"%{BKY_MATH_SINGLE_TOOLTIP_POW10}",SIN:"%{BKY_MATH_TRIG_TOOLTIP_SIN}",COS:"%{BKY_MATH_TRIG_TOOLTIP_COS}",TAN:"%{BKY_MATH_TRIG_TOOLTIP_TAN}",ASIN:"%{BKY_MATH_TRIG_TOOLTIP_ASIN}",ACOS:"%{BKY_MATH_TRIG_TOOLTIP_ACOS}",ATAN:"%{BKY_MATH_TRIG_TOOLTIP_ATAN}",SUM:"%{BKY_MATH_ONLIST_TOOLTIP_SUM}",MIN:"%{BKY_MATH_ONLIST_TOOLTIP_MIN}",MAX:"%{BKY_MATH_ONLIST_TOOLTIP_MAX}",AVERAGE:"%{BKY_MATH_ONLIST_TOOLTIP_AVERAGE}",MEDIAN:"%{BKY_MATH_ONLIST_TOOLTIP_MEDIAN}",MODE:"%{BKY_MATH_ONLIST_TOOLTIP_MODE}",STD_DEV:"%{BKY_MATH_ONLIST_TOOLTIP_STD_DEV}",RANDOM:"%{BKY_MATH_ONLIST_TOOLTIP_RANDOM}"};Blockly.Extensions.register("math_op_tooltip",Blockly.Extensions.buildTooltipForDropdown("OP",Blockly.Constants.Math.TOOLTIPS_BY_OP));Blockly.Constants.Math.IS_DIVISIBLEBY_MUTATOR_MIXIN={mutationToDom:function(){var a=document.createElement("mutation"),b="DIVISIBLE_BY"==this.getFieldValue("PROPERTY");a.setAttribute("divisor_input",b);return a},domToMutation:function(a){a="true"==a.getAttribute("divisor_input");this.updateShape_(a)},updateShape_:function(a){var b=this.getInput("DIVISOR");a?b||this.appendValueInput("DIVISOR").setCheck("Number"):b&&this.removeInput("DIVISOR")}};Blockly.Constants.Math.IS_DIVISIBLE_MUTATOR_EXTENSION=function(){this.getField("PROPERTY").setValidator(function(a){this.sourceBlock_.updateShape_("DIVISIBLE_BY"==a)})};Blockly.Extensions.registerMutator("math_is_divisibleby_mutator",Blockly.Constants.Math.IS_DIVISIBLEBY_MUTATOR_MIXIN,Blockly.Constants.Math.IS_DIVISIBLE_MUTATOR_EXTENSION); Blockly.Constants.Math.CHANGE_TOOLTIP_EXTENSION=function(){this.setTooltip(function(){return Blockly.Msg.MATH_CHANGE_TOOLTIP.replace("%1",this.getFieldValue("VAR"))}.bind(this))};Blockly.Extensions.register("math_change_tooltip",Blockly.Extensions.buildTooltipWithFieldValue("%{BKY_MATH_CHANGE_TOOLTIP}","VAR"));Blockly.Constants.Math.LIST_MODES_MUTATOR_MIXIN={updateType_:function(a){"MODE"==a?this.outputConnection.setCheck("Array"):this.outputConnection.setCheck("Number")},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("op",this.getFieldValue("OP"));return a},domToMutation:function(a){this.updateType_(a.getAttribute("op"))}};Blockly.Constants.Math.LIST_MODES_MUTATOR_EXTENSION=function(){this.getField("OP").setValidator(function(a){this.updateType_(a)}.bind(this))};Blockly.Extensions.registerMutator("math_modes_of_list_mutator",Blockly.Constants.Math.LIST_MODES_MUTATOR_MIXIN,Blockly.Constants.Math.LIST_MODES_MUTATOR_EXTENSION);Blockly.Blocks.procedures={};Blockly.Blocks.procedures.HUE=290;Blockly.Blocks.procedures_defnoreturn={init:function(){var a=new Blockly.FieldTextInput("",Blockly.Procedures.rename);a.setSpellcheck(!1);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_TITLE).appendField(a,"NAME").appendField("","PARAMS");this.setMutator(new Blockly.Mutator(["procedures_mutatorarg"]));(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&Blockly.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(Blockly.Msg.PROCEDURES_DEFNORETURN_COMMENT);this.setColour(Blockly.Blocks.procedures.HUE);this.setTooltip(Blockly.Msg.PROCEDURES_DEFNORETURN_TOOLTIP);this.setHelpUrl(Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL);this.arguments_=[];this.setStatements_(!0);this.statementConnection_=null},setStatements_:function(a){this.hasStatements_!==a&&(a?(this.appendStatementInput("STACK").appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=a) },updateParams_:function(){for(var a=!1,b={},c=0;cc?Blockly.JavaScript.valueToCode(a,b,Blockly.JavaScript.ORDER_SUBTRACTION)||f:d?Blockly.JavaScript.valueToCode(a,b,Blockly.JavaScript.ORDER_UNARY_NEGATION)||f:Blockly.JavaScript.valueToCode(a,b,e)||f; if(Blockly.isNumber(a)){a=parseFloat(a)+c,d&&(a=-a)}else{if(0c&&(a=a+" - "+-c,g=Blockly.JavaScript.ORDER_SUBTRACTION)}d&&(a=c?"-("+a+")":"-"+a,g=Blockly.JavaScript.ORDER_UNARY_NEGATION);g=Math.floor(g);e=Math.floor(e);g&&e>=g&&(a="("+a+")")}return a};Blockly.JavaScript.colour={};Blockly.JavaScript.colour_picker=function(a){return["'"+a.getFieldValue("COLOUR")+"'",Blockly.JavaScript.ORDER_ATOMIC]};Blockly.JavaScript.colour_random=function(a){return[Blockly.JavaScript.provideFunction_("colourRandom",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"() {"," var num = Math.floor(Math.random() * Math.pow(2, 24));"," return '#' + ('00000' + num.toString(16)).substr(-6);","}"])+"()",Blockly.JavaScript.ORDER_FUNCTION_CALL]};Blockly.JavaScript.colour_rgb=function(a){var b=Blockly.JavaScript.valueToCode(a,"RED",Blockly.JavaScript.ORDER_COMMA)||0,c=Blockly.JavaScript.valueToCode(a,"GREEN",Blockly.JavaScript.ORDER_COMMA)||0;a=Blockly.JavaScript.valueToCode(a,"BLUE",Blockly.JavaScript.ORDER_COMMA)||0;return[Blockly.JavaScript.provideFunction_("colourRgb",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(r, g, b) {"," r = Math.max(Math.min(Number(r), 100), 0) * 2.55;"," g = Math.max(Math.min(Number(g), 100), 0) * 2.55;"," b = Math.max(Math.min(Number(b), 100), 0) * 2.55;"," r = ('0' + (Math.round(r) || 0).toString(16)).slice(-2);"," g = ('0' + (Math.round(g) || 0).toString(16)).slice(-2);"," b = ('0' + (Math.round(b) || 0).toString(16)).slice(-2);"," return '#' + r + g + b;","}"])+"("+b+", "+c+", "+a+")",Blockly.JavaScript.ORDER_FUNCTION_CALL]};Blockly.JavaScript.colour_blend=function(a){var b=Blockly.JavaScript.valueToCode(a,"COLOUR1",Blockly.JavaScript.ORDER_COMMA)||"'#000000'",c=Blockly.JavaScript.valueToCode(a,"COLOUR2",Blockly.JavaScript.ORDER_COMMA)||"'#000000'";a=Blockly.JavaScript.valueToCode(a,"RATIO",Blockly.JavaScript.ORDER_COMMA)||0.5;return[Blockly.JavaScript.provideFunction_("colourBlend",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(c1, c2, ratio) {"," ratio = Math.max(Math.min(Number(ratio), 1), 0);"," var r1 = parseInt(c1.substring(1, 3), 16);"," var g1 = parseInt(c1.substring(3, 5), 16);"," var b1 = parseInt(c1.substring(5, 7), 16);"," var r2 = parseInt(c2.substring(1, 3), 16);"," var g2 = parseInt(c2.substring(3, 5), 16);"," var b2 = parseInt(c2.substring(5, 7), 16);"," var r = Math.round(r1 * (1 - ratio) + r2 * ratio);"," var g = Math.round(g1 * (1 - ratio) + g2 * ratio);"," var b = Math.round(b1 * (1 - ratio) + b2 * ratio);"," r = ('0' + (r || 0).toString(16)).slice(-2);"," g = ('0' + (g || 0).toString(16)).slice(-2);"," b = ('0' + (b || 0).toString(16)).slice(-2);"," return '#' + r + g + b;","}"])+"("+b+", "+c+", "+a+")",Blockly.JavaScript.ORDER_FUNCTION_CALL] };Blockly.JavaScript.lists={};Blockly.JavaScript.lists_create_empty=function(a){return["[]",Blockly.JavaScript.ORDER_ATOMIC]};Blockly.JavaScript.lists_create_with=function(a){for(var b=Array(a.itemCount_),c=0;c b.toString() ? 1 : -1; },",' "IGNORE_CASE": function(a, b) {'," return a.toString().toLowerCase() > b.toString().toLowerCase() ? 1 : -1; },"," };"," var compare = compareFuncs[type];"," return function(a, b) { return compare(a, b) * direction; }","}"]);return[b+".slice().sort("+d+'("'+a+'", '+c+"))",Blockly.JavaScript.ORDER_FUNCTION_CALL]};Blockly.JavaScript.lists_split=function(a){var b=Blockly.JavaScript.valueToCode(a,"INPUT",Blockly.JavaScript.ORDER_MEMBER),c=Blockly.JavaScript.valueToCode(a,"DELIM",Blockly.JavaScript.ORDER_NONE)||"''";a=a.getFieldValue("MODE");if("SPLIT"==a){b||(b="''"),a="split"}else{if("JOIN"==a){b||(b="[]"),a="join"}else{throw"Unknown mode: "+a}}return[b+"."+a+"("+c+")",Blockly.JavaScript.ORDER_FUNCTION_CALL]};Blockly.JavaScript.lists_reverse=function(a){return[(Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_FUNCTION_CALL)||"[]")+".slice().reverse()",Blockly.JavaScript.ORDER_FUNCTION_CALL]};Blockly.JavaScript.logic={};Blockly.JavaScript.controls_if=function(a){var b=0,c="";do{var d=Blockly.JavaScript.valueToCode(a,"IF"+b,Blockly.JavaScript.ORDER_NONE)||"false";var e=Blockly.JavaScript.statementToCode(a,"DO"+b);c+=(0",GTE:">="}[a.getFieldValue("OP")],c="=="==b||"!="==b?Blockly.JavaScript.ORDER_EQUALITY:Blockly.JavaScript.ORDER_RELATIONAL,d=Blockly.JavaScript.valueToCode(a,"A",c)||"0"; a=Blockly.JavaScript.valueToCode(a,"B",c)||"0";return[d+" "+b+" "+a,c]};Blockly.JavaScript.logic_operation=function(a){var b="AND"==a.getFieldValue("OP")?"&&":"||",c="&&"==b?Blockly.JavaScript.ORDER_LOGICAL_AND:Blockly.JavaScript.ORDER_LOGICAL_OR,d=Blockly.JavaScript.valueToCode(a,"A",c);a=Blockly.JavaScript.valueToCode(a,"B",c);if(d||a){var e="&&"==b?"true":"false";d||(d=e);a||(a=e)}else{a=d="false"}return[d+" "+b+" "+a,c]};Blockly.JavaScript.logic_negate=function(a){var b=Blockly.JavaScript.ORDER_LOGICAL_NOT;return["!"+(Blockly.JavaScript.valueToCode(a,"BOOL",b)||"true"),b]};Blockly.JavaScript.logic_boolean=function(a){return["TRUE"==a.getFieldValue("BOOL")?"true":"false",Blockly.JavaScript.ORDER_ATOMIC]};Blockly.JavaScript.logic_null=function(a){return["null",Blockly.JavaScript.ORDER_ATOMIC]};Blockly.JavaScript.logic_ternary=function(a){var b=Blockly.JavaScript.valueToCode(a,"IF",Blockly.JavaScript.ORDER_CONDITIONAL)||"false",c=Blockly.JavaScript.valueToCode(a,"THEN",Blockly.JavaScript.ORDER_CONDITIONAL)||"null";a=Blockly.JavaScript.valueToCode(a,"ELSE",Blockly.JavaScript.ORDER_CONDITIONAL)||"null";return[b+" ? "+c+" : "+a,Blockly.JavaScript.ORDER_CONDITIONAL]};Blockly.JavaScript.loops={};Blockly.JavaScript.controls_repeat_ext=function(a){var b=a.getField("TIMES")?String(Number(a.getFieldValue("TIMES"))):Blockly.JavaScript.valueToCode(a,"TIMES",Blockly.JavaScript.ORDER_ASSIGNMENT)||"0",c=Blockly.JavaScript.statementToCode(a,"DO");c=Blockly.JavaScript.addLoopTrap(c,a.id);a="";var d=Blockly.JavaScript.variableDB_.getDistinctName("count",Blockly.Variables.NAME_TYPE),e=b;b.match(/^\w+$/)||Blockly.isNumber(b)||(e=Blockly.JavaScript.variableDB_.getDistinctName("repeat_end",Blockly.Variables.NAME_TYPE),a+="var "+e+" = "+b+";\n");return a+("for (var "+d+" = 0; "+d+" < "+e+"; "+d+"++) {\n"+c+"}\n")};Blockly.JavaScript.controls_repeat=Blockly.JavaScript.controls_repeat_ext;Blockly.JavaScript.controls_whileUntil=function(a){var b="UNTIL"==a.getFieldValue("MODE"),c=Blockly.JavaScript.valueToCode(a,"BOOL",b?Blockly.JavaScript.ORDER_LOGICAL_NOT:Blockly.JavaScript.ORDER_NONE)||"false",d=Blockly.JavaScript.statementToCode(a,"DO"); d=Blockly.JavaScript.addLoopTrap(d,a.id);b&&(c="!"+c);return"while ("+c+") {\n"+d+"}\n"};Blockly.JavaScript.controls_for=function(a){var b=Blockly.JavaScript.variableDB_.getName(a.getFieldValue("VAR"),Blockly.Variables.NAME_TYPE),c=Blockly.JavaScript.valueToCode(a,"FROM",Blockly.JavaScript.ORDER_ASSIGNMENT)||"0",d=Blockly.JavaScript.valueToCode(a,"TO",Blockly.JavaScript.ORDER_ASSIGNMENT)||"0",e=Blockly.JavaScript.valueToCode(a,"BY",Blockly.JavaScript.ORDER_ASSIGNMENT)||"1",f=Blockly.JavaScript.statementToCode(a,"DO");f=Blockly.JavaScript.addLoopTrap(f,a.id);if(Blockly.isNumber(c)&&Blockly.isNumber(d)&&Blockly.isNumber(e)){var g=parseFloat(c)<=parseFloat(d);a="for ("+b+" = "+c+"; "+b+(g?" <= ":" >= ")+d+"; "+b;b=Math.abs(parseFloat(e));a=(1==b?a+(g?"++":"--"):a+((g?" += ":" -= ")+b))+(") {\n"+f+"}\n")}else{a="",g=c,c.match(/^\w+$/)||Blockly.isNumber(c)||(g=Blockly.JavaScript.variableDB_.getDistinctName(b+"_start",Blockly.Variables.NAME_TYPE),a+="var "+g+" = "+c+";\n"),c=d,d.match(/^\w+$/)||Blockly.isNumber(d)||(c=Blockly.JavaScript.variableDB_.getDistinctName(b+"_end",Blockly.Variables.NAME_TYPE),a+="var "+c+" = "+d+";\n"),d=Blockly.JavaScript.variableDB_.getDistinctName(b+"_inc",Blockly.Variables.NAME_TYPE),a+="var "+d+" = ",a=Blockly.isNumber(e)?a+(Math.abs(e)+";\n"):a+("Math.abs("+e+");\n"),a=a+("if ("+g+" > "+c+") {\n")+(Blockly.JavaScript.INDENT+d+" = -"+d+";\n"),a+="}\n",a+="for ("+b+" = "+g+"; "+d+" >= 0 ? "+b+" <= "+c+" : "+b+" >= "+c+"; "+b+" += "+d+") {\n"+f+"}\n"}return a};Blockly.JavaScript.controls_forEach=function(a){var b=Blockly.JavaScript.variableDB_.getName(a.getFieldValue("VAR"),Blockly.Variables.NAME_TYPE),c=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_ASSIGNMENT)||"[]",d=Blockly.JavaScript.statementToCode(a,"DO");d=Blockly.JavaScript.addLoopTrap(d,a.id);a="";var e=c;c.match(/^\w+$/)||(e=Blockly.JavaScript.variableDB_.getDistinctName(b+"_list",Blockly.Variables.NAME_TYPE),a+="var "+e+" = "+c+";\n");c=Blockly.JavaScript.variableDB_.getDistinctName(b+"_index",Blockly.Variables.NAME_TYPE); d=Blockly.JavaScript.INDENT+b+" = "+e+"["+c+"];\n"+d;return a+("for (var "+c+" in "+e+") {\n"+d+"}\n")};Blockly.JavaScript.controls_flow_statements=function(a){switch(a.getFieldValue("FLOW")){case"BREAK":return"break;\n";case"CONTINUE":return"continue;\n"}throw"Unknown flow statement."};Blockly.JavaScript.math={};Blockly.JavaScript.math_number=function(a){return[parseFloat(a.getFieldValue("NUM")),Blockly.JavaScript.ORDER_ATOMIC]};Blockly.JavaScript.math_arithmetic=function(a){var b={ADD:[" + ",Blockly.JavaScript.ORDER_ADDITION],MINUS:[" - ",Blockly.JavaScript.ORDER_SUBTRACTION],MULTIPLY:[" * ",Blockly.JavaScript.ORDER_MULTIPLICATION],DIVIDE:[" / ",Blockly.JavaScript.ORDER_DIVISION],POWER:[null,Blockly.JavaScript.ORDER_COMMA]}[a.getFieldValue("OP")],c=b[0];b=b[1];var d=Blockly.JavaScript.valueToCode(a,"A",b)||"0";a=Blockly.JavaScript.valueToCode(a,"B",b)||"0";return c?[d+c+a,b]:["Math.pow("+d+", "+a+")",Blockly.JavaScript.ORDER_FUNCTION_CALL]};Blockly.JavaScript.math_single=function(a){var b=a.getFieldValue("OP");if("NEG"==b){return a=Blockly.JavaScript.valueToCode(a,"NUM",Blockly.JavaScript.ORDER_UNARY_NEGATION)||"0","-"==a[0]&&(a=" "+a),["-"+a,Blockly.JavaScript.ORDER_UNARY_NEGATION]}a="SIN"==b||"COS"==b||"TAN"==b?Blockly.JavaScript.valueToCode(a,"NUM",Blockly.JavaScript.ORDER_DIVISION)||"0":Blockly.JavaScript.valueToCode(a,"NUM",Blockly.JavaScript.ORDER_NONE)||"0";switch(b){case"ABS":var c="Math.abs("+a+")";break;case"ROOT":c="Math.sqrt("+a+")";break;case"LN":c="Math.log("+a+")";break;case"EXP":c="Math.exp("+a+")";break;case"POW10":c="Math.pow(10,"+a+")";break;case"ROUND":c="Math.round("+a+")";break;case"ROUNDUP":c="Math.ceil("+a+")";break;case"ROUNDDOWN":c="Math.floor("+a+")";break;case"SIN":c="Math.sin("+a+" / 180 * Math.PI)";break;case"COS":c="Math.cos("+a+" / 180 * Math.PI)";break;case"TAN":c="Math.tan("+a+" / 180 * Math.PI)"}if(c){return[c,Blockly.JavaScript.ORDER_FUNCTION_CALL]}switch(b){case"LOG10":c="Math.log("+a+") / Math.log(10)";break;case"ASIN":c="Math.asin("+a+") / Math.PI * 180"; break;case"ACOS":c="Math.acos("+a+") / Math.PI * 180";break;case"ATAN":c="Math.atan("+a+") / Math.PI * 180";break;default:throw"Unknown math operator: "+b}return[c,Blockly.JavaScript.ORDER_DIVISION]};Blockly.JavaScript.math_constant=function(a){return{PI:["Math.PI",Blockly.JavaScript.ORDER_MEMBER],E:["Math.E",Blockly.JavaScript.ORDER_MEMBER],GOLDEN_RATIO:["(1 + Math.sqrt(5)) / 2",Blockly.JavaScript.ORDER_DIVISION],SQRT2:["Math.SQRT2",Blockly.JavaScript.ORDER_MEMBER],SQRT1_2:["Math.SQRT1_2",Blockly.JavaScript.ORDER_MEMBER],INFINITY:["Infinity",Blockly.JavaScript.ORDER_ATOMIC]}[a.getFieldValue("CONSTANT")]};Blockly.JavaScript.math_number_property=function(a){var b=Blockly.JavaScript.valueToCode(a,"NUMBER_TO_CHECK",Blockly.JavaScript.ORDER_MODULUS)||"0",c=a.getFieldValue("PROPERTY");if("PRIME"==c){return[Blockly.JavaScript.provideFunction_("mathIsPrime",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(n) {"," // https://en.wikipedia.org/wiki/Primality_test#Naive_methods"," if (n == 2 || n == 3) {"," return true;"," }"," // False if n is NaN, negative, is 1, or not whole."," // And false if n is divisible by 2 or 3."," if (isNaN(n) || n <= 1 || n % 1 != 0 || n % 2 == 0 || n % 3 == 0) {"," return false;"," }"," // Check all the numbers of form 6k +/- 1, up to sqrt(n)."," for (var x = 6; x <= Math.sqrt(n) + 1; x += 6) {"," if (n % (x - 1) == 0 || n % (x + 1) == 0) {"," return false;"," }"," }"," return true;","}"])+"("+b+")",Blockly.JavaScript.ORDER_FUNCTION_CALL]}switch(c){case"EVEN":var d=b+" % 2 == 0";break;case"ODD":d=b+" % 2 == 1";break;case"WHOLE":d=b+" % 1 == 0";break;case"POSITIVE":d=b+" > 0";break;case"NEGATIVE":d=b+" < 0";break;case"DIVISIBLE_BY":a=Blockly.JavaScript.valueToCode(a,"DIVISOR",Blockly.JavaScript.ORDER_MODULUS)||"0",d=b+" % "+a+" == 0"}return[d,Blockly.JavaScript.ORDER_EQUALITY]};Blockly.JavaScript.math_change=function(a){var b=Blockly.JavaScript.valueToCode(a,"DELTA",Blockly.JavaScript.ORDER_ADDITION)||"0";a=Blockly.JavaScript.variableDB_.getName(a.getFieldValue("VAR"),Blockly.Variables.NAME_TYPE); return a+" = (typeof "+a+" == 'number' ? "+a+" : 0) + "+b+";\n"};Blockly.JavaScript.math_round=Blockly.JavaScript.math_single;Blockly.JavaScript.math_trig=Blockly.JavaScript.math_single;Blockly.JavaScript.math_on_list=function(a){var b=a.getFieldValue("OP");switch(b){case"SUM":a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_MEMBER)||"[]";a+=".reduce(function(x, y) {return x + y;})";break;case"MIN":a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_COMMA)||"[]";a="Math.min.apply(null, "+a+")";break;case"MAX":a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_COMMA)||"[]";a="Math.max.apply(null, "+a+")";break;case"AVERAGE":b=Blockly.JavaScript.provideFunction_("mathMean",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(myList) {"," return myList.reduce(function(x, y) {return x + y;}) / myList.length;","}"]);a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_NONE)||"[]";a=b+"("+a+")";break;case"MEDIAN":b=Blockly.JavaScript.provideFunction_("mathMedian",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(myList) {"," var localList = myList.filter(function (x) {return typeof x == 'number';});"," if (!localList.length) return null;"," localList.sort(function(a, b) {return b - a;});"," if (localList.length % 2 == 0) {"," return (localList[localList.length / 2 - 1] + localList[localList.length / 2]) / 2;"," } else {"," return localList[(localList.length - 1) / 2];"," }","}"]);a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_NONE)||"[]";a=b+"("+a+")";break;case"MODE":b=Blockly.JavaScript.provideFunction_("mathModes",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(values) {"," var modes = [];"," var counts = [];"," var maxCount = 0;"," for (var i = 0; i < values.length; i++) {"," var value = values[i];"," var found = false;"," var thisCount;"," for (var j = 0; j < counts.length; j++) {"," if (counts[j][0] === value) {"," thisCount = ++counts[j][1];"," found = true;"," break;"," }"," }"," if (!found) {"," counts.push([value, 1]);"," thisCount = 1;"," }"," maxCount = Math.max(thisCount, maxCount);"," }"," for (var j = 0; j < counts.length; j++) {"," if (counts[j][1] == maxCount) {"," modes.push(counts[j][0]);"," }"," }"," return modes;","}"]); a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_NONE)||"[]";a=b+"("+a+")";break;case"STD_DEV":b=Blockly.JavaScript.provideFunction_("mathStandardDeviation",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(numbers) {"," var n = numbers.length;"," if (!n) return null;"," var mean = numbers.reduce(function(x, y) {return x + y;}) / n;"," var variance = 0;"," for (var j = 0; j < n; j++) {"," variance += Math.pow(numbers[j] - mean, 2);"," }"," variance = variance / n;"," return Math.sqrt(variance);","}"]);a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_NONE)||"[]";a=b+"("+a+")";break;case"RANDOM":b=Blockly.JavaScript.provideFunction_("mathRandomList",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(list) {"," var x = Math.floor(Math.random() * list.length);"," return list[x];","}"]);a=Blockly.JavaScript.valueToCode(a,"LIST",Blockly.JavaScript.ORDER_NONE)||"[]";a=b+"("+a+")";break;default:throw"Unknown operator: "+b}return[a,Blockly.JavaScript.ORDER_FUNCTION_CALL]};Blockly.JavaScript.math_modulo=function(a){var b=Blockly.JavaScript.valueToCode(a,"DIVIDEND",Blockly.JavaScript.ORDER_MODULUS)||"0";a=Blockly.JavaScript.valueToCode(a,"DIVISOR",Blockly.JavaScript.ORDER_MODULUS)||"0";return[b+" % "+a,Blockly.JavaScript.ORDER_MODULUS]};Blockly.JavaScript.math_constrain=function(a){var b=Blockly.JavaScript.valueToCode(a,"VALUE",Blockly.JavaScript.ORDER_COMMA)||"0",c=Blockly.JavaScript.valueToCode(a,"LOW",Blockly.JavaScript.ORDER_COMMA)||"0";a=Blockly.JavaScript.valueToCode(a,"HIGH",Blockly.JavaScript.ORDER_COMMA)||"Infinity";return["Math.min(Math.max("+b+", "+c+"), "+a+")",Blockly.JavaScript.ORDER_FUNCTION_CALL]};Blockly.JavaScript.math_random_int=function(a){var b=Blockly.JavaScript.valueToCode(a,"FROM",Blockly.JavaScript.ORDER_COMMA)||"0";a=Blockly.JavaScript.valueToCode(a,"TO",Blockly.JavaScript.ORDER_COMMA)||"0";return[Blockly.JavaScript.provideFunction_("mathRandomInt",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"(a, b) {"," if (a > b) {"," // Swap a and b to ensure a is smaller."," var c = a;"," a = b;"," b = c;"," }"," return Math.floor(Math.random() * (b - a + 1) + a);","}"])+"("+b+", "+a+")",Blockly.JavaScript.ORDER_FUNCTION_CALL] };Blockly.JavaScript.math_random_float=function(a){return["Math.random()",Blockly.JavaScript.ORDER_FUNCTION_CALL]};Blockly.JavaScript.procedures={};Blockly.JavaScript.procedures_defreturn=function(a){var b=Blockly.JavaScript.variableDB_.getName(a.getFieldValue("NAME"),Blockly.Procedures.NAME_TYPE),c=Blockly.JavaScript.statementToCode(a,"STACK");if(Blockly.JavaScript.STATEMENT_PREFIX){var d=a.id.replace(/\$/g,"$$$$");c=Blockly.JavaScript.prefixLines(Blockly.JavaScript.STATEMENT_PREFIX.replace(/%1/g,"'"+d+"'"),Blockly.JavaScript.INDENT)+c}Blockly.JavaScript.INFINITE_LOOP_TRAP&&(c=Blockly.JavaScript.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+a.id+"'")+c);(d=Blockly.JavaScript.valueToCode(a,"RETURN",Blockly.JavaScript.ORDER_NONE)||"")&&(d=Blockly.JavaScript.INDENT+"return "+d+";\n");for(var e=[],f=0;f