diff --git a/lib.min.js b/lib.min.js index 0a83b902..6b073184 100644 --- a/lib.min.js +++ b/lib.min.js @@ -270683,6 +270683,9 @@ var builtinExtensions = { }, onegpioRpiPico: function onegpioRpiPico() { return __webpack_require__(/*! ../extensions/scratch3_onegpioRpiPico */ "./node_modules/scratch-vm/src/extensions/scratch3_onegpioRpiPico/index.js"); + }, + onegpioEsp32: function onegpioEsp32() { + return __webpack_require__(/*! ../extensions/scratch3_onegpioEsp32 */ "./node_modules/scratch-vm/src/extensions/scratch3_onegpioEsp32/index.js"); } }; /** @@ -281808,6 +281811,778 @@ module.exports = Scratch3EspOneGPIO; /***/ }), +/***/ "./node_modules/scratch-vm/src/extensions/scratch3_onegpioEsp32/index.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/scratch-vm/src/extensions/scratch3_onegpioEsp32/index.js ***! + \*******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +/* +This is the Scratch 3 extension to remotely control an +Arduino Uno, ESP-8666, or Raspberry Pi + + + Copyright (c) 2019 Alan Yorinks All rights reserved. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + Version 3 as published by the Free Software Foundation; either + or (at your option) any later version. + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE + along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +// Boiler plate from the Scratch Team +var ArgumentType = __webpack_require__(/*! ../../extension-support/argument-type */ "./node_modules/scratch-vm/src/extension-support/argument-type.js"); + +var BlockType = __webpack_require__(/*! ../../extension-support/block-type */ "./node_modules/scratch-vm/src/extension-support/block-type.js"); + +var formatMessage = __webpack_require__(/*! format-message */ "./node_modules/scratch-vm/node_modules/format-message/index.js"); + +__webpack_require__(/*! sweetalert */ "./node_modules/scratch-vm/node_modules/sweetalert/dist/sweetalert.min.js"); // The following are constants used within the extension +// Digital Modes + + +var DIGITAL_INPUT = 1; +var DIGITAL_OUTPUT = 2; +var PWM = 3; +var SERVO = 4; +var TOUCH_INPUT = 5; +var SONAR = 6; +var ANALOG_INPUT = 7; // an array to save the current pin mode +// this is common to all board types since it contains enough +// entries for all the boards. +// Modes are listed above - initialize to invalid mode of -1 + +var pin_modes = new Array(30).fill(-1); // has an websocket message already been received + +var alerted = false; +var connection_pending = false; // general outgoing websocket message holder + +var msg = null; // the pin assigned to the sonar trigger +// initially set to -1, an illegal value + +var sonar_report_pin = -1; // flag to indicate if the user connected to a board + +var connected = false; // arrays to hold input values + +var digital_inputs = new Array(32); +var analog_inputs = new Array(8); // flag to indicate if a websocket connect was +// ever attempted. + +var connect_attempt = false; // an array to buffer operations until socket is opened + +var wait_open = []; +var the_locale = null; // common + +var FormDigitalWrite = { + 'pt-br': 'Escrever Pino Digital [PIN]como[ON_OFF]', + 'pt': 'Escrever Pino Digital[PIN]como[ON_OFF]', + 'en': 'Write Digital Pin [PIN] [ON_OFF]', + 'fr': 'Mettre la pin numérique[PIN]à[ON_OFF]', + 'zh-tw': '腳位[PIN]數位輸出[ON_OFF]', + 'zh-cn': '引脚[PIN]数字输出[ON_OFF]', + 'pl': 'Ustaw cyfrowy Pin [PIN] na [ON_OFF]', + 'de': 'Setze digitalen Pin [PIN] [ON_OFF]', + 'ja': 'デジタル・ピン [PIN] に [ON_OFF] を出力', + 'nl': 'Schrijf Digitale Pin [PIN] [ON_OFF]' +}; +var FormPwmWrite = { + 'pt-br': 'Escrever Pino PWM[PIN]com[VALUE]%', + 'pt': 'Escrever Pino PWM[PIN]com[VALUE]%', + 'en': 'Write PWM Pin [PIN] [VALUE]%', + 'fr': 'Mettre la pin PWM[PIN]à[VALUE]%', + 'zh-tw': '腳位[PIN]類比輸出[VALUE]%', + 'zh-cn': '引脚[PIN]模拟输出[VALUE]%', + 'pl': 'Ustaw PWM Pin [PIN] na [VALUE]%', + 'de': 'Setze PWM-Pin [PIN] [VALUE]%', + 'ja': 'PWM ピン [PIN] に [VALUE]% を出力', + 'nl': 'Schrijf PWM Pin [PIN] [VALUE]%' +}; +var FormTone = { + 'pt-br': 'Soar no Pino[PIN]com[FREQ]Hz e[DURATION]ms', + 'pt': 'Soar no Pino[PIN]com[FREQ]Hz e[DURATION]ms', + 'en': 'Tone Pin [PIN] [FREQ] Hz [DURATION] ms', + 'fr': 'Définir le buzzer sur la pin[PIN]à[FREQ]Hz pendant[DURATION] ms', + 'zh-tw': '腳位[PIN]播放音調,頻率為[FREQ]赫茲 時間為[DURATION]毫秒', + 'zh-cn': '引脚[PIN]播放音调,频率为[FREQ]赫兹 时间为[DURATION]毫秒', + 'pl': 'Ustaw brzęczyk na Pinie [PIN] na [FREQ] Hz i [DURATION] ms%', + 'de': 'Spiele Ton am Pin [PIN] [FREQ] Hz [DURATION] ms', + 'ja': '音調ピン [PIN] を [FREQ] Hz [DURATION] ms に', + 'nl': 'Zet toon van pin [PIN] op [FREQ] Hz voor [DURATION] ms' +}; +var FormServo = { + 'pt-br': 'Mover Servo Motor no[PIN]para[ANGLE]°', + 'pt': 'Mover Servo Motor no[PIN]para[ANGLE]°', + 'en': 'Write Servo Pin [PIN] [ANGLE] Deg.', + 'fr': 'Mettre le servo[PIN]à[ANGLE] Deg.', + 'zh-tw': '伺服馬達腳位[PIN]轉動角度到[ANGLE]度', + 'zh-cn': '伺服电机引脚[PIN]转动角度到[ANGLE]度', + 'pl': 'Ustaw silnik servo na Pinie [PIN] na [ANGLE]°', + 'de': 'Setze Servo-Pin [PIN] [ANGLE]°', + 'ja': 'サーボ・ピン [PIN] に [ANGLE] 度を出力', + 'nl': 'Schrijf Servo Pin [PIN] [ANGLE]° graden' +}; +var FormAnalogRead = { + 'pt-br': 'Ler Pino Analógico [PIN]', + 'pt': 'Ler Pino Analógico [PIN]', + 'en': 'Read Analog Pin [PIN]', + 'fr': 'Lecture analogique [PIN]', + 'zh-tw': '讀取類比腳位[PIN]', + 'zh-cn': '读取模拟引脚[PIN]', + 'pl': 'Odczytaj analogowy Pin [PIN]', + 'de': 'Lies analogen Pin [PIN]', + 'ja': 'アナログ・ピン [PIN] から入力', + 'nl': 'Lees Analoge Pin [PIN]' +}; +var FormDigitalRead = { + 'pt-br': 'Ler Pino Digital [PIN]', + 'pt': 'Ler Pino Digital [PIN]', + 'en': 'Read Digital Pin [PIN]', + 'fr': 'Lecture numérique [PIN]', + 'zh-tw': '讀取數位腳位[PIN]', + 'zh-cn': '读取数字引脚[PIN]', + 'pl': 'Odczytaj cyfrowy Pin [PIN]', + 'de': 'Lies digitalen Pin [PIN]', + 'ja': 'デジタル・ピン [PIN] から入力', + 'nl': 'Lees Digitale Pin [PIN]' +}; +var FormSonarRead = { + 'pt-br': 'Ler Distância: Sonar em T[TRIGGER_PIN] E[ECHO_PIN]', + 'pt': 'Ler Distância: Sonar em T[TRIGGER_PIN] E[ECHO_PIN]', + 'en': 'Read SONAR T [TRIGGER_PIN] E [ECHO_PIN]', + 'fr': 'Distance de lecture : Sonar T [TRIGGER_PIN] E [ECHO_PIN]', + 'zh-tw': 'HCSR超音波感測器,Echo在腳位[ECHO_PIN] Trig在腳位[TRIGGER_PIN]', + 'zh-cn': 'HCSR超声波传感器,Echo在引脚[ECHO_PIN] Trig在引脚[TRIGGER_PIN]', + 'pl': 'Odczytaj odległość: Sonar T [TRIGGER_PIN] E [ECHO_PIN]', + 'de': 'Lies Sonar T [TRIGGER_PIN] E [ECHO_PIN]', + 'ja': '超音波測距器からトリガ [TRIGGER_PIN] とエコー [ECHO_PIN] で入力', + 'nl': 'Lees SONAR T [TRIGGER_PIN] E [ECHO_IPN]' +}; // ESP32 specific + +var FormIPBlockE = { + 'pt-br': 'Endereço IP da placa ESP-32 [IP_ADDR]', + 'pt': 'Endereço IP da placa ESP-32 [IP_ADDR]', + 'en': 'ESP-32 IP Address [IP_ADDR]', + 'fr': "Adresse IP de l'ESP-32 [IP_ADDR]", + 'zh-tw': 'ESP-32 IP 位址[IP_ADDR]', + 'zh-cn': 'ESP-32 IP 地址[IP_ADDR]', + 'pl': 'Adres IP ESP-32 [IP_ADDR]', + 'de': 'ESP-32 IP-Adresse [IP_ADDR]', + 'ja': 'ESP-32 の IP アドレスを [IP_ADDR] に', + 'nl': 'ESP-32 IP Adres [IP_ADDR]' +}; // Raspbery Pi Specific + +var FormIPBlockR = { + 'pt-br': 'Endereço IP do RPi [IP_ADDR]', + 'pt': 'Endereço IP do RPi [IP_ADDR]', + 'en': 'Remote IP Address [IP_ADDR]', + 'fr': 'Adresse IP du RPi [IP_ADDR]', + 'zh-tw': '遠端 IP 位址[IP_ADDR]', + 'zh-cn': '远程 IP 地址[IP_ADDR]', + 'pl': 'Adres IP Rasberry Pi [IP_ADDR]', + 'de': 'IP-Adresse des RPi [IP_ADDR]', + 'ja': 'ラズパイの IP アドレスを [IP_ADDR] に', + 'nl': 'Adres IP Rasberry Pi [IP_ADDR]' +}; // General Alert + +var FormWSClosed = { + 'pt-br': "A Conexão do WebSocket está Fechada", + 'pt': "A Conexão do WebSocket está Fechada", + 'en': "WebSocket Connection Is Closed.", + 'fr': "La connexion WebSocket est fermée.", + 'zh-tw': "網路連線中斷", + 'zh-cn': "网络连接中断", + 'pl': "Połączenie WebSocket jest zamknięte.", + 'de': "WebSocket-Verbindung geschlossen.", + 'ja': "ウェブソケット接続が切断されています", + 'nl': 'WebSocket Connectie is gesloten.' +}; // ESP-32 Alert + +var FormAlrt = { + 'pt-br': { + title: "Atenção", + text: "Informe o endereço IP da placa ESP-32 no bloco apropriado", + icon: "info" + }, + 'pt': { + title: "Atenção", + text: "Informe o endereço IP da placa ESP-32 no bloco apropriado", + icon: "info" + }, + 'en': { + title: "Reminder", + text: "Enter the IP Address of the ESP-32 Into The IP Address Block", + icon: "info" + }, + 'fr': { + title: "Attention", + text: "Entrez l'adresse IP de l'ESP-32 dans le bloc approprié.", + icon: "info" + }, + 'zh-tw': { + title: "提醒", + text: "請於 IP 位址積木中輸入 ESP-32 的 IP 位址", + icon: "info" + }, + 'zh-cn': { + title: "提醒", + text: "请于 IP地址积木中输入 ESP-32 的 IP 地址", + icon: "info" + }, + 'pl': { + title: "Przypomnienie", + text: "Wprowadź adres IP ESP-32 do bloku adresu IP", + icon: "info" + }, + 'de': { + title: "Wichtig", + text: "Trage die IP-Adresse des ESP-32 im Blcok IP-Adresse ein", + icon: "info" + }, + 'ja': { + title: "注意", + text: "ESP-32 の IP アドレスを IP アドレス・ブロックに記入して下さい", + icon: "info" + }, + 'nl': { + title: "Attentie", + text: "Geef het IP adres van de ESP-32 in het IP Adres Blok", + icon: "info" + } +}; + +var Scratch3Esp32OneGPIO = /*#__PURE__*/function () { + function Scratch3Esp32OneGPIO(runtime) { + _classCallCheck(this, Scratch3Esp32OneGPIO); + + the_locale = this._setLocale(); + this.runtime = runtime; + } + + _createClass(Scratch3Esp32OneGPIO, [{ + key: "getInfo", + value: function getInfo() { + the_locale = this._setLocale(); + this.connect(); + swal(FormAlrt[the_locale]); + return { + id: 'onegpioEsp32', + color1: '#0C5986', + color2: '#34B0F7', + name: 'OneGpio ESP32', + blockIconURI: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAATEAAAEwCAYAAADfOUbNAAAABHNCSVQICAgIfAhkiAAAABl0RVh0U29mdHdhcmUAZ25vbWUtc2NyZWVuc2hvdO8Dvz4AAAAtdEVYdENyZWF0aW9uIFRpbWUAVHVlIDE5IE1hciAyMDI0IDA0OjQwOjEzIFBNIEVEVIAc5LYAABUASURBVHic7d15YFTlvYfx75mZhKwQGLYkbAkgGGRfIqAWKC64sClqa2uv4HLRorTuXpcWsG63tFet1aLY1uJOBSrKUmipIogg+yYYlCUEIwFJAkkmmXP/qHVBSM6wJPNjns9/QDJzQmaeec97znuO47quKwAwKiBJ4apKzf/bIoWq6BmA6JbUuLG69zhdDVPrSfoyYvuLinXvWwVqvn9rnW4cANSkIK2dRu9zNHZ4V0lfRsyVq7jKMg1cO7VONw4AalI88k6Fw1/vNfrqcFsA4LgRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEAphExAKYRMQCmETEApgXqegOAWOdLCiolPV0pjRsqPiFBgYCjcKhclWXFKttbqNI9BSotCdX1ZkYtInZECWpwzuXq2Dkon1P9V4a3ztYHcz5S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', + blocks: [{ + opcode: 'ip_address', + blockType: BlockType.COMMAND, + //text: 'Write Digital Pin [PIN] [ON_OFF]', + text: FormIPBlockE[the_locale], + arguments: { + IP_ADDR: { + type: ArgumentType.NUMBER, + defaultValue: '' //menu: "digital_pins" + + } + } + }, { + opcode: 'digital_write', + blockType: BlockType.COMMAND, + text: FormDigitalWrite[the_locale], + arguments: { + PIN: { + type: ArgumentType.NUMBER, + defaultValue: '4', + menu: "digital_pins" + }, + ON_OFF: { + type: ArgumentType.NUMBER, + defaultValue: '0', + menu: "on_off" + } + } + }, { + opcode: 'pwm_write', + blockType: BlockType.COMMAND, + text: FormPwmWrite[the_locale], + arguments: { + PIN: { + type: ArgumentType.NUMBER, + defaultValue: '4', + menu: 'pwm_pins' + }, + VALUE: { + type: ArgumentType.NUMBER, + defaultValue: '50' + } + } + }, '---', { + opcode: 'servo', + blockType: BlockType.COMMAND, + text: FormServo[the_locale], + arguments: { + PIN: { + type: ArgumentType.NUMBER, + defaultValue: '4', + menu: 'digital_pins' + }, + ANGLE: { + type: ArgumentType.NUMBER, + defaultValue: 90 + } + } + }, '---', { + opcode: 'analog_read', + blockType: BlockType.REPORTER, + text: FormAnalogRead[the_locale], + arguments: { + PIN: { + type: ArgumentType.NUMBER, + defaultValue: '32', + menu: 'analog_input_pins' + } + } + }, '---', { + opcode: 'digital_read', + blockType: BlockType.REPORTER, + text: FormDigitalRead[the_locale], + arguments: { + PIN: { + type: ArgumentType.NUMBER, + defaultValue: '2', + menu: 'digital_pins' + } + } + }, '---', { + opcode: 'sonar_read', + blockType: BlockType.REPORTER, + text: FormSonarRead[the_locale], + arguments: { + TRIGGER_PIN: { + type: ArgumentType.NUMBER, + defaultValue: '4', + menu: 'digital_pins' + }, + ECHO_PIN: { + type: ArgumentType.NUMBER, + defaultValue: '5', + menu: 'digital_pins' + } + } + }], + menus: { + digital_pins: { + acceptReporters: true, + items: ['4', '5', '12', '13', '14', '16', '17', '18', '19', '21', '22', '23', '25', '26', '27', '32', '33'] + }, + pwm_pins: { + acceptReporters: true, + items: ['2', '4', '5', '12', '13', '14', '16', '17', '18', '19', '21', '22', '23', '25', '26', '27', '32', '33'] + }, + analog_input_pins: { + acceptReporters: true, + items: ['32', '33', '34', '35', '36', '39'] + }, + mode: { + acceptReporters: true, + items: [{ + text: "Input", + value: '1' + }, { + text: "Output", + value: '2' + }] + }, + on_off: { + acceptReporters: true, + items: ['0', '1'] + } + } + }; + } // The block handlers + // command blocks + + }, { + key: "ip_address", + value: function ip_address(args) { + if (!connected) { + if (!connection_pending) { + this.connect(); + connection_pending = true; + } + } + + if (!connected) { + var callbackEntry = [this.ip_address.bind(this), args]; + wait_open.push(callbackEntry); + } else { + msg = { + "command": "ip_address", + "address": args['IP_ADDR'] + }; + msg = JSON.stringify(msg); + window.sockete.send(msg); + } + } + }, { + key: "digital_write", + value: function digital_write(args) { + if (!connected) { + if (!connection_pending) { + this.connect(); + connection_pending = true; + } + } + + if (!connected) { + var callbackEntry = [this.digital_write.bind(this), args]; + wait_open.push(callbackEntry); + } else { + var pin = args['PIN']; + pin = parseInt(pin, 10); + + if (pin_modes[pin] !== DIGITAL_OUTPUT) { + pin_modes[pin] = DIGITAL_OUTPUT; + msg = { + "command": "set_mode_digital_output", + "pin": pin + }; + msg = JSON.stringify(msg); + window.sockete.send(msg); + } + + var value = args['ON_OFF']; + value = parseInt(value, 10); + msg = { + "command": "digital_write", + "pin": pin, + "value": value + }; + msg = JSON.stringify(msg); + window.sockete.send(msg); + } + } //pwm + + }, { + key: "pwm_write", + value: function pwm_write(args) { + if (!connected) { + if (!connection_pending) { + this.connect(); + connection_pending = true; + } + } + + if (!connected) { + var callbackEntry = [this.pwm_write.bind(this), args]; + wait_open.push(callbackEntry); + } else { + var pin = args['PIN']; // maximum value for RPi and Arduino + + var the_max = 255; + pin = parseInt(pin, 10); + var value = args['VALUE']; + value = parseInt(value, 10); // calculate the value based on percentage + + value = the_max * (value / 100); + value = Math.round(value); + + if (pin_modes[pin] !== PWM) { + pin_modes[pin] = PWM; + msg = { + "command": "set_mode_pwm", + "pin": pin + }; + msg = JSON.stringify(msg); + window.sockete.send(msg); + } + + msg = { + "command": "pwm_write", + "pin": pin, + "value": value + }; + msg = JSON.stringify(msg); + window.sockete.send(msg); + } + } // move servo + + }, { + key: "servo", + value: function servo(args) { + if (!connected) { + if (!connection_pending) { + this.connect(); + connection_pending = true; + } + } + + if (!connected) { + var callbackEntry = [this.servo.bind(this), args]; + wait_open.push(callbackEntry); + } else { + var pin = args['PIN']; + pin = parseInt(pin, 10); + var angle = args['ANGLE']; + angle = parseInt(angle, 10); + + if (pin_modes[pin] !== SERVO) { + pin_modes[pin] = SERVO; + msg = { + "command": "set_mode_servo", + "pin": pin + }; + msg = JSON.stringify(msg); + window.sockete.send(msg); + } + + msg = { + 'command': 'servo_position', + "pin": pin, + 'position': angle + }; + msg = JSON.stringify(msg); + window.sockete.send(msg); + } + } // reporter blocks + + }, { + key: "analog_read", + value: function analog_read(args) { + if (!connected) { + if (!connection_pending) { + this.connect(); + connection_pending = true; + } + } + + if (!connected) { + var callbackEntry = [this.analog_read.bind(this), args]; + wait_open.push(callbackEntry); + } else { + var pin = args['PIN']; + pin = parseInt(pin, 10); + + if (pin_modes[pin] !== ANALOG_INPUT) { + pin_modes[pin] = ANALOG_INPUT; + msg = { + "command": "set_mode_analog_input", + "pin": pin + }; + msg = JSON.stringify(msg); + window.sockete.send(msg); + } + + return analog_inputs[pin]; + } + } + }, { + key: "digital_read", + value: function digital_read(args) { + if (!connected) { + if (!connection_pending) { + this.connect(); + connection_pending = true; + } + } + + if (!connected) { + var callbackEntry = [this.digital_read.bind(this), args]; + wait_open.push(callbackEntry); + } else { + var pin = args['PIN']; + pin = parseInt(pin, 10); + + if (pin_modes[pin] !== DIGITAL_INPUT) { + pin_modes[pin] = DIGITAL_INPUT; + msg = { + "command": "set_mode_digital_input", + "pin": pin + }; + msg = JSON.stringify(msg); + window.sockete.send(msg); + } + + return digital_inputs[pin]; + } + } + }, { + key: "sonar_read", + value: function sonar_read(args) { + if (!connected) { + if (!connection_pending) { + this.connect(); + connection_pending = true; + } + } + + if (!connected) { + var callbackEntry = [this.sonar_read.bind(this), args]; + wait_open.push(callbackEntry); + } else { + var trigger_pin = args['TRIGGER_PIN']; + trigger_pin = parseInt(trigger_pin, 10); + sonar_report_pin = trigger_pin; + var echo_pin = args['ECHO_PIN']; + echo_pin = parseInt(echo_pin, 10); + + if (pin_modes[trigger_pin] !== SONAR) { + pin_modes[trigger_pin] = SONAR; + msg = { + "command": "set_mode_sonar", + "trigger_pin": trigger_pin, + "echo_pin": echo_pin + }; + msg = JSON.stringify(msg); + window.sockete.send(msg); + } + + return digital_inputs[sonar_report_pin]; + } + } + }, { + key: "_setLocale", + value: function _setLocale() { + var now_locale = ''; + + switch (formatMessage.setup().locale) { + case 'pt-br': + case 'pt': + now_locale = 'pt-br'; + break; + + case 'en': + now_locale = 'en'; + break; + + case 'fr': + now_locale = 'fr'; + break; + + case 'zh-tw': + now_locale = 'zh-tw'; + break; + + case 'zh-cn': + now_locale = 'zh-cn'; + break; + + case 'pl': + now_locale = 'pl'; + break; + + case 'ja': + now_locale = 'ja'; + break; + + case 'de': + now_locale = 'de'; + break; + + case 'nl': + now_locale = 'nl'; + break; + + default: + now_locale = 'en'; + break; + } + + return now_locale; + } // end of block handlers + // helpers + + }, { + key: "connect", + value: function connect() { + if (connected) { + // ignore additional connection attempts + return; + } else { + connect_attempt = true; + window.sockete = new WebSocket("ws://127.0.0.1:9007"); + msg = JSON.stringify({ + "id": "to_esp32_gateway" + }); + } // websocket event handlers + + + window.sockete.onopen = function () { + digital_inputs.fill(1); + analog_inputs.fill(0); // connection complete + + connected = true; + connect_attempt = true; // the message is built above + + try { + //ws.send(msg); + window.sockete.send(msg); + } catch (err) {// ignore this exception + } + + for (var index = 0; index < wait_open.length; index++) { + var data = wait_open[index]; + data[0](data[1]); + } + }; + + window.sockete.onclose = function () { + digital_inputs.fill(1); + analog_inputs.fill(0); + sonar_report_pin = -1; + pin_modes.fill(-1); + + if (alerted === false) { + alerted = true; + alert(FormWSClosed[the_locale]); + } + + connected = false; + }; // reporter messages from the board + + + window.sockete.onmessage = function (message) { + msg = JSON.parse(message.data); + var report_type = msg["report"]; + var pin = null; + var value = null; // types - digital, analog, sonar + + if (report_type === 'digital_input') { + pin = msg['pin']; + pin = parseInt(pin, 10); + value = msg['value']; + digital_inputs[pin] = value; + } else if (report_type === 'analog_input') { + pin = msg['pin']; + pin = parseInt(pin, 10); + value = msg['value']; + analog_inputs[pin] = value; + } else if (report_type === 'sonar_data') { + value = msg['value']; + digital_inputs[sonar_report_pin] = value; + } + }; + } + }]); + + return Scratch3Esp32OneGPIO; +}(); + +module.exports = Scratch3Esp32OneGPIO; + +/***/ }), + /***/ "./node_modules/scratch-vm/src/extensions/scratch3_onegpioPicoboard/index.js": /*!***********************************************************************************!*\ !*** ./node_modules/scratch-vm/src/extensions/scratch3_onegpioPicoboard/index.js ***! @@ -355968,22 +356743,26 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _onegpioEsp_onegpioEsp_png__WEBPACK_IMPORTED_MODULE_35___default = /*#__PURE__*/__webpack_require__.n(_onegpioEsp_onegpioEsp_png__WEBPACK_IMPORTED_MODULE_35__); /* harmony import */ var _onegpioEsp_onegpioEsp_small_png__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./onegpioEsp/onegpioEsp-small.png */ "./src/lib/libraries/extensions/onegpioEsp/onegpioEsp-small.png"); /* harmony import */ var _onegpioEsp_onegpioEsp_small_png__WEBPACK_IMPORTED_MODULE_36___default = /*#__PURE__*/__webpack_require__.n(_onegpioEsp_onegpioEsp_small_png__WEBPACK_IMPORTED_MODULE_36__); -/* harmony import */ var _onegpioPicoboard_onegpioPicoboard_jpg__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./onegpioPicoboard/onegpioPicoboard.jpg */ "./src/lib/libraries/extensions/onegpioPicoboard/onegpioPicoboard.jpg"); -/* harmony import */ var _onegpioPicoboard_onegpioPicoboard_jpg__WEBPACK_IMPORTED_MODULE_37___default = /*#__PURE__*/__webpack_require__.n(_onegpioPicoboard_onegpioPicoboard_jpg__WEBPACK_IMPORTED_MODULE_37__); -/* harmony import */ var _onegpioPicoboard_onegpioPicoboard_small_png__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./onegpioPicoboard/onegpioPicoboard-small.png */ "./src/lib/libraries/extensions/onegpioPicoboard/onegpioPicoboard-small.png"); -/* harmony import */ var _onegpioPicoboard_onegpioPicoboard_small_png__WEBPACK_IMPORTED_MODULE_38___default = /*#__PURE__*/__webpack_require__.n(_onegpioPicoboard_onegpioPicoboard_small_png__WEBPACK_IMPORTED_MODULE_38__); -/* harmony import */ var _onegpioCpx_onegpioCpx_jpg__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./onegpioCpx/onegpioCpx.jpg */ "./src/lib/libraries/extensions/onegpioCpx/onegpioCpx.jpg"); -/* harmony import */ var _onegpioCpx_onegpioCpx_jpg__WEBPACK_IMPORTED_MODULE_39___default = /*#__PURE__*/__webpack_require__.n(_onegpioCpx_onegpioCpx_jpg__WEBPACK_IMPORTED_MODULE_39__); -/* harmony import */ var _onegpioCpx_onegpioCpx_small_png__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./onegpioCpx/onegpioCpx-small.png */ "./src/lib/libraries/extensions/onegpioCpx/onegpioCpx-small.png"); -/* harmony import */ var _onegpioCpx_onegpioCpx_small_png__WEBPACK_IMPORTED_MODULE_40___default = /*#__PURE__*/__webpack_require__.n(_onegpioCpx_onegpioCpx_small_png__WEBPACK_IMPORTED_MODULE_40__); -/* harmony import */ var _onegpioRoboHAT_onegpioRoboHAT_png__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./onegpioRoboHAT/onegpioRoboHAT.png */ "./src/lib/libraries/extensions/onegpioRoboHAT/onegpioRoboHAT.png"); -/* harmony import */ var _onegpioRoboHAT_onegpioRoboHAT_png__WEBPACK_IMPORTED_MODULE_41___default = /*#__PURE__*/__webpack_require__.n(_onegpioRoboHAT_onegpioRoboHAT_png__WEBPACK_IMPORTED_MODULE_41__); -/* harmony import */ var _onegpioRoboHAT_onegpioRoboHAT_small_png__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./onegpioRoboHAT/onegpioRoboHAT-small.png */ "./src/lib/libraries/extensions/onegpioRoboHAT/onegpioRoboHAT-small.png"); -/* harmony import */ var _onegpioRoboHAT_onegpioRoboHAT_small_png__WEBPACK_IMPORTED_MODULE_42___default = /*#__PURE__*/__webpack_require__.n(_onegpioRoboHAT_onegpioRoboHAT_small_png__WEBPACK_IMPORTED_MODULE_42__); -/* harmony import */ var _onegpioRpiPico_onegpioRpiPico_png__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./onegpioRpiPico/onegpioRpiPico.png */ "./src/lib/libraries/extensions/onegpioRpiPico/onegpioRpiPico.png"); -/* harmony import */ var _onegpioRpiPico_onegpioRpiPico_png__WEBPACK_IMPORTED_MODULE_43___default = /*#__PURE__*/__webpack_require__.n(_onegpioRpiPico_onegpioRpiPico_png__WEBPACK_IMPORTED_MODULE_43__); -/* harmony import */ var _onegpioRpiPico_onegpioRpiPico_small_png__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./onegpioRpiPico/onegpioRpiPico-small.png */ "./src/lib/libraries/extensions/onegpioRpiPico/onegpioRpiPico-small.png"); -/* harmony import */ var _onegpioRpiPico_onegpioRpiPico_small_png__WEBPACK_IMPORTED_MODULE_44___default = /*#__PURE__*/__webpack_require__.n(_onegpioRpiPico_onegpioRpiPico_small_png__WEBPACK_IMPORTED_MODULE_44__); +/* harmony import */ var _onegpioEsp32_onegpioEsp32_png__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./onegpioEsp32/onegpioEsp32.png */ "./src/lib/libraries/extensions/onegpioEsp32/onegpioEsp32.png"); +/* harmony import */ var _onegpioEsp32_onegpioEsp32_png__WEBPACK_IMPORTED_MODULE_37___default = /*#__PURE__*/__webpack_require__.n(_onegpioEsp32_onegpioEsp32_png__WEBPACK_IMPORTED_MODULE_37__); +/* harmony import */ var _onegpioEsp32_onegpioEsp32_small_png__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./onegpioEsp32/onegpioEsp32-small.png */ "./src/lib/libraries/extensions/onegpioEsp32/onegpioEsp32-small.png"); +/* harmony import */ var _onegpioEsp32_onegpioEsp32_small_png__WEBPACK_IMPORTED_MODULE_38___default = /*#__PURE__*/__webpack_require__.n(_onegpioEsp32_onegpioEsp32_small_png__WEBPACK_IMPORTED_MODULE_38__); +/* harmony import */ var _onegpioPicoboard_onegpioPicoboard_jpg__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./onegpioPicoboard/onegpioPicoboard.jpg */ "./src/lib/libraries/extensions/onegpioPicoboard/onegpioPicoboard.jpg"); +/* harmony import */ var _onegpioPicoboard_onegpioPicoboard_jpg__WEBPACK_IMPORTED_MODULE_39___default = /*#__PURE__*/__webpack_require__.n(_onegpioPicoboard_onegpioPicoboard_jpg__WEBPACK_IMPORTED_MODULE_39__); +/* harmony import */ var _onegpioPicoboard_onegpioPicoboard_small_png__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./onegpioPicoboard/onegpioPicoboard-small.png */ "./src/lib/libraries/extensions/onegpioPicoboard/onegpioPicoboard-small.png"); +/* harmony import */ var _onegpioPicoboard_onegpioPicoboard_small_png__WEBPACK_IMPORTED_MODULE_40___default = /*#__PURE__*/__webpack_require__.n(_onegpioPicoboard_onegpioPicoboard_small_png__WEBPACK_IMPORTED_MODULE_40__); +/* harmony import */ var _onegpioCpx_onegpioCpx_jpg__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./onegpioCpx/onegpioCpx.jpg */ "./src/lib/libraries/extensions/onegpioCpx/onegpioCpx.jpg"); +/* harmony import */ var _onegpioCpx_onegpioCpx_jpg__WEBPACK_IMPORTED_MODULE_41___default = /*#__PURE__*/__webpack_require__.n(_onegpioCpx_onegpioCpx_jpg__WEBPACK_IMPORTED_MODULE_41__); +/* harmony import */ var _onegpioCpx_onegpioCpx_small_png__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./onegpioCpx/onegpioCpx-small.png */ "./src/lib/libraries/extensions/onegpioCpx/onegpioCpx-small.png"); +/* harmony import */ var _onegpioCpx_onegpioCpx_small_png__WEBPACK_IMPORTED_MODULE_42___default = /*#__PURE__*/__webpack_require__.n(_onegpioCpx_onegpioCpx_small_png__WEBPACK_IMPORTED_MODULE_42__); +/* harmony import */ var _onegpioRoboHAT_onegpioRoboHAT_png__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./onegpioRoboHAT/onegpioRoboHAT.png */ "./src/lib/libraries/extensions/onegpioRoboHAT/onegpioRoboHAT.png"); +/* harmony import */ var _onegpioRoboHAT_onegpioRoboHAT_png__WEBPACK_IMPORTED_MODULE_43___default = /*#__PURE__*/__webpack_require__.n(_onegpioRoboHAT_onegpioRoboHAT_png__WEBPACK_IMPORTED_MODULE_43__); +/* harmony import */ var _onegpioRoboHAT_onegpioRoboHAT_small_png__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./onegpioRoboHAT/onegpioRoboHAT-small.png */ "./src/lib/libraries/extensions/onegpioRoboHAT/onegpioRoboHAT-small.png"); +/* harmony import */ var _onegpioRoboHAT_onegpioRoboHAT_small_png__WEBPACK_IMPORTED_MODULE_44___default = /*#__PURE__*/__webpack_require__.n(_onegpioRoboHAT_onegpioRoboHAT_small_png__WEBPACK_IMPORTED_MODULE_44__); +/* harmony import */ var _onegpioRpiPico_onegpioRpiPico_png__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./onegpioRpiPico/onegpioRpiPico.png */ "./src/lib/libraries/extensions/onegpioRpiPico/onegpioRpiPico.png"); +/* harmony import */ var _onegpioRpiPico_onegpioRpiPico_png__WEBPACK_IMPORTED_MODULE_45___default = /*#__PURE__*/__webpack_require__.n(_onegpioRpiPico_onegpioRpiPico_png__WEBPACK_IMPORTED_MODULE_45__); +/* harmony import */ var _onegpioRpiPico_onegpioRpiPico_small_png__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./onegpioRpiPico/onegpioRpiPico-small.png */ "./src/lib/libraries/extensions/onegpioRpiPico/onegpioRpiPico-small.png"); +/* harmony import */ var _onegpioRpiPico_onegpioRpiPico_small_png__WEBPACK_IMPORTED_MODULE_46___default = /*#__PURE__*/__webpack_require__.n(_onegpioRpiPico_onegpioRpiPico_small_png__WEBPACK_IMPORTED_MODULE_46__); @@ -356032,6 +356811,8 @@ __webpack_require__.r(__webpack_exports__); + + @@ -356268,12 +357049,24 @@ __webpack_require__.r(__webpack_exports__); internetConnectionRequired: true, bluetoothRequired: false, helpLink: 'https://mryslab.github.io/s3-extend/' +}, { + name: 'OneGpio ESP-32', + extensionId: 'onegpioEsp32', + collaborator: "Mr. Y's Lab", + iconURL: _onegpioEsp32_onegpioEsp32_png__WEBPACK_IMPORTED_MODULE_37___default.a, + insetIconURL: _onegpioEsp32_onegpioEsp32_small_png__WEBPACK_IMPORTED_MODULE_38___default.a, + description: 'OneGPIOEsp32', + featured: true, + disabled: false, + internetConnectionRequired: true, + bluetoothRequired: false, + helpLink: 'https://mryslab.github.io/s3-extend/' }, { name: 'OneGpio Picoboard', extensionId: 'onegpioPicoboard', collaborator: "Mr. Y's Lab", - iconURL: _onegpioPicoboard_onegpioPicoboard_jpg__WEBPACK_IMPORTED_MODULE_37___default.a, - insetIconURL: _onegpioPicoboard_onegpioPicoboard_small_png__WEBPACK_IMPORTED_MODULE_38___default.a, + iconURL: _onegpioPicoboard_onegpioPicoboard_jpg__WEBPACK_IMPORTED_MODULE_39___default.a, + insetIconURL: _onegpioPicoboard_onegpioPicoboard_small_png__WEBPACK_IMPORTED_MODULE_40___default.a, description: 'OneGPIOPicoboard', featured: true, disabled: false, @@ -356284,8 +357077,8 @@ __webpack_require__.r(__webpack_exports__); name: 'OneGpio Playground Express', extensionId: 'onegpioCpx', collaborator: "Mr. Y's Lab", - iconURL: _onegpioCpx_onegpioCpx_jpg__WEBPACK_IMPORTED_MODULE_39___default.a, - insetIconURL: _onegpioCpx_onegpioCpx_small_png__WEBPACK_IMPORTED_MODULE_40___default.a, + iconURL: _onegpioCpx_onegpioCpx_jpg__WEBPACK_IMPORTED_MODULE_41___default.a, + insetIconURL: _onegpioCpx_onegpioCpx_small_png__WEBPACK_IMPORTED_MODULE_42___default.a, description: 'OneGPIOCpx', featured: true, disabled: false, @@ -356296,8 +357089,8 @@ __webpack_require__.r(__webpack_exports__); name: 'OneGpio RoboHAT MM1', extensionId: 'onegpioRoboHAT', collaborator: "Mr. Y's Lab", - iconURL: _onegpioRoboHAT_onegpioRoboHAT_png__WEBPACK_IMPORTED_MODULE_41___default.a, - insetIconURL: _onegpioRoboHAT_onegpioRoboHAT_small_png__WEBPACK_IMPORTED_MODULE_42___default.a, + iconURL: _onegpioRoboHAT_onegpioRoboHAT_png__WEBPACK_IMPORTED_MODULE_43___default.a, + insetIconURL: _onegpioRoboHAT_onegpioRoboHAT_small_png__WEBPACK_IMPORTED_MODULE_44___default.a, description: 'OneGPIORoboHAT', featured: true, disabled: false, @@ -356308,8 +357101,8 @@ __webpack_require__.r(__webpack_exports__); name: 'OneGpio Raspberry Pi Pico', extensionId: 'onegpioRpiPico', collaborator: "Mr. Y's Lab", - iconURL: _onegpioRpiPico_onegpioRpiPico_png__WEBPACK_IMPORTED_MODULE_43___default.a, - insetIconURL: _onegpioRpiPico_onegpioRpiPico_small_png__WEBPACK_IMPORTED_MODULE_44___default.a, + iconURL: _onegpioRpiPico_onegpioRpiPico_png__WEBPACK_IMPORTED_MODULE_45___default.a, + insetIconURL: _onegpioRpiPico_onegpioRpiPico_small_png__WEBPACK_IMPORTED_MODULE_46___default.a, description: 'onegpioRpiPico', featured: true, disabled: false, @@ -356463,6 +357256,28 @@ module.exports = __webpack_require__.p + "static/assets/23258c89260212366a02005f /***/ }), +/***/ "./src/lib/libraries/extensions/onegpioEsp32/onegpioEsp32-small.png": +/*!**************************************************************************!*\ + !*** ./src/lib/libraries/extensions/onegpioEsp32/onegpioEsp32-small.png ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__.p + "static/assets/0f206c3ac2ca80097c2335bfca65fc03.png"; + +/***/ }), + +/***/ "./src/lib/libraries/extensions/onegpioEsp32/onegpioEsp32.png": +/*!********************************************************************!*\ + !*** ./src/lib/libraries/extensions/onegpioEsp32/onegpioEsp32.png ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__.p + "static/assets/205a283241497d562f472059bd0af548.png"; + +/***/ }), + /***/ "./src/lib/libraries/extensions/onegpioPicoboard/onegpioPicoboard-small.png": /*!**********************************************************************************!*\ !*** ./src/lib/libraries/extensions/onegpioPicoboard/onegpioPicoboard-small.png ***! diff --git a/lib.min.js.map b/lib.min.js.map index 0bec789f..6830e2b9 100644 --- a/lib.min.js.map +++ b/lib.min.js.map @@ -1 +1 @@ -{"version":3,"file":"lib.min.js","sources":["webpack://GUI/webpack/bootstrap","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/drums/1-snare.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/drums/10-wood-block.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/drums/11-cowbell.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/drums/12-triangle.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/drums/13-bongo.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/drums/14-conga.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/drums/15-cabasa.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/drums/16-guiro.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/drums/17-vibraslap.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/drums/18-cuica.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/drums/2-bass-drum.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/drums/3-side-stick.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/drums/4-crash-cymbal.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/drums/5-open-hi-hat.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/drums/6-closed-hi-hat.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/drums/7-tambourine.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/drums/8-hand-clap.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/drums/9-claves.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/1-piano/108.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/1-piano/24.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/1-piano/36.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/1-piano/48.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/1-piano/60.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/1-piano/72.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/1-piano/84.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/1-piano/96.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/10-clarinet/48.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/10-clarinet/60.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/11-saxophone/36.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/11-saxophone/60.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/11-saxophone/84.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/12-flute/60.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/12-flute/72.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/13-wooden-flute/60.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/13-wooden-flute/72.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/14-bassoon/36.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/14-bassoon/48.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/14-bassoon/60.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/15-choir/48.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/15-choir/60.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/15-choir/72.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/16-vibraphone/60.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/16-vibraphone/72.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/17-music-box/60.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/18-steel-drum/60.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/19-marimba/60.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/2-electric-piano/60.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/20-synth-lead/60.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/21-synth-pad/60.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/3-organ/60.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/4-guitar/60.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/5-electric-guitar/60.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/6-bass/36.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/6-bass/48.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/7-pizzicato/60.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/8-cello/36.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/8-cello/48.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/8-cello/60.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/9-trombone/36.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/9-trombone/48.mp3","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/assets/instruments/9-trombone/60.mp3","webpack://GUI/../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js","webpack://GUI/./node_modules/scratch-vm/src/extension-support/extension-worker.js","webpack://GUI/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://GUI/./node_modules/@scratch/paper/dist/paper-full.js","webpack://GUI/./node_modules/acorn/dist/acorn.mjs","webpack://GUI/./node_modules/scratch-storage/src/builtins/defaultBitmap.png","webpack://GUI/./node_modules/scratch-storage/src/builtins/defaultSound.wav","webpack://GUI/./node_modules/scratch-storage/src/builtins/defaultVector.svg","webpack://GUI/./src/lib/default-project/83a9787d4cb6f3b7632b4ddfebf74367.wav","webpack://GUI/./src/lib/default-project/83c36d806dc92327b9e7049a565c6bff.wav","webpack://GUI/./node_modules/arraybuffer-loader/lib/to-array-buffer.js","webpack://GUI/./node_modules/audio-context/index.js","webpack://GUI/./node_modules/audio-context/node_modules/global/window.js","webpack://GUI/./node_modules/babel-runtime/core-js/get-iterator.js","webpack://GUI/./node_modules/babel-runtime/core-js/is-iterable.js","webpack://GUI/./node_modules/babel-runtime/core-js/object/assign.js","webpack://GUI/./node_modules/babel-runtime/core-js/object/create.js","webpack://GUI/./node_modules/babel-runtime/core-js/object/define-property.js","webpack://GUI/./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js","webpack://GUI/./node_modules/babel-runtime/core-js/object/get-prototype-of.js","webpack://GUI/./node_modules/babel-runtime/core-js/object/keys.js","webpack://GUI/./node_modules/babel-runtime/core-js/object/set-prototype-of.js","webpack://GUI/./node_modules/babel-runtime/core-js/promise.js","webpack://GUI/./node_modules/babel-runtime/core-js/symbol.js","webpack://GUI/./node_modules/babel-runtime/core-js/symbol/iterator.js","webpack://GUI/./node_modules/babel-runtime/helpers/classCallCheck.js","webpack://GUI/./node_modules/babel-runtime/helpers/createClass.js","webpack://GUI/./node_modules/babel-runtime/helpers/defineProperty.js","webpack://GUI/./node_modules/babel-runtime/helpers/extends.js","webpack://GUI/./node_modules/babel-runtime/helpers/inherits.js","webpack://GUI/./node_modules/babel-runtime/helpers/objectWithoutProperties.js","webpack://GUI/./node_modules/babel-runtime/helpers/possibleConstructorReturn.js","webpack://GUI/./node_modules/babel-runtime/helpers/slicedToArray.js","webpack://GUI/./node_modules/babel-runtime/helpers/typeof.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/fn/get-iterator.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/fn/is-iterable.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-own-property-descriptor.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-prototype-of.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/fn/object/keys.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/fn/promise.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-instance.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_classof.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_for-of.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_invoke.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array-iter.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-call.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-detect.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_microtask.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_new-promise-capability.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_perform.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_promise-resolve.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine-all.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-species.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_species-constructor.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_task.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_user-agent.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator-method.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/core.is-iterable.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-prototype-of.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.keys.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.promise.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.promise.finally.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.promise.try.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js","webpack://GUI/./node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js","webpack://GUI/./node_modules/base64-js/index.js","webpack://GUI/./node_modules/scratch-paint/node_modules/scratch-render-fonts/src/Grand9K-Pixel.ttf","webpack://GUI/./node_modules/scratch-paint/node_modules/scratch-render-fonts/src/Griffy-Regular.ttf","webpack://GUI/./node_modules/scratch-paint/node_modules/scratch-render-fonts/src/NotoSans-Medium.ttf","webpack://GUI/./node_modules/scratch-paint/node_modules/scratch-render-fonts/src/Scratch.ttf","webpack://GUI/./node_modules/scratch-paint/node_modules/scratch-render-fonts/src/SourceSerifPro-Regular.otf","webpack://GUI/./node_modules/scratch-paint/node_modules/scratch-render-fonts/src/handlee-regular.ttf","webpack://GUI/./node_modules/scratch-paint/node_modules/scratch-render-fonts/src/knewave.ttf","webpack://GUI/./node_modules/scratch-render-fonts/src/Grand9K-Pixel.ttf","webpack://GUI/./node_modules/scratch-render-fonts/src/Griffy-Regular.ttf","webpack://GUI/./node_modules/scratch-render-fonts/src/Knewave.ttf","webpack://GUI/./node_modules/scratch-render-fonts/src/NotoSans-Medium.ttf","webpack://GUI/./node_modules/scratch-render-fonts/src/Scratch.ttf","webpack://GUI/./node_modules/scratch-render-fonts/src/SourceSerifPro-Regular.otf","webpack://GUI/./node_modules/scratch-render-fonts/src/handlee-regular.ttf","webpack://GUI/./node_modules/scratch-render/node_modules/scratch-render-fonts/src/Grand9K-Pixel.ttf","webpack://GUI/./node_modules/scratch-render/node_modules/scratch-render-fonts/src/Griffy-Regular.ttf","webpack://GUI/./node_modules/scratch-render/node_modules/scratch-render-fonts/src/NotoSans-Medium.ttf","webpack://GUI/./node_modules/scratch-render/node_modules/scratch-render-fonts/src/Scratch.ttf","webpack://GUI/./node_modules/scratch-render/node_modules/scratch-render-fonts/src/SourceSerifPro-Regular.otf","webpack://GUI/./node_modules/scratch-render/node_modules/scratch-render-fonts/src/handlee-regular.ttf","webpack://GUI/./node_modules/scratch-render/node_modules/scratch-render-fonts/src/knewave.ttf","webpack://GUI/./src/lib/backpack/sound-thumbnail.jpg","webpack://GUI/./node_modules/bowser/src/bowser.js","webpack://GUI/./node_modules/buffer/index.js","webpack://GUI/./node_modules/buffer/node_modules/base64-js/index.js","webpack://GUI/./node_modules/classnames/index.js","webpack://GUI/./node_modules/computed-style-to-inline-style/dist/index.js","webpack://GUI/./node_modules/core-js/fn/array/includes.js","webpack://GUI/./node_modules/core-js/fn/promise/finally.js","webpack://GUI/./node_modules/core-js/modules/_a-function.js","webpack://GUI/./node_modules/core-js/modules/_add-to-unscopables.js","webpack://GUI/./node_modules/core-js/modules/_an-instance.js","webpack://GUI/./node_modules/core-js/modules/_an-object.js","webpack://GUI/./node_modules/core-js/modules/_array-includes.js","webpack://GUI/./node_modules/core-js/modules/_classof.js","webpack://GUI/./node_modules/core-js/modules/_cof.js","webpack://GUI/./node_modules/core-js/modules/_core.js","webpack://GUI/./node_modules/core-js/modules/_ctx.js","webpack://GUI/./node_modules/core-js/modules/_defined.js","webpack://GUI/./node_modules/core-js/modules/_descriptors.js","webpack://GUI/./node_modules/core-js/modules/_dom-create.js","webpack://GUI/./node_modules/core-js/modules/_export.js","webpack://GUI/./node_modules/core-js/modules/_fails.js","webpack://GUI/./node_modules/core-js/modules/_for-of.js","webpack://GUI/./node_modules/core-js/modules/_global.js","webpack://GUI/./node_modules/core-js/modules/_has.js","webpack://GUI/./node_modules/core-js/modules/_hide.js","webpack://GUI/./node_modules/core-js/modules/_html.js","webpack://GUI/./node_modules/core-js/modules/_ie8-dom-define.js","webpack://GUI/./node_modules/core-js/modules/_invoke.js","webpack://GUI/./node_modules/core-js/modules/_iobject.js","webpack://GUI/./node_modules/core-js/modules/_is-array-iter.js","webpack://GUI/./node_modules/core-js/modules/_is-object.js","webpack://GUI/./node_modules/core-js/modules/_iter-call.js","webpack://GUI/./node_modules/core-js/modules/_iter-detect.js","webpack://GUI/./node_modules/core-js/modules/_iterators.js","webpack://GUI/./node_modules/core-js/modules/_library.js","webpack://GUI/./node_modules/core-js/modules/_microtask.js","webpack://GUI/./node_modules/core-js/modules/_new-promise-capability.js","webpack://GUI/./node_modules/core-js/modules/_object-dp.js","webpack://GUI/./node_modules/core-js/modules/_perform.js","webpack://GUI/./node_modules/core-js/modules/_promise-resolve.js","webpack://GUI/./node_modules/core-js/modules/_property-desc.js","webpack://GUI/./node_modules/core-js/modules/_redefine-all.js","webpack://GUI/./node_modules/core-js/modules/_redefine.js","webpack://GUI/./node_modules/core-js/modules/_set-species.js","webpack://GUI/./node_modules/core-js/modules/_set-to-string-tag.js","webpack://GUI/./node_modules/core-js/modules/_shared.js","webpack://GUI/./node_modules/core-js/modules/_species-constructor.js","webpack://GUI/./node_modules/core-js/modules/_task.js","webpack://GUI/./node_modules/core-js/modules/_to-absolute-index.js","webpack://GUI/./node_modules/core-js/modules/_to-integer.js","webpack://GUI/./node_modules/core-js/modules/_to-iobject.js","webpack://GUI/./node_modules/core-js/modules/_to-length.js","webpack://GUI/./node_modules/core-js/modules/_to-primitive.js","webpack://GUI/./node_modules/core-js/modules/_uid.js","webpack://GUI/./node_modules/core-js/modules/_user-agent.js","webpack://GUI/./node_modules/core-js/modules/_wks.js","webpack://GUI/./node_modules/core-js/modules/core.get-iterator-method.js","webpack://GUI/./node_modules/core-js/modules/es6.promise.js","webpack://GUI/./node_modules/core-js/modules/es7.array.includes.js","webpack://GUI/./node_modules/core-js/modules/es7.promise.finally.js","webpack://GUI/./node_modules/core-util-is/lib/util.js","webpack://GUI/./node_modules/react-tabs/style/react-tabs.css","webpack://GUI/./node_modules/scratch-paint/src/components/button-group/button-group.css","webpack://GUI/./node_modules/scratch-paint/src/components/button/button.css","webpack://GUI/./node_modules/scratch-paint/src/components/color-button/color-button.css","webpack://GUI/./node_modules/scratch-paint/src/components/color-picker/color-picker.css","webpack://GUI/./node_modules/scratch-paint/src/components/dropdown/dropdown.css","webpack://GUI/./node_modules/scratch-paint/src/components/fixed-tools/fixed-tools.css","webpack://GUI/./node_modules/scratch-paint/src/components/font-dropdown/font-dropdown.css","webpack://GUI/./node_modules/scratch-paint/src/components/forms/input.css","webpack://GUI/./node_modules/scratch-paint/src/components/forms/label.css","webpack://GUI/./node_modules/scratch-paint/src/components/forms/slider.css","webpack://GUI/./node_modules/scratch-paint/src/components/input-group/input-group.css","webpack://GUI/./node_modules/scratch-paint/src/components/labeled-icon-button/labeled-icon-button.css","webpack://GUI/./node_modules/scratch-paint/src/components/loupe/loupe.css","webpack://GUI/./node_modules/scratch-paint/src/components/mode-tools/mode-tools.css","webpack://GUI/./node_modules/scratch-paint/src/components/paint-editor/paint-editor.css","webpack://GUI/./node_modules/scratch-paint/src/components/scrollable-canvas/scrollable-canvas.css","webpack://GUI/./node_modules/scratch-paint/src/components/tool-select-base/tool-select-base.css","webpack://GUI/./node_modules/scratch-paint/src/containers/paper-canvas.css","webpack://GUI/./src/components/action-menu/action-menu.css","webpack://GUI/./src/components/alerts/alert.css","webpack://GUI/./src/components/alerts/alerts.css","webpack://GUI/./src/components/alerts/inline-message.css","webpack://GUI/./src/components/asset-panel/asset-panel.css","webpack://GUI/./src/components/asset-panel/selector.css","webpack://GUI/./src/components/audio-trimmer/audio-trimmer.css","webpack://GUI/./src/components/backpack/backpack.css","webpack://GUI/./src/components/blocks/blocks.css","webpack://GUI/./src/components/box/box.css","webpack://GUI/./src/components/browser-modal/browser-modal.css","webpack://GUI/./src/components/button/button.css","webpack://GUI/./src/components/camera-modal/camera-modal.css","webpack://GUI/./src/components/cards/card.css","webpack://GUI/./src/components/close-button/close-button.css","webpack://GUI/./src/components/coming-soon/coming-soon.css","webpack://GUI/./src/components/connection-modal/connection-modal.css","webpack://GUI/./src/components/context-menu/context-menu.css","webpack://GUI/./src/components/controls/controls.css","webpack://GUI/./src/components/crash-message/crash-message.css","webpack://GUI/./src/components/custom-procedures/custom-procedures.css","webpack://GUI/./src/components/delete-button/delete-button.css","webpack://GUI/./src/components/direction-picker/dial.css","webpack://GUI/./src/components/direction-picker/direction-picker.css","webpack://GUI/./src/components/divider/divider.css","webpack://GUI/./src/components/drag-layer/drag-layer.css","webpack://GUI/./src/components/filter/filter.css","webpack://GUI/./src/components/forms/input.css","webpack://GUI/./src/components/forms/label.css","webpack://GUI/./src/components/green-flag/green-flag.css","webpack://GUI/./src/components/gui/gui.css","webpack://GUI/./src/components/icon-button/icon-button.css","webpack://GUI/./src/components/language-selector/language-selector.css","webpack://GUI/./src/components/library-item/library-item.css","webpack://GUI/./src/components/library/library.css","webpack://GUI/./src/components/loader/loader.css","webpack://GUI/./src/components/loupe/loupe.css","webpack://GUI/./src/components/menu-bar/account-nav.css","webpack://GUI/./src/components/menu-bar/author-info.css","webpack://GUI/./src/components/menu-bar/community-button.css","webpack://GUI/./src/components/menu-bar/login-dropdown.css","webpack://GUI/./src/components/menu-bar/menu-bar.css","webpack://GUI/./src/components/menu-bar/project-title-input.css","webpack://GUI/./src/components/menu-bar/save-status.css","webpack://GUI/./src/components/menu-bar/share-button.css","webpack://GUI/./src/components/menu-bar/user-avatar.css","webpack://GUI/./src/components/menu/menu.css","webpack://GUI/./src/components/meter/meter.css","webpack://GUI/./src/components/mic-indicator/mic-indicator.css","webpack://GUI/./src/components/modal/modal.css","webpack://GUI/./src/components/monitor-list/monitor-list.css","webpack://GUI/./src/components/monitor/monitor.css","webpack://GUI/./src/components/play-button/play-button.css","webpack://GUI/./src/components/prompt/prompt.css","webpack://GUI/./src/components/question/question.css","webpack://GUI/./src/components/record-modal/record-modal.css","webpack://GUI/./src/components/slider-prompt/slider-prompt.css","webpack://GUI/./src/components/sound-editor/sound-editor.css","webpack://GUI/./src/components/spinner/spinner.css","webpack://GUI/./src/components/sprite-info/sprite-info.css","webpack://GUI/./src/components/sprite-selector-item/sprite-selector-item.css","webpack://GUI/./src/components/sprite-selector/sprite-selector.css","webpack://GUI/./src/components/stage-header/stage-header.css","webpack://GUI/./src/components/stage-selector/stage-selector.css","webpack://GUI/./src/components/stage-wrapper/stage-wrapper.css","webpack://GUI/./src/components/stage/stage.css","webpack://GUI/./src/components/stop-all/stop-all.css","webpack://GUI/./src/components/tag-button/tag-button.css","webpack://GUI/./src/components/target-pane/target-pane.css","webpack://GUI/./src/components/telemetry-modal/telemetry-modal.css","webpack://GUI/./src/components/turbo-mode/turbo-mode.css","webpack://GUI/./src/components/watermark/watermark.css","webpack://GUI/./src/components/waveform/waveform.css","webpack://GUI/./src/components/webgl-modal/webgl-modal.css","webpack://GUI/./node_modules/css-loader/lib/css-base.js","webpack://GUI/./node_modules/css-loader/lib/url/escape.js","webpack://GUI/./node_modules/css-vendor/lib/camelize.js","webpack://GUI/./node_modules/css-vendor/lib/index.js","webpack://GUI/./node_modules/css-vendor/lib/prefix.js","webpack://GUI/./node_modules/css-vendor/lib/supported-property.js","webpack://GUI/./node_modules/css-vendor/lib/supported-value.js","webpack://GUI/./node_modules/debug/node_modules/ms/index.js","webpack://GUI/./node_modules/debug/src/browser.js","webpack://GUI/./node_modules/debug/src/debug.js","webpack://GUI/./node_modules/decode-uri-component/index.js","webpack://GUI/./node_modules/dom-helpers/util/inDOM.js","webpack://GUI/./node_modules/dom-helpers/util/scrollbarSize.js","webpack://GUI/./node_modules/dompurify/dist/purify.js","webpack://GUI/./node_modules/es6-object-assign/auto.js","webpack://GUI/./node_modules/es6-object-assign/index.js","webpack://GUI/./node_modules/events/events.js","webpack://GUI/./node_modules/exenv/index.js","webpack://GUI/./node_modules/fbjs/lib/EventListener.js","webpack://GUI/./node_modules/fbjs/lib/ExecutionEnvironment.js","webpack://GUI/./node_modules/fbjs/lib/camelize.js","webpack://GUI/./node_modules/fbjs/lib/camelizeStyleName.js","webpack://GUI/./node_modules/fbjs/lib/containsNode.js","webpack://GUI/./node_modules/fbjs/lib/emptyFunction.js","webpack://GUI/./node_modules/fbjs/lib/emptyObject.js","webpack://GUI/./node_modules/fbjs/lib/focusNode.js","webpack://GUI/./node_modules/fbjs/lib/getActiveElement.js","webpack://GUI/./node_modules/fbjs/lib/hyphenate.js","webpack://GUI/./node_modules/fbjs/lib/hyphenateStyleName.js","webpack://GUI/./node_modules/fbjs/lib/invariant.js","webpack://GUI/./node_modules/fbjs/lib/isNode.js","webpack://GUI/./node_modules/fbjs/lib/isTextNode.js","webpack://GUI/./node_modules/fbjs/lib/shallowEqual.js","webpack://GUI/./node_modules/fbjs/lib/warning.js","webpack://GUI/./node_modules/get-float-time-domain-data/lib/get-float-time-domain-data.js","webpack://GUI/./node_modules/get-user-media-promise/lib/get-user-media-promise.js","webpack://GUI/./node_modules/global/window.js","webpack://GUI/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://GUI/./node_modules/hull.js/src/convex.js","webpack://GUI/./node_modules/hull.js/src/format.js","webpack://GUI/./node_modules/hull.js/src/grid.js","webpack://GUI/./node_modules/hull.js/src/hull.js","webpack://GUI/./node_modules/hull.js/src/intersect.js","webpack://GUI/./node_modules/ieee754/index.js","webpack://GUI/./node_modules/grapheme-breaker/src/GraphemeBreaker.js","webpack://GUI/./node_modules/linebreak/src/linebreaker.js","webpack://GUI/./node_modules/immutable/dist/immutable.js","webpack://GUI/./node_modules/scratch-blocks/msg/messages.js","webpack://GUI/./node_modules/scratch-blocks/msg/scratch_msgs.js","webpack://GUI/./node_modules/scratch-blocks/blocks_compressed.js","webpack://GUI/./node_modules/scratch-blocks/blocks_compressed_vertical.js","webpack://GUI/./node_modules/scratch-blocks/blockly_compressed_vertical.js","webpack://GUI/./node_modules/inherits/inherits_browser.js","webpack://GUI/./node_modules/intl-format-cache/lib/index.js","webpack://GUI/./node_modules/intl-messageformat-parser/index.js","webpack://GUI/./node_modules/intl-messageformat-parser/lib/parser.js","webpack://GUI/./node_modules/intl-messageformat/index.js","webpack://GUI/./node_modules/intl-messageformat/lib/compiler.js","webpack://GUI/./node_modules/intl-messageformat/lib/core.js","webpack://GUI/./node_modules/intl-messageformat/lib/en.js","webpack://GUI/./node_modules/intl-messageformat/lib/es5.js","webpack://GUI/./node_modules/intl-messageformat/lib/main.js","webpack://GUI/./node_modules/intl-messageformat/lib/utils.js","webpack://GUI/./node_modules/intl-relativeformat/index.js","webpack://GUI/./node_modules/intl-relativeformat/lib/core.js","webpack://GUI/./node_modules/intl-relativeformat/lib/diff.js","webpack://GUI/./node_modules/intl-relativeformat/lib/en.js","webpack://GUI/./node_modules/intl-relativeformat/lib/es5.js","webpack://GUI/./node_modules/intl-relativeformat/lib/main.js","webpack://GUI/./node_modules/intl/index.js","webpack://GUI/./node_modules/intl/lib/core.js","webpack://GUI/./node_modules/invariant/browser.js","webpack://GUI/./node_modules/is-function/index.js","webpack://GUI/./node_modules/is-in-browser/dist/module.js","webpack://GUI/./node_modules/isarray/index.js","webpack://GUI/./node_modules/js-base64/base64.js","webpack://GUI/./node_modules/js-md5/src/md5.js","webpack://GUI/./node_modules/keymirror/index.js","webpack://GUI/./node_modules/linebreak/node_modules/base64-js/lib/b64.js","webpack://GUI/./node_modules/linebreak/src/classes.js","webpack://GUI/./node_modules/linebreak/src/pairs.js","webpack://GUI/./node_modules/lodash-es/_Symbol.js","webpack://GUI/./node_modules/lodash-es/_baseGetTag.js","webpack://GUI/./node_modules/lodash-es/_freeGlobal.js","webpack://GUI/./node_modules/lodash-es/_getPrototype.js","webpack://GUI/./node_modules/lodash-es/_getRawTag.js","webpack://GUI/./node_modules/lodash-es/_objectToString.js","webpack://GUI/./node_modules/lodash-es/_overArg.js","webpack://GUI/./node_modules/lodash-es/_root.js","webpack://GUI/./node_modules/lodash-es/isObjectLike.js","webpack://GUI/./node_modules/lodash-es/isPlainObject.js","webpack://GUI/./node_modules/lodash._getnative/index.js","webpack://GUI/./node_modules/lodash.bindall/index.js","webpack://GUI/./node_modules/lodash.debounce/index.js","webpack://GUI/./node_modules/lodash.defaultsdeep/index.js","webpack://GUI/./node_modules/lodash.omit/index.js","webpack://GUI/./node_modules/lodash.throttle/index.js","webpack://GUI/./node_modules/microee/index.js","webpack://GUI/./node_modules/minilog/lib/common/filter.js","webpack://GUI/./node_modules/minilog/lib/common/minilog.js","webpack://GUI/./node_modules/minilog/lib/common/transform.js","webpack://GUI/./node_modules/minilog/lib/web/array.js","webpack://GUI/./node_modules/minilog/lib/web/console.js","webpack://GUI/./node_modules/minilog/lib/web/formatters/color.js","webpack://GUI/./node_modules/minilog/lib/web/formatters/minilog.js","webpack://GUI/./node_modules/minilog/lib/web/formatters/util.js","webpack://GUI/./node_modules/minilog/lib/web/index.js","webpack://GUI/./node_modules/minilog/lib/web/jquery_simple.js","webpack://GUI/./node_modules/minilog/lib/web/localstorage.js","webpack://GUI/./node_modules/nets/index.js","webpack://GUI/./node_modules/node-libs-browser/node_modules/punycode/punycode.js","webpack://GUI/./node_modules/object-assign/index.js","webpack://GUI/./node_modules/omggif/omggif.js","webpack://GUI/./node_modules/papaparse/papaparse.min.js","webpack://GUI/./node_modules/parse-color/index.js","webpack://GUI/./node_modules/parse-color/node_modules/color-convert/conversions.js","webpack://GUI/./node_modules/parse-color/node_modules/color-convert/index.js","webpack://GUI/./node_modules/parse-headers/parse-headers.js","webpack://GUI/./node_modules/process-nextick-args/index.js","webpack://GUI/./node_modules/process/browser.js","webpack://GUI/./node_modules/prop-types/checkPropTypes.js","webpack://GUI/./node_modules/prop-types/factoryWithTypeCheckers.js","webpack://GUI/./node_modules/prop-types/index.js","webpack://GUI/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://GUI/./node_modules/query-string/index.js","webpack://GUI/./node_modules/querystring-es3/decode.js","webpack://GUI/./node_modules/querystring-es3/encode.js","webpack://GUI/./node_modules/querystring-es3/index.js","webpack://GUI/./node_modules/scratch-render/src/shaders/sprite.frag","webpack://GUI/./node_modules/scratch-render/src/shaders/sprite.vert","webpack://GUI/./src/lib/default-project/b7853f557e4426412e64bb3da6531a99.svg","webpack://GUI/./src/lib/default-project/cd21514d0531fdffb22204e0ec5ed84a.svg","webpack://GUI/./src/lib/default-project/e6ddc55a6ddd9cc9d84fe0b4c21e016f.svg","webpack://GUI/./node_modules/react-contextmenu/es6/AbstractMenu.js","webpack://GUI/./node_modules/react-contextmenu/es6/ContextMenu.js","webpack://GUI/./node_modules/react-contextmenu/es6/ContextMenuTrigger.js","webpack://GUI/./node_modules/react-contextmenu/es6/MenuItem.js","webpack://GUI/./node_modules/react-contextmenu/es6/SubMenu.js","webpack://GUI/./node_modules/react-contextmenu/es6/actions.js","webpack://GUI/./node_modules/react-contextmenu/es6/connectMenu.js","webpack://GUI/./node_modules/react-contextmenu/es6/globalEventListener.js","webpack://GUI/./node_modules/react-contextmenu/es6/helpers.js","webpack://GUI/./node_modules/react-contextmenu/es6/index.js","webpack://GUI/./node_modules/react-dom/cjs/react-dom.development.js","webpack://GUI/./node_modules/react-dom/index.js","webpack://GUI/./node_modules/react-draggable/dist/react-draggable.js","webpack://GUI/./node_modules/react-ga/dist/react-ga.js","webpack://GUI/./node_modules/react-ga/node_modules/react/cjs/react.development.js","webpack://GUI/./node_modules/react-ga/node_modules/react/index.js","webpack://GUI/./node_modules/react-intl/lib/index.es.js","webpack://GUI/./node_modules/react-intl/locale-data/am.js","webpack://GUI/./node_modules/react-intl/locale-data/ar.js","webpack://GUI/./node_modules/react-intl/locale-data/az.js","webpack://GUI/./node_modules/react-intl/locale-data/be.js","webpack://GUI/./node_modules/react-intl/locale-data/bg.js","webpack://GUI/./node_modules/react-intl/locale-data/ca.js","webpack://GUI/./node_modules/react-intl/locale-data/ckb.js","webpack://GUI/./node_modules/react-intl/locale-data/cs.js","webpack://GUI/./node_modules/react-intl/locale-data/cy.js","webpack://GUI/./node_modules/react-intl/locale-data/da.js","webpack://GUI/./node_modules/react-intl/locale-data/de.js","webpack://GUI/./node_modules/react-intl/locale-data/el.js","webpack://GUI/./node_modules/react-intl/locale-data/en.js","webpack://GUI/./node_modules/react-intl/locale-data/es.js","webpack://GUI/./node_modules/react-intl/locale-data/et.js","webpack://GUI/./node_modules/react-intl/locale-data/eu.js","webpack://GUI/./node_modules/react-intl/locale-data/fa.js","webpack://GUI/./node_modules/react-intl/locale-data/fi.js","webpack://GUI/./node_modules/react-intl/locale-data/fr.js","webpack://GUI/./node_modules/react-intl/locale-data/ga.js","webpack://GUI/./node_modules/react-intl/locale-data/gd.js","webpack://GUI/./node_modules/react-intl/locale-data/gl.js","webpack://GUI/./node_modules/react-intl/locale-data/he.js","webpack://GUI/./node_modules/react-intl/locale-data/hr.js","webpack://GUI/./node_modules/react-intl/locale-data/hu.js","webpack://GUI/./node_modules/react-intl/locale-data/id.js","webpack://GUI/./node_modules/react-intl/locale-data/is.js","webpack://GUI/./node_modules/react-intl/locale-data/it.js","webpack://GUI/./node_modules/react-intl/locale-data/ja.js","webpack://GUI/./node_modules/react-intl/locale-data/ka.js","webpack://GUI/./node_modules/react-intl/locale-data/km.js","webpack://GUI/./node_modules/react-intl/locale-data/ko.js","webpack://GUI/./node_modules/react-intl/locale-data/lt.js","webpack://GUI/./node_modules/react-intl/locale-data/lv.js","webpack://GUI/./node_modules/react-intl/locale-data/mi.js","webpack://GUI/./node_modules/react-intl/locale-data/nb.js","webpack://GUI/./node_modules/react-intl/locale-data/nl.js","webpack://GUI/./node_modules/react-intl/locale-data/nn.js","webpack://GUI/./node_modules/react-intl/locale-data/pl.js","webpack://GUI/./node_modules/react-intl/locale-data/pt.js","webpack://GUI/./node_modules/react-intl/locale-data/ro.js","webpack://GUI/./node_modules/react-intl/locale-data/ru.js","webpack://GUI/./node_modules/react-intl/locale-data/sk.js","webpack://GUI/./node_modules/react-intl/locale-data/sl.js","webpack://GUI/./node_modules/react-intl/locale-data/sr.js","webpack://GUI/./node_modules/react-intl/locale-data/sv.js","webpack://GUI/./node_modules/react-intl/locale-data/th.js","webpack://GUI/./node_modules/react-intl/locale-data/tr.js","webpack://GUI/./node_modules/react-intl/locale-data/uk.js","webpack://GUI/./node_modules/react-intl/locale-data/uz.js","webpack://GUI/./node_modules/react-intl/locale-data/vi.js","webpack://GUI/./node_modules/react-intl/locale-data/zh.js","webpack://GUI/./node_modules/react-intl/locale-data/zu.js","webpack://GUI/./node_modules/react-intl/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://GUI/./node_modules/react-is/cjs/react-is.development.js","webpack://GUI/./node_modules/react-is/index.js","webpack://GUI/./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack://GUI/./node_modules/react-modal/lib/components/Modal.js","webpack://GUI/./node_modules/react-modal/lib/components/ModalPortal.js","webpack://GUI/./node_modules/react-modal/lib/helpers/ariaAppHider.js","webpack://GUI/./node_modules/react-modal/lib/helpers/classList.js","webpack://GUI/./node_modules/react-modal/lib/helpers/focusManager.js","webpack://GUI/./node_modules/react-modal/lib/helpers/safeHTMLElement.js","webpack://GUI/./node_modules/react-modal/lib/helpers/scopeTab.js","webpack://GUI/./node_modules/react-modal/lib/helpers/tabbable.js","webpack://GUI/./node_modules/react-modal/lib/index.js","webpack://GUI/./node_modules/react-popover/build/index.js","webpack://GUI/./node_modules/react-popover/build/layout.js","webpack://GUI/./node_modules/react-popover/build/on-resize.js","webpack://GUI/./node_modules/react-popover/build/platform.js","webpack://GUI/./node_modules/react-popover/build/tip.js","webpack://GUI/./node_modules/react-popover/build/utils.js","webpack://GUI/./node_modules/react-popover/index.js","webpack://GUI/./node_modules/react-popover/node_modules/lodash.debounce/index.js","webpack://GUI/./node_modules/react-popover/node_modules/lodash.throttle/index.js","webpack://GUI/./node_modules/react-redux/es/components/Provider.js","webpack://GUI/./node_modules/react-redux/es/components/connectAdvanced.js","webpack://GUI/./node_modules/react-redux/es/connect/connect.js","webpack://GUI/./node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack://GUI/./node_modules/react-redux/es/connect/mapStateToProps.js","webpack://GUI/./node_modules/react-redux/es/connect/mergeProps.js","webpack://GUI/./node_modules/react-redux/es/connect/selectorFactory.js","webpack://GUI/./node_modules/react-redux/es/connect/verifySubselectors.js","webpack://GUI/./node_modules/react-redux/es/connect/wrapMapToProps.js","webpack://GUI/./node_modules/react-redux/es/index.js","webpack://GUI/./node_modules/react-redux/es/utils/PropTypes.js","webpack://GUI/./node_modules/react-redux/es/utils/Subscription.js","webpack://GUI/./node_modules/react-redux/es/utils/shallowEqual.js","webpack://GUI/./node_modules/react-redux/es/utils/verifyPlainObject.js","webpack://GUI/./node_modules/react-redux/es/utils/warning.js","webpack://GUI/./node_modules/react-responsive/dist/react-responsive.js","webpack://GUI/./node_modules/react-style-proptype/src/css-properties.js","webpack://GUI/./node_modules/react-style-proptype/src/index.js","webpack://GUI/./node_modules/react-tabs/esm/components/Tab.js","webpack://GUI/./node_modules/react-tabs/esm/components/TabList.js","webpack://GUI/./node_modules/react-tabs/esm/components/TabPanel.js","webpack://GUI/./node_modules/react-tabs/esm/components/Tabs.js","webpack://GUI/./node_modules/react-tabs/esm/components/UncontrolledTabs.js","webpack://GUI/./node_modules/react-tabs/esm/helpers/childrenDeepMap.js","webpack://GUI/./node_modules/react-tabs/esm/helpers/count.js","webpack://GUI/./node_modules/react-tabs/esm/helpers/elementTypes.js","webpack://GUI/./node_modules/react-tabs/esm/helpers/propTypes.js","webpack://GUI/./node_modules/react-tabs/esm/helpers/uuid.js","webpack://GUI/./node_modules/react-tabs/esm/index.js","webpack://GUI/./node_modules/react-tabs/style/react-tabs.css?f800","webpack://GUI/./node_modules/react-tooltip/dist/constant.js","webpack://GUI/./node_modules/react-tooltip/dist/decorators/customEvent.js","webpack://GUI/./node_modules/react-tooltip/dist/decorators/getEffect.js","webpack://GUI/./node_modules/react-tooltip/dist/decorators/isCapture.js","webpack://GUI/./node_modules/react-tooltip/dist/decorators/staticMethods.js","webpack://GUI/./node_modules/react-tooltip/dist/decorators/trackRemoval.js","webpack://GUI/./node_modules/react-tooltip/dist/decorators/windowListener.js","webpack://GUI/./node_modules/react-tooltip/dist/index.js","webpack://GUI/./node_modules/react-tooltip/dist/style.js","webpack://GUI/./node_modules/react-tooltip/dist/utils/aria.js","webpack://GUI/./node_modules/react-tooltip/dist/utils/getPosition.js","webpack://GUI/./node_modules/react-tooltip/dist/utils/getTipContent.js","webpack://GUI/./node_modules/react-tooltip/dist/utils/nodeListToArray.js","webpack://GUI/./node_modules/react-virtualized/dist/es/ArrowKeyStepper/ArrowKeyStepper.js","webpack://GUI/./node_modules/react-virtualized/dist/es/ArrowKeyStepper/index.js","webpack://GUI/./node_modules/react-virtualized/dist/es/ArrowKeyStepper/types.js","webpack://GUI/./node_modules/react-virtualized/dist/es/AutoSizer/AutoSizer.js","webpack://GUI/./node_modules/react-virtualized/dist/es/AutoSizer/index.js","webpack://GUI/./node_modules/react-virtualized/dist/es/CellMeasurer/CellMeasurer.js","webpack://GUI/./node_modules/react-virtualized/dist/es/CellMeasurer/CellMeasurerCache.js","webpack://GUI/./node_modules/react-virtualized/dist/es/CellMeasurer/index.js","webpack://GUI/./node_modules/react-virtualized/dist/es/CellMeasurer/types.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Collection/Collection.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Collection/CollectionView.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Collection/Section.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Collection/SectionManager.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Collection/index.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Collection/types.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Collection/utils/calculateSizeAndPositionData.js","webpack://GUI/./node_modules/react-virtualized/dist/es/ColumnSizer/ColumnSizer.js","webpack://GUI/./node_modules/react-virtualized/dist/es/ColumnSizer/index.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Grid/Grid.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Grid/accessibilityOverscanIndicesGetter.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Grid/defaultCellRangeRenderer.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Grid/defaultOverscanIndicesGetter.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Grid/index.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Grid/types.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Grid/utils/CellSizeAndPositionManager.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Grid/utils/ScalingCellSizeAndPositionManager.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Grid/utils/maxElementSize.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Grid/utils/updateScrollIndexHelper.js","webpack://GUI/./node_modules/react-virtualized/dist/es/InfiniteLoader/InfiniteLoader.js","webpack://GUI/./node_modules/react-virtualized/dist/es/InfiniteLoader/index.js","webpack://GUI/./node_modules/react-virtualized/dist/es/List/List.js","webpack://GUI/./node_modules/react-virtualized/dist/es/List/index.js","webpack://GUI/./node_modules/react-virtualized/dist/es/List/types.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Masonry/Masonry.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Masonry/PositionCache.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Masonry/createCellPositioner.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Masonry/index.js","webpack://GUI/./node_modules/react-virtualized/dist/es/MultiGrid/CellMeasurerCacheDecorator.js","webpack://GUI/./node_modules/react-virtualized/dist/es/MultiGrid/MultiGrid.js","webpack://GUI/./node_modules/react-virtualized/dist/es/MultiGrid/index.js","webpack://GUI/./node_modules/react-virtualized/dist/es/ScrollSync/ScrollSync.js","webpack://GUI/./node_modules/react-virtualized/dist/es/ScrollSync/index.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Table/Column.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Table/SortDirection.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Table/SortIndicator.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Table/Table.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Table/createMultiSort.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Table/defaultCellDataGetter.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Table/defaultCellRenderer.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Table/defaultHeaderRenderer.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Table/defaultHeaderRowRenderer.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Table/defaultRowRenderer.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Table/index.js","webpack://GUI/./node_modules/react-virtualized/dist/es/Table/types.js","webpack://GUI/./node_modules/react-virtualized/dist/es/WindowScroller/WindowScroller.js","webpack://GUI/./node_modules/react-virtualized/dist/es/WindowScroller/index.js","webpack://GUI/./node_modules/react-virtualized/dist/es/WindowScroller/utils/dimensions.js","webpack://GUI/./node_modules/react-virtualized/dist/es/WindowScroller/utils/onScroll.js","webpack://GUI/./node_modules/react-virtualized/dist/es/index.js","webpack://GUI/./node_modules/react-virtualized/dist/es/utils/animationFrame.js","webpack://GUI/./node_modules/react-virtualized/dist/es/utils/createCallbackMemoizer.js","webpack://GUI/./node_modules/react-virtualized/dist/es/utils/getUpdatedOffsetForIndex.js","webpack://GUI/./node_modules/react-virtualized/dist/es/utils/requestAnimationTimeout.js","webpack://GUI/./node_modules/react-virtualized/dist/es/vendor/binarySearchBounds.js","webpack://GUI/./node_modules/react-virtualized/dist/es/vendor/detectElementResize.js","webpack://GUI/./node_modules/react-virtualized/dist/es/vendor/intervalTree.js","webpack://GUI/./node_modules/react/cjs/react.development.js","webpack://GUI/./node_modules/react/index.js","webpack://GUI/./node_modules/readable-stream/duplex-browser.js","webpack://GUI/./node_modules/readable-stream/lib/_stream_duplex.js","webpack://GUI/./node_modules/readable-stream/lib/_stream_passthrough.js","webpack://GUI/./node_modules/readable-stream/lib/_stream_readable.js","webpack://GUI/./node_modules/readable-stream/lib/_stream_transform.js","webpack://GUI/./node_modules/readable-stream/lib/_stream_writable.js","webpack://GUI/./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack://GUI/./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://GUI/./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://GUI/./node_modules/readable-stream/node_modules/safe-buffer/index.js","webpack://GUI/./node_modules/readable-stream/passthrough.js","webpack://GUI/./node_modules/readable-stream/readable-browser.js","webpack://GUI/./node_modules/readable-stream/transform.js","webpack://GUI/./node_modules/readable-stream/writable-browser.js","webpack://GUI/./node_modules/redux-throttle/build/index.js","webpack://GUI/./node_modules/redux/es/applyMiddleware.js","webpack://GUI/./node_modules/redux/es/bindActionCreators.js","webpack://GUI/./node_modules/redux/es/combineReducers.js","webpack://GUI/./node_modules/redux/es/compose.js","webpack://GUI/./node_modules/redux/es/createStore.js","webpack://GUI/./node_modules/redux/es/index.js","webpack://GUI/./node_modules/redux/es/utils/warning.js","webpack://GUI/./node_modules/safe-buffer/index.js","webpack://GUI/./node_modules/scratch-audio/src/ADPCMSoundDecoder.js","webpack://GUI/./node_modules/scratch-audio/src/ArrayBufferStream.js","webpack://GUI/./node_modules/scratch-audio/src/AudioEngine.js","webpack://GUI/./node_modules/scratch-audio/src/Loudness.js","webpack://GUI/./node_modules/scratch-audio/src/SoundBank.js","webpack://GUI/./node_modules/scratch-audio/src/SoundPlayer.js","webpack://GUI/./node_modules/scratch-audio/src/StartAudioContext.js","webpack://GUI/./node_modules/scratch-audio/src/effects/Effect.js","webpack://GUI/./node_modules/scratch-audio/src/effects/EffectChain.js","webpack://GUI/./node_modules/scratch-audio/src/effects/PanEffect.js","webpack://GUI/./node_modules/scratch-audio/src/effects/PitchEffect.js","webpack://GUI/./node_modules/scratch-audio/src/effects/VolumeEffect.js","webpack://GUI/./node_modules/scratch-audio/src/index.js","webpack://GUI/./node_modules/scratch-audio/src/log.js","webpack://GUI/./node_modules/scratch-audio/src/uid.js","webpack://GUI/./node_modules/scratch-blocks/shim/blockly_compressed_vertical-blocks_compressed.js","webpack://GUI/./node_modules/scratch-blocks/shim/blockly_compressed_vertical.Blockly.js","webpack://GUI/./node_modules/scratch-blocks/shim/blockly_compressed_vertical.goog.js","webpack://GUI/./node_modules/scratch-blocks/shim/blockly_compressed_vertical.js","webpack://GUI/./node_modules/scratch-blocks/shim/blocks_compressed_vertical-blockly_compressed_vertical-messages.js","webpack://GUI/./node_modules/scratch-blocks/shim/blocks_compressed_vertical.js","webpack://GUI/./node_modules/scratch-blocks/shim/vertical.js","webpack://GUI/./node_modules/scratch-l10n/locales/editor-msgs.js","webpack://GUI/./node_modules/scratch-l10n/src/index.js","webpack://GUI/./node_modules/scratch-l10n/src/supported-locales.js","webpack://GUI/./node_modules/scratch-paint/node_modules/classnames/index.js","webpack://GUI/./node_modules/scratch-paint/node_modules/scratch-render-fonts/src/index.js","webpack://GUI/./node_modules/scratch-paint/node_modules/scratch-svg-renderer/src/bitmap-adapter.js","webpack://GUI/./node_modules/scratch-paint/node_modules/scratch-svg-renderer/src/fixup-svg-string.js","webpack://GUI/./node_modules/scratch-paint/node_modules/scratch-svg-renderer/src/font-converter.js","webpack://GUI/./node_modules/scratch-paint/node_modules/scratch-svg-renderer/src/font-inliner.js","webpack://GUI/./node_modules/scratch-paint/node_modules/scratch-svg-renderer/src/index.js","webpack://GUI/./node_modules/scratch-paint/node_modules/scratch-svg-renderer/src/svg-element.js","webpack://GUI/./node_modules/scratch-paint/node_modules/scratch-svg-renderer/src/svg-renderer.js","webpack://GUI/./node_modules/scratch-paint/node_modules/scratch-svg-renderer/src/transform-applier.js","webpack://GUI/./node_modules/scratch-paint/node_modules/scratch-svg-renderer/src/util/log.js","webpack://GUI/./node_modules/scratch-paint/node_modules/transformation-matrix/build-umd/transformation-matrix.min.js","webpack://GUI/./node_modules/scratch-paint/src/components/bit-brush-mode/bit-brush-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/bit-brush-mode/brush.svg","webpack://GUI/./node_modules/scratch-paint/src/components/bit-eraser-mode/bit-eraser-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/bit-eraser-mode/eraser.svg","webpack://GUI/./node_modules/scratch-paint/src/components/bit-fill-mode/bit-fill-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/bit-fill-mode/fill.svg","webpack://GUI/./node_modules/scratch-paint/src/components/bit-line-mode/bit-line-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/bit-line-mode/line.svg","webpack://GUI/./node_modules/scratch-paint/src/components/bit-oval-mode/bit-oval-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/bit-oval-mode/oval-outlined.svg","webpack://GUI/./node_modules/scratch-paint/src/components/bit-oval-mode/oval.svg","webpack://GUI/./node_modules/scratch-paint/src/components/bit-rect-mode/bit-rect-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/bit-rect-mode/rectangle-outlined.svg","webpack://GUI/./node_modules/scratch-paint/src/components/bit-rect-mode/rectangle.svg","webpack://GUI/./node_modules/scratch-paint/src/components/bit-select-mode/bit-select-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/bit-select-mode/marquee.svg","webpack://GUI/./node_modules/scratch-paint/src/components/bit-text-mode/bit-text-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/bit-text-mode/text.svg","webpack://GUI/./node_modules/scratch-paint/src/components/box/box.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/brush-mode/brush-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/brush-mode/brush.svg","webpack://GUI/./node_modules/scratch-paint/src/components/button-group/button-group.css?9d8f","webpack://GUI/./node_modules/scratch-paint/src/components/button-group/button-group.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/button/button.css?2f4b","webpack://GUI/./node_modules/scratch-paint/src/components/button/button.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/color-button/color-button.css?2df0","webpack://GUI/./node_modules/scratch-paint/src/components/color-button/color-button.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/color-button/mixed-fill.svg","webpack://GUI/./node_modules/scratch-paint/src/components/color-button/no-fill.svg","webpack://GUI/./node_modules/scratch-paint/src/components/color-picker/color-picker.css?b338","webpack://GUI/./node_modules/scratch-paint/src/components/color-picker/color-picker.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/color-picker/icons/eye-dropper.svg","webpack://GUI/./node_modules/scratch-paint/src/components/color-picker/icons/fill-horz-gradient-enabled.svg","webpack://GUI/./node_modules/scratch-paint/src/components/color-picker/icons/fill-radial-enabled.svg","webpack://GUI/./node_modules/scratch-paint/src/components/color-picker/icons/fill-solid-enabled.svg","webpack://GUI/./node_modules/scratch-paint/src/components/color-picker/icons/fill-vert-gradient-enabled.svg","webpack://GUI/./node_modules/scratch-paint/src/components/color-picker/icons/swap.svg","webpack://GUI/./node_modules/scratch-paint/src/components/dropdown/dropdown-caret.svg","webpack://GUI/./node_modules/scratch-paint/src/components/dropdown/dropdown.css?b75a","webpack://GUI/./node_modules/scratch-paint/src/components/dropdown/dropdown.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/eraser-mode/eraser-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/eraser-mode/eraser.svg","webpack://GUI/./node_modules/scratch-paint/src/components/fill-color-indicator.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/fill-mode/fill-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/fill-mode/fill.svg","webpack://GUI/./node_modules/scratch-paint/src/components/fixed-tools/fixed-tools.css?3f5a","webpack://GUI/./node_modules/scratch-paint/src/components/fixed-tools/fixed-tools.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/fixed-tools/icons/group.svg","webpack://GUI/./node_modules/scratch-paint/src/components/fixed-tools/icons/redo.svg","webpack://GUI/./node_modules/scratch-paint/src/components/fixed-tools/icons/send-back.svg","webpack://GUI/./node_modules/scratch-paint/src/components/fixed-tools/icons/send-backward.svg","webpack://GUI/./node_modules/scratch-paint/src/components/fixed-tools/icons/send-forward.svg","webpack://GUI/./node_modules/scratch-paint/src/components/fixed-tools/icons/send-front.svg","webpack://GUI/./node_modules/scratch-paint/src/components/fixed-tools/icons/undo.svg","webpack://GUI/./node_modules/scratch-paint/src/components/fixed-tools/icons/ungroup.svg","webpack://GUI/./node_modules/scratch-paint/src/components/font-dropdown/font-dropdown.css?9579","webpack://GUI/./node_modules/scratch-paint/src/components/font-dropdown/font-dropdown.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/forms/buffered-input-hoc.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/forms/input.css?abf3","webpack://GUI/./node_modules/scratch-paint/src/components/forms/input.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/forms/label.css?9f1f","webpack://GUI/./node_modules/scratch-paint/src/components/forms/label.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/forms/live-input-hoc.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/forms/slider.css?1de8","webpack://GUI/./node_modules/scratch-paint/src/components/forms/slider.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/input-group/input-group.css?34c7","webpack://GUI/./node_modules/scratch-paint/src/components/input-group/input-group.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/labeled-icon-button/labeled-icon-button.css?6391","webpack://GUI/./node_modules/scratch-paint/src/components/labeled-icon-button/labeled-icon-button.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/line-mode/line-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/line-mode/line.svg","webpack://GUI/./node_modules/scratch-paint/src/components/loupe/loupe.css?409e","webpack://GUI/./node_modules/scratch-paint/src/components/loupe/loupe.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/mode-tools/icons/copy.svg","webpack://GUI/./node_modules/scratch-paint/src/components/mode-tools/icons/curved-point.svg","webpack://GUI/./node_modules/scratch-paint/src/components/mode-tools/icons/delete.svg","webpack://GUI/./node_modules/scratch-paint/src/components/mode-tools/icons/flip-horizontal.svg","webpack://GUI/./node_modules/scratch-paint/src/components/mode-tools/icons/flip-vertical.svg","webpack://GUI/./node_modules/scratch-paint/src/components/mode-tools/icons/paste.svg","webpack://GUI/./node_modules/scratch-paint/src/components/mode-tools/icons/straight-point.svg","webpack://GUI/./node_modules/scratch-paint/src/components/mode-tools/mode-tools.css?5266","webpack://GUI/./node_modules/scratch-paint/src/components/mode-tools/mode-tools.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/oval-mode/oval-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/oval-mode/oval.svg","webpack://GUI/./node_modules/scratch-paint/src/components/paint-editor/icons/bitmap.svg","webpack://GUI/./node_modules/scratch-paint/src/components/paint-editor/icons/zoom-in.svg","webpack://GUI/./node_modules/scratch-paint/src/components/paint-editor/icons/zoom-out.svg","webpack://GUI/./node_modules/scratch-paint/src/components/paint-editor/icons/zoom-reset.svg","webpack://GUI/./node_modules/scratch-paint/src/components/paint-editor/paint-editor.css?56ce","webpack://GUI/./node_modules/scratch-paint/src/components/paint-editor/paint-editor.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/rect-mode/rect-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/rect-mode/rectangle.svg","webpack://GUI/./node_modules/scratch-paint/src/components/reshape-mode/reshape-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/reshape-mode/reshape.svg","webpack://GUI/./node_modules/scratch-paint/src/components/scrollable-canvas/scrollable-canvas.css?3434","webpack://GUI/./node_modules/scratch-paint/src/components/scrollable-canvas/scrollable-canvas.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/select-mode/select-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/select-mode/select.svg","webpack://GUI/./node_modules/scratch-paint/src/components/stroke-color-indicator.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/stroke-width-indicator.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/text-mode/text-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/components/text-mode/text.svg","webpack://GUI/./node_modules/scratch-paint/src/components/tool-select-base/tool-select-base.css?a3f5","webpack://GUI/./node_modules/scratch-paint/src/components/tool-select-base/tool-select-base.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/bit-brush-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/bit-eraser-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/bit-fill-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/bit-line-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/bit-oval-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/bit-rect-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/bit-select-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/brush-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/color-picker.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/eraser-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/fill-color-indicator.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/fill-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/fixed-tools.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/font-dropdown.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/line-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/mode-tools.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/oval-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/paint-editor.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/paper-canvas.css?42e7","webpack://GUI/./node_modules/scratch-paint/src/containers/paper-canvas.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/rect-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/reshape-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/scrollable-canvas.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/select-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/stroke-color-indicator.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/stroke-width-indicator.jsx","webpack://GUI/./node_modules/scratch-paint/src/containers/text-mode.jsx","webpack://GUI/./node_modules/scratch-paint/src/helper/bit-tools/brush-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/bit-tools/fill-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/bit-tools/line-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/bit-tools/oval-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/bit-tools/rect-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/bit-tools/select-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/bitmap.js","webpack://GUI/./node_modules/scratch-paint/src/helper/blob-tools/blob.js","webpack://GUI/./node_modules/scratch-paint/src/helper/blob-tools/broad-brush-helper.js","webpack://GUI/./node_modules/scratch-paint/src/helper/blob-tools/segment-brush-helper.js","webpack://GUI/./node_modules/scratch-paint/src/helper/compound-path.js","webpack://GUI/./node_modules/scratch-paint/src/helper/group.js","webpack://GUI/./node_modules/scratch-paint/src/helper/guides.js","webpack://GUI/./node_modules/scratch-paint/src/helper/hover.js","webpack://GUI/./node_modules/scratch-paint/src/helper/item.js","webpack://GUI/./node_modules/scratch-paint/src/helper/layer.js","webpack://GUI/./node_modules/scratch-paint/src/helper/math.js","webpack://GUI/./node_modules/scratch-paint/src/helper/order.js","webpack://GUI/./node_modules/scratch-paint/src/helper/selection-tools/bounding-box-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/selection-tools/handle-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/selection-tools/move-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/selection-tools/nudge-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/selection-tools/point-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/selection-tools/reshape-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/selection-tools/rotate-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/selection-tools/scale-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/selection-tools/select-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/selection-tools/selection-box-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/selection.js","webpack://GUI/./node_modules/scratch-paint/src/helper/snapping.js","webpack://GUI/./node_modules/scratch-paint/src/helper/style-path.js","webpack://GUI/./node_modules/scratch-paint/src/helper/tools/eye-dropper.js","webpack://GUI/./node_modules/scratch-paint/src/helper/tools/fill-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/tools/oval-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/tools/rect-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/tools/text-tool.js","webpack://GUI/./node_modules/scratch-paint/src/helper/undo.js","webpack://GUI/./node_modules/scratch-paint/src/helper/view.js","webpack://GUI/./node_modules/scratch-paint/src/hocs/copy-paste-hoc.jsx","webpack://GUI/./node_modules/scratch-paint/src/hocs/keyboard-shortcuts-hoc.jsx","webpack://GUI/./node_modules/scratch-paint/src/hocs/selection-hoc.jsx","webpack://GUI/./node_modules/scratch-paint/src/hocs/undo-hoc.jsx","webpack://GUI/./node_modules/scratch-paint/src/hocs/update-image-hoc.jsx","webpack://GUI/./node_modules/scratch-paint/src/index.js","webpack://GUI/./node_modules/scratch-paint/src/lib/cursors.js","webpack://GUI/./node_modules/scratch-paint/src/lib/fonts.js","webpack://GUI/./node_modules/scratch-paint/src/lib/format.js","webpack://GUI/./node_modules/scratch-paint/src/lib/gradient-types.js","webpack://GUI/./node_modules/scratch-paint/src/lib/hide-label.js","webpack://GUI/./node_modules/scratch-paint/src/lib/layout-constants.js","webpack://GUI/./node_modules/scratch-paint/src/lib/messages.js","webpack://GUI/./node_modules/scratch-paint/src/lib/modes.js","webpack://GUI/./node_modules/scratch-paint/src/lib/touch-utils.js","webpack://GUI/./node_modules/scratch-paint/src/log/log.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/bit-brush-size.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/bit-eraser-size.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/brush-mode.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/clipboard.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/color-index.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/color.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/cursor.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/eraser-mode.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/eye-dropper.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/fill-bitmap-shapes.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/fill-color-2.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/fill-color.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/fill-mode-gradient-type.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/fill-mode.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/font.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/format.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/hover.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/layout.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/modals.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/modes.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/scratch-paint-reducer.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/selected-items.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/selection-gradient-type.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/stroke-color.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/stroke-width.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/text-edit-target.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/undo.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/view-bounds.js","webpack://GUI/./node_modules/scratch-paint/src/reducers/zoom-levels.js","webpack://GUI/./node_modules/scratch-render-fonts/src/index.js","webpack://GUI/./node_modules/scratch-render/node_modules/scratch-render-fonts/src/index.js","webpack://GUI/./node_modules/scratch-render/node_modules/scratch-svg-renderer/src/bitmap-adapter.js","webpack://GUI/./node_modules/scratch-render/node_modules/scratch-svg-renderer/src/fixup-svg-string.js","webpack://GUI/./node_modules/scratch-render/node_modules/scratch-svg-renderer/src/font-converter.js","webpack://GUI/./node_modules/scratch-render/node_modules/scratch-svg-renderer/src/font-inliner.js","webpack://GUI/./node_modules/scratch-render/node_modules/scratch-svg-renderer/src/index.js","webpack://GUI/./node_modules/scratch-render/node_modules/scratch-svg-renderer/src/svg-element.js","webpack://GUI/./node_modules/scratch-render/node_modules/scratch-svg-renderer/src/svg-renderer.js","webpack://GUI/./node_modules/scratch-render/node_modules/scratch-svg-renderer/src/transform-applier.js","webpack://GUI/./node_modules/scratch-render/node_modules/scratch-svg-renderer/src/util/log.js","webpack://GUI/./node_modules/scratch-render/node_modules/transformation-matrix/build-umd/transformation-matrix.min.js","webpack://GUI/./node_modules/scratch-render/src/BitmapSkin.js","webpack://GUI/./node_modules/scratch-render/src/Drawable.js","webpack://GUI/./node_modules/scratch-render/src/EffectTransform.js","webpack://GUI/./node_modules/scratch-render/src/PenSkin.js","webpack://GUI/./node_modules/scratch-render/src/Rectangle.js","webpack://GUI/./node_modules/scratch-render/src/RenderConstants.js","webpack://GUI/./node_modules/scratch-render/src/RenderWebGL.js","webpack://GUI/./node_modules/scratch-render/src/SVGSkin.js","webpack://GUI/./node_modules/scratch-render/src/ShaderManager.js","webpack://GUI/./node_modules/scratch-render/src/Silhouette.js","webpack://GUI/./node_modules/scratch-render/src/Skin.js","webpack://GUI/./node_modules/scratch-render/src/TextBubbleSkin.js","webpack://GUI/./node_modules/scratch-render/src/index.js","webpack://GUI/./node_modules/scratch-render/src/util/canvas-measurement-provider.js","webpack://GUI/./node_modules/scratch-render/src/util/log.js","webpack://GUI/./node_modules/scratch-render/src/util/text-wrapper.js","webpack://GUI/./node_modules/scratch-storage/node_modules/base64-js/index.js","webpack://GUI/./node_modules/scratch-storage/src/Asset.js","webpack://GUI/./node_modules/scratch-storage/src/AssetType.js","webpack://GUI/./node_modules/scratch-storage/src/BuiltinHelper.js","webpack://GUI/./node_modules/scratch-storage/src/DataFormat.js","webpack://GUI/./node_modules/scratch-storage/src/FetchTool.js","webpack://GUI/./node_modules/scratch-storage/src/FetchWorkerTool.js","webpack://GUI/./node_modules/scratch-storage/src/Helper.js","webpack://GUI/./node_modules/scratch-storage/src/NetsTool.js","webpack://GUI/./node_modules/scratch-storage/src/ProxyTool.js","webpack://GUI/./node_modules/scratch-storage/src/ScratchStorage.js","webpack://GUI/./node_modules/scratch-storage/src/WebHelper.js","webpack://GUI/./node_modules/scratch-storage/src/index.js","webpack://GUI/./node_modules/scratch-storage/src/log.js","webpack://GUI/./node_modules/scratch-svg-renderer/src/bitmap-adapter.js","webpack://GUI/./node_modules/scratch-svg-renderer/src/fixup-svg-string.js","webpack://GUI/./node_modules/scratch-svg-renderer/src/font-converter.js","webpack://GUI/./node_modules/scratch-svg-renderer/src/font-inliner.js","webpack://GUI/./node_modules/scratch-svg-renderer/src/index.js","webpack://GUI/./node_modules/scratch-svg-renderer/src/svg-element.js","webpack://GUI/./node_modules/scratch-svg-renderer/src/svg-renderer.js","webpack://GUI/./node_modules/scratch-svg-renderer/src/transform-applier.js","webpack://GUI/./node_modules/scratch-svg-renderer/src/util/log.js","webpack://GUI/./node_modules/scratch-vm/node_modules/@vernier/godirect/dist/godirect.min.umd.js","webpack://GUI/./node_modules/scratch-vm/node_modules/atob/browser-atob.js","webpack://GUI/./node_modules/scratch-vm/node_modules/btoa/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/canvas-toBlob/canvas-toBlob.js","webpack://GUI/./node_modules/scratch-vm/node_modules/decode-html/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/dom-serializer/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/dom-serializer/node_modules/domelementtype/lib/esm/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/dom-serializer/node_modules/entities/lib/decode.js","webpack://GUI/./node_modules/scratch-vm/node_modules/dom-serializer/node_modules/entities/lib/decode_codepoint.js","webpack://GUI/./node_modules/scratch-vm/node_modules/dom-serializer/node_modules/entities/lib/encode.js","webpack://GUI/./node_modules/scratch-vm/node_modules/dom-serializer/node_modules/entities/lib/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/domelementtype/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/domhandler/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/domhandler/lib/element.js","webpack://GUI/./node_modules/scratch-vm/node_modules/domhandler/lib/node.js","webpack://GUI/./node_modules/scratch-vm/node_modules/domutils/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/domutils/lib/helpers.js","webpack://GUI/./node_modules/scratch-vm/node_modules/domutils/lib/legacy.js","webpack://GUI/./node_modules/scratch-vm/node_modules/domutils/lib/manipulation.js","webpack://GUI/./node_modules/scratch-vm/node_modules/domutils/lib/querying.js","webpack://GUI/./node_modules/scratch-vm/node_modules/domutils/lib/stringify.js","webpack://GUI/./node_modules/scratch-vm/node_modules/domutils/lib/traversal.js","webpack://GUI/./node_modules/scratch-vm/node_modules/entities/lib/decode_codepoint.js","webpack://GUI/./node_modules/scratch-vm/node_modules/fast-json-stable-stringify/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/format-message-formats/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/format-message-interpret/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/format-message-interpret/plurals.js","webpack://GUI/./node_modules/scratch-vm/node_modules/format-message-parse/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/format-message/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/htmlparser2/lib/CollectingHandler.js","webpack://GUI/./node_modules/scratch-vm/node_modules/htmlparser2/lib/FeedHandler.js","webpack://GUI/./node_modules/scratch-vm/node_modules/htmlparser2/lib/Parser.js","webpack://GUI/./node_modules/scratch-vm/node_modules/htmlparser2/lib/ProxyHandler.js","webpack://GUI/./node_modules/scratch-vm/node_modules/htmlparser2/lib/Stream.js","webpack://GUI/./node_modules/scratch-vm/node_modules/htmlparser2/lib/Tokenizer.js","webpack://GUI/./node_modules/scratch-vm/node_modules/htmlparser2/lib/WritableStream.js","webpack://GUI/./node_modules/scratch-vm/node_modules/htmlparser2/lib/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/immediate/lib/browser.js","webpack://GUI/./node_modules/scratch-vm/node_modules/immutable/dist/immutable.js","webpack://GUI/./node_modules/scratch-vm/node_modules/inherits/inherits_browser.js","webpack://GUI/./node_modules/scratch-vm/node_modules/is-function/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/js-md5/src/md5.js","webpack://GUI/./node_modules/scratch-vm/node_modules/jszip/dist/jszip.min.js","webpack://GUI/./node_modules/scratch-vm/node_modules/lookup-closest-locale/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/microee/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/minilog/lib/common/filter.js","webpack://GUI/./node_modules/scratch-vm/node_modules/minilog/lib/common/minilog.js","webpack://GUI/./node_modules/scratch-vm/node_modules/minilog/lib/common/transform.js","webpack://GUI/./node_modules/scratch-vm/node_modules/minilog/lib/web/array.js","webpack://GUI/./node_modules/scratch-vm/node_modules/minilog/lib/web/console.js","webpack://GUI/./node_modules/scratch-vm/node_modules/minilog/lib/web/formatters/color.js","webpack://GUI/./node_modules/scratch-vm/node_modules/minilog/lib/web/formatters/minilog.js","webpack://GUI/./node_modules/scratch-vm/node_modules/minilog/lib/web/formatters/util.js","webpack://GUI/./node_modules/scratch-vm/node_modules/minilog/lib/web/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/minilog/lib/web/jquery_simple.js","webpack://GUI/./node_modules/scratch-vm/node_modules/minilog/lib/web/localstorage.js","webpack://GUI/./node_modules/scratch-vm/node_modules/nets/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/pako/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/pako/lib/deflate.js","webpack://GUI/./node_modules/scratch-vm/node_modules/pako/lib/inflate.js","webpack://GUI/./node_modules/scratch-vm/node_modules/pako/lib/utils/common.js","webpack://GUI/./node_modules/scratch-vm/node_modules/pako/lib/utils/strings.js","webpack://GUI/./node_modules/scratch-vm/node_modules/pako/lib/zlib/adler32.js","webpack://GUI/./node_modules/scratch-vm/node_modules/pako/lib/zlib/constants.js","webpack://GUI/./node_modules/scratch-vm/node_modules/pako/lib/zlib/crc32.js","webpack://GUI/./node_modules/scratch-vm/node_modules/pako/lib/zlib/deflate.js","webpack://GUI/./node_modules/scratch-vm/node_modules/pako/lib/zlib/gzheader.js","webpack://GUI/./node_modules/scratch-vm/node_modules/pako/lib/zlib/inffast.js","webpack://GUI/./node_modules/scratch-vm/node_modules/pako/lib/zlib/inflate.js","webpack://GUI/./node_modules/scratch-vm/node_modules/pako/lib/zlib/inftrees.js","webpack://GUI/./node_modules/scratch-vm/node_modules/pako/lib/zlib/messages.js","webpack://GUI/./node_modules/scratch-vm/node_modules/pako/lib/zlib/trees.js","webpack://GUI/./node_modules/scratch-vm/node_modules/pako/lib/zlib/zstream.js","webpack://GUI/./node_modules/scratch-vm/node_modules/parse-headers/parse-headers.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/lib/parse.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/lib/unpack.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/lib/unzip.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/lib/validate.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/ajv.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/cache.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/compile/async.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/compile/error_classes.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/compile/formats.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/compile/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/compile/resolve.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/compile/rules.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/compile/schema_obj.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/compile/ucs2length.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/compile/util.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/data.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/_limit.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/_limitItems.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/_limitLength.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/_limitProperties.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/allOf.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/anyOf.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/comment.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/const.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/contains.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/custom.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/dependencies.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/enum.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/format.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/if.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/items.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/multipleOf.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/not.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/oneOf.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/pattern.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/properties.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/propertyNames.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/ref.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/required.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/uniqueItems.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/dotjs/validate.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/ajv/lib/keyword.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/fn/set-immediate.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/_a-function.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/_an-object.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/_cof.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/_core.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/_ctx.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/_descriptors.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/_dom-create.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/_export.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/_fails.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/_global.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/_hide.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/_html.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/_invoke.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/_is-object.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/_object-dp.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/_property-desc.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/_task.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/_to-primitive.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/core-js/library/modules/web.immediate.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/fast-deep-equal/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/json-schema-traverse/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/base64.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/compressedObject.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/compressions.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/crc32.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/defaults.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/external.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/flate.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/generate/ZipFileWorker.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/generate/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/load.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/nodejsUtils.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/object.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/readable-stream-browser.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/reader/ArrayReader.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/reader/DataReader.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/reader/NodeBufferReader.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/reader/StringReader.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/reader/Uint8ArrayReader.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/reader/readerFor.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/signature.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/stream/ConvertWorker.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/stream/Crc32Probe.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/stream/DataLengthProbe.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/stream/DataWorker.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/stream/GenericWorker.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/stream/StreamHelper.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/support.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/utf8.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/utils.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/zipEntries.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/zipEntry.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/jszip/lib/zipObject.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/lie/lib/browser.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-parser/node_modules/pify/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/coders/adler32.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/coders/byte-packets.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/coders/byte-primitives.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/coders/byte-stream.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/coders/crc32.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/coders/deflate-packets.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/coders/deflate-stream.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/coders/png-chunk-stream.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/coders/png-file.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/coders/png-packets.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/coders/proxy-stream.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/coders/squeak-image.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/coders/squeak-sound.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/coders/wav-file.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/coders/wav-packets.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/sb1-file-packets.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/sb1-file.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/squeak/byte-primitives.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/squeak/byte-take-iterator.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/squeak/field-iterator.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/squeak/field-object.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/squeak/fields.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/squeak/ids.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/squeak/reference-fixer.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/squeak/type-iterator.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/squeak/types.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/to-sb2/fake-zip.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/to-sb2/json-generator.js","webpack://GUI/./node_modules/scratch-vm/node_modules/scratch-sb1-converter/src/util/assert.js","webpack://GUI/./node_modules/scratch-vm/node_modules/sweetalert/dist/sweetalert.min.js","webpack://GUI/./node_modules/scratch-vm/node_modules/text-encoding/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/text-encoding/lib/encoding-indexes.js","webpack://GUI/./node_modules/scratch-vm/node_modules/text-encoding/lib/encoding.js","webpack://GUI/./node_modules/scratch-vm/node_modules/xhr/index.js","webpack://GUI/./node_modules/scratch-vm/node_modules/xhr/node_modules/global/window.js","webpack://GUI/./node_modules/scratch-vm/node_modules/xtend/immutable.js","webpack://GUI/./node_modules/scratch-vm/src/blocks/scratch3_control.js","webpack://GUI/./node_modules/scratch-vm/src/blocks/scratch3_core_example.js","webpack://GUI/./node_modules/scratch-vm/src/blocks/scratch3_data.js","webpack://GUI/./node_modules/scratch-vm/src/blocks/scratch3_event.js","webpack://GUI/./node_modules/scratch-vm/src/blocks/scratch3_looks.js","webpack://GUI/./node_modules/scratch-vm/src/blocks/scratch3_motion.js","webpack://GUI/./node_modules/scratch-vm/src/blocks/scratch3_operators.js","webpack://GUI/./node_modules/scratch-vm/src/blocks/scratch3_procedures.js","webpack://GUI/./node_modules/scratch-vm/src/blocks/scratch3_sensing.js","webpack://GUI/./node_modules/scratch-vm/src/blocks/scratch3_sound.js","webpack://GUI/./node_modules/scratch-vm/src/dispatch/central-dispatch.js","webpack://GUI/./node_modules/scratch-vm/src/dispatch/shared-dispatch.js","webpack://GUI/./node_modules/scratch-vm/src/engine/adapter.js","webpack://GUI/./node_modules/scratch-vm/src/engine/block-utility.js","webpack://GUI/./node_modules/scratch-vm/src/engine/blocks-execute-cache.js","webpack://GUI/./node_modules/scratch-vm/src/engine/blocks-runtime-cache.js","webpack://GUI/./node_modules/scratch-vm/src/engine/blocks.js","webpack://GUI/./node_modules/scratch-vm/src/engine/comment.js","webpack://GUI/./node_modules/scratch-vm/src/engine/execute.js","webpack://GUI/./node_modules/scratch-vm/src/engine/monitor-record.js","webpack://GUI/./node_modules/scratch-vm/src/engine/mutation-adapter.js","webpack://GUI/./node_modules/scratch-vm/src/engine/profiler.js","webpack://GUI/./node_modules/scratch-vm/src/engine/runtime.js","webpack://GUI/./node_modules/scratch-vm/src/engine/scratch-blocks-constants.js","webpack://GUI/./node_modules/scratch-vm/src/engine/sequencer.js","webpack://GUI/./node_modules/scratch-vm/src/engine/stage-layering.js","webpack://GUI/./node_modules/scratch-vm/src/engine/target.js","webpack://GUI/./node_modules/scratch-vm/src/engine/thread.js","webpack://GUI/./node_modules/scratch-vm/src/engine/variable.js","webpack://GUI/./node_modules/scratch-vm/src/extension-support/argument-type.js","webpack://GUI/./node_modules/scratch-vm/src/extension-support/block-type.js","webpack://GUI/./node_modules/scratch-vm/src/extension-support/extension-manager.js","webpack://GUI/./node_modules/scratch-vm/src/extension-support/target-type.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_boost/index.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_ev3/index.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_gdx_for/index.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_gdx_for/scratch-link-device-adapter.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_makeymakey/index.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_microbit/index.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/index.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_music/manifest.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_onegpioArduino/index.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_onegpioCpx/index.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_onegpioEsp/index.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_onegpioPicoboard/index.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_onegpioRoboHAT/index.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_onegpioRpi/index.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_onegpioRpiPico/index.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_pen/index.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_text2speech/index.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_translate/index.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_video_sensing/index.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_video_sensing/library.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_video_sensing/math.js","webpack://GUI/./node_modules/scratch-vm/src/extensions/scratch3_wedo2/index.js","webpack://GUI/./node_modules/scratch-vm/src/import/load-costume.js","webpack://GUI/./node_modules/scratch-vm/src/import/load-sound.js","webpack://GUI/./node_modules/scratch-vm/src/index.js","webpack://GUI/./node_modules/scratch-vm/src/io/ble.js","webpack://GUI/./node_modules/scratch-vm/src/io/bt.js","webpack://GUI/./node_modules/scratch-vm/src/io/clock.js","webpack://GUI/./node_modules/scratch-vm/src/io/cloud.js","webpack://GUI/./node_modules/scratch-vm/src/io/keyboard.js","webpack://GUI/./node_modules/scratch-vm/src/io/mouse.js","webpack://GUI/./node_modules/scratch-vm/src/io/mouseWheel.js","webpack://GUI/./node_modules/scratch-vm/src/io/userData.js","webpack://GUI/./node_modules/scratch-vm/src/io/video.js","webpack://GUI/./node_modules/scratch-vm/src/serialization/deserialize-assets.js","webpack://GUI/./node_modules/scratch-vm/src/serialization/sb2.js","webpack://GUI/./node_modules/scratch-vm/src/serialization/sb2_specmap.js","webpack://GUI/./node_modules/scratch-vm/src/serialization/sb3.js","webpack://GUI/./node_modules/scratch-vm/src/serialization/serialize-assets.js","webpack://GUI/./node_modules/scratch-vm/src/sprites/rendered-target.js","webpack://GUI/./node_modules/scratch-vm/src/sprites/sprite.js","webpack://GUI/./node_modules/scratch-vm/src/util/base64-util.js","webpack://GUI/./node_modules/scratch-vm/src/util/cast.js","webpack://GUI/./node_modules/scratch-vm/src/util/clone.js","webpack://GUI/./node_modules/scratch-vm/src/util/color.js","webpack://GUI/./node_modules/scratch-vm/src/util/get-monitor-id.js","webpack://GUI/./node_modules/scratch-vm/src/util/jsonrpc.js","webpack://GUI/./node_modules/scratch-vm/src/util/log.js","webpack://GUI/./node_modules/scratch-vm/src/util/math-util.js","webpack://GUI/./node_modules/scratch-vm/src/util/maybe-format-message.js","webpack://GUI/./node_modules/scratch-vm/src/util/new-block-ids.js","webpack://GUI/./node_modules/scratch-vm/src/util/rateLimiter.js","webpack://GUI/./node_modules/scratch-vm/src/util/scratch-link-websocket.js","webpack://GUI/./node_modules/scratch-vm/src/util/string-util.js","webpack://GUI/./node_modules/scratch-vm/src/util/timer.js","webpack://GUI/./node_modules/scratch-vm/src/util/uid.js","webpack://GUI/./node_modules/scratch-vm/src/util/variable-util.js","webpack://GUI/./node_modules/scratch-vm/src/util/xml-escape.js","webpack://GUI/./node_modules/scratch-vm/src/virtual-machine.js","webpack://GUI/./node_modules/setimmediate/setImmediate.js","webpack://GUI/./node_modules/startaudiocontext/StartAudioContext.js","webpack://GUI/./node_modules/stream-browserify/index.js","webpack://GUI/./node_modules/strict-uri-encode/index.js","webpack://GUI/./node_modules/string_decoder/lib/string_decoder.js","webpack://GUI/./node_modules/style-loader/lib/addStyles.js","webpack://GUI/./node_modules/style-loader/lib/urls.js","webpack://GUI/./node_modules/symbol-observable/es/index.js","webpack://GUI/./node_modules/symbol-observable/es/ponyfill.js","webpack://GUI/./node_modules/text-encoding/index.js","webpack://GUI/./node_modules/text-encoding/lib/encoding-indexes.js","webpack://GUI/./node_modules/text-encoding/lib/encoding.js","webpack://GUI/./node_modules/timers-browserify/main.js","webpack://GUI/./node_modules/tiny-inflate/index.js","webpack://GUI/./node_modules/to-style/index.js","webpack://GUI/./node_modules/to-style/src/cssPrefix.js","webpack://GUI/./node_modules/to-style/src/cssUnitless.js","webpack://GUI/./node_modules/to-style/src/hasOwn.js","webpack://GUI/./node_modules/to-style/src/isFunction.js","webpack://GUI/./node_modules/to-style/src/isObject.js","webpack://GUI/./node_modules/to-style/src/prefixInfo.js","webpack://GUI/./node_modules/to-style/src/prefixProperties.js","webpack://GUI/./node_modules/to-style/src/prefixer.js","webpack://GUI/./node_modules/to-style/src/stringUtils/camelize.js","webpack://GUI/./node_modules/to-style/src/stringUtils/hyphenRe.js","webpack://GUI/./node_modules/to-style/src/stringUtils/hyphenate.js","webpack://GUI/./node_modules/to-style/src/stringUtils/separate.js","webpack://GUI/./node_modules/to-style/src/stringUtils/toLowerFirst.js","webpack://GUI/./node_modules/to-style/src/stringUtils/toUpperFirst.js","webpack://GUI/./node_modules/to-style/src/toStyleObject.js","webpack://GUI/./node_modules/to-style/src/toStyleString.js","webpack://GUI/./node_modules/transformation-matrix/build-umd/transformation-matrix.min.js","webpack://GUI/./node_modules/twgl.js/dist/4.x/twgl-full.js","webpack://GUI/./node_modules/unicode-trie/index.js","webpack://GUI/./node_modules/url/url.js","webpack://GUI/./node_modules/url/util.js","webpack://GUI/./node_modules/util-deprecate/browser.js","webpack://GUI/./node_modules/warning/warning.js","webpack://GUI/./node_modules/wav-encoder/index.js","webpack://GUI/(webpack)/buildin/amd-define.js","webpack://GUI/(webpack)/buildin/amd-options.js","webpack://GUI/(webpack)/buildin/global.js","webpack://GUI/(webpack)/buildin/harmony-module.js","webpack://GUI/(webpack)/buildin/module.js","webpack://GUI/./node_modules/scratch-storage/src/FetchWorkerTool.worker.js","webpack://GUI/./node_modules/worker-loader/dist/workers/InlineWorker.js","webpack://GUI/./node_modules/xhr/index.js","webpack://GUI/./node_modules/xtend/immutable.js","webpack://GUI/./src/components/action-menu/action-menu.css?bdb9","webpack://GUI/./src/components/action-menu/action-menu.jsx","webpack://GUI/./src/components/action-menu/icon--backdrop.svg","webpack://GUI/./src/components/action-menu/icon--camera.svg","webpack://GUI/./src/components/action-menu/icon--file-upload.svg","webpack://GUI/./src/components/action-menu/icon--paint.svg","webpack://GUI/./src/components/action-menu/icon--search.svg","webpack://GUI/./src/components/action-menu/icon--sprite.svg","webpack://GUI/./src/components/action-menu/icon--surprise.svg","webpack://GUI/./src/components/alerts/alert.css?d79a","webpack://GUI/./src/components/alerts/alert.jsx","webpack://GUI/./src/components/alerts/alerts.css?d97e","webpack://GUI/./src/components/alerts/alerts.jsx","webpack://GUI/./src/components/alerts/inline-message.css?7847","webpack://GUI/./src/components/alerts/inline-message.jsx","webpack://GUI/./src/components/asset-panel/asset-panel.css?b9e6","webpack://GUI/./src/components/asset-panel/asset-panel.jsx","webpack://GUI/./src/components/asset-panel/icon--add-backdrop-lib.svg","webpack://GUI/./src/components/asset-panel/icon--add-costume-lib.svg","webpack://GUI/./src/components/asset-panel/icon--add-sound-lib.svg","webpack://GUI/./src/components/asset-panel/icon--add-sound-record.svg","webpack://GUI/./src/components/asset-panel/icon--sound-rtl.svg","webpack://GUI/./src/components/asset-panel/icon--sound.svg","webpack://GUI/./src/components/asset-panel/selector.css?7bea","webpack://GUI/./src/components/asset-panel/selector.jsx","webpack://GUI/./src/components/asset-panel/sortable-asset.jsx","webpack://GUI/./src/components/audio-trimmer/audio-selector.jsx","webpack://GUI/./src/components/audio-trimmer/audio-trimmer.css?ece8","webpack://GUI/./src/components/audio-trimmer/audio-trimmer.jsx","webpack://GUI/./src/components/audio-trimmer/icon--handle.svg","webpack://GUI/./src/components/audio-trimmer/playhead.jsx","webpack://GUI/./src/components/audio-trimmer/selection-handle.jsx","webpack://GUI/./src/components/backpack/backpack.css?c811","webpack://GUI/./src/components/backpack/backpack.jsx","webpack://GUI/./src/components/blocks/blocks.css?cc3d","webpack://GUI/./src/components/blocks/blocks.jsx","webpack://GUI/./src/components/box/box.css?476f","webpack://GUI/./src/components/box/box.jsx","webpack://GUI/./src/components/browser-modal/browser-modal.css?e794","webpack://GUI/./src/components/browser-modal/browser-modal.jsx","webpack://GUI/./src/components/browser-modal/unsupported-browser.svg","webpack://GUI/./src/components/button/button.css?9cd9","webpack://GUI/./src/components/button/button.jsx","webpack://GUI/./src/components/camera-modal/camera-modal.css?2837","webpack://GUI/./src/components/camera-modal/camera-modal.jsx","webpack://GUI/./src/components/camera-modal/icon--back.svg","webpack://GUI/./src/components/cards/card.css?1463","webpack://GUI/./src/components/cards/cards.jsx","webpack://GUI/./src/components/cards/icon--close.svg","webpack://GUI/./src/components/cards/icon--expand.svg","webpack://GUI/./src/components/cards/icon--next.svg","webpack://GUI/./src/components/cards/icon--prev.svg","webpack://GUI/./src/components/cards/icon--shrink.svg","webpack://GUI/./src/components/close-button/close-button.css?ca11","webpack://GUI/./src/components/close-button/close-button.jsx","webpack://GUI/./src/components/close-button/icon--close-orange.svg","webpack://GUI/./src/components/close-button/icon--close.svg","webpack://GUI/./src/components/coming-soon/aww-cat.png","webpack://GUI/./src/components/coming-soon/coming-soon.css?6f03","webpack://GUI/./src/components/coming-soon/coming-soon.jsx","webpack://GUI/./src/components/coming-soon/cool-cat.png","webpack://GUI/./src/components/connection-modal/auto-scanning-step.jsx","webpack://GUI/./src/components/connection-modal/connected-step.jsx","webpack://GUI/./src/components/connection-modal/connecting-step.jsx","webpack://GUI/./src/components/connection-modal/connection-modal.css?b43b","webpack://GUI/./src/components/connection-modal/connection-modal.jsx","webpack://GUI/./src/components/connection-modal/dots.jsx","webpack://GUI/./src/components/connection-modal/error-step.jsx","webpack://GUI/./src/components/connection-modal/icons/back.svg","webpack://GUI/./src/components/connection-modal/icons/bluetooth-white.svg","webpack://GUI/./src/components/connection-modal/icons/bluetooth.svg","webpack://GUI/./src/components/connection-modal/icons/help.svg","webpack://GUI/./src/components/connection-modal/icons/refresh.svg","webpack://GUI/./src/components/connection-modal/icons/scratchlink.svg","webpack://GUI/./src/components/connection-modal/icons/searching.png","webpack://GUI/./src/components/connection-modal/peripheral-tile.jsx","webpack://GUI/./src/components/connection-modal/scanning-step.jsx","webpack://GUI/./src/components/connection-modal/unavailable-step.jsx","webpack://GUI/./src/components/context-menu/context-menu.css?e836","webpack://GUI/./src/components/context-menu/context-menu.jsx","webpack://GUI/./src/components/controls/controls.css?e8e1","webpack://GUI/./src/components/controls/controls.jsx","webpack://GUI/./src/components/crash-message/crash-message.css?bf1f","webpack://GUI/./src/components/crash-message/crash-message.jsx","webpack://GUI/./src/components/crash-message/reload.svg","webpack://GUI/./src/components/custom-procedures/custom-procedures.css?7a6f","webpack://GUI/./src/components/custom-procedures/custom-procedures.jsx","webpack://GUI/./src/components/custom-procedures/icon--boolean-input.svg","webpack://GUI/./src/components/custom-procedures/icon--label.svg","webpack://GUI/./src/components/custom-procedures/icon--text-input.svg","webpack://GUI/./src/components/delete-button/delete-button.css?d6f1","webpack://GUI/./src/components/delete-button/delete-button.jsx","webpack://GUI/./src/components/delete-button/icon--delete.svg","webpack://GUI/./src/components/direction-picker/dial.css?1d90","webpack://GUI/./src/components/direction-picker/dial.jsx","webpack://GUI/./src/components/direction-picker/direction-picker.css?36be","webpack://GUI/./src/components/direction-picker/direction-picker.jsx","webpack://GUI/./src/components/direction-picker/icon--all-around.svg","webpack://GUI/./src/components/direction-picker/icon--dial.svg","webpack://GUI/./src/components/direction-picker/icon--dont-rotate.svg","webpack://GUI/./src/components/direction-picker/icon--handle.svg","webpack://GUI/./src/components/direction-picker/icon--left-right.svg","webpack://GUI/./src/components/divider/divider.css?a745","webpack://GUI/./src/components/divider/divider.jsx","webpack://GUI/./src/components/drag-layer/drag-layer.css?3de6","webpack://GUI/./src/components/drag-layer/drag-layer.jsx","webpack://GUI/./src/components/filter/filter.css?78e6","webpack://GUI/./src/components/filter/filter.jsx","webpack://GUI/./src/components/filter/icon--filter.svg","webpack://GUI/./src/components/filter/icon--x.svg","webpack://GUI/./src/components/forms/buffered-input-hoc.jsx","webpack://GUI/./src/components/forms/input.css?97cf","webpack://GUI/./src/components/forms/input.jsx","webpack://GUI/./src/components/forms/label.css?d07d","webpack://GUI/./src/components/forms/label.jsx","webpack://GUI/./src/components/green-flag/green-flag.css?edb5","webpack://GUI/./src/components/green-flag/green-flag.jsx","webpack://GUI/./src/components/green-flag/icon--green-flag.svg","webpack://GUI/./src/components/gui/gui.css?7e88","webpack://GUI/./src/components/gui/gui.jsx","webpack://GUI/./src/components/gui/icon--code.svg","webpack://GUI/./src/components/gui/icon--costumes.svg","webpack://GUI/./src/components/gui/icon--extensions.svg","webpack://GUI/./src/components/gui/icon--sounds.svg","webpack://GUI/./src/components/icon-button/icon-button.css?df91","webpack://GUI/./src/components/icon-button/icon-button.jsx","webpack://GUI/./src/components/language-selector/language-icon.svg","webpack://GUI/./src/components/language-selector/language-selector.css?a1e1","webpack://GUI/./src/components/language-selector/language-selector.jsx","webpack://GUI/./src/components/library-item/bluetooth.svg","webpack://GUI/./src/components/library-item/internet-connection.svg","webpack://GUI/./src/components/library-item/lib-icon--sound-rtl.svg","webpack://GUI/./src/components/library-item/lib-icon--sound.svg","webpack://GUI/./src/components/library-item/library-item.css?f982","webpack://GUI/./src/components/library-item/library-item.jsx","webpack://GUI/./src/components/library/library.css?a5aa","webpack://GUI/./src/components/library/library.jsx","webpack://GUI/./src/components/loader/bottom-block.svg","webpack://GUI/./src/components/loader/loader.css?b840","webpack://GUI/./src/components/loader/loader.jsx","webpack://GUI/./src/components/loader/middle-block.svg","webpack://GUI/./src/components/loader/top-block.svg","webpack://GUI/./src/components/loupe/loupe.css?75a2","webpack://GUI/./src/components/loupe/loupe.jsx","webpack://GUI/./src/components/menu-bar/account-nav.css?d5e9","webpack://GUI/./src/components/menu-bar/account-nav.jsx","webpack://GUI/./src/components/menu-bar/author-info.css?d741","webpack://GUI/./src/components/menu-bar/author-info.jsx","webpack://GUI/./src/components/menu-bar/community-button.css?1901","webpack://GUI/./src/components/menu-bar/community-button.jsx","webpack://GUI/./src/components/menu-bar/dropdown-caret.svg","webpack://GUI/./src/components/menu-bar/icon--mystuff.png","webpack://GUI/./src/components/menu-bar/icon--profile.png","webpack://GUI/./src/components/menu-bar/icon--remix.svg","webpack://GUI/./src/components/menu-bar/icon--see-community.svg","webpack://GUI/./src/components/menu-bar/login-dropdown.css?63f7","webpack://GUI/./src/components/menu-bar/login-dropdown.jsx","webpack://GUI/./src/components/menu-bar/menu-bar-menu.jsx","webpack://GUI/./src/components/menu-bar/menu-bar.css?6d88","webpack://GUI/./src/components/menu-bar/menu-bar.jsx","webpack://GUI/./src/components/menu-bar/project-title-input.css?deeb","webpack://GUI/./src/components/menu-bar/project-title-input.jsx","webpack://GUI/./src/components/menu-bar/save-status.css?2a69","webpack://GUI/./src/components/menu-bar/save-status.jsx","webpack://GUI/./src/components/menu-bar/scratch-logo.svg","webpack://GUI/./src/components/menu-bar/share-button.css?024b","webpack://GUI/./src/components/menu-bar/share-button.jsx","webpack://GUI/./src/components/menu-bar/user-avatar.css?daa7","webpack://GUI/./src/components/menu-bar/user-avatar.jsx","webpack://GUI/./src/components/menu/menu.css?fded","webpack://GUI/./src/components/menu/menu.jsx","webpack://GUI/./src/components/meter/meter.css?8842","webpack://GUI/./src/components/meter/meter.jsx","webpack://GUI/./src/components/mic-indicator/mic-indicator.css?601e","webpack://GUI/./src/components/mic-indicator/mic-indicator.jsx","webpack://GUI/./src/components/mic-indicator/mic-indicator.svg","webpack://GUI/./src/components/modal/modal.css?6c48","webpack://GUI/./src/components/modal/modal.jsx","webpack://GUI/./src/components/monitor-list/monitor-list.css?51ed","webpack://GUI/./src/components/monitor-list/monitor-list.jsx","webpack://GUI/./src/components/monitor/default-monitor.jsx","webpack://GUI/./src/components/monitor/large-monitor.jsx","webpack://GUI/./src/components/monitor/list-monitor-scroller.jsx","webpack://GUI/./src/components/monitor/list-monitor.jsx","webpack://GUI/./src/components/monitor/monitor.css?e42e","webpack://GUI/./src/components/monitor/monitor.jsx","webpack://GUI/./src/components/monitor/slider-monitor.jsx","webpack://GUI/./src/components/play-button/icon--play.svg","webpack://GUI/./src/components/play-button/icon--stop.svg","webpack://GUI/./src/components/play-button/play-button.css?3af6","webpack://GUI/./src/components/play-button/play-button.jsx","webpack://GUI/./src/components/prompt/prompt.css?f64c","webpack://GUI/./src/components/prompt/prompt.jsx","webpack://GUI/./src/components/question/icon--enter.svg","webpack://GUI/./src/components/question/question.css?6320","webpack://GUI/./src/components/question/question.jsx","webpack://GUI/./src/components/record-modal/icon--back.svg","webpack://GUI/./src/components/record-modal/icon--play.svg","webpack://GUI/./src/components/record-modal/icon--stop-playback.svg","webpack://GUI/./src/components/record-modal/icon--stop-recording.svg","webpack://GUI/./src/components/record-modal/playback-step.jsx","webpack://GUI/./src/components/record-modal/record-modal.css?ac67","webpack://GUI/./src/components/record-modal/record-modal.jsx","webpack://GUI/./src/components/record-modal/recording-step.jsx","webpack://GUI/./src/components/slider-prompt/slider-prompt.css?1e1e","webpack://GUI/./src/components/slider-prompt/slider-prompt.jsx","webpack://GUI/./src/components/sound-editor/icon--copy-to-new.svg","webpack://GUI/./src/components/sound-editor/icon--copy.svg","webpack://GUI/./src/components/sound-editor/icon--delete.svg","webpack://GUI/./src/components/sound-editor/icon--fade-in.svg","webpack://GUI/./src/components/sound-editor/icon--fade-out.svg","webpack://GUI/./src/components/sound-editor/icon--faster.svg","webpack://GUI/./src/components/sound-editor/icon--louder.svg","webpack://GUI/./src/components/sound-editor/icon--mute.svg","webpack://GUI/./src/components/sound-editor/icon--paste.svg","webpack://GUI/./src/components/sound-editor/icon--play.svg","webpack://GUI/./src/components/sound-editor/icon--redo.svg","webpack://GUI/./src/components/sound-editor/icon--reverse.svg","webpack://GUI/./src/components/sound-editor/icon--robot.svg","webpack://GUI/./src/components/sound-editor/icon--slower.svg","webpack://GUI/./src/components/sound-editor/icon--softer.svg","webpack://GUI/./src/components/sound-editor/icon--stop.svg","webpack://GUI/./src/components/sound-editor/icon--undo.svg","webpack://GUI/./src/components/sound-editor/sound-editor.css?5a86","webpack://GUI/./src/components/sound-editor/sound-editor.jsx","webpack://GUI/./src/components/spinner/spinner.css?1a2a","webpack://GUI/./src/components/spinner/spinner.jsx","webpack://GUI/./src/components/sprite-info/icon--hide.svg","webpack://GUI/./src/components/sprite-info/icon--show.svg","webpack://GUI/./src/components/sprite-info/icon--x.svg","webpack://GUI/./src/components/sprite-info/icon--y.svg","webpack://GUI/./src/components/sprite-info/sprite-info.css?cb1e","webpack://GUI/./src/components/sprite-info/sprite-info.jsx","webpack://GUI/./src/components/sprite-selector-item/sprite-selector-item.css?eba5","webpack://GUI/./src/components/sprite-selector-item/sprite-selector-item.jsx","webpack://GUI/./src/components/sprite-selector/sprite-list.jsx","webpack://GUI/./src/components/sprite-selector/sprite-selector.css?2d9e","webpack://GUI/./src/components/sprite-selector/sprite-selector.jsx","webpack://GUI/./src/components/stage-header/icon--fullscreen.svg","webpack://GUI/./src/components/stage-header/icon--large-stage.svg","webpack://GUI/./src/components/stage-header/icon--small-stage.svg","webpack://GUI/./src/components/stage-header/icon--unfullscreen.svg","webpack://GUI/./src/components/stage-header/stage-header.css?0f2f","webpack://GUI/./src/components/stage-header/stage-header.jsx","webpack://GUI/./src/components/stage-selector/stage-selector.css?eaeb","webpack://GUI/./src/components/stage-selector/stage-selector.jsx","webpack://GUI/./src/components/stage-wrapper/stage-wrapper.css?c1cb","webpack://GUI/./src/components/stage-wrapper/stage-wrapper.jsx","webpack://GUI/./src/components/stage/stage.css?84f0","webpack://GUI/./src/components/stage/stage.jsx","webpack://GUI/./src/components/stop-all/icon--stop-all.svg","webpack://GUI/./src/components/stop-all/stop-all.css?457f","webpack://GUI/./src/components/stop-all/stop-all.jsx","webpack://GUI/./src/components/tag-button/tag-button.css?c590","webpack://GUI/./src/components/tag-button/tag-button.jsx","webpack://GUI/./src/components/target-pane/target-pane.css?1197","webpack://GUI/./src/components/target-pane/target-pane.jsx","webpack://GUI/./src/components/telemetry-modal/telemetry-modal-header.png","webpack://GUI/./src/components/telemetry-modal/telemetry-modal.css?efde","webpack://GUI/./src/components/telemetry-modal/telemetry-modal.jsx","webpack://GUI/./src/components/turbo-mode/icon--turbo.svg","webpack://GUI/./src/components/turbo-mode/turbo-mode.css?82a6","webpack://GUI/./src/components/turbo-mode/turbo-mode.jsx","webpack://GUI/./src/components/watermark/watermark.css?5339","webpack://GUI/./src/components/watermark/watermark.jsx","webpack://GUI/./src/components/waveform/waveform.css?c57a","webpack://GUI/./src/components/waveform/waveform.jsx","webpack://GUI/./src/components/webgl-modal/unsupported.png","webpack://GUI/./src/components/webgl-modal/webgl-modal.css?2fac","webpack://GUI/./src/components/webgl-modal/webgl-modal.jsx","webpack://GUI/./src/containers/account-nav.jsx","webpack://GUI/./src/containers/alert.jsx","webpack://GUI/./src/containers/alerts.jsx","webpack://GUI/./src/containers/audio-selector.jsx","webpack://GUI/./src/containers/audio-trimmer.jsx","webpack://GUI/./src/containers/auto-scanning-step.jsx","webpack://GUI/./src/containers/backdrop-library.jsx","webpack://GUI/./src/containers/backpack.jsx","webpack://GUI/./src/containers/blocks.jsx","webpack://GUI/./src/containers/camera-modal.jsx","webpack://GUI/./src/containers/cards.jsx","webpack://GUI/./src/containers/connection-modal.jsx","webpack://GUI/./src/containers/controls.jsx","webpack://GUI/./src/containers/costume-library.jsx","webpack://GUI/./src/containers/costume-tab.jsx","webpack://GUI/./src/containers/custom-procedures.jsx","webpack://GUI/./src/containers/deletion-restorer.jsx","webpack://GUI/./src/containers/direction-picker.jsx","webpack://GUI/./src/containers/dom-element-renderer.jsx","webpack://GUI/./src/containers/drag-layer.jsx","webpack://GUI/./src/containers/error-boundary.jsx","webpack://GUI/./src/containers/extension-library.jsx","webpack://GUI/./src/containers/green-flag-overlay.jsx","webpack://GUI/./src/containers/gui.jsx","webpack://GUI/./src/containers/inline-messages.jsx","webpack://GUI/./src/containers/language-selector.jsx","webpack://GUI/./src/containers/library-item.jsx","webpack://GUI/./src/containers/list-monitor.jsx","webpack://GUI/./src/containers/menu-bar-hoc.jsx","webpack://GUI/./src/containers/menu-item.jsx","webpack://GUI/./src/containers/menu.jsx","webpack://GUI/./src/containers/modal.jsx","webpack://GUI/./src/containers/monitor-list.jsx","webpack://GUI/./src/containers/monitor.jsx","webpack://GUI/./src/containers/paint-editor-wrapper.jsx","webpack://GUI/./src/containers/play-button.jsx","webpack://GUI/./src/containers/playback-step.jsx","webpack://GUI/./src/containers/project-watcher.jsx","webpack://GUI/./src/containers/prompt.jsx","webpack://GUI/./src/containers/question.jsx","webpack://GUI/./src/containers/record-modal.jsx","webpack://GUI/./src/containers/recording-step.jsx","webpack://GUI/./src/containers/sb-file-uploader.jsx","webpack://GUI/./src/containers/sb3-downloader.jsx","webpack://GUI/./src/containers/scanning-step.jsx","webpack://GUI/./src/containers/slider-monitor.jsx","webpack://GUI/./src/containers/slider-prompt.jsx","webpack://GUI/./src/containers/sound-editor.jsx","webpack://GUI/./src/containers/sound-library.jsx","webpack://GUI/./src/containers/sound-tab.jsx","webpack://GUI/./src/containers/sprite-info.jsx","webpack://GUI/./src/containers/sprite-library.jsx","webpack://GUI/./src/containers/sprite-selector-item.jsx","webpack://GUI/./src/containers/stage-header.jsx","webpack://GUI/./src/containers/stage-selector.jsx","webpack://GUI/./src/containers/stage-wrapper.jsx","webpack://GUI/./src/containers/stage.jsx","webpack://GUI/./src/containers/tag-button.jsx","webpack://GUI/./src/containers/target-highlight.jsx","webpack://GUI/./src/containers/target-pane.jsx","webpack://GUI/./src/containers/tips-library.jsx","webpack://GUI/./src/containers/turbo-mode.jsx","webpack://GUI/./src/containers/watermark.jsx","webpack://GUI/./src/containers/webgl-modal.jsx","webpack://GUI/./src/lib/alerts/index.jsx","webpack://GUI/./src/lib/analytics.js","webpack://GUI/./src/lib/app-state-hoc.jsx","webpack://GUI/./src/lib/assets/icon--back.svg","webpack://GUI/./src/lib/assets/icon--help.svg","webpack://GUI/./src/lib/assets/icon--success.svg","webpack://GUI/./src/lib/assets/icon--tutorials.svg","webpack://GUI/./src/lib/audio/audio-buffer-player.js","webpack://GUI/./src/lib/audio/audio-effects.js","webpack://GUI/./src/lib/audio/audio-recorder.js","webpack://GUI/./src/lib/audio/audio-util.js","webpack://GUI/./src/lib/audio/effects/echo-effect.js","webpack://GUI/./src/lib/audio/effects/fade-effect.js","webpack://GUI/./src/lib/audio/effects/mute-effect.js","webpack://GUI/./src/lib/audio/effects/robot-effect.js","webpack://GUI/./src/lib/audio/effects/volume-effect.js","webpack://GUI/./src/lib/audio/shared-audio-context.js","webpack://GUI/./src/lib/backpack-api.js","webpack://GUI/./src/lib/backpack/block-to-image.js","webpack://GUI/./src/lib/backpack/code-payload.js","webpack://GUI/./src/lib/backpack/costume-payload.js","webpack://GUI/./src/lib/backpack/jpeg-thumbnail.js","webpack://GUI/./src/lib/backpack/sound-payload.js","webpack://GUI/./src/lib/backpack/sprite-payload.js","webpack://GUI/./src/lib/blocks.js","webpack://GUI/./src/lib/cloud-manager-hoc.jsx","webpack://GUI/./src/lib/cloud-provider.js","webpack://GUI/./src/lib/collect-metadata.js","webpack://GUI/./src/lib/connected-intl-provider.jsx","webpack://GUI/./src/lib/data-uri-to-blob.js","webpack://GUI/./src/lib/default-project/index.js","webpack://GUI/./src/lib/default-project/project-data.js","webpack://GUI/./src/lib/define-dynamic-block.js","webpack://GUI/./src/lib/detect-locale.js","webpack://GUI/./src/lib/download-blob.js","webpack://GUI/./src/lib/drag-constants.js","webpack://GUI/./src/lib/drag-recognizer.js","webpack://GUI/./src/lib/drag-utils.js","webpack://GUI/./src/lib/drop-area-hoc.jsx","webpack://GUI/./src/lib/empty-assets.js","webpack://GUI/./src/lib/error-boundary-hoc.jsx","webpack://GUI/./src/lib/file-uploader.js","webpack://GUI/./src/lib/font-loader-hoc.jsx","webpack://GUI/./src/lib/get-costume-url.js","webpack://GUI/./src/lib/gif-decoder.js","webpack://GUI/./src/lib/hash-parser-hoc.jsx","webpack://GUI/./src/lib/import-csv.js","webpack://GUI/./src/lib/isScratchDesktop.js","webpack://GUI/./src/lib/layout-constants.js","webpack://GUI/./src/lib/libraries/backdrop-tags.js","webpack://GUI/./src/lib/libraries/decks/en-steps.js","webpack://GUI/./src/lib/libraries/decks/index.jsx","webpack://GUI/./src/lib/libraries/decks/steps/add-backdrop.en.png","webpack://GUI/./src/lib/libraries/decks/steps/add-effects.en.png","webpack://GUI/./src/lib/libraries/decks/steps/add-sprite.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/animate-char-add-sound.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/animate-char-change-color.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/animate-char-jump.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/animate-char-move.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/animate-char-pick-backdrop.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/animate-char-pick-sprite.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/animate-char-say-something.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/animate-char-talk.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/change-size.en.png","webpack://GUI/./src/lib/libraries/decks/steps/chase-game-add-backdrop.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/chase-game-add-sprite1.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/chase-game-add-sprite2.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/chase-game-add-variable.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/chase-game-change-score.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/chase-game-move-randomly.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/chase-game-play-sound.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/chase-game-right-left.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/chase-game-up-down.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/cn-backdrop.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/cn-collect.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/cn-glide.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/cn-pick-sprite.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/cn-say.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/cn-score.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/cn-show-character.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/cn-variable.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/fly-add-score.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/fly-choose-backdrop.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/fly-choose-character.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/fly-choose-scenery.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/fly-flying-heart.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/fly-keep-score.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/fly-make-interactive.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/fly-move-scenery.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/fly-object-to-collect.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/fly-say-something.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/fly-select-flyer.en.jpg","webpack://GUI/./src/lib/libraries/decks/steps/fly-switch-costume.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/glide-around-back-and-forth.en.png","webpack://GUI/./src/lib/libraries/decks/steps/glide-around-point.en.png","webpack://GUI/./src/lib/libraries/decks/steps/hide-show.en.png","webpack://GUI/./src/lib/libraries/decks/steps/imagine-change-costumes.en.png","webpack://GUI/./src/lib/libraries/decks/steps/imagine-choose-another-backdrop.en.png","webpack://GUI/./src/lib/libraries/decks/steps/imagine-choose-another-sprite.en.png","webpack://GUI/./src/lib/libraries/decks/steps/imagine-choose-any-sprite.en.png","webpack://GUI/./src/lib/libraries/decks/steps/imagine-choose-backdrop.en.png","webpack://GUI/./src/lib/libraries/decks/steps/imagine-choose-sound.en.png","webpack://GUI/./src/lib/libraries/decks/steps/imagine-click-green-flag.en.png","webpack://GUI/./src/lib/libraries/decks/steps/imagine-fly-around.en.png","webpack://GUI/./src/lib/libraries/decks/steps/imagine-glide-to-point.en.png","webpack://GUI/./src/lib/libraries/decks/steps/imagine-grow-shrink.en.png","webpack://GUI/./src/lib/libraries/decks/steps/imagine-left-right.en.png","webpack://GUI/./src/lib/libraries/decks/steps/imagine-record-a-sound.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/imagine-switch-backdrops.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/imagine-type-what-you-want.en.png","webpack://GUI/./src/lib/libraries/decks/steps/imagine-up-down.en.png","webpack://GUI/./src/lib/libraries/decks/steps/intro-move.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/intro-say-hello.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/move-arrow-keys-left-right.en.png","webpack://GUI/./src/lib/libraries/decks/steps/move-arrow-keys-up-down.en.png","webpack://GUI/./src/lib/libraries/decks/steps/music-make-beat.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/music-make-beatbox.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/music-make-song.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/music-pick-instrument.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/music-play-sound.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/name-change-color.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/name-grow.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/name-pick-letter.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/name-pick-letter2.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/name-play-sound.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/name-spin.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/pong-add-a-paddle.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/pong-add-backdrop.en.png","webpack://GUI/./src/lib/libraries/decks/steps/pong-add-ball-sprite.en.png","webpack://GUI/./src/lib/libraries/decks/steps/pong-add-code-to-ball.en.png","webpack://GUI/./src/lib/libraries/decks/steps/pong-add-line.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/pong-add-score.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/pong-bounce-around.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/pong-choose-score.en.png","webpack://GUI/./src/lib/libraries/decks/steps/pong-game-over.en.png","webpack://GUI/./src/lib/libraries/decks/steps/pong-insert-change-score.en.png","webpack://GUI/./src/lib/libraries/decks/steps/pong-move-the-paddle.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/pong-reset-score.en.png","webpack://GUI/./src/lib/libraries/decks/steps/pong-select-ball.en.png","webpack://GUI/./src/lib/libraries/decks/steps/pop-game-add-score.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/pop-game-change-color.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/pop-game-change-score.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/pop-game-pick-sprite.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/pop-game-play-sound.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/pop-game-random-position.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/pop-game-reset-score.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/record-a-sound-choose-sound.en.png","webpack://GUI/./src/lib/libraries/decks/steps/record-a-sound-click-record.en.png","webpack://GUI/./src/lib/libraries/decks/steps/record-a-sound-play-your-sound.en.png","webpack://GUI/./src/lib/libraries/decks/steps/record-a-sound-press-record-button.en.png","webpack://GUI/./src/lib/libraries/decks/steps/record-a-sound-sounds-tab.en.png","webpack://GUI/./src/lib/libraries/decks/steps/speech-add-backdrop.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/speech-add-extension.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/speech-add-sprite.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/speech-change-color.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/speech-grow-shrink.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/speech-move-around.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/speech-say-something.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/speech-set-voice.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/speech-song.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/speech-spin.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/spin-point-in-direction.en.png","webpack://GUI/./src/lib/libraries/decks/steps/spin-turn.en.png","webpack://GUI/./src/lib/libraries/decks/steps/story-conversation.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/story-flip.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/story-hide-character.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/story-pick-backdrop.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/story-pick-backdrop2.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/story-pick-sprite.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/story-pick-sprite2.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/story-say-something.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/story-show-character.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/story-switch-backdrop.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/switch-costumes.en.png","webpack://GUI/./src/lib/libraries/decks/steps/video-add-extension.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/video-animate.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/video-pet.en.gif","webpack://GUI/./src/lib/libraries/decks/steps/video-pop.en.gif","webpack://GUI/./src/lib/libraries/decks/thumbnails/add-backdrop.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/add-effects.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/add-sprite.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/animate-a-character.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/animate-a-name.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/animate-sprite.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/cartoon-network.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/change-size.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/chase-game.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/getting-started.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/glide-around.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/hide-and-show.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/imagine-if.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/make-it-fly.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/make-music.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/move-arrow-keys.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/pong.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/pop-game.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/record-a-sound.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/spin.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/tell-a-story.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/text-to-speech.jpg","webpack://GUI/./src/lib/libraries/decks/thumbnails/video-sensing.jpg","webpack://GUI/./src/lib/libraries/decks/translate-image.js","webpack://GUI/./src/lib/libraries/decks/translate-video.js","webpack://GUI/./src/lib/libraries/extensions/boost/boost-button-illustration.svg","webpack://GUI/./src/lib/libraries/extensions/boost/boost-illustration.svg","webpack://GUI/./src/lib/libraries/extensions/boost/boost-small.svg","webpack://GUI/./src/lib/libraries/extensions/boost/boost.png","webpack://GUI/./src/lib/libraries/extensions/ev3/ev3-hub-illustration.svg","webpack://GUI/./src/lib/libraries/extensions/ev3/ev3-small.svg","webpack://GUI/./src/lib/libraries/extensions/ev3/ev3.png","webpack://GUI/./src/lib/libraries/extensions/gdxfor/gdxfor-illustration.svg","webpack://GUI/./src/lib/libraries/extensions/gdxfor/gdxfor-small.svg","webpack://GUI/./src/lib/libraries/extensions/gdxfor/gdxfor.png","webpack://GUI/./src/lib/libraries/extensions/index.jsx","webpack://GUI/./src/lib/libraries/extensions/makeymakey/makeymakey-small.svg","webpack://GUI/./src/lib/libraries/extensions/makeymakey/makeymakey.png","webpack://GUI/./src/lib/libraries/extensions/microbit/microbit-illustration.svg","webpack://GUI/./src/lib/libraries/extensions/microbit/microbit-small.svg","webpack://GUI/./src/lib/libraries/extensions/microbit/microbit.png","webpack://GUI/./src/lib/libraries/extensions/music/music-small.svg","webpack://GUI/./src/lib/libraries/extensions/music/music.png","webpack://GUI/./src/lib/libraries/extensions/onegpioArduino/onegpioArduino-small.png","webpack://GUI/./src/lib/libraries/extensions/onegpioArduino/onegpioArduino.png","webpack://GUI/./src/lib/libraries/extensions/onegpioCpx/onegpioCpx-small.png","webpack://GUI/./src/lib/libraries/extensions/onegpioCpx/onegpioCpx.jpg","webpack://GUI/./src/lib/libraries/extensions/onegpioEsp/onegpioEsp-small.png","webpack://GUI/./src/lib/libraries/extensions/onegpioEsp/onegpioEsp.png","webpack://GUI/./src/lib/libraries/extensions/onegpioPicoboard/onegpioPicoboard-small.png","webpack://GUI/./src/lib/libraries/extensions/onegpioPicoboard/onegpioPicoboard.jpg","webpack://GUI/./src/lib/libraries/extensions/onegpioRoboHAT/onegpioRoboHAT-small.png","webpack://GUI/./src/lib/libraries/extensions/onegpioRoboHAT/onegpioRoboHAT.png","webpack://GUI/./src/lib/libraries/extensions/onegpioRpi/onegpioRpi-small.png","webpack://GUI/./src/lib/libraries/extensions/onegpioRpi/onegpioRpi.png","webpack://GUI/./src/lib/libraries/extensions/onegpioRpiPico/onegpioRpiPico-small.png","webpack://GUI/./src/lib/libraries/extensions/onegpioRpiPico/onegpioRpiPico.png","webpack://GUI/./src/lib/libraries/extensions/pen/pen-small.svg","webpack://GUI/./src/lib/libraries/extensions/pen/pen.png","webpack://GUI/./src/lib/libraries/extensions/text2speech/text2speech-small.svg","webpack://GUI/./src/lib/libraries/extensions/text2speech/text2speech.png","webpack://GUI/./src/lib/libraries/extensions/translate/translate-small.png","webpack://GUI/./src/lib/libraries/extensions/translate/translate.png","webpack://GUI/./src/lib/libraries/extensions/videoSensing/video-sensing-small.svg","webpack://GUI/./src/lib/libraries/extensions/videoSensing/video-sensing.png","webpack://GUI/./src/lib/libraries/extensions/wedo2/wedo-button-illustration.svg","webpack://GUI/./src/lib/libraries/extensions/wedo2/wedo-illustration.svg","webpack://GUI/./src/lib/libraries/extensions/wedo2/wedo-small.svg","webpack://GUI/./src/lib/libraries/extensions/wedo2/wedo.png","webpack://GUI/./src/lib/libraries/sound-tags.js","webpack://GUI/./src/lib/libraries/sprite-tags.js","webpack://GUI/./src/lib/libraries/tag-messages.js","webpack://GUI/./src/lib/libraries/tutorial-tags.js","webpack://GUI/./src/lib/locale-utils.js","webpack://GUI/./src/lib/localization-hoc.jsx","webpack://GUI/./src/lib/log.js","webpack://GUI/./src/lib/make-toolbox-xml.js","webpack://GUI/./src/lib/monitor-adapter.js","webpack://GUI/./src/lib/opcode-labels.js","webpack://GUI/./src/lib/project-fetcher-hoc.jsx","webpack://GUI/./src/lib/project-saver-hoc.jsx","webpack://GUI/./src/lib/query-parser-hoc.jsx","webpack://GUI/./src/lib/randomize-sprite-position.js","webpack://GUI/./src/lib/save-project-to-server.js","webpack://GUI/./src/lib/screen-utils.js","webpack://GUI/./src/lib/shared-messages.js","webpack://GUI/./src/lib/sortable-hoc.jsx","webpack://GUI/./src/lib/storage.js","webpack://GUI/./src/lib/supported-browser.js","webpack://GUI/./src/lib/throttled-property-hoc.jsx","webpack://GUI/./src/lib/titled-hoc.jsx","webpack://GUI/./src/lib/touch-utils.js","webpack://GUI/./src/lib/tutorial-from-url.js","webpack://GUI/./src/lib/variable-utils.js","webpack://GUI/./src/lib/video/camera.js","webpack://GUI/./src/lib/video/modal-video-manager.js","webpack://GUI/./src/lib/video/video-provider.js","webpack://GUI/./src/lib/vm-listener-hoc.jsx","webpack://GUI/./src/lib/vm-manager-hoc.jsx","webpack://GUI/./src/reducers/alerts.js","webpack://GUI/./src/reducers/asset-drag.js","webpack://GUI/./src/reducers/block-drag.js","webpack://GUI/./src/reducers/cards.js","webpack://GUI/./src/reducers/color-picker.js","webpack://GUI/./src/reducers/connection-modal.js","webpack://GUI/./src/reducers/custom-procedures.js","webpack://GUI/./src/reducers/editor-tab.js","webpack://GUI/./src/reducers/fonts-loaded.js","webpack://GUI/./src/reducers/gui.js","webpack://GUI/./src/reducers/hovered-target.js","webpack://GUI/./src/reducers/locales.js","webpack://GUI/./src/reducers/menus.js","webpack://GUI/./src/reducers/mic-indicator.js","webpack://GUI/./src/reducers/modals.js","webpack://GUI/./src/reducers/mode.js","webpack://GUI/./src/reducers/monitor-layout.js","webpack://GUI/./src/reducers/monitors.js","webpack://GUI/./src/reducers/project-changed.js","webpack://GUI/./src/reducers/project-state.js","webpack://GUI/./src/reducers/project-title.js","webpack://GUI/./src/reducers/restore-deletion.js","webpack://GUI/./src/reducers/stage-size.js","webpack://GUI/./src/reducers/targets.js","webpack://GUI/./src/reducers/timeout.js","webpack://GUI/./src/reducers/toolbox.js","webpack://GUI/./src/reducers/vm-status.js","webpack://GUI/./src/reducers/vm.js","webpack://GUI/../locale-data/index.js (ignored)","webpack://GUI/./lib/locales (ignored)","webpack://GUI/./lib/locales (ignored)?87c4","webpack://GUI/readable-stream (ignored)","webpack://GUI/util (ignored)","webpack://GUI/util (ignored)?8529","webpack://GUI/./node/self.js (ignored)","webpack://GUI/./node/extend.js (ignored)"],"sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"lib.min\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"chunks/\" + ({\"es-steps\":\"es-steps\"}[chunkId]||chunkId) + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonpGUI\"] = window[\"webpackJsonpGUI\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n","module.exports = require(\"../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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OWA4ChwIGAS2BwMECNyomzt//qOLUialcQwDG4eBR8CakgboIf///daxQhJf//5qCwQLT7///+psPKVf/mL1e6v/+2DEAQAOuc9J4z6NYas26by5UnTMxgyB8BQAKUoNcNUkXxk0LJvXHss9TwM4/xBZgvLZgF/AEowG2FW3//tnW518SAKDm8t/xLAoBEiG2gsN2PJIfQTLg54NsQ0EGtcDigibUtX//7JImJSFdAFwgMQSLIq////8jj3//+cEE3////7Y3X/+ceszc5w5xeBwAH0ayUMtz376taxk3B5+PJKlDpE6JTamTIPYTIqpN/9tfrfEQDgvmn8VgQKH+FTZMIBFbjAfuzloegGgDmglBAKCEykj///6zg6wEQwsfLiaH////pnv//86Nb////+Sp/6Ve7zd1wxx+BgACgMUaHSnVxr/+2DECIANFbdN4b6NYgy56DzJ1fzpavPhb72FXH/0xEk3+YAKgD6ontq2//tr9b4ZIIG+v+JUKiNYYtxjQ+MkfrSMSHAQBCfQIKwGwBETZH///3RKwLAQYbLTt////5Z///6hcLf////lk/9aREzVsEMJwEABnL1jl57ppy9pDL4ROw7wZty6kj2TJkKLNEyYD4wPDRKBmpf+p1mtZZfrLdIJaByl9ZEm+sJODSSOG+0mBCdH61HSMCYAEegYAEIKbwSUrGrt//7uikXiGh/gAEgAUVhzTJf///91sTJb///0goBj7bf//+tsao3//nFqqqzHDKF4EAAriwVCVtj6UmVa+qr/+2DECoCORbdH4z6M4d826DhpUaS9JCr6Nd1t9XeJEONdRmMaCzMLuIibIv/1trfz9QRFC3fKn8IgBslgb9QuhPZX+tAzHQBEAN8Bx4BnyOw+3///qTHQADKAkUJ9BND////lA////mIjxv////zpL/SrzQVbhSYB8RSSIsS/q8OAxuk0jLwMVyWPoL8lADiamF+AMuBuaM0TpeRS/1tnT/luoJnC8vqJv+ERw2TgxahThaRt/TQL5AAuGBQMCXoD1DSAGal///UtSKJsRUDKhwW+jaPO3///75HHv//6ywIqr////9Eb/yo3cIiVBiC4CAAO8VPSHA8DwTFN+z8om7Y7zv//+2DEDYDQcc874eatIgo253g9VaT/x8xje14YTDP5cTgb/q+dqrLfUS7qCEaBtCaszFxIfWERESKhV4zwuEVf3Y+VQ98BoZAJaQGIw+ITEyZIpf/+zJIl0mg1EBK1AxAASBGKl2///9lKIeSP//9RTAOAxu2////+YCr/+cBneYhAo/AAZwlCw0ZHmYR3SHcmLddyX0lr//4gASHNVxwCBzYXKIibIpfqata3lvnCSqBqLAWCifYVT/hMQG8VebjAFX66zIhoN0wGg8BgVQAbFB4gEQUvIpN//0UE6ZcF+Bho8gKG8XAXzRNP///71C9T///uahQInn////+RgxfpN4dnkwf/+3DEAoCRobc55mau4da25/iM1dxQ+AQAPZiNtWvZNf7deZGH6KpZEVnKM9f+t1IfCjeeErEBQgoDIpAi6ki/dq1GaaSjhL8sElQBqKAcPHbOC57/CYmGGsYuNcZgbXrUs4SoTAIX2AwaPgGTGGhDtNjV2//60lpF4tCygMPEQCSqFtKx56v///ZctFv//+sjgbGzb////XxuDC+VSImJlAt8AiA5DVM4nnSO7UGL0WAYG+OTOWfN3KG4VSNZyh5zsBEkPt/9b5w/zhtg1AwUED9ZFv4TBwwzoxWWJeLwevWpMwHWBQAjAANFoBVmFvNHb//7uzpHRXgamIMVFFS/////JR///6iyKGX////+PxL/VQZ5iKMLQLgQADNVtpOi0+x9AeXUEsdkfRRMjXWkTIjLx1tF08Qw//tgxBMAD323PehmlCHINug8iVH894nTZFL21LW7zh/nErBg4GGnbjZf8JkhMyNEDUw6oXSK3poJlwXODYUFBIIfoH1GDnmC1f//UtVi+QADFsARSCTNE2////5ePf//5gF1Lf///63x+LbRMSFKFoNwKAAWQUH0C89160xAItDuiSRzi6pDsTQWIOgZh0AC8B7JAi6ZIq/1p1HH5xWXgZj9RE/4TQTUfImVyKhaEaP7JniTC9gIgIIMoAAQhpkir///opDmgEoQUSlZF/////Kbf//6Qmb/////ko5XiIilCUC4FAAAxgIhkC9FAWbcjIiGo1bZ8jQbrsmYDiAakjEPt/+9//tQxBQADX23QeC+jKGcNqh8OVG8Rx+cQxawoVfrKX8JgBFxqipMkH4BiIb36RiQIBYEGFQFpYA8QcJeRS///6zg/ggcjHmC1f///+Yv///nRZDf////ko6xVTVyFMLwIABIGcc48s5QQvBSpej5DKMVjzt5QDEj4l4A9hgogpeRSb/vUc9TYiYUX5V/hkwi5Gj1UJUOohPrUdJQLwHCAsJBfIPJsz///+gVwDAIOJmjt////6D///6h8/////yxR4iZpguR8BAANjH2dD0OOP/7YMQIAA5Ztz/hyq3hjbbo/IfRXCJQ6qwMJh6LRuz1mRAgtLZRfD0ANaC3Y6iZMkUl/75xuo9WE1B2v1En/DXBdcao2qg/wzAxPUtAzHQBEBDbAWEQCkZGgfZ///+kYkCAWEQKBYupf////LH///TFLP////+WGa5u72Q1xeBwCLSQgmqnpE/bEkj8dsInquJPTrI8TF6BFgWMiBSsi7f++pupsMnEx9Zh/F0KsU0bViSENE09SaBfHMBtkLcECYBh6XF////rMAajiCL/////dv//+Qn////84ypHd4ikCDD4EAAzjQ5mNZrsYwoUF6hkgOKxfZ27kwAw487AmEDy8OWIKf/7UMQUgE6NtzvkTq/hpDbn/GlRvHkUm1X6nzh7qLVYTyGk+ogv8MmBhxTR6rDHw+UVX3Y+SIW9gWBwEUEBhUHjLF1JFX///SLQNlA4WFtn////8pt///nBO7/////lg8kxEhTBii8BoHrmXbP/DwZDDaHcFFk2UDMudAnwbtN0C+IUA9QSmYLV/6n1HvPVhHRo/Jf+L4LzGqVqw4YuyE/WZENDA4ccAvAAPjjiNUkf//+tIsgVMgoBNm////+Yv///rHx/////ONU3iImDCnD/+2DEAwAN5bc76GawoeY25nQc1aT4DAAufJxZg713pM5CssIhEclubv73qbkIFCwzqLyI7A2kiRqk3/U+o95arCQXL/rIp/GsFAUNU/WKFEBy19Szg+wkARcQAoKB1bFSKrs////UQ8CAtEAzBP////5g///+oXK3////5w8ZNv0PQuAQADTCcxFROHN7sdlVRSeUpy3//jcjJgP59pBGicNoYmIKXkUkddK849UluslqwgGoXehzg5K3+OoKDIaqWaB8aP1JmBDwtyF1gMBmcDhoID3yobs///rrUkauAUEQoUyWPs/////JRv//9w2p////++WC0lh4iaULQXgUAB8CHM3/+2DEBoANIbc94b6Moeq25nQ6VbwKEt9YaWrkU4Z+0NYotvJoEwlAviyAMyCDpy4n/9StZ7rPYSEh4/kl/cNOFNQqDRAxuSfrQTLg54N4Q2kIaYG3BE2pav///RLAICgbEj////+7f//6x2f////1HjLRuxwDwEABZEmU/OmFLI7kUQhBA5W5Om1XlEEKFFMoAhCADwA40njVJvddBamrOlrnSrWDQ+Dl7PoiwP+PsKCYXpotQa4Wkbf2c8Vg2wBoUgGL0DJQcFAkWLqS1f//1Jj6ANIAFgAX0Fq////5Zb///OCk1f////nC1RRnZ4UJEPgIADXW5hoqYlHAsFysKGCidx7/+2DEDIBO+bc15FKv4aY25vyM1dxKyB/ygAYUSTLgEQ4AqENXEVLyKTal1PUy1nT3OmuDQWFF7c4Q/+L8KFh8nsUMKVG/+oxI4MIASAoGADaBrQBCDSeNUm///2c8GngwJFtn////9F///86Lmf////9RaNmB4dQpAuBscIyz6dNLOEopPysoa7CL/M/1vUrApONSVs0PUgUc8/0vqas63Oo4dUGBNusg38U8KAYjT2TYto3/rUdIwN0OaDYNCl0FRKx5///+tRMghEIbCkv////5x///+NFv////55V7YfwfBcBAARgMZKd6VmZB/qpkxrtjPDPmOVWPmICWt3CUEcAEGFT/+1DEE4AOLbc1oWqtIXQu6DwX0ayJGqTfXQaeRWWW51dyAgwMs/G8/4d8KAYfJarEjHgYX1oGZDAukHiAQTgNYAUWA3Qf///zApgOD4bGaJ/////ON///qGm/////88rzAVThrD8GgtGmEwLlMzbUpvmeV3Tirkh//bIKXrdC7hLRXk6+rbX/9tfr5GBlfUX/4uxMiNLVYiJNDa+6CZOCPhRgiqAUMmC////5sLgDxN////+m3//+smP//QpYCZmVC0E4HACUpZ/qSqZJaSJI//tgxAmADJ13P+m+niG0tua9HNaEYlY9Txsaq7Hw7DoGZIgNmFTPP+palqTNHdfrfF4GnN1mX8XY3zNNTdQ2QVRFZ17VtWMqQIYjYELIBROTyKX///1nAgADuX////+v///qJn//0EiuDwgQYXAYBFaKqr9nuwwUlBHlJZw6pfWXRJqxvRUAO4gOlJ41SR6+zLPXOvzpvUEAGBwabsO1/wvEQMRpCY5AauJL9ZwjQv2GFgCSQAVLxYidSRf///rJwCIODmO3////2f///juf////9Z43YAeECVF4CAA3BiWv+lmyA2UlBIokjE8XXR6iwANE+mTAXzAxXESIaXjFTfqWts6f//tAxBiADRF3NeHOreGOLuc8JFFM6z9QSYDleod/8LxGEdJaoSwUk/6zhHhqJNBvYIqkMUtOz///9IxD4woAT7f////Of//9Y8f/+SR2B4lQpg+BQAlBizv7PZWIBFod0PAxPF1TdZFgbWZRmMyBKcJkau3/rbW/WfqCIYQN6yh/EVJI6N5aghBBqB76ky4OWFgRUQKqwD2RE0H///+ozCYUdqv////1f//9RB3//5IuUWscg8D/+2DEAwAPfbctoOqtIdQ25fQc1aRAAWIEk+LKSQLlkQAyZ5ekVnLn//wSYpLb50YJHISBjEgxdSRfWuyU61Z0t9ZLuoIjANCWrMBSqf1BEHk8sbLoCMgxQQn0EzQnw6UCQhCBbgZDDg1ywdUv///sZgLBkFAGaJq////8zb///WPr/qX/1f+dPa/UJQL6OROBAALIIhfOMnwlOXXRK2uT17L//9wQDXqleGC3ZxSh6BGmS1L31LYzRpS35L1BMSF5fcYqH4SA5IHBUUkRHYNjAmHpXNSDA2DAJBUAxHgZkBwsknkUkf//92QC/gOBRq/////zv///UQVv/1N//509DgFuHIH/+2DEAoAO9bctoWqtIcOu5fwc1aTAIDClKPL7dGjO/c6zAme8kdjO9//qJkCe7UiaGIvWEyKqTe13SUt7qLfUS9QQioPonzozH8JAkVA4SNYiZEBsepallINQAkAQMBF0AbYB7pEjVJF///fykEg4KWRV/+/stv30T7at//8b////of51q+9QmqqzIEKFwEACk0wkbsylHoXzaHQmh5L6mf/vVWcCzlrmYwQcjgcqQYupI+66516jhb6i3UEIaBwAfqID/CQDEwLBI0w3JPjE1VLUZkYF+imDbACWBFQLZ52///6zICIEDsH/////zn///RHB/PWI+SUTZgAECEF4DALU1FL/+2DEBgANVXUx6GaUIdIupbQdVaSn/lIbbLCUDli+gv0iYAp97OUKBnIqFzBTOLV7aTLTdzh/qP4QjAoEfx6b8MlEWKRI1ieRH4xPVQMyKBjYO0BCMAHpIIm3///5qH7h4X/////U3//9Zwa+vhUyMC6PWXLRUMguAwGRhGM0svLKD+bLBBZuq+t6//xozHEKPCVoIRd2FrRETZF+lre7uosH+cNsGoMCgkfrGQ/hnoXkPolmSFmB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\")","module.exports = require(\"../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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bPc+7lytZUEOq78sdeClkN5Eb1Sgxl9rLGXWq+dadoJ/O3/yiWQ/bn38nMIfl7SGtMmfRxIJctYzpNalMdqN+6X///////////////////n3/////////////////sZqlY/qQWJAJQIADAYKY03VtMsOC7pyge9hyQWhkYYLGDGBi//7sMQRACUGGWP5vAJEmMNrPzeAAJsYKHmJDhkCBTFUJiZUB0EqAotFmzBsxbyHZREYOdJdqNV9t0vJFMQ83tNfoGfI4FowCUMHGYGR2VLJmELrj5Zp2kJBgMRIPsTSHGW4vCqs6zpNycJxWzXV7rHfaWSfBuucBSKlluTD+4su1TXlqMwV5D653Kju4Zdmt2t/PGAuKq9j8qpnZdOOBJBGMeWkYyR+0DGVvdALi0UquQbfsRaXWoaa68T+Q57c5Y9dJKI4+8nfv6jL4agRhkmra3feqWb/9a7WlNmkmqkqaU/NLa1qvuvatT7TmUwqhieHavdSmFsXlX//////////////////6//////////////////sbwt/vC/LNN4AGAEZkAAAQQCAAYZ2YuBEQSaeLyQ7MLQrMBJgCYko4DSoWDzACKPBAHaRmCgQBkUP7FUVbBcdz2lDFhpLPkii+TcEL1yS+JsmZPLn1g5lT/l6Hca4ATIZiIlAIUISUxEBTOYFYSmqwcuhLEDlkJ7uhAzmPBOqosci8gdwIGxOUwa4cOySZuXYw8ckuy2XZ1WtMvMQEFG0XW5bvxiEupKKGXx3HDVxytamd62nRDEOOQ7D8Sic3esU28YacqFyXGl3nDufYhDNSSRml3MRR/JZYZxFM43D9yW4SK3De7lbHGpdv2qSx92tJ8LNuix5S1aKjn926sbvy/uDsORRSzlXPlzDLf//////////////7/X////////////////3s+6w5bzqpZ77gFg5QXACIAAIAAQlVJ4oIBjVwqImNkiSIqemCnRmxKBpd4TISMBCRm4ymmY8//uwxBgAJHnXZ/m8gkQWMuv/N5AABmAEIGLT9iEmEAaLIdaMRtEe1S1rbuPyDqQ60mQeFkE4zlr4XGW+FCV8tKgdCB4hploMYf4QvrsDMH3qkIxdNwbNdgz1Q08rI4ZSpS+WMEHIytZbldZSxH6bBiTwtpnB0Td6811kMUh5bESsS6XZUuDM5uQuK+zs7v7EBIkjKHXXNAbDqkRh13ZZjGZLP42JRPQzS2Gfy6HZVjWgajytX7tnHGzyKyyLv1FsZbFKfK5D1mWUEF6hV+egGApmHZyvMxKnpZ2klUpf2MS2zVhqXWLUNR6UupFq9yvlbluGfKuH97+v/////////////Kmpqv/ps7YvfQiYUI7ADADLZSM5mvO4FUDQVGqLGYgsPMaBh+CDg04xMBBxGglgaNECk/jBx+MGCCJnxgjBDg9hyJpmwImIz+RNDamZcYAlOZeMLDsvb+UTLuMKZiyJB4CjI+K3prlu0+4U6IgHKoygyHVKGfgmQxhocibg+0OPtK554o/XtxKVuRZclTizK3vcica/LtVopJM47DmX37Uthp0Ouosem5U32NQM61ylwzwuQbG3Bvy6mmaV/aS9Gb19+5Czt7WX9mZbj3mN/tNZvQ1A0q+1Kqs7erX893JRTv+68CQ5LJfT/rOKV6WS25uVUuGNNlrHc1Vqw7SxWhv3Jdj9DaOnP/8GReq5285QIAJDVEAgEFFgHWe4JV1dDU87xtpUXhewKlIcCmPFYiBDEVhDIMPWsBw21oGDKm9MHGo1XbfmH4hE2dQyz+JRZ+G7Mko5pRRAmXoxyqqPS1YR+LVIDWN43F4rkYW7InL/+6DEMYAepZFn+bwABDIzK/81kACje2ttfn4g1iPQdI6dmVK5Lsv5Xqy6KZ772pFG1lE/umlzxSWpu9VrT7/u3F9czsf1yW8VNIIje3eqUbwP/XlsqzxuXKSQWMaeMUlJF+uJTN3rRGT08Xtv1rVNBPaWzq5N1Z3PUMSy3X6/8bzfvXKlWYklV93PdiXQPDlBBUX7XgGNZZRx3YnLIrXltVg3f/8IyNVHXKCCACoakHQiUZzej9oCwNmD6L4C+hiIUOGmuBQMYqqk8YUmKjyVW9ZsEzgEJMO6VUDY2uhxVZ3cFK1hVV09IbYzOQPEH2BIkNKKjhgkpRx+yjGzFZhknphlwEqAhEePKD0XIqnIl6hJ4y2GG2Xu8GaPqXrSGkQc7bUW68YrLpc5EvuvbnKoozR9n3kdZw3zl0dpI7hX27cpf6BIlIewDKn6or0BbciTwI/dLC4AmJ2fjPx+HpBlhbt32QUk5Tu/FM4DgKKWY0wx9IjBMglNyzDUulcGRKvUp+0GbUojA0crY1pmlzgaHqXGGJmLuW7k3GY9ZgSNzeVepWpJXKaK1SyiX9pv/+oVT/9NVl6sEwUAIhAAACAiDAaPzK3DgasUo2mTZgKuAS4ugYIfAkYMmX3HFCcYDyQrEIKZ0gg4lBU+lENDYnVzdbiy1NR2GWF4YGX7LYiqqmBtc7F00HiaAXv/+6DEKwAn0hFV+byABCizLD83oACHQmaoqAIJOZY0Mqyo5uCu84qQw0DGC1JgiRagdKB4rFpOv4uRAK4XaLtAlIFDrdVIvmPSSuv6Zd10QMQrEh+X7L0QTJ5ijLqpAK2sgeaDNyXJ9o33GuruNXgEIvynhL/z5IAx9StDuiKj6WpfxrWHYepcYzamfrS5ibX3HrwQ6lJSWLsbnH1eKGENl9z0pfxhsGT3K1NNwzW7DU9vKnu0tM2ehni8DeyOAk6I+XfavFHEljftKgNmi0YOcNazqu1HmXUNpwf///////////////////PWHf/Dn////////////3KCjvQm6Hnd4ocDZJIUAEBFNuPWfUPSbQ1cy4PCbyzDDC1mxmQcQppthQ4qzCqVCAKAiQYSctSwDkcPnDXIIKzlPeydtWSviptYxjVdqlulgxpdRno6AS9EYJ+3oicOtNlEBz0YT8DgIkHV0/LpRmafrKpchxy6edljuofroV3FWtQO+zlTc1R0FFDGEWldx1HjYLL3weRqWqsgh2mibqRyeypq1My+klFLamWeMNh6ISJ/3sgCDYZmJVMzsklXyign5DJcrcqik40t74XxwXgpIq7Tc5K6sNRKBpbVlsARSfpIdj0/TZ1ccJZDlW1T39W8Lt2fwpMGgwzSxyk+o3J01iLpa9E4Giv////sMhVyisv/+8DEAQAlqhNb+byADXhBq783sgnMAjBWF1ASACaTDRel+BXy/ZuQ2ro0UFC4APCBgwUQAQUO4mIa1rxQewUCRYEipkpeBgax3yCRSJBM7E5e8L/q7XQmgk0JB0lSUqyfqEulGVtMEXCjMjoEFuClyocqsq6Br48aYI6LgZ28sp3S3GYPs8zS46qW0/StS6jGGmXdRXf6asX5hrUZlFqUTsup4eTrU0pHcppWoA0175RjVl764SR/4rDMxey1rpnKEKoCzTITMpEc/rv63uWtSW/EaSlzhyG8M+vTIpRafuG1K4YYhFs30V2zuYTkk05u7QUUs52UvhEqOUzNmH6OksfZpovhnf1ZvVVtEQ8MzbpL4QCIlylr8USrR/VBJP/X///////////////////////////////////hrVi0ZzHStsDACEDIAAABsAgUOCc8I8NaKQxwxDrF/JODCkuGYafGPBhw6KY8MmpHaRRgRYCBA0gTBRyNB40XNOM/BWtCAEb6A1OrWgQDCxeXcLyo3GElRl5ZxkLOC+csWJEAYRiBGODMAUaERSEAKh5goEOALjKamLhSFaFjsKYBQBAAqp4KB7wGKCbYnJn3IUaf9uK5Eex0CVeDAJcqTSsMZWCGQAw0Bf2Cb1WzLYKWEbRabrPU9rtgYTMAGjRSglDBoGZ21p/05do9NBaDlewwyMUIzFRsKhhecHEQyCMHoGRrSUk7Udd15Zp/ZhxZteVPLbEaku61LDVC9zTnan4xOrnalDyw673FsvrB0gfqmeB/kVqeUx2JP1LcMZmAu40j6yTGtNYRpixg4CWXEg9TRlTO2kF+kmHIWEbol+49SgjUaxww5r////////////99/////////////////+W1asiLvxACATAwAQICIAm05PzeikLARn4rA534WrowcBKh6YMIiIAIiQRnhUGASPptBC+0swAFOQZOZUD6pP/7oMQeAB/Nl1v5vIAMtLprfzmAAE1BEYnIW6aU5N+oyeDb7wIB01I9E1IwxTw48CwSDDVgMOsqEICh4IQgLRdU1gGbIWvYpfMv1LYAk7lYwa/MSfKzhfnazELD0thm4XQRNw8aWrd+GmvddeakECX+NzSYZtBVSegqH6dylVoHxjdDKaspdu1JH0qxeXzUUpKW3Yv01FNSShrQE6z/crU2N29WzgS/egS3q/rt/B2ozSyR4YnexuTNa/N/UkH4RJulbtTGU4d1vG61+OSxllLauZ6saznyFVu/6KpghigAABIpBJblt54cWPIcRGwQCQyZBhFBwUMKFUGB4xKhTAAiMaAsRg0wGJlLTAQVgEw6EDW5vBbM0NhkL1HMiQtps7BWAsCdtsUNIogEr7ZqZhBbNaYV0b1pNL1AzVnCSIJYBK7awqQriu9LqNCUFinFojPFZSu580VUTYMdFpSwSRaNzbqdMAQOTpCGrwa2157ZBKq8WfuPVbl+UyaPJ8PAkPHVpulDcNMDgNyUjoVAzAe2ajDcHJs0WGNnpEmPLngtHxdbgMziTEF35wfANFPQFqLxSvnA9PMU0ptS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\")","module.exports = require(\"../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"//uQxAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAAAGAAAHVQAtLS0tLS0tLS0tLS0tLS0tW1tbW1tbW1tbW1tbW1tbW1uSkpKSkpKSkpKSkpKSkpKSycnJycnJycnJycnJycnJycnt7e3t7e3t7e3t7e3t7e3t7f////////////////////8AAABQTEFNRTMuOThyBLkAAAAAAAAAADQgJAc3QQAB4AAAB1VVWW5CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//tgxAAAAqQDk/QAACNqMW2/NvBJAAAOAAAAAAOAPQ3//////8oD7/4PkAQ1MKuToaoiXfWyd3Ta/ix2YIIGAa5gQmaFILfJQExw3DngsDxeAzFKYYOALfwh7WciegTySVCgLoTIlItqHRG9D1Utj9TDShqKfvttUBvbhzD+G9Dgo9RO2VKMuoigcDeqcN400V8+ivY6ohxGC908pS4kpP5Do8m93g6lV86lYIjDBtC3hXHMfqGun8WetoUd7uLekbvK5o9To3TeIUdVcKZhVqmgae4pGzTV4Nt13a2H3mccQVKxK5Dm1WsNrSwmL1codZcQoDe9iSvcXrq8u4vD12X+Egsq//tgxAAADlV9Xf2hgCnyqGp9vIw9ATU5RGJIlZJLwawO0dCBIkBYqvRbzZWkv0/0EXItcocJcKDin4aBYztoF152GtU+8OGrOroZk+4kqYW/rxnUGfSfUpcMxzRuNkRZtZdmzjUizS8zbqkbHNqVMtaUaTq93Iv4cymTG2xKXn2YVxnm27c0WCO0RDKiSXWzfmv6ZoAuC5E3R1YLRiEZdzFGNsAjjozTlSpxq9DEb1US4VAJeqApgyWiYKZT4FKCqkdoZpBTiYKU6Ss7MdRq1h7Rm53X4TKom9vsxw15FJNDBqisalhUV1nqXiWI7mYJVXtErahD3J2eVFPt/x0J4LV7u1dq//twxAAAEFGHTe2YbupLs+l1ww7tASaFdmZdv99tj3lU10VBzCqYwAHZ2NBbSkATpNDg+Pu65sQmqaBRUol2nuJJWJItEbUmJpmIZBYoOpFZmiUKxCUbNjBtLIzDI2JJG4K9hdeGYswWT++GeGcEtUZS6uQk1V8/3mFJTql8esc2SkqC7VqGY5OcY/Nni72GWZYVXv2XzpAvu293/3+s5mXIBxcDhazkCBgw0AmAgoLo+QpLxurhu5Ou3HohEJbTx65T1sKW9b3hBe6lXspjCIUaCJRWEDzWk+KnNZVtrfXSJseqE8o8ELutuaJkB+J8qTCc0WWWknTatoQa8fTCyspeqyVE1zJUzVnQwaZqyfqnMny9iyZZ4zKkCgq5MsYmEdIliVIRBX4DaDUERJeHh31339tMd2U1kf/7cMQHABFZl0XuGHGqFTNnfbyMPETAgSMJC0CBcIEgcEmxpDpGqaqZMDkMDRiWyiBYaoZQloGokV8prdM/M9391n2tf/Xilo4hTHVcOa7t3e91gp3nTIfwtMzOYoKDAIanVDOx4fRsKNlUIZgnoTE+SEqiA3WUEMyzkMrDNG00BN3K9nCPsXZVz5192I7Q+oRYCSIV4dks+2kTPWVTQzUHiBx5YWL1AJREoRkMUadCm4u7KnfdmUO7O3L4CJaqakxrJhhXw1XgQCBVIBjKo0DYYwy75R1WMdTsp4oUCFNnY2VUoFE+bOTejqUIsyGq1CYhgwA3kZGjmGTXLKGaubW9Tcj8i1ME9TO5GmZrVZi951udxAw16QSHd3Z2ba/VEE2zIAxhAC0ElGVSIYAAKoEsG3eKwuWSCO3/+1DEEQAQAZ8x7mRh4RuB5PWcPAQud6/KqTopwjBhD+aBcjKox2O6PHisSwxNJAtMUg4nDjYUSqkHCGvNxtaWalHS01NHyYoTypdCrZkcO5KxlcnWZmXw6V5ews4arLlcpqZHf8pt2Nt7Kfshn8g5JHdrBjScl2/9CRBkQgIgTMlaMYYp1BM2CoiKjQkeDQiEUJBVyxjypJRVgo+Eh5qnyTP/7DzoS+MHhJ546HTsi0eAiISH+PT//9ZMQU1FMy45OC4yqqqqqqqqqqqqqqqq//sQxAsDwAABpAAAACAAADSAAAAEqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqo=\")","module.exports = require(\"../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"//uQxAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAADDAAC1UgADBggLDhEUFxodHyIlKCsuMDM2OTo9QENGSUxPUlRYW11hZGdqbXBzdHd6fYCDhoiLjpGUlpmcnqGkpqmqra+ytLe5vL7Bw8bIys3P0dTW2Nnc3uDi5Ofp6+3v8fP19/n7/f8AAABQTEFNRTMuOThyBLkAAAAAAAAAADQgJAS2QQAB4AAAtVJygJdUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//tQxAAAAAAB/hQAACK7pWX3N0AA7HgwGAwHg9HKF2tFkkJlwhAAKVBjIYUFGsrbNHnMtGRCDnZTBt57hOKbyMxpCAwwYkYHzkCA3wUDojTpi4uAZgwDkQMmREFmZSAjwQoPBBw4sBQCA0XAyAZ1WkqKDK5IkWE/h8hFwtfFGv1GhEDN1MGphgUhhEyHEN/m7GZuRd2D4DcXAH6ESE/knqsy2m+m7cixgYFMrJpGjf/dS3/nHKVV5Ao5/fh/07O7////0AAAEvxwLGg94AQPA//7gMQGABJNmzZ9ugAqe7Rmqc1JfIcMBBDonUbPjJgkVCEBaTYKKw4xIgdS1xYYFMDIQGhcADGBpDuHJHaHcCzwfMQI2IUuhsoD3gekNkaJ8ZUgoGFpj5cukzJERUdxqxw3OikQ0IraSKyXQSdKpz6211N+m5jfsf1LaZGKP2PP+pf9Sf//1I/X/9T+vd+rranZSlG+5tT1JGmS4ggEAJ2P/qHBA8AglCwIecECoG2oWFpetAag6mKYRCagsrxwYo7UyqiVf6ardG7xCRw0YQu/X2rNxuoJhvLk82N6LGqKFBuE26epMv639nK9lWCGwsiOsutQsBUQppKH8pImsxKyywWu9IyPqODw1yMFW31Ft/y8r9Ac5TJ7oTay1IrUyd7bqq2UrQ/VVa23VRZ9WpF791Mk7p3UtnSMapIEBAgAVtuMFgYdBEaUwJEGEgKYODeA8waLwSrIvpTYeHXAw+XTtK+xrZN86urtayKl//tgxBkADzTzO61lq6HjnGc1vMk8Yc5rGaMZSRfGdZxAyYmSW8EKhACltUHUCIPfJdtsxCkSZ1qWcLLdEkT7HCPuLgZqvWbIv8fUVfWSoxFZ5zKP////cTgBwoCTTDQQoADr+GMnHxILIgQQCZMEmGBoNlTSAFIYLAYqNADxhR1a7PJXlhDJ4hqEtShyXQFIh02K9s/9KbIL5VIljWeEV1ZLl7rOCnFT5cBdTTdbDKvXuRgyKns1R7849R7nC3utmOnl3pUlH+Ius7////3JdahB9JlY+jRQgwMFABSy8YGjhe4OKhADmKiAOAQJJmOgJwkIXA6b8uECMLOaLLLeEbP3W3bS//tgxBeAjp0FO+3iZ2HlIKc1pqsMH5y0ToCwj/ZwFSj2ZllSJsA1ARc8mmpIc4YD3w7gdKgvQRG4h1ywO+9LTPfmXfnD/6j386/9FvtPHnYulf//6ftFDVdrGxkECij7/ABKYcGLIQQGVuMGBMxRG56xGQJPzcAA4Utxe1PEcXwMLEhhudiWyq0Wnnd9yzjhjyUUwjHdxwwZx+M8EHQDuKL3wI4JcveZBXo/UFTVvKt2WKhjOJqLFYd2eqEdfiAf/6zqE4us+pOoU///5o44RQiGIGdVWUBRBQYADP9xjaBSMKCA5KAQWIkRlrAeqKHJAAVRfqGSqdh9VZ/aatBoFZu670Mx//tQxBgADhTjO+1A+GG8HGb1vLV0KnwQ0v/reqEGGbec/zUdFScC5fw/5r8dQP3bXGYSvPYQjS1UUT+1BBnjPQnXsouX8k3psWFdv///+1y7xO5BQLGQSBCAAqe3UCjUnFgkwUEZKYGRADqMTCETUgkTWnQszgCsFlMapasqOSBZzQKa9azFh7Hd/nQDk1r5D3l8aMane6uiCVGW1sY4HJ/ccx7tWUfat70rJGi5Rqk8tdXrQ/kX0e7/en//8+Gyat8CqGJ+AkQYAN7/jEXyqP/7YMQFgA2A4zusbkWiAhwmNZ3QtNKw4QSfM2DDZwFRCgbtpaRJ6guRLUa1OUPaIOLmoReHcoNhsJv5iAbpqonmTKAC6E4nUuOEPG1nUKeQ5fqFZT6nnvat7eXGUs21lktrb1GqP1EwltTTj+v////WLOeKrchaBAMUAFX2yAbgWYCNwQmYZxxGmohoD5BoOLvlgKY05JjKWGELT4RLqzczKkdZ7kU8hgoxAw4YnNRqXgM4WG2Zjk5GgPSjhfZIL8BvTKZJIUKCIga9kQxoVvnD198/pouYFI9k664uyF69Rb9WZGYsQO2uRWjYu7//9uPmFpYcLNp4DEIQABb7CHSsGFhJI//7YMQHAA/c8zOs8mWh3BxmdZ5MtFLEBQUxfPzQwVMOgIu6WqZwwswkPRYPssgeixeoVJ0ca/J6svLwCEptQdgZsdhgR1kgGCCrbWoNYVtPGcBZp59UUsWt7lg3XufoH+6EwNbE9SkqpG1daC2aumdazPQY2QwKCQ+t40W3///9da9KDhEvegiKIAA19RAdCYRoOTMfVRYAumIrGZbDoOBiPBZ9lLMDBBeL9Pi1iLWn1MHjlmrrSG3ULoNWIsy0i+ByKRMzJtllAAkg7E21B3h43wvAU1S9agwimr5//2ZFJjSkUXpMVGZep12XrnnsCCFec6f//8h+SYxbECs1ggEUAJf7CP/7YMQEAA89BzOt5kfh0B5mtZ5ItCxYzYmKQ4jDhAoKjXB0H1YYIl4Sit3fg6yB6hndJnjKjiIXEy1+p2jlwjJnMv/GgMVSkwJx1FkI6XVa2E3BeTskzDPAtZ/0RIEtlymRZqkUZx9VbJFrOXcsEsz1UVn1/mXtrNu1rHG0Zf//9akafMWFVzIYgjABPfYUDZhobI1cJumGsYogRoMEAIQg0ECICxduZIW2xvRXw+oYZBDmOdO26U1Czh/yyBT1uV8yC0Akmroh7YeF2bFrBSjfqSFznt2ojxXfU+71HT1Z3lg1Uv1mlmq1bNRaatrtM5+7//7vWjsakmaQfYqCFAAn+wphoP/7YMQFAA808zOuZgfhwx5mdbkeZCjwPAQdaABQGCBIYTrhjINGDGY5JaCH4GOhYimabbw1HzMth9/LNm5bQXvfz/rCiFrZV0AbxDw/WHfKu2EkPgNUqqAj0/6zhEVbPpfpnqzC0yN3ZdGox79Nvax8uLKWKpZft///kwAwiPFHn3hF7UysICDgAP7YQYL0EBhICDglp4GFDR3oDtAOE1MyQEfpgBh60JADE5JE7seLBZDzut9GX7QDjH9EAlSWUT1RZBBJn6xEST+M6FIPPqRFer8oCd6pR/yrZ+p4zu9XFz6WqtKMsipm91Dno////WpymLatVX0IAhwAp/aIfwGQYsAFdf/7YMQHgA7swTGsbiWh45xmNZ5IvDGMAzNec7ALARsqmg03ZeJj6uJDK7orWyjphI+3rtQzD8YTDjmq3AOBJpl1SzIB2Hcj0xNocGzvWJABemifNhEzXo0yerzWp39R1tnXLJClXvAHE1Mw9KS6JGg7b//+neE3DQiMJimpszCYIpBW/1EAB6WpqhJ7iIQG1iKtiMJo2MsJgUnw1sxIQRYXvlP2MbQQJGzvbLrOeZfG/z7sDBLSBSueAswwD7VnA9gPEzvWDWgbFk9etYZEK3UpEqdk6n7ZT0X5KlbrWgoqqsZrzNkBaQquev///8x40KOcVgqYBFWZhgYcAlf2RmZC4EAE/P/7YMQHAA6E4S+tzLMh1Bnl9bzBPFTl1DDyk0bVPBATEgIBAAqBrxT+MIji3ylrhU+dIYmDPI69FaiBRC/zdJMBgJsmZ1EeAjJB0LskF4Du+TQed/ckm7yCtYkPVHRVfCKpFZFCJm62F02tETzaBycXmNv2///ofuZtED2CAIoKU/tjBRQ+DFRYOMKHTNRo0qmCY4eHFtDgrc3YAeROIzeWW+yswH4vELUxbySN7/f5cMMKzqWZYwEAHmbY60Aaw7HZsWsNiT60hZr9alV2n6tl0FFk+u7qnGq2Y6eoWGWmIM73m2p83d/2f7URykW7jqpVhkMYFOf2yAAJwIh3aMOAMQiwcv/7YMQKAE7s4S+uSPMh6TRl9bmKdLxjUKDABW+mC4yq4MRac7AH/lmMqHBBLoLrVbaAal7HQCFSWT7OXAFaDwG7KTQD0g0x2aoSsii/RF91Z0P5tCm+YppeqpcUBs21bFmpPxw2gTwoRwucUvr2f//sm5BSxhkMofMggEMEXeIxQcCFtl/FAzBBYzH4OECgMFpfigBEnWMwNB46ahP1NSkwERgVtodt7Pihe6ZwB8DdjSopgOiTaq5iHthwKTcXoZhH4pNH6yvUzMmZdtFZXQuzx+G3Svcx52YlVZ2s110nyyp2+3//////b9rkKV9eZCNqPZUEAhCC7/YGTMSAlazurOAQKf/7YMQJAA50wy2tzXMh5hwl/Z5IvKqnj9KJA6e5KEQEqoZLBBhIsO/kbztBg5Copa5mXQ/z0tYZ3n6ykAiA7ka1FEICi2peQwHFbzUaB/qsrJUfFz74q5hYjy5HnEYL6YlAgEcI1uOILVPcphNH///66q6oBbAaMgMAEEGlf/bWcZJZIiGQmlgAAegGJmUAmYDBTcFzQQqqYdNIcIV3SnL8AUCopL4zK41aSVqfyicAQxWWa3PAs4qB9rrBB4saFJawzwPlQXoLELIeyI0FdOv7scLeqtRHD117GiLa85JxQ7KTS0bE4D///U75KQEg5yp9hAAckzfWRnCcVRTRDCq6bhgxmP/7YMQKAA70wy2s8iWhzBxl9Z3EvIoeZfBIGACdCmcCsDMbEsSI8It1MJsAA23HKeP8YXSfeFh55RlUZgI5PoVskJtDxtesRIEXNm3NhjWvqKA4adanrf3OJspHcoHFtaMHgSODw+YLU5nin3fr0/R3wPaQBsDgcNX0IBjxiX/UQyjRckuwhuEGBnZlwWRjZEGMgSnbqncBHwvkymPXd1BkIrQ/QV71OjvOd6umA3C2mjWcDHDb1CuCZN5TDSk/lD1Tg777VvfsWE2mSKMfi0l6lm3RUhMWAAeQPosseiTQz///YwvTHCQXPtDNNQYAFIK+rbSpomg+lsnqY8GLpUaVBwQBXf/7YMQMgA5wwymsciWhzhhl9bgqZCQEuO1YMVxMcGzya3ndEYRswrl2wXQ9C6tQdo0nMugSY2XatQiBJbVBPhiIvqWhMhHa17zo7uqx0/u2capHj8SMVrKL3cBZJ+gaaV/Y9/F2f6YulFboXCP//pegiFHaV/9thEHOKhcvIuGCCIA8hjQIWbT7T4ZUssCOqgacjW385kgk7nXq7SC+Zt2WFzKdOopgEI9oOnWGjE5tUKFBUNX7EQP22KiY5q3U0mtrImdilIMDknS0aVkFjEFykusqdWbrqq//9eaYq5BITh+WdwQBGCF3sgYCsedQNWkSDPKAz12DUQOB0qyAClTEjOEYWf/7YMQRAA5svyus7iWhzLRl/aaWZBnNo8NYlr7NNeziiAfB60AbWNKFZYBpDmySIpwqtPIYC1QTVojlHnprsRFL1KLf5xDXVLDtWfQfMPSBmiRMypQ00xX//X/Q9wlFFoFCgf/+zSSsCAAhAtb/2iFBxvF5NqYUAZhOZf6EzSgEvNRa40gzNISGP/SV89JmX4TTY0SQFHbd1gBMp02ogAVi1e1RFFFK7LDQNavjWjpUw+5C6D2o9xYVoTKFDnJ++nKtZ1evpq3UurPq//////f/VE2NWulV5RFVRlBlAwgmt/7bBYYWqk6keSggyYlTJBAKKByPA0DrAMhMNUxIJIMw2+gWzv/7YMQVgA5Mwy/tvK3h0BhldbzA7JLNcdZoFxG1r/AM6v16QwCVH03elzDQOPb5SQOuN/85dT/9BS11iA9PSO3pcMMddMPvOGK1efkQysrTV+c1t3fvSbA1wmNCiuEIQxQv+sib0oBgEAMTMECDHzUyihA3mZQRcgRguK655WjW7UIvSYVwIXI4prKkhvRr2WHVSvWcCCMtkmGuVdDF+FpSatkxrIaNzhd2ugcdS+xue0XrWSCUBlnNdPHBZQHFH2ujtaLc9kPR/65qkBFLXf1KTYQCFBV+rYQ8ChwKrOyZjhiIQZ44BLUTBDcCoBtFSeFKov83GJXdzA6USwmylLqQXUm3df/7YMQaAA/tmSetxFHh3TRl/bgKdAY4tj1InQP0QKfZVQvz2i6g6obYzUjJQx55mo0Bb0fYwdbdzNl0taZCOrtM0jzl19d9LV3tbf3/////3/1uZr/dyrBq8gf/rF+xM0iqDoBhIpa/62AUCghUDoIcSqVCCgAxUIA1JouKuKWgI7KBlm0mv9mQqG2XCeGPP4iGrm9YdG99MBCO9CmgmLtP6IwW+av6iyTy+yZxn651lPdUxIRkkvmc5V6vynIyvrVtLfb/T7p//t/26HkRH2Uj0oRkYroQJVUgNAUIBDfewMHGJlYWnW+j7iICMRkAc8F82JgwIRCZmYIsp1s0d+KcpgEIQv/7UMQWgA5QwS3ttXKhuBfl/aaeZJksiuP+4Ol/UAlEqOcAhDba6QVIeXv5FQILpv3j0zr4RGj/+K6/lN8Q+elS18TOZHq3PSgkpdXd///9oy94hHnwUMN//sRnBgBAgG//7RBJInErW1xUQGcgZOTmQ5eg2xq4+xjlA8KZpJ8PsBg6Dmpw5fqIhRe6IAczWZXLoAris7MikMURaHRJIKc/VWsa39BQBW9Uo0x7uV0ZTpUwerWmO1zqmWuyIeJf///bFahR56OB1VYPAhwh/tL/+3DEA4APdZsrrbSzYioyZLW5FmwGAjceA1Lk5VzCAdAs6BmkBAy+waEUjWDGTwaDGvyyn+bMCHYHaY+8MRc2A3o90gBQNk150DJN9MuF8fBTSorizBVOrWsLYrXlQ33+3YyqfdyKF2T72ui8zonsrFRd7aeyuyf////r/762pZCprK4wGkf/o0FwVCDAG/RpIycFR+lDhkoADSUxDvMzAzEA4EASAuKKKmHwoQIrDSW9VbsKJkkbjAErpjwDkNtrBY8WlGFZSAdQ7kbJHRQg0kHZ0hQoYINVKUqHTlVKy5mLEizO6lsc0ZVe5TuwTd6a/ftbcjk99G9v0+7af//1/ls86u26lcs9CqJ0BUn315lehs8qr4qEHAe/1khwRii0/bEggOVmMMjYMMonIm+/s+B0ky10SuYy//tgxBIADdi/La1hp2HXF+W1qBZkiJnvArXqWtaSBW29YJK8vs6ACeFo7KXEckz8kAfWe9gtJ/pzpQs6mnWV6lvq3Kx1JkwIDai4uedpUrr1/7t3/uaMUDcyHUhtP/+uWjQMcFf/WyGnChYC4jKl2gUcYCYJYhoi0gYArLfAVeQY0egu7tCSRzluxeip2EEH6zgJiE0qOhZanps41jRd8fibUvUYh3kFzVKHedjia+lnZD0hZ1aZ+bRbUY7T4wREBR3tZ+n1IrJqYSGkSQqUC4hMAD/+ykoMQhQD5a20AlcDDUYaMn6KEAjzBUAAoWLBbevM7Jk5KRFLDqXLOGDKypUDJ4pT//tgxBeAELmRJa3IUyHpkiU1rMDsxBMLvNH1HQK2jKzUgvwPTVpnRrEhZFbJDFfqSEdo/UVf1X1MQfCM8GTlM+yWbLtdaJvdUUjNczlpui2Z/2Mn/dP+vOpX97rKqQYJwTF4zvjn3soDo5RmPjMUcHf6xhnLLAQHK8ElTJGDG1g7gbIKCdBhkTxmRymu2kdjlyCwB2/bSH3iEGw30/5kAJFaIKl5ZcAZhRD6DrSGoWlIspRKjJMqpbBsBLs9WVI9xMg+Inh5AspxhiMKNHCFpJZ73KX///23sICihYcgaKh4839lnpVVVw6EGCv/1gbU4IZ5OOMYwpjtkdotWi6ndUgoATKS//tgxA8ATtzBK6zEsyGkGGV1qI5sYbD0txgoCYQ88M1VmEQyM3sA3yWUM8vDGpVVtFoJZvJUlmetSIX+KljMogBeqnj0auMcrseji7iJ8uxK0Bw6bvPlzC6kWCrv//twKLoOLW4GiYUC7Tn7P9TtFYooW94sdYM3Nuq2BQeK4QwizKcZVyWGJEJwKDPbFspSZcq3rbTta64bK/pgKkk0xX1TggM3sLwVBH1t60hK17LZIabOvsfvlnP2t0HolcLz5XrdqWhVrGRn//qm7ugNncAi8P//UhJPCsMMGe2tBAIoifDEqQCGLYmG+hE8BAEEheeTN1KslnLd9Y4z4G4qFvZP4aLo//tgxBcAD52dJa1IU2H/tGU1mQpsNU7SgADxOIDMJqLIYTK+62J8KCkqlRJz5qGNCtqymO7WrTSor4JES9IpOzuhD7GpORkuzd79f/b/////9Oqykn3Shi0MqK4QFd+yffL61t4eBjA7/WSMHAlzKekbVC4iMKYwyRHghFYbLggxLJrkXsbiBr2No1+HLejYMHt2OhBZnFTPLMgGIGky3NkQtWIa/lASRDqh4yWd1ZZHZZ0l3fvpMyem+W86P0ZrpZr0VmmWxq2JRK16T+RPb/6evZja2qtUVVOUxFMhCDX/+5ZSk41FHAv/tgYkSkg5maJoNiEXAs8y2eSpbnMBVZ+HLeSR//tgxBCADdSTK6yyUCHJkmW1jMi0ZQaMbysHE6EvYOQf1BgRKOFJZQAXQbCdkzoQyXUlujG4QFD1BiE3UvYwHC5okeHVqrwjcBBZQXhFMxuFSq2U3///3gb7zbxDCpkN9H9EvH4wxj2+tsNklZoEhCQ4gUK2MEQluWhosaZC5Letzi0ZxiRiRP05NNVpkgy23c1A9UhDAmqjoN7r86GtFvU+syFHS9ES5W65YJ9n2E59FO573DXEjR40tin2AyJoKCUQ2z9H66+2gKkRV6VmYdDq1GgUV3CGBQQ3v/9bQ+qlxWR3VPl0EBRMwIWw9JyAs0iXvXxQ1sqUDjc2RWe7wQMtf/8z//tQxBgADtmbL+w0WKnAkKT1mL5cHgz+cE65fEkLis9WpYbIINrOgNYOZ+6QOtH1yl+p7GSqCdEY6NSuZWWNRedmt5+z/Xk/ft/+33/97u73K+jopTGszClD9DlKNQxQlfa20jSiurmGIeWiF3SK1PNsoyBSyQlclSj8xXwjZ2MqvZpJ7NaHvHuswAziIIFzKAIYRBOy1CbA05rOoU0KyDjPlqEoaa4svKOQtE4KwIhxfftU44RcTdpSpVlP15n/L40te0UA5gWOf/RRR3B2B//7YMQCAEyUgy/sRbKhwbHl/ZkKZQgXJf9bAqBm67oW4Q6Ukm/MGSyRZYrHg5eUvs7jgF9FGVxiV4pCUX6joJU7Ps5iAuR2v1B8IX0BRb4wzYlO0ClDpjXOXHoxgQC8MsUsJG6kOy7fZ2/s11tcNJ3AEXPBgDKrHEBAOMt3DhSzcujNSJgiUabVgdhEN7a6Ns+1RxXa1HRHLKXSjuV5ER184A6CeWTrsXwbVFHPPw7xc+PgiqvUKFX+l+SyrW0i6OgM61pVC1CyZ3OU7lrq6IRz1tbr9NfXt/8v/1b6MR9THHZtdoVHmx3CHWf39thGS6TnXNutISscJsLLcGshwtR3LHGVGv/7UMQPgAxAkS+s4kPhwzLltZaLDSTzMljVnNIOqvzUD0RvGCWcDPDLawW2DsJ3sUhR39EVx/zTgUiGEEn0i5TfsZGmZFx5gvNmdlCbtv2f+OQoNMcoXW6anYMY3b/W2C4rLHjZdRSggCRanKjdZfxj72PFVy7eK2WrNSor97FfH//6rg42B68Tw7ZBxahNvC7EIGp+ofwVT9ULma/BFf7U913Xg7FfJNTZUZ3nRTUdkR1Yl1ZM871tm0k/////7fREe8qlYeASkU4JRBC0/a3/+2DEA4APjaUlrLRYocczZXWYlmS0GUtWjkFPKvglWcal6/sBR8RMv+xmWdwfc7P1JtMjdjtZAXz//cwDUIxhY3quKDxfDesKMRPwgQuCNnoAG6U71UiGgrstujMs3Z6nTdHKiIz7ehE7qzLJpbZtdDprtX//W/6Lb5ubR6uc7OrMrOGr1ayXnkVWR7DDFyf6yQF0IqPfM0tMMxEQkG3X0paxeSBm8c6K4wYIeJQ8cQr8YTo/UdBq0Z/MgIQaTdYlZr8si2/WIyS2xoG2VZ01W66q2otMVDUzIq3W9HnZ1V3vqn/9f1//Suvn+p8krO9EMt4kY1hZAuEf+zWqUhnCFMu+sbb/+3DEBAAPMZcnrUhTYgazZPWZlmTiNbduA6sVRmKCEjp0dIXSFnmgQ1O2qzwmTktNZ1KcsHEzPdjIDCCSOkVSTLgGcBzDdBWDQRR0PUPNlM6Qfmar1TEkLdl1Kzay0TR7tZ6MrLRXTV0p673b+t2b/9P/9v+e96KxFpPlZKCxYuEPVuNUXJVwsDENf90bZb9STVIbbO7jAygGB6d6I5JR1OUtFpqXGNHgonk3tHZtqEep9M8CMwthgcqOhIpOqrWbDmheZ67MRgnxB9NhZDoKopAX3VfV55SXbFjnRKj66o76uYytSpdiV3ajWT+2n7f7/7KtbVaVmUiXVVJFqs4sFhL7uuYvrpbVTYcCELt8rbQk2iVRU2UEjKaobWL7SC0HALeZhT4dfw+3koGhw5P2FiAyHUZgCcnz//tQxBgADmDBJazEUyHYkiR1pkoEMgdjYNBDxnrssSwYTXxLBGp5bWjDQ+h/r9KmXU9I49SnkVzaGLm2gCGj+kUyaytX7f60UicDNC4hGgQMJf8qtCG9SGmJAhAnfI0iErzAiYDmcmwlhOr+ISCH4zHAqebRw5ZbuM/M9pWuCBmsukKF9ZwGtGEtOssBDBgup0A7yVN0UQ/wDTmx1ndhOp9CvnzMXoPl5URAYP2mxooUe1gHF3ipOBXpO9VKbzPZ/+aL35oEjYgacr/7QhYqTv/7cMQAgBBVjSWtBF0h5rOldYCLpAtGGL31rbQOfkwNk0/AzviISRF3EghJ+fmQSRZrE2+cWq0YAYnaWjJJmkxZ53//6oVFy33es9lICHpY39fnca05mf4b48ZQSv8/n4tKvb/jEpIt487NqcTKm5+yKnNiYzJgIyCxfaJIkMpFOA+//r/0+ary13xjAu0NOBf/aiWmFUu4bCDTb7ayRqKmJMKUab5IxGKEVFs1c0JLns8mZVlETv9mrBpDavW1h73/r6Y4EfO7Ee6mws1+8M89bZnO5c5+mqwVvD//T17/+fg2w7PaJs0Jmi0qMjRDotAHnQ/vMmW9f/Wsv8v/daO6HNVNWCAmbMYgIec+n+5ialWAZwUFTfz+2wISEgdeCFTkgiBz9RHN+XTrEBKZWWSVeXxuLVw2RuX/+2DEFAAOBJMt7DJQIei0ZPWXiizYWw/3QAbodhgRlZSARQozJNWJWSaqKSRiKg3yY/mkWYiEWBxSQsEDRtqxZRFzqhQoHC4fFaQ6u1ofSm2v0xv2C3C8jYhIMg4nRsGK3frY226rompqRoMCsA8Ipu5aVDTrKI6nm5V+bgA4dl6EvVEd5cuWv/iGAWx7sdLtgGsYm6a+0NFXTc9ZSMARYm8f7NaLv0oXX6ttQ+dbEdfutle9VZVoSlGWrUTff+f/1/r3b6eqzXWS+zWejq5SIgJhtH7tJGqTDYce2/7WSDJgs7fyvSZmxQYv9/0/G6TYwPF6B1X+1BoxvNtUj9BXOCeUesv/+1DEFoBOiL8rrMhTIcS0ZXWYFwwAVwwmmdC3ZEX6QagKld0TEP8FvaV6ahNp+vmObnVNkna/yglVKPSRJp5Bkfa8GHh8W/Yp+/T6HGmBs4QUhLTAADAMhFK/+p3DcUa3Xctw2BxpW4yNoqqkzD0tL7QdWEAEKYDD0ZxiRkUOs12XWctsotc/9VRUm989j9dIlz8N6hEFexfB0fboihH3XBqc2/slrNoiGvkRUJnqulX1dn3RUe72f9n+n/+nr/6NazqxrRrEdTMZ3E2i1ZMP//tgxAEADpmbK6zAUynCEmV1h8IchBbrvtZYdACw8SlLSEnyB9p6pGuNfhmogmeRkVLaysgrNjrfUVr3FHNX2SAACusu1nAzgyWrOBuhbHZqhExZy9VxQZqpqVTbM+61dHmStL0Rnum6JV3mPOtJvTSv+tsj7bET+m/0u2tWrl0urH2ZrDKTzlw+FG2/+1lZ+cLmisAsdSHEASaaFDACENWZIU0rP6TeErOj2/Joq4kegVs/+PQDmyYYvt4GmWm8aAuYLiO2kLSDg1fsLhLbfPXJvL1KGnlJcHxo0y8gUkwZLOiVhkquntOaPRb/2WrHiE0WOhJv//qVRmB0BghP//7bEXSb//tgxAYADciTLey9sOH2NCS1popkZ5IbhDKhEMTDMdhhsND1ij5ssged3JAbBGCRpxdsGSVa/1e4CrDvL8Sg4YdPUYgYYLrsnj4DlZd6w7fWo1VrsuDLSwCIvvItHhMqmtApbSU3gHrUK3fs+lyoc1UkgoAwh/pkwkFFN79jbZsyIGRxelRVKpYkjNyfGneyG5IIy0OOM+UDVm6mFkuK1qU1rqQgvaoAolR6WTBXAhjyVSwYzXfCIGHUtTT4HcoqW+gut60//pZkrqt/PP0rfRZ/nZEs/ZzehHeldOvSS1+tqOrqteiFBFRZlZwAig//hiYcLF0vDYMVZv2tglJyXb3ThcMQ//tgxAgADciDJay18uHMEGT1rEB8CA2oawLprHCwyt0yCS2at3rUuMNHI4t5msis9RBwK6kwAao09QdEPWDyN7eew1t6+L0KR2AkzyXGFouDZQWBIYxjlIYpgkdEsY88wahKP///0yS3teG2mwe/VqTpSmSi0IVf3ayRnXPsvb+KQ0nyCSk9VvwGSgbpNgwbU3gp9dlh/Axxv5BbwcQu2zMANZcdzAUcTR23FdDxt7jDfXWLOa2ly3JpopKtvLj0RV50Lj0JSNPx6ACAUYaIjNnvkKJWSgw8KMIDFBQRg2FQH/X1N4XVdwuFGns+skZPWEQOnZcIUHFe0RYCkyKzy0AwlDyj//tgxA8AD8WVJ6y0VqH3NGR1qIpkcYv6gMyq37a5K6SvxESe5+PczAJo8zfWBhpq7iCCk3i6EMnVqD+jVKys2jM3pWtWUl2IaYhXrIU3452OrtUrLazLYhvZEehuv2uv2/uRaej/YhW5alCID5U5Wzo12PVIFQaCiieaxpoI9MkqW2wCEKDJocvLIKkTTjtEUClEIHl0ZqtiGJkNOjNVakaTeYAhhoocCbE2CIhcc1T1BIDuXaoVkjE37DmH0V0eJfddPshfuvVLPb2WSegN82zVV1Ut9O+S6+nm7/vLf30yzZZVMeZSPV0q5DCffkMnXJrSZWCGBQhN//9tTggBIDP5Qc27//tgxAkADdmfL+1EUynlsWU1mQpkUSgegYwxF+rdQ9p3wq1sqoFDyFk0tpqqQgq/UdBOpuW6ZwGmLi9M4EIHZZeYiSM/m1/T1To0mvffSpyu32axzGoquzE6sd6ve27pr83/p9d/+z969jLdiOZKjwuV3DYUaX7/WSGcg7tPGIDEZAgqGjmu3EQW70xbhzlVZVS8vkUDZ3Nk9nI1Bukh1nABIL0grueAKcQ0+hoCbg8D3xaAu1Bfkz0eYX1aiJdGZtKXs5V6SxbK3dzM11vYt7I/ezfsb3b+3+anVu5SLYnS5CqKCDRw1Sf/99WzDYYdW7/W1nOCA43DGoBGAg6sVgXO/6pH//tgxAyADgj7K61EUyHcM+X9mIpknqF5nkaV+e5gwoqBHHllv0hWfmIBXKqjJajMEqO9DUsT2Ji96xThO6W1ZzvRRS9fVLV796IeWiO73WjJYju7YiGKST4sWKhD3W2126Oqg0soPWPEgwsBVZxhggJW77/bU+AwctEbr7pWBUImgDB2VpuPFdQ5y15n5l2qEYLrt0j9yuahhB/cLWS2mU0lmQC0HcjqWGfkRrU1xA736/1Jv007L7bLbrODdMqO6UVULczp618ZVdC3+2uu3+yOv72z2JYrm6EodjMY6wQn//sVco+GHct+skg2S0+EXoAXKFXyKFAm+IqIyjNLlqa6Xmiu//tgxBCADq2lKazAUyHFtGW1lopkM0CFos5NNVpkg+Nu6AAMSCBMXNAbZCYG7cOqPe2ImHrJqXy4/4yLsQirrlpq1aonrptTOXOtFOUvR1StKf7S76r/b/rr7UqzGVkVcyMwdqCgaiv9W3H449b//1sDaB4BZ0y8RCeWJ4DZRAjHnJqEo1I6Vm13EMDhLfUXcUQPA/50AuprN86CHX2TElCHa1QmoIwj8/00Vev3RNXQmlnZ3M6KqGObclpDJW8rZUTKyJ32Z+///+30/n6IS+RVZnKxDKoZv/+lVoCXBwhp/v7bDkFiMvkbVASsQPIpgLCGAyeS4pDvasPFKf8y1sjbSL3t//tQxBUADlSBLeziQ+GyEGT1hEYELC0o1fnAQQlHafPE8AVAcEavuIwEyZ9ygJKh8x5HkVQBefBQ+KLXU9yCKErvaQc8mKkhSioTa+6Paz8XICgjWHzbBwWEIcf/erhmKM257ZGhqLIHUk7ylngJAj8TAbgrLdlYUizdhkXnNzANxLAfQu0g1a/mIANKqi8yzACqIgnrUIgbb4igz6lq4+IpnnoVcVvolDQfXHmEGJkqWlVXCMRNFyCyLP+h/+pUCD3WQEJl//ZQ1CpUcHgHCP/7YMQCgA1RnS3syFMh4TNlNZeK1Ds3/tsDElbL9Rc4yUQTMmZ7Tp0sjrCISBorha1dGR7L/WcsGFJeyQF0JM6dzELLyIv1B/h49ZSEDv8vt02/fVdH6rXelaFeZHsrvztturUp7IdyI90v27/T9f9PtXVKabou6OCOt2jUYdy/7SRg6egYG8Dvl9AvYNMILrvRsfrAuMxxYeUXd1izEKeWjs38lHd//9qAJKKYKTdI4AyQ+beaVOYLbeqfCTF9em/vq2/+ilnu9Eey+VCXs2muzKhZ57nzsslU6VTzr9PX//9K//r7talFmVSMwwlFP/v0opMKhR23vtJGC4ofgqCKFEgvWf/7YMQJAQ8tnyesyFMh5TRk9aiKZEipnuG1SSSUhfmWNR+p+AcVCG/kFvBEPYS6jMAyy+mX0FnAascXZ0Q1MQK7M6hekE12RGs37aLf09HsUhiMqX56P8G1kepFZqmJndavLkdPKRFLzX/1/79vds90s59WVCGEsIv18z0qYbKz7SNhj5pjlYqmEREQwRYixJ/S1TTLQcAVqabf1qhBgunfy3hk4gOj5wIxUlnl0AEiGn+sRM1+URAiPUkOWykF6qt+1HkdGRkQhFtViqliEOrVqqkd2UrbvO2Rke6uy7////7/6orHWmqWLojytRghw3+rdUoVVVKLRRWZfY20PH2Dtbl6Kv/7cMQHgFA9nSOtSFFiBLNkdZCLpAjJhTCGH0HGcIS14wAFVzJGVwRQ7miAxLiZSaweof86A8TVRBlqKYBGixsmmpMIBFvQ8dAdlmVokIfZL316dTtY+ajnLWzNurtKjM7srPYzmMzAtdiO953s/J9v/2b/S/zS2waEYuxEWFcHXfrrOAdc5EMcFAgrU3pxnBjUPQM3qkzGLI7w4RaDY84ZMd1JliUVtdqgEWExazlzNi3P//yCAJPuGctx4RJP1j+9V2UlAeH93tqlDr//eb7Xuam4lLRH79cSWDuBORkSCy6ARomLlcACeRWaMirbuX6irf8nKXZbIaWzmIhEFHBkP+jVAlbEKSt3DQU5zb6yRkwTIHWo4BBIgMwGql6wUobdlYAPWe5s/Y5bHgYWFD6eLJfugA2w8GD/+1DEGAAPNIMnrKJQIauQJPWnyaQ+Gc8CnCBDfWZCMBAzeRwo6SKuPtcIMcpB9fIFUzgieWtEYAcZUWDh88SE9hgUKoSHVMR2WbPpKQ6DoDB0Rj2uCgMAmCHo/QmwerRsMNXd9ZIRpApqsemaSOCB2UsRKtraYDtxILIHGQlmg+ABrRH9PiCFVTP9IYAdj5IuyiyBDS+rZQSAiVBsmxMk9WRR5BQh2OdhjLXTHSdJnw4HDiFCyyo+CSVLSIG////FDDhxEUP/7vkFewzEGas+//tgxAMADnmjJ6zAT6H4EGR1rMg80kQa4xYaPbVS8CBAVwe8DB1h1gI1YDClCHvnLc6GeomS1LULSvzgWqVJB0TIBwPS+oU4qfG6Ur9is1fTq5Fcjs73YkiIiHpQyUc5OqKqI7JujOm95C23tU2y7W/9/uT//X365LMZWSrxrv3e5So8LRhEv/Y20PiQQIbtCUhjAHMXEbhKwXjGSknHxJO4DbhE6TlZDCeNX2F56joITPRYjVy4ArwmBvRTMA5IKAfrVHyHYRrsgOTsYPLLY0/iO2BW3iVq1Laxpg81ShM0UJlB0XEc8LxD7P49CgKQOrJuAYJCgECGpvMBKpTbmm0uiUQ1//twxAIAEEGfI600T6HytKS1poosqf2NtFD1lsHui3AgKjutMVukISSY7LjHBCYM0CR2LAViMbntw229IByFqy68zAlJ3TrAY4C6fRegOwF1tdYuOtX+x7Ha21Wcz0XTVmaUqK9k29ppSgmdZQdWv+1mK+6a/0Oyv6ddGru1EqV2cWpjsws5wQg12iyrWva9wdcVko8FNqm9scR9BxMXaZJWyBUCBHos/MgAQCJHthgAGqGSMPhyX92jzbQdVED0dn2DWaKOagmBt0kQFseOq4uE+tCkocaL9PS9enVJLoRdimoa6ohiO6KlFZqHq1rWRkkRt9FpNR7felevp/bs1nXRjpWqERTmMAaOiii9akJvDMZWX/2xxnICvVS3WgiwYwQYmtDQhfCdtPETBnU4VrRXqzIGsktbXP/7YMQUgJANoyWtQE+h7zQktaCLpFLs+ozA5J9ZA2c1CyshD7LUmDRFvayMhwmdnXki6ld+zpuv3ndOs+rKqQc7KR3RdWPR6v/sy2MlLbtU9+lv9D3ptZkVamUjkV2Kr3UGRnVXOw3ud2q1uU5xaKdbHECyryvW7SS4yiEFQSHNZtJe34bMIXSbYJD9JrFgdnLWf8Yrf//3QBURcwkHcLoIAvfz9dzd1Rnm/3uhaFnvWvxiXN/8Quro8vkp6DaYJ4iGybhMyc+dcmMnLIpAgydtKRy/r/7fzod2zIaxaA3UGc/1tNue8UTVko0Gll39rbR0CgCDuewhY4WJAm4HLACBS/L6S//7YMQOABCloSOtTFFh2DNktZiKLN4gY2YMnLAV3dsiAQeztWJSZXMQgSVZbRWSgQQJhOpSgtQH2RUyUbpSW3UNdmveWzJZNSoSqUnfUx+jtaQnYjqjIWl0re2SZrTXLVDI87e6v//7bd2Km1ZnnJY9SkuM4VbvucMKE0IQldlGYjt33tbbNCsDSO8+j9qQDhidgSPUzSUhqcCFigBz5zPOooFYelSD0XfWkFlhbmqnLoHWKKf0Ugwxx7ZMiiMk+sijrX3Vr6svotr3S7strrloq6PZaymf6aKtEbV8v///+neut0lRH3W6nsjQbDAcS/sMfuQqLwzFUu29rbUqtyO+uYEGQP/7YMQIAE/hoyOtSFFh3yLkdaiKLLVEnqa0lWk3R8SR7BbYI/U1XVR2hzUNSV02D5y0pJ0CbAIsUc0d1Qx4VBJBLJgQ1q03kkhU2rrWhtdaWIynVCoVazorydVRqux7762ZWyPxnK66mffT2u7Mzd//s/9FWSxFd1Q9XGY9U5pKR6hia44LRJLp9Tnilc08lZAMhRBnDA6QjTEF2Cy4xgImDNBkVjVwvJJ26QdfbTFwMkylnAQYyXW5qQcLyemqPxTZeuUV1Z/VZUrTTJeqKjNyNaZn0au1zuYivmIal3VRmjysVsRp1+YqtDbAus4BAcCSnAZLdLvmR5RYFlMMRZbv9Y2ye//7YMQEgA8sgSOsvmxh9TRktZkJ9JKCZyn/T4MMUxnxusHOJeM/krwAXJahO1Y/vMKJNOyakQ6B9Bom9NZ9zY1AVOFxTZmog1GIa98yFTdlayhNysw9clxZK3C08siFD7Bjx5kEAmmKyIqTQlxAwz91Z3/SNSSBo2WgqAn+LIkThlMMXrJi0VjS7X+2SIe6iyPMCNZLrADIbGXC9ShsviJhtpwq+it/Cy0rs9zYMtmqWyg2RBkaBTAhY70FzAzCLmdbVEeLE9T5fRure+/+joq2o7oWqEVuqVJZZ1mIy0RE0edGVGMSstEO5fSdPy+3/0T3QjNzKp0d0cOoMki3+qKufNVSjf/7cMQBAA8ZlyWtQFFh9TOktakKLIV22f6xxDcJljeyJkZCQLFpoyabzq0w1DZgi6cbJIvLOZI6ZLXaKIlsksNXo1VmQFAiTU3hbUQ9qNIfI0GqVlXlpcya2dDLTqW6nuhtisjMeSWyzmRFs9FudabN/sR899U+bSmn/Ul9XffzZXUHUD7UX7O5SLBRzDUWW/X6xtCc9It7pA5YACAFgLQAUHTnEQi/AQUUMmd2m3lZQByFJB0FicjTebAjAl1malmgBRCYG6HPCrbzQUVCteUm9lS1FR2VFcjlW6r5rkJnSyOlnq6KlK7KpV2ekrsiMvf9Pf/av6bIndXY7bMzXcrSgnd/dTMvRQmbj4V7e77SRHBGMpQXZKnEBhoBIk0EeLrzKpBpVgHBlCGbyyn3mprRsmhUGIXa1AD/+1DEGABPCZ8nrUixIcC0pPWoCfQah4MEKiyEpOq2SEgGE3hQiiquNTppRkLm+9LbuiK6d76q9mRehCOjGuxjUk0bS2ddrUqz//r/1++ST0Z1VCFUVIEcU+pN/MqlwuGO1m+FjwQVfqC05hwiMyUcW5SxTZgEdKqOItkj9SoSJBO8xC9TeZgQTd09IQUHpvDhF5b2cyJfQ5hddin3WUzv3oc71cx7P02axt3Mp6bKgLVVdzqrNn93rSv/bb1X//7Mnu5N7LQxkQT/T+KSCtcP//tgxAEADsyBJ61mIeHOsaT1qIokR1pb/tJEc4WYYm5z5MoCqIU5FowEYkQgLa7TBwChSWMLpNXUt8UlaQp6/OBBEEDzpnAsmIg9VAM6FsTQ1za/UX7CThRRZo4ekyPF2BkL1OicThE6SeGDbGTL0JKnIAbEadT7ktT/nB5JgCSPIl2jm+2rqV0Swdju67/WSM4woFAF3vtg0JAwrRiRRWxR+C44IzjuKVvpE91kFJEz5qF0H1qOgJZrLyKRiCfIileoWcHmTvqVvUS9O9dvdn7WTbpZd6OzX0VrqqtSttaurtW6bWS6LRr09voi/9V9KoudZwVQNxY/+iriipMNBVtfvrG0//tgxAQADxmjJa1AUyHZMOT1qRXsNrBZK39GrkKlApKEkSxXaTlhcpMCPTxZdLb/4IpSC3hnpw280rekAyFtZDbGwXFFTNE6li1iaOu1ZX9pHX7Jb2R0vWpu5G0IRf1RFUqeFWk32dl3opErRr399/fv//79FRPdWK63VFSFbSPffNU7XEHsPhxtrvtJGEhYii01RYEQDBHEEghZNY6EhpUrBhFm61IflFYjFNBOuI1NtU0AZIiBw5qD2ldSxFSRfxMWfq4T3Tu+tK0tQrsjoyZFdj0K1m21XnRuxtHVy02W7Iuv+/17eT1tu+a70QqFGgsdSMBkTh//XfRrbgqFFr18rbQT//twxASADumRI6y0T6IMtGQ1qIosIkM5smn0rDHOH6A4NaaslyJAyJXzXY1jUAxEkVLUiB7HrawEqbrJdnMQR8bUm0wgTdvMROG7ygl9f9V016mKstHLrWt6ORplZVfYjy7rt3T30Y1lsi//s39fRkdVpS7GZRAUFzRp+pd3lzrSs8QcojFFj29jbJhx6QLBKeCgoLMHVErq9pKjtJJYYkURAGPQif7imHOmyN0gyCn1nAhiEkHZMQRK7akhGIqdPj4FFaq8mmWt7M3curKv6ZzUMaVByFcx9DspToyqFUWVDqlGYljWrKuzo1L7r2k/b/7Ju1rs1L7NIiJcKyqp7ybmDhzygpVvC0VaT/6yREQ6A3hlbIB06QV1h1bHIV2/kdHT7+y6rrmZemDy06NESz50COayJNUJ6f/7YMQZAA4c9SWtQFFh+jRkdZkKLCT7k4Jqz3cjiDuj5Z6UfLQnJtW91JbPKZ2Q+dm8yVdmjOJipoBgdLxW51Lz6Heeua/1gTIBQZb3t5/TfZEDkOQZiCTfa1tk41mqsudN2ExzCxF3wcokIlvDNooFTZbyR2PuIhWE1LuHRtuiXgPEG0ZkN1ih6CK1qF4Nr2TFX9kHXSu3dlbZursp0OaqHWxJnKpDK25Uey3RiVKd2VkMkq5GWv5Ntk7sip/+vsrSkq1zq6l7GEBuXua9UWtekkqTCwYW3f2yRH6KNCxmHmugIIwIB85Qh4EPW7yQdalD7xinnQH9FJeiCcG21gBSICBVxP/7UMQZAA70/yWstE+h1TOkdaaKLADRd04fjZaDJRnJJaq82Zn92/YiU9mul6p5tpi3qhX3Z22BnlBYQNEYhIk00aEoVHoVt0ig9RFJJIJmAgAll+2k51s0n0OUWiix/61uEI3M3byHmVko4czJFNVhaVrn1SyarXnvZ7ySEtGrrU4ez3pgXJumPdqwWY6PoxNj2t1GIiPqRbTV2e1kv0Rndb85QzMQ3oWXVtq8h7Kpq2Z3s22Uroa7NsnV7lfsv//60bec92LCHK9NK9JVW5H/+2DEAAAO1HMlrGWlIeIbJLWYnhyTjMYbT76yQm3zjs3lyt5g8BfBbQHDqnWhEpWIEXXYBDcxYMxYWobgN0+2s4AXlSxKZgEiPNq9z29ZMEpDBw4cUYWYUGlpSgWStzEqNqSbKDgXJEQuWChM4NFWJFGE41o8PqS5177U+jHD6jmfhhRH1HFotsZoU7RUMdZ/7ZIgyluScVVqSvTDDJ1Uz25saqVgsM0JnNNz8y6s+aJsgiGQm9YYvPSsyzgEITy32Km31FQF0+uY8xGW7su1dWVHtq3mO9GYtEokKnISPGROLHgTLjzzhZy7VVrFxRCm6NtVCEqkARDB4gxOyKx6kNkETCr/+3DEAAAPdaUlrUBPoecz5LWmiiR2jUUd//6yRE0FmjDIFbkIhohmiRFYaHUepZSBUE0CL4ZzgaMgZoVJCs+xeA4Hs6XVJGgb8MB9ajB60ONqu7KVV290TI/LedEn7tmpalHMxOxiIqIhykYkxyIyZ2pRU00PSr79Lqiv/9fK6qj0Zj7m8IofbYF60P3j2sAjmGoo01/2kiMwAemMXmYBciFpYkbLaLkQFy2ZFRcCu1S5fdSPsl6paISRL0AGUUFKWo6BtT6KhmQ12BhPdD2T3ef1dWUta7Kzb3RtFox3rcRVnMQM0FmJaWd2oic8zMfLRLl7XVbfo3+WszzEehLod1ECEbfZN7DUWTW2jQc6b/6yRH8u4SkYs7iQYOFJ1w4hWwhBgHNIlqa6YVRfkgMkU7f3kkC1tugd//tgxBcAD1WZJay0suHrM6S1lQ8cAEk3p1mQAaBFM+sWBA7MoKxGRLJd3TStyI3SWmruuzTXd0MnV2llfRHrV2eyEWMs73OYlO3+qlpXv9dE+8qGpWy3yDg8A6frewgf61a4VjHX762SMruHgYi4yaoVIBHwtczW4yGJzRIVGrGv/AvlIJ+xnvivL//zdAQiWv53dRCdCO6ZzB8GtGrf8p17VVPO1t3zTKv5Dcystr0q/pblYGQ5ryaLv3MiPsO+Xw/POTyMss/7/mspbU+yt7nyGuDETP2P8m0e8ep3jYYe7f3SRJ7LNafWHQIiXDNJKxHtnaGjfex5szrzlv7qCG3SW+ai//tgxBQADxkRJa1Ac2IJNCQ1loosAR7dSIjstKeoxBClVVLGfIR7Jss0ZVGkTer2+vWe6efLzIrkR6Jlmzmd5ZWbhPjQ4/wMY5FJYIkyT237lqr9yRXIKUA4nAJkPAke9dROtHh9zDMUWb/WNsgxNZbquO/5jFGTYN4AqNHtDg8U2QIzcop7G6wwRWMa6QJKn1JhukdNOx8ALQhzRac6B/KKt2MB0bXUaJb936Ss/T0cl5NSMjlswtJHOxTIsrmVERHLYileSqHZKNd1T21RH+lV/9PS17ku7Gbm1B9kcw0Jx6Fn1nhGAneLBhJt/bGygmnFjUMGGMyYOI2qoi9Y6E+mSmjU//tgxA6ADxjpI6zEcWHvtGR1pon0nIzraql3502Z2RD/K6BgH5IKpMUAaw4tkkoeUk1JtWShZRZakJNIfO/wrfs+5TMy2ykj8WFRz10piCHnGB48ceDkBz6X9a8wtSP/ZAaZYDi9JKoxvblReeCaWDJcLhhpf/bHENYmIrWaOmkSnSXGuVkEURqb2kGQksZnMV7gQEjkY+eTSBxt6wqaLpM6IIWKJ/uIKKbVWNg9pb5XbXRPbW/3STO6tZXMdjshnMruVDjOjmZqnS2t1skybbIay0loj26qj/770b1LZi6GZTsyAjCerr7KCyS1swzNGl31sbBspjyzxOGoAATQB+JlgoxO//tgxAwADnCBI6y9qeHmECR1kcmEQP9higN5Ep7OcwACZwZ5r+o3N6//NWfN8YhguWfF6DjEDMi6OVjy13lx4BNNcEkiyVlF7GkQEJ3lD4JlmgUIgMDmS42PZA72Mb7OrFH/9SpW0OB/WjcXgLon0ptwsFFl39rcRlpM+Za5EGhxRiIEcSFjSCQWC64wDFwBWUdCMnTJaFxOZr6AekaKQ1B6A9N4dQbS1aRRFgZJuTVryS2i0g9dwjNFUKyQxos5DUpQUS4NmgMs0eSslcEoK0tHtczra4qZgQKlQiEiJICAF+h1iQ1Ym0VprwtFFu/1rcRkQ4OMQmtAYycEFwOHMBo0vX3p//tgxA2AD72jI61ET6H8NCR1qIn0k0HudmXWZkAgFYupLw40+qtA6EaZubIUgsuHYkq6Aa40a+YC2s/nf0ZuqznZ+y7o/Z2V0L3Vbst2UrOjWIjqrIZtLKWT1Xrv0vZie2n/0nKqHdXNNc71LYOEOptN2QyKBVErLhoKLN9rY4hwHI2craTLChgG0hJQWjVOlRFriIUCQ1ZtWDQyWLZ50FiCyHRMgERJZddRiFux2qqqFqGxvRJQv+qYPZdHra7q66zNu1na33VngjI6GKxkdnZz1VqIrOjpp3dKIa2i56mbeUl/X7X6Vqu50kbMQqgk9G4OHrDKko6PBRn//bHEZoRdHCw5//twxAcAENGjI6zIUyIJtKR1qQos6rBYopgCK0BZAI3aqjPAsbsZ/XLgyOKX8NqFd6logFmSxwmlqMwtyNs0rdZPiqSqZjIVb6Cptv71SiKl3q/Zbnc14e6JOdwakQzujN2V812Jum8jzo7GKlHVaXS90W9zv+7XVHayN1kRm54IG7A3a8WYfz7NjbBIvOi0YV/72RxALEDkrm7aMFg4JmiTFg0pEIBrF1Sl734kd7dwhEVDqC6IvFdi+Aeo9mZTWiUgKEPTJ1MKePKvJUdy6D5igy1adl9316ezqjzGVVvpK0zOdSwsrqlVRqnlbM53cru1KJfTp9V2r/mrWiralGq5lZXKY5ShLS87Zb1S7xuOjUUWbXWNspbFQC9FpgAqTEG0MHgQApYg+y2oMAotSWbWUyFRMtJ41f/7YMQUgFA1oSGtSFFp7rSkNZgJ9CpCO0dUwAF4nEC5WgGIhgO3FZXaqUSIbV1N1qMmu7JovNdJEtsdlTRKNKYxkKYZGNKxjFYkhTX3Kq3S3eva/76//e+andTqp7ao7gyU/vftJIHPXFSrg7GblFYgud/phoMCht0mCFmzIhH8wwRYRDnBNRQJzH3qXaQEgeiRSQmoWUFtlaw4a59lHQTTH4fiMNB+gMFF31Ju7ut2qWuVvVfWl7bVQxUsVfkOhmKQkzkVmSZ62JrnPI5PfsWult/7fLYr0dTyIxHNKFkqL/Q4bE7HMklE1U6KBBattI0yJAnBh6XIigkUYicJckWW6N1r3f/7YMQNgBBBox+tQE9qEbNj9biKXB0bLXqr6mAGg8ETNE0HDnGr9QdA8nVM4aQJqgm9M0FX1QRfRGedm35rNbRmWqXaQ6siIczK6srHq6Hdjus6ETXVZLIWp8q0rv+lHVi9T/0r/rg3O9iNIpASFhbe4opuZOvWVcxidzCSiQQR2eyNNAJEC4EoNH0/R0eLEIqkvN+2OT19WFj8h/WqERCNPU3rOLJfZJEAtkggZZwGoLjzy1B1BblvZwQ9Pf2WnrZL3S73JdVnI+tHlI7ooRkKEIl6upmkZDpn+9rMd5OrtZXqtNVfatPLK53uiR2c6i3HI0LLtNrrAe4H4Oom0kGKlwpFGv/7cMQCAA/A+yOsxHGiB7Rj9agJ7e29skJpBBzzQHJUvMAgA6C5BfNc7cK1YsCXI7TY7rCIS0XUqkQ/ZW6kwGySZ0p3MQsbGy9VQpyvqLe7pKRWtful6ukzX0vvVdlktKHNjEGD8XzUIoV2GBYsCKwkJS7gbPz4LqU3cBjYIN9+m5AsxhkyIg6W/5JQxhqNsgqEEcnsjTJxi7nJ4ujDxekxqcfCkwtkaf0FWU+1PO1S2pqAdjyVkXWkL3qdQCQqIFxczC6I9qreH5CqUttR/JJ/T2su6W7K22VLkVEcrzmVJmUiNUmiqch3RUd2RrHo9HbvZfr6e3/erIdVss5jM5jroGEuP9Q7/VKbMgNeqiqnFY8JRRNLrI2wA2JIAZZfRuHFYh+hBVmUHIPLomRwfD5DaFMA4R7KiaD/+2DEFAAQXecfrUhNoeygJDWoifTngb0erMwSdNM3ZEpAgoiR3sXxiKtUDN2qfR6/ZTtSQ012pdTEujNQ6ot1KadauZjud1I7mU81iui56MqKrGRVa3/br/v97/ZkO1XdVbl5d6JZFVFX9bGHdiDNLRYKLZ9rW2SYKQCS6rc1yBciBLIc7LWLEQzcmsiY50CT96cAjjQvoJ3ELo+kFlhtIjlQHoPMfQUpYockfrJD81+t6F01WR7aGU85m/Lc9TbqySPpVSMMYNG0IUAhdwnGTWqpYuBX9KmKmNrhqyIcELsz7BQukoeCZkcPjojGE+21rbJAiixOQM9qEREgU5pcNYRfemb/+2DEDQAP2IEhrM0RIgq0pDWoiiwFRIEgeQSfV0ZJspIqsHGH12cxACOSzk1UWQQRIuhWgsStNVeQFV6rysUfSKEAQQGDJo2ITgQM51o1sRmgRDRkiDQBFAKBC4RAA2eK9XqE7O4hxoWcsMiRoCUt/sJPARozeGE3OdorFF238rbTTVAYOZE3EKigRYDmy6Y8tGH7ojAvLG9Y7rF4JEVT9TCPjRW8FSQqzGiXgEAYSNNSxQow0Fp1koX1bVlNGr8n2tfvOYqPdDMVEPKjZMhGYx8iKjs53ZbOhGYyZEXpTv9Uye/+nldLLkmVjkdEdnZBRREsqimP21h8iSJqcYrEFsusaSL/+3DEBAAQwaMdrcBPqgO6Y/Woie0QrFvVrrwgsRAgNjAUSFn1jqkf6VgwFYu4ErqWAbh4Jc8kyQgK9l1BaEaIGCpgDbw0HUcTUTAq0K1oOPbtqsl6N7atoyWvqzVQ9kysr6vorz0dUdLGY8G75wbGXRKdO1P9LK7fp6Oyu7z0daMsodn1IJuLndRrKBOtbgqK6pg2ioUXO6yNsgpfB6jTAImYAEY08NgAgmpWk5NTQoMgZ0amU6AtyfLhulYMhWbWIQ5uioxCGk700hIB6bqBivzLbpRKb7b0TdmaSDVGV2sY7bsQRHUEWgOjIiLM/uTmRTF3q5Z/t5GM3/5WrzkZzHPczPogJQvmbzIuaU75R6Fai1NOCEQXPbSJMkTtqzYNxIUAmFniWlZ0lZ9QWEfmORfDe6AgFVjF//tgxBKAD9WhH600UWIVs6P1po41KkfCJLrtaHR5q6J8FQJE9XUEEYbZ0gKs7sdaq/v0VGIl70I1Vsy3Z0/tRNSorSMd5na1OZ3dXIaWqULL5Nk3RQS/u/tR/YG5C0REV0nMO1d9JB7lreRBjFhikFYglt2sbaAy5kCTDotELA8g9rBpoNcb+KTJKPlMBVcvqlq5CbNsJokvrBJzzJNOAYRot2eIMNlFmWobb9kK9tPQe9UvKHpPhZf1IHtVbbS4ZY5Gqk2x8PRPEV+ezEXqdl6Z5cm7r/+d8rDOaFCT46nakKEsCBBfSjvdP+MAPyyQc/Ltm46IyxddrI2wOgwuDVC/6uAS//tgxAiAD3jtH600T2HHjqP1rKg8BMNFEtaAxhiCN2bSECjMZy5TAgJHLD7OkMOyt1hfDeYpKRAlZBeuoviQfuCXX/+rURkX0opTqfnz5Ds+EZC0bHDgAC4mB40DQHCIfKPOCoCk22bEFTH9aiel5AguaOtaumwcRYEB6y4BNkLWIBA7bbG0wdwUIASBJ24dU2Mqgf6TwdBsM3QDpkYtZZ/UCoE4e2o0TdYKjKWhSjqvMgyNdHoOvrVdS8IFX6YiQWKE1BmC0ofDz0zxYBjxACkii0u9zAI20BRtjur1HpZgqHCSWHQwnUTE8OBdZxwokDpSiUUWzayJMDQxhbDbywYyUEXQ//tgxAmADpnlH61ET2njjiP1rCjlIFN1kZfFod1BO1GBpDanQnzE4ipCfUy+VW9QhM6usU1NTdRXR6P2t/s86utSN3I6NR8zsRLHqi2vZkuudrNZFyr1lVUkf1p+7NXf6f0S0qEU7sVtdlKvvderVab3Syo8d2I6NBBbdtI2ycoWYUi/r2LvChYwN4OmGcKEsvI4UrER3nnbd7lYupIhZObJd1xbc86kMaeFCFvohWiWjP+3tRzFy4xiGdNDp8zy+hM2Q94uX91SkVOJ93dKJPp7r/q/25Hf377e//7382XKqgdd/58tvm3944N+s0LdKgiDFkusiSIZcVWlE60JJkHIykyN//tgxAqAD3GjHa0oUWnysyP1pYokA2BoEJJNCAQ31J3/4i1BwpLIapMuywvDLOqASNvQVA3auo5u+239Ge7VSZwchCLIpLWIes57OxCOs7q5iFOrs9im7Mt6ORV7J7f/1J+v3qctt7lEpICZEKrD+dkiq5J/a5eVaC64mShwQXXayNsnYFmKDsmjK7goTBOUOcu9VQnRCwgmcyNzmf1y5s+aPi4IWv+QktEVtAbLbZzAUF3beY3Wv3+v5SMZbSynvuOU52Q7jslKM7yqxjuQLo5nYoIqITyGRzyZnRepPNVyr9+m15V61tdmu4kBCFkrtdnwkBxERXSqjotEEuvkjbJtD4XC//tgxAYAD22LH61ATanqMuQ1mIotMmpU5BCRCm0IPoBGUFq4TSjomKmSbLOBKSXXYnvdYYBPpp1JieSuq9QihEKCSqf16KtLbLWtmojuvLUtWe0lXSx72KMr1whTlXu1WYuz2RtKrzMv7d72tazavszT3jYXHhME5v9f7dY0+59+nsE48lEhgu+3tbZJ1gUM5T9RQODMQ8jjTUawQivr1S1q8sz1+Kc86bMq5AbaJgBHFRSFlBehLbJolnX5JqWnupSL//PtZL3IqkmKHMSjvurZeljMhZT2Wyq1qrunabXvdrVfrsqf9a/zsYjFLV0GYeoEw//v7Q1SGbc+VCm7dYsFE+2s//twxAMAED2bH61Ia+HiM+Q1qAm0jbJ6QZZQt2yKIpzGAlCVpOGIDANu5SCbHB/OLuIaS552sJuRVsWQTs3myNhDhsUNY6x5XZTOKv3zL/LKb87PvJplmty4xhStrZ29S6szrqiGdtWrGfJ30pEfbc/+f98jLM//L7p9PNlfsLJgWzWFBiApjVz7mmBTEw8BXiYbCG7W2xuEoZVGtytIURHiHAwBKtp6FjHttPfInmzgWJFRNrONVa9E4AZGzI1HQ0U3Q8a5rT6t+vR+X6dXSqd289FYzmWZbTbtZiOyOY870bM5kWkhmO5ylOpLK+6/pJ/eVulaHZK3sqrlBGCey8TNRDBkWQxJ0ioTDEQT3/2tsiV1NWlSD4EGMHAbQByambdJqujrT1N6nQydFXYTwuyrBfc8opKmQP/7YMQXgA8o0SGsxE+h46Lj9ZUPFBkGkj0RESTQr1Eiz3SZX6q2ra2YnVqK2TIzOwzicUBYAOeAbA4BBhIiguKiUrvehSE5Yn6pKomeGBsXJrYTAI3Ac89riFpxQo9zxIIzTdtpI2wVqyaqwVnSAUx5x+1Wt40O0QyQwc6GbWPKxdSencvy6yvn7/eYQjB92b1nSFwnM7xMQIdMbPRv/7d6vy1K+al7y8yJ1aUlNTtqySLqWY6d+pLFxh5NizjAMyt644qDn/l2DJUWWVI7qi0VHKIlicqQCNVuiUQXV+yNsovDoV3I+pgOExXaXRbFFEfnksJpSAvM9hJi0fZ8TokvmACYVP/7YMQWAA7M6R+tRE2p2bOkNamKJEEKliJo6VIZwVJ71IP+3/fqlPpXIpb76OqS0U9FHvB7XkKwgVhuf473Xrd/8938NoN+/b//hG4iP4jb4QHv/5k7LO11s9EH8iAE5lFgov32tbZBSR93KzjwVDgiOJN0AC7Ej39xWDnbd7v7WjbQTZUVba1GYNJmaZbQl4LFBMj3imFZduautG30TmNqkznnNuljoRKa1dL2QqqdH5rpSjaHJ0ad1VH3SvKn/0//s/MtDruynRTugI2GPhQUwgSMMn1uCJQSx/SJsnmCsbduhdxj4QMKOSZjgKJx3NCS554+04G4SWri4XR1nAHRtNdQhP/7YMQXgA9pmx+tQE2qBruj9akJtUabTANYRBbNQLb0V/rulnmb7Kypc5raK1i6sReisZzSIUu6IRw1DnMWVVU6b06T673rp9N5bUclshWc8qpdgDSv/yZ/t3fGn1zclTcMgkEN2usjbAdpVxZYk3UVCAy4HMmu0yVMN1lULSDaIYDKpsyVEP2Z6TmIHajyoyZRiBUSI2UjGeG891VT+utEtlpo7utUUEqnQ6nc7KeU857qsrLMcptimcTs7ERU3c11Y5Lyl15E+iUX/Sn3ntfsqDGYjutX/6M2iEa7nosIg4c2bgtTUtusibItcwjDkLvIAgXxBhhAOxNAI63smfLPD7he0v/7YMQRAI+RpR+tRG/p0zIj9ZgJtV2etIUL83BUkmsz0xAEe23WTYxE6Xb7K77erenl0sptXWpT4X9zX/zz1x3V4tlhxaaO4OpnM25lrMmhF/zIvl//+fzIu1F5TO0lZ3VSo3eV38kd4Xwb0q+YHncYpEE8aZIByqBJXkzXoY5xHQHDrnZ5NbYzicTaoP2QTapYXoQVpmAAMThgXHnAaxhbWKePKvRvp++ujXZr901kmq1iocz0VpjIyrIPsj3JQ1CTpR3b3dLOzs1fbb1/zN+57ZHXYJDDkNbXPG/dF6jv9liaWiqOBpMPXaiNMDowwARmkIhpDEAxRaa30yvqUYupB7dYf//7YMQQAA6xJR+tSE2iAbRj9akKJdFXSELnl6jMCHl9ZXZSIWfGzRViVrQSeilfp//9qyKpkJctoI50gq1rdLLeVNnRu3dKn0yDGJmlsy9ocFQI7RqidKQWsLAIoaCZMg7Y8AkFIAxx0IGXWJDFdbdI00MkGGo+OS8RKBHM6t7AIcZvCbDPtV9b3WQkTxqkzsJ8PtzgFOSmrsmGXSTvpjVJdnda3FvrRVXb/RUuubRtrqibUICUqSqc7GPNzUZbd82Qrs2qPtU3U/TmTUnmld+U9ToZzkmc48QpxySCwTdh/Ow+j2nzvb1FFgV2CuVzW2yNsoul/kVWztcQzMLMXbDAFhEy4v/7YMQNAA+lnx+swFEp0wyj9ZU9TDOMTbNTf3uCEUIdqonJF+YgC5VUXmnAyRLozUhdmUr/p69WeT7Z1dnypPPcrpEqqFZEZXddCWMhwXMoelnu5ENlOSmtv0fW5F1971tltZHYrIdCohXHUn83fV3Nbh/zlUqR67dERiut9saYVI8MXnl+lkjEkH3lwQAtmbcMVVvlAqx6b97D073v02BQW7y4+jLWb/ecGAaxaKuWl8AMQoHC0MPUbCDHioBlwWDJs3FzAIum1szJ0KPU9pRJG8hbvaxn9xMqgIkigidMvdFSiTa3KUHzpQk8Nk4JJBNbrI2yqSbalF3BIQgxiQHPjL2Cy//7YMQMAA6pER+tNHHh4DijtaaJteeg588cufphGS+wSZXdAAGxQUYPTCam7VYqEtrZ56uvT9SvV6TuztvZK6+91sN3j5vV49W37XefAxrwW8+FVEWgUck56Uz2jcoqJlPCwMIB4NCFwzoy5CNDYEDQqmOiFtOuaxpIEqMijLrn2MgQUYGwHSEU2HtIpr7CLStRiAVyi7biqytSYGSmmnWoPiXsKhpbofu+bsRKla13J9dlXl53vdMzFc6WxkKyps9TnoyFdnZnZjMpmWlr7+qdG+/u/R+r6L4yGMhD6GZt3WiFwc8sthheySpKCiRzW3SNsIxKAWsYWtwHFlMqEbA3wuXWlP/7YMQNAA4o/x+sxHGh7zmj9aiJtflX5v80aZOz7CbLVTgQxU8njjNeuUi19j+3dqq/9fpvMs1p9sXXXaqRcM6+RKVRRLKYurWTqCAPiYUNh5ZQirufXp9gvGuQsVCTgwbism1Zyg6SveGhOmOB1NTa7SNsiTIFEHWpWdEAMK0xJLD2KAp2MW52Vc4F8jROtTi50dBjEBflVI2XcZV21rL5LJanBk9XWn/qyu1m9G7Ofy1RjzrYzCHKVlRUKYzke7nVjFLV/q3v1R9KHsnTb+hd1KiWdXOV17EOUgRt9DdWJulA9e/Q+uRuC1xXXbSNsGNCxHB+WxDIULVw4mkI1xCW7t5pMP/7YMQOgA+RkR+tNE2p/rtjtZaNvXqqUdAVaKlqWwtH1XAvD6zFSzgMDPUgiRSxSqsZuiNOWv/Q2jOjIti7rZ2uxSszCjqR8qODIRyHdUYsOar2XPuz6Jf1ayUoRLk///7uXscbwmgaZh+fTqlfsB+u5se+SOCQQyzWyNMmbAAAmgW5xSZkHkeaFDgEI704N0yOpaQKwfRephMkEqLoBTIKKkFMCdlnXIve6l/2/pUte/5kbzOw/iJkm8Rpsc0Ch4DI75/CMpXq6uG/ymxtytkedt875+6st/+ZF8zMtPzRHbhXpl0RD5e90IGZ7fShEXRBdPXVtoibd229jbRR8EEkQrPnBP/7YMQIAA79nSGstE1h3jwjtaaNrbzAzAayb2ONxr6a9CEt2BzFj02ieqVumBMU0zumFpKdkwb2tYeQh0tfRprTJXk09qJQxNHdiKVTWOlSHdmR1qqIWQt2Qp3fUyFrVWzX9v//zFf7UKS4WazqdAzEWNcya2EibFF2qJgg4xYAXZLZEkTTj2BqleKA0PB3UpgnO67JIGzYXv1g6TdBewsrVLUG0q2oMCC9PQf+9n/cy5Py/pkW1n8yyrU/WykhWU6pxIjddfhv3K5+1PtvND8szK8LP8ssv///Pv5H9P5S24w84qgkbyl2trdVpyfFeVAVIUGKigsdItu0jTJ2sBC7mTUPo//7YMQIAA513R+stE1pzyJj9ZaNvMAGobML1srGAICtsVbOaraoMCXuP6KVdMPqKnXYL2WbYLk2GXlpTt3Xp/mnd5dUbSczsVEnlCtMVjaWp5tqpa91VESiG/yt0um3f2Wpm7olCIDKs6o5WO+zomulqXZW7kcEFZyQMiOW7WRtkrJBRL1PZIlMTBfH0WzyVsVTSnWD3ogXZRfy4tlKZQhHorpgZJDUv23dav////KVIv9b+R6Xu0I+Goy/KOpIRoyKedpUzIxCKCSRPEibNCGMbmF+5w5IgK6ShIEhoLCWGkmVHbDDiZ9YxQjEVY4JC5ZddY2yAnqK3bDYCAKM10NXonGXRf/7YMQMAA6l2x+tNE1pr4xjtaGphCy48HJtuBEkNve/WJ+18yALheW9lVn9her+9Pqu+/u26IhaoZdmRiqXRUbMzo52cGyXOrELIh3mZX5OYnm225Go3d29L6GLZlPI6MKKaR1P6ItWO021tFkOVRux0bcFYhltsjSRNMEicFTqxEEYEmhz8uwsInvEdqo2wjlQAcYfvVHu0ChNZbAmKH1NKqGy3qmYsgl0NElFkmBS4VaViU6wAnHvFxUEJus2QWZWT//jFtW4mEyYmCo4SCAKbFDUEyJcIqPFACfDimmKxDZZLI2wAwTEG5NzrnA4QpWSAawn/BOTWJFj36xCrrS1ddYjf//7UMQTgA21GR+stG/hvTPjtaaJ5Vh1T+t/rb/q9er8v8/qte6Qo5/AitCkhceYM84Ie7IYJmBs7h4VZDQeFZPcZCbyP9jXAdDQqblA8MIJeGWFgKhEzE4oKoEJcEYil1sjSRGkr6MdpXjFQAUrBypybS5YbrLBTlfW6gmh/ve1eDs0dQOgpLndSD39v/X6XY2/df2qdL6ldaq0lkKY4R7ZlIi2kq1UKYtaMpdk6f+1/pXpTMxZEymzzsORI7Jy7v31EzX5iJDcRMQ0bokNktv/+2DEAoBOkaEfrShRIc60I/WWjjVsjbJiATFYZ9d4oKEMwSGMPd9YSHrqW8hpsf/FX86/r2eETMmgCw0poLjvo9f/9byq7uzMxEW9O3KalmGPBspzC2yspWKZSVZzMqGmUiMVPRujE/WlVU/bX/eZ7ves6kCujNDPtNCjTLZRAfohAaEI4KVJLtZBEaCAmo2HXVwYIhGYhW1tsFyujy597v6zUFtt3ML2dYJy51OozAsmvqJzfv//rq6+ucPz/J51WnEL4eZrCfvO9DZHL3tqK/HNaRwyK0s/v9tO/P/b/Pnx11+xKb7MxKaDjwt/Nvf/qI+3iCCSzNWOiQN27bSNMo+AwGH/+2DEBgAPWaEfrLStabmy4/Wmia2bLKgsGCdRrFtptLaMaUUtI9QSZBlUFF+qp1ASo0QNNw5hHarIJBj66M22j/3SlmI9lVGOZGopplUxT9DK+pleVLM27n3Vk6NYzzMUhM2vVfZEKhSe9U1+7NNqdzsdD8SEj3//+QVbESeOK21BUBmsIzELbbI2wYcIyed20YdIkE9h7SJZA9mw058i1nrEH/KCTPrBRrd2UgFuQfzjdNv+qyem9Nat6mdbFuZjutqKfaqHVXnZGRTSTkDSWcVsd2bZva+le3J/+v6Xsp1cyilNCmNfa3cbP/WaxHSWyipuiQSSS6xpIGaKpyzew2AsuYH/+2DECQAOPaEdrLRNqdO0Y7WWibVY2enQ4AyDDNVF+6l0gLg2r5S6lqB0JUdYg5rrqH89qvWnT9MlqkuZ/vtsbZS6KiV6KzbpdFpZ2UyPJMh7KZ0Sj7/+l7TL/+rrcz7M9VsqIRVBQXzQ7u5hYx8X7kWwTrDTEIslltkSYHrIFkem1cowIB9ZbkANhq5NpB5AN2UwP5593GFW+0J2eUctHifUpTSvq/prtbt6rnPNRjMr1SRDkiWzlnV+iKSjia7uVXK+ciqy0IRLdntT9iPbf/7euZzbo7qrHIVmFPv+pjFA/z4xtSJdy+qPCQS77+2NsgKBrTfxBVMqJDniuoNtvzL6y2r/+2DEDYAMZGUhrLRNYdK7o7WmiaXBmrghJu1aliBM9NbgmT6zt0BBvlCj939bULcxugcuWLPKAWeG0FgTg0JBIUWFRxwOrnBDF/0/V73tJrWBoABH7V6Rihe8wkfFBGJJbbY0kTaH2yRWikyIAJgCTBTd31oRLa54SbM0wAayD9Qs2UumoA2jyBEqBt2dB/y19fX29ptdOictCGshnQhpNXjSKd7VS9EPVSKqrLyLS1t//tX/VGscfndCLaa6EUiHYDUrLI6r5God87Ih5LBWlW5uCINiuXSNsE6qekkwh9lpdMriaHE2qUF1Q2fQWqsJmv1ieKfrDqm78vWgI1+YX+tW0Xn/+1DEGYAOMQcfrLRNIc6z4/WWjb3T5KHazEurnc62utN3c5hKjMaSqIHYjO7iw4aEzBdYamwuLq0hlepfV2XhwEHMFRQKBSSepDkQiNdNsCJkCOTgUDg0ukjbKnpBK5K4yyRD6LI02K5oppVSRIq1AnBt6Qc/atQOBVFW7/KkF/f///LScPs/MiInyIjPslLMlzkdF3k5DZaEhjOk82J+N8u9RCz8zvM/Mq3n//8/MyuUeNrEOGYsiMQl7/VpSjbSRD351cLq1WqNBLbZrI2w//tgxAQADf2fH6y0TSnPouQ1ho40MHpXYXXAFRxF+LDoSGuMPjODApAfZ02AniM+0bU/RAmZ6blf4Iay6t6//v6aNStXdtLKJoC30MVEmYyM5mmdyo87PsUx1RHfdlSm173Wu/P/2Veuy33UtyLdAbd/bPFK/x6Zx7jGSE8lFQtu22tcZEtopv7F5QsctiTvUsdhsd3ay7NrHPldATPtSsI0jeyQLhamY1yIgv0z3eo8r9qPbtrtTyT5qSZLylk56nYiP5X6oprLiVd0NfCShTIJNcI+6x7m/3HDCQTQGhALmQoAgUbr1EHjqT7SQJtNMS4JFWLrrI2yGrwmFz0Op7BSoeme//tgxAoATvmjH6y0b+npM6P1pom1WgWBkttIlqcgv8qBoV6Qkr6ToADSNEEOX29RWe+pff/VV+9DzpkS3tbh56mdKpJmCtEN3LdWN+9WeQT2HvlT/qGftPpf5c+f//LIRdLJ1d6T5wzKLTHIlqWa+4laKOkcHbyOrEokFYt21DJcjbrHm5koAhgNYfeNupR1k7Kx29EFPNfREMgrc6BkpzfjFN3rZMr/cd0tp7rNNZVb9e1md7JVxLNpM7nVA7mIQGrMzOxFUMVysyUYrnlq2Rdz/NTKqz/stdKFukrM5mK0gMjhSxyGeGhbnfj4o3GwsmsSLolDos2u1tIP+zd+MOWXAAsQ//tgxAkADORnHayuCgHbNGQ1pol114pe7YoI1qguHDdqKgRhC+4tbM2oVja6hnEkX6z/T918VWpKBEGbwMEB5B4lJoEhy8WDwaCyFDTtQofGrQHosn6P+/kWQGYrssHBp6kQ6YBE+FDqisdFgkv2utbaH9SAxp1JNMRCo0iStTkq2ogdBhTME9QHsWP1hPE2epECbnqXHkeUh0dl7E/PpXZ1t1Irqh9SpKeXoqJMhJFZ3RUXS05aQqMdS0q12beqbX7U91tp1kTXIWp7q685pCmHO5rDPt5t3S+xk2+tfoHKagkUdttsibJSdEJ7KCEOpD6rmSUTjUWSRDUjXnQNKaloqcb0//tgxBIADnGfH6y0TWnWHqP1lo39fUFwN1o6xYp9IJ7e2j9O3/pbpV7Fsr28zrbZD95lMQxAR6gwbUIyQwJmcm8l1VNvWr79V2t6anbWWhmmc6sQilQAQpv5u6KSiTiTjAyEeKjosEV920jbIjcQBSGcU0L7hasabU0chacRqKLTlPhuoJIkvuE5Pv4XI8yuMIfZfJzdv9lN9VtPtMkvSI1JyIjP3wZXTelFI80OGBQEsAEzfTmeXtVdb3f3/8mpv///7m62CWtlsDwFFYpt7O1Rp7736TSzA6WOCQRSzSxpMCXotDOX2KsmLeFITNH0QIx/FSuEy7+/iwe8+kCYx+oEurKg//tgxBWADnHlHayoUOHMtKQ1pookBxIf6N+6+i/2Tsa+yvSlCKr0JLnCWZGSDZSpIp5phSMrojs16m3MzszurEu+mvWn//V+tFLkRSpJQ5bKTRJdWu7SaFtITtKLSWiwWXbfWNtEbClcy9AKZQooQuf204NPmyGfvZ4czTBn26hBaHUHZ1teJujTqmZZfW9fk/Sr+rmpb29JnfRJaJTR0MyMZHFIjOZXdy2IjKx1RUnqju6s3vvae+vr+RXfdXRrUc4h0HxIbUxK0MBquBB4ZNVOiQQiy2yJIHWBO/JbTSRACEbwWCM7htlE9klpIjVLUEyQ9EQj/GO13x4n/k9trL/36Mis//tQxBoATbnhHa00TaGpNGO1o4odt7IvZVutXl2S5ypMW6oiOurohdkNIjnlXJIr6Zu1Nf/Tb//eu7psj1O63KcItK5KLKZ5s7JaupXDqTYcLMslsOMFZS0PGRuQWWJnDbxNJSJYJfOZf53u194uucAObvjR66BZPhX+uu37G/7NSj6nMRMq5Lm1KfaUimRGKxJVstUIzT0nmLk+hX37bP6f/e73ps17l0Sj6i9u0a1+CO4zToeAW7BSCUR3bW2xxEZNKxerDTPRCyPGyK6sFP/7YMQLgA4doyGsnHGhyjSkNaOONEMVt2e8/8liTzdgcOmhwuazWF5b5r/t/9KV3vbf4Zd2B2HDQ3M72SD5POgk9lOw0NiJvjmR9/+GZnNKxEff/l2L279uZExwzTQuQQoOom5dQLdZwCxi7HCAM2QSG2fX61uI5A5R1k8pqKNkit24YpIHovabB9Jn+uF6oOfngHMvcj+KVfxx2+zW6erNzHtpkdU7OuWmPaXT84XmcR8qaGWWYvqqyvXyOlCyWHx+6nO5Oc791/+Hrzuvl82RZ2IHcEmbAfVZDRwRpXnYwYqWmUV33fWttHK6eyXTFpUu8GXH3uJKFD4B0olq7zP7qettLf/7YMQRgA4dnyGsHHFhvTQj9YUKHUAFHk9+rKNC/eJv0e3//8u5JmnIT/0+3zPWz2+/Pi5988vYzMqpcq2mdKzkIuEX3XT79P/++flUztnOEhE7Ii00McH1v1XEyVIx4wgBFSQSiMa3WRNknSsd33KhDjBRhOJs00jrE/deDr/P3cQ8y+E6qLkH0GTegIb2vX+y7vZ69NfNdVZSpdFlNI27t3RTOtcGpypIYlqSGvZG96o3+/n9l09VsSrVdzo7KQ5UcwNeDu4zYFjDDdyKSolEklVuBwOS22yNMI2LYitp9VZiTpdU3bd2erpK09Tv6qlp4S/gTN+D9aPUDG7XGp1/p06dW//7UMQZAI2tnR2snFCppaWj9ZOOPGb6pbIexykYyaMwlXVSTqUpquypIpt1urrikes/mZ6/u+qSp//NXWpiIpkI4uQgzonldnv/eSinNsCidkDhkmjTIBvDomcQ1TrQELw8ZD9OzCmyWEe6l//zSRk7PwWL8MP8Kv8qb+3//fp7/rYyl2etrhVRNBbKaGWhkRNbZ05T6y/fzJ9Rsg+Cfiwd5TxoUIiRpMFwwbNC50ktiaC6IAi5oIigYY4GwlJLZIkwU3S9sRCQuKimUxeebU7/+2DECwANfaEdrDRN6ckhI/WlDjWuYJlTj9ADsaL1Tdvks1uOxL1lb39v/+7P1Rzn6XkM7mYLapldbtezNVUVUdSc7Fs9plhyImrrVqlVkUm66Jon+n3emlX2/MpBKvtjrL10Oec/lDn9K1wSGOXbaRtkPdKq1c5ctEZTo0yrF9pRimnCbWP/dQ54neNTvUB0+fwuiVaLKl/puZzdfXZqUQrtMlmWhHKXNcnpVHyYJxDXdP8mfEJAe0D/62CLDde932vJ/+d/4c63TwViH8hGhbtfev5uDzjJASwM7aqOB0WTbYSJsnuKFQaSMwAyMUnS7jFIw+d2yGRnnskALhCbrJK1loD/+1DEE4AODQ0frLRNYbYMpDWWqYx821iDstezDpsv//SrO1K9LXBIQ6IyOYl0omhNdXez5WcjspDuDca0H1PecfHGYrpTZpiqrSzmggNtNhYRBB0GCdpO5hQBsWbCEtVodu2+tbhMUZQBl0bkzTwECTltpKFU4B0vi02mwAhDY+0Z2ZsA8y9I1L9lEgvU7zp3ixoTBW9Isy2BmtQBC5MXigWJXAqqAjaxAagZBYQnHopA8LIb9pcatgSQIyJkFQuAhaxsRxdL2jYo2CeSiV1j//tgxAIADVBjIaw9RyHcvGO1lQ49bfWttBolgYbl0DrKFJEQlmxMWOgNorI9N+UP2P8efcEB0N0BElp8KzFfbq27ljDABBZ5ASUKRNAi8GQsJdzkOFyJ1yChG8L0o9iqVrcOUAxaVB8FQuJxglBYE7qRriQTPVNaJR7hYuBMSSW6xpMN3tQqWxlJwdwa5K7cUprqd9LlvmNYYKpl0k96WAiMpwbyU5rxGHE0W11/6fRr6drUc1jXbPjxSZTvLk8G+uqES6kRG+dtz5yHaq0yKkf03vnfy///+H+SPSy8ycyPcnIpdnOzStI/JIljHCJ6wqhSSYsMcttEiSAMAKKeZ+hAVYRc//tgxAkADUxlHafhRWHFu6P1hQodYO7ayJrNkr50ndaqpFzr+PUe9QBrz9wkk9+cWV/vp0w7WprBALvaBnC51x8XGtLhomPioGFAgkoeEy31zfJIe762Q8FZA0EwdEamh5GkoIUGRjCDBUuIA3JRYJLpaLG2QXNeshdV+liiFJNFs8laNU0olq7rv5o4yNrWFYwzoGTWscGBMu8GN//+jZ2u1L+XzlZpKNIjJxTuvo6mK5SupDbpcM6uV9N3VSshFolq97z/t211otjJBERr0cEZzjwhfv6V0rVkqpWGXo2GzHNbhImyLFl6pzKaeslld2gsT2GLbvlf/96S2sP4zXooD7X4//tQxBMADX2hH6yoUSnFPGP1lom12LdIltu3//75Ld2Kh0Rk39rp+k5yWveRlcx5nQQcUxFpO9HzHZ6unl1T6mb1/0ZkZvKdaoQowJSuN+7o21+NTpBvKH5UryQyBu3W6RtkLkBg0UiFZkYWjHl3UjDc7O1s21c6A10VdEw6qQXh1r3Fin8rdra/f0pSluZrv07XMDNMoQjIl5Rls5yEMqbqdULNYpV+iZKbSIrOklH9PT/6au1kWzzB3SdkOyC2f93RDOZf12YqSHBtVY2XBP/7YMQBgA3NnR2sNE1poZ1kNYaJtHLLbGkgeXkRJBBWMWLYFOoRSMZjuTWIUXUtwQgtbzdn8bmZWocBv8KP+Ttp2/ZZX3W9CM+juTrpcxnVCH2SqFUiZHu1aFKZcrZWWzd7rT+ro6/129p0WycxkRQTIC3fO8Dic0z/xLZoaU5klkDgdu++lbZA0wUe3Eoqz4cov6r8Zp9MysP0AB+ID9ZdS0sFpPrTrQHEaeowI/Xbp6//69Zze1q07oxDKtXepDAgqgsMG3gcYcWPFVxIQFemlcReW13sYtSRUFQ6K76Y0kLCZY5IP4u9TYkTlt+EjbLKqNs9JMwAM4Ug/9O+lNdRveV+Zv/7YMQOAA4ZCx+sQE2ps7QjtYUONQUTdt1lJBqnjPVs1EVlHXlA////7U6zddm7mmZGe87TmMgw52Iq1UjwVnIzqCFJ28JBB86gz2///7zK3/+Xug5bcLpqZJFnGjf7+mtIJgvxGb66zcmkGxDNZrGkiBAoYRvVHOK6KMQPTtgmM14yOx3X6Z5kb3D2vUM2fyR9qB5r7///20l/ZdC87CKLwprmWu3+pp6Fo8tJtPB5XVZmc+X7z/nzl//791y5X5CRHysrqREZCnJxf7/8Z9QCDMxq1ocicikEt12FjbKlrtwqluQCIaR5W1jAWGmYWm1GIBrIz+SH5IPR47m+CG///v7LU//7QMQXAQwg5SGstE1hnZrj6YOONH7ddFN2VpaHe7ozgmGYiHpXKJOuAYZGCAvTUM+tnxbytQdWTIgE/GjXutLnRxt6g0kqGLy5trGmWlNygevTN3INu/Uwl+ODWpBb5n+ZfGTtWcI9PJ6MsLtTuW37e//7LRGyf+3qurmzGzE6uHPnEBIaIA4I3jGKF33vFpZJp7N61mo39BI2YQEQRNOB46ZArlUhJcohgSIDabEVcYlDgs20//tgxAMADRGdH6w8RyG3NCP1h4jkjTLAWNSDdyVl9SY6EMAy3uRlxcf7kBRQPjG+J/EP8GN0S2v3b/vZeemUyZydUdSFZGeMZ3Kk5URWIqFkUiPut+6qmjnd92f1vZGevvfXb5nM+hUYuKUUoDXrpe57os4IteF02HHJbtdI2yjA/Le3bLtCIhMJxoZsOOEZIuJv+UFHFfqG6YE/SBNukG3/pen6+5Nsz/SrM73dXca7GdGlKoJzrOzuc6Tqxwxwz7O2jqrNc2ibGualCVFenr/6HsxjVKeUygnJGyMiU13D0pefBhVmBsvDTYWNsmADnawht0ixiJTed7Osi5W3r+ZA4EK+//tQxA+ADRj5H6wccamtNCP1lomtFXM838Uu78q/f///qf0znysdsksI7mS1i92mMe4M55icAFNMSzYBmCqM///S+6Pk/7b7r/5E9cz/mSPYJvMs61vI/vXvFEeV0lZKpHKNNdY2iZQL6vDYhbDAbEPQP3K3QtYqjU8bNoAIogfHxH7/SJD9X/3V/bq3ZDIla0ozUvuTaj9QhmI0FVTXBsR7s7I7F4lkKdrWrVf///vL+ryLMbmRpkOqIUgNSLvv/4XpYDxNzInrFW2JAiNbKP/7YMQDAAys4R2sKEzpprQkNYeU5WkwUsf9zbmFEj2UNg+naNJLqduadQMv8Ls1/Gtq47PvR//+n//9U0Im1iMhWQ8jGmOObsXkIGawW71HDx9Y8Zu9f9z//e2b///38tn/XbkmKIiVN/xQOBPnvM/DypjTEtEpkHd4tbZAgl3ttqJL5JXurCqnomCcJabf+BFI3wJRObJqEX3xJ/T//v0lREojOeiUP3IZ3tZHrVB0tpkjCqxju0s1G5lRHVn1RP+/6o6//ZHtS5mO9lMisSIRfd/4d/mzWNALz5aGpE2Iw4JtLI0woatZ79TUFjFVRv5LIbq4KLTmfP7ipfIfkk3wI60gIf/7UMQTgA291x2sHHGplrMkNRCLNf6f//bfr9zjPjT0+8M0v+cYgibECZOkF+005yW5lVyNkKm5LpSuyz6nzO8pf///8vJz7TUgRJ2rt2SmV800Rbfv5k4N+RQs1DKrbr8LG2RShDjdInR3CqBnIgYCsmaIXTHk+2mGKSu3cmXR8jFdaiDHn+v//z5lPWq3K3jQSlduKkYzWIQKSG5RRMJInUi0QT6J1//Ze3+hOrKliWe6AsRXX9t/Fbv+23hdXT5FTYcDg211jbLhRiCrlmb/+2DEBwANmaUfrChxoZ80Y7WGia2HGLOs5QDnmvGfwz/7iS2HmjL2UCdeigy/z/0f/Zf6T0r5/5Kk4ay/vU7XmTz9BXCpep5kRjw6S7a04+aoZdy+/86fC//yO2HM+e27Nk3DNTpnRBsPMIlKzmFzK3AGMjgTLg00saSIgeLCilWlZQO2aZT50nayDEWbmICbNfjvb48Ho6hhD/1/v/+n72eb1/q91Rmt0ukjOx0Z8ypBmQxbqJdaOl2nk7+/9aMju9vsjUm01XJLdXRGoGL7PkOJbRHGPgTwBWO1kptV12uArcInAQUI8fah0BjYKhBybFoLyAZeGwX0FrUGCCSbsXFd47j/+1DEFIAM1aEhqABaYbGz4/WFCh3za5NN+/3nNR62NahkL9NbHR5qXPJtRCHtroxWdiLSx+17L17ogL/7fozVZGUgIioSzDmX3I3LNSizZ0cshI02HJdoJG2StrP5fH78EiHJFW/nHrm1U7OW//Sw1h/Lt54A11PVFB80/0////ryrb0qt61qkyI7bvKliSDPIdllNEPZ0zshEdmS13OzJZG+qS6H/0zVpZ6rmbOYOiEA1L7dvv+ZJ3/rIlDMmE4UzKLdBI2yEfZfbsyp8STs//tgxAiADYGbH6wocanENGO1ho39Tw5b5tpr53u/q6QBz+PX7oBpLViYTfT//9v7rdd/Ms79b0pKRJDTl1aO9vPEE9h5ZxuERyRz6dr8Kdz+T8vL3+f5n685XRNlSzVgTYJK4n4K3MosL5zVLp8dwUoJBILbLG0iJmkVnKki4oFFuBKR06G4gVcq63UB0Nvk71rCvW7tQGMh9X//e+v32qn8LLS++ndKXH5WSULiCBFBRbnSc2rU+E5LPV4eflnl5ff//tytyI29odkH+wlrNSPC5kY23tFyBpzD/p2s2TQ9cSjMw210jbI1KAX+h7O+FjE2py5Hc+NPfK1zu7yXcm+MzbaA//tQxBIADbDdH6wocamGMmQ1EAtMBHmosKMt+2vb9V+m/TRbmS5WfqXFqsRi4dCpVIuQGp8P8M9cAl7zTfn1/bf/Z0D7///vfsQp0WOcsuQcETfymTB2t/vdw5awAPlokEw22ArbIe2M8HOH5AXwSxEjrl1JYf03Q6YW+lv5c6lrGGeq3J0/frb9er6uiI0lWdWIV2TsxJpHWzKtEVpydinSlblro2v+/f/1dNHrdWueRIS5wJO1FkWJWPZCryghshlNl381jbRfwslRyilggf/7YMQIAA25oyGsNE1ps7ljtYaKFZQqCX14A1kwyFHnaoKJS/N2a9MFdPrTViGb6//9rfRNr1+Su6lspd2OzqyVMqHIjvbiWdnLQ7nNfmU7Pbtr0v/v9pF2WlXYsG6sQrkIxkLEFwvyfQ6xOj13vJFA7WooXS6JZLI0gnAEMyytv6scojP12qXKiCKKZ4b7VQn0XzX6g2kPgbfX+//p07M1tFz2otkoqrK8ZXcjs7I4oQMU6qjmRiKdzqejurMzH5SJZm/+/r/TquhvLIW6PdXU2l+tMqKznZh18DlRUpSSigcNw1u0jbAPFTWx3KHZISW1y7TXMU95Da524Jgj/JL6w/78uv/7UMQSgAzNER+stG/ho7Jj9YaKHf0bP//6uv/pfkf/a5uhyRCleGhiyKtqts4/cPwdPXDk0B40YATQVLuu7Ws28nrVIk3AwOHSalRiFCBSQOYPnQkxzjDgeG1ocbZGqL+gWtOSscO39JhK7ObKZHhvX4InTnuRV+oIolR5E/R////t/RWdWkdrtdp2X6pU6lRGo7rY6KGPMcp0d10FnKrFfoR639/Nr/T6r3tKyu+OeGDtlP9638+2kvjb0g71am64w6LtBI2yoa+kosXnfQ3/+2DECAAM8ZkfrDRNYaC5pDUwiz1KXzlyP3dLItI7rBQo/MOuwXM9S5Jtbp////ptV/TffsQrUT3Z5T8yFUx2QrzVc8yWg3R0YokrMTbSuyNbWz9+tvdZ0M+6OznNKGBEQnKTCKIbSB7gOJKG6nXdtthK3CHYELl1MiIvgQQDQkUiGl9AMTCoG6C1qDoD/eX1X4yJvXy69fL///+X0YcJkM5yds0oJHtKNETMw0lnGIxMzhRorRNAOorx5GHy//ufxTOyPEBggAyMn9meUleDZmdvX0VqBIOi3bWNsl7Ien68reolNDmeeGrqs+KbMEZb5Id6ATZmgjfydOumv6WqVX901d3/+1DEGABNMaMfrChNaaOzo/WFCTXs6uYxLNRTrR02stC0cVQhS7rUkjsZFM2j7WovRFtpK/9E7faHS1iuodUZplKP83SiY7j9jegdjuQZGozKNbhQAOCnep56iQFE0JfXEhHA4HSV6KANJ/i03qBnfgbbat1f//7dUPRWcq9ZWp0zsy9kOopmMZFaV7MVZmRGSpFVmkMUhZER9P/WRE/frz37KtXMqnsUSAqlv7pLbXuTgI78IT+KUbUEg11FiTBaNCni2cQrkez3cFa0qlge//tQxAwAC9BVH6fhROGjNKP1g441i0B78VV9AmZq4qmtv/ekgVUiufeLjTq1OYkgDSkB5QsGTITsFHtjBrGsUhFTW7Ut/T1DRM4JJGBUUqSLKEbanBUoOEJhYbiglVw1wEjbJbZHrXYXAZUPdqat8xUDc21zuW2B2fYLX7AvZugGGf///r/+ZcyPyQi3pdmcpOsdok3OJpYCYlnEZOebEj2/RM/9z//Xv9/f/v+vnzpTpRGWZ31avAW42+DX+rVg7Qri6SpJFIKCOWxpIFo4Cv/7YMQFgA211RusHE0pl6Mj9YOOPZp6miYiSRHsYTfLqZM+2zgx/itPix68Db3vt/au6+q0fVScvX2feitI8GZQTGZlQHS5BamGKxQ5nPOVK1ValoTR/0drdLJ91sjc29OiGWpyxR3Ei0K+r3pObkI85qiQQqK8W244nhdcJG2ajgS2UbmgJIj1RYSW7WQmPdzv/xlWHxpatgDmpxFfrT3///p26d/21m9alD1OR1EQyvndSpxyKFNN1CpZHW/1lPf/92z/eP0I/+GQuS0e1WkFtK+7U/mBv7pxjuyfuk4ExKLdRY2yyiH4E1bgoqEl2+2c9NKnCdrqGP5P9RE6pQKh3en////7QMQTgEyRBx+sKG3hgTMj9POJveeTfUW2d7/5Pv++RdZXoM8mKkpjza7xd+ixzaipuFyw8+vNJfQ1T7vRSsTFTaw6bKHDaYaLaoskwAUCjTCG4HBMLaNAB+b5+QHF4C6KR/dghZHfFO6ACF/kfeFvybf/3/0/6WIl/K66PY60OTdinMysa5rWNRS1damchZys+j1s9S/f/urp7fdVtV1urWcNPlKEGa6Zf/pc05ku6TSKTasN//tgxAGADMmlH6iAWGF6GCQ0zByco2oFjbI5hMImqzQPnCtJM6PxxMUCPZom1ys3y83XJX8jV/2kyyfZXOrV12Kz5WMyuiUdGHEuQGcEjURVaRDMhWoRHQ7z97+z3X/1pXstaMitQsiuhzIygkHba2tgeWoggsmBm2nFMN8Na2yAgBL+4yQxZrrlNy4h0pl3hD+O32QIPxEO//X//pfT3SiG2NafUfF1pJk7xZpU6BA9LA49ZphcWveq8u9PYOuoflegySaoiAAKETW08xjFoQbEBoQsOD5OSxXDvYSNtJj3aOcnILEV40GaHE5oGhwfr4Il+wUnz/gYd9f///0//Tyq/ldr//tAxBcAC/WTIayspyGMtKP1lok9L3yW8yGWd0dXEkeOZ1oZTJRXRd2/+laf5LpX5LHMdjKaVhQFSYnHP6U3IDEYNLg6HEyKuBwW0axtkuEyJy7HOhBJG/YwGesMK1bU2+Z/lz6yL///y+i2/NaRae6KYmqmR3VCuYWqGKTM7MpDsoh0Z569MjWSkiK339mu6//21Z5ddt0nKLyocSvJmUZf9/7u9SswV2KTNx6i+8WyRKiisP3/+1DEBgAMKaUjrChH4Yyw4/WCib3fbkKQTiaQqcAIDYlfVfzPsJ7P5H5pPt///6f0obK91RXVHWdnZi4IqHLMyBmV1I61noyjiB9Fajz2sj5v6JRf/PbSc3aZi3UsxCkML+b3n2uE9D1jI4HBIJLhI2yXPLXUFWbrEoopXzpLemfWD9jfv3xX8JN3Q1dP//9utNLSJurHWu7FVCHG5JUewgG5ND2CtUQMtk67GkRW3lTTb1svT+iTEuRGjtnXWsxGWd/r+vFaxd/Ds5cENXK3//tgxAEAC+mRIakEWaGQu+O1gom9G6LaBa3AHwECIiobZBAsEDwN0yGGRiF0xsv6m+j+Xvzrf///p/WWekCpTANEYlkyOpBiYgoh6T42wsbmUggsmejKwma3mpciX/r/elK1YE4wOGrRiRFsmLipSKyb222w4JIBGkioKuyTU1zEL5Is39zVTbIZ8nif5uuEX+V/////7GT+rqyKmehFmodFI7pR2COrhFOpEumzPmK813XlrdEf//p/R9luyvIpVO6I4k7orKxxTo6r/Mi7drFLREEkr0pppRui6jSNsg2DRz0jdh/COyHoMfROAUAO5vNH+31D4Q+c//l3z/5z6IllHTEo//tAxBcAC3mbH6mEWaGGPOO0bBScHGZMkyMLjRWkW1kc89kFG1co4JE4pbf+wEu/6tayIad2Jglc7IEqNO7j/sXHoSaTLgktEaSA5ZNoJiBZEuxhN44MqkDk4eb6fgO1+cn1///+nZL722pfVt2Z7K5YqqvaYUrqcxkVf3Ix3Y5VRWpZa9v/1f3+mtd2e7IykH1V5xJSsyMxqyJpRN91GIupTDnqTccLotoEjTAUcOEpmp4vAEP/+1DECIALpeUfqYRZ4ZG0o/UADw2B8jyh8prD/mqusfL/X60ic19d3////nfJ78rOQXEmWmA82CIEQUknGyJmnlKXuCYYiJ7kRv//6/k68C/KmMQjv35jdL1Wj3Y7ItAixwRO4C0CxtkC2NUezhuUglE8dWjTEejFPPUoVxL/8iTfU//5fkUPNP+1H9Lkh6epqpHWdDY/I3MjkHQ0MuIq+co9f4UMvXt/L7n///G7Jv3nZTsKyf14xGCL/drdUrUv61uEcWqRxwTC60WNsI3J//tgxAUADEGbH6ycTemiumP1II7lXOX+MoCtQ0xbziHdNU0vYA8j830gNX6fp///3lMnZ2ZsvUz93ZrOktFYcztVZ1ItDKpmPcGca8pWSq52PTVf+9e3/psy1+hNnvEe8tgHeQyo41/zSIZRPW23HcLbRI2yDmHaWy+zBicK6bpkYcRE/jEPtpitT/1K9Q+tdr5f//qfPeUsalJFVm+3XI79cdPibpVJNYam3TfY6pUiwxXkPO8/8usfC/8ufxD/PhJyJTmW29RIWvfbLOHn/Vof1k9KrW2kg6HZQ40wG0C4h8EDkqCHYcalMkFihU1eKch9f1jr/X+pv////3Ipzm7kpuie//tAxBeADH2VHamMXqmCM+P09Qm9hFnahRSDJnfPRiOk/wQ7mxEr1Seoy0lq7NdfRG//9uWjo6bpI8Eg4ju5vf5X26vfqAzNh86aCidFlwkbRAcDHZIdJQOp50o/1Yti03UA9vmfio/2f6t////3o/z3fu2Yq0K5ix5SnZrshaqRUYhLpZKusIqnPr6dP/6J/u3RinSr2BoiIVKnQEYh79429zc9r09WB+KKrddMou1FjcACBc7/+1DEBYALdRMhrJxNIZy8o/WDjj2E9+2WtIx7GEF3dNysH+BQv9/w3pwX6////6aSepnddDHz0fkMlFaSrPsOjo5VkLdVdQ4u1QMBodOJGhNM7N/84mk28k9gD0PuvEs+oWWYvJJpKF4PWiRtkrJN2KbPQo5OLHUdz23Od7//gu6x9vwc/nt9f///prqi92qi2s1iGUpH3bN48C2PGVlRcnXORRWSse82Qz6lk7z/n9vv/+v5wvyrRsobQsLOZln/8tP9P9Z55V07CHKSbgbU//tgxAGADFz7H6gEeOGAnaQ1hQ38lm2FjbACoOMunjcagTicM3QdMRySbLqWL1erS+odTbZj+b///Xnqv1wybNqUK3RiU11J2euR2EPSRkLLAiwA05Eqni1daWWq/PRmfaKgyKizxcVmT5dDKB5NZkGQVFwrU64pRtqLY4QEFp93DOoAbD/KfOOa0vi1j36AGHfIX+Hv5B/f//+/SuZaMh6+XvTYyczUqsNoUpEeoki5ScpGA68ysPoveIWx8my3tqWIQOt68QDmgyXW7GlUGAESoyYHTZbTotlEiSI8EJR+3atAewnZ8t1KE6SjtwIy3yi/EA/3b6P//+/kv2ZUYpNUmSh1//tAxBgADFDvHaeoTSmms6O1g440su18xiJOTx6C8yqC+AmpfThHz2d1+v//2m///9yeU3E3wUdspSglPbzyHO/wu+pTeqpGoU2KLlBI0yhKaVIuySASxOU4cv4VSUNL//za5Z/4r64Tq3r+n///Z67U6c+HfZPM3JePf9nri9YXqzU0N9HK1lzTSsepk94R9fz/5n65f5c7ae5T4RLvmSu6JBRPfTYILBCYTCbhwJqJ1XGU22L/+2DEAgALvZUdrCxHKZIzo/WGiOXZBGkgDjvPB0Loo2MFTzOMK22EQ7V/AVR8J2xL/I/0////X2T2msXW0yHZ+TGazltVkVCsr7Pvturo7ps6PZ/73r//b+jdJLsqEBuagMnrTHN0cSO3YbMY6jkajZGFuokbZInJKUl/fQQQnseQK1qD8ruiBlmvxfyAXrDN+3//6dNP9rc21FO6OSrDrICUxGJ1uHvqrS3W1C3Vj1RXLaVvv71a1a97U2szqZnqp0d7ucEWP7z9ZPdVZJ0Q6u1LapKXLKNNhI2yCzUE9JZ1sBAp1kZddYF+KL9w4D/xL/C/h2+rf//6bdbeiVaaTbV7uar/+0DEGIBMfaMfrDRHIYo0o/WHiOXs7okhUKV2M5gjObeZzOhVdLzMQzZrL3+q73f6XVKz61SZHOzqm6nFnYTRe5QVab6yayykSZeGtgrM7Ee3dgAZkqC94FsmDfH+cBfOHwJfgvyv9f//70bf0e86s+jquj1dGKpmaSIbOczIRTytVUR3U7LQi33Uypq0jv9M+7/0pv36pW2DaYGl4ZtYZdc+383YfXo4axVQtVuCPQNpIhwJh//7YMQFgAyhlx2sCHHpizNj9TCK/Lf/FVxSi3m2S5krZCuf+rrGd/C/r2eC/X////+nr1q7PTCc2K+0RChvsmDprrEI/P9Qr/JF/hfll3594fn3mmRP8M7ZT4jMyJgyMckkF7p7VPt9xusa7xTUOmo03KPBhI20GWAxqiiYEyBH4KBeZMgIRFRetIP0NvYlEH9v/5v///r8n8jsydhc1TnMCYpnJyExlGLRWN4CQJGIRLCOk34f6y/0ta5WY5XeU4prBUMgsPptvWQYRpFXE2GEKXIFVMLZhI2wDoxd/7d+Vkg4vSV/1Bd1Tawc5Z8z47X0//tLj0tRcPHvHOAznjAuSawoF//7QMQZgAr8OR+sMaahnbQkNZEONEFFg8PQAkhcmA5rc1PtDDf9UfKB00LCgkFRYuk02BxYYqNhq5McrluGGAtjiBSDHqPtqnAB5GPYwj+O1MXv539bWFt/AP/5H/////b+RubZeZlM2Yje14cSZupD5aUOjlIUbNMNENFnpCNd3xN7vv5E0uR/n/n9n5VjfiI35Fj+ZACaHBjnDI9TBr0m1VIUyKLIBIkgNMYAgc4slAKQaUyi//tQxAoACzGLHagAWGmKNGP1AA7VidULxLzgbpD5v+/6vSn5Key31kZDyVS8iSF1WpiFWjox2csiT25VcuyO19dP9v/6v1v67INUzH4t1sWp5g/eS4oJQ37h2KBKyiQAWNsgVxDjZI6NYIxxbs7CchsP0Q/c1+j+2ff/sT7lnnbrL0oDsjNmsY+AzWjk2S5jy5ucJ60xtvhQzadc28/7//9/7l6EWcT8z1VmzTmYoqhDtfz/SyudpBEr8UwSTRcI4sgFjbQDcQ4vGVAG9g7Buv/7UMQJgAzVoR+oAFhpcbOkNZeI5GQwyWN1fWkFyCT+Zfv+v7MauyvR3rZnYykpdVMWRtXMa/FXM90vfax1YxjMyIDdlrOarHZXeX7f6Go/SQrvmOjo+d6CCGH02ya5Tj5PucUsvXE5PI3JbxpQLW2RMNYlJvllAWUIx8rqliwJum/8A2nD4X8v5P////99PV6o9Eer0LdWamjFchiUKtBzMzXVUcpTzK5KtVbP+/t/0b/rX/s0rKhr7iRSiL7ixlaY5aoXcgagwqgFjbIDWkT/+1DEBYBLKDkfp6YAYYqzY/UwCwxbaGQhyIpUqAakaesM5T+c7NX/6atl5V+IR40CREDQTLkwK5wIKcNLExMARQ6fGgkZOMa5qT3uIu07lxZSmsEqhwCEh2WRVNjVUnDhE6WSicsg1wEC0pIquXB1ggiG1miibZEQHHl+oUgl8z/M/zq/+VDfafPWtVKqXY5EFlZnQ6GGKiy31mU2dFLYiPPVdLlya91rlT/rpe5nVWRaZnZDMwQgoOgjTmULwTEJk8OPHiJppySi2AWNMgrx//tQxAUAC8WVH6iAWGmFMmP1MAsNcJostGwwAZTRRHrcQhK6HWLee+h+XP29KsTRtdH5WujKp5HkujIyOdqZTIZavWk3rS29FJZCKtn3/r3t/s1nbrXO6OZaAg4/D9m2eU/ZHiZ943PLNNtyYR8CxtkERBBUwTWTQFPBa0i5imkJsKy+sMilf7/v7IFi33r0Vz01eW9Kbeaa57M7qQqIqWdZquVp+YqIl0d8qp2v/pSy/69tnc63mVSOgiWAPFP9+u8+2YCWw02Uo1WVluiDav/7UMQCgAtQ/SGpgFhhjKVj9ZCOPAWtsgF4KxAi6mYBCYdiaaCohMSHqF9+j9zV/pt3W1Za1Z9dt3ahHZmuSikaVTWsdLp3FkCMkkNH3A8eV7E19+pu+OCkqWAwlPFxeswyw2Ug4UqJOKjY5W7KI6BY2yAyXlt0nZYYaA+pbzmNYqLzuv/9rTs/L8X4f////0UyJsrIj9HgwlDk/mPczpExRAdczI1juaVIZn75rfDuIb0tlkCnRMFXoGnwIDcJiwqRbTkGPQkUIGRhRRJaqir/+1DEAQALfO8hqgBYYWkyo7WIiK3touwFrbIFwIghQNi6CEGG8myzJSxwkmj40D/1/ln84/+rUT1s8qKamKUvOc1OSQ5rMgkGhVLw2sgw2CZNwsbACUNp3Ufi1ZUoLNakAkR8Qs2uWhR0m6MaVEsbEjFAkojSQD+N9S01NBoR5mYMfRQF0r0A+I0//Cfv+v///Le3dCbr7P+8vj388h7NZqsXVFVmVGrdHIyc1NNv7+rf7ejdU2M8iRKpMAC2clf7v+r54og2G0rVbjcggDwF//tQxAMBDJGlH6mAeGlkNuO00AsNjbIGIJcNFni+A6ILTNECPXJMtesXq//0/rO/59/k/+5FcjsyVjYzOcdJFKRzQtHWob5ltnY+bLSnC7/rP/P737SP/7/Pz7ktsUjjZXdncKYwb+me5AzWQIHKwHciXkSZMsAkSRDUXigZLLwI4AvMoaTqw6p+oLY//579D/9/ZNneZJmpZKejJNRnu5HkoVkPnabfRTU7t/7o3/JurZ7EZtz1TdkvIwZUO7sq23RBkue5zCFUP1lypY2U6P/7YMQBgQvJiR+sNEcpgjxj9TCLNcA6LY2yU/dOWzVi4SKfpdF3GEKXohZln/5vzf///r2+sv8uam0n1cpjleya6MVh1d3OsO0jVP25nZf2qtbq3czp3b+6qrI1EIHTRsmRRl3W9HE1T9mYOtTUvCnahUuAsaZAVWM2YIE6QwEyCSJpkwkoV409MPhN//zHtWd////+ssmGdFKWnidzTo2kJnRHNHMURhJHZFxnOySnDIB/p+Uh/vo3nt2RqNdDuziBlIj1vvVnbPrQzLdUawhRicdooFoEjbICtj7JugG1hWhumPxxYz5r6hQyv/qOP9D/7IntItydHdkd6KZzDAqkYqoyMf/7QMQaAAxZox+pgFhpbzPjtUALCeYrtEFU7lYwozaK9jOaZnK2aqp6/0/vf3nRszIy0qWQhhzD/m3ZzDrCreM8P46lFNOCiSgbW0goGJl1oFECKUFAqUyQkVN+pYm81+r9P9L/tzaL71yMxEVTLdFlS2jOx3VynRRKItVqVXbstc7o6o9PRLfehP/9/XsrW32C9ejs7fdo5oGUMjLWuSWOFqjC2AWtwg4ilklpFkIKO9BBOofn//tAxAsACzmhIaiAWGFvsiP1EAsN+NA2+v9v1/T0+i2NO72ajlNOxn2tmIisfyWPJVzJu6Kxk06Oy6ETQ1a++RP7+v0Rkq7knR1JDFBmGbVJLF2nVTJg6GWUm4KLaBI2yC8H1TSTDGoO5ogU1zZvjLN9v0v2//86o1jqqZW2rdnY5JlIRTI7rMRkQ6oe5FVkBqZlv0mpT0/sm70/tRGs7M2u7tIFsEADpltKfz+uMBXT9m5suon/+1DEAICLeeMdqQBYaWo0I/UgCwwm4KLIBImwCISWOuikBCgcx6UU5G/WKav7/o/q/fvrP/ZOzK6NXz0eh7FKVyT2lY6DugWgNWZ0WSpVXdPdNb391b/+vmejmVDOLqqGWXZa5tUn0fmcdCyA1gwNtmRiixtkWSM0TCBXIwI0WDNzzug/qGMf7fq/X//0P06VslLIspCoHSVQ5EIs8HOY9ij5SorqptiNQp15+7X/uv+t+t6l0NNzmlUxyqLBmPcHyCB+NPlxhIuGak3HGOKM//tQxAKAC0mhIamAWGFnMyO1MAsNBa3CJqbHkEzABegKUN0yglS/FvPfV/1dvt76plre61dSs7yqdESzVrWVXU80hxCknIuVmLZqtLRTWMaZ99Vd9P/+l0SmvOy7ouKQPoq6jgsehbYC5BNpuCCCgSJMAqMkSK2LoXTByT6ZSUx1vkBf6//6v/Js71rU3c7o1lvY97vNm2pViKxkDPre8yrRqOoNT1PZlW2+tNT//+abXkd3fDA+I/3EHMkJHxP1/qGMlYmkmKMIBG0iCLGKTf/7UMQGAAuY4R2qAFhpcLOkNSALDSUoog1MicVMkzIfULV+c//r9dPM83S11+6oZXZWchmUxw6lFCTK2lE6Z4HkQdxlCfZ//e/+7+393zf3WrGuA+hmOxYIb+9pPEbfsIgyV/CNYahcgoowFrcIDZGaUuE2FtRb0EDNGk3rIe31//2/nTT78kxZrq1SuuiGV1eimlW7ys07OtKGauV8sh1YpSs+uv2T009ul5nVCtpRTsxbghmDPf+6Mu/j5UnuTA4vbTboggoFjbAXHFKm7Mn/+0DEBwCLDVUfqQBYYVOxJDSclIWJKFXNECyuWfyo/2//q/3+6MvTQ+jKpNhRnRHPOzItp1klKk8YrMxXexGujn9l2/X+pwTfpTFiZpz2AANJLHxdzZ2I5o+SAYXIpSo44xha2yLIT6kVhSAeGaIrJ9ACb7//1/////3VsiLWiVZ6Mx3krJsrlsiqZV22QjKhXpQ1U+rnr126f+n/26JZ2KYhRDtCL0xU233+2/ZvRt5rtbYVTf/7YMQAgAuJpR+ogFaphDPkNSALDBSgotAEjbI1C8XjqJgEOIgm6Dyk3yN/R/f/VPyNq9LFaR0dDshQRaMPQllQp52KoMiSqadFUZ9TUPPd1f/727k69NEVmfJ5vUY57qYgMNr9f3LO6iBosbxKYsQaUkowloErjQsJDGW6AC5A+DdMoJLIe3qIY/1ft+r/X/5loZVrO4haoqs70nVbHczK4RkEuc4lHUKGQiKY7M7zOZJl6/rpq9V+m3K1yTDJu6M6MKZwiBlDdipsM3uIi8OmFSy4oIHKBIkgEUx8RtoXiRRHUMigI/xbfX835////7//pu7M7qrSku/d+lWT9CogSejI6v/7MMQZgAuZ3R2l4EQpVTRjtQAK1eVkVSu7dHdl6Nsj//K/7+1qyO1rVdGKq3aRdubRzq7urHciiWM6imYPkSYKogbAEaSA5BEioikSoRzFV2QF4/y6/1fr/7rJVOrVtZ026qdbzOanc7lnOqMndiGeZHJ1e6sV1Tb/7p//u9OfPLujNdkIgV/a36HjYkht327T0VtxtujC6gWRsv/7UMQEAAtNnSGpAFhhX6Tj9RAO1CdVF25mBSQu80QM1sWz3yl+n+Yfq/63o3rqhkelSPdQ85QVkY6u6KiyoxaymR9FrIZrIdDM15bV9nv06f9l9b9VvOyFVKAxw9lj7LCRqoKMKLGNRyUUWACxtgLtGZd3LwX8CuPKJVbi9T+U/2X9P58//fLj9/W1fXM9Oy5oex3zkMJQ3DBsxEmLN2l0+wgfG+xrN3+pTThYikqGg8WLqtw0eeFx4LkniQgEFYUWmGIwBGkgApgs9VZkEED/+0DECAAKIb8dqQBWqWox4/UgCwzJLdG5cP/b9/2/7Wvb+3uveQ72nKlpi1lK5K3YjKrK25D7+jkdD0t////19FZvefofRCA9GmkVJgSVDqUk+1cbDW2lKILKBY2yIAoG5gmcBOhGicwdQtRp9L9f6X6u2vprNoW/Z+d1ZVZjTGZp0CmZUSQiImiGPU82zIZEyWX/b/W5De/W+SjFQ75SpBlCTweckxwqwCiNcnCkJqVFp2hiMP/7UMQCgQs9GR2oAHahaDNjqQAO1QOJMBoBMUJoKWCobrH44iKTKv0f1fo////5+X5+vCJsrITHY59akUVj7Hf5mL0lPq13CFpRFzh4QPWqpf/ZrIEhcHQoBwmIVOeUjgEFlJaCQIMIECE7aAEiTIaoTSQSMQTxJXWZIIikSv9X6/1f88/+nMz+H1nUyRc+Jz4ed7CpsRl0/7n9X7S1yNbC6yv6bTPb/Ne//lzLzednXZ3Z3iITAjqPvtqr0xi2+LeK/VYppKACMASJIicTJ1r/+0DEBgAKmaUdqYC2qVMf4/UADtwEqEExxoMnULQbf/ofp//VmvT0bVEczo7NSlFaqESYjMZPov68rnLLuzV//77tt/VHWqsxyuc5Srn3OWwVV7l7iCv4b62N65ttpNygCwACNshoBNMtkwbog/NECmtAc4tf/v+h9/OumWWep7Ih0mvSOmjZnlQ6JBJoyLJDRAQxLveL07XEGe8XMmlIQKvEzSwBDtfO2EyAbCo4Tn0iekm1IP/7QMQBgUpw1R+ogFapPrIj6QALFQKwBI2yRhHoWLwEIDs0orWL9f/7fv+23Ru92+j9lnPYdFano+lgrsWxxbaYQi+gcNU45I+/qf+H3/+ffV+/CCqrjX+0jC/k8JsYj9n/7xXPLd+UADkk8gyzgRi8u1yQLf/6v0f1dddu1Lqm9lMd2QxzMtXaqllWrMdFlPMpnRb6IpXPa3evvyfun29UVSyzhTHBeBbf/fl6Pqb3R8BLVsRV//tQxAABC8T1HamAuGltNKP1IAsNKLTgglgEjTCRuYrdACMAWAmswSUKch9L9f5l+v/7FM7qj2sqnJYkuczrjzCVGUxJmcIrQR7jlTIw6CijOuNolv/nf6rPv//+3/z9Vu39omOnuIQXYwKaJKpb0rUEhjSkjwEjbIt5BXRSYMBhWT6ZYUiQMtfX//X+i//9yaUvulnQ+rmNuyNYO5JHW8h3od1lOqoZDpM7FpKj0Wje9L33//Vu53RWdWRKGYk0xyhn/7vTJPycg6ndCgMKSv/7UMQAgAqVCR+pgFhhdTRjtQAK1TagYEgFjbBdK59E2KIJzEaqpMsWk3+r/+r9X9rJyL1aV6lotksjy1TJu0pilDubMaYKRA5RxcTBtIoMcQ7Pi39Ws9iUABgmCD0eOiceASQ5wiGQ2UylBAIAJEkScQTSNjoNMaaDJrUMYVvp//0/p7SK1EXcrgjys1yOhlsQjUIR1Yi23qdyudWa7oqIZpzZqoTvpppbv2097Lep1e6I0OYHWLOZYfLe7bsIv458lDeqd0lo6IBKBY2yonL/+1DEBQALOeUfqgC4YVAFo/T2CNSVwCgIOnmiB1ahSRU+3/9v1/++tG099aTMVqIqPWt2JfO7RrO0qK7Mz2a9kVEaj9pdt0o7Hb/9Oc993cjP7EfqwKuyI52tox1VWZ7PaiIQXTScgotoFjbCljWx7AbCHdjO6D7vw3Xz2r//TXNE3xCKQMdMqGm2gmRAaRID96LAMDQPEBKSKg9LCrFItVYtD9P7jqw0ROiYyUCFEm1ZEmYc1qEYYUUkoKBKA4kiO4nkrGAQ4RRdrjmlv5n///tAxAuACyGlHakEd+lYtCPo0AsN/X+//////93LIaCaAiGZq8mimYhdUbEgnKVwCAKzIMnz5f/ylTtzi/O8WaebXQ4okoaliaYX8/U1zgd/aZdfyNiM6/zCUCRNkCLMjSyACaAUE0zCoXFfQ//q/X/29r9XPetiOR7rzaLlYtXpRGposGzVdFVUSlVy1oq16/Tn9+32Ldd2KqGdWRhzmFFN/uryTmvZoZ4wc+EqaVjgYEoEiSD/+1DEBACKuB8dpuEkIVM747Uwiz0CTE/bRBsyNr7SqI+e0/r7P/7MMvFRkE2jjJMq+dPGRjQeSHSQaAZ9xhYEUMGF5dgud6Gf7Ua0Gg6QbC5MADhxAtSKS0SB8YOC5cYBiDGm2mIBEmAueIVa0DEJ3GZVesXqfzH/+r//////9j/bNk0ectZkC2rUqAxMDC85hs1A/ecjNMIBnWp2VQH/PznRttzlwogACYTtd7Kb/Z2eeZiwyi66bScowAoFjbIvDhN0WTAMoe0EDNFQjBC9//tAxAwAS/2hH6aAWGliMSP1EArUQ+f//6/7/W5bd2raRWMt1RVrHIQxKlDERnR2K9jKRmdiVGJSzoagOrNNt/1Sta6Vrd0e72eRy6KirYNP7/1/kj+lJ1saYl4xIonBgKAIC9JAn2uIIBXNOrULUafL//9v/1ZVZr6z8huQxGKtUVVojJOq7oRiFBzCmcQ5mdHY51dbtabWt2+2vuvZFRDtel2MLtPOAJkGxX4EmAoxbRc+spX/+1DEAAAK+aUfqgBYqUIfI/UgCtSF1qCgCgCNshaYQZ6zIECQLWl0axjzX5q///9XdO2R92e0myOs7XkNRzSqdWx3ZVqw1gWlaL0It29lXda2/6lZ0tSp7IW9WK9nVyA69u3qWn+jSlfYU5gtxtuiAUAWNsDGlwn1JnAa0MgnQpikSv8y//o6f20NSrZ1pNPRdZGZ3ZnmuRRjoUjBTEINSgnIpERVLIQ29Vf9K01SqwCJym5wd6Lh5BZkw8VVaVTgoEAFjbA4zBSNgt+B+POV//tAxAkBCpXdH6kAVqlUNGO1MArVC0G3yn//V+1LLl03zPXWhWRB0fHV9kKc7mmSdVRq0REbRpd03nN1n9PfdP/VezmRvZDPR+CkKfR6u7fbkZTUOYFW4yqpABG0gBZxs1SIC/QUq8yUw5xa+XH//X+lq6PTzpdJTabNoRDuxyys5mYhkW1WUjoVirPSlJq77v6/Vtr/+/91s5ckspklUor7uxduIfzn+0htgCptNqCAQCxpMAj/+1DEBICLSd8dqYR56VCy47TQCtWuiaVJhKJNqvWKej82//q/////rIuWU1yyDl2/Mx5NUbRujcyUAwCmMaLAGc9xjEXbJ9FUpEXlPz/3JJiIYhmEjR0nZGp7wrIZIfLKRGOZEIUaTTwoESQATxRWgyYBSgc2QM1uJAdfk3/+/+XdEvLn6tuiutC6PmbeVrlVcszgDkaZ0vSqFU67O//en7f/+VrdiSnQoiMhTMR/tKajEMvpFuU8cUS1adcowFAFrbItTKKiBvID006tQpyH//tAxAqACiwrIaeGIGFQNKP1MArUqKH6P//2cXcsWEU0tiBjBizDj5I4fKoFBCwKB44qHAyTOnnjP6gz/FSNwYEdaAcCwWilaFKVuY5ZgTiN6SgcFAgAsbZE5nXsoIJDJaLyLlr5fb/9W33VZrn9as7OjVqiI3Bm1VGyOQpJsqEZCZHdVR+Td71pp9m3bk/t6Uc6O2l1EM9K5VFsRVxGSH1l1KNy6lH26MBQAK20O5Ax0AF1wIj/+0DECAAK5ZkhqgBW6WE74/UwCtWidVYtJv8uv/+vdlLTbQh5uz9kQyGVDqhp1aadjOrmUzuY026ko1la778zNaejvTb6fdysV5Ls6R3DF833toX7/Rn/zhFYzrSylEAgAkbZE5HXXYOPBknnKhjCt8y//q//0Ocipk33kO5DI/Ps1CnZSpVjPRTodEPsiMZX9rzs/0t+m5vZPRp50Z7zKWyAnO7sCMjKlunQ8+VXTVMoxV+Vhf/7UMQAgAs14x+pAHahZTgjtRAK1UCowFAEjbQ+76wTsRrqoDHFT5Ht/+n////9/z/2h+39nUnubyTaHUKr8JIa6w6RkbU0WOXV4SkXl//+Z/8nyH7lmsWWnZUMcOlRtkBH8+5H5U4+r2PfIvoyTbdDAgAkSZEaHFJudCDjvQp0RPZV+h//b/rprTUxKstvRbM+yaEzquk7SEVTJzI6WNc880rNT6KkqaqrP/dPYlSHMzwzHV2MpGK4RCVvvOlZgtjj6zTTLhRIVyigAAWNsB3/+0DEBIAKCVcfqIBRYUQz4/UQCiyCq3C6IPbKO45pb+Xm/9UpQ6K52dMzTvJR2uurOz6uioru0s9EQ90ZjGczs7Jb/6po94/0a5V6iAoHQ6SXwtJqCx+EUpSg8lNVqDAAASNsgtUlNSApgcmrqGol8jb/011lWfWjaozfy3VE+xNnR0axZlU/nVSlSqIm6L11XqqW6J2vbtWsllQhnPMZgYc1oouSHUkhOLhJZqpJQJhgUAa20v/7UMQEAAtx5xupgFaBWbLj9NAK1QxButJNQTsUtsrHvmH/9XqlOrN3SaqotqolyFqjC1s7zKWQhTOwYgytIrC7vvuZkGOUzPX/bc1u///6r3V5Vock1QhD3X2nUqGSzGO5EOzMx1DKhpRqCAUAWNsgJ0laqADGB8eqsXV/T//r69rJzoid9qLqYlJSEVHc5FszszLedTlLShDlKxvejmRUespE////VbIy3tIroqtYSt5We8fX7uQVslJHJcf3SFcYYAAEiSAhpfdWF0wqXnH/+zDECICJveUdqIBRYSg0JDUwCjVTQ/9H+mqre9d1ZmZdEXN1T8hs27oWiuyTXVkQnqz7f+//f/f9NFVMrKrGZDMdqv0ulWvRZ3VrldkVVSDIhMBRgK20XF86DW4n31DPIfKTP7veS1r0dOiGk3LV2diszIjStND6lshwSOq/r+n+/6++R7I7i7EKrIi0NqMd/v23kZM0T/sHLsj/+1DEAACKgZ8hqIBRYUy84/TQCixt2SigAAWtwjTQTXWCVE/oU8i575n6LS/WtpaMxLoiXaZqalnZypy3qRmO1nKqs0zvcpJi3Z1dnq3ZH/T//rXZZWI5YWyoUGYLlq8DsKSjQ/cHXBxh1qBgRtkONezicgL7V47X+390syIr79KKiMczymUrUOONrRldyzOqERTFKyRqlEqSU56Mfq21P+kuj//PJOwtpmVFVHzsi/kfo6SuSj096WOFZNVBUOBgAASJMiTE11AlQc7XUQw///tAxAmAi1nhHakAcWk4M+P1IAo09L/5edPKn9zrXZsxMJ+Z1CllYsyyM0Msq9GRLlnLf3Lpd6pF/c/J7lD+ff/i95FadJSVHOA0M4wzFNr/5mSKczz1fJOgoLhJqUCDARtkM2YNmAQ0QT5NHvlHW763RNClfMj3RiuSxVQ6mMxqUd0kJQxXTQjud2RqWqz6/3Ijf/lkdq9F5TMiqJMLTu2JCoPNeaGBURCdJEaggAAEjaApnm7/+0DEBYCKraMdpoBRaTOD47TwCMQTYIR6qxrb5h00vtM59tass4p3U5mIk7ljOFQ57LMxQbZHVh3MdTgjJla9SLojZE/+v//rfqWxCurId2dYlP4j/WR7L3jUGJqcnk0mHAwIkgC+xT7yTM1UwEfT///+lSxV8Jtn5QmVgZRaCUWF0gEGVgEwaaqcTSsoLpl19NHRqge8FwuhohCJUkOF2uMmBcyQtNjyQHHD1W3AKIAABY2yC//7QMQEgAqJoR+mgHFpGAWkNHeIhOXV1LAVy76hcS+jy5zPM/LMrIkO/89abTaLJDY0Ks1eEck1LnOlvfk4afO8//hc/5e//z8s8zL1UiOZGp6ah4+q3h1l+ezzjJh2Y5h2SigAAStsg6I9RFSnauON8F////6q2lHkFGxCBhU2usZIho0bNYSApIMkD4ejEXdHo/0ZRjpUYam3rctucPk5IacFQsNVJDDoYAAG1uIuNfhcAnrU//tAxAeACVj1HaUAUUFQOyO00AotMV+u/W67Lo59EdWK7f0dEtM9mRTLZBJEsDoaCL5ll49yg2dEqKEuFf/VkESp9iWCcc8TrUAMi0zAjCZApMCBgAASJIkqg+oIAhfLh/7e/T96bqqFdnMy3ZmtqmR51Z2O6izA3Ky7K29DJIjOslFvu/9K5npp39ZGpOxFIiIQOSdlO6alleiM99aeqOGxgxw9SbAgYAAEiTAaI+hAnD0Czs//+0DECICJ8B0dpTzkIT27Y7SgCi1///+jFV8nJC7C7WipMHg3WF0sPyJgJJFLzgTKBguKrFKsNqEU7+aUDDobKKYYIC4YJCi6DxZoaIAYMIGjIYQDDYoEaZA4vi0HNMjb5Xbtv87dVdbXVUaxeQ6Sqpw7OgRjndHbKiLqqzKX37MdHRti+tdpi/t2+h/RnQjSPcORxJ1dbZVX1KZGdG1jpQbgYEAggAAFrbIEJ3gbE35C/0/3nf/7QMQJgAllnyGlAFFhQLRj9NAKLXyXoZ6ERnuive6urlo3QUyXd5qrksilR76q9n/039ntT/9HpWytlY6aVuYEeSZEJiVG4BtkgIkJtuAUQAACRtkRDo6wgU/j4/3/+fRb/yb3IxKIcxopJTSUJQOrTncSkOjuVJFY6OPppf9Ltf00/7ssx3sRyvqiNsjmRlEfv/+i0/JiYhVSUBkqIFAYoAAEjbJY3wkhH85vm//vqyURrKdM//swxAwAifGPH6UAUWkuuuO0oAo1lnuz2RPKxiju1jWMegpnVEQqIpmZWLdXsdmrVK9lev/+q2a5Sl6qYIBxTKINr266/XiOdulnoWIEAgYEaQHp/hQBt8Xt9Kd0loVVYrqZDvY7KrGdiFWMQ+cjHV3bRlqhVZ67F27yJ/3/9+nslqvdKsQ6MzIHY91pNcxZS7mVaZASo5BVADAY//tAxAGACQj1HaUAUUErO+O0oAotgAAG1uJnwRHfZ/r9m79r8jI5rKiujb1TZ2VNigymkChQeZaTHuMOYatYBHz4rx6/+hzmvyMWPqYKsLrE44mbWVBkagKnCBAKIAABIkgc3hOEz4jft9PTvZdTnQmxDTWy7rdx7UU53u95HZ91I25tGR2dk3fZP+a/9v/Vm5qyKXKZkZ7MyfRansU6t6HnYGFcIDAYgAAEiSBr+TDvu30/utb/+zDECIDJVaMdo4BRaS8fo5DQDizKeh9zIhPcsp5MiGVtHLS9GVUURO8lEcp22o76r1qv6baJ+35ttUWX61cGYkJ5ujt38sXMRHeqIBkwAoEEAS+H8g/O/r//+fymnSpnxFezdfpl+WTtuRiXNOiEjg1A6cLlwMHzo8LGDL/ddATv8e5xB5wUEIPh07aggfLkAXMLGjDgHIHhigP/+0DEAICJbeEdQ4BN6SK0Y6ggCb0MAAAkSYf4VP+Y//svMxcjHWyvq87umtEuhqDrZZ3RprndXYeXnnKqP1UnXqq+//1/J2kZ3rFEoqsDK5LN2R9UJPNQxSGKMdA4G2BBAESZ/KP9P9P0Vpj0O9En7rdzFKkiq8qSsq3KrFOcyWe7Welk0R03/ZtX7t/nZG2mY1mkIFVDFScKyg2979woT8S3+iZ1sRpAUCAAAASxsnfCgz9f///7MMQHAYi47yGjgE3hKLSj9HAJvb17o1iz3X66kZLFlYYwQKcEAoAzQcLA0w8QYt7fv9wv88oyKRcaByZoXNHQLqirHSIESLCGJXAcgUCNsv8FP1/p7b81OxHolkJdJyEVgiscYrsCMpTkFnO7nDSM8pEJVESyUsvrpe3ev+f2a87uWQjt0lVFKJ73vKrkQjD1bD2o508AICAAAP/7QMQCgQmpnx+ggE3pDyQj6BANvAWNs/kvl6WIrMtezMr5M9S9AaGVVd3Ziq7qyJNe7ORRhkVkRisd5u5TLS2/5pH//tM1KOxZHOzOYhaqwJ/756/bpeX2rZds/MDAACRtj81////7fv/3puZS3S0x48lLTSzKNeZxCqZk2pMREfjDXoDTkoUL6rO/URETqGgIEwix9phi1lpY0MYuGC4mAgAAAARtn8//3OmxEtTed2MqoWlU//swxAqDSMmhH0CAT+j5syPMAYudVTmm3sC3Z4ARh6EO85ezMVWT//br9NsrHRZ7qYyO5S3OxzkVQRn6/+1UprSZPxlv1sACf/+U/4vtDOfc/YpOrtfbhGO5PD5tHmdLhLGydq0ZUdtUdfZ7L1f/+n3SexqMTSDUe1Ub/bO7d1+e/8QkYgAAPx/////////6niX/Lf///8sVnQ48//sQxAuDwwgDLGAAACAAADSAAAAEsipMQU1FMy45OC4yqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqo=\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"//uQZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAAB1AABgSQAEBggKDRETFRgaHCAjJScpKzAyNDY5Oz9BREZISk9RU1VXWl5gYmVnaW1wcnR2eH1/gYOGioyOkZOVmZyeoKKkqautr7G0uLq8v8HDx8rMztDS19nb3eDi5ujr7e/x9vj6/P4AAAA8TEFNRTMuOTlyBK8AAAAALF4AADUgJAZATQABzAAAYEnvgyIrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//tQZAAAAGcASUUAAAgAAA/woAABD5UXMrj3gAgAAD/DAAAAAlQ4AOHy74neH8Pl3/+///8IRHa0Y0K9DC1SR9kjHoOQuENdFbHLkLgO0hKYN5UMzauHi5OFNqxVyv8H9COJxgtbAxo/GfhibH+dI9xcsU9KeJnUB9VKNs+IUJhjb1f3+YmtU1qzrM9YVbf/dNbp43pJe24zjin3vVN0p/qHvN//qaRV7kaPldHF22bMJCsqwwKUX2xqimo6shEiJwEp2ASq1PxF6lPrg9YcLP/7UGQRARJgJE/nYMAIBmAZdOAAAQpcoUEtGHgAOoAofAAABBghTla+NMl7M27W6dbs7tN9n/7Wd9/7ElgaeTbfIFEZhp77FmHsKI9bqQAHQAB0xBVMSTK0nMo7C+cmEr5yVQaBgJxy8DVe7m6uaXkt1NhQwGWFb2/hiBJXalC5HMij7zywjqcsVMWLB04tojp/uL/r+7uiIW4GYQ1iCGC5Tinyjq/6wAAagByPcAe5SOXrfycutubDKW5I/1R3JJgFPKg4vMHTU9TPestx+zX/+1BkDQDyZi9T2Tkq6BLhuf8AAgUJYL9LjMT0QBSG58AACCCyUqJ+24Xa1Hav/JKLOZXyYiqOdbHLJlXiIdJ/+LZRB7iLaA/brlYJAjpptLvq5XO/SGAAAdwljDDgAAA2stfp1G63z3y2+1oaIi//IxLd3Izv+RjPkihkfck2dihrdvxGl3UU7MLMegs5bUqpFUwFDg/G/Y+qrUUlja9OoVMonTqNQkP/9AfBj8/9f4N/hv98f/8M/6K22YRIEKNtsARjyA6pOA2R675/j2+8//tQZAsAkn5LUemZOuANIBpeBAABCikrQ6ZqawAcA6fMAAgkuasfnYt0kWTkKbKPf6/u7m8cmjgKyQ957peqxQMJtPpx0MmKjvmdAfDP2+OAVT/5n/6p/+Kn//L/qwAAAAAwSAAAX7vuf9M1swaQAUSbgWH3YS6z4K/e907Qy/SZ6xpq3eZcgwqrCkzld0zZ5JSJgBjyfU26rbD6NUmQTS1rvTQWit2/KY9//QGLZ/+cTV/883/5//8nHfSBwI/5P9n11dv/hIwQo3FAMAz9Lf/7UGQGAJIwNtHpOZLADIAaXgAAAQnNET0l7msAHYPnjAAIJL1LHMI8A/+TT3Pu1bmscKF8BUQpk5rlVTXUfAIo27P15Y1f6kyymtfX86Qv/qkRf/5w/+HPznwE75YAAAAACxIAAP3fa/66qhUBlVAMOuq5hJtljhnFDatcgv7xlNLU5hNw4WXGumdy4pqKLrJohoHuowT+ld6qh+GQRff9iKG6v9qiwv2/H09X/Ug3/yme//L/5L8+BwI/9/yn5NVqoVL6CEtQtqP2JxE+cRr/+1BkB4SSSkRPwPpq4AsAGjcAAAEKKUc4pezrwCEAZ8wAAAQEvvfutP1cbF2UCFiJmbH9x/estZ4P2HKXv13iCK96jYNTf+odxopStfqcg//SIh7/9v/zv/8w/JfnAAh8AAAfu+p/0/p7P4OvqL/RZI8EoCc5TqxuhXqYzGWFF83OkC+BomVUO89b3/2LrsGLlTuX/7nvu8e4abuv05e3uaBMs47f6OVH7f+JYw7f+//5V//uK//7f/lQeB+e+p/yv6UMK4v8oewrXgbTnKwZ//tQZAaPkixEzgF7UuAPQPnvBAIJCHUTOgPuSwAhgGhcAAAEzl+7NXauVJbpCq0ln4alnM+7w7/6aKMGsZufldWY9VDEC9+lPiBJ/280Tv/eFX/+1f/vb/yL+76oAAAAAAADgAAA8L+r9X5AEBb+hyhRWUyLPZfGN6oa2O62X6HEUFS8PRm0ifqWo3NSbAy4SY1TdJdG2iKk/1fIw/U3+ouN/6iiV//3//v/+Y/3fWEPgfs+p31/obOiUBlVATe+//txLAeh8YlgNIlOF+rrtv/7UGQMAJJPMM9JOzrgDcAafwAAAQiIwTYBcUnAIAPnuAAIJLCvSO2W5IsuBp3Peud5vDswDQJilvmzzz03cUAsN0VDNWgoyv/tEf/qbKjN36f/p//UAAAAABpjgAAAft+x31gfRalFUr7F9TTsJCAbD0trYfvWdPKHDGBgZLD0G5Z3+//an1pkRhNC21vE0xVstwGTH/7CUNNEX+MP/xed/3d31P//IgAQBAQn7HfUAIKJbdyM9DqKR6T0NJTUZ+zMS2lt7yzxKpobkKKWyLH/+1BkEA+yJTBNgPtqcBAAGf8EAAEKrMEyBnDrwBMAKRQAAAbLesdS/mUEkBGyex3SzTbrD169+iVFlNBX9y+3+1AxHgTt5799AAAAQAAFwAAAP8+/7/q/QBg1r9PyFxpQO5aA4+wg5EJxwJL6d9aPCX4Q2pQYFD5p4UtpK7NizWylN+vej5ZErC8stVOfU/PeGqzVnVTWZb0iAix6M3viE/precUCHXqJfjP3/W8P6P0/ogFApq5BLNvAIwaZ8mYCD7XJXU1Xs3bG61wdF5kc//tQZA6Akk0wTYC8mlAOwBp/AAABClDdOyTtScAjgGn8AAAENrWh2eMUqzWkYuBSwLCRTWcXZK1Me9tfXcsFdkka/Xmj//ciT/hr9/1u+r9AAABoaAKOAAAB9rH+p313+ioj1MADSyMpRfZ2PN1JQYxr2QlPDNUOF79zlekaWnQBq578cuY87jl93AZEH4t/ut35gNBKypKMc6vFwbvVlrzIgk+nWomU/rkOS87+76vsIgAYYwA/b9jvrgMD/j2JcWh1ygYFnu+4GXWLPzqtS//7UGQKj7I2Ns0BG5JgDiAKTwAAAQlw3TQGcOuADYApVAAABlalTKigMQHxlRUzm1GcLPcZzLJwPiB6FubKW9XcXH1/ZmkKkz/2SJtv+y5n/+dV/p5AAAAALAEHAAAA/KI+39IgMXzZ3GlqMbIjnCBaRHtQhv6SxL4pT4XJe1gtcHUVbsill79453b1S6Iwqhbf37Oce7shgAjW/THw2pRv+Rf/bcPX/6l0t93/6/0B/T+malBQ/gw3ZUBgniDSxADHB+AOQGXyCV/EcLOGecP/+1BkDoAScTdOQHtScA7AGm8AAAEJqME0BPJpgDOAajwAAAQCEnAJS16l5n+6XO9jculQVp7m/cueeaYtwl2o/pMF42ZH17JF3/7CIzv9Zf9n7//0gAAGBgAowAAAH2Nd6mfUGUNfc2M0UAsaIA6Yn05KDVsQ3cmpfbl1NK4gyMOAJrMCJ59mJne+a3l8GmwdOtCnovUwsx99u8slzR760rnr/0MjR698T9m2//1P8WQAAAaGBpjgD7WN9jvqBhH5TEAYeayCQY8rwAz0y1+s//tQZAkAsh8wTYBbklAPIApfAAABCijdOKZs64ANgClUAAAGMqea/tvCuICY0w6UttQ7d0XPIObA0MGa1GXqbbpDvRf/ew80kf+Uz3/aolBb5T/+394AABgWAIMAAAB8sXT8v+j8h/Ao7fu3NgsWAPoOHjuglCLidSXyuWQz27YttILLmyE7yf+W+537uPdsJKBfmsnH1Rmd0AJLvzOqHlBHdE2/ELf88+Ecxv/I2dp2z2elbPqD+j9NQGN/mwWVH2EDIbMrXswuC2GNzlksi//7UGQLDxJKME2A3JpQEAD5/wACBwj8wTYD8mXAMwAp/AAABMstVd4R8RBk0iFUmodpEXpoIIomhDQZNdqDnbaIuuyttJSZPUf7vLP/6icHP9P/9v1O+oAAAcJAAD4AAArDQt937vrDZX8abGMw0wEKhQ0lTDGYGYjEruVbmdajlkNgAPGASM4MqmSeutJjRkRnAZNlUTlbrvGPbW38xJDb905ZP/+6iec70/t/OfUAAAYGgCjgD6llvr/QBV76dnpKQvchaC9YoqFxvJP083X/+1BkCg8SKDDNgNs6cA7gCl8AAAEIpME2AvJngDuD57wACBzxq4ytuCBxzQGmxDUsy3+H73e0hwIh7ncFVrtqBRzKf44LdV/WVJN/oyA9IfW7//+RAAAMCgwhgAAAPoQj1p/QBL9ydqR9pAXCJp6kmLQKux16Skg3O7dpcpQIxuZDHKxp3AuzqTH0Fk0BTQLCYySo19TjT/1WUWDf1fXLh//vj3+S///qAAAICAAQuBWGh71HPr/ROq//myCx5noyFDGVMMBgR0a1u3d3hlnH//tQZAwPEhYwTgDcOnAOwBqPAAABCNzdNgHuZ4A6A6e8AAwcGll+DQYQaHem8LXP1nrcwShp/M8fSqszYMfRfTOD//xN/+wY/R+3931fqAAAMDgwxgAAAPsaz2O+sUSH2LuXRl3gIAnx5oOhVfQJb3EKLdb/phQ0NwOEcYGi5WPPSSZM4CegUgmimpL9Q2m9a+6iySVv/N2/63SIPt/57/+36v1gAAFA4AAXAZcANfT+39wDF1PUwpU+1wtOfRXhkeryA5Zyx2xewhtchg4ecf/7UGQOjxJQME2Be1JwDkDp7QACCQmIwTQDcmmAMgAqPAAABAZtAoYta1hnO546sohFBZnj1zNnPVALX2t7MLyh6vv+I57/rtEB+Qq7z3576gAABhwFwAABFGfWn9P7wVeP/mmiZIvsUDxnHWGEgYtOAJfXilPewvzUyOEE1WKxIBPrLpD27vHaaBdAiEF6n0rp9rRZXrbtojYo+vpzE//6ah8u+yK+3931fpAAAMDQAxwB9S1fR+miUUD+HxL/1JIBRFuQiBZluCgIQsOieM7/+1BkDACyWDBOwNySUBEA+d8ABQcJsMM0BPFJwA2AKVQAAAZnyezzljtgQGGRRNDcknT2tS6joTsNJSZSTKZOpNIZV71fdzhEaLf2lA//9yBFvs/b/+oAAAcICAB4AAArCE75w79X6gKRxr1aUUMPNqEAY4gZBpdIWtXqQVV79XKndAKiQ10DhoCvNKbGVSxzeOVksCFetjLZ7zrupoPfXntKCHVt394kP+26sFC1/vd6j3/5EP6f02F89HD2MMrBAUNq0AyUBk14Al9echfb//tQZAuAEko3zQB8mlAOgBpvAAABCcTBPYTuCUAxgGo8AAAE0sp3YAItMAFliTgyonUVPLrJmYJfHe5hWg1HxX16r/czHcnV/ZZKGn/ZlD9//P/q//pAAANCwBBgAAAPnGu+z6m5GgUQD1UApvrcaZJwtAK2iAJMH/S+rdojrkxhR4Xbj7q5NZCHnx9b2SqrCWPV1M1Drk4VlKUy76KjpBGd/9ywSC/7qx1u+GqvZ+7899YAABgaAGOAPtY37vqVckSBSCPUQLVu9HlUx6ek4P/7UGQIARJHMM/hmmrADsAaTwAAAQk0wz2EbgeANIBpvAAABKVjHqvC1ZbsD41P7zWt1iQAbgU6vepIpIOydACNNq/u+sYxQXoqo9NIkU1N/ucIH/1kibq+Lf//0AAAGBIAQwAAAHzx9/3/U5I0CUAeDJB3EofKrcMMrLyGy1wKWFduJT25jOtb5T0iGYFKZV2TGtbLauGtGBW/rfUOsnVK7W0I5ylmr/5SLr/6VZQK6fs///qAAANCgBBwB6zjXfZ9SvzX8BGWzO1qNQCvocD/+1BkBoCSNzDOqLxp4A6gCm8AAAEJJME9hO2pQBgAKRgAAAZ5iuLmDAO6Uf1jPY/PdqQGvQxGKIfmJ1JOgvqBhAUGVRU6TdhCm7dvXUO1Ful9JIjv/8aDb8f+//8uAAAWGACjgAAAfWpfyv6XJGQCgF1UDyOvtKnFSWXPKrEcENET0p6RXsLes+6m30fMFQr5WrtlqbrFUBgZJnf1rREsITb19VMcyaD7fmZC//GM5nlPyX/84EgP0/p/TWpQUP4AMRfboLkkxBeYgBxmeXGL//tQZAoAEmEwTkEcklAOYAp/AAABCVTDPSNuCUA4g+e8ABQcgMseMRu3S2cpz7kfKoJMth1f0to00qVs+ImDI03QoUEVKFnGn121sNhm/1zpJf/YdYb75f8l//aAAAYFgCDgAAAfUtH0fpspFQGmYUJ7/0ikKiLIhQHNN7TFgFrUVrcl/5bt4RMQAQNJozy+pdM1rQi/CpWyl99Qz5r71bKSIuo729p0t/9TzU/R57K/9X5b9AAABAQAAFwKwhO/b+/6laqQURpZGaf3ZsEJ6v/7UGQGABItMM9Jm4rADmAKXwAAAQhkwzYC8meAMgPn9AAUHKGCzzkA8ih1PP3KMK//X1bfRj5pQe8nbjuupK6xnQrGdW9euVS226/1k1mtfqZiyW//qH5D937v/0AAAGBIAQoAAAH0pT9P6QI9cj9lMGMLFA8ZVyBiYJKVvpG56Udxp7tyPjgJNChFb0ZsGqVaT2WQAHwZmRvfrF0h/+RGhV9ViVLf9vNiQ/f///SAAOOAAuBSEbPu/f9a2+jBVBEjckDJKHP+7rRmYjUMtaX/+1BkCgASND7Ra1I8oA7gCm8AAAEJTMM/pm2rADgDp7wACByibHOJKXWs91Ludmal7IVwD6iq61dFHjUFFbRU3ZIyHdPXh//2FIkf/icYt/7U/+W//rAAAMCwBBwAAAPlVI+X/S7bEAmCFGkwBco3pxsuK2D8DiPZr0CEN7JJfSUlPUzt2Z6kYmFSu1ujU6q2oohBDHUvV94hxkugpNOlrZYydtD11C1/1cZyz8h+fAAAJBgABOBPDGfq/b+yBRXympZTAS+RUNGKrwYrCjAW//tQZAkAkjgwzYC8meAOYAqPAAABCSzFRey1VGAdACjoAAAEtUvZVrHPeqdWkwCVovQv4mp06boGopIFxldF6+92Gqb//URZB17fdQ40r/7lEeHen+7//+sAAA0MAFHAAAA+pavr/Q8O7oAooEONJARd+K2XbsxJZO/Umc95APMTeOfRW5vUbucypYhIwQXY3t9FNdGLMHM/S16w9DdNL9kUHzTVW36iA/96gkyfG/iIAxQB+j9X6PtqQWwHyoAIpe7jRl40dA5J8RTaJ8ATNP/7UGQMABI8MNDhO5q4DkAaXwAAAQmwwzktwPSAPABn/AAABJjbqWu7qRMggHEhXO26DVqETIpoujZTKTmpCtodfURB2fr+YERb/fUPOzhv87/+oAAAsLAEHAAAA+1jfu+r+kFAJaR5pDaw/W5VGX9h5dJZ456cBV0qGLSylpJ/9514g04WzXM7OILQRux2ECCwzMjdmfWNQbL7/hO5ZOnuICf/XCMMmu5J76j7v/pAAAJBwABOB88Hn/f9T/rqltqBTA//4BBBVOnBtVWYcNP/+1BkCIDyST7Q4TuCUA5gCn8AAAEKFMM7JPJJQAWAKgAAAATQy+IDDRx4xXrzG7GucoWNmQg8DXsl7poMuLSFBqLb3qk8Wvb9ZDN9vXKQ2/+qsaqf/6P/8/+r9AAABgWAIOAAAB9S0fR+n/gGAeagUkr6u3kpECUMtKEANMrx8xYB13P7+F2nuVKXGXlzDBg+fmepTatBTsgmgFcPV26nqF+VX9XdON11I/8zGE//yiS5iS1M062f/q/Lfqq7WIFMEKNuMAWW9bR0oNmT4EMv//tQZAmAMlI+0Ok6asAOYApPAAABCZz7R+2mTmAggCmQAAAGOcrHr7NIvOUmNJjL+dlDjgA3c3jdbM1UQgSqC//H0h9/qVGZB2q/YmjgR/uvWOv/6//5rp//+gAAAsIADGAAAA+lKfq/S4TDIBGgESNNkPtZ/7d+dk8VdmClG1Eh2GWQ8dBbe5/IFWBGPAHrG+jre9hKiDq/XrkwPSNq/usV9BBv0HoCit9/qIX/80f/8r/3f/lgABRQF9S1fK0OCjqhDNS6HWXAIFPPrQWCof/7UGQIgBIyMM2BW5nwDIAKTAAAAYkE+0GEbglAMwAqPAAABHOZL5m/bpLtyu+iujhhFTjOpfyy1frrThCIF1m37JcXim1K/kAVe/6RKFP/8jCX/PfnP//6AABhACQAAfApRH0/ockZBSAPXwDqRNU5DDJt0EEZnVuCkNiEN0lJSct1LtSbaqZ2BvNV026dlsXgrpKv/l4kK12/kPQU//Mhhv/8aiX/6P/81///0gAAGBgAgwA+tRf6P0Jy1oBMA/fD3c13HKljUy/r7KUiMEP/+1BkCoASXjDP43FVEA7gCo8AAAEJiPtDpOmpQDMAKTwAAARK3AEjNdrfc/VnPO9RogGPFD8yq71qstEWsK51a/oFGNU1P9HUJip/2EsIv/oFYc/PfUf+r/+oAAAwMAFGAAAA+pZb5f9G3tQDYIcjkYGjDdRRpHcE04666DruBq438styvDPd/ld2FhzBHaD8l6ldQQYL1utegtAWJD21atQsU1f81Gcmf/l8gf/mK//y3///KgAAFhAAYoA+hCPq/IW4WIJoIyqA0uEP9VQq//tQZAaAEgIw0eDbalgOQBqPAAABCRT5NgRtScA3A6e8AIkEZfBNsYj1twBM0lTXLeH4SuEmLg1vHN63RfQBpH5df/Lhb/+P3/5iLRv/kU1/Z9Zz/9f6QAACwwAQcAAAD7WN+76ggu/iSqFYeZKBgY8qiCR5Els9FBFvlP9bOkR6N+G3MuzN6pnun3vGaHAESLJbvGrUpcEX/6g+9/7uLgWf/wqlv///8h/R+T/OgAAEAoAAXAuLM/T+n9qW2EBsEGNhsDA2zb36NElSD2joZP/7UGQKADJiPtDpm2rADqAKjwAAAQlc+UnNNPRgLQBpuAAABHRAogf+pnT2b1S9eyjsEkSlfu4eyC1LHYAnTTV/kQg1O/10g5Bkvf1qwvzt/2Io2K////mH/9f6gAADAwAQcAAAD6llPo/S0Q7GAkoBe9EvnNW9Y1pS/T/Sl2mkmbiiyF+rPeSq9Wxsc1cGkl7PafrqRFQY6tv0iAGfb6AFEEbXaaxoFG/+oM2ev6//xX+n8n+8AAAsJ0D+dY63v+v/fMFQB7CEULqyC8OgRhT/+1BkB4ASIT7S4TlqyA+gCm8AAAEJIPtJjSJMoDwD57wAFBx0zS7Gk4cu4VLdnVXmrs2EN2quT9Sroj8BzddardUyI3/Xk1//nCTV1ep5wdP///8wp/+v9YAABgVoGKAAAB9akyT9H6Lt6wnAlrIRjmf6+zKrMMxJ0V9GOwBwIBUFyn0kOlHEAA4Y1TNL3W+gMeGhG63T6tSibJF7f2URjr/9MiT//KBVv/6v/5n/d/+oAAAcIAAB4FITYOfP/u+qAUQ9BsWnHXLWHVwAZyJd//tQZAeAEiwwzgC7UnAQIBn/AAABCLD7Q4NtqUA0ACn8AAAEwiX5xvOxbqbpAaBg1ViTwxu9fvYZauV6hYC2Hdwwo1FbB03b/hfurf2YhBQ3+rRKHP/7P//5cAAAkGAAD4AAA+4Nu+z6v1SyNApBL78Cr3N+onA0daoVAEZu0n3wjtJYysZ83SQ24hi4tL98Q1uqtQQIeGe/65dLf/xyI/93OEFv/k4of/r//nv//8oAAAWFgCjgD61L+V/I1XI0gCgD18GLmX/NTIZ6TgMphP/7UGQJABJEMM/hmorAD6Dp7wAiQQlE+0GDbglAMwAqfAAABH0nC45isnwuUN76OxXgBrxxg8HZbRbVtFCg8I1qX+sfBWvX66pB1M/+5SJ//9Mlvzn5+7q//rAAAIBQAAuAAALizP0/p/bba0AmAfvwhWU9oBaBsQZmMABm+ABjRx4xbl9yvSZb1dYSDnN7rGCPV1FwGB5da/1j6Kj9vRsOYxu3b7jF//I8q//p//rNk///5YAAAwMAEHAH1LKfR+liVoFMBSAAsb/8ViEiDUP/+1BkB4DyWz7Q4TtqWA6gCn8AAAEJRMNDpOmpQAaAKUAAAAQtaSNMzlQg5caZ7MyjHWOePtIMYEJbhi6n0XmIYAEig9eq9SRfHSy/9hh6Tf2Y6Tl//IrP/9H/+e/V//KgAAGBYAg4AAAHyqkfT+m66sFsEqNJoMiKW+i5AR1L2cLDnIsiVtfkXlkol0owpa+XtfAJu1ctJVUFIpIg0CXqUpv1MNY2vf+qQE2S1/xt//Ipp+z9/7//y35ZAoZXYlGYZdJHUQhkYhREYbhQja+k//tQZAqAkn0+zID9ofAPgPoPAAIHCIzDR4yaTmAgACfwAAAE3TxnOrlnVpwgCACQjsvRD17fbONdZswZCBFXJ6mq/ugImv1e9hZypp/uZDJpf9ovxvUP/S//nv7//1gAAEBAAIfAAAFIOz7f3fV//kC4AeRRQGEXs+Z0EzUl1mTwgTiKPGz0VOfVwDfSBJgYaglT1JIbjrDSna/+USTV/1LHSlv+zHSe//JUlv2/n/r//qFABAfoNfV+hZtqgUwRHFIwU7jfetTuCqRS+VCL4P/7UGQKgBJDMNDp+2rADoAabwAAAQjgxUWE5algOgBn/AAABEq0E8AXaTGfvV6nORuEmNhlHjfSqSbqFUiPW7WbOy4N3/aoQR0z//jZ/+RSN+Z/Ofu//SAAAWFgCDgAAAfaxvzv1T7WAJhHkQDB51elREZBF/mIs6Pbga+e2R8qXqli5hnEI0HcyDOcWirRakJKCAWnq7cZiFVZ/XifrSVb9zIn/9sfR0/V+X/QAAAUDAAB8D54PP+/9/1qBSbUfTxMoaWFAgZrlxkgFJhvxDf/+1BkCgAyPTDOARxScBAg6e8ABQcJeME/jcD0QCgDp5AAFBwrlletqxhNqymawq507Hc98wq5azyfQrCV7Pl0MV6OGRb/6CYa3/nh//9Qoxr+f+t///9IAABAMAAFwAABJCJr6P0/tkkaBSCPVxJYtzDmOVLaf59VpCgKaPqgI5YdGaalmP+td1bQQGMEEO2rxtp1ZsLwKuu36ALDNlqnoglmGf+IQbp+7KAl/yn5L7mf/rAAGHAFYQAvy/6aqlBS/g63KVKtmRtoiOdgljVu//tQZAkAElYwzsB7keAPYApfAAABCTzDNgTyaUA3A+g8ABQcng685OY2qKZqRtwC2ZmxfGM8GSRWmlQcNEBlIpL7b1jmn//plJK/7sw/lt/91pDoS+pvqW76v/5IAAAwJDEGAAAA+lKfLlv0gQ7f/muIYMW2KCIyHwDDgYTTfCbhutax5XlDplzSKVK1v7Hl1maJotJMJkCsNabq3ssSpL1e9Q4WSt/Yfzf/sqSR7899bvr/T+gAAAcIAAD4FIXZ937/rnI0gSwF1UBDDerE0//7UGQGABIkMNDhGmngDqAKfwAAAQhQwzgB7imAOAOn/AAIHEujLlJynJ+h0Vtoz2rds5fvnVkGaFRXOid67aw+BlbvUpeovlHS/WhHndv9itB/+pYzr/d+7//+gAAA0KAEHAAAA+VUj6f0i7/2KkvawBQc6rlNhAVIQPDlJF7FbPDOkRXC6PGpZF72PcMKiziARguGaWrf0Bdp/b8gjJt/zEbDf/I0r/v/b///SAAASDAACcCeGM/V+39l3GrCbBDklkAuLI6/ZJnALEm6qpD/+1BkCgCSRz7R6TtSUA6gCm8AAAEJvPlH7I20IB0AKSgAAAQiAQefWpnX3fw13CbigFCM7nfdeFYD9L79WFUU/9cGtz2snu5QGn/q8SQtv/fr//Jv1fr/KAAAFhYAg4AAAH1LV9f5Joh3QBJAIcaSIbyrcoe1bkdlzXpC3zyhtZRq99Fbr/jyzqniE+AmbH6FSNOpE+CK61vvsuMQbt63+oWqv9dSQt3/1ZFHW//t//NfyP/94BiAD9H6f0IChz3ajmILWQFxKZc4JjcMo8OW//tQZAmAckUwzQC8meAQAPn/AAUHCVT7RYZpqyAcA+fQAAgc/koidS7QT1JAamJFIlnXp9JqCaU8cBMYKyTZNanotUmJch3/aNJ7f7EeO7/7mo9fv/P///ygAABAQAAHwAABWEp/7v3fXtvWC6E+WQZb2zjJKNRBJQCVpG0zByp3aPly9lZ1lrBnhlgUt7gm1dGyYMYUz6XrqjzHj/2xaIK119TEU0/6saDb/81//Wff9H/6AAB6Q7fv+qoAbvzsXC4cYmYMDH4/RvgAhe0B+//7UGQKABJgN00A25pQEKAaDwAAAQj83T0uRPRAMYPntAAUHLcov/zcvcAwEZMGVWxTsOmqbGDOtNQT2F3LpXXV1B/U/X9nHGtaH6slRvN/roDlHq//P/k/3f/qAAAJBwog+AAAPuDbvaz6v1f8CoDTSLMnO93ztimjUy2Iqg8hj5CBW6TdzV7lPO16R92rGUwA5/J6q6fYJUVNW39QEC5f+cOhRHX+kqHf9qgrT/1Ifkv2fvAAHHAAXArCrfu+r9ce+/e5wkjGmugUEO+0ANX/+1BkB48R7jDOANuSUA7AGl8AAAEJAMU2A/JpgDgDp/wACBxLNprFS7nZx19YkEjXCZXsS3RsgnnQh8NLq2ZfyDIf+6BEWv/VOks//yAf3fX+XAAAMCgAxgAAAPnj7/v+oFp3oqvGGdgAGG1YUZiASfbuRuVxi3ctWKd3ACDzERPeK9A1W1lWq5O6gaTCglrRbS9QoVOr/Woia//kqSH/5Fjz/T+T//u+oAAAkHABD4EkKa+r9n7FqlBQGlUJTmVX1CIiJ4VFhwMmBbyAAe0a//tQZAwAspYwTkk8UnAOQBp/AAABCfT5Q60yjKANgCkUAAAGOzFmmnLUmmZQ7aVpnENN/Yyptc1lvD9FQEttnzNWdZlTQJBsb1RtZUQU97p6MMQUen6hi36Pyf7P/7wAACwsAMcAAAD7WN+76vt8wHAQYiiQzeJ/r7kzHoo+sWaay45i4ipDZH3RrMR+3AKcCkgq2UjUyCmSERFKI9e+px9DxX/ToikXSf9kqhgt/1SNJf2+ldv/rNP/7PyAf0/peZp1AkUEJbdqAUAI9s/MkP/7UGQIADJNMVJ5OlJQDqAKfwAAAQl0w0GtGm5gLABouAAABCYydghebMDI1EKHLlFfLVPY/G7OysOD93qdb5oQtnsldHFwfdn9cHCKz16pQFf/sglkX60/ATvo/IgAAGBgAo4AAAH1LKfR+m7aoBwERokgNxmdZ6xrRGGnajLhJomv/hkF1pT2R8kgXFUVAORjWXUakUG4oQUqhoJqWknVJobPrQ7VkKatSevtkQ2+rkqQh1/n/yQAABQQAH86x3z/1pttAVQtyoPzPWP/CvX/+1BkBoAx+TFRY0yLKA6gCk8AAAEJOPsyB/FLgCwAKfgAAAQpaSNsoZWaKOLKw8fcYvTfjs6TYHe8+zV6OLUHHpd/qnSR/+sc02/+cJn/8xIT+/5b9IAABYSAIOAAAB9ak/KfoLRVa/9bNqdP4WULh4y9pDJIaTlgLGDJbrlutyuXIMRGJ9aaxzDPPvL2qSLkQ6v86Yx9X4Pm/9T0B5Df/QI3/z9Qg//T/+S///6QAADQwAX4stX1/oq7WoFsAqNxoAdNXXTUG1DRgG2IHLZD//tQZAsAElQwz+k6asAOIPndAAwJCfz5Re1JUOA0ACm8AAAEWhb8CW5+pbylXcdQOSm8dcR/sH0L0ipSP9hnIdtr11LEDZlNS9FliYN/1TgiV/Nfnv3f/rAAA1AAoAAAFwOkd32fVEREIBIoIuNtkBCNvLeWfJ6MtyYFALCmMjPFQGAo/Us1qLIiqEwLQQ0yjVB2odRGhoBqq/6sFULerfW4cdjevegT39l0mh4Ndf+v/8Xi//6cAADAwAUcAO9al/X+mpiIhQJFApxyMgA4Df/7UGQGADInMNJ5mIKoDUAKDQAAAQkIw0ftJgygKIApeAAABLSqyFCgJqoYTwuEm+9lrCYn+5yvc+EOje16mZEXgeqh/VXLJC7f6AoZkV/2xavtr5YGnf5P8N//3gAADgEYAAAD9Jn6vxM0xDqCKoEyNtAIa5SKly7yefWMx5orZBHEXcDrEzbepEqDsE6CASn13rUt0S8G9n9F9VrEeQve2vl8bLntLvrF23V/ci31J/I4AAAAAAr/r/X+ir/gYR6oBANuvXcbKSpEL2OHHMD/+1BkCYCSojHNSZpq4AsACewAAAGJSPtH7CWsoB+AKHQAAAScBj8MZwXKK+EL1ZpnWM65fm/KLOWWGEuyxyetBBjraKNnR2Gce1SLulrqcMIiHpftj0LWero2rHqb9joA/ERj5MAAAQAkAAH819X64mJdwRVAmVyQB2opZ/f/Vj01EWZTJL1M0NHYYgJVyrKR1ECQKTWe9dVAFtapXqVYfQ4G/fxHja/V21B+Qr/XxqQu2/67P/1G/RkwAIMAP1fp/TVXeIUDQwIiTaAX9FeY//tQZAaAEjgxUPsmg5gKoAoKAAABCVjDN4yOFAAqACcwAAAE29X8I3ap4AlYpGjW/mMwQSitQsQoBuJZ6WteusT8+tN2dNnmA8//injeZf9VE2Jbq/rGfyPWK/W/6wAADGAAAA/V+j9BjkQBIR6oF63t48+rqtZnoS8xwBD+zmUdivM65hjUj8nOK2FzPnFDHUEUkALBq9BtfcfiCqXWtXXWGjjtV3b6xQ6f9vHI3dH5P8N8AADgEwH/mflv0mmIdQM2BFxNoCJvdFe495ffV//7UGQJAJJePlF7KYsoCqAKGgAAAQmQ+UnsJaygIQAn8AAABPY82F8Atw4AjSmmrHlcfpaAFy66K1M6aCyUFfapC+um4/D36+vWJabsur66hZB//5wooba/1//mf6gAACHAAAA/X+v9TzUywEigQ5HGgsant/Yzmpl/n+ir3URRYmKEozTWckWQKkA9wAEVXbspsngvuu1/W4+C//3pBzCWTQXfrSphc3/+4t/v+ht/1Gr//yY4BID9Br5b9FWW2sJIA6qAo6PmXjgVC8DCyTH/+1BkCQASLz7RYNpqWBAA6g8AAgcJcN02A3KJQC8D57gACByhW/meGNu9V72kicOBEqT8tI6k22A1gTz3b+mMQhfvrxzKRb+zE8qf/50jv/91//WW/q/QAAASEgAB8AAAVgi/0fkP2qE5/5rADDTKQqDDWkAMagRgsuxu4b7/btQlDBo4UJqxaZQLqTHEUWKYIU4UDnK2TptZSQ0mt/1DRb6fdhnyRb/45CX/578n+f/f8oAAAQDgACBND3/f9SoFNvQbctTjrlvD54wWwEo2//tQZAgPMkcwTYC7mfAQYOnfAAIJCOTBOALyZ4AqBydQA4kM0l+6Sjw7ejbKDASc049fTGkq02qmOR2RoJbBVZps7O9VIWTV/tLBjW36qArK/6+ogbvkPyP7P3/UAAAAChAA8AAARJr1lvyH54FfztbuSVhAyGzHl5MOg1aDtyjCvJs7l2o6YWCZpkCp5XqRGp0UVKTDoQfdklN26xjm/+cHtJv9bEaSf/5GHX+I/2fnfrf9YAAww4rC1f+kb9EQ3lNZjMNMpBoONRTYyGBk+f/7UGQIgBJZPk4AXKHgECDp7wAFBwjc3UWmaasAMwApfAAABJFzVmYzs6wjYMDhh4oLpnq6lub0nRLBMhSGkzO1bPpC1pq/6jpNPV192RG3/7ok2j/+//6jzfs/OfWAAAQDAAA8AAATQmZ+v9H7LbYwUgQ23IwSf7s2CGB9QFbODnsBqA38Ut16Sl7zCvDDfmaJ0n4I17aA/gML7Vr3XKBb/9YyUn/vnRf/+sfSnv/zT8Q/t/aAAAYEgBiAD6EI+W/QcEaBKCX3YDFtuRrRqCX/+1BkBwASND5QYPtp4A6gCm8AAAEI1Pk2Au2pwDkAZ/wAAASNFgFAGui62Sbqco/7Td1TsBMzCqPfdaKPMAgwUpP/ssQhS/91CNGq1/2ROj5/+Vkf/9Jv/zb/+TAAALCwAxwAAAPrUv6PyAYfookFh2Hmmg4COqhhMWSheeQYTd+V097DawRrwzLdXM8d6xx7nTJKhBRId7eqmjU4qIfftWIVNT/3qDm//kUhVf+tv/zEAAAkGAAD4H3h5/3/v+ubasFMEGNtsPzRdy+3hRwz//tQZAgAkk8w0Gtmm5AOYAp/AAABCTT9QaTlqUAiACewAAAEHYIX2m4Y/PAoEduMU6YZqAl7BMgfSHqN1pGS6nIYGCUF/9x+HjVb9QxhtXf6qhYv/yNHA75L9n7f3gAAGBgAo4AAAH1LV9H6dtowEwAo3IgDCzUn2kVRCqMu8zk4fRt15r3cb+da3I8K8qNI+3c6j13xqA8z+1vuNQ27K/WoOxAqqV68Rk//9hhav/W3/89V/9QwBMD8oa+W/RV3Z4QCMwIVktAa47ON/XKeWP/7UGQIgJJlPtB7TJsgDiAKPwAAAQl0+0nsNU3gGAAnmAAABOi9EfZ4z8xGlQMJPYWrsuT3rrCAgYaIXTdq2daBmIW7L/cfQzauqjtkOEk9f5kJEl1e+oc7b7d0Pq/ksAAAAFABjgAAAfqX9f5WZmpUCVQJsdsAabDlvV7tDEo22tqK0yChQojG7SmXCVLD0zLwByjRbZlJXQByt6ndCmkO4U+r/QEvv0sJwofb04LvZTk0XVWXvrlCwTA/u+r9Kmh4ZAQzAfvgYLft2Mfs1pD/+1BkCACSMD5RcymTKAqgCioAAAEKdPk1JmoLABmEJyADAUbKa0EyQq3NeBUo2dVaowtsCqA6DbbWt6kSkHTvtQ+xTFS//MxUf/xTU//x1V1VfXfb/nHX/+oAAAxgAAAP1/r/Rf8AgO1AAV+/dOeu9YI6whn6weUZvOU83SSmmo9WdtONXBlvOqSdzFSzRR0LAHdW1PNRdjlLUtBBWqqNcTGy01da6Q8Eu1tf4zrPV/qavq684fX64ARxK/q/XXiJdQNWBFxtsB+Jflre61La//tQZAiAkmE30fspgygK4AoqAAABCdj7ReRlqWApgGf0AAAEiUpdKImDKrCCTOnLxZ6UyA1A4ao+jslSTFoDYTR2QXUjqRH8bF9m+sSMkbt+qwxz9X7GZEv+9zBr6MiAAAYoAAAH6vy/6VCHZAJEAkxpIABZPeCyBxsvdx2zKvHm3Un6Spbor8U7qZlZmn2sfQ1regsFEA00F2/sNYifV9USkpoO+j01mAlP/vIpzv/UcPf/WbNb/6hwCHwPw4/5z931KiX3hVmnxKoUZ53EoP/7UGQGDxHvS86AO5ngEAD57wACBwg9LToBbmlAOwBoPAAABA9Mx3v9/eeD7hQOAp5DdayjrZBpmHcB5q9X8Z1//rIk7f9yMLf/1kq3/6//1nv///8+AAAOEBAA8AAAUh7PY3931BW9FcClr/F/TtXMIYWbRW3vOvlvCu+iawaIqtl067Ua1GKgFsAiUj1/sNz/8slr/8aiX/1nF//OP/+db/9v/zr/qAAAKBwkAuB86cd7X/X+ugyZ6opkvcgEgZ5m+ESakIHllSvevXcKd2D/+1BkDI8SSz3OAPtScBAA6e8AAgcJVS04AXJpQDUAKnwAAAQqfmBFrWpbLvw7jhj3GJDJotS7c6ZZrUcCX/6lQ+O/9xuS/+eYKGf/xd//IP0fmf3AAAEgwAAHAAAE8CM/Z+39gCf2coDHlOyANGHccYABjS5RK6fHu8KeYaWCAiGVtPKKy5BqzWs+gAlwLgN0NlvU1hlv2/G8gyf+oapv/9RNu//nG//T9f///OfpAAAMDQ0xwB9S1epH5Or/oJEaqgAvSXsKyqNP6uYvKbfg//tQZAmBkm0+T8kbieAOYAqPAAABCUj7P4NuSUAkACl8AAAEg5Fcad7u/Vyw3hGxAIGBFTXaaqkut6NEmwfHXtU/SGdN//YsEVovZL1rPEL7VfHwh/9Rv/+Yv/+pv1gAAGBgAowAAAH1qR9f6ZJIgCQjxFLPrHgQuYu0xQc4pJEnNoE/Ywq2MrdSu+i3zSh+BM+oLsk2slQejXr7VxyCsvb9lDCdG/65kMN//Yvlpf/0P/1n/1/lgkAIQAfpT9P6artaglAQo3IwAR06ujpbEf/7UGQHgBI2PlFpG2ngD4D6DwACBwjA+0vk4gkgNIAo/AAABI82VAowmYTQeOgr16SX4Y43K6+RZSo8esrdWsdgHFtD/Gogf+0bEv+1Yyn/+VkD6/3b/6zB3/5IAAAgIAAD4AAApB2fd+/65mIZAJUAlxpxATo3v8SxUmDUtd5/Tr0i6907n9NKbdnHCuUAZaL+jUsawy6Xf6nKQwP/qGWPL9XXjs//YeN/+Yt/+Q//+sAAAsIACHAH0FEfT+LViHd0AjQEI5doFYXmuVt6zsX/+1BkCICyYD9Se0mDIA6gCn8AAAEJfP1H7KJOYA2AKNQAAAZJVNug3cxElHMEEaCL0MthqiAF49WmutBBWZijPpaL6nLBLf+8a5qpXfqxk2/9ZYJVu/9a1f/Lp/9f6AAADAwAUYAAAD61F/o/Q8zLqBGoAONxgKES+7cnq0pgKYf1/mcu0ZVA9M6trBmOkFTNpAHq+vrRtH8R4j/7j4GD6v0xQpJqrZn68WE//9xkn1++pm6vvlAt/qD+v9K/esNoAKuWgFlZVu30XlVKkBdm//tQZAmAkls/UGmaasAOYApfAAABCcT5PayNtAAaACfYAAAEBjdQYIZ3GKevBGViQ67qATKirHMmqWvZMwA8W+9e4uCcqsv7s5IDc3/wmyH/1i816u2y//5ENv0gAAABoAgwAAAH6ynyv6dbZAWgQonGg+kh7ve7lV6pp/WXOSb+Y/S31Fncl2+292J99jIht6+PFgvcyAcbtZVP0hZDBujWtba6hCDr/8xDGj+r457f91I2/84//9YTA/U/6v0ViIiFA0UCY3GwFePz+dFztP/7UGQIAJJYP1F7KZMoCqAKGgAAAQnY+0fsJgygFoAnSAAABq98okr0QWINXrA4jooqoSGcZQF0JwlU2gjWtRKibEfXqXSI4VN//h5Da3X13IiS+vf8XAytH9f/+cPqAAAIcAAAD9X6/1xVVUgaqBNjtgCeLmUtqzYryRgsCwpeltK0oWEH0HubRBdOLzYCujurU1TsKBQ0LPRXYjxJn/+Iog//mQbpWyNVHeLGikuql9SW/VtpFuLEB/d9X5aqkFAJVACLjk9NWqnJ0CoyAGT/+1BkCQCykz9MyZtq4AqgCioAAAEJjN1F5OYpIA6AKFQAAAYYBj4E7NNdnpXyji2e7DLTNE6exp5fnvVzV7mTdxoikfOr9ewujieigy/qBDDotDX1Kx1I3/0Bae39TfX+s2r9QAABjAAAAfr/X+hoeIUDRQIcjSABU0h99IjuNI5cMAGAiQb+KW6HC3hY3YlZ8D/e3UyOkRogAjut1qd7C7Hj1pdGiLiGykyO+ybnBZLd+nrLCaH/scd9Yf1/lLdqwnAQY3IwISve/rHLRKKo//tQZAiAklg+0GmaisAI4PnzAAIJCi0vOy3JVEAfACjoAAAELLJNDvSJfah5RZ2KaU8x21gxx6ly4vqZ2cYwKk8pX/H2RH/6xe3/8vjCf/1HCF7f1pmv/1mW3/y/6AuAAAIT+39/1VUgoDLSSjDL/1u5YpZdAqzjiAseamoyOkwq/9qxK24AkRM2L3UywS1MboSgDSgftVU0Wqg0l9V+7FRBU/urBmNv/oFQv/9Bz/8jGv/6f/y35AAxAB+n8t+TIJ+dVmHTEAIMxywBFhicOf/7UGQIDxItPc4AXJpQD8D5/wACBwhFLTwC8meAOYPn/AAUHC+nqU9bD7kTEQfNIgNLqW20UkEGamiHOB5S2j0L9AXF/+dHllf65On2/84Y//qb/8x/R+a/aAAASEAABcAAAUhZz7v3/QCl+XKtKXiHAWZFiJZF0rtznf5czpHTBgWMhhSJ1rd6DJLYognkLtSRvZ7ah5b/8lkf/kor/8rpf/W3/5z////O/pAAAICAgAeBWELfY76v0kEH/Z6NCYeaaBgEcIWgQuk4YPnLmPf/+1BkCwAScUtNgNxScA+g6e8AIkEI4N1DhOmpQDYAKbwAAAT3hNwAKjI1UJBoAwNez/uu/XrUIiGrl6/SrohtQ6//ygcNOX+kWxx/+iiAZ//Kjn/5H6///8hf9AAABAMAABwAABcWZ+n9n7rbYwUgF9+ASztbNRco3GGHqUHZ6BzBp8sp69639Pcp30L7mCNyqrk3+BCg/9vqqHCf/+Thxu76P2Gc1//H//+Y/hv9n1nvqAAAMCgxBgB9RVHrV+QqCt5hMuhp0U7hQUiH6mBg//tQZAeAMm4+TQBcmfAQYOn/AAUHCCz5S4TiSOAxgGe4AAAE2tqI1JRKoxaoKeIOGYCAJrsbKvjMuq61VxrIOgCWQRaWtC1raxIEv/xcy1O/9hqkQb/1kySbf/Mv/1n/zX50AAAcICQD4AAArCl+pH5D9u/9oUgX6pBLLc9JlkKGLNrDx8kTae2fsVuzOBhWgNYHweoP664louBHdrdSZHEh/+QFP/6JCN/9ZJ//nW//NP/5EAAAgGAA+8PP+/6v14iJcwJEBCuW4AanB2WgN//7UGQHgLIoPtJ5OoKgDqAKfwAAAQk0+UfMpkygFwAo+AAABBD5QF2eGNoI4Q3SU9PZp7TqcwMwX2sgupldETFtBdkF1OWCE/+oaiVX/ULj/+oskGf/6//59gAADAwAUYAAAD6llPo/S7vDKAkgD/8CuYT3W9zURoIaf1hzsmfmNSg077AzJtrLWBcT+hutNLG4IDqWrU/VLAxP/qIEPCSlMpHrxZD/+5iKge/+uj/8s/qCAA/1I+loiGQDNQn/8B4wJrT9+8T0k26DpmEgoHv/+1BkDACyVD9R8fqSKA4gCl8AAAEKLP1D5mWnoA2AKFQAAAaRL5QXED0dligYgKsz1JKmB9aLFMFCPqv71OPw2f/rFDkj6XqxtHv/nCB++r//8oltvrAAAACwBBgAAAP1F/o/RMRLqBogEGptAC0q5DaxyPTIXVf5nLtGZYPZM1nrH0NJSTeOpXEjKDt896SzDRSGkGwj/7jMFigvQr2UsKEv/V+EVN//rE+oaD+7oq//RLf/6Q/r/Sp3eGQCIgANKSAAQfdvy4biAHpSBdnh//tQZAsAkoY/T/maasgKoAo6AAABCmz9Q+wmTIATACdEAAAGiciKENyyvN0ueprduYiJgS1Tmnaiiy2WVAXKC/+kNQXs2rTVdnViFF+v/pBgNqv+sT31/spG//rI/6gAADHAAAA/X+v9T1NOwEbAR9f8AnRMXJmTWZU4MHw9IXWloOGUhDplsuWpknOtE5sEtWpb7P7ijPpoT02rNhagu82U3/I0Q9r7alVixDeN6l3+sR0es7deh1er50+tH9/1fop7mqgFZQRsckAZJZjU///7UGQHAJJBPtJ7CWsoCqAKKgAAAQmQ3zumZasAHIAnnAAABDmVLIXSgFhVCS5f0Fk0iryrxNU6NQCkS73W+6wuDbstltZh/Die//QEi3X+dFVH/6xir/+pVX7c6lQAAAY4AAAH6v1/pturBLACicYAxWq5ixtJdx8RHLMzcbTbyX4Ul65boscpuHjTlx/A0bWuisnAratug1mFmObWgv61DEEVSt/UNhS/+sdz62/dR7UnJftCKAP1O+r9VZBIwkgj10AXq79rpmGYkyFYI0H/+1BkCYDSRThPYXqJ4AsAGecAAAEKiTEwAe2pwBYAaAgAAATAt84Me7W5b5zmdA/Bmkk72y12TSugLWDOfRp/2GuSHU7dSahTkrf1VjSf+3kg3/uke/L//0gBC4AAA/P/n/3fUOOWdgPaTNuCgQ7OyHwBKNvH3p6k9NQf9O+hgIqZPHtKlup7Xct369mYEJWXap8a5vdStbAbzFl/3WdC1ljf7Ioh4b/VYqE5t/5fR/+swfX///1GjmB+d/Z9ShFe7XLk22AdB5gOTmDQK4D///tQZAiPEjk+TgBcodAOwPndAAUHCR0tOALuh4A2g+g8AAgc0lTKxbwtyhpYAA4D5ohNS5R0HPJHCiBFKWUKqv0RcD//OkUXb+q48//k2j/9av/zM9+c+p/1gADjjgDgAACsKt9jvq/SAieU1WllTgiEGOw/jJQBpsqx1hVyz7vMkODXhpS2Hq6mUaVOovgQRgiHmlkLOt9MWP/9ZCN/8a7f+o6Xv/zr//mv/6kf/zj/qAAAJCQAAuBSHv+/6v0VDE9FQWnYWkAfOaEUwq+ES//7UGQIDxItPc4AuzpwDmAKbwAAAQjc9zgDcmlAMoBqPAAABOvUzsbqStlAGAzjg1tJ/LXOat7xq5JgFYve7xZqaUAZ+/ogIf/jBdv+6hIn/ypf/8e//hz86AAAAFBZCgAAAfoR60/oBJb/3CZUfZgIwqaCqJikDrshuMUlvndaw8hF5mEapJP7aZ1ulW5kEdAtZFOvW9dxy3/+WCRUzf8biH/5D//1pf/nf0/kvzwAABgaAIMAPtYf+761v5BRGakVH3fJJAAxJuIqCGacgGH/+1BkCgQSKD7PyNuKUA9AGp8AAAEJVPk7IW4ngDoAaDwAAASnZpse4fXyr0jtoSDMySV96f1MhoBDhM7frrlQt//Mh32/7j6JD/8hj//nv/1n/0foAAANDQ5RwAAAPsae9h3686QZaQQXqgOVS6TOcoQdOIlFQrXFJfE/t5UOFO+ghAjcgFq1Pw2qZS6TAnAR9JD+9Ypxoj/qx0If+5KERV/8fRUR/+f//Wbfnvw4AAASDAAB8D7jLvv+t31qmZlzBEUGLbd4ABXWc6i80aOk//tQZAkAEj4+UvmairAOYAqPAAABCUz7Q4ZpqyAyACj8AAAEMgN3MNNV24D70linluq+sbA+wR9KyC+h0hVvrQ+qUhsf/jPur/eZDJv/8jir1Vfnf/1lX/+gAAAwMAEGAAAA+tS/o/Rd9UCmE6pAODy9IrMnSUmnwksqNFSFozez2GW6eftZ6r0Qscv/pepKgyhrDsvNmdN11OwkP+vHQhqU7X7VhdP/ycF/Sb/1pK/+TmAAALCQAxwB9S0/T+t4eHUCRAIsl2AYpFea39inkP/7UGQIgLJGP1H7SZMgDqAKXwAAAQlY/UnspiygFIAokAAABsOxBkboGNiCQAE0C6s0VKIbUgjI9pqpJIPoCYs+tFupygMT/6hdV1bdWKDb/1LHO//vb/zM9V5UAAAwMAEGAAAA+pZT6P0xM06gSMCTjkYCkZbl9/GafV0o1GXahkwYR40GmdVJ4pCG0rMgJl3ddSC2WyxfCA6TfvuSgwW/9Q6h4+3XjAP//YW1n7/p//yye/UIAf1I+mqJmXUDNAIeu+AZFzLL1H1grMDsFHj/+1BkCoCSaT5ReZmCsAwACk0AAAEKHPk7pmWrAByAJ5wAAATML9Ed3JXSVLusItlukKIA8afUj7ifn/9x9Ci+jbew+xgP0kuqcD4ip+rzIZN0dJ9VSLKv/5Rd9YAAAAEGAAAA/V+j9G29YBQIVbsIDEd7baiU6QAanwiuUbGg3VAt/lBcw+lywl77GJLXw3SUx9JbS6AkEfrbdxZCNpIre+6OD2HDXb9FYYzX6/xyev9Kjb/ys59f6giAD9bvq/TVmpm2BEUCrHbAESH7qTt7//tQZAeAkmw+0fspgygKoAoaAAABCVz9SeelrKAagCdcAAAEd6+zuA6BsccGYoIEaBtaOkInWnA1CcrbWgpbyUE3pbKU99IjhR3/+JWWn/10hkSX6r1Wxce69q90F+386ekAAACHAAAA/X+v9U3eVAIzAlZLaACsPJxYaR142UqtOjjiCbA8AmxsnEq5JrDZsAx+yOqtbLCpdaD9Vh/Dif/4RNXQ/MggDLVf+LRPX/0K/sytZZKWaAigD+/6v1qSRkFII9UAIJEU9Nlq46Sj0v/7UGQIgJJUN85hmorACqAKKgAAAQnU+TAD7keAIwBntAAABMCZn6ChL7Snt2LXJ6zq7UdUzDDDKkM0mWpBzFYxgVp5TfbYa5Elq3+yxLSvdX6TLHee+r8e3//PfoAAAMUAAAD9X6/0hOb6pX5L3cAoCbNZhHOnA97+c7OTcby1miuaa+suvempkTiKzhKhPgEmUnQNE6bIvPB/0PU+utxchWX1t11CoNb76BKkLq/2W3/5fq/+QHAAgA/Dj/s+ujT6dWlmnpKoUZ13FQCgOUX/+1BkCA+x8DDOADuZ4A8A+e8AAgcJJS02AW5ngB0Dp5AACBx7eGX3PqRMKBABRInU2evdkWMQ8gPWktBv1xqm7f+siV/+5QN//yVP/t+s5/+XAAAIAAAAuAAAKQ/9v7vqAT+gO5TRlyi1J6L2EPq9orbu9u27tindBAedIDp4xqylsmXkkC2AigI1IrXSrW2wnhL/50eP/uM4Vv/yY//m3/5Tb/6m//M/ygwArEGvp/JVAgv6kO0vdwEgp5XqDpdXkDyyxXossrFO+gXSzCy9//tQZA8PEmNLTYC7UnAOYBpfAAABCcT3NgNxScA5A+e8ABQcd0Zh673WNu735QQHTxbw65jNPzwzb/5gfHr/pEUW/6UFkz/5R//yT3/p//IX/WAAAAFBiCAAAAfnn+LfrR2P/moiYKU7JA4YL0gABjR4hK+3s6XleUNLMAAkit6eUtpqveby3jXsBcQDwct4dNStDLBKX7fGAfOf7+gZnv/3OEO7f+Ln//Jv/4Z/PAAADhAQAPApC7PY76/1qghL/PUrBoZYcBAebFm5kYCqxf/7UGQJABJqS02A3JpQDsAKfwAAAQkQ+z0jbklAMAApfAAABALfzws5fXqRsGDIxATk6YtKXNa0ZqfRGaB9D6G7KbpC0v/6ywTNPdXrkyS//3IYr/6Rb//Mf///84/6wAADAsAUYAAAD61I+L/pz5BRGakGb/rHlQNn3UTDOWTRJ7X5F5yUU9jPCpTuAq81QffivuqgtPMx/B8V79escg2b++kN97f1ywNtv/kXPW/8w//Wf/X+kAAAsAACEAH0p/T+mneHYgI0Ah2TWAAiDdr/+1BkBoDyKDdR+TqaoA5gCp8AAAEJaPtBrTJsgAWAKQAAAASbj7gqcA9RwwvhWyA5jPKzL9mTSbFCg/5WRt/TLgeFv+qOodn/XWOBdv/G0//x/b63+Z/ibd0/nQAADA0AQcAAAD6lq+j9N2zQCYBibkAjvNW+blURrRqMuUsKbu+LWRcp9th26qGkIrgAeKkV93usRIQqhSPKWlziRuNj/6iFNPq6KKIyjf/I0dm9v5in/9ZMv+p5mXQCNQIzl+AAATutOMLzw3JCcCjczISx//tQZAyAslg+0fmaiqAOoApvAAABCnj9P6ZpqUAXACj4AAAEIO7lPSUnbM+0vlA2BGz2lre2kJm+daaMipSiiQn/1i0ut319LFf//QFFV/6Szav/yMcAAAwMAFGAAAA+tRf6P0T7xgqAGqu1ABjS5jcSkokiLDTDVpGc0B1JtZ7H70W+Qxrt3Iakz3Oqe8+tShVCAWqtk2UpzkdgiP/pDYGZB6SKXRwqD//ODB/dv3vv1ah+KH0J/QEgB/rT9NWIiWUCRAIkTjAWrI7vb+dSvf/7UGQIgPIvPtH7KYsoDiAKTwAAAQn4/UnsPU1gDAAoQAAABAblDhwAYeSEAJoF2zBvB+tQFkC+Z7VVPzUOye2tp1OPgVTdX6heH/+rHGe/+slPZ/1//0i0AAAAFgBigAAAfrKfR+mpm5YDVQTldsAmamt93KnRcOGoy5UpBMyJKOi+GvXqwVeLuECdj/61jE/riq6Bzxv+/dw8A6n/VAeGn/WVACje/35oLJyvdFTVJlq/6jm7q/V+Wbt+wEwAq5YAFLFW2suiOB2Tg4ssxnX/+1BkCwCSmD9O6ZpqwArgCioAAAEJ6PtJ56WsoBqAJ1wAAAQvHGKfCljdi5T3sYhDJg0GH6apBBFeTwSY3VXfa5sNQjal3shpYdg8W1euZAwF5HV/iTOrX+tbX/9RRbVqAAAMcAAAD9X6/ysXdzIIqgzrbYAMVzY4cWNDVyrenUSWMMQHuHG6VXbISBXEZsBGtrXWYp9EPLadbs600h3A/vf/ibAytegrUqwwRA737Ykrob3r2Uvfr+cPBEAH931fpXiJhQRlAiVyMBgtHnj///tQZAcAkhYxUfsJaygL4OnMAAcJCbjfPay1VEAkACe0AAAEcbcOxGagmPDnH+GVrTUQLinNSNQA8VurRVsmF/fq/Yng/d/r0hWob/rDuj9f41RnzmjU36QAAKAAYAAKB536/0XbaAuAJVuMB3L9HyzvU3QS+WOO5Bn2D3jzzlu1O9pr+7FPIjLhy1ZS91HTAIkDoX2d+vYMwPOtS52jOoD4a7PP60Asen/IBC7/7qW08iOARwB+s19X4qoAifKLB6IsyGAiZbjJgAFs+m5Rq//7UGQKAJJpPsyAvGpwC6K5swBHUQoJLz2NSPRAG4AopAAABHLJutjy0iYYmNzsyrVJ+G6udvCszgeLl7LSS6DtWgFGbN1/piSm6Dv+q4X9X/yIZq/+db/6z+z/y49AAAEJ//X/88G/qkcaBRCXXRhS4f+t1pmWy57WbANyRTmg0dJUu6xs4V30C4M0CWKfkn2UyKQW0B41U6rU0A0PaqN6nKAou3/YDwm/+gGF//mDH/6lv///8h+QAMwP0/lv0wv5yLUdMRAYyLDgMSGXxSn/+1BkCA8SGT3OAFyaUA3gCn8AAAEIlPc6AvJngDiDp/wADBzt8t28u3ImIASGRdSUhn12RnWlALEgqE+hqq9hlv/487/1yGn//qL6v/nG//M3fEP5D8+AAAAGABjgAAAfrR9H6QVPtappS8QwCzKsXMAAF9qutd/KxbpHbCgiMXhiS5dSRSWgpZwugPiDkmy6atXSHC3/zhIq/9ZGJf/TKz//U3/5h+z80AAASABIhcCXCfUS/Z+9AXP5QQkBlzilvj9pQMplWwuc1d7j3Vd9//tQZAwAEl9LTYB7UnAOQBpfAAABCdz3OwRuaUAygGm8AAAEBCUHSCyQMWna28t2e55TY4ZuTc36HTqNUC5/v6i4TTGf/i0Of+6heM3/xz/8n//v/+V/KgAAGBQAIgAAAH3vf9/1RUgofwQ39SjjZlDWwoBHN5QKaGDw5T0/26n0kvcAEiZiBu+0pyZJn2dwaRDQ1NU7LU9ahzT//rLBF3Z6l+pQ1yq/1fIG//6P/5i/6vyf7AAADQsAQYAfONd9n1IL9hrTUAsKIA6IcuDAi//7UGQHABIqPs2APJngEEDqDwACBwg4+0mE5algMoBo/AAABCKI1Me0lulp5Q4ZaE02HFvy3A87MkeUsyBpEHWTUhfr1imK//HE7f6mHyaf/mpX//S//Wf/L/oAAAICAkA+AAAKwS/Uj8h+3f/QF0R9MgYuGeSZxUMy51YeOJwmehNHhzVfPO/V02QSgnf5qurUH0qXvt1SSIH/45Uv/mI2N/84Q//zv/6zD9f6gAACwgAEYAfeff9/1amadQJVBC238B37WWOGcsi9FKYgyNv/+1BkCwASQT7Se0lrIA6gCm8AAAEJwP1H7KYsoDQAKLwAAASBj4yBgJoEb6eupTaAvgAX+rqbk0UG3e3VH8RH/1CDHl+/1DHf/6Yi6Cl7fRN//rH99IAABgWAKMAAAB9Syn0fpiYhkAjUAY2owFQudNVrGNaGYtDUZa06Jk9jToFO6cjDR5Ry5iBcG121oVMsfAhVS1I0E7UpZG9/9hyyRU7vbtUNT/86UPbv2d//nj9fpAAAKCQAxwB9akfT+JmW2IAoAQpNgLMl93W9V7EE//tQZAgA8mc/TutsoyAN4ApPAAABCYD5R+flSyAFgCiAAAAE1JW0hNMzSTBSeFB+saPuuS3ek6FNxaZ0UdZqipReChM+1OrQSVLgwP/rErN1dXvWK+3/2HC3/72/8sH/0AAAABQAYoAAAH6k/R+iZmpYCVAAjbjIGKpKXnsnT+ThOU8QWAgBIPJQLa5clWEzQb+7QDRPd/oqtoI4eLnV1o4kAl/9wuQ/9fWgFR//oH7ts9G5p//4uPf/o/WqqZmXBGUEHJYwHYdXPtvPCVsbhv/7UGQJgJJiPlH7KWsoDEAKPQAAAQls+Tmn5asAGgAnWAAABOCF5xAC0KwAbQLokzpKQ62gOgDSPPd7KT6AWLdf1JEQWv/1DEFf6+qoJ8QKqqrdxKHdv9boX/85+sAAAACjAAAAfr/K/pttjASABiTZBSITGva8Krw6mU6msmrqN0vNZt3JzscuU+UrjRiU19ZutSCLrzIBJn2/bciCZqZB1VW4fBu/+sQ6P/483//b/84//9YTA/U/6v0Vq6q4BVQCtZbABZrQKkbq6zpU+mX/+1BkCgmykD9R+wlrKAqgChoAAAEI3PtJp5muYBKEJyABBUZPStihIOx8FE0jkE8Fq2BqAQkt9JTUp0NhGtbpsqtaQ7gX99f4NA3J9/XWJiN7aPa2JQk3q9J11dVLzI/v6wAADHAAAA/V+v9Yl4a1gDqsqi+KSyIa0NJeI4hIWaAc6UeKWOXQ82AY/VqVZBZUFtQ1daaK2GOHp939VQQBstV2/UEwNt/9Yt9av1Vof1fP/psCGGf1KomZhQNWAhVtoBlL3w72lysxqQujEmYv//tQZAuAkoI30PspkygKoAoqAAABCd0vQaZlqyAfAGeMAAAEEYXTOgqUmnp9I29sYKgBHMpaLVKa8mwzZ/bs+w+xhVVoI+zCbi07NV6pmJ32vq7Fk0TV26rGbLo6gAADFAAAA/X+v9G/+gNgAMSKIBJ+ubeBk+LSkXvwcLBRY99jOZwl2cg7fmGtjLev6n1V0AH8FKP1/1xZjcy/7qOhXnnv+gyIjCf/0ReV/6yf/+svf///5h+kPAfhv9n1fqqikVAZVQIj92p6029BCAgW/P/7UGQIgBIsPk9IW5HgDsAabwAAAQjU9zYBbUnAN4Pn/AAIHBwG7EblF7uH8zlDphYANBFHvvdvVT1gnp6vbvrHAW/+qsmKv9VQ8//WQ89/+r/9Z7935/6wAADAwMMUAAAD7WN9jvqYT5TCQGNNJCoQd58GUgDEZdzuGdvn70SmBvQsmrD1fLHV7mGfINIC1COx3509PCPp/lAssn+kF8l/+o8//Izf/yH8R/mf3AAAEhAAAPApDz33/V+iBS+imFqKFpIHnoBFCKfiluvUt3L/+1BkCg8SQUtOALtScA5A6e0AAgkJ1Pc0AfFJwDQAKjwAAAS9iVtIAoWboHupdw3rur2W6kvSJJiOx3jI+2gKG/9RcKDf+sVX/9UFBv/yr//lP/7//lP1gAADDgLgAACJNetP6P3jCC8nRg0fXgFw+aa0JjMHqkduMVO8r8+pdJSCaJH5fp3cquH5d/O3WFA8PDKz3iIhpiLPApv/6iUNVObX6g4d/3oF+7f+Qp/+R92n8OfsAAANDQBBwB9ai/0fkoqRURlZAKXaU0zGZU6I//tQZAcAEgM3T8i7ieAPgBqPAAABB/zDOADuSUA2g6e8AIkEyBGZaAKEnJlWP3svwzpH3QSGWjkr1x0fVhOCZV3/yof/+cIm//uRxU//Jj/+e/Df7v3AAAGhwco4AAAH2NPecO/WH5GQp2FKIHckJWrKveSX5UHa2VivEBCCBoKuG/RH0aK0qaIJ4CjpKT+1SxnjT/6yUWr/uWCW/+opGn5/9/1fpAAAIBgAAuBUY19P7f21m2iBUBEbbjA61P+kZg0WkrdEPzKqEHCbsRuk1f/7UGQOADJfPlBpO4JQEeK5nQDqSwnI+0vspaygK4ApeAAABDy2/enOdWWZGCz3OVdew6gdn1WdLeccvjY/67C7T+r3KRB3/+cGw3/0X/+suO//JAACigAcAAACqASZf/kP/yENGuqqGAlYEZZZEH+f/U5ytKX2h1rr/MNfYxKh4oGWsxCaRmbsueAND6K6kVaieFWXpve9TEUUHv/qDkGzKXr+sK5v/WMwwrd/6j//5u3/6wAADAoAX6lp+X/QeIiVAjYEJLNgF0zmf2M6lPP/+1BkCICyRT5R+zFUMA4gCk8AAAEKBP05pu2lwBcAKLgAAATv/KGVugZ+wsQ79JnbvXLSZTpF4CbPVU7rW+iKI2lU6MMQ5/7oA8LDs+Z+GP/5wdfX/R//xJP/QAAAAFgCDAAAAfrKfR+lwSIEoAQpNgBSqQfrSmJuVDLKkQTJ6MFPLBorWs2Z3OGs+zcQGny/e66WgbLnQwATVBc0dB1qUcZEVv/xPx0+3RqDol/6jownr/u/X9sxLdASAF+pH02YiIYERAIjUbAFpN2kePsC//tQZAgA8kc/UXmZasgOIAovAAABCWz9R+wlrKAMACgAAAAEp4lgIfcxMRYNiEbjFmP3vhOG5RQjx17f6lqS5kDW/0aLKlQrf9eI8x/+wWs8/vfqE9r/+n/+ot/QAAAAFgBigAAAfqL/R+iruqgDVARllsAVsmpZ2L01WVKOt3cpQGVAyhEoGX4mzar4QLnAESf66KLaRWFo9G3uRA8/t8Ikj+v13CokP9vUJN1WX6CaFv/UU/1fr/LKu2rCLAKqcYCdFJYs5dvT0Iq0Dc18GP/7UGQLAJKHPs5rTRVQCuAKCgAAAQpo/UPsJkygGAAnDAAABH6FxGt0kvm6bOUSaMZxiWmDTUnc6lMfZeNABVQXup6tIXAvaSzj924hRFt6vnAoDbr/xPXvWlezf/qOAAAY4AAAH6/1/loqaqAJFAix6MBAx5ZdKbuM1EU6nWhKzryZ5WgOsaXeycEfUXLwNJXs9zN/E/Ps6W1bkODxv/8aombdfqmAhYVF2TpKvZNQYuSXstf1p19d/Om36hAB/f9X6LmJlgRWAiySMBJGBZ//+1BkBoCSJDDR+wlrKAqgChoAAAEJwPlH7EVSoBmAZ0wAAATescqWmhqIvFHRH2GREdphRZ5qolDUARNBute6AWDb+taLDHEU+/+ailSof1h3R/+odrme38l+gAAAxQAAAP1fr/TEzUwBswJOuSAMLrU3cdTcEWL0DrUl4AKUHey/hMWalSWYYUJPgRr3d9NK6YiAoFBJSd+wVwi6s+ugGBtrt+AU2t054bv/pcZrR/auRtWIAPw5+z662HqCcBEsljAUH9foksEzUGqdGGuN//tQZAqAkkg+0OjaalAN4ApfAAABCjT7NyLuZcAkgCf4AAAEwktSvnha1S8pH3ZQFyFfu1e61LFwF9LZd+thBRbf+miN55v93Jg7W/+Txu/+ox//Wc//lwAADAAAQYAAAD6l/r/RVSCgEsoAEuuqs/D0ZZ0XdOxYwhxX9S59rY3LWEbYAWzOMDVWz27UEjR5gBAgKuvtqXsKQNtSnbrxbEWb97i0Ek//qIAbf+o6Vv/zM9+j8SfhkHCAMD8oj1p/RQEJ6pandwGgJ1XODn9WCP/7UGQHjxJKS02Au1JwDkAaXwAAAQkM9zYC8UnAM4BqPAAABH5ZSZzlHzmcYEaCZmSrqjMax1hh/c6GJCAuUuq9+jsfzwJ2/+LhQ1v+FEZ/8oR//s//49//R//yrvpAAAACgBBAAAAP2P9TvrDPsYojHmqlQMDt+BAIbnHKe3Y7q5nKGVl0RKjLjkOGHfyt483HBCKB4EZ66cjtZLBg32+Iw0T/0Cj/+bE9f/oX//It/T+G/zgAABgaGmMAPsaz2O+tABLZbKGAoZa0CAWa7ir/+1BkBw8SVD3NgHxScA8gCm8AAAEIUS82AW5pQDAAKTwAAAQCPq1orfxtWe8z1KxAMjFhCU1jUZrZ97l/L9hOYmFF/Dsy7os4GX/+MiM5mp/ECN//miI//Qd//K//yP7QAADAsAUYAAAD5VSPif9IzeqA2n3ULjnvO4ZZqgdeKYX6TlPhK3AGgM4IxbTO8+ggpSTC7BeiT7desYx//pDfs2/rmA9//kXb/9X/63//X//PgAAFgAAQgA+lP6f0qtbogUwQo3Iwo37uqHRmMx5s//tQZAiAMkg+UGjbgeAOYAqPAAABCWD5Sey9TOAtgCk4AAAEaHQxeyLuQHMV5XVn+3LeETTdDHN7ucZXXrNQYMv9qlkOHj/6xmEP/pDD/+sfJul/87/+s2/I/hsAAA0NAEHAAAA+pavo/TEzTIBIwIOSSENd5jf+rAToy6NRlynZNW8eVR0Xf80JWR8M6cAEFfn5moVAIU036IJYfP/5gDbI9p3ZSoVjfp8MRt9H+xf/6jn/8iAAAYEgCfKqR8v+ToLYgWgjKoXMP/nPw53OIf/7UGQHgAHBMNLlZaAIDyAKT6AAAQmsoUsZhoAAU4AoewAAACg0Jy6bjy/t3N06yQSAvzzu7fyoL+n/86UEP/l03/+okU//nSg75H8OAAAFBAWowAAAH1qR6yn6GKCFGFJJJJZVrWv9l7C4jEf8E0Fh0UNf4lIlaR3CsDlF09MuPM6Tikv+bGjl03/9BIwN0U//2LwJgN36QiA0hH/gNJwBpOf/AaTg1LBsgDyASDgDAAAAAAAAAA7CApaBZrF6TEFNRTMuOTkuNaqqqqqqqqr/+xBkCI/wAABpBwAACAAADSDgAAEAAAGkAAAAIAAANIAAAASqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqg==\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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i0x0OKi5b80tFU7wbEp/+RK/+CKVoEi5Tf/xOTyFoEoLrCGPhNMrphgMs8Q1tMCc////XMkqLCYBGA4X3Ep1TD6Nid2dVX////////////9JvdQqxwQAAAAIAA6wRgAGOgxs//uAZAeEdEVJ0Gt5QugfIVoNCMUhEjElP63lLWBchWgABIgU7SZKMGRJJjcuGTKPwcBgruUk9hxqESEvKh7hdslcW67AEo+QYyyQ0LdYcsqdupzBovyqZlHN2bYOpoYH6VopKHwg+RQUdTJw7ZSubodl1ZQi1+1ie/9xP/zX6cBokIGvNH/85YhhOoePOojmuDRRcLSS2F///9/qpJYEAAAAAAAAeaAUBF0DMr04t/////////////9H3ugTCgAAAIAd/yoCIFiBoioVQzAO0xcHSgEBSSEkOszADWre5BYRJlKZ3QfHhKBQxZ2EbWLSVaKN00VSg3MKAXYIg2eqTVohVIkLkxMrAm2RVL7qd+HKhpBsox/oQteAKorYD//oKNSnPwsbNf+xf/0J/WrCXPSJr1DM5KQNpnS4aCPQgg9CITUZ2XJ///6fkou8mulfQ06i4Zt8TJf/////////////um691eMCAAAACiD/+5BkA4R0p0rQa0leWCEBWfoIwiURgTNBreUp4GEB6BARJAw+BljX03DcTzVEDZoTUMQ22oSiID+KarKjOPiIM/pYAlZCWSAFVJqSEpKQSmhVqr1KCml7RFaLNEw+vybvUGOjVPTdaD6VYm1bpyKdN3GUiJ/uchZonavpq9Jb+u0XNulhvs7////Uv/FiH859In4jsaNPHw4uhBISURHuqJNAk2EiTCDFh////fvYEEg6AIAQAAAA/FUSDa47w674q27/////////////3oVWKFwPhgAAAAA+DkFMRkZtZUZCGmDmxik4aqANsQkQpbWfw60h4ymckrWvxQPLq2CEpPDtA4GNy1Mx1n0pm4m1i/Xr0cu50zR1NShzFEtYxzPT/jnaMZ2Ll3MQQo6XRatn/3fJqmekzP////znw+icRiDsv9Ipx6yLFBO3O1alvoLj1FU0Uz8fYY////R2uDVBCDxNRtwtDd5W3/////////////60otYqgFAgAAAAAAQBzHC8x8aaaRjhkAaFEgA8xkwQqMOHh8SRqUVMAZ136Uf/+4BkFIZ0qkxP+29MqB7hWfcA4gkSQTFB7T1yoGMDqBAjCEyKC2ifYIdKfNHYiDJlbLDiRkbqj4F+wxzHesbvd2OflsJtOHdkRqp4cSRkH9ydR3+OOgKGDBSSIjaF4ITf6tZOLFdY+b////5C/2LRjlImvRASZ/wXBxvD4H7/+uMmbs2GLQ7zjP//76snfPuIAAAAAPJ1A0vQYw3fFU/////////////+5TZZbWMNwDAAEB8NXpAqVHlSlH4MyGvRDehupUThVZVYEZyMmdOFQEJBZBDxqQsCRlBsmCdaxG8xk89wtBdtymJqx2RN3F/bPnFV8ZqMh7bzd6Ofp3Z55dwrZkbrG+dstpw/HzPVNcpLliD5Kz3//6Tsg2sZX/Afh0v3vaiQojHu5feYmwjj4oYJBoQR6Wnaf//syanMa0/BAA2Iy5D0XA7br//////////////9KLgF4oQAAAAAIA5mII7aUpoiokwYIf/7kGQJhOSqTE/reUroLeGZdwXnCxHVTUGtsPUgpodlzAecLOmM4ZqAHAJhQOcIAKITp8lDzjtjiUGymCzoA5Mkp5WBXdhjGPXre/botOv32dWdbppzOqgeRe1345KKz+mki8lrfaC882jSuxQU2UEuHSC8mXS8k2c9od//////BzEiv+/9IkGEhIFFYBkSDn/ED+qSxuj0DjvYvwc9Rz/X5U1YLUqgAABxQGs5c7tgiirxKU9ZHrkwnfAtiYZW3RO///0K/ysP0sFWXf/////5PP22cYAAFFAHmHAxCCptDKiVCQw9TMGwTKwNgRISGAE7sKJmHMKG8SJQQiD513wcl6qkofIa0nVhrz8sTriGTF8I04uL8aKdxHREmKZ5BFMC75yBbMwW4ts6X4FC2ptnWs0KrjoktKjAk////KBQI/uHHFB0HwlAoE4IhK9B5/BAqEZpprqkgW/5Qb//7uSNiy+AG2lF14KEoKruTOCfOCqQwzQUEsvuTZ///0amHQ4////////66u0EA+qAgCAAAAABJIPMgPQ6JTm7lGNKg//7gGQKBHRyUtB7TD1IHCDqCgAmAxHBLUHtsTKgaIOoIAMIFMmaYuP41iAUgfEGt9ohlqCOTkqPEyfCBgE81oYGsX1Aa97ky9SMrpQME1cJimx2j2ddsvZ5Ya/MVqzMv2jzHIYX1l2mdk+jWdity/1NcH6GNmGf+p59R4fdX1KiSeJhHLuJAdGX89xEImmsGkIl4vQeb/oSf//U+6FqwCAAAAAAHhksM7DPz6J9X/////////////9vVZAMAAAAEAeNEI8duwbERhC6YmlGJVQKdk+SQjMRGHfdwaaigQjUTJi926EycF1NKKol5nATXbP4LkAPVLoC4RwVo9vfsiuKCI+7EnZrEDCvnrPWJJb1W9LJLu8jBv//x6cUgu3vJnf////r1Z/qNNK7/1SQtBglBtUSB8eP//lXomrRuDY1Tc////va5CkhAOO1wPIJcZ6JxTv/////////////tVra8XrCggAAAAAADkwW//uQZAUE5IpLz+tsXSgogVmDAW8DEZUtQa0tN2CThmYM1Jykj4/w2DGXgZhyMYfzGbASe4IDTjAZjrSzHmdK9tEnxI+evMywI5TRkiG8JckzGo20kbmYoN0/iQmjUo6Io9RLFzqktVT7URNKmxj15mWsry89LHrcpFF7KMN7S6D6Xonf//8kvaRbSJZk6/hBQ8MkT6qJiH6a2MopJxypJI6bbRov////F6TagABwBEQYqBdY9sEPzpFRPI630LgS+5F////7lzCmf//////+7cVahr+OAAAQQH4IX8zE7yQ1Qc0gI1I4XqJRkpwyxNwHiMVQJgUOEoUmFUuJpx8juDgQiHX46v+1yUU0Tnlv1rAzMCeSWpJOUNVLMEjI4/lxqZ2Sh9pkV9JrJGz2lihTXqVck+oJZua1tO////+k74o4QvwzombDDCB4BzJD76yGljRIOlT4OzgoRNf///oks/8A8zDfukJ8GxUnQJx5yODjKlrtH////6iitRApb//////Z6eMqwwIAAAAAIB5mwQwFRYz9TMbIjHGMxnNNQAUf//uQZA2F5LtJz+t5SugkAYm6BYUJESEtQW2hOSCihmZMB5wkjAQANF0zmgDdY8jA5VTL9SmUHkxqJFRRcfKReUtoJppltsrTqjquDPROV34JtYlGlpaYQragTWl7Kz9T/tIlcI4QKWk16pprnSRiCJG1EMI/////////w9iSr/pG7qgRx4UgkhGbJH+UA0OzKwks2UeNBs5///qc0xFUwJAAAAAAHAr1JnYKI+0YehTRjYHxrur//////Xv//////cpeRRxgAExAPEQAqiOqDNTA1MwbFASWngQEJi4w3OCTDFNZ8qLAWTBlidMpDYvoqCj+VJEq2pyA4zfoXcktEz6x2DYvdq4ZjGWMC8EB2ToKUNETx7DlAQsKlQrcImUP9TRLUkECCY1//////7DxPynnsEZ0ofNi9IofRhrTDLy9JwbimsV///7G1qxd/wEhHb2oaCo3I4yQFEImJ4SYne/Tb///+3s75NaWl//////+lcqcExmAgBAAAAAAAAPEp5hza2DbRTpJDonzWCxu2UAQEFI8ipWBGKlJnREqBSgJ//uAZBWEhE1K0HtJPigoQamDAecJENUtQ+3lCeCih+c0oZzcQSw1A7Px0UqzkEq/s3IzTZP4oTLaFmeNFQ37lPtq14PRiZeTCxQ8cUkvnxp1Nq6b2X/Ru+FG48WmoS///+a0qPZAHhIcDA0LjMfGJEa7DwUFqmhOEsRRu////4R3n3gAD0B5OLyG2NWfBN6QFjqIXwD8dLyFCnq////2dEU9m7//////5lovAOAAACEguBkcgBm7mpjRj42YWoGETQOdnzJRw2oYCmRcNFmHl4kTkcnTdR+8n8RAV5hrUbuPRJKsFMRq+wi5Um4VR9rPIgnXIeFZQwgdnwK/AjeLFDCr/ySOMRROMEObxogg0RP4S9E////Ssk3xZLgoFKiRRtYdMnoU2MwigWDgf///7KaQAuQABwLqLMqD40OirFbg+JGPl4rCqKVk7bv/////3f////3/Rtphl9XDAgAAAAAorsXU3hwS5DJg8wL/+5BkCQYUjUtQa3lLWCMBqg0A4gkQhS1BrWVtIJQIJ/hTKIRUMByDKgRPMwMABX2rE2MxRJVfi8BGT2VHY9ukXOTKfSI02MLk7i2Bv+ylk+oCgtztVJaf8aIzgpzBX4sSrov6ackSnvddRiRg3/18qbXMRbM0j/6Ss5kzv//7+A5DJDv3+yFmkgwoUE4kYeHwdYEf6RXRxIQg76Ipf///ulRgsAAgAMUAAAB1JVCp9RZhm3xdQAXT3f////////////0Pz5JXGABAXAWACAWBHfUlbsBYDXkh/g6JYVmdZQ2zIwlRnVYkCEoW5Uxzt9xFSygjUrV3O6dOU/QIlxueEhsx5meMFEFyhK4Gty0OcklaaKupelNLI12cTN2/5ly3b1kx36ii8rV//KRzUOEh3//2vMQfQzGTpoYcKH2oHp/Ht3//9418Xy5VAAAAAAKAB8EqiHobjNavkmjwrAEMfbv////////////TepvJpeMCAACAAEheZoLovLZM0RhoAMGUTE600gF4AAc3wAXBHzJQMiEZWSBzFY014zAUimz/+4BkGIBkaEtQa2w9uB/hafoBIgkSIStBrbG4oH2GJ0wFlCyoKr1poYZVnUgSUYNHZtVpw6UVJZbtzkuHWe2TnnFmdB9semUlndSJovpRJNmUJN1Knp83woLTVIt+VB6BMgAeEA1e/6iUFBqUDZMsg8xz7hqUB42o1d///97h6QCAAAAAAH1H6EDdRJ/EGrxdT//////////////0YnoRxQAAAAADEHw4bAoik4QqIWFgClmDZZl4KwIgKDGimNL7MQQ0c44WBBy6J7jLR3V4dFYX9dQm3p6pDYWSrjC8tmjj9C40pn6L1EDk4DBtSfsLqSy7sy18dVp+nS88gTNU9eL6SZmQAW8soF9/QD4mi//WXWMi8Swm6/7EiUXHVIxb+x5A4O1OZm7///9VDKWtNDgaSC1AqLNNLyUtV8CYyn1f/////6//////+w5NPOIVkJAAAAAAAQibyNEYNQrObeEadGC45rD5PvZ4W//7gGQOBmSSS1B7W1p4IAFaCgBHARGNLUGt5SngcQVnjASIJKOFC0z24ABOYc/pKDBhHDK1jMhbKTiITSjuTafc9IY29lmYSB7L14U1p6b+saQhpPluREVME1RErMGnSRfF6idWVEg7Rz2owUMo1H59aht/6heQ53l9///8Dsrn4YyBo3Uze/2M/UGkelgOGzRHEb///+mwRQbAIAAAAAAeJoSDliQ0qu2Ts/////////////8nVbY9I3jABEHhAQXjaQbATmZAJhqUYtWGkgCZpUJzVoZXLAWOTKzzWh8qA7R7owDGyQUoP+JL4l+TxyC02BpNe80+9ceGFUdTFzIfnqYSvCAibqMsRn/UOtBV09n0s/8mCUPFJfvIGcr/00VlnQP8IZ///R8OVs97TO3CBc5Bh/6SHwytHYjBcxbP///6Vd5gyBxua2wPdqRXMfGxMh////////+3////7taEjSjCggAAAAAATjyD//uQZAUGZEdJ0GtpRbghIVoNBOIJEM0rQa0VOuCWhmZMBaQUajQttGQgpgiEYHqGOASe5ZUDkCzGtmJJqNchS3Ij6vXM0Aq023MiF8K6ltj4Bq7cZNeRTIEtpA+0imiL2MtYmGHztNU7E9an8I+1EOCUga5We/+G2W8QTUz3/8Q/KvGF//80HPilySKi0lCWEYQL9h9hZb6wVBFLv//3/lEqJQUAAAAAAAAd5BlBV3QZw2jYqj0f////////////7HNmruOAEA+00dHOieQ4aYaZ5YamAJ4CsGOqgAjZ46RjJSUVIQjVLqF1Q73DMiXgRGtzKLdvjwRKcelX1efXdhGWq9l1+l+fsZ17kJpOwSH3EyFiw6JEqFJGBiCoar9TxEMHwsCiNQ5xM7fQW/zg1Jb2C8bIyFkkDSv/Xa9sv9Qb3qIDn//9PWlFfAEeG+mFYndFaPC96cz6Jf5uU7ITv///19qf///////0ukywkibDAgAAAAgEPlA8i6jsaWomXjhkCSZPegrNR+BwUJqSvm1Ay0RDEPkgmwSIO6ESD5zw//uAZBiEZHtLT+tvTKgdwVoKAMUFETUtQe29MqCShWdoFhQkwGFYjxEBeOXLkhMxRlgYYo05sqFNWfW84VNIO3qSIjMNsc870Z9ClfCS6R2ojr9NrwlvtC124/9Umh///4b//5oJ3f/ESz7l+PG1xPnMz9LS5Sdk1rEZj///zwt0rYGAAAAAAA/IewQPQMyvTi0l/////////////t/7DsAgAAAAQA485lQOUfCihAAyUhbZMHA1GBgnFCqHW5ghTYO6BAAkRI/1IPO35EAkkFgtjdo2vzwVEoHmA8IItOjtTXiPzqpY1qZNbRNa80/Uv5MZQ8nzj9/iyVzDrVG8v3P0P7/9dn///X3/+7RHPDP0ibf56CCipUX72/4Z0hOmVV2TP///0UNGLzAA4y4l2wPPfAntAYlB+CyVmn///////rQlXd///9W2kq1DAFXiAgAAAABALiAGIANfBkSOYEAGHjpki2EdavAMCAP/+4BkDwZ0WkvQa2k9yB3A6goASQMRxSk/reUroGeFZ9QjCIQVUi1oyA4GgKKxgeUYGfUzYFhfSQaU5u0SXVHg8dWNPE2W9YBpB4hzvE2JDVfi0ctzj79mj/gy6zJBtN7/KJ1LEyppYRtWuo+CpOj38u38346ea84t/GhdRwqFMai5pcthQTkThHFRL///6/KlQgAAAAAAHhpVj30e3r0zy3f////////////+lfeU4wAAA5nAGnsws2E2MREzGyozCcDvprwhNjJUtrUCHXcRSViAoI1jnT9ghGirIzbGDBoSkyf2NX48RB7n1FcqPBkudeWZxUY2INw5Wii3TyWejPVFbumi0obVtB0cFPUJnZsGcPqtf2o7/0Lf//2a1tc11c//4/TaweIDghFf2/0Oe+f9sHf/+7tddPROpZHE1FqgwmV6vibb9H////////////791rkL4oAAAAAIJD4wDioNJgVmmKA5YTh3cP/7gGQLBkRXSlBraT44HmFaCgDiCRCBI0HtJPigjQVnHAScBCgJTgkDA4soip2OMq+4iWA5wYhNGZDt3AsCTNKkBsLl1SId7G2LZxxWS9JaZs0zlkqgIT3kL3yCCIY2KErnpj7Cy//02vJHU062En+ls4/sf7EZun9ggHSBMYQwxu2KxaIBuMikgG5oLm9gXSo1d///d8WoMhiAAAAAAPJPEJeotwjV4qT//////////////t0PcuAYABAHg5EXNdY8IsIxmqdGn9AvAqqKLzZQmIruNQoHjUIIQAQvmYaNKihHB0gViOShIrdRjD5VIBX5fnWnxG27DZsqacK2dd7CCnGiGaEtnj5yHf1dO3CLXZxAfsRhqgllRsuhgkepF//oMGjohLSg7+o61x0iHHVb6EVh////5lBDcwIEADgWgxPEITpG+JZGpDFsnO+6//////Wq16f/////7Vv5NcOCAAAACC0+u982emlF//uQZAcEdG1KUGtmVjggYVoNAEUFEtUtQa2luOBhBWgUA4gUxQSmPHZkbOJaqzwQGHFAqXEGGOqQ8IRODxpilM4YoW7sEgIRDlyeKwKcqP9FO32KybBtbUcmnypbka1wP8oBlqAwwSDbm6BGpIdwF8NMNIDEkwTfq2KQU4RFDZ//gFwD3P/kRNUJoJxcLT1H7qIgkXlHPp+g/cqDQT////WK7GAUAAAAAAAAdBbwAeobq+OxKTv/////////////3tvb7OcAAAAWpxACBQDJAIydpAJEIGMZ0wIBo/CEmNRK2VKYmHtKA2AB0JBxk0WDDBSqvQKHFYtqPoH9ur7X7DdJIu6YVVxerk1L31owNv8hMriqybVI1P5aY+CVIzWopWVYL52H9IVu6i6lT3jHSMSV50U//GkJs6OgXByFpiIoZBqL604un8WZwuNMB2DDTEd4jH///odsVGhRpQQWUQ0ASjYWT//////////////2vx6RgAAAAAAAARXDN0w0ITfMRaF2mVrZjkiDq9PgZETgxJWOXCzAPFc4VQt1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ahqO1hlDTvj04hUhBmfZyX/Dn2aFFqlsf+Oqv80W////88arRH5UTpukS1qImSHBOWat8OaqIELf///70MUuEAcCvQCtCk/bw70LloJsVghp5X/////W673//////7XCgzvIquOAAAAACQA+JfVCnBPAMNQFNMkNKiH5BMCGUg6nfZuR//uAZBAE9D9K0GtLPUgmwanKAWILEf0zQa2lduCEhWcABCgctuQ8ebQkMhzyGnUASr5ekqUI9YlA+3XRtCZ5UaFLDBAngqs6xBkiU0PJMZj0hefNFsodePHqm6pdKZvZFNySSorFvRlbxs3/9SwSgjf6AGhJFZoPHc8JJwZ4XlQAhdHxu///+z6yw9QQAAAAAcCyP/dEekUGyL1nQXicw0hPf////+nzGn/////+hGsiVN8cMAEgkHjQUBAtkRoZyZmRGVIZis2ETKAIMGw0eTiYIaGcBxQ09BCRMrJpMY8Fw/LGYFAtpsSASd0oY1KdgqdypATm2FRaaYCTGU0O994lUyAV1GWzEWfnc4XhceQovaBE7lI+LfqDT/8Gh/////0gShp7//SNehii+RyiyHS97XvOMppRWw4fwx//rxbWRpkU8DD6QOYgSdkHcbSS3r/////93D0U0f/////fNilS7G3igAAAAAAkHmP/+5BkBIRk0lDP63hLyCnB2ZcB5w0TlTNB7eFtYGeD6CgCiCSgskUVMQUBIIBJuCOMxkFQJCIxMIPGsrJEFmj28DKB58dKVH/EIphhhOeYccRFmrIyJ1IblT7ztPCLtR02rRG+8dSbTNWSfh5eJ0ib/6qL9cmvihffWxLxjth2AVY9as1Oof8Nmv///6UY9z1Zr7Pb2GdRBCZc4C7iE9DJoTfCIoJ8LRA93RW///kTv/0bkbeHyAAADgCXP+3GlAnXSntozLXwtswZypbHq++////Vimn///////Yv9S1KgHAQAAJAPBTEYaGqKGKIpjA8Z+fmRH4drsdMCBDiglLlYxoCgLG0EklhPLhQMeK3ZIMYKHYw6GOrzLlrctYxalvNysyGSqcVsoAU2rlqh2svuEUKcxY0c5ZESoEGYZ7hktrZVJEMt/5CZuPHJrf//5KMuR8/80XkEg7WSjUlyRhHcRkmktpMPk60UTUd6pMP+iavw1E//u2hfP2tSEIAB4ySGPBsOMt6ZL/////////////+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omZ+0LrJGzwuXfL57iVJhLKBAx///9z2tFJ8AiKYtXZFwZuV//////////////6aVYFwAAAAAAEACcSX2cy4M6jOwcyhUMPkAU6MxET/+4BkDgSkY0rQ+3hbOCBBqeoAxwESCS9BreEtYHUFZ8xRnJQSboGK0KBmTJYcDtmRnHrQzMHZ0D0CqBM6HJcViv3VgQNtJQI7HgAD+UogaadKjaZi1R+rKTiipYfhDSOt9aaRr/mTCGzwTv5XUL2es+8phjv/5bSpw1r/0US7l9mMnUSMUqZgX/ucS03j8Rv///9dIAAGAAAAfMNqBF8S8eajZXKjFP/////////r////2gRfHAAAAAC6RAhAn1NaFBpNElAyEJK2hFoqkBmw28DGjBIJiWBUaX6icHH98UjRVQULlD7oB9Uiqin+QBD0PzT/5yiy07Hspwq3pQ7CPManQtKqThf6A28ukj3/218gQHCN2f9TbjyndLZEzudE/9kn/TV///pRzNwJH1xWhB9pjgdD//khMmSq8f///5resy4YAB9QPVX6BHC59GyEl3f////////////YppjiKwsq4oAAAAAAQA6EBv/7kGQFDuTESs/reUtYIQD58wBpAxFhKUBt6SngcgVnjAGcBAQKocaCjmJhxghmYfqmZAKgwNCjmwFGpS008bKxqDyBcoYhqDjiMi94kaU55NInS2CCERklJKKe1bh3d2Otnu0kaxW2qF8hyyVNOgkydW8+mUR2NWf/ncfwOEu2hzwstq7dVMBl59Cz0kW/uh4KihSH/9hYUyAzgqaA5wRED0KswOz/f0jNkr///+EfwCJQAAAB6AcEG5ZjOw1eXkrV/////////////VqDQmUUiNyCAOqRH5R0RIjQDBSswqtATWnAWCM3KCAWjmm5iRtrBADDsDIoZDJeMaJTVFhPDQmhpWJtB7Wmq0tblzGIuNS5wjDSJYzTdYR+Rx0sf4xl7JYPFZbfare11kXh5/+jIlfxsqiImjf///6J1HljOhyqhiYIJmkhJCHUPk1CJGW//GP0iDrP///6FqoescDQHQCSUEkyPNQZyNt6P/////7vf//////XxW3jgAAAAAAgLhBVy18GigmyJG1HgKgT1lQgQCDwxHFI4xqOR+a6sv/7gGQTBkSJSdBrW0p4HmEqBwgmFRKVNUGt5S1ghIVnnAKcBAofW7Xi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gGAAAAAAAAABxIUFguMGiBIOGRQ+EP/7kGQLBHSXSdD7aV3IHkD6HQEFBRMtL0GtYY7gWoToYAEANNAYQBcC4KbmCKSFAExGnLQvUVRAWc3dfoCie6hYAIarO2hXnWL2kQHOPQyWrWELyoOOjMDH7ImdBDX9oXHtRFP9f7Vig/dphswc3WtORdD2owa6ufnD9ftqdIjkkzHfXKc/8tbTDI+IeOsbhlFm18mp35aeMgf////iGKOSBAAAAAAAAB9rkJVoC4U9yre7/////////////9Kl4YAAAggDtbVhhYavJr5sDRo4gfUXiKKziNFqp1HmCFFtmrBxdM2WDDNSgulVVSVv4m1LIkIHJ9SVnyF8Nv4IHwoRQ2oaosLiDkAypT2HMQ20jalWyfTO3tMvebzAuQJTlq9CoY/Ctf9ikzLR90zMzM2ouXIom3wkemlO1efr4B5EECGDmTkGlJ7b3bfypfSF07aK/f//9nemgICIoUegt45MZduv//////////////UqcIAAAAAAACABwEBKCwCaMOBBoYYvmMuoGqWriAMOCBU4UPDMa4FEkbIRsIgoZihh4//7gGQYh3VHStB7bH3IIYE6DQjIJRHVNUKN5S1gaoSoUIMJRDDmRYDGOzlsvTKKgyGJmWrSLU3Trym+QKHmFSBWNB1RK03dcjrFdu7Dd//UxQSKprTN+98pVmh1RhtowWmT1adv//53ilHjO/fQ0NZdkiWYTEs5YViAtNJ4uSuej9QhbQUWBlWwKTJhVo9FM6uexQVW7//1aNVClUEAAAAAAAAd3i6CEtSSZwdvQxiluv//////////////vXzQAYsDKVtyMtQxGDFUzFKct2sMIRo00lXUjKZbIhhLARLKHHRRvDKIjeRIEuC7LUoqayqceFzarGKOzY3QR6elVh61WwUVPSg17VjFqVt58faGZnPu0OfiDfCH1prVbwpn/Mf/+xBvqWNCisiqylG61VDH0FGpjhouBERSzEYLOSMLJB4WxJP/ps////3voYIldKwmbkzoRsFtv0/////////////9z+9dgYAAAAAA//uQZAMG5KxNUHtJXbgaoSoXAEIBEaUrQ+2xNmCdiGZMd5ScAAABzeGRUUoqM2CYobliZjiLq0oBkmfM0yNyzwOxbelYVGYCoPoy0zofCsSgCsBnWQ0jErIS7VqaQoQz84NHVTgdFBkQJUIjzaY9DLYgnn4pz0f/ZZEYkQT3whI7qh3VQ9U0//L//h1/5JH1AhfUIX/m/eCG8UDwpJkgRwmdjKWpO3HwQYKFP0T3//6tEflSAAAAADwdAQ1BsVgnnPZ/////////////0/SwQAAgD17KbtgMcKwhYM9NDFEoWokzQQHmyBygqHIE2ShkrQ4i0o2KKhxRF+raRg+SsLjFOjaUA0YiTI606brbxo2alekpBibacIcl2Vof+i/m17bQafQ0l5O9as1pchhAqhJ25o0eyqE/////vqUECkv/+SL2m2Hkg6WBIM0i8eIX/F20NjRZD////2v4AnCKhppSNAL3bkZsRA2gNjR9eYdRd///7Xt2f//////9lQshGnDqxaAgAAACpX0aChcp0vM6qgxYskdEiZl0LLAIHDbk//uAZA8EU/NLVPtLbGgeQToHAOIFE0ErQa3ljSBtBKhoARgMyYkaq203AoI019m3NIOS0dV4YDk64O0wk71VzkqFtGxY9QhEuHHiJcpt8g19U4yyyWlG2v0EIwpHTDubnxGAKOHAJuOLl9/8rUg0yMESZ8ycwsaGudV9Tpma2KA1HTE+4QAAAAB5tRCrqKwA8GPRTrcj/////////////6ZIfxwAQAAAOJDywMgFqUyQLMKTjFYQFSitQNDDgQtOpbZqUeGI8CljAJFh5i4G1zpX3JgPjxWBYqCExamTP2RUcSTORL1bJgtzBWtfwtVnF8Fvhp0ytg+sTqSs0bmZnXJxEmO3pUJ4qsuszLaX+mZmZyAfy27dLh98zMy0SnZgMzcDxwJI4wliQ4NfZgNtJI5EhATtf//u6OhZwIAGQACKqRHZ0M4NnL2/yd3/////////////1R/jgAAAAAgADgAAVK4RpoaDoozodMj/+5BkCodU+krQa2x9yCABGgoARwkSAS9Dzeln4D+E6KgTCJRNSbYZyQkpm5ozMqAhjGAAgKGSU0Bw/NzxhoB2qsGjBckqC9qqpulBPQ2vSeiUbTgJjcsHaSTAV0VSsxv7s6Jd3U/Za2K7LvRUXpZmU+op+ctFXVKdVQ9gmXXf///rZHNSdbNKWf/w4+4bHGjXYFYSeZsQ4uR7y7VRv7gGi6347HVUOnf//+1oouOCAAAAAAAeIqgugC0Q5VyPv////////////70+lpKwYuAYBAzALUEgEyomDgAcQQrNgY1b0EBz6BGoOSc0aTTJEQmBK3DLlGMB5VSUGqzseWRZslgbDdl9Ga7iS8ymfl5J0hHX4lhJtVdp6INal98eVlLZaZyuaS3/yWQLyolmRHJbfPL9f/DmDI1EdZxPN7zEq1RwXuEUqoQw+HDgeeyk29IdxC6CZIJ9qjZ////qxUIy8AccjEqYf4V8an1MT4oq6wAAAAAIAA7YC+5KCGLv5KNGFp5h0yaOAsOKpMY0bsgQbMwqwUFsMc8WmmcwEYeDaun/+4BkGQQ0x0tQa2ll2B4hOgcAxwUSfU1D7eTtYHKFaCABJAxULWblJ0AOEfUtHgOWQU0/LRl5ch1MQB6dkLe0b32wiISJuBbqry/9tSdvLKkpBv899qxMJClkwc39Cbz//+/QpXQ5xSJt6p71YTrbDTd0iplhCXj4ytnKfH6pdTDk8U/qd/7fVhEqQAAAAAdyuwMqo9hblqLO7////////////+nzTgEYgZAgAABAfGiMLgCs5jKMSkIKngcaE1s1gs0byBr3VkM0iAwWh0Rogt6HYwZBeF0lHnaKlTywoBgpq92Pp5bpN7krP45Mxx3Y8IgTIpTKuXYsceKaHrERotktVPOGMIH8dq46NWoNhwj/PCgySMZDho/oWFpoFxGORTRIg01z3i4AwAtQqC8OQmBUbf+mBIY///F7EBkBhE1XddmPY3np261Zr/////////////to3n6q64AAAAAAIB6GzCU9DbEUxwDMHf/7kGQJhYR+StDrekn4HuFaGgCiCxHdL0Nt5S0gywjlTAwkNFjAJAFIysJUQhVM2NkB0URM4eYkQixKZdQxY7DyAK5+UMLUscQRLckUFxqZwxCSDIsmhEyVhSR6zEGWNVkhtpT+5dO9J6MZ7dX30i3Ln9XHB6kDH9tZ///xBmtrBznBQ+5t+x9nrk9yCEHns/EG2yQBGkJ26B95z8Ff//+gAAMAAAAB5qhbUXAr0Z3E2a/////////////+lie0fxgwIuIyWLmigBj4OYMZGBygKQBCBhgiNfCaiDZhVGCgeJEsoQRRPyCEaO4SAq182xmmuoI0+a0ynhhUpNYPgwYsS7xoyQvXhX9oJSkj/uPJUrjS/9qsqfw9G2JHDB0jEUB9D+mt///6W8RRDesFjPTRdMGZ8DK1CAHkbIp2eNP/J4JEaLqgk0N5////fQFQOAAAqBkuEFlgLV60lRLxlAVM2nGqQPPgG/OO9V6KNZRv7v//////////++hzBKKLHMrqgJAAAAACAQABzhCy9j8nQBGqDhoUz5ApiEwIRqAKnf/7gGQPhRSySdB7W0rYHME6AwBnCRE1LUPN6SfgdwSoIAEkDOhcxp0IDlKdIBMidIIcUKjmpGm6lnLJxFKX1xEIrfhhcyaslhkhkwAcOE/Ht41gbLHML/0c33HOmi9pz5tT+9qumv+FHyMnnaeUYa/tDv85/zC8h8hZG96Uumhy9a1IEIrh6GiYeQkKL+0IzJFHiI4Y////uUeFmAAAB8X0YX1LCM2heuQ1OT/////////////+0eiCYDAAQEQgoBVuNnRTFQoxIvMJgxJlSKMOBBfZqaxDm0g5o3zalIRnTwlUvG56DVX1ZIjRuLLoTzooKT7xo0RFBgW3R22JGIqjuR/rv9t57j+hRexKjwlqDPVl7WhvJJ7pbd///6Zo4qoqYAcugF/6M//9l/kpMuLQLsYPoVchCGfzSvKZ///3/2BCAMCEoMGs476Qten2XYeu/////////////+OYMdXngAAAAAgADhzGYCCJ//uQZAaEdKJL0Gt4W7ggQToNBEcBEp0tQa29cSBohGggApwcumOKgcMGDqoEtQMVpYiIpMMImakoGDctG2aHBYMmXwd4LaprbsFY8KFa8iiRUtJK0TDhUN0nmsURmjYP8NG8hbQk5ycPrFzKIX2n/vp1zRmbUYX5XTa+kjQl7nl3/9GTUSa2zQqd+pH/Bg7egShAC4dhJGO0EzgQZgSfsdh6XuIl//+z+LnKYCAAAAAAAAOsPQLJQ9IHal6/X////////////+937HmOeCAAAgBzMQhF1QwxRXMOGDQQsyIjEstihgAUcYDoisSNeTiZGWKKGQ0StsxYAjP8bAT9NEy1QQIDwokm2VZKTPFE0Ua1Be5U43hL5/RQJKDqJS3Z73vyYaZWVHTpOMuTWv9jza1DRE7/+YD7/5qW1+oNMIM4JRGtUdZuA0kOSBIWQSB94ckTrgrtxCGp53///dkULSEBGUhk4fUR2lXqo7/////////////q79FBheOAAAAAAUAOVlm5PGa1AYUmY+cYrkGgmnDKIzq2D0vDg/gyIysq//uAZBMEdGBLUOtJXZglYRoNAGkDEU0rQ+3hLuBmg6ggAZwErgcvetvgAW1gm4rXQS5WGpAI6PfK3DqMM7TA9A4WFqaE5o8DsCPjm/zNy1Er95yyY1TJjZlqBTX8f3/WCQVvv/9I9/5UWf6TsuW3AltlU2LHioUzFZUaHXwaHPRSVhAvNP////NsAgAAAAAAAA8E9LnumpnEL+mcXJaqf////////////qW6HlOQeTAMAAACCAOZMEjQXLDQgMw4JCiMIZYBDlKCQE3MATyQZMXqy4sqKgkTN8MuMZa5dIBNtT06fe4+FAkQ8XoXrUlxC02QO8Qo+1R/nKh/HmnVFT9UmdS+M+c2vUv/6PflHT5G07Fv5t5/c//+sZnOe/2hZ8wUhX5M1QqP9NVG3tIhb/kcTKqA5////6ghIKqFXsJOFHosX2f///////////+r6FXyascAAAAAAAAO0BTF5j5gwdfNESNDEE6C5RH/+4BkDIR0jUtQa1hLuBxhKhoAYgESCStD7W1rYGoE6HgTCGQtN84ZKoyeg8RXlPL3GyS5aM0Og+VEJqSJTDIIzJBEwWN24pzYym8HAseVE512oAl1QaV9lEaW0uv/OXqWl9c3f/////lo51YrEcfZci+fgpvueKshRsII5//9Ngh/5IaAACInRg/IwInpA+z/TMyckG8///+5WWDYQgAAAAADwTUGPQ+L41q+3/////////////+2F4BwAAACADxZ+CgzcTbFAxQYiWZHOEfW+EAA+AFqyhhlckEEkjHRkSWmtvwYKH9zLAIp7DSxa1gVCGaU9KoVhRNYUjwQJsThGSkWPdaFpSskoZwoc+W6iq9FKjzZjP/+GVJifrJh6/NU7+HX5RSBokVAmm5t/+SCHvy4ukwGyx+yCPDUgeP8IGxOSRNP///7OpQoABY3kxfdf4ldBqvX/////////////0/aTuaAAAAACQAOZP/7kGQEhCTMS1Dra03YICEaBwBJAxKVLUPtJZdguYjmaBYUNCBJKraMnRRGCDJuIqEGgKwwjGjRx9nSCEymZBw66xIWhA1DjaGGBV2WJ3K0RSgUlK8UVxoBnoNdz50gThDlRmi5GpIhPW6rymzpHgqH/l96g7l9zVBAkEt//qJ8h5SfZJX/SPf/8OodxbEhpmVaaPaEQm/QBh4HAQDQEDgnNkoKDRCIh2w2hdZkJu///93XIPAMAAAAPCUGMyyTOQS6RkvJ9/////////////+5d9wbbIyAAAESAObwUrYo+DZACEmz3mSoi5tfgyLPOGafFzoEyiM/BVThDB4ISBkdLYbErRPzSvKKJkg16asgShkM8WEAqAQ+iSOdMaJGabveVBGMFokp9Nz/UMGPBSVx///6yLQ+XQNDyzX/////92HARjISlbI3UdOpmdtp8vRpAPCQXhqYOYvWrYrIY6m8UnSG7////2OgAAD0CPAQZgAUNtSAZchEIi+QD9YE1f4loP////7Vevpcbt/////+vpFBUsHgFeOAAAAAAEAOBv/7kGQEhXUNStBra324H0E6DQRnBxLNL0PNpZdgZ4ToIFMJRFFa7IDJi0FFhkZMY8yC1cmaFCE2IgQdKgAYrkA4MeMYDxaMa1CQUUbzh9FjJ91l/QqwlAPSs+Yjaiy5gdgOhqQweSuz4ccWlQ+L9mhPp5wncrL8Dvu3oI/////v4KaHRWHH/8CJv+9//naKL+h20S5sOttqh1mHfRgkpIQqhbFchCEyy1c4/v+1m7BquW6EFnf//TtZDB2wlAwAAAAAAAB326HI4TwquXpp7v///////////+r9wxUCwAACAABQcjZqo4YmFjiQMUhf5vxQSNeH2UJ+mivIYcuEnILRrIqMiLpNebmnDO4rGr0A4GPdGZcmfGbp0FjZU+R851S4tzIlf6IxIRxVFKu9Q/+U/OoGv/////0w7ROD8BCTt7ziv/TJv/+cSMjKJqAx/Mycm5XgOdQU4MUhuU2T1cPxLjpSUvoTRvVImd/B///TxQUAI4rULuoNYEXj0euj////////////9ct0x6rjAAAAAAFADoVIBqUnQgZiYJ4Z3v/7kGQKBHTyVNBrTF2YH6E6DQBFCRMlUUHtnXkgboSoFAEcFEB0CTQFLHxIp1I3ngxj09ko4gDMLwM3FlO6zC1CfwTYtcCoJGiXtjXFG5UkOESgnkpomzYVqcUGzvJm0wyo3ML3XwQdZSdhn///tqTW6SJZK9I2r0Tv3wG4/k0XuzAaeDlQbjubJwsD8H5o1jSKB4PA1USjxgNOilEsHY6aY/////IFfb/72PCU8wCAAAAAAAADxblCj1EYG1H0+v/////////////3t3gs4QAAAAAAOBgomDYeNFFQFNGoIJj6aLZsOipGa6ZKbkAIK6Cd0Mkh4kTXe8OMpL1D9zK0lR/gabC4OnzFlHXEj96Zr3c43S0NG4wB4yRCpI2tDSoqJj+e9CTxk0oLRZ//Ug00j/9sHgigMA4xReMxASfKSawHLDYHSYgZGgcGJHJ1Jm5sencdVBJHSuZZ9f////SPUf+mg9NIIiKBB6C3CqSr3K7P///////////+rSu06pJYneeAAAAAAmAOAjBHxfJnSABiQKLYhtTEAdeoMHn4NP/7kGQPBFUSTVBrennoJoI6DQBFARDRLUftJRbgZYPobBCYDL9UNO7hFqK6yFgBrbosmM4Dl2ZUAvZm+DPuWwsND3KyBYN6kWIUKCtJt8mk/pUq6NlUvPikBscndnn9Z/SlPbwI2b7//kLTDBElIQVI/Sj3/2xDJqZ//xjNXtHx7TdkNbMjNv/4PaOc50XUp0zHswt0hKVOwf/w0dKciId/wd////clQ8AhgAC0AAADwOgVQoPhw+Kb6aFwGHUH/////////////45zmliIhgYAAACZIXNEHT3aMMrzEHDKtzBTwyu+xAQNIXZYyM11UWLziCIopPXFgMSkHqz0W9sRkN9NBa158IdltgTa+L90TY8sa16bPSlBmpJHfSR/lEc9SCivE5J///nrNHXcJXAjioi//h2VyW9rDhvr/5mxMdwlBgktrB0bV9B5QVGUd+UOf//6KCAIPKQErvWcGi5H3f////////////+7RJJygAAAAAAAQAHMTD7q+TNVwQCZn5cY8SDWVAANCDiRdb5ABGGaSApu6s5NZNJkxhgrYv/7gGQZBXUGU1B7aW3YIKE6HQUiJxINL0PN6WfgbASoEBEkDKkILP7pE2YbggdGHUutiGg+7KQ/JCu6bh07IHEWHxM442QylZBmncafwWUUPrOanatz//8GRRvuJpJexHVoWv//YVMhI6QBTfTnf9NNzoXcK4gjMF4HemmSI9nl4pICaVD2IxweDp2/+Tj3//leMwYAAAAAAAA6wzRu9sZxueIlrNdH////////////3fQpEk4AACBHUARFfBsxyYUBgFWAksCh5gpUOmdRMrY6dkiLWX+KpsDUn5eww5SxdSdc+ahhdnMWDFAS08avqGfEaR3jtWRJRdMC4tyeOhc9rn4LTVE9ydX6TNjDhiBoc0P8wQlT1TWlC9C////jVOk+vJa3+Q5qex5LXFaKy5O/8krktmoUnCYTVS4qd8Nf/+csvgAQWKqM58Q5SBrpZO//////////////5zfPKoFwEAAAAAIEAdBgoCH///uQZAcEZGpK0PtpPagsIfmXHecnEoUrQe21mSBlA6h0AJQENbADNQUxhEMLhAhoZ+W5N4AlcIIzLpsFCbkDpWpROPKYEH0krUdYv9dntNJSqEsRpnFV5LbQrsmMjCiQkeYERjaVRfoaaCupq/yF+jm5xqClTE+gRDWeVG1BsNn//U881qjVvQbHMJgRAiJDIQFjdAa47sKxgUiWQC7v///XxUgAAA+AmoStKFV2qXutSBJqICauI2jUShSX////V27GxVRTub/////8rtZijDIAAAAgA5Ec9XybMJBjKaEVg47JsRJohJjBCt9EGjOLAMJm1IB0MZICaAYKQcpmsoxxSMI5ZdCwKRBenSHgWGak5Twzk7kXtQeyKZGc6LbUcNj/JCzFvycbF41U5gSKCBupTDuDiHuB4aDGZuyb/7MdIBv/zNFlKDoFBJD2EqGA09MzlvhI24lL7R00////r2JiohAgAAA8dUDamwmdI2+z//////////////auo4IAAAAAQA7g2ICMxJTIxgyBdMDowUytKDgYbIk8kLDZzYWW//uAZBIEZKVK0GtpbbgcoToaBMUhEZEtQ62ldqB6hWecAZwEG+RVFqFmUtCxL9a0VgfJEly9tAOACF3yRdcupCA6GxCwvRJzYyY2iTOWUccojaLnceTf/+NKSMc4ZonbxPDc1JRNySEoxOC4afrdjokpb/4nZLFET9AkhAC+dDUPcYhvMy++ePNJ5CQJIof///sqvKhCAAAAAAPwSEJNBMOvj6v/////////////+3zKuMAAAQAB0V3KbCYEWJWGAl4Ekwg/VoHCEqEkAr5EFyle9QwFDzzHIWIhzdZ2E4qsNsTis+QhT2XM0Cf0oXSM8WOng3XG2ecVh7KEzZySym9mzv/qI8pl8Q7/3Wob0QCJq9+kZM//rkPB44xCk7/4Jpa1hrYBwkGobipmiIzHm54QM5oTJeW////1smJsgDjUDoBxF0KpA7Uvj8llaP///////o6v///9RGO9dYFwEAAAAAEgA8DTjDiWQGP/+5BkCARUq0rQ+0llyB8BGg0AZQcURS1B7aWXIFsD6FQCiBQfmaGGrFgJiLp1OC9AP6p8onHQyCUZySBUJLZ6HhCZ+YT8U/qYerlVe6WFxjbhYRcw2bLHokJB7B1/5/O0o2I8c6thJ/qGHekt7FsEf////ktIUYvQ10AwU/MzMzOlVMeDEnOiA9OzKET56fdRIQRn45utmAtGKGYFQ29eXByxSoOf///9AFBAAAAAAAHoYyNDcNwDPGvV9//////////////57WwQAAAEAAOQgCaEfMxIjDRsyNsMMkAFHL+FSowc5cZQA12ECFhl5KcAYfeVxjDhzK0n8x+5TqWxuPjorMxqHSYEv5jHITO+K+2B5+Fkl6NTMmwSPrw4nLorJEfLzUV5ukRT//P/5JEUhOQgk1YPCUp+ZmfmZSgRUPgAlx5TNvmxajmZaEnxLXLajAlFyNOegog3MSKfCc3Ae4nf//qRr0RY2cIhLUJtVMKOty/VT//////////////FlYBwAAAAAAAgAcBaBf2GDSAMyIVMIegvXAI8gctuAxr/+5BkD4c1G07Qe2l9yCHhKg0EaQMS8TtAjS33YHCE6CABlCxWIgATDd0trDw6SCUOyFxjExnObQYc7U+hHDVMkSk3dfZM2nuEZG0qcISckfyEJnYDLe2ojryaoWJLj6RTwHWEWf1Lf6Dn/8EjOSazExh5Q8P8ID/4gRP1ynIxjUp+YLvFO8mJcZp7sqvKtMmfFyXjCunJo5J2tIykjf/5VH//9lRK+cGwAMAgAAAAAd6K6VflHvxirsxZ5C/////////////1+MG78MABIi2kaCR4ZXM8cNG2F5i5RAnNs6ZKlce5UPakrUzhuOsVwjNEtRlDyW3YgoJLbgiFJdTb1F04bnQ8GofShexHDMrgeBmRVBBm3DBDJsrPPw3f/6TcU/4/gg7/Kiktp5ukWqjtLYv7ur8PwgKzo0GR0T1/CjZ+0weriSQuY/STUgnF6vXjzUFtakhCXaV1//l7r//9CaQCAAxHVFyOeBjVDJe3W5H////////////9XMqSwwAAAAADAA6XbMJSZsMCxAFCkxF1AUi1MLBhwgaowQAxner/+5BkEYV09krQa2t+SCDhOh0AZwUS4UtDzaW2oG0EqDgCoBQZIBNSEJOApJiLHAEj3tFUAywhtKeji5YGi9Eua2HAUzVlVI30NUeNllC5HD8A2vJojwXqntEdo+eqe//5Na//xDX/RIFGzEdjnTBof/VCe/kkEmsEoPA27r3/87s7NZyTI/okY1T+R8fsBuIb7t5I1VZPNf8EP/9Sdy5kDgAAAAAAAD71wg9SWFS9C0pbr/////////////9F6qTMGwAADg5SEASkcae9hUMITcknUA6xgqNGtj6dSCEz2xByK0okMUXIq8ocUP1RJPQdJriK0istOHhCNMxV5uaKuFSgSJ0JsCJB7xorL0sd24Wse52f9Zcapv1PQZRdKTol1pAj3KXXTN1i6MYeby6XCWf+ioTUcSBWFkFyQF80Kk3E2JMeTi0NDBEml4vJkfT/48j3/9/8sAQABI0K1JlQDjYx719P/////////////QNdM2GQAAAAAABgAdQJ8FHyGAUMTevzHYQ8WoQSkTsmGDvediKJY2SDhUS4QQy0eVT/+4BkFwR0vE3Q+0ldqB2g+hoARgMSZTdD7W1rYF4E6FARHJRWmTaezmI0BmfEItLmwz5IGpIAoWRrj0lAIfweItTAqoH5MzZGdRqanXg0JlEGOvwmmb3//kulDfID/qSBdXjxaqGRSUTrgf4ZX//MmoJ5kVDMdoraVAkk6WrDW9sUedf/jxfiX//I91SAyAAAAAAHg6FK7DfwpT3o9X/////////////3osTBQAAACQAeGaAsJWgbSiLWDftDLQB9EnyFBZ5hCYI6AEGgWAJkbyC0i4WwMWxGmVmU9I3pSD3aFA1JPcQV3LrqRIL3mcLghnoEQtzQjQd1TQlFasv9E766tEC66UK0v/+UaSPM/8qNSr/daJrUO713jetEf+0CNBE6oaAJgkCuyBUEWz46v2B8e/5t5tf///aHH4TooQeKQcZ4vCvL0+r//////////////lXjAAAAABAgHmBBKpH3MxEDBQsZRhBQA//7gGQLhDSeTFDraWXYGUE6EwCiBRIhMUPtbStgdARoUBEYDIae4kGDPCd4lgTWVMOYYUKDAY2u1LzDwiVW2fMUzghlEZ2gkS6oZOhdUriGApVRSaQNliJgjh1N+DSLShofz3PXxZys67Cyef+GXNTe5gz/+bQku/wh/+Hs64JlW0Lv5nV6/4OWUEwvPu5LKIEbOnvXk7oXY6U08///yJKoAAAAeWoXq+EPUej7v/////////////bOa4FwAAASQBzMkVKoOD1pmhZhohj+QR0Y+FQgDtphJlmjRoOK6pYKBoJlzVzDBFv+w2tzDqluVIIQxjkvYTDXZkKGYqn0MhvUwdMdIJ5/BX3dDn6cusj43/O+ktQt7I8xg0Ndae//pE//6Rn//xmpq0rG/Oe8KiqYdaEYjEIn8ha2JasK/xykyg9BQlNx///+iijABAEALFVLXjIfg0ct6fX/////////////9qnzC3CAAAAA//uQZAKHdJBKUPtbStghISoNAMcFEZkpQI3hLuBehOhUAogkAAEgAcDHkBL/GzDgL0cYmZtGUpIiOnTWqGXlQCMQtgEHQyVSwaE4m/RhYdfljC1w5V1X2pxL9VsnelFiWcbVmmRFvrmQ+7E4/pa+jbFG/7j9anfn1npRh+nvWQP8W1C3/9S3/ya///TFWkTETXTW9SVisOEwB1A0VEw0Oo/YYRb49ANDSMRf///vUL2MAoAAAAAAAA/QdyAehuFz5VrvTf////////////29iba0Z0AQS8SPJvDogoOGoNrQEavaDA83QKbM6ptpSTJq/x0kGkt8XKPj9xkhDUvzTkX6cUi99uPDzZ2mHE0C5tPmTrhSaesSf2eUUFaPoP7/HGX9U8RB4XosZ/uPjRzVmpab//pjf+U3+gtiqHFWDpmlUOTnOEkwGEAPAiNrRISaVxz+l6kek///+7pD6lJSFPQJPQHwhsamzVT/////////////196VglAAAAAAASQBwcgFgLKoMYC2iIMMLLzEocDR7tCIkM8KWmJbmmRosRuQ//uAZBUGJEFJUHtoPigcYPodAGIBEGElQ+2k9yB/BWcoBYgsIwwSanRfoxsGnrpVBYHudVzeoC2iMc2mRBNumvyqesyOcuuuKyDgfHDFTHKbnEI/0LkKcdlA1NgNoMb+hhz+d4mHV53T8oEOhkqDgzHRqcBwiD5EGf8qL////ssqxwFCAAEAAAAHoKoZqmwJrkeX//////////////6nCQAIEeHDKXzRzFyIAkppZUY0SD1M6QhEDYQ9t1kACaWM/rxDyXHbgYU4U7IVa8JW1KzKBCDOZk3ZOO7VtZE0Pqoy3VETajJ/Okgbt89dngjy1P1c5eieTP67cywXAR89+Lt/8aEYl//jwqLzhiOniSTz3URgegOfRDG5g6Kv///1+VCAAAcC526RLJgfLkWuqNiqMrR//////3s//////9HjleeAAAAAEiAuAgdczsGmC5kQWKqAglgUHMtGRk0MQb9Ypo6KUDsWVnJkeCb/+4BkFYREEknQ62k9yB2hWcoBYgsQ0SdBrT0SoHwDqDQRmAyAoG5rkcVq7SPVUsl93N+YSzzn0dFyxtBgtll71OupFxCbFUF2Xdq8tDnlnjTIu/+MrQSlNjzLq7/7ON//0PDUsWx0SC4vOEjHRqR+L1Pegllv///7tEXCAAAAADgDPXIptygtdh4eyjYmSyj0f////01dDtWNAAAIJB4lGbq5ZPaBy8ySAyf4JGMhCh89hpTygZ1qosrdQVKi0aDbwkkkNogCLOnHxOYmwEkZzwox1SNMWIiD2S1H6OOwlgSSZsMQY48SHiNenf4h735TnaA3Nowz1IKgN2lZhA///93/QSifOHeQJLQaBH0RP/aAUXjBUO///+2vRZAxgZAAAQAAAOsE9ND9h+85xC9fIK////////////+n1XUqcpAAAAAACiQHwYFP0lqbcUFDQZ0NmMmo1CreHBA1AHZoqgYDGLknSXZRaKwKGf/7gGQXBHRuS1D7eEtIH8D6HwAoARKdLUHt4S8gaQOoUBOUTLouFgEuxoWT4yoURSTq+X4uaIHNtFqkSXRUepJ0OdNrOo3qAa1sUDVzn6JOMfxjTbO0JjH/k7NmkZ6IVbn//vezv5Bib/HP1k/1Y8PEC5GMzh/0r3FCEzBAgz///2bHLAJAQAAAAAAAB41QgfudeGbVRbr//////////////yy5FwAAAAAFzehgx4JT8MvSTESILJ4zalzVNhCPGxkKKSNppcCChl3iQxXdSM0DYY1CQTHMYhBmL0FxiYkjaSTElF50aen5D260r58HGmUlSfE4mVXytpbXY+4IF21dl/+0iRb1mZ/pq8q+tuJoP/wh6QEGEWfq5ef/2FFtMI24HG0USqO8/WRbpPkACI0bv//+9UuoVTAAA8FBAzKHMBDzL/Tf////////////9v2NXWGAAAAAAAAABdEllTZSCgJMTbuzIeQePVoG//uQZA0GVMdLUHtZS0gb4PoDACkDE90tQe2ll2B3BOh0BJQsSp7zDD3LO49Iq7iFWkNIaQ8omPP3E3lCbkvThl0tGU1qy5VBSMYlxRgMJBsq0QPNh5dbvXlR9fBRDIv+u94kyseb35/0//FVF7XS8m9wq01eQSFNKSElOd/SkPTGdc0e4PMrIAArXIGQYE5OB0IfjJMRt4UHD3//t6LqEKInXgAAADzkNO9Evt7lUU6v////////////q+tpvFnCAAAAeJAzMWEGQGoOcANHGOIhRfpIggPN+Gi6IyDFXeAwRAKcoKtFbnxCCVi+asitGfB4DkUZHAseA6SXIVy6o3sxWakjDapIDhA82OTjvPaQJRn+536TDVWt/IwR2x/c7Z6aAjzsn2UquA05YHgWQAuOBIiQt1YbvpCuZGnTTg/BsSCaGZWQDqVnEoaxyRTLx8+bSuhi///9D0oYYMgQAAcC2vaN203vEM8Hp9Tkfk////////////+VoWrV0jEAAiUm8cwDkzNYbNWQMudJdgwuVFCyqEAwHVUBA1w5NwSh//uQZBKA4/pLVntGTdguQhmDAeUPFXErQa2l9yBohahMARwUps3C52SSb8Hc52KNT5XebewcypwLMQGuKQMZPeWKsCFESyXtNQjDgb46PeWvFb3CI/eX/0pfTId32vHgO5ZINwCPzpo9osr6ThIDxoVJ2kSnfHKxMgDCszqHAABwA5VDhvEFQO28cUsAnB5Vbz7m0nfV984Y6HMy8n///6Ev///////XVXt4sWwwAAAAAAAA7AIDjIKkTDgMwBOMNmjPgBj4FAAGhoPFUJM+3QExuKSoggCY2tcEGb52U2lW+6YhAX8mSAYKAq1AYcGXosBkDQpNAi2ZRA8H1lxAoATOkTQNdWDPVXd4ECAd/8P4Q6J/7a/8M/6YWeuIUJttQtPM6bUkFGLuCbEQ61l1g5Tq2wG4urC2ErJvBhiypI2IzEJ4WLN+1HiQs/ScpCVQf///8qMNxIkADzVCvjGERaVMyn23/////////////9KJNFX35EQQBB03+jwB2Ak5TB8ZGMBuFOSayUodSUiGZUFhm+quiH5siMVTE2tSa68h//uAZBcAc7VKWHsvS0ofoWoKCSJRFN0rQ+2d+OBoBKhQASQkkE9B8tcY59kqxpUwqijywX/pJFvx2eW/pE7G/8v+kZtOH8pejf/9x6rc88pZ/8O25/5VX9u+83mIE7leevO10aOTGuoUA3FUeEIAAAAAA/E1Qehdgu6o2D+3////////////3/YlaVqYoAgAAAAASAB1I0jPzWjAwwaMaUzAX0HNrnhwIDwFbiaBp8oDnyChCDm/gDkwcYyOtd6ndRc6lTQ4iMIHhCnh8WHovG4agSKR55oXCY4CIOAgF+FCcoDsfPA4RBX+ceRqYxqMPEoPRj6HPVT84Vqbevy7zfJP3zUunL9Mod8oaeezVVFTDJIPNDDhYSJXSVHun1cpXE0EKKfRgn0eh40bVx////tU1wEBE9Aj1H8Qvyj055O7/////////////ddLKlGAAAAAAAEkAecbjBhjJeIhwwFRHIkIC2HCooZqTrn/+4BkD4Rk6UrRe2d+OApgC+4AAAETUStD7R344GeDqLQAiASHAEyO7MOA4CKpeYKFSBfgsaSLBjXc8GdYzMNkQbbfFBR/a0RpZFDc9nDs2SF4HEo8EpziBSgQKJh4cev5UH+CfQRiP/hCX4pUO/8vdYy92pnG+4DCrdXjHkdi+dKmPEW14TpHm0T83R+HuoJImlKoFLVfQCqWdx0a7////oUHeHAAAAAAAEoqtikAAABoBdALDCZZYnI6m9cmOniZdqwyJPCSdtm54oIuPVsLC0FqGRLcM6IhLtKJSfWkuZRNjI1WGeT0Egth9Hczh2J9mXZeycFsAkC0ICgMGgtdAXCV/wqA4uxz//8RiWo3j/w4/xT/LC4m5OfzLDvKK4o5zaFksxIBiPMoUGaClL/6q5DYRxqltH01sre+yoUo7qDH//su2AYCAgADzoGGoJxRkjd7P////////////+nq2XKAAAAAAACEAcoCBv/7kGQGB2TrUND7W1rYH0FaHQBHCRNRK0KN5e0gnAkmDAecNANrhqIosoNSOMlCF0SsIWFngFI8lUEFeYVBmfpgC2yzq+YwS/cTu52VoxSKCxgPSDrMiEgeflAOnOIEY+P8QIjMpLTRyJGKEDP3mX//pnJf////8P5uKyaZ+O0zxCW/yQVLhjQJAjMLgThUDsEg3Py8doJqJcMR10VBgTrDI1VaED47HSVI1//8D///+vMLcNKgQEAAAAAAAeaxxDx8K8vj3qo/////////////q0VtR1gAHCrPE9zVzIwEBEZwIJ4FEzUyQWM4J48xE2dLFnlXwpEfQL9NOMWjPaypZuIKAbus0JkpyDRoaP1lLElY0NxRUfCmdbszuOXWt4n/pN//hgiZKFKcmG/////8tN5H2KvH8ztijejFG+a5+HSFusNy61GhM0NHWYlEvb1IynyhLYhS/RDdrzCsu0m2si3Zfdo93UHZD/+riTfwA+ocSidrO5VVWQyDz0u0GxgCdX33GKEW////7Vf///////3ZmXUqx4AAAAASIA6Tav/7kGQFBGT8UtBrbF2YLOIJkwHnDRGhN0PtnTdga4SodAGUFJ4QArkx4DMITjD4oFPi3gSBBHWisKg5pWSDjt2CwcKHuSt8wwrzmWNK0VI28MfiBCJJDQEzNYkzKhIXKVyI6YXp1fiyMko6yYLGp31DW97+SHMspNT57/4f77pogFDrATzU1p3//zFqCY8tj0aE6/RO/rgRlg8HnkUPpqgGw7ERzI7lw+Kk0seoSYb+///8qW//Z4xhQAAegTqryi6pvUhwfAnygyvvGgu1eiVFJG8v////3NX+5f/////11rySXGLT0CwAAAJAA4cvLCv0aWEkyENHpjImTUD+lgdMbKHpJQAy6yDh5ySEoGj+CZEYCPZSmRqId4nlaoFfJwS52SYIvYDKk1KsQSPAeQFQ1BDJt1cStTpUYNFZQSBoXQzlEqQoRNoWO/9BjoSHhrHWMb//THllCMENQkEwTFRLHCFue/VtLHD2f8pvgr//66KCIGAAAHxFNBdC4Blx07+//////////////lFa6suEAAAAGUAOgtdWSaUfAIIESf/7gGQJBDQ9S9DraT24HmE6GgCiCxBhLUXtJPagbgToUAKILKBYsINXMAAiBsR7XtDMIrHnuHQ4mXpLDxgwnCKqj7a5xxbssiZAFwzYgBXu5yHgXfTzGozvSjmSeghfISeIt00PuOYlGW0T7/QtMUdHyUUl0f//MYTucdjQI2/UHk4oNQsKAHA5D3rHjhEL8cj46NBme///61gGAYAAAAPPQKFkQHwR8aWkdX////////////+i6ihjgAAAtMBdhi2yoCMjjHEhn8JhsYRLfYqFDME4AWDNB5R/hhpRM6gmRAEFT2En/pKeAfrMUY9YapF4rZJuYKvxGayVv9Gk8oXyzaBGi33PlREIsKnzpfMEstKgMGwcPErf/57fjx5er6zhUPFQiDxuOERO8cfHnnkEQTjQWiB3///06AAAAAZSgUOqJYSFMaizT/////////////0fSVphkBAAAAAKKIfVyloo+Y+bBQjNPHDF//uAZAsEJERM0PtnTdgcoOoaAEYHEOUtQ62k9qCKBWccVhyUg4akoMC4Ua+DsHUWMWjgwKmWtkSVJbACEZBdSdaHbqsWr4DIREsYKTZsZKUF0GiomLHiZxwRxGJaqpcdY3KkqsTZTMdJF8eUtKiXf+FMqLfqOt+jMhqXJ4T9oqtJJpSkaCUiPfzDCvgqYSSE///9f9j48MQAAAAAB5aC2qhnBzqL/b/////////////07czxwAAEWAegKc6UGXB4GLTAUQGRgKFmSjo2ZWKNPojTR0mGXzIQUmMoNkIsPU+cVURsQQ1yptY7FcHxVdUszvVRdsyXhFFvYYz+cCNGTmKgUQ/zysSS2g+c80JyLhcRST/zomIt/+Jsfa4tlRZFEdHSYWG5orMEYjjz8bC9x5UIiL///jTRi+TACOBeBqhrksGPQQJSgxkaND0f////1dLaq///////NzQ2XscAAAAACEAuzdrj/h64BQz/+4BkCAd0OEtQ60w9OBqA+hMAogUQkUtCjaD3IFyEKFQBHCTKIjE9AzY2ULBTwEF+LvNxlFkcsHSY8mpIqNHa0vUUVdhNspkM2KAw/aB0qU8xOUJsowPoXHGupEbczDbF/Y9Dy27nyo9FinvKmNjoPAsEIrEh6H/lBs3//NaOtKjqJUVhoEzkImzz9DGlhcEwpCQod+oMf/0fkwAAAB4rULegHhqqf//////////////WseoarngAeAoKbiaoMDRCYkCmMi4tEp5FgcM0F2oKyGETSmVOSjrSpZCAwihEvQ7Mel8yrV26iYrX2Pqsyo4YOxwnkNkm4qQKMd4yyCw9Y59pIvlRs05XKjf2ssSD7yhJTulQjVmf8Qv/KkHFcqOCSaWEstQ0vxHZR4gCI6REQM//yg3//91VayIuowuoE8Iychcv//////////////v0VcMAAAAASEAe5i94kZGTmLhBhB2BZcwoDVWFRf/7kGQNhLS3S1Drekn4HsEqAwBGAxOlLUGtpfdgbgSoYAEYDB8Q6ZycJ34o8db4gTjyB0JwOSymdKgCj3DC/JDiOiGWW2fJmTtKdbOc+QNG2onUdTt7uhI9YRvU3+X/53VmP6hn/4fXEKIPYgAULpoAvFJH+LTSDGritGLKIM9QzznsDo5d25xKJxLG6oFFMrFcKrI32uTw/Ue//9TDbRgAAAA8AoBJY4RnCEuVt6+3////////////6d7N4Ri+FAAAJAC6MbjsJBB01EGkph0qCntQgkIzSyiG0OZo0yDl9vCALNUAnqhJiIk/NKh0v1JeqrUlLhkwRNvomPUj422hI2cwMla5soZQI3UoIES5OiU////rrC430k+M7/9uPisVjcQx6lOAOvWJplwCG5iqzM5ADkwdyOi5Wu6QSMJCFUmm8kj6kOZoLannX7c0raFaULHF////cqTIuAKDoBK7Ec4MrsnO4pT/////////////0LKbBZXngAAAAAEADmJgBctRwyBVMgBCJqMeDCLSVhLanPACKIjCDNOIwkAekf/7kGQUjTU+StBraX44G2E6JwBHBRNZLUJNrfkgbgPoIACYDEJA7RfaJmBFMLxSWp87yF0fjA6Jr1dK0NDcjlb6ZXs3ldyG3CGCJkXkLA+3g1JwxJY4S+e///+0LPWRbSjfue/10wl6E7uTpy0lvzNf62bLGrWE2zIXIzylyhLutFCm40Jhan0hRphQ2XJdjo8GLDugEKQhEwFJA///9Da5eFiggAAADw1DDPGcI9S9Xcr//////////////tQASOAoBNFM/MAaJgVIMEkA5ibYZIgQer2bw2MyGpRpYiPDDA2nWGChZa2rIp/6iGsMVyQPUnLo+WglEilT6vlEqtFD7puRKxB2RiAXzAhTimo89or+gaV///jcvyPn87SB5NWvHkE11/w6cVrpktqIZlzIJUbtzmnnBJCbptxkP48ieO20lZmzQ1epzyL66L7exe4v///TrsrVIhAABDMWruV+RHjTxf1OT////////////6t+rUrjhAAAAANADixwtrAzgDMWBwozAmYMgAHvGgsDgyVxAFg3nGQmSDpMauCqqv/7kGQWBMUnS1Dra35INEKpQwMLDRQRK0OtnfqgsojlzAecNM2MPJb/GFLi3SpR2eoISsPwWUXhlF9w6fCCF1vrelB0gzUTXkCe1TXJZArnr3X4hAJ///6oPkhsmtfX0bjvXxRLnsnhlc7HCGHrwRQ9vg0iabw/kiO8l6dRI3C8HGmmQzlSn0YSMb8qF1IeRTSqjwVrn///+V23EjYA4AAO22yujCWz2Z0eDRcFKQ1NsLTwSTCitVb/yoaLgnVs960Pzotu///////////7E+30YcAAAkgDuo2SfKHcSRzJioxcwGrRuIoOmbGifKujZh4on1+l8zgQJYscBSAx+cUcXFnJESN5LkIhqizJhOan5TTUnZFEn6h7F3Xxkf++1v7o0GhEwfCAg3jwlP/4LQz/4nAZjwF05jX5v6+YZqMDKoaMD5CkF3JowbQ6VUuxb1Gea2jBjjjJmkicKo+BMiUGkejkPdIqxCdMy2////7U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9xibav/Wc6zIBa66kArY1s64q2BAhLBSI+2EeVJaoElIp5JDGSh1zY/+X7/K5Ov23d/Hw+fupXrm69f///Kka///4x+fzQbjm2p1l1DQ9V7waTRsuz46mOgrxpkynbotszMlTD2tkmjWYnJVFAz////3hAAAAAHlqFegHwGHRDPez/////////////9Tovk+amAARJP+lwM1gKSn2OERAyycKgShC95ICBwG9QDBKHvaq3kHALVqmfRcyDUO1hCnDFHGJp809pIlnERWEofOP/FoyBg6Nj4IQeDNDWzW/8df/1ZJDqWJSDDA4PDYbFFHSjZ9CR8cKmB7RKpqwIAAKBHMDqPYHrKPlfuT/uR////////////F6uuEAAAACIAOmoGAq0jSzsw8UCyyCZcIMVVjA//7kGQNhDUMTtDraX5IHAFaFxTCUxLZO0Ot5S7gd4VoUAKcFAAO404koR7eKIxQsGB5RmNycUkOcazgsf1EkoITGhgITOuvQ2GigJpWVaVQd+c5vI83wMFCcwdJT/rD/vfSJrbzTlwRP/9/0gz/9RBlpCAJT///qE0aMLuCQ4Aj1UNS6F7jn1CrvD6GWwkVD6Uik5mEyUlDMJjBcd4pT+E+12Gf//197WucgoAAAAA/JQKtBLBksZeE9bv////////////2/r7wAACKAHLUteGAEypsUsMBNzBIkMT1uDAyBR6lHQcxzdBoO6goBAatXM64Us72JMXqW0h8IIFSl0RdpREndhYyfXJiCDI+0qB83wJR05jKFmoKEOdz/UIYVdEm/5Tf/c5hfIZ+cI/wYCzQx///xHoKrIcsg+/ZCPRChBcX8MB1jQ08BiGGsiswI1iYRelnf//rNf//t2KAAAAGE9AodRcIiFC+PwJrej/////////////3OfRVc4AQAAAAAUQByIbe4cAjGmkxAIM3BSYxGqdOFAkEaqOJf41CKP/7gGQShKSRStD7bEWYFGFaCgDFBQ41LVftJPHgmAfmjAYUNDlZrpULAcavE/YJI97Xwp/b0MqxqonqcW1HVJRaqPjp0hWVahc+Xy1GfC/pMHvxOojF5TYxyAUlOQEPo1/yHmHkB/zYXOvmHb/+Vaxs3lCNf65INx4YEIPDYEIWPcKtYi26BXcGvAPr///9GkwAABA4AAAD12SGVDcBxWNNiEl3svx8IiMn3zwDlcNLBnPdAEeYGQIlQ0KkSHYsAcpQYUIvzNRyX/fZh3jG+jO8Dz9HST+UHb+6+WSNdtbP4trvVtg/eptJLQ0+SI4Kyv/+dsoFta1MeVaz//+hg6NpQdJN+XYmULlyzqhc3Ljp7vUbQOIDJ/wEwmzCC5FkulzcAFf4px2CerfEjhf////3+jvrY3//////4edMqmCAMAAAAAIkAeVMvlgOcTGhsxBuMBhgMYDQGTERWzrGT/C1ejLLCXQ+Z/Z8dfR6//twZBeAdHRL0Pt4S0gcgPoXAEkDD0UtVe3lI+BbA+hUARgkTugTOXtu/UaRMW9JpYTEhyeUxNPEkY/3jSXWQRXpGfjCtn+gawsyx0EpM1KX/6mqQJGTGXizf//////9E6cfSInd//ZRESic+oAx4KhUlz+OLLrfzxOK1vf///18c2AggEAAADxVSr/h70IoLcr7k/////////////7uG7fDIgAzAvbfThoCSLWjhxEp+Beg0cPsSkqBkIkzKjAKb682Jqd2XoctXI82bKpbAFjFlh2qJpyV1JdBtCKiPIt3SJ5d7drfop+yZD1pTJv//5taRExE9Z36SLjfUYn///fpM//7Qu8IfGakdpZOmt6X6+e2fcRbOhQskRFSi6L4Oq5fr/////////////+prtPrAgAAAFIgvv/7gGQEBDQtS1DrR05IGwC6GgAmAxGBK0OtpRbgeAfoUAKILJ/pRLZOlASACzEwf8IgzaKITQaCzA57AiSQOgQJnz60wEC/xYNjsvutWq2RGBZrx8JHndzoasd7NaiaIpQiUEobajRWGg3I5hKVEg6FWNN05jzRbmtk6EY8xf575zxPoLZRXhpjPVy0SG1yIdDCkcKm9+CBigCMo9////QvUCYAQAAAA8cjF+h6jtyvV//////////////fRxgAAVGQupUke2QAk46IGAn5gEKClNrRVIDACFwEO5iEakPDEvJkd9Z8wMC1dJAV1b0pZXPV0BLF70eTjm/RJKFdPKll0ZVGm2cxdPSyqhgwwWUU1yohR6WTbnxICf8yrwkFz//bhtALO/8VH//+zZTeLxWWcDQQomhMi+yFA0gsPxwkDkr///0bKWiwAAAAOiFAodU2AzY22nZoF/////////////0LvriiYqAwAAAC//uQZAMEJHdK0PtYS7geIVodACYDEs1LQe288eB7iGYMB5w0AUkD062FJOmrqEKs8IEMak59dhhQR8QbT1ZjTeAwNBoqDHpTs0piTR3SoOR2JYxK7JBwjNqZw0oqOZQoph/1gZOsd51JnMMbS5IxrWxpredIupBB+RE3/8KNFiDf57a7f6X30gYoia///3///8gRijlSQlHxI2KGja7e9YnhRbmUzDLvxB//py4CDAEAAAAAHqS0JcZ+fPZW6l6/////////////9etigAAABIA9bTfs8NyRzMAsyF6MInAxOTFJCswsqhtfpsIAPHrjEJSHH1K/hhYpK9hSkOrCB0P6AHwlbkpMid7qlVK39aVzzwJ5q1tFkiP9RHm7f5t/BZa8kLjE///6no3P2fWX6Gblit2rubUMJls95hBgu/8KAwSUDA6pMVA4BhjkhgQF0IDU2UYShg8Tnf/yg3///ZL8ACU4vkszFsvLmkihZqpiLcFujb46XYj///+q16WjqsOAAAAAEyAeSgqA1u4CnjKRsxxkMNoAMyQGBAU5oATM//uQZBAEdT5S0GtsPegfAPoaACUBE8UtQe2l9yBcA+iQARQUFQ8zi7BSG7A4csqhDXTCBlqUqY2mzyDUH41dFQtjkWgFGi1TktxfWK1kBDwuJXcbgjkviJMIkXSxe3D9JzEMGwGyJLB52zNex6vTE58KlD6E0qPZvpXET5QzIooR3M3O46Nr8kamzByZQycGpwpcGt9o+FaYlzMsDpY0dCQSf/6Ev/Qj2XOQXDIAAYAAAeGoW7uD4SZUt6qadf////////////c+clGCQAAAQABwcLonP6acDCTqaMAAo6KMhFoZKgoZwwiEaVcAJGlpAPmjACmDJCwXQF7CU2cqREKRS0cEVJ11UErXtnQXOi7Q7DAaeoDg6QWIpcwcI4icgUIeJFUQx//7TG+kn/////S2A4IRUTeyt4uLvab8GL4T6/0lUKMUwULf/SSyjf4L2AVC244hts+oTNv4RCqe5uzRv//X29SLUAQARc8eqYTa9fq//////////////ouRx4IAAAALIA6A5iq0jUTcx8SMUSzC5sShWHF0zpwAeA0H//uQZBCENQ5K0GtpfcggwTodACUDFLEvQ62l+OBzBOhQBAgsDa3oOjFai0A98tej5gpO6NZR1KLrjFoZ+DVbRonjr/CQnPUQPGkY0FxMuAoODRoy+wRobGkHFGkqETSaKx8fd/gAJ8LBrf////v8lmv+H1NvL+P/83pAiczNI5LRn0NN+7cnnK8FXz4IpPmQ7yKYw5/hx15LEEPjbi+Of//3fIBYCggAAAAAADwIgg7QXAovUfV9yP////////////+lK0k8sAAASgByIId5ZJlSorgAoo5OmDgKtIgGTMjCQIgmK8oGCWXihwaEGt+msYsENCuJvufdkJdJ+poYAigSvt3W0+8qfS5D0+773we3A+kARk0JyLYnGXoA8QDMMCqD+10e9Q5L+51nnaNv//9dHvUFKt31a0//Ep9J51z3usPokqIcu2ohxoUJ0pCBANFFl0cmddrikCqnKZefNrbATzAqf///+2iOAgIABO/AYrh/AxqjwHIa3f////////////3e+IFigAAAAAAARAHGhq61EipbMEaN3jMtBCW9//uQZAyFZVBLUPtMfagKYAueAAABFCkrQ82l9yBthKh0AZwcwQCj1JU8UzzyDRNG1YLvjciWyreEnTuU6drFsZIlj2oSlGbd4JHaCkDtQwtHIispfUHh2phGNJspbTpGF/IB07M9ZXTvsygRuNc7EVLEz067/xqlGtDP0U6/wxRv/63YYvpAZh63WWhWaRQcuIAsKGp0u7AV6HkuMNtQo6yOJPs6CZrxdz/QlLl/jxv///7W7wrwsAAAAAAAqKVqUAAAA5NRJ8zdUEYmYuiGIJgdbOUIQ418fXuVQAwfqAwFBohAgz2UprmKDbUris9rk2q+/iOiDHZmABIDhuMjcydnBgVqmiEBI4VCecBxK2naEmrxz/rIt6rEh/+VikdlRE1/+kEVSXOqz////5DWePHkAk53vpsHYodDFK9mLuTQ5RY1wVpUFxNOEXuVluSxgYo57GWpTWu4N3///1Uzj2gQMAAfXRxq5bEK1Fk97bv////////////cvWunsVEAABaV+AQX4zpW08UEzgsYoDqZPp1RHcAgi9kBLKAS5jYk//uAZBKAY6hK1PtYWfgl4hmnAWUNEkEjQ/WpACCFhWZOljAELG8qt3Uzz9RT85UoxWj7OrfUJOwsofSz6nrMagieeTpJBmt73/9+RAMug0OQNx3/91pHv+U////dSdNe31PhLb6aLTpwlW79j9SDw7rPmp0gAA4AAkG14Us1DrsQBdUD7gLp+UfK9/7v//////////6pyNebNMcgAAAAAAdYB9dRdUxxTABMG2IGJbIiRUUBh2lyJ02WsqgWXiNCHCB7GyA6yIlYX6mLJAzhuGph2C4P4iymK5UMjIdqSRMqRMnc8dZIumxiXSXLpFTxIymTXU9ZDiDG6YssbCH/+ymIif/6y6ak44yylUyLHI4CsUay8fH88Q4hhd6lEoSbql0c4Gv//9HuohI/wA/zvA8zaBHmQLMzBemCezU8j///+rNf///////6m6XjVWsgQAQSBDPf9tY48UABEOmLFgEFTVBYADhynKADcwf/+4BkD4AGV03Qbm8gkCJBSx/EGYIPCSMrvYWAIAAAP8OAAAQdOFDjBVARHRjiKCEQUGzYYMy5QNMCDJxAWsEgySIaTOWRwYZd9LChTmSFgpuyJSfruv1AAhAdJ9YGMQFaMcp2ELGf+RwIj0sKrEpbCZc8qwCdLQp6I0VI7Dw63uRrGo/w23SDKOd3+DYJS3Tf6qMKgpef/+eUpkm//UbpJbDVqId+MxlZ8NMynqX9wDJrvJqGn1Zsv12F/Ncfyz//g/Mons7t7n/9i2+vyzKyFyDwDOFQG2XbwAAAAAAABD9ywtC8sGRCjeg8NbepYCrltAcIAAJDv0bQrRpl0TBhTdcABMAy2KEpAMXKLTF4k6pGylQEBIfkR2jpOwbGxqdqEjY2Nj2bGxs53/KJqamp2nNa1E1OwkSjU1NTU7TjY9BsbGx5znO///hyRsbGxsbG1br/4a1v/x/7kjY2pxsbGx6+drag2NjY2apMQf/7EGQBD/AAAH+AAAAIAAAP8AAAAQAAAaQAAAAgAAA0gAAABE1FMy45OC4yqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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7SoDgf/7YMQBA41AYSpueyLhaorlzb7gXFsEwbGTC7nNyr84KkzDdElMh5L8zCiRzD2IAMI0UYw/QVjEBCEMFMDgzDDVhMBUGtg6k7gDHCORA32EhiI1JmMsMeJp8FztfGK2b0SgyR3pmxIp3v1c7j///7P+zxWYXo////9v+x/q0ARiUqYmRgdoNObDCAljeL2TnaQTO1OTLpAwcvpUHQxhBgCeSwCpDHwygDMILgGxqmgaHJRJayyF0YEuRmYiW5RQ01qtM8wo7MXI//+mt3u7///////4tSLubQOBEADJh4NtzA6u+DIVdMXwgQx/G4TQyH1MWcg0wgRqjDxCjMQIK8wtwZhxIf/7QMQWgwzARyZue0LhWYomDb7gXJJUOBzaMTLtlMjAsTL6yq+M+CBTMSSp0uQnc268V6ulAch5aCZlWBU///6iD//X//////UV/E3lLhwBwAjFJw2sfOowTfaYw1NgzL4s34SgzLUwyVKcwmJQwzJkw9DoCBQQloCuoQwI0sGiIYYizQKJwWos2gGOTvea5qpSW3/duHwY////RT////////1dCgOAEQDBFfDMZBzM+AjaBFTG//tgxAiDjfhTJG77QuGpCmTNz2hcjE6M+t9UzxkQjG9EuMiIU4wWBJTE5ALMEoGo1EkySUzJU8igyCs7oQLljY+jYSDMlzXEC24iCBcOXMazAUBylsTSYcgSBKODmgOpYKVGf////9ors+/2////wyjF6KogAYrQRy5qGj+eeFEJhIB3mYG2OZOBPhkCFGmMmGGYeYPRhzAvGHMCobROIVRhhBuS5x0ZsQAFNGNvmThkBweKgoutpbpcti7MLsfjLYILlb+u0zpp1d+Q3CRP///vqV/V//////+K3vZuA4FjBMBsMEwOAjDDGE0MTYLgwsB4zCjVBMX4PkySA8DgEU+o3BdC//tQxBODjJRTKm9vJmGnCeSNz3BMdMgB9A+WDSwskFzUbDLCPRExEAACETix7c0yFLG8a521Ow/NNO1btXoejJ63///vv87Smj+3elH////1P0QAAw3rzGOFOs2E7O8zFhJHMpKA8ydECwqS4cfsx3c4HVT4ZQFRmQkAUahw8MXEEyYGTIAAMQgswoiAhBixbKB2HBsvuIgCiOv9MOFP1EpexFpUDRKf8Z0///7MY7///////x9QtF1X7UUVBA/oCMWkTJQc7AwMefgCBUY+iP/7UMQJgwwATy5t+0KhWAhlzb9sTJ5isD/mJaMOYcwaphMATHx+EXYxyAwAYWLGnJPCLQQuNMqVIppMBFiMahuWtMi0vlcqjd78JXG4cv///6/IwmrdWHhiyFn/////9P2pCA4gCM4ODf6Y8VqNYwTDkD6MYBG0xLACTCvB7Oz6jQ5MNRQdtBwIXUBQiNJgKHgUMl4wsTiR0t4tytx4FlOs/Mtj0vlGcXM///0f9P+MT//////+kqocAfAQwByNLGzhHc3VuC5RGCt5mNyjGR7/+1DEDAMLUFM0bfcC4aaKZI3PaFyKBQmTAccDCITTE8AjEcYGiEZykBmZqrFjha1SpHNcDhTctnrt639JYu0/HwQciNpv///+m3kxthL////+v9PDTSqQOBEADE+CNxPM4zzD7CZMcMbozLYYTCpP6MFMSkxLB9jDYCVMXcHswjQNDmQQAEGWpiJBtGBoyYXQCZMxaIxg0w4gSYNsjSgCYA19ukmXPZruOyd7JBLL9/e3//9q96f7Rjf/////0f1UKgeAEADJpyOTNIxfrzwK//tgxAcDDHxRJm57QqGnCmSNz2hc/MA4CozF3JzIBC8Mxgh0xkx5zE/BvNeGPgkB6EzqQGNDWF2RG7JqSM1jMofMuNMYSJmoqHeJXr1x97HevM7vy2mlLSmQxA3Uv////V61Xf///////9oHAiABiuVmRFEbO7x5aoGKwSSZIL9pl1nMmUMXoYpw7g8U4YzQH5h+ALHeSGfRmRdhMYM5nRQiACaTIcFISlAEkSYbipm1N2kkF0Ogwynm8/p+Z4WD9x////0iiO8gyhn/////6e5TaBlVHwCIAMB0kEwPx8zFxIhMPMWExgThTD6n7M7Fg0zPwsTzOTN4jIRmM7YQT3RAyyaJ//tgxBgDD1BdIG9zRmHyjCTOvaAEUG5C452T5nDptyB4mY1UEIBcwIGM4Va3vFLGtqKq5e5zGnP8VQIRAOOWM41GQxfBy5FdD3///69rK3/9F1n///pa5q0P3Ke180JBOBWgDC8B9WcYSAAhiiguGMOM2ZZS25iihCmMOXqYvwFAEC2MUsCowZgjTACAPMAICws0YAIIJgIAUmAeAWEJQBVNaaDoRmQREGLtRCJvnRva5MMSLdiNvuOBCqBnVSEwZSNvt27cf//6UpRG20pVfAl7637P/////Zdb9qoAEAI0kziJv+wAAAAAAwUSMcmUWDIoVXJgRia+lGCgRmoaX1AqqPAI//swxBQACoRZTdm8gAFNC2v7NYBIKGU6wwlMFBgdDmDA7BWeEIMBn4E4SVrFZlTJ21SpiNiZo30avfRxSz7D3d6YERFa07rV136AAAAAABQZk5ajBkfpQMMVrN6BRQD55gRpraiK5shhhhIsoMsEC6cYCtIaYZJOuXuX6rBK7xomjyjcyBXqcq9pd/w7Ddj3Qjyw89UDgBgAwCxF//tgxAODD1h5Jn3sgCGWDyYN3CVcjD0C/MTsSgxmAeDElEaMFBf819y3jFgKhMN8RgwahFDBnBvMMcEMwBgGjAPAqFgKTBHAnAwAxMEoDsTOrIfzdUMJcrBeROtljbwBH5UqSq/sO2d0tiNPc/cv79uvn//+fafUohiMWP//6EZfkSzP/////7QvAKAzCcIDIIbDCouTK8lTEkzDWu5zwFWQzODDdCTFUfTKECzFsDS2hZdMY1EAYCmCSI5YsWJmBC3KZw2MGmmhOjJSidZlzTOicXn/OP/lfyB9GBJK////Rm5J3/////8nO2ooa9ULoaAAwPLkwMDAwoR4yqMQzEJE4L3c//tQxAsDDGB5LG7liuF4iqXN3LFc/NsEw7agxmX4wGGAMLkwFDMtgaw4iFKpZgIF+Ch0BbkkJphwMzRExPQipEAjqxJLrR+arcLBREEvGXzOrenafZuSSBYT3P/+lVHp6hcD4AAIqm6AS/MYz5BpDmHaumdNanmLWm0qYg1FzHIJTKIaTFoMUGQQsDRDJOOEgoeCAAoqIlgUQRKpMxWCRkdJx2IyCwWV0KcvJ1K7auBQkHgqZ//////////9vcR1qgOAAATDps0VOO68jufAw//7UMQHgwwkTypt+0LhoAzlTc9kXGRcTFoNFNE8RoxTRWTCMEGMO8GAwsQoTCqBRMMfMWRMMDNYdBpQJBAwAYp8ZlCOgWQkxVW1SlhtW09k9Jo3Rvo9cAzEYbmXf///////////+8eBxg2AY4Rhr9kG7y6cOdIGHBMrA1U0qy8DBJIcMUsFcwzgIzCFCAMHgGcwhxHGFyg2o5iztKQhRiOpAwygOEoCoKwhDKq6sJhcQqUtd34rG9Zd/9QwboYWMHhJVZ0f/79H/9Pc+eXfydX/+1DEAAMKTGM6bmknYV0L5k3dYMwqADgUwARjDohMwA0zKGjHg+NfSs9u0gILj+DzTnTeOBAXbksEzMHAEP32WSIg6JagLIJXLZcVLdAWUqa6PtCjP/4A+HyNH/////Ur//////6dABA+gBgGQBjEH5k2Phl4DBjycRLEIbFxnskZ//BrOAk4OCrIVILBQhxeGfIqCgwJJI0BGQNVrhxc7YIrPw5+Nj68rjE1Grm+/rsYqCL//1btGxS46z//YgCP7AjCMEjIQeDDwwzLUmTG//tQxAiDC/BhMG7hiuFsimZNvuRUtADYucT4lYTT4ADD03zAcgwMr5j2EqHIRRISgSRuEN5RZOthxxXAHXKwsgloEx/Hpeb8nLBieoCLst86thMYv//f8ypG+T7vyzf////+oNgegMwF/CgkYllG7OxjsHpsy+53+tZiGgxh0ahguGgOMPOFaxWUSgEBIQYXJLIGXaIlQyNRGcljCHIfiERaG8YBoOxnC5OV7YYSBCf//93Xo+5P/////+n2oKUDgAAAwewkxLsc2T3cxRdEwv/7YMQIgxL4aRxu+2LhQYnnTcyY7LU3zOnf7PEtA009zgTBXMbMc4KUyhBqTEMDNMdbTMIoz87NnrDuyY4NJMahDcgMxmoOWNDlAcisSyoFBUAatY8PkQcOgsyHAAcDtALsl2VTKPpmqDVexFmRmLIY8joZMwnpPWON///+nQgLupXYq5qq/1fRYzqMvuMWl2hB5cUCI5AqKLCIjU4A/FBgjMCggxcPjFZCMhnczdAT0ZGMgmU2tD7KOO86CUnWvp8AoVgREWwAUSQzZ2+q4YZiM4PqFi0ouyG8FiX////67rqulHV////2z05LKgOAEADLzQOS0Q7yhTylVMVQAs0IEszd9P/7YMQMA83gVyRue0LhlIqkwc9oXPIIS/DHHB5MTwBsw6QpDDkCfFDpiX5rRITyOUVB3owh8zLk+CYy7g4IoIQpAiIEAQCJqeDeu08y7H1qMjahXpmcSmf3Djf///7PQ93/////23U9pMwv6TIVWNZr89UgT3aYMUQSYzIELTbrLCMA4HQx/ARTDbDZMSgS4wXAnzHogaoM0POk0GZY4MADs2HU6Y81SsUVDgNnAcGLuw0s18o3I3+gZ5oUyhrlFKKa/QN////////////vtjf3VQONgAjCLANMGM3mtDjBgMMsU4wNivTTZBFMX4cMxCwajBIC6PgQOvJMCcAw4RmDJrzQj//7UMQZgw1EYSxue0Kh4w6lDc9oXAE0BgMCSiJATQgh4GA0CCO6j0MQt/IGpKfk3IpDTQqfz1SUnH0dyx//3b9yH///////+d6VNvWBOKACZXFBuhuGkqOcnm5hpjuGSua2bJJP5jrCdGCEI2FA5TElAPMPUFUxIwwScQLTBtDIBgjwBihzUBgyxrhwFBhz9TIFBB0Ddi0sjTdqZ0YFjzsx+XRqHoajV/5Va1E1HEcHbtb32v3/911NyP//////6/lK2SHQAPAaAMA8P8wFAMD/+2DEBYMOFGkob3NGYgmPJE3fbJQIMcYXQfRiHAPmX+WabAJXJi1jUGUs4abRxk8UGuzGHMzTBBlQbpKbQIBqgIRBXqZxiaEqGVxJun+MAC8ESZRBEjdeIxynjDkxVynJf7HeGFPn9WzWpnp///9jxVvdT1f/////10gDxAgGCD9mE7mmbssmOiPmGOEneOjnE6NaZipt5hYFHmNAFCY4Qg5gMA+mSoYWNDFx84suMtEBANDqAa8pGwrgIHjAAkQgZILkIiIwVir2J9RxabKq8pdBrDjybLeF2GW9b6CJypjb1SUl8tQnxE5/Ab/t/1f/d09v////dHi2hznKAHFYAMQLEyn/+2DEBAMO2HcobntEoWmMJk3dJSSfDXEmODwY5j3zgXLNd8hYwZwUzAzF4MT0CwwNxDzCgA/MOrMqbCHBGVNSuAVZWMA0jSMTGDzUCyYZbii0GLM3eaaoYk+9NY/tx/KtvN9oAgWHeXI7EJ/V2GgcWjtS2C3/2O5Fnu///////6Nr/7QUBwAzAwUDG0ZjHkRTKQZTF4PzWw1zylljAhSjHUizHAMD2gjqH5xTNIIyIctIEHioPGUpAMBQ5BOUAY4yoJhmbS9bqBVhUVrS24oxIjb///1/////////uvXVBIHoAMGiuMQRdMxgBM2wSMqhQNrkBPyT2MciLNABSMSSPMRiQMb/+1DEEwMK5F8wbuEq4e0OZM3PaFwA/MLBCoOCBOGhpxEVUhwTPciqDpByVgmVhwNxRILgiHCA+a2Of1azR7//6aN01s71AbiMgGGZcbyRp49sHmm0YfI6hizEFm8CPuZRRNJj9gTmAeI8YjAMRgGA4m3WF5zDkDQJzUuzOnkIDQ+jRWDNpzNKgEdQeEgpMSU2Z6/j8uRcsVasvi9v//7kGgJqQFmgvipm4/a9vmdOf//X72ZyyAWLDR7/T/////5VSgDwAAjI4QNTKQ0U2zZr//tgxAcDDNxpLG57JKGrDOXN7mTM7NU4g7rXzTxI7MMoUYwdAiTB0CVAwt5hKglkXRpFjB54iBjZsACBY26Qa2Yzg0wLDtTS8WLALUnsjMob+1elUtpNb//3S3YZvfEn+nq3f//////////+99YAH1ARgJhXiIAYRiGGDMFUYTgGxkNhxmhyMOYoocBgCDGnykaDGRo8fg7MyEAqcC7Q0QPQIVjajKCRU8M7Hr4flLsPM0iQy2H9SKHfxmpnD//Pmc5I5BP3v/6PtyNx4zaUT//////2684kZRMAOABwYQuLJgqQZgMHZATZmaHIHE8ylLsxqNNYAzVhcw0HLLu8miRC8oWY//swxBYDCcxhOG7tJ2FgC+YNvuRc0YCCha5Q6GmhV4mIxwcY+6SNuYE7r/9zJFIhkJf///5nRQAQPQAYcsmXoBs1scTTGUaVmLQ8n5KaGH4qmCJfByfAUnzDQDzFLMNkLAAMg1ziKICEg4I1lTERAUqnEy2CAnHed3oAkEzWqYQ5L+f/6pqalx///bJob/1KA4AQAMdOo5rRjt7n//tgxAYDjfRPJG57gmHLjKTNz2hcPhVMxDg1TQMIjOJc4QwijDjy7xOEKQ5qBjdxpBQiHgmYnCJmUwmLAUDmkYeMZIqwQTDKZKMah8DGVSI6DkQ1NAwBJDKKK9dCAZRAD0ORSs5L////ofoEJH/////mOje1G5FXfGADIVqNauc+YWz7aIMWwQIzmivzenHwMIgGQyAgVzB3D7MNwR4wwgnTMyjBxDLGjkYjXYTXkDRLwhodNqd5mYVcAjrHQaFUQWDTwZ49CNDA4etQ1GeTFjdPG43bvu46cj2a///4pXqZZu/////+uzuZ/qoDgCwALyRviWeXGH0Fxj+ihiQ4p/2Kpm0n//tQxAyDDChjMG33QqGdjKXNv2RcpkOShgAQgSsBrkx5ZvkVwKhNCLIlAsUMbEAxwMnCSRIdtFgV3R6WuhQwLDFnCzhTT1/czMzdMXCCgWVXDf////3EVx3fQpSawAOIAjLw456WNg6z27swjxUjHpI9NIETcxHAADBhEHAgRY0LmYQIH5hmGVCNMg2oxlAPqZxxwll9BMwwwR4pYV0Fptjf6mbnJoflV+KzsVlt75TLbGrsrjdvv/6///31t///////YK0BDigIwTJUKA8YOP/7YMQFgwwcZTBu5Sshnoulze3kzIEZIEoZKB+cKvOfopiYVpAYwHUYTh4DAoMSQnQrEsDRCMKMFcGYaYiBB+MMm6CGBNXsKmcCPN5I2xgxrFEJEMll7hn6pKoi13/3L/+1AvXZG//////QBx9AEFg2zADDVMGUR8wGQiTAlGXMTkhs0Iw8TEnClM1tTaiE6phMgKQuqFngIubMx6jHuaBDjaeMeY3ig61HByGXum40LfpqrvOFjhTxuld/sskU7/1xb//Xfje1mvcv//////+3QWUBgcAAw5RMhJjcJA1OUMgzpNCHBPBQQMhTfPgaPGqOzNOIhEBtEcQGjIHRUECt7UAouP/7UMQZAwqAXzJt90JiAI8kTc9sVC4MxIFPtoEUZTAr+fg68WkUoqz0rjFHjz6lWff/X//+/cgAcMgAzNDDseePup0+Z4zHGCgNVRiU4iy0jA5JMMiUNgxPAdTs9I7LDMwVzLV8z9xNzUDhmUFM5jB6YC4hnoYAaGQihgIWXQWQisUBQKAWKNoJA5dxdcoeyswSxT5OGvJisYiss3/6mHYhzJ1KS7b9m7/Z//zH/////9cBlFjmyaoB8BEAwPhoDD3DxMhoP0yFQ5jFeHYM1Bj/+2DEDANPpHUkb3NmYZkRZc3dMSxk3Zy3DC5G4PcVk4GVzsDKBLBMcDjNS4yQQIvw09rNwGwssmXSZrZEAE0DIgcLN2LnITUUKBcKl0DKGVtRKM2UnbOMRf2xaxrWv/VMhcljWgqmtWf//72LdX2uf/////0cpJHWdgJvEJYGRA3mbZnGgwHGbKmGZ+gn9pZGQiLmHpuGNBEGFInXehQ0Y04BixswJkRBxgowHCyIUOgUoh3VibrD7iNlXNAbclw/0WOesWLKNnZ/+3mZnlKJ8c1edLa99gJAAAoNV4E5IlUJP+wMwhBAyQHwwwNky3JcxZO43Tss9zJs0cCMxLNcxBHkHJ//+2DEEgMQOKMwbuWK4hMUZU3PaFSYshKFGhCGZi5wEHQsbBLTDXqAkAONFh4Mp2ZiOWxwQSUhCQfeydIYJqR1LIcn6ze28nBMPyUJJNtMztegEIdrqXt6b9AJAmgbHA0uUBfcqF/W2YaXr3/////+/0BYAT1sExC4zBQ6MgWY2s9DEMD1Mq09U09R6QoMMYQQrgWB2PIQM+/HDhqhZiVBjz5YLGPHmCGG1pisUDV2dskU0XxArJXVdeebSlhx/mzVZVjLodrZSq25UM4VY9H5Ra7/cv////////yzqZSNNIxCMLpgSBhMgJGepwp9uhOj/X/////cxR11EQBEOKYEYzphvkD/+2DEBoNPDFskb3NGYbOJ5I3PcEykofphjmXmLSpWbeJO5kzkMmmf+b6Np2BampEOKmTlODJ0TDyjxpDzhyVkbSGQyDiEAdxBR1Rt7mDLiDgbXn9lv5NiWFwxmqGYo6WlmAkBSISkfZ1kQWJL/alqcabXS7/SL///+3TanmfSzYFwDMT5M2oA5hcDntEMZkhcyikzzb1EqMK0XM29ujsbSOGwM2ohzDBbIg0ZKDBmAiiAFGbwwOBIxQmjGYvCgRMAAMBEkKgUVBqgsTbdwYAdSvUlTvWL+Ht///r3rr2xav6L9P///9tdy9yUdYCVG4DYAMpM44LFjnKbPORsxcgADOcPtNn/+2DEC4MNNFcmbntC4jIOI83t5VxszgwCi2jF7EpMT4Akw0QijCSCPMQzMa9NGUA8c0AE14YEBzVgzuHjSoBqMZoG1FhygVxjKsCzleUS3f/+QYkI9trGaJf//6f5BSWXO///////UD6AAAYLBNhifi1mXYDyZmIZhkBD6GoQxCdzp+BgrCRmfAI4Y04xZjjD9GFQIyBUQQmBijGb9GGRNJhZcYAtmkb5vK6b4RmHqRjwSYGIAUCMQG6Qgvzispq1yUY7qUAk7/MoxZM6Q5njWACoqvy/7zRhwC28jv////9/qTq///7nLzelrkCAMUTAcJEEqgL7AADDNpDWgwTg1Jji5LD/+4DECAMV6L8ibvtC4lwYJY3PZJTHZKWMN5DE5aR/TM0NdMusBswgBajEoBAMHkKEysYzbwAZhmycu2SLkQzRdDQJjNpzZMAADL9A4SqsqWDkxFV0JbWL7u9lcbl8qiDuP4whYcKhzUGEJoEFiEoLO0F3HdcKE2L269uUY5RhrZbswYUunPWN0CchaNs6lAEAAYAvTH/lEYs35RDDWHEsuAgkLaJ0UQfZ///////9KH5lDfoAD/gAMVgw1UqDRzLNYxE0vgjsu1NLsksw2hbjDgB3MDYI0wswETCRA7BxwUXAL51lGCGYQitxrjGGWFQggREtYdiEEy+xEIImI/LJPKqHGcsW8vmYrIodvX6sZms/1vn/KXJivJl2Yd5PWZplS1hGAYoBaYtE87u0DlSKVhQMyBUcZQgKMUJPq+ocYICknBk1o7XIGPET6gBwGATBBETUJMDsW4wKBFDEoCAMpkPc1uSYzJjCmNZ0o//7QMQQgw2wYyhvc0ZhTQvmTd0lJGijDZYcNamMzZkiWGQMC8U2gM2RAx4QwE80xIFNEAQ0mRvd9pTpV2uQA3aAn9h6zVfWMwK5WFJLM4c48su7P///1lqg2R///////3DACB6AAqUYVIswFL0xwEcgL80RHw7PJozTTkyaNEyIDc7ysyp0Cg0vigeAkZekmQF+gQIASNBdIJS6g5FCaoRh8hFaKKOH/k1cEQpd//6tq0X+e6op//tQxACDCdBfOG1ww+F2DCaOu4AEgDgQxSExaYxmg+K4zijTDa0P1zoyAljOqEDEuY0G6gLQ1zp8joEYMgas5ayCi/oU06OWCe05EKC6QNU///c4GN////6vbX//////9VrAUBxQzCYPDHEPDD8ZzKAQTBoMTR5gjqs3jBktDKQnzCYbDD8Gw4SBwAGNI5GDABl0i1Kl6IJasOS5jKrsVvbsWYYkconLFPYt5///unile3///+7//7Xt////1f0uAAAAAAAcu94AAAAAAAMOsP/7YMQIABB0eS257QAB5Q3qPz2UgO8wSQgDA2GiMZ8yQwnA4DEJNwMu0X8xFgXzZRKsMGEBE0mwOTFlEMMFUA8wGwDxIOYwVQZS+RgbgHGLJAoGZo0dMUMsgMLQAJhwQylpar0gQUBQEoDmtUcRww50t+ZQAkQyVYZ1t/4MALc/PwcfTAARh3rwAIABAoARBKT14AAAAAAABgBAAGHeJ0YjYHJjlEOGAIAOYEQLRgrhdmEWEiaN5F5gwgpDQX4CAIMBoEOCB4M8wAAJ0rwgCkM7SaUsPJJhL+rXfShS4Zi86iTQ1TK0qzK5yBpTFTbFQiayJMAJK+tkvwoDGffWWM6puwAAAP/7YMQBgBB4cTu57QJBvQ7mT7uABAAOU8/uAAAAAAADAmAtMC8RIw9RNzBtDuMG4fIxz0SDDrDyMAwBEzExrTFKBHNvcsAwEABjAEAAbwwbwPTARAtMJ0DYwOQcV4yw3Ywy4E6Rw8ZhNEQiF+qrAIHLRABV4GC3RXLjwHCk5oGT4pIpxBrD//04Of/qw///////////vBNHwDMER1MEwRMFSYIS2HTUNE08OVwpNsRCMWQHCE3GjOMPQXAwLmCYBOYDAEGgLCAeLVgzxKAAGDgK4e1rkzIIBl0H0NmtXitLjT5555QzEJba///Onp7FivapA3//0m893rYLG2//////6qqWFP/7YMQAAwyweTRu4eqh4RIljc9oXAFwMAyEhwaQpIY5jIMZg8M5sG1R0WfBk2cZioRZEYBgwCAOI8e8Y4oojsw8o1QLhMaQIsKhEbX2iEpHyrjOaqcYcKV/FfRo28wXr63/9Xr20YboCkNNUAN///+Qha2r//////8a0Af2AAxwVzH6UMkT44W0jDzGvMVUwQ0uyKjCcC+MNsS4wiQjTC6CBAQOxqTSM4saIIAoNB3wwIUEwxU4CCAJBDwaGWZtFh2HGgtfn5ivK7b/xiWQ3Wvf9SN2+/////czs013LPViPKeMOTDByNFNZ0Z/6rbbHomXrQNYOADAoMjEcPDD8XTH4KzAAf/7UMQJAwvYizhu6echuA5lze3kzNzLRNDjEpDE4tDG7wZKNedFgAFEEgZmggIgIk2itxYBF60OoRJYlLFgR5qv3eWJuiWiwrw8VhUAgFcbdfDxLO/x////h9dhi//9WrxcA8CQIwDgyjBPCTMQgDgSJbMPICMych+DRhAvMJoKM/6YMqmTSXA3ITOGQtAhKOGQ4FDlGIWjJ4DQQC8YI7SIjlIrLzQ/HXXkX4UcFzD83t0t7UPvNLu/9LGodhq40+c///+9Fnttfo/////9qqn/+3DEAAMNYF8qbntC4mSVo83t0TwB8VsAw67DbBfOxmg6o0DBtFUMiweA1zxtTFWG9MT0DcwiwfDDSBSMHAD0M3GmXghWcwWYJOcVQSFDCsxwsYQ2HDhopIHOfhznUbPENMvptbu0usssssqtuyVIgs0E3f/263x1Xv3EK9atyQe2CADCjAEMdwiwyCiRzIvL7Mj1OgywTjDzXRRMTItgxYhMzHEC9OPgzpZs5t7OSDzQZgX5j0WkExhgogctgmbzpr5wbAEFDo+C/xgQTUT3VrdxYz0M0hOcMLseTdovYOAIYLqkA0asDdmxhE2bFxb0ZmWxlCIjnpN//rrdSJNmROCf9dj0RWmixDP+///2RJevO2BWQrF5VqoC9VAAwGxk1+mDyRwYSgthijDRGkCVocPpCJksiuGQ//twxA+DE8yzJG9zJyIFFKVNz2hcdEdLIx1k2G7TmZLNZgQfGHyuApaRK00USAMLzNCKHTIZOAakVds6ZCsOpuuJfqgDVE5nbm5l5n+cGY1EnWcJrZIchWnnLbWO605GHhftnBrhHE2ARKCnuZW+f////unoIpN29TdUuyZ6gINdikvjwwyzyTS62E//////1dddU8AP2wAYBkphWJmMciaoW5gVC+mWKScazYIhiljcmD8JSYcQBocJiYNoGJr35WhNQmOWHIrB3BQjPmhRAFCLVwMqIh760TeQzUfliGK25dSQNGt/+qGIRebhiX3///5PycaWpNRqipq9jL8v/+b/CvjIE0TEogopAgB5pfxILEv/v00Az6AIwIAXzA3BoMFYPow4QpDDxF9MF0eA0SRaDAwB8Nn0jv/7UMQRgw6opS5vbOfhQAwnDa7oTGTE3SPFAUoKzDxEMLzCiYyEWGgglHTGUcDKAQQKgJgqOwEy6u1xyYOg+OOpH5VTCSAGTPfUbDZ/mqY5v//NHh8gLhqOF3I/96///////+s1aKpBYA4AMYuOO8ODLP0rMIBdM3DiOMTIABMBeyZiEbsaGKQqCUCTBKhEVDEwqSu6NIl9rph6XU8pwmpu7M26e3T4z9y5TZc/N/JZh////9G9BtUAcBEAwTB4DC9FNMj4IIyYQTTI4AnNSo//+3DEDAORgH0ib3NmYiKP5EnfbJRw5mQrjGQKtO5bYGbE1nIDiBXNtiDB0wcVjbVQ04EOLBgapGU2huBeY+fGGlaHSNrUUCdVqSZzgMCeJk8XdmTr2i6N7ZpPDsFuTAahKVjuXqfKx+lbAAGGMDhjAYX4s05tX//6u99P6GObR////2sBuq/m68AMcWmNeiVOSSUN1mqM+YAPVP4OUc0ky1hdTJBHVMN8NoxrAojD2BHNpGDFGEQmZ2QQYISkXeYydGbmZjaEaADmSiYMAGAo7CADcVwFJMIWI9jXU9VV4pDdx/o1flLg0SVUKp39sSlrUA2NR0GgCR5hQeJAsNZ2TrP/qTV///////3dqkqqTx9KAfAYABQ/Gbh5GhhqmRbCmkcpGTuHGtGT+YgpFxi8CmCRBodwETU1//tAxBODDQBRKG77RGFVi2ZN3eDMaU1A0GBDwizXkwNDEi5sJpmkJmTKeYGOJ8PC6DgNda+78pgl2102b9mWXgtKkQkBWKNf//67PQKX///////Hb+sSAegACkeIgJMPyoMJxgMZjCNOX+OkQpNPzFODYTgRQ5cUM3DzKUdUnkFjAEJeNL80UNoGeJMlYHAkNDbl89Q3rPOfplTBndcqrT1LwDIf//+jRSf9FQOBQgBwS0wIA5T/+2DEBQAPVGcode0AIbUL7D89lsDBuFxMT4HMxEgmjGPU8NOEjYw5R8zESAWMK4HMwcwAjDNApMDsBUwLwCTA4ALMCYEUYAfBoC5KTMmIOYBHnKCoQlbRIhhUKgSWwY6zX4IltHc33XyWYkUIMSrMOaIgvZ2w3//ctDv//9P/////vfe/WAQAYAQAOCW7f+AAAAAAAAYCgqhiLnFGEIFkYaZviihgehMGiGNMYFYRhmriYmEWEIYCwCZCDGYHoFxgPgLkoHhgcgOJorrKSSzYzMlazHqUMAx9q6NQOCaFGcHzafcERpexLqjrLFZF35uBZVwAAAAAQABxaGX3gAAAAAAAz5H/+2DECQAN3HND+dwSAiiXp/89QEB01AwYyiMUz21IwOBkwTLw5Pj0IYA5jMowfIAyPJQMAcxFCEBAKYKhWYIBIDg1AQEi9A74pVPddFMQIB2lNC/Nxl6n32fdkEbj3YslZAy1Ibl7tQ/rn/66LP/7cb4AAABgZADA1lH+AgHAAAABgSgOmCYHYCBzjEjTmMCwDowWxWjCIAgMEUDUzbwkjAlEqMOUIkwGgARYD4wDABzApBYMDADowCQMAcBEwqgMshBioVuKUBQcGWifDNHBAglInBDwSEjnECBuBlxCIWQXmHgQGNuFzouEnyJqKihcg9//8oE4s3//zRIAAAAAAAMklJj/+2DEBIAQqJ81+d0AAaGNKH87kEC+LDQAAAAAkBQyLXgzjHUz+woycL8y+zwxCEIw2BM0DdsMb02lNQyNEIRAGLBGYVgunkYHg+YGhQZQfOITAczZ4Z0EoE1SXDyJwFWD18aanQNsljPrBMSZ1EYdhEHcvUumJRr8LsZq8ZXI///+SSv3h/USf6ta////kyMFQAAACAwBHSaXPwAAAAAAADBYGzBkwDGcTzOSUiUcjDdWjIUfhoJzb4mjOMfQhMxkQGQoilYFiQaAEFDCAHFDIeCyc8FTxq19nmVMbYKoho4/1hYcyAG7tdvy4aCd7tWzSXvhMH//ulA1AAAAAASKfA9llgD/+2DEBYAOUK0zudmAAasO5/85gAAAAAMfikNC9CBAHGNbJGhZamg3eG2akmYAbmaBjEyCGhDumnwSkIFJHjoCBwHGBoHgEGgQ1EAAW4I8BNAWrNRPYZBEGCkBawtPDVpsRcWBcnBuPD5jxef/0E/5kOz4cV5iam6Py2nBoAAAADIBBkd2r/gAAAAAAAx4ZTIm6MODMxO4DEYHMyQgzGdBplGf0EEFo4IRjN4pZOBg8YFBLc10GBgEOkXcwJ/U5W/T6UPU0iTTKWDBK6aVK2nONBd3uQRZYaTyllcj/vwl3muWvrQE1mlVAAAABAAAByh1v4AAAAAAAMAMZQwz0NDAaAoMF0T/+2DEDoAO3HND+eyQQfWS5r87kABAFAMGBuLsYVIQpgehxGCWCqYHQCJiFBwGDwA4mMYDgGCFpgBAJmAaAkuY4ZQNYqrIzAQXCjVMw810vK0liigTzxWeLKQLfjDLZibQajT/Lvl0ay6y7//3BioAAAAAAAJmcOXsH4AAAAABnOUJn1rhlIcZk5yhjQQZjm2xp0wpokCphqTBlmAZlyhBiSABgAAohBRI4wxAIwTAkKACqECigHowSgEOiiXnKoM877ZXPXtG0v2HROgvwwXQRPlzS5a41fuv/2ITv/tYv//////24vr/9gA8P1UAD4AIwAgsDAUC3MLQPQwtwvzBqDLMLJH/+2DEDAMPnIMufewAIZaPZo3dpLRgw9CoTCkEFMTMHYwMgiDCHB3MF0BowHAIUEI8BGJASGAKBqKADGS5SA95DuDWkSGvvIw6q/U3D1q3YncaScvbr09fdeUSiUXpqbpKlJnnXp6fuW6WmtPJcvO+xu7////////JWAqD4CGAorDRwmV4nmHRSGKQ0mw1zGwd5uNQCJ0xFZNLDQsCCQqYCHMEIiYaFhYdR9CpAWQCA8IAGoReGhC8SNCo02mqSpHl/iRRldG6Mc9IkUYoVAsav//9np0zv/////+qJlUARQAP6wDADApMGYLQw9gExCHGYR4fBjvIUGPC4eNgBqiZGGDgaqD/+1DEEoMLwF0ub3MkobWOZQ3PaFwJm4AGgUPjR8P9PBg4CRIQ4Q2CGwUl6xddbvs8cSGakBZRiVSeVyKB8+clUujUmpG//839mpXu7ewAfBgAwnQzAKJN9zo220AIT4YSbHRhtkOGNWOiYR4uJgUARmA8CmChMDNTjEszHAhfuWjMy1MsmMHxCyU16EHXhpc1qVxpoa439XZAU1N0kLZdEXwlfeXaRwHHlV7/+vDcPyxpl7/pcO/07rupagB+IAAqGiBQwzBMEZMPYHswngrj//tQxAoDjIBxLm9zJKFVjCZN3KVcIrRUOT4w1cmTMQ+MohY1GOAMBwtcVqGqCfgAPSPtMYONhAyWDIGQJKfh5zY3EX4pYYjtDJ4i7UNPvD8tjUzKJ+3FLd/f/jS0uUi/+b/+/+/0AGCQOmFY7GBpyGYolGTZhm2/CGkJpGXiNGUoXGIgfmIgkFBJkhhoIFAhpuhkoYmjoFKBCOIRy4qzIGiAiBqyqAGCZWKFbSNHSi7FG2t///3I/5y9dQB9YwTBUDSMOMJowZRdzFeASMLsbP/7YMQKgw3MXypvc0SiFg9kjc9wTMw5WGj/aDNAAs5w3zQ5QNMC8z+IACTFmhiSxkrAAhm0AhQGCVptBBhVQszIkDhQe2OiX8xaq+EKp5LG5RJNTNLzdyDJG+xzg5/6dVf6wvUmqn9P/////ohxoA9gIBgrSGP56eswh8GZmO0RGZz0cBl4lwmL4UqchzRwYrHR1+ZDJxgo9mJjCYMLpIdRZtGnheYDJpkhJkTiMaD8cEgKCrTV5tBaWyhtlBXJaAr1jruQG/yjs/P97jm9jy0V2CG0tw41uMl9gcAGCQ5Yrvu+lej7//o39n///+t3uwOy1FIAQegAwRG4DICZlh6YsFcYjP/7UMQIgwuAdzJu5Ykhig4mTdylXBWbmaYZ8oyYREYYFlCYoiqPhngUYELhFVY1RDAWNockJGHAMCJLIUPvS2y3YsoR6tEpflWFMTS752I7ZrvZa0ckMJSzT/9XvTb/kAAh8AzAcAzE4fDKoJRgpzJM9jQjKjMcZTQUijGovjEQXihDQwrC8JpgBUcFomgMIRUzTbSFUA5h90I+R4UuA8yOcQsC4ZpMnCkZzpakW//3SEl//9S+6xmyy//////0dG8sugGB8AwuTIjDcxvJIxv/+1DEBoMLkGEybuUpIYML5g3cpVxDwwWTgyZzozDMoy5P8xTLMRhKYponYBBjLBKyg2YHJEXZcAx6QAyBi0S1nzc+GiJolZISY0TYlFQjRKqPYbbz///7F+TQyRY7//////9pQADiwMdLkAkmYjHCZuBeZPD8bZ+4Z7s0ZbDgYfFcYwhgZOhoPAMCGE0QEMdAQ8UJnBY4mdMdZRR+VRtfkoKuIhKqhJRGcIx6mh1KNoUKLf//V/7ezFyHMfd////IN1sQ6qoAcAgAwXggzDrG//twxAUDkSB7IG93ZKHwDyTJz2hcgMJktoykQfDITIjNOu3g6Fu43a4o3Rd03ORsz6Z4WfcGshnTMYaWmL0JmwSbmVCAaMgwjA2E0AlNEHVXDQEoYCQRWNVRgjS1NFL4W1xmL6vSjIr1Uu90+qBnDY3n539crmBhJhICnW79HUMuT//6fYtdP/////Vd7lODJRJZaDAM0RI4+qDHPZO3JwxMRwTGPeuMIkjUw3CezHyDWMSUBcxCAKjCpAUJDq1DGGjYxDRIzHmgAdMK1Mk6CMwgQiIEl1Aq2WxO87LSFT2nUdxrz1QdLZVLo3En43qgl3ef+POBUQZUoCi0bsB59n//W7lztwC//////6XbCugLgcAMQEoFRvMbCeMTyXMlC5MsNUMpGTMfBrNEwbMVhoNrlOOEMENEQ//7QMQUgws8YzJu6Qkhkgikjc9oXEwYMegDI8RgBkKYISKi0eC8agjM6UOhWixYEQu8MtN5IrTKUd///93///////+v1TIfAiABkmOHYBQfDnZlHnGJMMuZikBRnaC9mViZUZWAKBgZiNmLeFuYMoAQRFJEwloPa5NnHKqwyIUwG4yrIygEEhQc0EQFWKGNZzLc1rvPVDRVHV//9nSpf76L//////++eqSpFR/xGADCFBpMLASo//tgxAWADWBHKHXsgCIiEqW3PZAAxlgmDEYBnMJMMgyFlhjMuIwMqUdcxDQ4DEHBQJgODCQBIMCgCoSAzGgezAJAiIQHTAKAcDJwFGehJjsonhjgOAa+vfk3K31VvVXv4SgIHC4IDQfiMcCDj4v/9Pbsb1VKAAAAAAIaOa8kAAAAAAMM4PwxiUJDAQBSIRpDGXEzKiWxj6CLmPUHKYqg9xhuBPGt0EcYiAV5gIgqmDUBaYE4CBgQAGGAsBsYA4BYciDjzpSWOafbBU8qRSTHpLHEYEASoLbqc9u8P/MBQFvn2UoYnPfVWHWN/+u0ONajOMwUGe/Ln/7Z/5//axUAAAAAEAAg//tgxAOAEJytM/ncgAG+jqZ/O4AANBi7/Z6AAAAAyyRMw4wAx0LsxJVASLc0skw3qPA0LJUzQPUyXIQ7WPAznC8wPEQRByYhgEEBskKYDgAMlmICYMrwgladStlbludC6iZDEnNcCLaUWZXz8w4KrWppbtU7FOVtoou7/1oard//+UtP///giD//+taw////kyM6AAAAAAAAhlCF/gAAAAAAAYctUY66QZIEoZ7yoYEA0YQGgd5PeFAmODhRNMB3M5FMMXhsMCA5MFQXAoWgYWQEEREDohgLrAGmdh/2vlao0DqJqtyedIKNvO1aE5/Msk51s0O/jfw//BBFWd76KxMTJQAA//twxAEADiBxOfncAAIbEyc3PaJAAAAgAlRpc/+AAAAAAADKsizA9+jHAuTA5yjEQZzCMXjr4kjEATTawcjIUZTLY6TDsTjAYDC5pgeDBggCZhSAwcDQoFcZA1SkGFfNGxYZXAc2IIGtLVOqsy5iU9KmIL3x97IO7UbgkHz/WvA2P+XaAAAAYCJil9wWAAAAAAMI0EAyVDnDCpNsMNdMgwRgWjCNDkNWgeoxUQKzeAQTMC4LcDHGGFABOCQBjBDAlMA4H8wZQdzAjAlEIBhjaRpgRuMRlmoJJFpF1qHLSJACCqPCebnKYlvoeymqXDHthp+HUqWa9/7+Gdv1yO4yym5/////P//xrxDFAAAAAAzZ1f0oAAAAAACwEhg/AeGLmKKYOpohh4DHkBUhiRDSGCUEYa0A3BgoBf/7YMQXABEQjS+57QABu5Tmz7sgBOmgsGAYUIdpgOgKg4AkwEgHgAB2BgdjBgAbMSbYmKkwzGY6iW1MYEaDKzChQwepAwQ9BkaCQY/vMWtRgGAkkIdDhC11GIGdxrNL7KYozqmtf3//5tLn//LGtaC3n4EBIXmIAPGTwmCRYlYpmXC5HJiGGJR6mIZIiR7GLYFAYigcDyfKUYKAsuGEA2IDg2DAEQMACRif0iOJEujm59zcipqYkatFaybL8tmBmV1f+s4eKhNpIf9ZucNEy4Th/+L15tG3//////XqTQoBeQAAwKyYTAnG3Mi8AgyrQCzElKCNTBNQ5iEVjQAB9NvIE+oFT//7cMQTAxVQqSBvc0aiYZDkDe7szHAJMZkoymSzFyGEIcO1IEv5xwJnZJp2RhXpwxhgyA0GbKYcOiMmMRBy4r6IDaieqXSoE1V2pNM5cpyVhWxLDrycMWAq6wzz5youksmw5aliOjAowrcwscySgOFwPYs47/8NzdKLATNkDFD4IdpgNBLSrwn//9nq///9i01IBRQuUAXdGLAHCIAMBgeswPRgzHiHhDFZTHSP2MUhLY5mgqTOkPEOB5CNdSXM4kFNBBMMVfTUQAxwvNpbznkkBeBkZ+ZbjmyCppAWaoShDCtFaKU7iJAIYystA8iukrXDZe1yL1aXC00pUzkxXX8+7QZyQqI5jxkGK6zH5lrjKUtLZq7VP8CkRZF+R9anWskf9f///9xJKZhgEDUePTSRMwLx6AAgNDD/+1DEA4MKzHUybuELIakKZM3fbFT0iDG03DJsQRQkDWVoDv5QzEYDzH4yTCgcDIMDhIkSo013WIaPBcInxS59TmAMsTLWrIoMcKevTdUILTksoBQm////poccwS//u5t9nkrCwHAjABi4lxo+JhkpHZpIqBjRh4mgilcbaRoJgslLmE4NMYDAn5oHcbMahUCIiMxUNM9gTS1RXhj5sDYIsGJoAWQmAjBWsIjPS0BM9zmAo+O/IqbUy/tJGrW9n///vGa0pyDJj//////7l2IH//tgxACDDRBNJm57QuGliiUNz2hcixAAwVXDA03Nnfo0LoTBEILMcNVQ22h3zCtAUMc0Sswsw3DECBDMHcBUklGnqBRQCNx2lx0xxkXACvHIVAskTWR5Gyp620a+7ksSFZKySBHAYg48XP9X//f99f7dP//////0hxmx/oA4FYAMptQ5ISju9dMg3QxSiIzJwT0NgQJYx1SKDFMA+MNgFUwywdwwaYdsA5OI3JpoJgX531gKFGE6mrMm2OGFGkx+C1wMHYIou7C0WVwuVX6tqasV30nP//3V9Qot2il57//////3+xEDgEAAwmRczF4L0M/obYyQCNTGtF1ORq/Y+wk8DQ9K//twxA+DFDGdGm9sS+n6DqTN7mzMLMSEeAydQsjFjBSMPkGYyXiNkqzhGQ/mwP1gzB7Y0E9P0AgMUnSwI9fkgEHCpgQIWBFRsOEgIAGAAJdpL5xGmwp9QqACAHaRbQTozBARGwqBGSBjS5/n////////+lPJWm3bI7pRao33ulk76/9f///7J+ZXUHW17zoZ2CIFrp6W+9A/AQAIBkzAvD/MW8KgxrQPjDHJ8MuhR42SijDFCHFM8Xc5UIzpBxM1Cgw8ANkAgy/OALwVcm5GxhI2YhCGMmxiRADlEoOWsu8yCGEvH0chS5nUbt6p95Y7lL83rTksOcbOnrJoGDCBigUHBbD2n1gA7///6703f/////14cxQR8aMEqHCYIlaZaHyaZBaZ+OAZp6wf5IUahLocb8HXhIylnP/7UMQRgw6sdSxu70ZhZIwmDd3kzAAwJRmMPGYCnREER0DpBCfNSnM4nEYdppMJoH3afdZrDTgP23eYdxx7b8QvGbdIufDrZ5vG//8lT7M2dceSqulQRR/+iYfb1Xr35Xb9H///+v1AmDgABwSmJJMGOKAGXoNmFYjG8taHehTmHwHGkVpqywcKmGeAJhWlkwukdRxvoK0INg2sQtGCMGHNWfinisjf9tqKxCJBbprc0/lXtWW3s5ZY5rEhr/+72IUBAfUMyJ2N5HDHuk2Z6Mz/+2DEB4MMQF8ybfci4dmPJM3uaMwR/Nm56OqFJMOELMGCKMCyFMLBcAAHihYXJGUTNlIWh7cVAIGjHRAzqHRk9ikcqlrxantz8/K43S0Nykz7+6GifVv///7W6EcMlK99P////+LabgB7EAAALgYEAjphnDvGBiMWYUQ+Jiaq9GywRyYQoshzmlmW5IcWHposImKJGZbGGRBeUDuBHiBsQ1MY5kgi9hkAoRupI0iYfZTF6WytR+2zvvqAmINBa138sJPCr/f///AuAXYZZGLAf/qq+Ms7eO///////61KCvA4FMDigyEBDK5RMQk4yoizRlSPgDQ0+YDMhSBRZO0kbXKoC9r/+1DEEwMLAHc6bmVpIdGKZI3PcEwKDAW5lA7OiAsvephEWh4XR3Z1aE9qOcvN1q4coOpf/ddgkgAgms////7J///////9SAOLEADIa5NdUw/E6jwhrMN8RszxFCjeWOSMPcuM9Xlzt4EOhgU2eFDGZGMQFMwsLTR4EMkjUxqDTCIfBzBMUC4wkEzEoJMTgNdy6EJsra/edaULyZO7sqtY2H6a6cnwz//28p0DCLq71af////1fuJ2035xVQuBEADAPHMIyU8WVD/6HMSMhIzB//tgxAoDDThJJG57QuHqjKQN32iUjxjcwMqMwQUAxdg8jFYBlMUQEkwGQTjbizjHAKsPcOMSXM6fFFJJ2AWsFezNgwErGRrE4lPzT8qdo6sNqWsRYHWOjP//9se5+7usJf////+t9C5StahOACADAB4zCFPzcpiTj4gjjjgDLjJDk8IbMco3QyqQZxoXIxhAtTDSCIMDNMu+MHNC/c5kUwsMyyk0Ps8h4HIDSK0E7OUU0ELvMxLuqljS9i4DEXPoIFyfejpKtO0sFGKFgEI0Tb///+zfu6P////aAlWISSxqFgfRfWoDgIAAwsADDG7KoMp04oxwyDTFoM6NM0Y4+VJETHVa//twxA+DFL2dGm9oT2nXDCTOvZAEnNUILkwyyKDJjE1MeAKQGgjmCSEGYSANhiDhNGBMGKYCgGJzip6LJ37onIOJJCFg4aXMKg032pDgUFAC26ED2sWVGp2LAlG4YtZ3FAm+PBzNp6JLZxxasMLiN/ef////Xr/o/r70Ql9fa2tm9dNE/12//91/35FNs5UqxzZmOpzDLHawfuQWAOAEAYMwmxiMgCGHsPOYQ4uwcXsZ0YzZuBD6mCUDeZdYVxhBBumGuBgYZgCQ4BEHACGBiBSYOwCRgMgfiQJARYaPQWwJnwoeCgAgpC1sTqO87txernL6npuVd7v43HncjEDwBcNfd////6/o/////v4lSuvqZQMAAAUAMBl2/eAAAAAAAADDIgOEBgwWfAIYTFwkIU2f0WBr42GoAv/7QMQTgAwkX0/5zKBBiYssvzuAmCYAB53I3GPwsPFAVCYyAioBguEgwJDEKmywLOlD37FgFI4pI1HYKynZBRU1lDMscWC7/mokWi37owLQhQBqA4B7N+yBwAAAAAAAQgQYjEKYtieBjPMkDXMSUxMhAKDgyNBiIMQwLPOjHMjgQMEAFBwTGAIJpeGAISmBAXNA60aEFVy8i7rAX8b3J5BGhtgMNetL/rsblR++qJ99/oUAAAAA//twxAIAECB1KbntAAJ7laW3PaAABQuXbgAAAAAAAxEhQTBYO1MA8G4xYAyTDZMsMI4+E1CjdzEQADMjIMgxjgvjhyDlMTwdcwMAEzBcAnAQNIGA4MCUHgwNgXDJsgcJM5bBTc17s3KItav8HDjMCFIKZGOFswToWM0y/4GPNe94HVcyy+xaOBv/zGgtf/rCuroAAAAEC9S+/QRxAAAAAwwgmDAINXMAYCQxFCPTGLGHMh8iU0/BeDF5CGMQYK8OGKNAYugx+QWTBDBcEgZzA0AEBwHRgNgYmAWB4IFIOZmIOJrBcIcAQDBStRgR4gFmEKEIcWWFBp22Hv68briIcpoLGU4g4AwVOZmxddof4cGhpMKolsJmPtAzvEIlRj//6sD///8A///WtWNf//9EjCYAIAIFQEc5p//7YMQEAA1AZUX53BABi44qfzkwUNzgYAAAAAAAx+Msx3i0wOBcwKKMQg4YeC6eVI2ZcDAZYDCYQAKYNAwY3BcOBaYOg4YHAGBghMEAJAQMAFgKKITlATlUB3VAvAia4aAdBZkxu83lzX+0F/b/wqXd/9ymrLfuIAAAhQJwii/GA4AAAAAAAMAkAGHswsDjBDzCAIa6x48yCyJwobGUQQaaU5msLmExgYcGhjENDgdMUBYWBws8T8BqcB3iAbINVBlBmRoAIMASUEXSUD5S6SaWSBP4goQZH/5vAAABYBOr/93nAAAAAAM2TzNQ1tMljdMi6XMFAXMHC5OJGWNIwTPFC5MjB//7YMQVgA88l0W53JICBpLm/zuQAKMrBfMFgFMGQTGQcCwNmIYOKkBQGgYQFgGq4iCi/CVFHKvGoqsUiIhlsbvtrLd23Ib+wKDu+umbizf9//YPa/9u9Y//+3r//rkXv/6VwrwAAAACAAAiyrHc+4AAAAAA6JBjEPZiuqBgRAZiMJhgRN5kwKxkoIR3sKJkkOp00LhkqHBggBIQAhhSGBgoGxEGRgSCIcIJFgXEwyAMwlOqdqEgW66dkzBI6zRXWT+qCY8TpuuW3jRIiWmVY6mWnJdGi/2kXq9FqGpTY7/8w//+blPVAAHoCMFREMnhWMf0TMewFM1kbNiWPOqn0ChomMhLGP/7UMQPgw20fTB93AAhl5CmTdylZFJcGLwoGIQIBcHxoCVMwMBRbIFBoLMPLjNQELKBtwsPq16JPTB0ZeKxC886SajvPmI7f+YlNHZ/90/zXP//+Rf/4rp7p9DRv//////9i1ALj2gAkXTBobjJ4qjLwGDC5KzOxxztIvjPA7TGs5TAYTRYgjBEFjDXAKS7jWRN4QDWgAAC0jCIVCFkEmIpDkTtvPLeBt1kxcvDPywDn+AcbQR/OlqiZz/NIWbVz//JN0ru1WerdoUA3iwAZOH/+1DEAwMMxGsubuno4UGLp03MmOwwNLUzXG00HC0yzD85qoE/8IE12PwwcOQxHA4+9g+agwosWfiS05JQWXmNGmKJGOGqGGGBjBEBNA0ikOQ0HJsOa6lMRvXDAg6Uanq3HQxje/+C9cS/8U/9yHxApc6nr/QAAB+KOEEKhsyUFTJwMMXJI2pLT7iLMBGQ6xzkBE6DTMR+LlqDBzpeoIXWECiCPydSfUjncoTdIpMSk9jkV+0E4KV/////3r97qF/////0eTUFAegMwMAwxNJg//tQxAUDC6RdMm7lKuGEC6XN7bT0yPLYxVIcx6QIxZgE9ISUx3QEy8DExHCYAiqYHBcYLCYxKeA3wjUFHpWoCjQFCES9BME+syKQZHyYsNtRjH1sY+BiiRP//9e92ja7//////7dzosAh+AEYFQXAkJmYUAnIFDeMOkJoyRSWzRUDZMDUJM+umDM0583NcOASZDg8FiIzQyHSsWPQoGiieSjwOIgQCrGgeQsqbHOxR2BoFv/yoTs6G6b//3Nv0qs////////9zbmqgcOJAgqYv/7cMQDAwycZS5u+0RilhEjze3lVBiIT4JTYyAOUyPGk5DfU0VApjDdFQMGYMkwcQWTzSD1GgKeDBIqdNGtFrRwgY4VDmpn0YCUCQ9XEBQRD71Oy+m4pUc3//9/9yAKm2vdzv8//qs/7tfk3W0f/////5g0BO2AAYVorRkkCSGQubSZIo2xk0IVmPynyeHSFhlkiMmHwVIYmw0hjkBEGEUDUcyjnGMZphsYI6HKTx0C2ZYYm++xukgaKmgVI8BE/HvMgRWEaPBACxYOJTCJLKxT/Xf+X2wqAv1/2mt+9TKFAF0S1TNvkH0rjAES5MEFhyRDeI3mtQemQO4LryMo7uiilJvWnM1/k0dSP///8jtaKBoeaQBGHq49dQD2wADA/EpMK4Z4yXCEjJ4CSMHY+M0JkmzpiNaMlYr/+3DED4MUbIsgb29Koa+PZk3csVS8xcSozCZE7MY8AQw9QfDc5E0Q6NtHjcmk1ZQMhRzLiQ5tNM3URGiG+BFHVTNTtNlDYdCMQhtciS7lRx3GAKQHAbKGcUrK0UWpDgdPaV07AUiWcsRRWjRMbMyUM9JJEREfQwLImCZmbCGhAHKlgkxavmuzVoHRf///////5FCCJKp5L23gCb4BkJTgkgTJkLTLkOwxIjbRszwgCjO47jDgrDCEGjEEMjFUIDFVEgjCPOUgHXE4YUIEUJNCGAkgwTLAa7AbW4uFlcy9c4T+mXnrhOi6ZnYl0ALhILw9AkSUEmBn/bheEtyt7EM///////rVBXA/FHCCDQqZKCpjgHGNEUaklJ7pSl0jIxzbFQ0AZMUzcuum4PFYeGhy2AQGFgytSsUa//tAxBmDCtBxOm5ox2GmDmXNvuRcoJgCbFrYjcOaxo4lDpkkAXf/720hhVn//+r/bV/r////8lkQJxqAjFiQ3u0PBxDF6My2Swxhus/Wc8xxZEy+KQyxEIwQJclEQCrOqDnzrZBypsiKYiFY6CyY1BpFqxH2cyiRwqNyjtuGKWcnaXHHWXdw1D1/WW5ttVTRxqV7//v/c9HPM//////t0b3JB3taBMFwSYw5wHTECGRMMET4xLz/+3DECgMOOGsob2xJoue2443tyXxCjKhSjNYwDEwvRljHXClMOgIQ/XPNMZBCVAU2AxqYMlGMD5hYwIjEcYTKRgCB4KIBIuSRYuuZ8Xqcd5W2aBjchqyZ//Ryhhci7/kFcopf72c75B26d///993nNguwD6MAAKlHGIMPqYjZ1xlyEmmQ2DUbVNO52CMlGhmd0aaQaRinkgmEmIMYwgUwQtDDCaSwHbLZoMGYazGBr5vxkZYTgKqMyJQNzmQAAcBCAJqwCCQQYBgsJs7tOAxBr8X7EGUMQfik4yUwEBKoEYUBIFoHgwOMgLjMiQyMJEAzf/tVqqRIuPoAwgOGAKQQAKQuQiDVvRsylt//pdfdH+tXb/R9tf//r//rshVWhZlrXdS9ChQRe7Nut55KA8ZAAMXkaQzNiRjG//uAxAYAHDWdGHXqgCoHjmX3PaAA9SVNIcbMwumFTbp63O86Ug1RllTQfDOMWckIztCKjLmFSBQfhhgBBgQN8xewTzChB9FAigMejUDR7WAz2EAMlGADD4bACV4IAwEIHPhl0EQnJAOKDOgCgAHWDGRAysHRA20JsUcUOLJFoEcgYkSYGVwkBiUFAZ7OYDS9BYlAYFEgGNx0BjcXAYUCYtIYDC0cQTK5gaf7stR8mR9CkwMDBcDDANDCpRHNNehZ/tV7q9Wt+p7V/Sq00PdCrsn///11aq9eyWtB6k1oU0Kd2TmFGEvyDydQQAAAQABqI9PhQAAAAAAYTQUpg9HemAGBwYBhEJhZjnGHAlSZlQaZiNBrmI6B2YmgQhmuERGEkEaYHwCwQAODgITAmAkMAgCAwLAATCw0aBGkS8NGOGSZgx4soMYVHkafYiBqbNTcd/7a1o4zlu2Om2pbmTjMUpWMQe3Nbr7TUPVbPpr/+2DEAANPHF8mfe0AIaeL5Q2/aFwIcRoAwLxMTC9DFMVsRswex0zAvJtMd5i0xGjOzEdGMMMsEYxkw7DEFCQMA0AwwGAEA4CsCgVmBoCCYHQHYsCyZ0kYIQckWaUyiGkmIwcckMoijM29bI9TW41RbrXv/PtSMU+fymIP9/sphLemgKz/pWj////9/VTWAPjQr8KiZ3gsbnaFgFUyalEzLwJPMFEjUxzhSTDAAUMJEKIHA/kBgyA8w7w6Z4ECTWGwM6MKcMgABIh6kel7MeiDyU116H2hTrxSMzufP/eMRf2NWvBqJTpolUQaRZ/+mLdCP/////+rqhH7EgDAIODIkjDKERD/+1DEBoAPoKMmbumJISIRJTWGDZTH4tzH4PTYS4QGDJgmABmyZBgkMJ7AppRjX1gBkeHNSgEYYav8s6gmVtRNag/0PXOlUB84bOrWs6Gk9P5fKU2/52HlTs/scIjM9D8AQhrnKUbJhfRxTf2FgEGMaI4fKAic4eSijsGSFbnz////+nvvDIAWV0+8oACVTroSQ4pjwZTgcphQInl50SFfLFmpSDxXdOl5NYQYnmSlARLUmPBCl2bJVJhRqTEwE1UmNgqCrEQiJQ0ITvxKqkxB//sQxAEDwAABpAAAACAAADSAAAAETUUzLjk4LjKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqo=\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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XtZTs+S4G3ZH7f2o//////7qJaK1gwABQAAAHAr/+2DEBACPnKc7reXtYamU6H2tvWysLFnZDLQyAfMQLjMxkmHRoHJFwzhJTAYscRmjxW0xuWEoQLWAjNd9ZN+UM6xMgsaGh8Q6gQJfxn0DoUPorAJB93bbGETo1uWEtMcyW0vmk7sZ0pmqxG2QtHnjIjFGxkLnxjdcYLRz7FGb/6PJf//////1oCDHAAAGKggB48nqgiOS1A1I0jsL64HdYZLCZpoTXTSa5JiVPRJ9YqIUT6lumK1fy3kwqgxBggpY5AiEwHWIHynjcaRHTIZVwhFaq+f//r21y4+ioU80j9mlVHz//I9xy+JR/////////+vkVYKCASAAAB8KyVylojAuUDP/+3DECADPwK87rmntoiig5xHNTawFkUwUoQEv1GBwBGNBAwFc5na1gYBxRubm0VMuekp1VZDqu/HJkLEHkcALCjDAX1IDR2jSuBlqIjeMuL1uvbgsSH39OTJ///U3nzao6n8OhSqukauiVOv//7Quh6Vx05r/o/0FCYJmv////u9V6YaAAgApGedAx0QR4cmLwoZmPwtGmkEoiNCDlMUQgIyDgAgVKCqVtHyZisNvFrNrkfluMlMChfcsBARFQGEwIgEGnHt3EMEDI0Lpegox83IIAGBBRef5EDYO8KOeHLDaQ3AxeiXWU+oqFdahN5E4bgUH//9r1qQ+rV6bUiNEcACpFLH2/////uoJiirQAAAAAPxGRvA65lsXJligiMPfIygJGPgoLmrQ+WaBAtM70MIELbF9W2qz//tgxBWAkh0HN05ujeILoScpt59MJMAzucDQu6xla+25iEYU5d83ODMeBliIYkUugeDB8iEn7ngQBquf9D5J2EUuv1H4p8AMYzao53WQobw1KL/36QZMO8xi5BhLJogx//67bf2ZfUu6591JnA0QD1pDANkf////2e47iAIA7EdR3Z8MdWrhhIeGQDeAskLKYgbF3Cocf42BhkyRx2CYSFQfKOtfkeMpDg+XOiDhVmhKEmnOoOoFCDAio7QuphEHhUKanGEs1cO1GTGwR+cv/4Nefn+YisPYx55DsN9AeU67Q2yFr/Iuy1i4GCQqf/+3b/e//jxIRRJ//////lKEggAgAAB///tgxAOAj2StPazzJOHdmif1vEG0i2V4xo9QUGipODb+FA23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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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RAJcOPtsIxghi0ESMMMJgVhor6EQ2jI3B8aksw3bDq1T84Nw//SV3//+6AHxF7KpCMfcimns///q7k463VRs6OhAJiABgyNoHtEKxGYDDBgITntI4YwBaYRqaaQXklz2KB6QVBAkkULAjhWDzYIEQPwek1pWjvjeao/wajs///9C6+6Rp4k10W6v///Od2XW1qBJglQA2imA9AYGIwEC46MDd9vO//tAxAkACThfMa5lY6FLC+W1zKB8vILCkLCAeDkjSLiDs0Q5DvGEyOLxulPiiTD0quRTq7rxsJZI/0yT///47nmdbSkn//////+xtCYHQA5EjxxIGYdCY6LBGTzIP6MXMREEqwVGiydwWDqSsu638QbE7tJPyb6Jo8spFsxR1yDi5A/0f1Ov/9P/+7MrtPvjH32NFbf//9V9z3MvWUDxpUYB0A4FaBBQXBcFzBQejoahThIiyYr/+0DECwBKFFUnTukjYViLpPXcGKwOVLBiBASTQuCBhBKtvVXTHidHFN2JuMThLjBN5R8yB9T///3GJwZHLeKAduxLvood////63Xsft6fWgGwDCiOARBsYGAUYUiafsrAAi7GgMObx9CkxGYeHL7JEdPCXx6Ly6HIEn3gFmMCUdIYtD8C9VX8Bv//9yir4yWAD1nomGMa2hK6mN////oqRcuxH+qlQFoEraXH9gbxhwJDwanaxf/7QMQIAApIXS2u5OPhNAnlNd0wZDC/qeRpYhAauFYyIOgoRgunchlkDTkCNmzr34xpgo+ephDFeNePEP/+1dtbLXPqRYlSCTmCNIr/v///2VzCVDTVIxA0ABhI8CsBA4KjBAIzCEijs+QTuogENW8YUXQKplAeH40W4aFQJ7ll1W1FCtozC/Zt8kk8sQ3ZvlCX//+1q6vs4///////QPUlLgKAFUHwAYwFwNGECQHCoUCpSheb//tAxAiACchVK67gxWFcCeT13TBkjAUWxwGBzhjVQipxOdHUEYnkrujF6WfqRMKIEUXjfmlIRtHbHJQ3//+1b9cWje69XrT////9tW8QDUHBx0gQAGtgcCtAhAXGAILmEhNHnVGnMMA4WCEQjGrUGVo1ejFKFyLitAghFxelMzpta9CWfzPYa/7Qsgucvd//5hrNC02uXGbXuIej////+LrzICLA1/XvaxVBAJAOBEQDA9AEKwH/+1DEBgALMF0jT20jYWIKZPXdJGyDBBAMNVERQbJygtBwePALJSVVGmaZrgYFVfHFDmKAp4oUCJCyncYpZsGv6RdNb9Ga//+ipKtohMTrdbEs3+j////xRybzBVV9yPTk0NYGAAyffArYJhyDJgyGRg4RJ5osxzBZeo2xNIdfpUdkSafgwgKSr25tWNACYh0jXgqzcRLdIMkC0ehi4P///a6m65i6BqWVkerrS3///+mljnMtCAto/K2LQcAE1nfArYIcRQ4DYIIw1BiU2MIE//tAxAqACrRNJ67pY2FACaU1zLRkEUqhAFcwccoVavIVsdp1itNHWPJb07nUbj2NToL6KwpZlv//9t6EmURyb0vKiwo0VRe+23///1UMTA1FZn/nHUATCC3vXjWMIoF7IDAIRM49I19QYEI7bbyklKBJ7KcUNfs8sPaabeqo2sQqzFzANhC6f/r9Xv3VAQUalw8Ik2sFvR7f//6pmZoVvKFBjP280iJQAYNZwIkCDhqYCVQSNPr/+0DECAAJ3FslruWjIWQLpHXcvGQtNzQChhggcOxwUpFiLMuBhS/pED2gv+6aKVGYUwriim45KxgyP//+vSmz9bOLJotv///+iKOcyTUoBj/019RBoALux4DSIBwtiAAjA8czmeOjrVRMAQwVGfUYZHxKWYApyzH7cU2ab//p0yxVJAmtYj6hpN/vvfl9Mf///R+19vsfF1JCzY/Fhfo///1qmybpNdFGotNbmSAlQgRmnPgVsP/7QMQEgAr0Tyfu6wIhLwolNdyobIeEsKgeYHCUdzI6dYoDhZi0iOxAUuC4yiOjL352rK/TpTmff/98aqiLxs8h7ur2pEKXv///cR2FB8JdAz5KrvpVd///empxuDBEy9RH63sCQB0b4AWMISIoHAQYFguePgyG3qgEjwwRnZUDXRnmrC38gemEDMTU/3klyKgDRKrv///pzORSNRLrocQMOqIEyv///68/qXFqGf0qYFxDo/gA//tQxAMACXBLJ67hRSF3iuR17UhsrQRQOQGCIoC0+waAaJ0mAI6BDjoBARQnzRXCV0Qm6jek5K//CoD51TSot///+9W86y+21SGZj////6/KBMoOJreJdv5GtAVAOD7gCJAGCSAIYDgCpgWguGhOcuc8cJDQyMla04ZCGLAyKlLJq0vPKHyN01/6hdBacqYpHAMKHadcwb//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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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//9JV7hA+Q3HtSR69rBbU1v//+irS5AXFBcM//brUgAe8H7/+1DEAoEJ4EknrPGlIWE0ZPWOFKwAzYQ8FGGVluDJBPKgze4jhQQCAOpmIAcz523pr0l+oQVA76T/84LYd5n///zreYGr9MgMH5vUNDWy5H//56SzxYaPQ8eeDjv/6FSENwBowiJcZU5BAWJGJZlmMnAAiUCZRcVBzIHJiGcvu8p9sM//6AMBmL///////ejb529bkq/PopUtqZaMj7ta7/r/////6bfVKt6op6IlEIxYj3a1/4CVmYYewAAH1ohMF7qwSHFKYgGIFoZgAGod//swxAwAiO2XLa4AUWkMhWW1neCEGWN9Aj5Q1zeO8sWt//+v/uvcxdrNa/ZumarbMm+qp02f/////8i/+jIhjaiiqWQvMMa4D2iItRNQQs+lQYtJk36c2Hm4hcARhf1NRYeKa53t1yP///+pnzN12J+lu84In2JZn///+gT0AakOnwTMxD/+lVVQMHeAAAAe0Qms70CMnQJHspmQ//swxAoASCwrL+xvBCEfBWW9jmCEERw4dhSgqjg1ui0ZFQ8z/Fx/////32t1DWdXRUDs6p+Zo2///0odpiyxAfIi6KYILNAAAByjcWglHpSkC+MVRQ06DgiLchAlnalymEPWMt828v///+vFBbWZJbta0vJvca3uUKKjRQld///jlNPGwpeARIFkKjAEFWB8Ba2CRLlDMSUCjZLw//tQxAiAixmhJax0pWFuM2S1xooUwFmowgDIGgWimX4Vc1KgoohTb/skvf/EwDF3I3/////9+nerNbJTTV7vfI3ZpGz6rf5aX52/////7f270v5TWUhFHk3/Xa6oRgA3YVtJQus6ZZQCgkw4MDLPKOtCIDA9IcKBhd0Pthr1Les8VN8UP/KwDANGX//////+3fXzsqWWnWnp1Mvda+dWkJvolv/////9nbZ61eYqVnOCKiKr/qc9pOpNghyUfAUNhD0U62doBMcD4TPpLB9MCP/7QMQLgAnsSyWs8aVhW4nktZ6crBuX3JBIo08LeOvq3hustW+v/0AVs0YO///6v/MCs3Wgi9zaBfvWz///7ZpYsbLGw2VCf+lqZANSRaCBkw3AFbCIjrq6kbQqEYnZi/Cpo8E4GBpaIJBJUjyrasY54bqIcpAc3/ODQvlm///8ifVYQiPilCUI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sSffe4Oz///+7sve7qwgLm3cSgqz7rlX3//+v7ZC9Rg8KEf/9qpG//tAxACAibWZLe2AUWEFA+W1jeCEMCBVgAAA+tEIhKXtIZWygwENMWoThQEvguRLeUu44eGX/9Zsn//a3/Z30Zde76srV2pRFvpz9sr//////9V1o9ZjM7lrkRQQKH3f/1OsMfcD22Dx82as2asTDMqPBdGGkLQRfibSmuwpzxF////9YXep6Un/G3jXtUKWj2Hp6Pmq0///UwobRLBe9RMsLUcgQGeAAAAfUUaB4knKvp0RUCP/+0DECYAJraMv7YBRoUwx5PXFiVQMyjVQJH19mQw+y5pH3db/cB/ZrdWvuT1ojrKdmelim5LIrtdaev/////u/lRH5kMhTo5qyurY5CCgTYEDuAvAujaKAvTNLYQ2McBRgXSGRgoYJCpaNTRoQN2saO6eKH/9TvJ//////09m6WqyJIj/rVTWdUu5W1T6f3p78v/////9vVKUQYSkhOZ9f00qKYIkYHAFqTRQCn4h95AMBzDgwP/7UMQJgAvVmyOuNE3hYAkktZ4crMt1w5wHDCYBL/iALLmYemTGzjoWHv/+Vg7P//////verW0TqhGpRPatvoyJs+e/611/7W/+mvt6fy63ufVzUQyKcUOFPqvocps2VJuwIS0D4DWNorXZLCygkWOA6JmFIk5xEhWiGShRmDwuw881IcMPbWR//NBgkJeH//+Lad4zZCo1rLgKOffSh7WvgATuTmP//4NLalpkyMPCcN6thQs/jOh1LAIMsG4FjSREA8VdJmLShACZh7AZmkH/+1DEC4AMoZcjrrRQ4XkxZPXGiaSKEqHQqBC1HlblZxz3T3Etpx//WJkRqGRQfv/////pttptrRtDetTO85d0n9a2vp3l7d6L///r/1R57Gzu7KzmmEi0FQdb56zPWPSRJhlUAhVAfgCxhjwCp1HCEDs8GQmYA3pl8RoJGIIPvK5jv0RCRTdYg6f/zoUhBQfCif//////9mT6XRXoiLBUVVumj003k6utq9f////v/2WyIqnZVYTCI9R4inob3PXllXSGFIB+ANJGRB11rCa7//tQxAcACsWdKa20S2GBsuS1xonkOACFmia4P4zGAYs4MhbgkoIV31oBNDb/6hL2mwhP//////S1bdT8lF2pbtVT9W5Jz1qfe9bT/6P//1X6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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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///+qxF2IIILAVD9sN+K0J3FDzX0QHE5gBEYvXGfABioOW7EQQ7TSjElhXypO4x7zib/+1DEFYANURc5rb2t4Yci5rW9NNxfUZo1sXuvmD8LU39rW1jOMVJsjLzuW8IyvaoEqYCT7zeHr///geheTLv/+//r1vetke9SA7ACUI/////1rzyGMIQCRamPKI38++RyQ6aAGmbAJm4aUkA83QzJBDSn5OXFRFk8wlGRUgKDrLJND29ZTfadoGZ1UwdYhV0+feYNOgtx9aF///8ihNg8lwmJ/5mX3////159xjFZS////9N2quqCjsA2fbD/CreayvI2EJMjFDEDcwGpAySY//tgxAyADcUTOa29reHKImXprjSsCMM1RqZAzMx5BFitQJ8LKDYnX7emn5uAvn9YKOxLA1/i8sJ/RxzkcBjZh/FkrNpeRlnoOmJH9f///nQEyOdAvI2/EeI7/tb3//qcvgrz/////0tmicZwASt/phO+yoYCn66DTkx60yFFzPILMKApKwteFgGOggyI3DFICayOgEoF0zSsB5J6MiAIxnUOs6QV1KNh/PqLxBZADKLiy6tJymnODosqCpqu//76Xx8BYgNIe5FSbRVzEerf///1dbE0crv////qmE2DDIBhTSi+isubGokFnIUIBEoziwXJBiwZEBQK8bqG5XESyD2YsWjs//tAxBQADAkVOa0tsSGEomc1rbSkmUyw1fJYBbuD3C3q3tqGN3gu10nKzj5GYigpSakW///6gkxAov/6q/9tv/+m5fJdP///93W0yqQow+ASftgv4rQ2YJLm7VGLRg2sFKIucQhpEPg4LY0yMwqBaXKGqzCB4FZys/LgVy3UbMVVb9bpPCqF7PKRKemWWBcNVP///8J+XUEm/b9q1/67XdX6FmDSCdLOf////c9tKmOKQExfYP7/+1DEA4AL3RM5rS2xIXsW5nW9NPQLC6eHAWxM0DMlUMvqB5wx4EGg0BFhgRnNCZ1LJXMrWUhuaJDw8I1wzg/5Fv+DptbABiE4W7LazFlmQSN7v///1AuDyTM2//9H/X//rYmkq7////R1OYosxBCAGfFBcA2Ptq5x0ZGNGRlAaaDDg8pJm5dcVANiaAd9GRNHuhxGCtxYvMqkH7glLu1ysLV5SPv0Kkj9Yfy7VzZayK6iKEmMzM83///WDqGRDPairOVf////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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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5bA7gu9H///9MytGW20sb//////iXWLgAsqmqvEElgAAEg4mFahUddIIAJXREwXzWGRlh9YDrQqHuD/ySqXVlZ0qIOzKU6u////3T2jMTJQABlQmd//7MMQCgAeASSvu5SMhAwkktd0cbI4A2YAW8gnMEBAN7sbO4hMcynjDDTAdQWSw0zK8JQbc1P/UJL/61M2kYJ0f///TXnmxYZsxnewASBuBzgCIgIqLCGDoan9fXHHEl+DHhwUISLXOyT7DP34kcGRUrOFn+piCcNjt3///97lWbWDP/V////u+C2eLrgA5LYBuBagAj4xcODA/Kv/7IMQHgAf4RyeugXBg8IjmfcwcnDkMJAiAMFAQX7cBShHegrocW7vVLJFlfxx7NRlR//+xOjFVRONf///////+pM8lP7iA4d2aQCgAfAOAVepFHrTgRHZKE9yDKN+3MIVT325Qo8NjJENv/9S5f////Un2QDFqjIMDv/////225ZP/+yDEAABHtEknruRDYKAE5XXcvEQARx3AXgWsAJgopGAQWnughBuKvkmW3g6UixEo02K7DUvpQMR/+DQCod///meYt7CGqg3d/////+hdw7VRWQrZbgOAAoMzEEgscmnKc4CGo82M1qE9rRhVN3F1d34v////Zfp7P1IBRO2AcACs//sgxAOAh0xDJ67oo2DKiGT10DIMAO6rcDA1OfHMOkRQBIop9dtqunsHmiteWz7v/8PBn////pCpPZvFntcgV//////s4sj9QFjqtAgABaBNEVDw29iEwbFAAASptAdSyjhObbHbj0Wzvbp7YpQP////uv/////////tIHeHd3AAAP/7IMQDgIbkKTPt6YJgyITmfbywXB8A3LkgwEmqewEiiEMo6uweyEBVWwDAomrET+jP////r/Eka7S2pbf/////86mxlZA7tLxAB6A2HrbEQQY18mX0WXRkhuYoA5bCIBUEVm4/////6n+sXd/zP/////9V6SOEaiL9fgAAB8IFEHr/+yDEBQCF4CUvrmmCYNsGZj22HNwEYFNXx465VBxLNGgRyWAzbFgYy3H////3/+hP//9n////6L1pIFdndwoPaGAgCHxAAHqZJkgEj+oI24gJAVgumNNoj+wO/////9z1GHdrkdA6m5yT/////5hXohBXh4aIAAAfUOBHsZue64FD//sgxAiABtwzM+2w6mDaheY9tgic2kwiOxRp71smyOAXLFt7qTht//////dochNSUIqq/////+pSaxhASszu8AAB/YGivFmgH/E5EUvmGMZoejpmgVRgxfqG////9uxYvbf0DVLW1TarO/////2VaXG6Qlm2AAAH1ATauSqY4iHw+v/7EMQIAIXoJS+uZMJgswSmfbykTJWF+7NsAbJGB1nL////6/up2GO280n//////q7GNYdMFdnhwAPQIzJgyRp1iYDwV1NBbbLDsoCpY0ln//////Z1ez//////XUNTA5ICJGMXb8CJ//swxAOAB+hbJahwoKD9C2Q1wCmUAAcCMRGGDq83MThBBK9VVCEaAjVb+omKMJh8f/8PAiv//6OmH+mhHXqt2JZ///1fQ+1KH0+rraPAaCYAt+AZICCVZBALzg3AHAygU8csz7jTfJLAiR8Nig+L//AdD5P//2du7s1Xb1pfVuVd///4tdTAJREO9VjqArclGA4AqQKI0tGAcYTj//sgxAeAhsg1J64kRODJBqY9oBmM5iQQII1C6BgGo2Nsv+IgYf/nf//+ymr/o9Flfd///73WNi75D/77BCGVnAJD2h1rib5pfBu0qAhucQzryapuC54G4CCv////r97XY3vXV6wJX3f///61SdDKQZiJkAAAAAPxV2yuADcSTMZZ8f/7EMQJgIXIHzntYSJgxgQmfawkREf+khG9GSN///////6/v33OuY3////drSfZckgV1d3kA+oimmErOi6D3vIPiifWVZRNLhxv////9P6Qlp1VuM9hH2f///GZdxJ0moi2Q2+/AAAA//sgxAMAxkAlMaXpIGCzhSY5p5yM9oYWNooepSPBGPkiMSOjXUQMIn/////6GXQhKNev7sth+uz///+n3xUgpZ0wZ2aGkALfPc7R4wAlWX6TZG3u+BBmqLP/////0AON/Zr0s2uN////6vpOsD1QZmCIgAAAH1EOIDUlCSAkFgYil//7EMQKAAXgJzPs6OBgw4Tl/ayYRNQuuVL//////skoc+9T/tbuH///9bNFaGO3FCB2RleAAAD+wNnsJgo6p08QGWhZc7r+d5SLu////+v2trbQt5rFPv7P////CPe8+pQRZ0AIcAAA//sgxAOABagnMe0AyGDGhOX1phhMHtDi999TlOENaZ2Zfn3CgpJ3////93aKfTj8yhWy9upP///R/RpRt13oAAH9gbQnmbEbeWChyYKxTIZ+xZMKl3////yX3yYmV2VuQuQs/p///99ZqulzETB3ZWeAAAAfUNFJ8o6YFxbF9gocT//7EMQKgIZgJTHspMQgvIPmPaSYhE/+HHo47/////b3Dr2opSRSzOSV5DW1jv///9JpCiF3Z2aAD2hpcwmCBBBLoRsKIZcQQhkBw3/////93XT3l1Lio7pqc/////WfTFsDKiF3VWgA//sgxAKAxlglMehkwKC1g+Y5jCAMAAAe2QGBWgs0dkB8cdGkvcmjVcoP/////13TNY3qc5X6WPs1rZ//7OxEuuXZrMHVocAAAhUNTR02JAhQraKEfnG//////RsucZZrvtNF12xi2f///rxqq6SyzNUn7UAAAAD2CBwdmzvYHm20Ef/7EMQIgYVMETGk5SBgjgHmNLy8BLwue//////xZGZ5OMViG/6v////vFbFziHM/De0MLFFk8hQaK08PFf/////9Llq1Vb+b6bH9////6k16dRPfUAAAAD2iQE+6kwO6QEPq05/74n///tQxAsABhgTMbWgACJvGSs/NwDY/////2db9GxeSRtIrQ0tu///2MoW03HhQXW3EP0QCEEEFIHIeioNAEAAAwofAw4akujd4XVSciPQwMDAcxMWRB/7Wa7WG5OjLkOHO47xCgasFBENIL4YIACwbLC+45pkXi98AMBtgGMACsLhzFTmJAfxxidBzCcHGmXTIvE0Yl3+mybmBcNCZMi8TRiXS78HwICAPjgawV+UDB/KCIKgqIgqd/lw+CADB8EATK2cGhL//0//hIGqTEFNRf/7EMQCA8AAAf4cAAAgAAA0gAAABDMuOTguMqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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///+91RXq/5hF7afShwCgIwRnAD7CNmmW5AR+VgzSHjEshsYEI0ORERlGktpBnMMVadL2mV/arh+mX/qJNm/sDd/DL/////9Zf+VPRfPVabVpq1E2an///////plVrqtnZFIxR0nBACgGcDSNwnBn5k50f/7YMQHAAvFoymtvEthrTRk9cwc/DEZkAeZG8h4yTAyQxErPsrQHs4dmwpX55HNNzZdfBoft4odylZr29CC//////6vkZum33p6+jKrI9cqWT225uv////9//fR90W90KSgdP0VEQIAMCX8VsKQV30MfB0AAQYG5gGImNAauQYuZZSayglc/jxKvmZ52e+1WTfm8ffYWlz16FV7mySMr0BeSxEbU80n/////W9Fm6e398zsdSczI01bdtK//////12Vap2XZupr3dnUl0d31lUKAgIAYAe4iQMgpZGCmkAQQYFIZi6emlQqW8SQASRT5kgwFo1uXlAKTsBFY40T68UovkPk8//7QMQaAQzAcSOuPO7hbQxk9beVbKN5TXuUIypagsV4BvwOGf/9Gglit1XuGxlSarf//+u9ZSLgIkgIoDKXqymdZU0VQk4aQoID31jCb2RP6aIBExyRIwKZSlWToLAgYGQyuYaxaWKssWnSn1yzaMXNHWT9K+kqEa426jsXNgJnj3/oW31qboeZex4UQp0c9tpPYj///XakcJxQPtFnHRT/+mprCgGgTcDWCQdx6jQSdTswEwMI//tAxAmACqxjLa3hpyFlieU1vDzMhgVDCUQaUpU/e0nbemyvJcisMdi6WVjyx2AKSI0A7WQPFJvJRHGB///7NArI520ln/pR///1qtPjWk0kRKAQIZZ9RNBAEAT4GjDis0xsxg6EAeIjoG9BiAMxkkGfBVVUIYgtQRWMT1R15suvzV9iyV2YQ69+FtThGbAT//+l84bFWOC/I0puc6Z1Hccn//+Ldi1oeMgoSJAP/b42BwIAYBX/+1DEAoAL8QMnrbytIVcNZbWdKKzArbVFixoGJKAMygiMpjgGSF+0ng49eC+KgkCbSAoWaO0b5ZtHyXvfMI1Nt5zZ5dB/4CFECv////8v76bac+1K+RtF01iqP1BRmw/L/1/dYiuLEntaAK+hX/l0uGCcCXx/YJJrD7nLkRNnIuZWWJvSIEoEPLoajKCOBcmwXaeFP18PRyYBUsThx1DR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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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xGgDDLnIN/ZCQ2tRlzBHEJOSnYwiODQskA2wNYuI086ToJmNOgtdQKfEgIy4USWHKLAQKLERGDf+QPQymMtUjktj0glWtVbH53t5SCk/8/1//9iz//1fiikcPv9V3sb////4tWoD//tQxACDS3BTJm9zIuF5CuTN7mRcgBIAxQ3KjIm1OM9QCYxUhODERgMNt8yimDN1SMhrU22YjXxyM8gkqECzQQeEUglgGytJEQJdBxLThTdI3eL5SjO5n+qL8tX6oMun7P///mNP09bv////92/Qgz8GNubCYbkX5mYCvGKeHibET5pkzmJRSHBw2onDkwMM/J8WGRjTGPYPKFolfHioCqVqrGry5gUPv87kMapJPz/1S//7lD/T7iL6Xt///8q6fZr3O62IYj////Tyi66cAf/7UMQBAwt8VSZvcyLhbggkze3kXBAAxf4RTaSqhM004swpBgDWqTMWGMxa3TLU/NXi8NFZvkBlBINCgzQAAcj6mwWTMwdiC8XUjLSL7/x6G62dHV/fNfnzHVMBf///c+1rN1ghb//////8UQyr2X/2pAGBM5GY61jRmjoDGEYNCa3RHMdZn1yawTGdFJ+QkcYgGvBIAiED5hIkoZIeshHFpyZDhsTisjbd2605NfboKv/Oq/00dY9sCPZvelfp5NvoR////ktydn31v/tSAMn/+1DEAoMKoD0mb28C4UcIJM3tsHRgr051VrjQuJ7MW8PY+heNStTRgY7n+NFrji2E5IvM+JQYQOjDzJWdANotGWPdAV3LsYh7DsbDGr9QeX/+7Qevr73o/IlbUTqaDP////2/7v+LGADKUTkNbm4cy9g/hIeEw9TMp2TcDg7GhNmyTUuApJjNR9UpaBw1MmAGCgqJ75xauNQnI1itWpOGVzyIt/Dn/Z/d0WvWQbiX//////r09jEf8RgAwzJCjWQFqNakXUxjwLD8SI5WPMeu//swxAyCCeBBJm9vIqD7B6Vd7bBsjXJkQRQW6zN+PVczg1O01H7kz1oHW36jUWtTMQ7Vysz3df84r//Td09RhLsx/////+iPlOrrFwAKAAYhLBxldR9GSMHgYuACQDLDMYsxpUNqfjcz00WINwAUMQEkoT2HPy7a9gODybUhWpkrHPXAsn////+hADf/QwAYpo4pk8LjmTYIQZCY//tAxAkCChg9Ju9sw6ErB6SN7uwMg5i0+Za4mmG4Ekg1ROugTEyNAiJTKNZc9oj8ui5jcYlTIQygckQsfq/m1/7e3/sm3gR7tv/////9tcyljGerDgBAAyg5zzduuLOK9LNon8NAwrM5i7Nk9Qt2mcrB9b4dSFBhkBpwwsEgpfbipYwPDcvndY9oKneWzNDP6f///o00V///////4mF1AAA/f+1gAwW4iTMWgoPQduMQIFMqojn/+0DEC4KKeD0nT3dgIUGG5Pa8kAQNc3i9MQfRDHnwLZtgMFBAyAMV9Go44Sy1xU9Djxu8fldazXnS1C/51X+2n1ITLOTya+Z//////+q6ptmkBTRgAy8kyzmlW+Mz4Z0wZR5DD4BAMEYLkiFdMIkKIwNwejC7AiMEwGMSAsEQBCSLmTlE6wvMvDCGUmioznPxH//b8nUhlqabKf/////9/deqAAh5v+7/AAAAAAAAAANJR2tm4f/7MMQJgAcEMVXZt4ABOYXk97xgBACPoXTVbTCwI0UiB2wDqUsHpWmAZFa8JEZMJGVDCGLhOZC2NV2AAAC6N+LQgDIYfINH4SsiuvMe0KQwXQajCtCPMF4OAKBRmDMBsYOoXpgsA3Fs1slACkTjMpnB6MlJfjz/5R3/7vfIWf/bvMf////9rdaqAAAF4HAA0ARhcsDGTA4sdeYB0P/7MMQJggg4KS2vc0BhGATk9d3gXACmhg2ZNM5pvx3hAHdmupHMMiz4QCW81RP3Zwsf0////+hzHaqd3//////SmuiwSgb/iNAG7JEHHX8m9xlG9JMm/7ZiT+JTJu0gawagFrOBETPQY1XXXdg/OzSmP12fpe3//7tGSsYKIRbler////6xe6hPqgAAAYBRxYkAZ+cm5xeSlmFucP/7MMQJAAqEJSW14AAgzITsuzZiQCYAQKBilgemEIGeYVgW5hEAUgQKgwcwZBGB0YGQGRMCot6G4ft+Qb+j/T/24c1XI9Crt2OuTSKJxb////bVy5p3yQE8V3//gAAAAAAAAAABtT0GAorJoym0qwGTgV4mgE5jDObYMDCacIRDyg2wCGEWCYgpwmoAAAOAb8CIgGQwiWdS7ghnqP/7MMQIgon0KSW94YAhFAUk9e7sBFVmFePAYNgEJgwB/mG8C+YQ4NhgRBbGEKAYAgFw4KEHAOQbZZdR1Rmf+DKv4e//+yXs2z7l/t/v////Wr7/UJQI0AZZyVRtAyAnHCNGpiJn9mRttCeA+HKjBlqeb4NGJkCAtUjeUcCv1S0tb+R/zX//+R1602uuVaz/////ojWNXwzsTQAABP/7MMQBggiEJyevb0JhBAVlde5oDIBvwAkCYlEwA88waEow5jMg8GOTRutOchlARDJ3J1b4VMD3NfbmVG4yqzwl/Ht/KO////xn93Qu9P////koGkv0C8DgDCAExIWHDK2deO8Rw9kRDbhFMpmc8l47Bg5JgxT4IWgaUkbN9giW34xX/+////v/8ApFpNhBCf//////MoUqAAAFoP/7QMQCAwioJymvc2AhHAUkje5sBA/ArQJjnjtmR8jaeEDp8Ffnr0ppr2cMgmiEBlyWYQhiEdLAQXZb7kOSmjwM/7P0v//0Y2d60q3N9zf2f///6dNq8OBEgDIloHNtKQk9jrTzGGPxOjSqc8DdMURTB3w19SDIMBPgsIIjaam5bz4UjP0M/p///u/vEiE2WJfMSK2////o6FsjmtvqAAAEgG/AjQBgQRImEE6AdaxgYvP2aOCU//swxAwCiXgpJ693YGE2hGSqvAAEZRFid9CmSjZgbGbYbmWCRM0gYAZPSwLTRa1g79C/53//9t+x7WyIXk9Kyy6+3///s++mYLCIgGfsemdMpyBnlChmJKSsYVQPpg8BTmIUB8YPYEhgHAqGDaA8CgQRGASk9FIMeW8kl+r/Lu//2VTVTfuTT0qT////2/1tuGEvanQltQAIh8r7//swxAKABqQrT9mygAk/BST3vGAEzAAAAAAAAAADe1N2zdrwBIpm0OqUyoQM7MDiB4HOJqROZUHg45hYcWt8ZsDLheDZgAAF0DfihoAxuIKjWyIkNBcDIyXQQBkNIwgQZzC4CQMGACswTAEDAnBfBACQOBCuMR22sXqJAT/0r/nP/2//vMCvIuRIP+v////39f0al9AAAAbAcACx//swxAOCCSApK69zQGEThOT17mQUhGJaqwZbDOh2yRHkDQbeBZkktn0LAMgVsQAuAVEMFJiyGu5b/0mV45+T///+iuhqVP2+RTbRqjv///r61qhbUz/pFoH/FqABkBnimaMvae0W569om0zmZfK5rQ7lCIPZUyqzVdQyCAXWqSqdoq4a/Wpn6X/63debdK+xXp//////9llbfo/R//tAxAADCTgjJa93QKEWhCSN7uwEAAAE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AcCtAmLYsmamLP/7QMQHAolQHyWvcwChULRkte0InCRpI/HjHeZzRRlk/mbhOIxCcpALA99Gpx2I1BF//9f/+tyWid9PU5CZmy62jXr///0pJxS8dMikDq/wpuVAEaBMpYzg2/zGTKsBPMfsD0HEKGCCDSe4SYEoAm5ITGgLXlg38nxk/////+7f///+83Snum2Shum2tUXp1u313X///////7X5t+ZVcxwbd1KED10AACcAcADSBGKEswYNpjZy//swxAgCyUAhK69zQCD4hCVR7eAMNDm9m4brWYNaAsAGFFYwtMGAYYaK97+Sn/pb///9dJEXCQg2kTFTtC0unFjFu////12texYDGf99qLwAYbqsxmQH2Hvkxs+ud2EgRJP0BEcWsRETHZY2JncXacd/0////tga53yFQrQ8ceCLSaaV0f//+rTItM7HKgAADKABwI0ib2swfJU8//swxAcCCRwhJa7zIGEuhKS17mAMeuURk2CCIwGSkOdwhwBGEKa4Yc8kw1SALEsBE7//6f//9qmmiTFMnAsLE9ybf//2/6vtvLljnkK9Si21Aw4FaBMc1yE0AGsQY4zqURORAEzMmTd8EMMdAEQyATgJQPa0+B3LgcQf0f6f/+VmGvDkWt1sG20SIlayX///9P1NQ4WZKv9dbKKK//tAxAACiaAnJa93IGD/hGX13egEAAAcoG4ADQJg7xFmSoHMcUmoawl0ZGhqYSEmBKRDGAHQsOLINAaK1mcopRFpUf/ub////+MS9oVQbH0IkpV2hf///+N0Rhwwr7sWyRCfge0Qz6m88Btw5oCO4ATtpjKx0RV7jIQvEveRMhiUilc4R/////pntdd5J+Zo2uatZSpil///9N6FjFpkxjAnAAANgGHAjQJm7IVG3yleZAwBRjL/+zDECgAKtCUlteAAIM0E6ns2EAEiFmD4CUYG4PpgAARGAmAwOAKg4C0FADJ5RV77MWgTM5/Z/mv/9nS5dxWxzFzhp7pr6f///oyU4FycbCbOWRWkU0EAfn7+92gAAAAAAAAAGyjIsLmMmjHTaDcSDTOTc4Y4NVPjRw0w8hOnEJViYIBTqCs4PLQAABXgcADRhGC+nsaOR+BgLBf/+0DECQIKCCcpveSAIS6FJLXeZAyGDiD2YUILoJBbEgUgUBSYA4AYMAMUtZtMOZep6akE6P1v////peKOZfpJKJPWrcl17P////oPOawc8PfZ41agAcCNIm/Y1nlxVHohoctZhq8aGDDefJ5hMGEcIhQEPGmc2bjZIRDk/v//zf//300XTK2GEsL+LmbFoVkf//8nSXi6LDAMU9VCryMAABwAYcWJAmKm6SaDDMZn1insGOcIBP/7MMQLggkUHyWvcwChIIPkte7oBBmg8mRReCQKZRgMxRdvS7rsuSATv+7/f/61fl5zZvQm+/eKOMDej///06t4mFxT/uy6gA34FaBMImCUxSi1DhU9DW0AzQPztbQO3EZUMMAJyPCELWaw1DRj/ub+j//xVyxLN7XLoYrjXVIV////8gAWR7jzdnqqmyJBAAAmAAAA9thoY7p5fP/7MMQGgglloy+ugE/hHgPkqe5oBNgCbkyEFYDGUFwhMGQCLhJ5K1r1bVnDzS3n/75v1mo2+t+/v9F39fb1Pb2//b//qvor2Lc1XWdjLIRnD//1eABwK0CZLiURrzp5gvCnCZmFvho555UQcKEnoAIIxM5WEf2Yd//9Lv/6LRAWSK2bM8fQrW/M4rL///+uhQsfPOtQve1vbY5CAP/7MMQAgIi4ISuvc0Bg+oPmNd1kBAAeAHAH0gRhWK5GLwLid1PoIcQGmJgsHjaYxAESJEAMvE+9hxMZ3/p///xdKsolDD1ezaYLveohc30///6rrm9Ttzv/qAAB3AH1sMhb+N1LQBr4+VMx3TJDB7aGicrFlBHLVnpZQZ/////9rKXVpziVi5Qmitj28lzC///u9mLQGXBpdQAADP/7QMQBggmQHyWu7wJhCAPlde5oBAABwKkCcHuSeiMebHAGbGjIU/xj4SbuTgYOEOg2A0lEdsMTlZv//6X//7xgokq9BKu1n2UJfTpaY///94ZMsEZJjCdPdc9vQRjvgBwANIGYfKo5lOILmkS2Ji05xwIMg8mCRJILFg6A9k6+FNl8O/7v///58Zaj46tTb6WJuA27//+my1qGIW4CkDKVAAAtAHAA0gZgIKRmBsU4czURrk5n//swxAqAiIAfK69zQCD7g+Y13eQEwHjXA5opmBCKVsTPf9O6LQSe/7v///t0VcslfrMX7y6iJ1Wf///+6oUKEANBj+gAAH8AfWwzqTs7/cA/IXMgfDtLLaHCInMqmoCt2WqDLFgB3////+hOp6FsRoPIS9FhxWvb/Z/9fpsequw0UCgAACFpAAAAA/GNVZw7rix5WiEkmGQUxoeD//sgxAyACE2hN+4AUeEMhCV17mgEzdUJCGzTYSyt+JfZ3///9eyLSj66G216f/J/////6en0XRD6IzXZ3PFAAALADgAaSIwQFZjIQBGOtncz6kD5IiUwc8OVjAUXHgi12avTRzl8N/6f///2zf69+aaaNRBfSle23///s+l4e/9+6v/7MMQAAAdcHzXu6wAhFgPkqd3gTAAAAngAAAAD4Uxne41OgIzDI+BE8BApgk7MmSLvR+dWNtLoXv//////9FV0XSKduT+n//+u3zhdBlEqABYAHFjQJtvb53hjpqYHIG04/ktNBWDTwMxUNGhhYQGQ4K5pqkd//9L//26pmK7Ht2ZlYQcld9vX///15bkibWubr1999QAAJgBwBv/7MMQDAIiMISmvc0Ag/wRm/d1gDBG0YhK7JlqH6m7yackJhmVghjG3EKNo4lsUsH7RSdiRUIe/0f//xWOd/tbW5v+f1J0r3f//kZyesGseg7/9QAAGj1QAPxjBiDzGNSj1vDLySiyYAUClMwCDA5REdWte7LatJImHv//////fTbuvbW1X2t///3uJJULMegeNDaoAAHcAAAD6iP/7MMQEAAnpozG10QAgt4Sq+zYAAGsg+nkpSGYgMmAZSGBgGmBwUDwPu2kinir5vlg4Yeee1////////////7d+b3SfZHZvRXptvnal1///////++nZHfu9nSdB0EOzf/wAAAAAAAAAAADrUlkBlCQTAJiw/LjWCYIXQNzByUbuZgpCIgazC9sHkVVBDdv+8AAAAAAAAAAAA6UqM//7EMQIgAYMJVHZsAAAuASp+zYAAJEjaRZMM3wLX0cwKmKjJz6qYIcGxlgsikxFPLysFsdgI7d/ugAAAAAAAAAAABxWqQ3k1eg0iMKDQyw2BAWbsUBBIGc40XjRVYJgfFdmagAALKAB//tAxAKCCrAfJb3gACEqA+U17mAMwK0CZJZkplTI3mPsLeYVoeJgghDmA+D4KAIGAaAKCQHSgCYSACV480glgwV//9L//6SzWyqST2Yo9MkdTXpv153//+6hdREm8mgO9GlQ11K4ABwBtGEYaa65lNGXnDwWa8TRokNGGSoMaLKDCiKIkBjjM2AzP/u//+mxtjE2WGnNa6tA0cp+3D3bnf//e2xiHiyA6lkVNq/3+i8AEq4AAAf/+zDEAwCH4B8tru8AYPiD5j3eZATWRmM3Jmw9yHFuRimGbEKCI4MCmYBUqOaFDNGyw1Fjv////9n6yizLt7nu8rkl1r1f//5/YKP6yhIAAABYAA+ohnYAZ3SNhwQTmdz8e1IMsBwqhqYCjzUrTyONZNf/////ULr2705Fcxx14ze0Nf///pcECRkVilUAACYAAAD2iGgmaGxdBir/+zDEB4II3B8vru8AYTw0ZXXtCGQ6c4KmpioENDkl2C/aXrLnuYBH6jv/////I1Zy/Q5wwwsG6JBzmITLf//+2FhkTiIKi4qDBv//2OgDgAaQMwD1PDJiIqMScDUw3QOTfwjOMAySWaKBhMDV457xOpTs///7////////9V779vUnVXpXd60RLddF0b//////b92ZPszopnK28oz/+0DEAAAJnZsvroBRaS4EJLXt4BQAAH7gAAf2iGX8BG0kzGRwoGTQbGOAFAgFgUGhd9S5DRMF1mRtcgD95a5///pt12bXb/7K8xfRW9X5llvRf//////rautF11MuRA6vjAAAGUADgVoExnUrTMeTjPIpTy7cGmphakaQSEQKCEmMIKW6zdYN3VHhr//zf/+PGUJDl28qtg+UMe4A5a///+ur1JYk+LxtmW0q/fUAACagcADRhP/7MMQEAomUJSmvcyBhAoSlNe3oBGFyuOZOxL51ETGGGICrcYfFB6DGAUCREylvSxlsPRCFS2sa/o////JMMJ4rWpzNo9qhyU3f///9DHhCBRg88LLb7f9MfNgLGEYaCHJlEnyGqxR1X6ax4aEkGiRgGBAoGCpmLcZAy6GYdltUFf6P///71tR8dcQjBuu+2/NJ//9VP6ELJutVAP/7MMQAgAhEITHu70AhA4QltroABAAAaAAAAB9RDOwiDtcTz/hM51EOoVEYY0gVnqqyXTuvYth/aSVCb/////r5dqtJmg2gVUpB6K0KX0////ol5KkPAAA3AAAD6wM1S+Y0dq8yXHMFI4YkiaKgIND6VQITtLoNCgWu0yZ7////9W7yHHeowravYmnV///9bZHQLj93/+pCC7r/oP/7MMQCgAgMJVH5wABA8YTqfzYAQAAAAAAAAAAAAAAc0uUgEShabI3nfCIEG4meoGAhngZCEQmkh6aPBQ8DLbS+hgmnP//////////////9bAGPnz4AAAAAAAAAAAAAHBsdSWBI79ZDgsRHg8EG8JYOCgjoCB85QNFmRVmLQcAaB2v/////////////qQA4e6zwAAAAAAAAAAAAB//7MMQHgAfIJVH5wBIBOgRlN7wABADhzhMZAk0qTAglDWmEIBNIEAFF0SciYBnQjBQLpfU4cIYW3TL////////////6wAAJsBwALGEYQKn5jXBMmM6EoYS4WRhRgAmAqAaJA0w6KgCg4BpGtfxc5r0vltkV/3f////cznzR1w59hE12vXo///9SXPeElqINEX//sQAAbwAAAPqIY//7MMQEgAgkHzGu6yAhHAPltd5oBFRWbmxUYJMfq2ZMRnmgrlKdNRcDU4GadDMUOf////9WtbppV2pq0hxhfoU2tp3///6h4uqLwEI1gAAXAAAD+2M1SVw95Tk6EGQV0gP1MWRA2VeSLac6sNRd7ZoHd////3dkY3UWKXuw0fcxyZ2MfcGCiTf/9n9LZsmxQ4Rl7RGqAAAlAHAGsf/7MMQDgok0Hymvb0AhAgPlNe3kDIRiAKBGFOYifi5n4Vxks4FMjYAxYQOGioJFFxGfwNFH/9///1cVbuU5SnbM4tKi5JycWv5H///6wo+keMYd/2MZr12ADRtGEGo4Zbx2h8JIcLZiaWYcancgOhg4ZHFINmmS67Tv+////82eAio9yfC3GKYhmzYzR///f2rpOtYc/+X3VQAAJ//7MMQBgIfoHy2ubyAg9oPmPd1gDAAAB9YGbNhB760HjHgq6G1AaloKoIgEQUI2JPI0aUXQh/////M/M5ZWx9Itcmou16/Yd///212WmVGlh0AARKIAA+ohkTRprtOJhIZ1K4mpMUhDIl9EGkzAgECINModox//////Iodtz5AwlZvs6LhK7///r1bGHWMWABM+4AAA9ohijw4tFP/7MMQGgAh0Iy+u7wBhHQTltd3oBJ8aMbylAKHChWaGkISQrAy/E84amsVpOB53////9ibe1q22BYgJ9aF2tHIFm3///b+QaNTbeLAAAX4AAD+0MzOlM6rrA3wGOyIzorjMwQgypmSAk0lRvMsuWS5/4TW63////o2JP2JZaWJ4qTVEo9vWiTTen///07xAuImKKwAgfuAAAPrYaP/7QMQEgAkYHy+u7wBhOwSlNe5oBAMAdpsyfcBnXnpowYYeUg5hlgmWla7zFlqtCfkcHn/////5HrMoFHvFBgyG6MeoXLek0L9vt7eq7eNtg4EjyrwAAFgBwANIEYaCjRg9EnnMT6asbB4JJjXo6CZOXEFh6UDbPpJZp1bev9P///2LuEcL2G1DiBlKHi9yLgbAQjORt3///oYbXFgmomE3f/6VAAEBWIAAAB7RDG3LDdqjDrmC//swxAkAiLQlL+7p4GEdhOY9zeAErvOmTEakAqAGQjYhghLESBDLplV4EDv////5xaRSRZ7Vsc042qL6TfZ///Yz2CgsQFmAmAAIi8yAfYQ1GFDlBqOMDjTUI9mBHxI5cBOheasdIzRnEY3YdyHw1/////X00lkzz1HEiXnGg282paloNf//7NIVVJoCxMAIAACv4AAH9ohl7v5v//tAxAYACbAlLa7vAGElBCU17mgEFjJjqSdgkgrcMgMzSeH2LqmT6XAqVuMpvUtKS////+nHIWufheyJmip0+1aHzrj8KDXrX//rrox9ptww4VCYsCDwASNgBwBtGEYSKiJh6CbHT0QbfCAyZNVHNeNEY8SCmMApAMVQdoHCnf+j///oqbrRCc6sWYseUW11vR///+jreaHHlqXJ//TsoQAApwAAB/YIZ7O6d8zMLsJwxsdkQBX/+yDECwCIqCEtru9AIPMEJn3MPFSYQSSGR+RqVy0F7H6xs////+qR3Kc4iXGO99BQ+hNNtnZ///z7K5giXKOJGQ27+kAACFpAA+wpqyrH67+JRkyqSzFIAvCFMSLol2CbPyUN7BN//////6ES2px9hIUyQyi0X2///+LYsoWUpJEA//swxACCiDQfL67vQCEEA+X93WQEAG4AAAD2iGHmtGWRynrppjkMA0oBHizpFVTZPdW5330gSLu/////3RXSp1fp0ja09AbPkSn//+jZSTDIXUTUZLwAAH1EMY7GNxKQMe+OZbN18wzxMdERVFnSkG3aLAjEP/////rF/QbkiDypYuVELWTVD+j//+0xh1igywOmRYi0agAApwAA//tAxAKACKWlL64AT+FCBGU17mgEAPbYbLVZ1JIjUgNJjgWUwqBzDoBZEgUrSsVZ7ozdfvf//69P3vQtf3fqR7/++j////f/6OrdW0pqRMrITC//9QAAG4A4AGjbMQ9MsyPjyzP5ZOHCM9RQ0BE34MEhxkSUChIG461X+kMn//u///9sqPW1wcckRAFNblRSDPqYjIq2//q1WsFCSSoDgI8kb/7fTQAA9QBwALGGYMSXJgfEOHL/+zDECACKPZkpr3BBaQAEJjXd5AR0sa3K5loKmMAKBkFVGAImYhWyFDBTaUik///b/////////ad79dC1RWfr366Pvbv9P/////p/QjolVcxHQ6Ry4B4AAO4A+whlgf5yGsB0wWZYsAttroGuUqYG3VVrysygmQ9//////umHgZSzVqXvaTbsCI2NN1///+ziwmDyhKYQAAA3AAD/+zDEAoJIxCMvru8gIPSEJfXdsCQA9thm9BxxPAoaQmNupuuOsGjNVSsUyf15X/aBA17f/////vNRyHOyqRXsW8uwZHo+9gsoh+yv9r2pFFPIuU88Cl4AAA5htoRpQGZ6qOZewGjAChwcroQo1r9alDoWpFDv////17bmJTSZ7iXfIIbUxNSk////dueBQCICgseqAIBlAAAH1gb/+zDEBACIOB0tru8gIRGy5fXACfVk7ZhvNcRkiYcwam5KaoR2gqGKEo5pzPq6cNhz////61fqJzQ5eyHl563VXZ///9bHUSiEmRZpz/+wABHYAe0Q2PIzpUjNCAUHUIHLswWCAcN0+0Hi2CakTYdar8///pp77UT19VPfN93R/0V+97a//////0p+y6K2/MyIMh3VABAVV4AAAB7/+0DEBACIGCEv7u8AITu0Jj3QCjTBDIfMTZKQzdSU5oKJaCmBOy80eWEo+hw1pPVarwH/////3q27JImx1XmfovR//9mZ30DwXU8HknAAAEniAD7amD1JmMq6GSYpGGoqkQ4mBQFAIJmEInJFIlsXTqfmlikWy1l//7bTaeblmkWWz5Nuqq/2ZFWxF0//+T7//fO+1tjGmM5ZkdAiAAD2AAAA+ohqUUZ3ecRlcDIIJAcAEwOBwv/7IMQMgAiAHy+10AAg8ISqPzYCACC5v1AU1VYmDNLg6uO/////9SVIHJK2MY8shwbwhZxEzf///ou9o0JGlh0ADLq/8AAAAAAAAAAAAAcA99hVUMoQkzTGi1+jOkI3xDN7EAcvGigYYFBwVIUL51RmRf////////////RVAABtAHD/+0DEAoCLhZ0pveEAIQmEZf3dvAwA0cZhRIhGUEEcYwYBxh0g6GAUDEYAoGhgGgNgoABCWFAAGEvw+rO+5d///7///////+x0fZdT9Ot3TsqLd9fSV9V//q+nb///+u1E+33ojnegMBs//sWAAAgsgAfUQyNh42WjgzpIGzUMiQaOAIYpQFQjJD00ZzYxtNP////+5XKZ0LLZpHGRZNHvIWp///qc6wvKJUJBQoE1ABB3AAAH1v/7QMQDgAmJly2uAE+pXzMlNe2ILIhtnnnUueZ+D5qcLmUweYTFxdIEgVLdazOmOs+jEkv4f/9//Rn/ZvVXfbumyvSbWj2ntd31/////f/SrLLfKhFVWjhsXAAACgAcADSBmG6nCZEhbp8IudU1GtiRhKIBRBLxGwWBUIHyb9mMt///2////////2rXst+52p6O9WWrMl6PqrXs1+j////+v7fdrMjPKhFe5AShR/V/t5gANbgA//tAxAIACkGjL7XRACEGhGn/OABAAAD6iGfk1mcrnGZoDGA5AjQ4AgLhCBghAJB8aAJJha6Aulo/////////////v/M/72Ut+1L0OXvdaft/b/////+7FVpXkoVSaKitV0x0QC+e+/AAAAAAAAAAAAAA4N9jwweAzvwtMDhQxaCUAhmdEmIRgZtNgQJTMgkCgJXN4QBbRMGmf/////////////AKAAJ3AAAA9thm5Ixqu+5jCDT/+zDECICI7B8vvdAAIQgD5fXd5ARjIFZiKAZgMDxgIBLHSgCkOMFNswqL2m/////6Bas1amPIzOj0i798IUV/V/9WupKIcC7iwWKgBATAD6iFTGDYhHDwyUNAzDgMRw0gwaEr1kzUZE9U5Tv/////7LKxVrihUkUQH1iz0UttuFC4af//+/pw0h6d44J1AAA+AAAH9khli+RsRKD/+zDEBwKJDB8tru2A4Ri0Zf3ACfxtykcwTALQCxAJDiC6gSXAKnwjkAhP////6dD+sjyw9D4wUsGq0yYq7exzmq//q3qahoZFlsGGyQCASwAB7bTT/bOofcyoJzKY3MGgkChwBBhwVgVrrXwarMx127XKt2siyVc2fq/2sq7Im2n1RNO3v////+++7rozorO9SoRvhkUAFT8AAAf/+0DEAwCJQaMvroBPoS0zZbXQCfX2iGJuSmrishynGCwtAoojA0EAEHAUAALgMsI5SfC7ZRUmrX/9H/utF0fV/Lb/7yU5v99dMn//////r+TY6h0SfBWUZQAALwB7BDHSkzW2WDD0RjEwkzCwGjAMECgLWYparCsUcxrD/TNv//rf/PO5ZHoj/qhSf7oXSt+nXXWv//////r1Z0sZkPY8uhAaBRUAAu8AAAD6iGbQsHUITn0C5//7MMQIgIhIHy+u7wBhFARl/roABA6caMNioceArxQ8QBNZX40iNxgI/////8U91cLGCxHngfRaKFWbNX//+9jBtSdqhCVAAACaAAPaIaBVMZ4wWYwiGEGCYfhOVAGEg5TcWmtxS6lfppk9IOf////9dhpJTIV6RecaVjVIePa85Ju//+r7WNn0tQSVUw3a78AAAAAAAAAAAAAAHP/7MMQIAAgkJVH5wABA9QRp/zYAQNKloxeBAdRi/5zYPAojE1xMOBI1YKjCI/GlqZ1AjFMVr4gIdQj///////////////UgDcVteAAAAAAAAAAAAABwZuqiACPJZRYDBDALEhrBOX6O8HBpHNGByI9bS8mbYBwGe/////////////+9agMHyK2QAAAAAAAAAAAABxz+s8yIDNdNAv/7MMQMAAfUJU/5sBBBSbRld7ogBAqF/4EhJqgUEGpSWmFAhzCEFStlVlzdwz3////////////1E//8sAABdwOABrIzL31zS45zSsXDEMgCY7x4GiIOGuM7LpKjdZHpiU9zml//9v///////+jbafdbNWtCVyvyIyPr622yaN/9//0+np+voqI9Fdroc4kAAfgAAAf2CGXUvm68tP/7MMQHAIh4Hy2u6yAhIbLltdAJ9Sr4+m8RyGiCCxUXVEEgSgNgCXz+3/////u3bbkipxo1E8hqoqNtON0j0f//9a6/FGBEBGwoTAAA+AHtEM/j0O6TTNAgVMswSMWgBBwBgITZUn0rtesUYOrmRc///2/Wqp7Mvs6e737Nu+ul5NEVrtp//////dv+dmLrULhiS9UAAGgAAAf2iP/7MMQEAMjgHS2u7yAhCjJl0dAJ/WTGRGSbvm9mpySsM7szIyS7yYKyGUvYz2PHf////06Re888MmzfYEClxs6Tl1ig0JKRp//0Wd0XS+sGnjBKJAAEPwAYa2cbLO0EHUYnimLE8AAJBQWLnLdJytCkEBrr5n//W7170+9MnLvuj0a7S77PuyX///////Rm78tHIGY2aNUAAAJoAP/7MMQCgIk0Iy/ubwAg+YPmNczgDAAAH1ENKtA49KDgCQwJIPzjNEHgXqtlqa+nkaVcldrX////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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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2u8ujuuptfrV0ZNr5mX9v////9n9+3naigkqWQUmVQAAAIAA/tH/+zDEBIEHwaUt6YBU4Oo0JLUwCPwLSI3AHVU9////X/29/cjL1ojonTVXR7rs/qutSJWVjlbf//////7O6o1rIiMVWVToXQF/6hKwB+BWmsdYHVA72Vrt/b/////+yKz9Tf2f7V8t1uzf+v+77//////3nZTM6o5F3UqFFPZnuioo65qVUbFAAA4GsYQbxF4hh0r//3f/+erTvav/+xDEC4EF+AsnouDAIOc0ZLUwCPxO/NQs4sdfa1WoCUD////tqax8DPPBT/xQRQAcC1sLIcAW82v3ai/////0+7bVsrtTSv/X23UrHNk20ZUfpv//////9frR69jvoqoDpubXZhvctf/7IMQAAQZBozGogE/gvQFk9AwEBB9gAAAAAPtbjrAAyKl////u21tP+7zZH9X1VnbTMdNESn///1/Zurm1rXOimOVWRSKHGcAAHFbCaIBMgKf////d/4u8AphG7vSx8ghBJIx/Sa///1tSMQ0Q4uoHGd33ynqVO2AAAAAA+tjTMA//+yDEBYEGFZ0vqIBP6OezZKkQCPxG6lf/2n0Xe09fVu7qa+XdfNaR737f2///1r/9t6oll3emjWKMseAOBa0FmoPJ7+7////+v3rp9L1TTe9NL00nc6f20/v9/////+bX32zvLnoRoYeCCLjySmw6lSGLeQVbUAAAAAf22NKQCrNq//sgxAaBxqWjLaiATeCwAWWQF4QE///+3e+9pant1t1vPNT63qRbNe6LbzdP1//v/v+m91esjqrnI7KhgS1ABtfA1A//////pItdLYZVrzy3BYuetcZWtdRFlqq//6dRWONzRoUB0iRLKloAAAAAB/YGpyMBt1D//+/S3o28yNt2W//7EMQMAYZhjSuoAE3gwbRl9RAJ/Jl1fexPry1tnr9/////9ffv3qbqg7CxRE7/6F4APqKjMwGU///2vp0tNVC1MnqcjOd027Wq72qfV/////++t7NT3mdlXoc4xykIILVXAAAAAAe2//sgxAOBhcgLK6C8QCCxgWW0F4QESPkHgJf/////1Vf3djHsZUKrrzCqWs3kNn/4ytJBpVyTyViEXBEFFYAPaIWQWN//////pQ1KC6p9CrhhY0+ByyiwVe4QtC8x///47ZGJDr2BiASaGAAAAAAH9omVhMP///0900/W7VRj8rsqbf/7EMQMgYZtCS2mgE3gqTDl9NAJ/UdTUZnVEUcoFgIdZ//9NZlSUqfMGhMgue/9Y+AHttzgFyh///Z6Iq/t207/pbsVtFl20b/3////r/dKorGiDmI2g3ZEpX4AAAAAB/bItwQT//////sQxAcBhjAJLaC8ACCqgWV0BYQE//xmqgKvilvqIgJbgjUEEg4An3izG//+v62kiUTAw0DN//6BKANJHIQX/////Kc9e+HFoAnmcI8vPpQiyxWvv/MdXvsYJHOQUDRVH/60qhgAAAD/+yDEAgOG3aMrpoBN4KwxpcygCfwAB9bJmQSP//9fp/v2071LayqrHb6VXlat0mXqq9v////pv7XK6uyuUrIjOiuTUGv/uyn1tyoMf//670ZfvmvepTO9UdvXS7u/t/vybf//zfX9XqfUjI49zjxV///TGAAAAAAA+olAB//////1//sgxAeBBZQLL6AkACDZgWV0FoQEdz91TXh1YuPBBVIspLJlTA0z//+9rYWVIoSEwkxC1AAAH1lauFk//////i5tiEXLsLCIVLGHKMgFJoYam2qWeXretHZUzY7/GF8oIhEESZk2v//qH4AAAAAA+2uoHG////b+x1fd9rM6v26a7P/7EMQMgYXpozGlAE/gowFltAMABMuuxi9PP///T//6Ix3QqndjqyOyEoGFAA9tjAP//////exxT24otErx4dc1g1aU39lv9fVrxUgxBIRONDxYGBgAAAAAAPqLY1//////u8ip7Fv0//sQxAoBBWwLL6AkACCusKV0cAm9vIKDqpNM5SqFf//7s89qnC4skmYMioPCgAAAfWScHP//3//7v1vr2s1XSqNOvz/zdenf/X///rTn3bu2DUcKUyKpmxQAAAAAAPsLBv/////+y6X/+xDECAHGIAsvoBQAILMzpdBwCf3JVqmyzHPBs4oUJnEiSQEtJRv//q0pF1nSDwqdONEwABQYADUMf/96utKta7tbRkZUpYy2Q9brvWj2st+v/////06XmXlfUhmUrHIUZZUQAAAAAP/7IMQCgYZdmSuhAE3oubPltCAJvQfW18P///Wq229q7t31mK111RivXQ+us5lWZGZH6/dq//v7//er8mm1zJQwy0ooAGtt4b///9v/au/tTPTurUtZa13q5SEQv337/T/9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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"//uUxAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAACGAACNkAAFBgoNDxIWFxweICYnKS4xMzc6PEBCREhLTFBTVVlcXmNlaGxvcXZ4e3+BhIiKi4+RlJaYm52eoaOkp6mrrq+xtLa4u7y+wcPFyMnLztDS1dfY3N7f4uTm6evt8PL09/n6/v8AAABQTEFNRTMuOThyBLkAAAAAAAAAADQgJAi/gQAB4AAAjZCpd5UxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//tkxAAAAkQDQbQAACMLLqW3N5AAAAAAHAAHAAH/ggCH//8uD4P0NDZ2vYbD87vZWuySSRhkMu4iSpsyVNNrUUUqGFN+VpZxK+7sVnYuZmCoSNw07cqAhxvQTWEVg6cpgdIDjGxymjh6kxplrhBjM6bctx3HZ/PPFLtyGGPwuS1lX5XysfSZ/TPI5bksTn4xl3WP4dypsatnfZufch3JyMSjn//4Y9z/eOu7+WSOkxfeL0kX//3vD//mXe/vWu/8oii5GSXZzPC3rn5fveeGu/+P///+v/mv/PlPb3lhKL1cNnP////9LJc0AgAAAAeN//ukxAMAGFFlO1msAArfsCfrtYAEoudhvX1BP0x5ozGoKDzYRDUKwIcLno0muEBx4BGQcDyYuvkulEl5pRv8xVDRCo4DYoyUBSTOiCeCmCKCmsVe1sXuqqms1rLTIZf2HexCHPc+B3en6K1SdzjNzmrlNXk89O9+Ky7m6sRzlsJxvSu/I7dNjuilVqas0/6q7w1fu02rdy9Yzv0/dWsd7rU1Z2qt762W/yrY0cYvUlfPfM78PTOGNjv/lWn6XuGVamtZf//v///7/N52MSgXBKiiAAAARBRXEQc/5cy6oBJBCyBB8DBS+CrhJEq1rRd5nSpGnsrjrjs6VpfxZLJBCsuswBdr/U6+XLbK7UAKrT95pDU4xMQm3DNblWRxi1eubzvU/9z3jTRaKyqS3JX9rm9c5vDtjKfw5nztJXzr1sct391crVu9LpDJKtTm8t67Y1j3V7uOrtJnLL1q9rn4dxx/UplVLWu3P7+q/LfLf8z3+/7v/7KaarhlhrmuYZ8z729rHlrmvt17dQEik51gw0kROGgYQipEhlhaCaLmJkNeZQXdY9CXbooDZ89ll1y+K5GZOjQVotRXohAzDnTAbjRLtuQlKmu0JkO42q26bSkmNnCPqr+/PdFO1Pna/5qX//tkxCsBEOFZSGyk1mo1LCkpl5k9lmym1ztmJtuvtsET9PYwtZwyRDXfx3mvy4aatnfHdt25U/bOxud0my7XkleJder/CmAAEgi51gQ8o1sAYCTaJaCXICBZcOjNASoKkeQgatuhaTaTEXhFSXBVjqLeiaD/XCoMw6RXkNPGAXRLyTOFzCEI4RNy+okqHt9LRM2Yj+fHishot7zz827Ov7mu+b3jYptfb9FnCCaKRel0m6ly97ut9IrLSB3zGxp71+zbn1/jVJjGsisui884FKs58NVWAQA3HE744clYXETOM0wABBHKXrnIdRgoa+YT//t0xA4AEJVRUUy8yeoJLqppkw7dzWmuysnerqEnWhjRkG7KtKtmWBYWhOJZe050VK5uQPJNz/1VxrbQJA0XSu9OouUTZx5K+7sG2vGx/j62S+PEvDY/b6V1CXQNtUu1a3r21Q5PSDrhvtNemZjVu7u/7RWpSt1boGs6v7GTAigASWt7swMFwgAN8EQwu0JZtyjSKSicTfaAWzx3cIj17KgvOtKa8a11skzTRO8xe4hpQ6W32TEscJQaM2Ut5r6FlBI1Iubno1ZFia2V3Z1AnHNGlVhweJg9sFK/EJCRHx6gJAAI537+fsMC1fJNUYGoyQwdN/em/IRkk//ztHPpHkIAKOOX5heVPUbHMwAtuClkjn8IiQxUEdJnsS4kqp5t//t0xBAAEGllUOy8yeoSMCndlI7cNzIsP4JPZo6HrJiHzHH5qnyl5PbHOL4KBoF6ML8N6eyDLAuz7ni6nceSx26i8G7uNu0VWpZ/sPuNuO3qL9zKMopmHmrVaB7OzY7jDd+vTVCderbx15fbfeTk/vTUVp2Vs2WJkUAmNubycLMCqphhAHAvSCyLLJQxNorLrLdX4kU7Cmw5/qDqaxIFsSueZjKoLgmRLnvReXEzTLqqN0cwzlI/KMHKpwRaaf1bahDMqdw65Uw2SfFGg7qS4wQw4cUaiqWeYMgFGNVpsrjmpeWsFUBxxZmbqUDOxud8+nJnVQijW/ydJJXwdsAAFNp3rlM+jERcWSGLilpDHDRwG8gAAP60OfiK4G6zdSlg//t0xBGBEKVjTO0YeOoKrGnpkw8d+xuKR+VS1d9PFJY36vqGFssu9xqvJJf/WZ1A822t+zS3l9R08CBWykW3/CngCmC8usYpTdee27GCqF6aHHig2IETOLuavnE/YYeiljBRQkUMy4IkvXu9f4RL7OKWQxaCZYagEAXI3fDo+o+pFyah5MkNnkoLJyQNkanMpmGOv5lIXgo7t2EwFHPZTIHsfC+2lmFtP7b7ciszb/8plI2tvP7tt47zhRhMXjcN9anctG/JuM/cV0UXsBQtjOrq0K3ScYc1AVjKtiGPCBdIuMZ5M0IG9FkMFOQdZixQQnd8swz1Sm9XaoEAG2R32gVsiARSDnS2yECQtCLlNjnpU+ECv9KI2+GGVDIYJmJ5//t0xBMAEBFRUOykduoaKqnpliFtRzK7EpZE6kneTDYpCdJ/+ZTi0ffbhBaT4+EKtJsgFYZDxHNlTmERIMpnfzOCJoqTd2cjXpEYhlOyOR0jpKwOH/2eZMUmNiEAIMYdRVjFM3wNU5pKAg07f4wAkgAAABI7J36M58L3DgoGvIlCNURBMeByrRWzjiGhPE3RkuNHUNAGhcWx3VEdeWRCQjYMusYWEQYT+4UQ8dORErJwyMZvEzIiuoWaOa9WtotvqJ1sGhIuHhQ485JHGyYWePaEu+0g8og84vR7I7jr7uxlJN9wr/Ok9TNxjxjHRJsouIsuRauUAQAY4pe7ABTFUEDnYEhoSjBhR0I9pMiZm1JFNxHoYr1Yd6y5tbQi4K2O//tkxBUCkC2BTu08a+H+MCoNl6E01lgJOY4WxaLzC8eCqIU3/rJt1CzWwUpKO8N+VGCoH0zfOIIC7Uv3BFPO5wyzvFdYiJEK03syRYOFQMSI5moLExgkKe+7GoIWqGR1Yax6U9UYhF+MRSxBFmvfUVjZGLjGNELDhoTTlYAhAwTbUreVymiLJ83eNbpON9iQVSqldoNqdmVSqgIQnr9oHiFR8Z0fPXc9bXoRYm9KdXFBioS9c0Mvlpb7WHSR+ceKCU9Em1ix7LKK7jhDgPZCpdHlGP6yjJaPeipEvWjt1No6T7wus1LxMVeyVJEARxu+//t0xAIDEGWBTmyxCaIlp2oOsvAFBjGiGTwccaNQQabACTrXQCGD4bjwJpaFdF5yRmymajuXSwOxOO2DcRC4jBHxzDAjDN/zjxDmIxN9ztpGPlRhRpMm1d9Iztaqx0wxR8zb9RSbzoxKGmFXPfc6JEjT6l7uat4dy2OebhnU0o4abKpDPPzUMlLNrtz3f1vKwMsYUoBsjm7XzPNJDxYQdvBwhoDlUF2B0B0XOgN64pFZfJ0QtvmtYWLtBMdKpcRl9qczm9c5Zpo+/8ZjRdxcaj/Gs6vWa2tYg714N3f/+ratbMbOM2+sR42L0zj1xvec/Hiz6j6v/7a9cZtnwtyZpnW66hQX1deDe2aXgOetzZxWFk7yIHDh/nn/X+pZhQCA//ukxAEAG8lzQvm8AAqQMClPtPAEFW7Nv99u5ANunqRBrpGYinD3geg6mXlBWtAcGMmEjkVUCFIFCS74sEIfBQSMCBEA5ZxeyZ6UDN01ANRMoqImG9MREjllKJs5boqtD7sp7yFblyBVfSm8/LsPu7VSZcdGmJW6tu/RXIPyjkUxf+Fzklh+KsI/GUWIHmG5SmV5QNnJojH7zxVHeg5nbuRC1HY9E4CpZy/D9PO8kGMnVNDDbRNM5SMqprt+HnRqV5T2vOS6zYq0/OcxzbswuRMNoLrySuUv5rWW/x1v+5dx7b3//3D/5v6a5a33HX2YKIAx5zemNaEEBQeugS8YAWYswm8XqBSJDimc971MVjcsd03kqtpFYOVFOYsyFJViPo4WyOTyNHgNzCvTZ/gZiOb2ND7Hj6kmpl3fTzWaRqMUFo3XefHiuW9TRLTQqsrWzNcKH96pmeHu/vXNoeH+r7vuJSaSLS1aV3B3D1fVrS03FpPej2keLGhxst0Z/mz+sKHWLJ4klNY3jWt6+M+m9f4xqnjwVSAAAANkcvkZoNhfQGDmuaNMj8AgEbYWlZ6rVIXqqwDlI5XIZySzjxUELZHKovKxYJHHhvH7QvJiv59krbk+gr2lPU4K9P4vuB9d//tkxCUAEFlTT0ykdSnxJupplKGteeZOBXOcpwmvuyCxQIguMHgitlcitEGiug1JYbbMzMS70StLaZwwwJFdKZXZHYYPs1A8GYkm8pdoSAQAF5Zd48FViUgHjgitMYKpjpTyjR7xqfl1A94KIyID4ozrhvi4ZJSYP2SJPMfU7ovn/UKQy1YesrWcK0JktnVnUhg27/9RHfFJyhlQpDGkcIlEWrJHXoUKljhZU1a2oyKpv7UpTCqHPGly5Z5iEDU8zg8etPyAQd///ADZE73dGaV9icRlaERYe81JGgyAmEqMxnNT8aswc9M/MSWidChn//tkxBMDD8FBTmykdSoGpqnNlKHtlOq8IiIuKzjwkl1OOjM9+SrrYfS5qoL60os2l3TWi3BEQFPKOsuR1aX9QxlylMJVK9ball5oOFolUV+fM4zQrkGJkHW3YFjgqZmKDb/TeCm9HKf4cLEwKgFZG554xpBU8HLGrICkTQEJAXJCo7Y1OY9Bb3PXhdYHkIfMgmNkgGxUQkAuIDjwZrNSXVfnyNPOqpLYJnHM6WpxVHXKdCWwo02qW9rfpGp4kMIqXcYMspB1XeOG7XP0iwc42YGQzKu2vXnvSUg1WYZRMnUn1Mx+w3nK6MZyY/AiOjoA//uUxACAEIlNUHWVgCuWrGhrN4AA622dl5ollRESALGYYAawpYBfQQhPqxaPvHKKK3JxQLy4ilg+PLAOlhDCEeJJgfD0ypy5Bd/xuqzr6frRTUVWJvQuE2PNCWSz01LHTmzemd9ILpbjeClA3RaxJBjXsOVTamuZZtzrmnYakqpMdRe2W9c7YuH0y6tv/8K0/vNyveXiNL7AgiAARmlu+1++zbNoDT1p42UvMRShrpPaXzR2w6gMN/ADKBQ5NPMWMTExsDDZbRKoqhxhwIjeXAL9JJoaJXl3AIBR4lY2yrAQIFCZAlSullTAom4KqLaqwYO4r5T0RZbtQNv4Gexy0wVrSqs+8FtYae58kl0YpG4yJsDgyGUSpj0NP6/EjgV9ZfUoHb66Mkp6WGoGl0009ht9u0DujEaLCYhuUTLox3s1tynbZS0RxZVD9NA7yrFgKPxmCJfWldjKUc7Y/tikjdDbhn4vLauVNhrvKtTP9cx1nrXP5/////1QqAQS0wFZ//uExAEAE2GBSn2mACH7Iiodl5k9HL4YNeGCxIiyha8YQWZUohyL9CSpBCNAoHgpcMBzjqmQxMwtNBFHqwHg+GCsIRiXNDS1aIRq1E7M02i9abJYyn8U9NmF/OWtz2tQrFm/eH6/zlpp/WznV9F+/7tMeZavE98xMa5aZ+Hf+bMwNxOtM0mk9S0Od9GmYKRu2vT2Wk0Kx9a9eY8mbb313OYiWQKWNedg+KCXKXfbQQCtbLfA5mKirRdUzzxY0XMFAHeJmTBFU8XmVOvmdJuLxfiKaRzKOAzpN0twrrvU98Ku81v7+GuMnSmRtuJusZ6iFksTCX8lv57RltJ90We7Ms5tkvxN5Lp1F/+UjXiXx9M2K3Tq0rsrEwWnU4DPSEBwknomh/R5MFChpRMQVQX7bL4CBLxKMEZmBmgGLAqSzehy5hiJua8l1xdmPncq/Mkd//t0xBGCD+E5UGy8yWoGKKnpl6E1syoZVpMpkCqAH2TwoDzP8bDDiIjQXEDDNQsZXW/o/1a4hu79dO+3tm+/2dRJMJNRJdpp0ZwgVhlZ9fvf3NrwVCEM+ziR81asbfb6fE0uagEYgKU/8swWEosRppIgADZG735HbWlicxjcFBY3MxdGgxBihETcbFqjlaYilaWJMzHpDsVT9UPUs1t1mfTFUFCbv27bE4zC0jqmyrVP6WeKaNoOFmubZmUaUibUPGO1VNLPCHjYNPSdRrnVE2OPFBisaPIsZa9X1NVDM9x1MUekjFORGjAxtizg4hJr5F5VBdkLvpDKuEaoKuN2YBOmgUSDtZEZrY0s5VBbUnx1LYAhUtfG8+9DtkcqisAD//tkxBaAEJ1xTGykdOn9oCoqsrAF5Y5IIygucFNPhGldbG1SKmGe6Ftl4H51sVpPCrYiK5jGxq700WMpeaNVz5tV/6yM9VAW4Iwqm2SZ6ZuD86MgE4kACkgQcPUBcnaexAgShXFAhAqCFnGMq0AKAA/o5Ogud9JJiBoBzMvwbQaHWGAaBDK4oJbvNRi1CxZZmRTg7JJgeSYQ4jMJqjyd1WZqXPUbjryFTNC95pMOMj7u9SpcTUkR2njqTTb5vr+etOnsccdSzqc2Dttrb/MLIH2POPZfSjBosB+wwMhiVVUOqPdq0PerHddFWS6VAgjA//ukxAGAHFVpQ1m8AApLr6nPssAFAWfm3e1+18kNmEz0Ko2M5MPQgVunvI5kr0csTG9gRlQcceimUGJiYmHD4WAE6gKGGOAid6CQIMoGl4imDBJPMAHUNukwl4Laa4yVrLJl3PDG06VhWsVoSvdvMJHHBCVyX7d2H04FRxp2IrqLOzSw1TXHch25Em9gqLt7DeNJOU76ZP9jNQ/PuTLpm5Kn2fZdcBvuz1+mu0ju016xPPDXiX9pH0YY5MFRt+r1m1aicPNJeipR7rZ7p997rPHulhWeM5k+rO5fWi2dNnO0uG8d8x1+OfNd/n/+v+7+VcaahFAv27fxADZCgxSCOfAQM0SEylYiZdaKeUvybNH70mPzU7GmUB7i2fD4VyygIVStPVoRPidn2JovqR3XnWdrPL7Qwue1ExzjPPMf0FWKOQvL5j68aGz7P8zh3zlspPTsD0Pw3Ze2m2qxaK1WHDpEkyKCufsex/NL2hyuXiehiWZtLRMY/e/3mZmZnsmlOve/3m9/ckUBAKrSm79mpCMsFsTZjCHQmwRFPsNWHqCWYEgeKhZoZnvWw+cIdSUgLA2mzlbbqonNuUDno13tlGniClrnu2G6lKHqN85hTLOKXTbD029+ZOR383FGXrfe//tkxCwCEL1FTOy8yan5JumdpI6llL47/3drKkmQIkyACIBZIYTZVzv9LqXTMQTOQJ9CDVxtMs6YM3/wii9qNyXxJwAOrbncIwKolIAqWYqCBgQWHjoBfoGPvuUA3/bBF3wzkTYaOUvjuAdzzKKVs8EhMUHIAJ35MOr3n2FYpQ6lzF/04psJe/1eag4ll6YY94ghJg2B0nhogwQxdZ1nm+efrMmpNVpHeoxHSbL22UmdYKgqYaSCm98xws6tJ3epC6oAAgA3o5N3ZHZ3DE3jC6IgiOJg6QAEGeFLJQ0GZuYjo6gnwm4Qv8Oj84WEaFC4//tkxBcCEF0PT0yxC+oNrSnNl5k1l9GuSiIcv3n3896AttOny9JJxhpF3UkEsHJYRwsLwzL5ElKEYgDxy+g0Rg4UVMJlZqa6mV6lmi27SSWHFoNgdeEehqZJ/QwqskiKamvxqlZJez9HsgHyOXzBiRCpYZEaqgGRMIYkDiJVHaxE52820zhlPRyWT52i/KTORKnpGbmrSgxrsNjY+42luOPwkalXJAeByVS2ObymHX3z7dRqd68lJkjSCRHKiijjS91s/fI8trnTGl8oyNbz63vryZWS2+7WxBDLQ93ke7a78ZFbVfMbT77egFgi6gDo//ukxAEAEYE5THWmACuYLOh3N4AAnJ1TmZLlQ6DgAgkiQQ1gkcCxwwYiEoE463eNQxTSMLqG4m2HCy4fR0MxyLBZTOj+szoD9r9n7d9G3GZMee6zrj7zdu6rG0fOFlfn/naW21b7W7mNvU+2Tb+tk9XJ6afk/P+5NbLXlp8qPVS0+WrltnmdrFvZXWmcZY1q/QbTbv4syyaLL0r3v8cLABAIgAAAQVkuWu/u0kNWFTwLA2E9MPOgNknrFIFWDViQBbRlAIcOamaGJZ8oBxQAVcEGQCSEjUvAgyf6dhdsGGQHM4SMXOPAeYa2/irJtmzJo619cDww1NShgb+Zz8OM/ZbuMwSgwqezKpDYjsMPLGJ+W0kEQJYdS5gournWpbTTEvoJq5k/ksaS/teH2tUbqqatvBrXrEbpsZ2VQw8eqapS8xZBHJ6L01FG5XHYckOE9Gt9rX8pVnlT59xvXYxF41HZiU3K9DLaWU873/3zL/123rnP7vff/5VctBMBCR4l/////5KAAC1lm7LDXghEIKKBLEMAFM6IGQCvho+uVKK7bahBdmQD2iL4OoyxbATVDoD56PiZEWu7alj4qz9q420ZsRlRnvi1uBasdiT0arZZp+xelr02Kq5DYfq8xLd4//tkxC2AEnFNTP2mACopJumqssAFHljxow5fXomnWN5uN//9y3VtXL99ZWY5laf2f+x7kz+RNLcb55vVjSK3U/tgu4Ey/gOCQt7b7lmBACABebcvWIbS4hYJHTbhDKQXIKDPsJQRRNmVUDmwiVRkNYToTUZOSRAJJhNFKMzaRCC33MGKesc+zeJ1eZFLDukze0Xo4L235pdc4qtnfN/pbPz7MPR9d7O7dq08qQvjy70Mz0/+z7G36u9tJ5meh+k1+2TfIsn5+lfpkQ4mhns0zr33sEimcYpSQQtQAhjnt2v2u0kNZ3CbkMUCTn7wyGKM//uUxAwAG11zQ1m8AApFqKmftMAF5TzSj00gmM2TQMVgZ7NJGwwSIQgVLyzREDCgG0sOKkigJh8aMxhY6YQqh8lxl/hIaVyqC0ofXLeacviTsnbZk683XpJRfeJdXWaRBmDyVGcQVGdy+F4O7Ny5DlCYCyzsQ1OTFixD7rwmJyWKXrz5Mpd19HEkUOT8Zl83E3/xfSHJyxDL/S65Wf7fcKek/HWo3+G8MKf//eT7Sm9azlMM6+07jJ5JDlqUUmcozpMP///feZ51sd9/////92P3n/5406eAAgB2W29wgupVTJrZhoQYOIu6saXAUGWiYFBkaeeH4ZlBggoxpNhypAWjcnEAtJYFI91/2YMR3m7bXL4FuxQx5SzsMqL3vW2QvONrWaxb0bVmcUt9fPeboiv9nLxNPtVeqr5Gd0rSr+WY6sULrPOt234tcbg6K/V2KGldtT9fYr9ll3ttRflMgYXy3bqG9zVYMWoA9WOeHDGqFTwi420jKBBhRIPHRQmQ//t0xAsAEAVhTGy9Can8KCndpKF9ROPDLVc2VJmRmg+WlIyXHvMeBsRGaE6RGrXDQgNHaRa2JxuEWw+yw5MD1J+5ehCxPf1kseUw0QXOOnpg+FUjao4cmWoZw0k1f8XOyGVRic//KN/dpyNdhhhsGDs99P+p73+T34IAGV9SASCAXpG74mY8iKHRYAOxXUDLKCGBwECuKFHgfBoFFhODxgnA8XGNeBhhVEEB2jwL+VJJloZT5wbSTRRbHV+hVCPHO6CURAPICKmoZJ022dNrFew26hUmYtLp6H3V11P886pRULHH//cfcQzbiLZgjWOFlOFbJdzz/zkuMtTWvthVAQAs43fGgNwVARNQFcGeEbJeChQOhnEYj4aTw+iLS9AS//t0xBCBD0khTOyxC2oIMCndliF0EEjldD0FlYzHs1H+yImW5w25g+Jp3fEQZb3mVbjTme6d8wcPDW1LKpa9Rww86L7ZtEgZd0vEOkTpy9PPF3q1DXSpe30i3nGTCUyEGUNMH7xLGN4Oa7nz/eUgAXlkvbwBlJUFJAV8XKAvk7nnJm55Ws9hGAm6WBriSlMjmDfg/dYJtziVBbtTdWIfdl3NzCkSQKwKjJJUKK5l2g0PBCkVhYY0YpCsbH1jrF4cdc7RcWN3eDCETq2lx55bu8spw1i4E6xb4+/657me4qd+9p6iKao/7t+5iukZYs4mFQEAHJJTpWHA2I0BRM3cQNaegQiKboDpGkIE41cai7lNDoKk8nCGNYg4aBKOBKNo//uExBeAERlvSvWVgCt5rOfrN4AA5EdchBpPnWQPpS58W2WRZm6jWUdY2NiUa7Pu2NTaX+/ZPMXcbo4mL6mYjqds7ZtzJmuIbVTcOXdLepdFnp6+vb3G9Sj6T2NfFP6jtlP6maOqwsnZxQ6nI1tkADlABCuez63LWts1PUBX4ZIFno8RmNwZmvmrGpphQa8tmIjJooiamRlYqFwoLFYKHgMNF9S6balZAgr8B0iQCC4kIKuC4E60ExMJGp2lZHYFgvw090nqdtOJg7iQ6/bg0C0n7rMshUHyrUNUsUoF0uvdeySwNKGvco5R2u8jI5HXet63srv9CmvP1L3ZqPvG8alincu4/79y+WSjDOmmrVezJHrf7svt6w5hD8Ta+yySv24kg3Yu1rs1DTtVL+9ah+ndyrF7NvKku71hzDD////8td///LWX73bvVz8PqgD2//uExAEDEvVhSH2ngCoKralNlI7l5b13BVyouTfzFYAEWDT6ANAwUMOkRDnqdJ14DhmYNxaVZ6lMdTVEMtaL0VUJU7Rpo3vLKql62cfXmz3UviZxrcCXSujazi0a0ZcWSlt7x8/Muaa/87VlYgzwJ4V26d1Dpn68sXdL4+6bltEl9c4iUu+7kwR31JsUn3jW6e3vJmNEvLj71jWfjO4kvz9Y8OFMeWf9L10YDzbc7sGRgIzw0I4SDOFIDiobEwQW9CWdPkx+I5SFo3IpBr5vrc0wmWvw8UIhW5M8XPljhzJVaUIVSNNs/HdjdWLZdVNV49pKTxxbY/wjs53UtXSPJTwNjJyXmViE9bUiSVzgAjENDfhm95nEPIt3OOeWeSEW72QiKGYUQGMFGXgDgCoA9Jp50TRpxRGhQWNr2BJ0LCV/mVCPUUCpZH2bPhNS+AoR//t0xBECEGE5SG0Yd2n4pqmdliF9G4Nak2KtImAWIdttWgTcHNFtj0jAnQyoeW2nDmaBctyxnKI9LCtabF4k74+POHQvLxmMAsTMsy6CtRSRpGpZimp4+cJqYMlS/CNX+1UKlX62GJF0GkbftfRv7X84G27je0ATNpTyIBaFQEPMNgQywjNLiCeQZDDCBNBE9hU6WiugIRTGZDbfBI+H8VqTNs1Gi31gVp+/EUGPswrC9RcybUbYX7uGkbJjBoni5vouYTtsspTbPf73tEm4Rk5mv/qu7jiLuVrZZgpnXtXaN2QVKKgoJLXx7Je/iA4PAB5iy9UCAC8cc8sCHyPBNcAsJYoCrEIBvxZG+yiMOwa1CCc5Y+OMpmXziF3BjeNM//tkxBWAD3E5TO0YduobJ6lesrAF9MvlE3JoDw7OkB3DQ/tuGZQ6NkqptIvIbnG4DFhJl+uWMWXDQ0BGGOVCc9RmLWLEYkLPT2enVRlYGhrd6fwrKjEmij2lzG0QI6/9C6Utv/8UEAKpNzoKHEyF2gJCbO5nBnUQKEMoMoBPRQuHtqecimh0Po/j8iEw95MEhCjAsDoJJLIQEC2xj4cPTHD7cgmnS297KjWpnG1+qqX3s+OjzKf8U9CU3oHH0rK6B03YdfR6O4qbrbLTrZZTN98W6KOz9ug6ha8U9nb1IXduzk1m3Ygs8ltb6vAVACAj//uUxAGAG6VLQbm8AApDKilftMAFTAACBumt1u+1scNBtgNyGVAZ19QZbQGGopzyacUmGyHojIzHxUzUPBIShUYUTgoyMXCk6QHMMEhANEWol0mknmlkkMBSNjYEsZf7N3AXYmpUbK09nk4rHGFgG0nnTdhTJUtSCouvN592pS+EodVV85HKj6zbBo3VgiKPJTXpYuhxL1t/5dBMRjL6Mtrbp2dtfl0nqRdrkOajd/UPyuPOND1zKSUksqUvZuL5Ucrp6SvP4xvtPbjr6/y19amuymIQI78/lX73Ov2nl9vn///hz5TWO/+hRWAgcwqAgBdSy9dQqvcMozgCkYEACu6CdMwZIL6Rigp4pW3eU1hQ8W2QyKLCIFzIIgeKBEKaIfPdr5umirLvb1IWOfK3ooavMtI/b7O2cSYWG7ZktNXceez8gs/qNNL+OV5dBbY1l4IXG+r3bk03If73G6vzTnEN9RbaLb9PsWr9bsVprj/5Tv+1/mCY5bTgBzX0bO5m//t0xAACEFVlSuywcen4rKlNpA7lAQAu409ARiYCMsPGCQjODCphYNh8xB2MKFxOgaHLb8HPVRRiQ3LKZKEpNOHhgO5TUC6vQbBeJ+eyeyhqkse320MZ1Haz/2r2SvZOWfv/1y6aiif28s8smLLnTdZJCNCQN/P+xqFikzZExw3XO5w6QKUGYmm2qmZZmSF/yYWhS6zD74AHJxvtNMyfGDbEBFZko95EAFZ4OVLaTZpJtoT1UFe3JpvTZ3+qZsY29rY4FhiS2X93vQMBlTOvWYcZQjrCF0eNNSaStqGyCYy4n84Q9Nrjjm4gjAYykMNrHCpR1hdI+3ZCM4nDZVYjz9c1yDbBSZTVihcJFmbQiuYS9nbLR5YBZRuenOIYsEhL//t0xAUDECk5SmykdunyJulNpI7dBuMGeMY6LCEmh7FfCMUjfGLRu9InrnZVcau+uoGe+Go22GjiMG3nCxfay5VtPuqryY9Nxjx8ehjPffd/I4kWOeN0tAhLGrznUBML0d8VEUGaES1Jg6gVTfMMCoSCzQavJFBm3y6R8q5A6wFJRskehjTjgXRvbPXAOUafjAROSEHuBhZCVoC3Doh1whOspWuWvjIH1p5Y2G3LZhznqrxZfMtealfOHoL48Otlw7B8rzK9XBPo7r4yUaeXUq4ZWNpDl1O/KLFCR1YGX01M3xaqlEASy4mfGQ7zmmjbeUiFY8cr3JlmgLF0rK77tl9/8hHwmkCYlgQALO2T0pqJjqQGVMnUwAzcEKgC6DCC//t0xAuAEF0/TOyxC6IDKKmdhI61SkSyTIYYDxZStQVRSG4noa4JDkmDwbEUT/FVPmFhJZ3V+ZQTEnh1I7ig/VSYqal5D0sVLRLZCTgySkd/qsVNmUxaDlFSZpWbhnlZl0TtFLceMg8YjvNx2ydq8JcY9BaB5UHhQCxvHJBFZpPYAgB5aS+SGXxUgDxnDIOMehw0vUdKokpzM1HNl1iLwRPSCDHzgCvcf61CXqYBsbmD/94LHIPvL+xWRpPZ93SaHXKZvytxTn1787WRwQTMJRY1mF16xhKDrclBhBBzCcn3/RJ6wy/18oie+ZSFuDou0zC0Sx2NRgQJIIHe7/Oy/dTFBcccndsYTuULWhSMhkCq5edWgGhlHFOUxSPRPhVC//t0xA8CD/U5TG0wa+oCpuldliG9ZQ/E4ZmbJ6D7RbXDEwKbxImnNH93Vm1y/sabIXn55gkcFkDV0osADI9pA6IDJaVhHSWk8rGodF1YEpOmLBELNjDGPNAQkWlBEPKRH/3NHQLiQMWCVZa+emf//5GDC1QMAVIAVNTneIwLhGOJlDX5mBmKYVC3nMwNNxj0lkkDkyMiFZASCYNywwWR8PScKyKUy++Je9bTYv83uX2bwrE0SiadvvwLoI+Vjclh0f4owihmR77JFXBEX/zUNK3bXfMu8/CJWziWBVR4+RyNUcy09pM3ejFjKNG4wcm3b/+768A3dtWAACrrk7ETRrxwy9QMptLKOiPKkxpUncuKkvtXfakqxOTSl8Hzg+Y4//t0xBQBEKk5Su0w1KoSsClNliF0z629jYWzIT4xZvbCsS3a2f3q4atxHuzdMiegTuC8J6kIlHULy2ZRC9mhh7+pLtmh+3b0+zB2ag44YFhBj4dSW16pLOblsybX/2/q4mMbcMbOO0HrIOfZGYI90tPKgDHHL8DeGLBYPMNiIyyAaekopIakUUVqP0MMhz42DXScGhGH1CVAuuMSqNyyUzcX72ca0jd3+khxLLfzYhUo2lG5mceSFjzamxkKyoM3mkqkZtSZ+lG3CSnbvlEDqTekSTxrxCjYIb9rvjxls0UNJZyRUVooQhYyDmin4+va5W79+ldRsgBpXJ8w8JTQjsMvxM0JuGSI2Ak03mpyB66YxXsFVGahYbCVYoiKoGYo//tkxBSAEAkTSmywzeoDLKmdlhl8H4bp0EY3/YF6FMd56e+Y6+a7NJ9tY/1Fl6emmacHI1keY18DVJxe1PTa8/y722dTbe6xvI1BtS2Yc6EpApRNSaJJbp7GEEgyRmBq36OJc0gIGK1AEjlW0IAOux35GkeQtG0GYPIIDNARO5WALCKzPcuIIQEDDVIjPw0Rkls2DRedDU4OkJuWs/tVNOub+5TW1hcjHv3vzaxGw+oPoqkGr//u1YW4Y1bfvRTLrPnqq+1OWtkNv7X3W6dJmRbRetufSmusord+S+a3+TM/Wbt9/3cl5NBU9qQTEAIA//t0xAGCEEE1TUyxC6H0p6ndlI5tFaZu+sYrRUcA05oEhgwDBjbNREGm056WoYE88J4nWMA0eISGjM7DZoiJ2zcmzHMJ425Dr6cYmEKhAW0tSrGCQfI088tzxq1tMH1UwFhBKCMkLOnWkR//UdW31OerI1UlqjHHipR5ozHT3xKXNIlVDycQQ7irHJQoSAyBQboOD8AzzSbzYw2wIbiLGyhwKzRnc0tMp0+cSiDywDbkUksTb4dktVwKoFRsSkVi4W9VAdK9q99Xqi8zyccTtyOJ5VaW7H4qmflWS7zyHDbRkI5DOYYivwxwmXYlMmkNi44mkpE86QkOisjkLBYoI4YhnlBZAdRrvmaVIrI5JqjeVUIAGuuXxICVBcsXyNsE//t0xAcCEB09Suy8yan5q6lNpI5tyATRGKg7VwdCGw0nqZj8/Nsj9ZVxZWUmVgwLn2Z+1T2k9Zstgs1JT7ja7hz5p5akVHOB5nWvqOore8N4dMtAyJL2nvMibsuS9psx9QjtKivn0t72/Du1ZkU7fzqXQh/Gy1SpSBXLXkPkz/xCdtgGONOjYgOSN3xkx50YSpXACOpmJaF0pniydJaRUkee+NUkteu9FWqchu4LDxOUIQkEpC4HfMXEyTTfnLtKLqDLTvsa62PVYfjRK0zOKGrrwrZYz0UhldENj6x1yNGRNKYwHH86eVLe6Qjym16WxRWU8MQeGIcjEEZNynaQ4lG6b/MAAxWAAA1il66DoICqJxEG1gYZAiPTKTiByidj//uUxAyAElFhSvWXgCtZKWg3N4ABfw/1s714T6JdqoqIrI3SmCyH0iEeqGxNnv67gsjZiB/XO/qam39HOlNw8wGybUk9rQ6T3tbcODrH/vL5LfeN21FzbGMfO7Yz62xnPprN5ocP23usj2K+fTw6xKY+b39KelM5v6Utqm97xjfx97rW/+tXj8weHoN6YxAAACAAANA822+//2zkNdFzA0YawTvm81M+MiWDdwIxIQN/TQQQgJ6Fk5ajGhAGGGBSdahr3FBluJrOAGJZU2B5wIAcApQrY5UVEbHpRYUHfxvW7U0GFKVzsiRyiUNuUna6E2l3MvqvWNz8ohUustPdhz11LqqNes1pqETDT3/nbleRTMgfae92cqaC3Xl9emnIvIow0yWz78WZuaclsLTZYwV4bnb1mhdrcQvQjWOW8t44VPtUtmrUr1KHKU186eNy+xjurh/7///n///ylBscSRvECNtRwgArLZe/Joh4BSGoEg2SYImYocgmSQJRiDV+//t0xA2AEultSv2mACn5oGkNl5l1neGIQFekA8LjMLiKRVwzJT4/EofUhcNgbw/jR+3V6Xq71PVLolv5ko2qOtnz0F3mLzAsifpW8GP1hxI8bLumcn8+DtZbqppZ46lph57OZ2Kzjt872viT+5DdyXmXXd7Lf/5l82aw+8xeNZDGxbr515mcm8u7Svt4jkPBgoBVySeOGfMQOApMDehCwDxW2s0whyQK0rV82kW8az2mXRZJRRSpYz4KoO9YQ0+Gk6K791pf7rGx5YswDUlG5iz3Di65nNZe0GM+fZzUnUdKHzW6FORomjitd9W9ECoxWuy7xb3e22UeLL7Y03nMQYGIiqIVIztjQAH/hAMqkIIBVtzdyxApUqHqwjlEgIz4//t0xAgCEG1FSm0xC+oKJ+ldliF9UZDuKCjSBVs6WBiSYyi0aGImFAkp1yhYWQtfGRCRlvp/lDMa/P2ebxShyO7HT8sJTOCyqvLF2S+27Wlmp0/np4XtJ/HDVtkuLiWdHqRQlxNDkEnmSio0OUzHjGHTTjIIGhUXFCWHF0NuhBTUFzWdIZjRYBAB6SOd9gRUiGTnGumAjTdCLAbHh6FNyiHkTDUUXYIaktDURCEyoFS4tpTcfCA8PtN2BSxGxnsQS60vWvi5E25ogEBAYYxFFzVECM6RPdzEWNVr51IjWjnYqhMVaqk6UMbpO0jV7Oi5VCtYXu5nu2aa7d+RudmOSdL0a0xdIB4GB+AfAgApK5e+pmwkCqNRifoSwW45iZ4O//t0xAqCD6lFSuykc2oGqClOsrAFfSWkEogyB6O9Bz15wh8HygnYQBfRMMBIVgc0BWZVD5ala2dbVmjkpVufzpy14chLryWMl9h6Kv0fMaI0jIft5wnY5u5Qp0mUUgFsDNgZ1IhzqcuVuTIL3GYWhDOYrjcFOSu2z5P13M6AVcbvXQbAgVTNwg1ugKQYho6AtYBAJ2dldA5709px2kcdZBBwPhIIUQJNHwVPIAWQCDbXql1rHohkXKqhVS0RFHFtM35cxrY3GUL3G3dzUXdtmLZy/YxjNtRcOiLe/9iccv6btm4h7+r9v1/DFplzj7Fz9nFrKNS3Ud7vgYEQ6xZOAQAqcj31mliaNUmkxWejXgBOxIk1eWDFiuNohwyMHDdK//uUxBCAHQFnOPnMAAKDr+kPtPAEDMmFU1GEDIYWAAGLLF5jCQICoDBAFBUgSEGEDXkyReoqR7hoBUYaSBQykHDEsFunjaKiC5KPiZWDeMcZAhzXbJ1Bad1Wr5ExXLapEJyXPnUncYo8TyzsRdthtFN6kzwzUjp33s1qCleJq73u0+Doz3JK6EUy1ZrTk5QQBSUsbpZjcMv9yGIAm3Idh7J9w36mLtmG6fkv/uqSHmdUTOnOca1m/0RhiKU9q9G+c3N4Szn85z//8+xGU0vMPx/uquFbedcD///96wHXo57JngoJNGmCiO6BDYELIAkIASSGQUJm4JjT/S2WGZRtXRNUIUyrUauQavQKFIp6btfiRWtu3+NYu+hQmNvmdW3jFX9Hkuqagv4mtwE3bWq5mgx4NG+HEeyzR6y1i6zqJLFjtlGeSZrrPjc+Pr38be941DrPJSPCk3G9sX3C+dVrDpq8kR++Y6OEsZ5uNjOf941f/+n3T7l1XNNbxaaDANcb//t0xAGDD7EzSG09CaoSLSkNpiG1nhgyqYgOFrxp4JFgkCVQLFTGAwOiAcUygD3eMqmaFE1FYt6R5uxWY2dIBMRDAluWAnnjIphvOJybdpmGhQokPdaWXANBBppRl4YeNx803q1zbyZSWOit+G6i1ZI1q1ufSHlzy0Miq7frmy5YsVUbb2a6/34pJbTd30JwHFG33hBDUVAD2IC2BEKM2PHRsAhzJKZ8oeqtWUnxudmo+oQbGsJsKOGw8lEnkJ0c6WmE6SWZyjrLktrNVoj3nFFLd31A1hzhDNwzHQkRDsj9WjM0HWPJih4zP0YUF2STyBxk5YwcLjFNciys6LXR7/Wrjupqe47//uGh/7p0JsyalTO7ggAvK5e4wI0WmVwm//t0xAYAEAFDTOyk02n/KKkNp6E1eyDgQN8m2xYeUWw+UpoHtgzdNBvJHp8pdMliZEqgHyAaPBS9yxwpBqo1bpcyps1PfeRpvaqHyKeoi4/9xSsfJtEw6VbOyooyM+5325arq39fCjVgvSfO1NviO6abXO13es86u4MMWuCBkWeOcupbq6AhUpsBVRu+6Y9OQGRYsY6GAQJsASpELzHgwlxWLo+JU+9SiRc1BgtE7BaDNogjOhKVeWUP02MFWHDoobBuh5SXcVN0JU+/GPjUCwytLdq4UYp1Fo02sY+2vb1VVi4nX/7p0dJq6mLGTtFr3D8beSpIw8GsjjiBGo8IWmdvoDDG3//OVYAAGyRvo+GqJA0yZ4cZSYBRRlh46IZ0//uUxAuAESVpSPWlgCtgKme3OYABDAyTkHR+OPPEbVCTByH83CAhIDgPBJJAjFgeiAIw4dy4ays4/qI5k9rMiuWIQW9aqzbYgYGjmVTeIfuuaqHqKvPMOtPmzV3R01V6zXur62V3HMsltcR3b3df/zwze+ZvZUvhlsqXwziEGJm+cpdl7sHUAAABgAACgZuW/+7TVtGcSeYbIQGjJwYZmdxQYOPxoEGAI0GmySZIGZn8CGHQkIgAhshcYaACU6DoKMmiSCDHl6RYCszwkRGVD0mGNZgEWAkNDpedS1pMEPhHWsky1iLJfWG4FbC1h85poFeSas2bdPGIMk0XiEUiz+t5OQDXZY/E7OS2mynYvfjcmfxyn8hlkXZ6Wca1H8Ocw73KtWfuPPG6Fijq1L1NMS21zDfbfN93/8wbLDDk4O1cyoa8tf+f7l+u7lk59jefM+673X/VqxmpS4Nmm+AYKkIAPS13w2BloBPGwDkssLERwcrEnAAQyZTm0MAw9FqW//t0xBAAEcFFSv2mACoDqKlOsrAFoJzh74xPGlZLTH5XRK0JEVYZnDV17ZiYl62LUvMZbLLWW463yyyNrtSq38m80zLdWGrrP5eOzFD9csbWJ7sQWmreI1zG32bVrDzu/a09v029OpM7Hk/vvZVvIkO6tpyG8TsPLE0N/3RdDYMZ9vABaWS9a5oxACKGQzAOfBaIyC8oOZUafKdguKRHCQlxkQyYwewnDtOj8ItlhUZD1XoJqHz0LXNzC8vfHqOUMTkQ1pYcQhrDzYpnTI+a7pxqq1rYejrpKw9Vx+H89b6uemdJdRuud08VDp59k2rNqtXVs17ejrq4yin8m6nDwAg7PVEABcAACPtrXV6ytMyMITc8OMStwymhTCh3NPyQ//uUxA4AHGV7O1nMAAIzJylfssAFysdTDYVAyzM0ic06RzHJCEYZLVDQOAgNMIj4w8DUAIAC85F5KoRIEalootuAWbRWQyUqQPVtli9liQ+xNaMAs+aBJpp/pK0F/G4O5PpfOHDbOYYjV209T/WrNqdjLzzvbOok7Umh3KLYuRFbudJcdyxSw3WiMlsIeu9PYy6NS6tjVxt3q9PObwjcM0Fd/Y9DVyGb167vHcqtbpb+qmGs9/9SMv7bypqtWU/3H+Y/l3XcvyypLeH4c//w7hzLf1v7++ax+t//9wEAH5bL3RAlDSwfEccJkFiYTRQwIHOKHMVfmSObJMZcJrx+2Nnzk6Pzo9KispLkAqdvMrGufmK20zlCF1Ylku2SwH/O5d2sqrMssRUs+nhtutWrW1ffquhdYeh2jsVrTrb6jI270pS+bM/WftLzdaIWO0rFB+9aay4w1Cz70vXcMTn92938r5I8AtW2HgMATN13w+ZMJAiLLGVmWTOARWxOMxQ1//t0xAuCEAlFSuywy2odqCkOtLAFlMcKw0JR7Wj4XVZwhjZbCpHmiCNVDGBSS+rWGuqPCLhi2NpTY6F3GrOt8kwui6Sn+mZ/4z5TbTzOaEWYXbPFtR7HWljzGtH/+/43QeSbcqpZWx46mxLaLaT+5nKvDwwMDNfuTHQtXLpvQJW292GGYEA0yZocZCgDRBnhpCIdIUEKoNWjsxA8RvzI7COIY9hAiHCMCASSolEIO4oIQfL2wP5XU51Bh2rIZ61e58Oo4o/2PThjIbW49LW9Nm+ddCKp5PXYy/n+WN+/55e/Zvc02c1FsJHnpLv2nHKo6ratnJ47Zs5prKI3i82lTlPraOr7NQADAAEE/JJNbHGkjWKPMdl428Gzxw1NXjow//uUxA0AG1FPN1nMAApHqKkftMAEoxDXoYAzAN0mc0MUzaoSMXjIQA4SDREUwEPEEIKBpxIBgkMDeMBdDGMghkWogcUjVwg6xESozqo1cmaxtiThQSzFb8OTNLnKFytwcfFAxhyCJozuy2GYjAsMUrlzUWeHrsS1+ZLZlspvTutYw9IoPh21XZRL3ih+XyuNv07dyQ0E5uUfdurTcaZg2vZlkmq18ZTSXrHa+Ubucw73PO1BkGNOgnlWg3Wzy73LDP88u0/4d/8///+tcl1cK4dLVIz5ACAL02m76maBgkkagGVLIgLlUonEiQYMUksx2A3hd6RS2oJyAWbhicHS8e0x2PbquAsk2Pv40de34kK0f0dZmmZSzq15Xdv9dX4ea/C67uYfNU53p/OXoLKCffzjTSp07gdb5z2H4otpd+awa3Rxt5Zd2GXN+k/PbXs99p9jHrZWHj9pY3Gs1+gEjUaw02kKSAKqANlkvV2atBgUNdBXgZOB5RkV1QNCo42a//uUxAwAD1ExSHWVgCt5qagrO5IIdgOKRHCQnjIhkxieonFqxDCKmTEFhGfegmou7p/c9zb4t8S58TBrMIuVa48583L5dzGzrO3Esiohs/atv3tZVXxxb3vfLm9zb5ud36zuebmkpWUkjc4gpOXK0b8v24kl/J2AADABCLH+p68zkIDH4UTcOFjBUhDC0TzAA6TTmMjLQ7TFURwwbzDkEzUklTHclDAEIzAkAh4GgYB4JCgBBSZgJkOyNKMQmGQsQQGMORPsyLxqDGOUBQB54QBuQHBKkfdx0Oq8UdqKmp0in3nGuOxIMmqO3AkUyauu2GSA5m7cq+UOwW50fm4R8gt0U5XjUBNCa9Qw0/EP2rzvy/r8zT1CEZ5YflNM/09lbs0srile3K7duWZa/G7ci01jKa2VbWOOspXG5mn+X565q1Vwuym/+P6/HHH//9d//wwsO0wrAfl13fkwLmVg/Y54zMRCSmqhBQRImUv2HaCEyTGLCbY/8bPJUJWfHpwb//t0xBUAEk1pSH2WACnnJykdliFtFwvIhIt/VPGnfmK1XLUcQpZtk4jO10NFrEHMwo7f/1rzy+s1/5zaIzE5cgglvrWXs2jditGdrK8/Tq3fpc7buwcLIUKJFZWn20x7v/0152Jp/WdxVA83DP07pmb7tvrM7s/lYouT3aIIYBWrjvgkz6RyUO6M70wQTqGUwSDMkVN5jgnEBsc1o+F1WcaNmWVBBoURMslSIjPWiAhcxOlodO8cay9jizug7GUJJOmY+rian//drq/R0LJYbA0ZUDaa2vv2tl1jK8q4dFqKnXq45ZBi2SPPk7Shb938fLST53SmxioDAFsrl7sGkIFUzSIMzwKiGkSQhO0IglHHyj8cb+I35SgFzq4QKKDo//uExBQAEB1BSvWUgCM5JGd3OYAAoQpDR4VFHDu+6Nr5+yUSZi2iSc7+rgpHKuGaf0wzbrv55Suv68beTpT3+dwh8vZV7y8z/+crqW3CE25vpiLcoM07J74f5Ut8XZJ2Pap1h8/N4oLlDaQouhIAAAgAAAYHtlv+u0tbZo01mIygaaA5yQbmkREYYRxpMGA4+GsSWZUG5pcEGIw0IAAgcECoBDxD9ACClM5Q8GhhgULEZpseA3QicxBTGyjQplALW2GuDHmZQG+ql6lC031o24ptv4+cWag/8EYymW16d/YOuxuAKdnkPy58n5j8VdXO1Wl9BYpZ5/Hmh6D1INhgrOV0mEarRfDDlbk/2NxuXRGHHFp5qQWqetUp6PJ++87/c/yw9/o271e525N37Mbz+nti844x4wqdhK0fy9UBWaX6MmsFmBRG8FkPcCJxRENA//t0xAmDEu1JRH2mACoJpqjOsrAFhoQYkoMglWzbwv9A0ZqCYiLNgxUWQQnLxmX1BucRF9u0wFla9easXf/L31F/OQP1vacXLsOkJFWX7UhrE7dhndZhdctHeq26Rh9cks570FviVxKmrdb3mjU5VsRPrmly1l12vpLI6v3co/HBVJJ28s298pN8o+8x8Vzdb5s5rMHgDzG0gL0jd6g5t4GFgzkHkBF58BipLagalRJs1LBsUgHCQk4hCGsYLsH4mnSGEPLDA6RFmwgbqF8QsvK7XrouVtZeHMRpWTttKTY3TznK6drvmvnfr9b2/bWNh82+t8XUP7p0OmnTENeq57XPa5R9ROnS8TVqtXTatZ1O7cwtvE5hLryHqCEACsAA//uUxAIAGtlTO1nMAAozJ2jPtMAFCzf73bWWtsxcFTbMAMSsgyigRgymjYQZGNZhsHg5dmZRGaZHZi0cA0PmAQAUCMCBUwiNjDAFStQEtuUOWCSIJSJCq1R4uGsMlcy5KJmNlgzEIbddw6GIOo8sfa9Qslch/J3knam2j0V9Y3VcNLhyVS1dj2vPOytybbsQutIJdhJZbUpsMuzEMSKUQzO6yf+VyGVbsVOWJqWxTtvKL285XverV+9nKtVqspjNa1vLKmsU0ObhykpLVJaiVnVNuVQ9vm/73//f/r9cp7eFvXj7/FJ9lAm3t3f0wjRW8BgjXpzJEwVOU7Bw4IYIzL9f2ahMexh4TaH7QxYWnjx8lcQS4mWli27qhrpnoOcya09vOx9q3Xd6Kzjyml40jW3vZYsili7Kttlj265tXaWhebUsIXKb5zzdbdFS0d7bFb27xWmbW2Jrl2uvL2YLPP3rWj7dbw+1rMdf7hJ4AjLneZdddRAJABm1tviJnxjk//t0xAWAUBVFSUywyyoHKCjetIAFYlUZXZac6gGGJxmWCqk5g1CYZldaPgnvrICgnYUEFg2Lw40RYChBmPZXbiWV+ttOrNdTuV50miJUpluZUlz2SLx//hcRk5NI/IdSO8dhe637t5kkpeVi3xcrhm+tj+sfDezs9eJwqdeuVnFe92LRKg6x9oZCIAgB6s4NAKAp00BAzEwAjDJFRkMy4CBknITK8HvgG1EQ9DYhlAwHAgDg8NDgDMSBIwKerkRnHRGMKeZQZkwhsolmkEibYWx1jh/XKU91wn39VJZ5SZcX3VRY+x7G1297vXOaMNFXKKkuUdIl7mk0SbaHJHyarnFETL/Jg5dn5t2dpCoAAgABb3fb/y2WNI1CZzEJeNSA//uUxAmAGrFJOVnMAAI+rajftJAF05wZzTY8MXJY1WDDIAKNil8yUQTS4MMYhQtoXyC4KMIAIveWlByl3oTEai/I0hIZojiI8BBlBH1gJPBW5/3BWDhLEFOo201bqejL2TNstFm65V7O8xRDN7Gcy2Nv029G7uEadiIMqahAMmhVPHX7rUsEy+nllJPSFuT9yimeSVy+3IZNHpVDGtfl+X09FdlO6KRTF7lyter/rH7FHUww1+VR0qd2pFEb9LTw13m6lTeHd7/muf3//P/z7VCqjxIKgl7oMAvT+/u6bAiCTBqgordABsEFkrkLAKOQac2UvDNQ9DsoByDJYIs6JxPI22OkxxoLqy6SpWG1JmbS1P7kPpOU24yUbhirCBdpJhm/HvSi/VdrI/JIuskujQKwRtWXiv0E/52xG8pmNYnTCcH+MYoVYdmL4SlXlTUvJSy7R/IwhNElTNy/3fKn7l9m7fIWZ3TVQgBNbZPHDVoGLgCCReCSwT6VAWgmYCh0//t0xAwAD4lhRuykb+n4rKkppI29fKdiLZoNwnRo8aODiyrwdQrA+48c0g+/n731ItcLjS/f4Ja+KmXeJMnHSpNuMoRr1X+xiEUcO7nmP0oW1VSFVlj5cyljM4UU4UMHRWL7nSRlxYMxYZRmudmesbQ5oEQh2Qgg7oAAgCn9rr4DBitBoinA2QMBDKiSELBIceUakEu+Dh0mBuZ5k4eTTgUVMjLz6T2vCUUHPzrVbZ+RuBmvK6ZRL94IZldmYlhtHhkxwmzBDgCgZBdXYzmdiLllYtOHCfVQSAcEsMBghyMrkfsZyV0ZB47E8lNLrkexOCyjLNKSsYoCATtll7pAjRKspqN2EBKnWMgRVEUSKoQmOxyQwVumGzzzjKmjiJpG//tkxBQCDw1FRuykb+nQJ2jppI2lm2gw0M06dJpPhWpJX9bT76tX57hOm8PJdB/Xh5x/M1LqihbXfYhkIAn14zGt2L/jXN7g60ItkZwuPdmekdIEGFDqIBSg80K1tp7HZ/oQbLTwADLbZu7JkVJAbFixiopbMBZF2JBgo2qlCIg9UDo2RYP2wcx6RIrTVm9w+Hv0hQJ3xT44Lm/uUqZLU4y0hQsQ6OVIp8ztUU0cxMGFDiWJiNSDO223l+bFBmiE7tJ+ydwYM6Za4yAxKgacgPqu6xGltfbrd5VAAYA5drL06DWFAabM8MMtCAIoxQ8Z//uUxAsAEAlhR1WkACNFKWa3OYABCMuLYKOfP1HzgHKuDoji4ks0QBcRDSBAE6IcIaTBYoGFirJcRro2rH12w+Wb7GHqry1tQ57GIqVbIasFWcIaxB1821VT4oXcaY2e56RrhSoJXiLfe6qubmbhJdkuKmf4muP+mTGuUIu4ssAAAMAAAZLzfXXO1too2GjzEZyNnBM78dzZpCMgLo2aDDIgcNvm0yYPTWokMbg4wAAC8QVARh4GBUBlsUclJsEW03qfKnLRnfLUITl2INsIflXrT04S9bLFuvAz5kAdVH+BrUZwWk8cemFvP7BuMclNykfaNVYGl1Eu6CY1LJVNxuLyu1Sbjk/ILV+3yLUOMQkcrprUMOpO87hje3j2Nx6ehmIyy0/1z5BLb+d+1vudvPeeX/SzFnCXby1S1u6yw5zn09v94fh///6/+1q5v19A9QAGAEt1t/vmiCgE4a4KQ4QQbCxRLpCwCiEyoTMvTLnelssKVzlRIR43T0RlKmjc//tkxBeCEbFFRV2kgCnoqWidlJlld5EJ4GVIohshPQtpZa1pbk5ZlXaUV2iJloSryVXSdPdq/CDaMhbXJXZ7VLrE0rvs5XqC9qVvrNr7BPtnFEbTCq+b8VmlFoVKoVaWk0lzyq7GXJKQOUr/NYXZ4Ru3+LQDNbZu/ht0DESCcFgDSwb6VBW9BSK2JBhUcB+CEs5o5klRNKbC6iLJo/e6y8f2Y4auhSLep3cMzKPxLXovLK2W14ump+lei9RZFvmntJlIlb0oQjfd7uf0X1mwNOtTXlF7LTl/sx0kCnyrOcysM7xJzmt1+3Ylub7a2gAH//t0xAEAD1U5RU0Yc+nop6iplhl0UDmstvdkwDkVEE2YwdQLCjIjywJdMiPMaopHVbyES6F9orMksduoNg0DlL6Sg5yyAHDX1mKdsLd9re6N9snDZRR81TbG7j/+H2Mt9ZB6zWizsDlac2P0ZaPnyQ5FqPEFsSXsLMEYwcqyOEgkWA/99maBKhNjjOvesAC8Al92v7tBbhYcn3Nm8FGgOJbKoiJBjEJWtDEHuOi+aqkLu1Rnq4bxTGc2UJ+Ju7fsmr/TLpKtU79mPSPk6pRZLK3Mbb+b9bFM1bKoIUXKFTNb8KRrXuz//Nf/X+Zt72jtTs2vx5w41Wvh+kOfab3ABjbFFQEhjk4yABpQW/23aAzJtRw+HNjMQTChzUBkJicY//t0xAwADy1FQ00ky6HwpqgppKF0KBrBPYIgOEoL4LB9kwclLerOVtT2RxtXSYerZ7JV63UXBEin56L+5t0+kV0AZHcM+6zd9xsJitBTxknXWzrtPbe263zHhrraZr7bts8PX+fa2H5ynfdOQgeV4P9lM/sqtWAEyAk+k20kNYmHVJnhBhsgFFGmGkBKABgEk5dIyxshejGXm0sgkmhsyo+HeRzEkm6OKxtlW7qpLHuS0LiH0fNTsH1qMuIHGzx1UNaiIICiAISrPFrJzQsxDVXfUPHXEKTh2IaA4QLlwl1quicQo2UjHmA2hxsDUV6b2DbKAAbAWbWX5oIaDAgEXcGtFAZQBx4VCKMAwC1SyheNxQ+uRG54hUuuPkLNQvbs//tkxBaAD50vP00wy6H9Jyf1rCCk8VIySeciXQLrsVdOVJ0pEpQZLK2MvGprfVo67eMz63Z1JpIwT2nz67bldvcx//G9Fpa4ojqQnHhKcd0NQp8KK2kuyjEqGEQuJA1TFSut1FQAAJiADv212l5tDJYLHGDgzuKlTTQvOTEAzl5NW+hhUDTsJAo4kYqQG+xOw4qLPnHrI0y5yyeobc9B75pXMvecxDyj6nsKLdH3cIJSaQVFTD2KQsp2TNmCKk0xRHOSVtKv64khjomaWOSeYIlHE5Ei6GiWi3AJIJFW2LQlk2R01QAKkEvt1wfY0rIU//tkxAWADlUtP00wyWnJJmh1pI2tWJ2moUESMnGDA+QkR0FCgeCe8J9GSEoPkJy7bZfrSHEW4RY8uAGBxfcrM7rti7RJfIMS5fa5bZj77e7170uKxIiBQnA582WTtGnzpU5tJPd/5n0vbvcW+69PGLenyoaky9PYcIsSKygABytkbf/biVmAWiogrSmNgAQIKiUdWDiwdbEJf9uraCQmHtFiU4OqqlIUyrr603xMtYHFUUkzfE1RPFR2UWRxaYQLsaq0PkMoqQVCcCAEEh2zY2JXGupTLE2Ef/umeihmMEY8VUurouHyUSDUTKV/DsgA//t0xACADhk5P60wyqnKpyepow39AI1ED3628M4EURe4uXMvRCBIO9bUkEAHgaiouNhUtOC+6bnRsyckm60G0J3RaIYM23sdTNRvS7FvGzn3iu7/P4yKnGu218p0RTrJ3rQg3iMyv++3evGy7a81SIwttb423GM9Yx06LkP1Sw+OpcuJWAA8QPf6bBu5mY5UThGI0zMyIszRAYCK1iEG6T5Q1MPLH7EHAeIFAsjESfSZdtoNCppMqVPVwWcedK/3+hv65tsYLKIpIGaUmlbQyprjA0AUdHUiOEUJvzeLS9eBw1DAJCRZBcg0b3Od1oX1IlOHR2hWm7UAANxIF37a4R42z4ZbmWHAz8FwxuhZAQdQdDIeKedGOQ+SohOMvRgR//tkxBQADrE5O60kzGmhpmdppI1UlMSNxTDztTPdJsMrO9ql3qXflmwxPJa6ql6y4zWyY3StS8VstqZgk1JKufS9mXzGR+RnXebv7fua5pdVWv/68UyvaiydwiXZR+FAf4JgAawT32utaCcMWBCImwEqZlAACxpfLgBgFhEJIuHRq2lTZBI6MEShGAYLiJIHxJbnFpDpRIJ6TZ81IWlACGKwZhJ27KCWOexgStn2pSPpnS9yutyk2pQURIk/T9NtAX8NQ5AwKuR/6tYAD+TN5LbFmmuCZYFDbgsxSLBIiYyLCEDKAUwMGYU1E6D4FExk//tkxBKCDpEvN02ka+G0Jab1pg1sODBtdJea5so96UKm3bj+5Jclk3S9qNtwguLAa1LWrUuh4+ybgyWwjfKxHEOLiB3RaBiVLk4HPTbrAoH0piGTOE/YZr9v1SpCTpIJnLf/qpcbBc81ti/jiwAo8ARk00wWTk3AYD8AwlfEmMBPPBSwlL0b0Ea4qwwz01dh852VRAUZ9blLowkWpEIgk9elO/FhlEGIcQwCzKEZkFAKAkGQj+5Rzzp3tQpqQTRQ3DkSGsiyaPdiBIYVODEPf/jKABAejiu/22DTzJQxCaFp5mWQGEEAdVVx0zg0+M5I//tkxA8ADekJO60wyWmuJ2b1ow4sogKhkhTFZNzYO+pOWXSzD1i3NNN8daO2sybdApt1LH7vO4zf5UGdNeOXVvmb8ExdZy4xuVPyN05NRtIW3v3G7u6h1XDpgO7TIpa4B+Iakbd+wAAp4Upfa3amkQ6Ehg2GYW+gaJRqzNkmU/I3DOLyt/dpoAnptztkgtZ/Uj7OteYSL+V9q9u7103eacDsxzkXdiVYakEmzEiRCnUhLs/rs9iOb13/+dptmb1IX/5mahiFVV6UccXhjW9Xv3ZKABR3bat/t2CYpkZ5VNg7cAloQPLIKyFeBbJktJBg//tkxA8ADjUjOa08xynQnWa9pg08Zz9hv17FnR6wJ0iW5zWKWh5NP0kzquvZxWJmFsbslflIugeZKCoiYjN+91Sz7qRczmtuPVFVDtkGJ73zI3EMZ6NULSh3morY/uHotbbzUNSinfzgAACCyhJNfrZYPAjgWBC9AA4K2F8BCFOysmIFxsBVOTim0Xysoi8721nVJ5qSOrtElJoSL+5kM3qIhBQoMSqghfmpIbur2iIHWTM8HYgRkTczcErDjwYZzaNWYnYZ4KicKEmqOA6VeARhE5YfapEVCy/f6L4AFHdn276y2O4dc2YA6JrDInxI//tkxAmADqUpNa0wyaG3n6Z9oyGlYJC2lQcoeFwuA4cD0CFDHtXbXWS07Hyq8DzolLilFpytoSTx8QInxGFo1HReCuz4zSqK2N//rKN7tpnpqk33TXy/tPOx57tc3LLRSEttNs3u9vfb39fXZcedJAdLTbf+g5WAAJE0KSnb72wNZAb0lBAOiZaCGBwgsytUCqzpOdFpp0yyIfsE5GopXS0s9ypbqSCEmNBuQ0DRvRmtSyNNNJeOayniFYpkLopRW+IOcgRihrxDNJ0fV8sMRVlJqGthnbHJgrIwHWefPMRvb/4Z+gAXZpJf/tbWrUdN//tkxAWADdEBM60kbWGTlqW1vJhlwDGQKcmEgIXiwh64QWlR6Tzj9x7wUcJUzDTCK4nVZ+k0S9F91IkNJbFVvUcUGpKajbOD0VUajKx9xBDbFqUh+5mIZVY76qQRmJ5DL81E+MTKRDMYAgzURcLgIHTQqTOuob/+kAAm5SW/7SQEQcbJHgVQNLCzvkDrAgGHZWXKjzU3+tuMFoJdRveCzDsNc0Y7XfyMxTlD0M3KbSmhl/45aCeTdvEdB3lz2jc28/k/IyKy9efWoXXonJWPokoLy3sC/31xXZ2a//+1AABuulu9rbBjwUZzxAkgPNAQ//tkxAkADYSnKa2wy2GLoKV1vCBkvEpqixXAciStwaEDJasH89aXGJfemFhrHP7S09fXpLTMJHQ6eu+GUyTF11KNPOTmGnWEm61Xd9tulFwiQCwcEz1xiUOEpU24wfJMC6mueAGnqTy26hXf///1gBre7a7e2NgxIHBOOIz84kMBeBc5DB8ZeHCcMWM3Hl0ViiggQ4w/Ds0kiCBsTmu66QSinlROzDqEXi4Q6YZ25TdZGOwxf53tk7aUuFvqprjkZ891wi719fGmR2HEDteqEI+MAAm12239sbAQlmeXwhWRQYMDTFhBoNhxPISHX5Gg//tkxA8ADCzrK62YbSGjlqT1sw2050Oy884cY1ppb9unIHA21dFU6GjCQolEMUkwfcMLVhOP3pITAh/+1ahsbkzg7T6RHJUZaznU/wQ8oMULMUrF+xPoXUAAZbNr/pGkAdVHV2ZiymdECGGm40MAoLeKLq1xNb0LxpNTNZellntRxnhkKScgw0gdZ2OippSzEDekiOCeLK5uy3N81qNZIXGgge0aUMlgWNAmYeLsSKJDoVdKioFTAia0ULL62f/o+hUAF3+/X/2xsGOAxyx4MgQHFTDiVDctM/zsJIQ3k7OEVj0ul7JHEvTPlUs6kpZw//tUxBcADDTnK62Yb6GiFKU1tJkU6VWCkoo81RAp2e3aFKSklUM8/0dSZq01KHpLLC0QEXYezwlY8S5ULpKLCPJPGZojicwreAA5dL/v7W2Qc2nUgxhCYaIFmAGSWRQIVHlU3k0NMIxq0Ets5HageNO96nI1GuqI5HKKXbEIpe5wswp5Snvf7dFm16bbUDIKhhhwAKcxYqHAXIicgJKEhceKXAATKLtWOUsgsc5tn/2UqgACJWVXj/e1tlrJzTWY//tkxAcADRDHKe2ZCeF7GGV1sw10GlGcg5hoYgYDQPUgaQNAYD0dMNMUSIfdoiWmTB+WfTFXge5rH3B/VZQSULurGikCrXQw64k96vSqSU1neU07h+BwkhwcOBlDwM5YGDaVKSIC2P6IAW8PLZ/+gAG627f/WxtCxEbDGFQMDt8RjbXRIGj8JVT3DMW8/Kjb79413ROQDGIsGWyJBylM1lRRRhz1Y0Qyy7NmxNU20W981XmcWDqC5cvLJJllwu4yyYUmeIpn3sLrrvT/1VIqAS02/+/+sbSmhllSFR8BVxMEeGLIfWnQa8WaaotzDftU//tUxBCAC3ibK63gwqGSECU1vIwkp5zZJ/O3v+xJzNm/xH8H4zvp/MmLQ0136DVLnAM8cBgyWD5ctQATxEPsCbxtto53sYyDyb5+la2/9iQBbrd/t/Y20CAEwLMIfxGUKqNwMR12Whp60rZw+tOYfjAgY4ABhRQwZmQG6VSaiAQ7jAnc0YOOoJboJQcAygjBQTixETsAw19wjFQms1DiSSTTDIusjKmhSpyI4iTvjAtd/+KDagGrNdv/ta2wUHZp//tkxAWAC+CjKa3gwql/FyV1rCBkdeYAWgqkBOSJhFa1C1BnYgkKv1mFUqdpR7XLKc8yW42kmm7aUanHbyBVrPes5aFTm1HnIvSsz2bQSConfRUyhQl/ZRu+UTad+Zz27P8h07nDaPpUAV+3v//+0bCDx6tSewetMF1bzgaOMOL0016/TzRAsXFqOMCz8sUeYXdvKzuqio+0s6jUZrOrr/sujpRFtzKXzGG25sc2TRhhrACETbQZsLgO0MO4QuFDg829SQCcHd+2AK22u93+sbQRMPyvACADPQoCZMjjc9q81F6HKb68qR+sHu9dy13a//tUxBOAC5CPK60MzSGbmmU1tIz8u3MwQXuJ3radKKRLZVs6X8Tw2g6ZCLHsYSCgxJALniIOFoaMlG1QtCpE4llCX711UmWN/f6QGpbtv79q20FhE5QPMBKgMbmGjSsBEF5LC1ka3Qqs61m+E5Vo3BZJEkdhq8pnXah3hu2e2neyI4wk46gyCjhjJsOvYZLvDva8vB8cqXBNJd6DJQsLlTs5dWWGgXQbIVkP7q3LHO/9FQBUZFVWi/e1toDAxwK8//tkxAcADMCxKe3kwqGUmGW9owz8IAQapzZ9MIcqBY0UTTc5NqSh65iGidIlwSKUxzuo2zUj58l5q0rQ1C5KLb2QtGkJMam16zGL+/GfyVxp8FLkAgsWLgMER1xszBYQXPHn0MTtOdCCnq+hKgB0VnZnj//ayNXZwNIVDh1IAHw4UPDYojQEcTTFTT2dmXnJoHtZ0wchrtBKGGp4VK4VkwprFsAxzJwpFkkqsUC0FEyP6gljKDoKpYsBmTwCDii46x8OCAvcEcEx58ku1ZUz/qbJKgBVVGZ4j7/aSMxwAyfwgIrBDCJLYFB6bbmlzDN6//tUxA6AC5i7Le0YZ+GWnaT1tI08QvEEsEIvVl4KzxGwodqqwXIaAUFMhPrqcianHz7YNBNt2/7Abg0pus+LER5tjBHJttizkyAHcgkZtY6L/t6HoAsz1t39ujaJjAyYjhhQfBzotcoAAcDT8Gwjw0lVIMnCvCazSj81OA89CkvS8FVkkpqbg6U5CNddwbqBMFVBQVBYCFrgK8UiqCjz70pl9Q6/IKcrTpEOJlnXljSAQaJHh7Z/u/2dVQG5LN////tkxAKADGCNKa3kwKFsmuV1ow08ta20DkYz6SX0L8gxGJkQkppLNi2uefq1a5d9M8K2TShxApBiCTQmsL7USSt514mWciTy2aaPDwaJgU8GhAqZGONip4e9YdZPVBlB0MLDpIyksKzp4BQLdky7tN3omw7bbb/f/bG0Vhzs2TKPDdCzFAkIk0ZX9I4+bbav1VI0ke10vUPjTOE4A7IMIrMJGXcAhuOGKHEWICWIGqNZkmp9cigzF73+570h7icLhWs/fJjlPeA669qtv84qD8tu2++1sbRogB7jBmYxsQ5m5CZoL687+BbHBYNg6hkh//tUxBCADAiRK608ZGF1H2V1rAxMmHiGbmYE6hIocCUSTZhTQyQYd2GR1J1fOSjhINm1FQ8EQvIvHgMcEz6w6daDISIoVNy6WwWNqpzSBTKMZ/07wL5Ndvt/rI0bIGekYoITUzKNOkFIihpqGhiI2B2VbDZuAEoNkdzhtigw5AxaKpJn21XXYBBIRE4MR5nQ9c3uiZnRWnSsYz3wvXUjapIh8w7nBITFMUoc9NNoRcn+ugtJddv7vbG0aUCeKqYs//tkxAcADPD7Ka0YaeGemOV9pJjs+AxxIjn1NY5bqzrmTSTQuJnImy3ksCRB6MoqckojgcUxgNq0QFOgx2xJMwpjJeIDoduEznojrWhwyq6k4oyeP1MQrmjG/aeDEwWNJQ0TqckkxLQcorX/2uFwJmVWZ4jf/WOIDajf7AQhQ8Cg5MIoDu9hMvGkXdFq12zuiOoY0dqT5eanZ0udSUmVhZi7tkji8i4Lt3dGQLNbSNFvr+o///aJ9Sz1hpVYZOhdoHIXE2TBgioyxyVyQupLgyaeJW/+99UG2y2//zbSRMiMh/KgkSkAoek56JSVJZZL//tkxAyADITnK60wYqGTG6U1sw28GcEIRFYCpBhcEBxbOHQWDVHPkaUDc4upq5moVCFKbWhBmcWJKCKIIOlFNhItvKWDNvfU6LrQ2sskAC4QaBQQAAJkVBusk+J4o//1Aay7ffX6SNoaLTEpBVIaRQQCsFaDXw7cwk9/Kk+2iFqjvS4zE+egrUGdEjmpEjW1vqCV709y0rQAKhIyEFYFb8P1SFqa80dioUiNW1LEijlAZR8TCdM+WTKtmEvGOAiTVDP7lRoTXXa7732yNmFAm1zmpobw48IvYPTwIFXmW3cxT7XLJlOtDY6iDyhTFEW+//tUxBWADLTRK61lAGGHG2U1rBgU+/HS7SNUT414NeJcehEzE725k6Rw9rbqkS3HSDbICYzhIkWYgsCTwAfB8LBpaFGpAR3STrLaNogQK1A/uW3bb3Rtox4g7k4wyCRm3iqpa5/adtzcudiWMIeYt5+k0+9fTKMxW6UaHOYhJtz/f2tj23cob2Yyj3/95ubuxflU72/iO2dTSxljwcUOeXn3mIeLJwCXcPoLCEQHP9jt9QNZLbvN9bGwVpD0kV+F//tkxAcAC/zLKa0MxumbI2V1ow5kZ1Jtszm8spAg53t5qR8LI09RTNDZacDibnmaVeomFXRUNtUwFOGPlrKxK1tGbSFvMVNpFGN98zm9RblFwCuFqfWtr0TAOKroxNkU7/f2loz/KCba7//3a2SIWgnaImfUm/AF14q7+qPuX672gt033L1DlJeUUtlsaBTQNN/bjGnarY7zim1/IEy9JbkKJL6ElJIIUzNTPIdg0KlGlc4XTO8877aVGVFDnS2NSmMWWt0s80LmhJ/6HUIW27b//f6yRpOn3wbHZmCAFVuN7qLElkiPRIQUhZWjghDK//tUxBEADADRLaywYmGNnuW9owz9rBBCj9xgiqsQYhCoKHkoXiB0RnNVPORSWJVbVjqrsitUsfBsAzTuFEjBxcqko8tWLuQRTEgCvAane9fImRcBVmV4d3+32sgKJRnp6i48gbx+ojQaY94TN0iTq8RRtyfKeg6K15UtBuJPBGjwUZhQRhzRaFLaMDQ2MYhVXCOr0Y2cY6zMPuw0NcSjGbvxc0qO2lwUZXeuQUcsceUu07L/Z/+1C2tt223srbQj//tkxASADFSjKa0YZ+GsnCX9pBhFFGH+DgYIuiIA4bbXyxpPlHbrsixpraaWXdSrqlZ4hGQCMMoLBgaMQy1GqtVcqxbFkqSV7iDNBoRrBhAacBxQjCRCPcFBAWNBZxCXDKk0E1BMBuWt8It3/I9IOzO7vER///bYm6YOSYaUZYmBZ4g4IWyqMIXtH0BD7Czf5VGaje68p8K8bLtc1RrU85pVgcIVp+aYR96r/GpHtS63FozVz4z/fRXKudjylkr7qJXMWPDJXV6mKTVKfoeUZpBP5/+/n8v97jUO6Xa//7SyRjxo1lQwZQIjtLon5q44//tkxAsATGjRK60Ya+Gbp2V1kw18a59Qeo3N0nsF0hWmzLqT3CjM9WKjG1mvIjiEhEqCevu7qhEfDim8rkQZzcuWsSeYYUatIXcLmW4lIg4cBtYMHHNMNCQVvFUCzVO/vIpB1t33//+T+P/NmpNcm9HZ6/lN1bR0WhiHj+yIUmfLvMIwhIhNclG7KgJblmXt4ogxVa5hSF7DK4oEEBq+iFVbLFNXJ1SZNTYmV0jFq+Tw+IUObJU9odKlMrz/8z2whQ2olHp7+PbOqgZWZXZ2i/62SMi0AdAbuKcUYs5qC331CxyzZQpSGrj4m2JUkw3O//tkxBMADXUFK+0gZ6mln2T1ow4sKRCAESHMOH2LevAuRONVMLAQhZ+CfEi82dNLXDQH0uOGmT96eUyrTybKAoe9Dw8Ft2EKy0V3zTXSu2lnrv/29z0XKftNkHa5Z7r9ZG0jLBz2ojKIwUgEA9obmTPdZ5Ws7G9bk1NSWZ7Z05asjF0lpHDMUDnUilEMTO2920aTPWguOZKlQ9BdfzJmJBYXsLmcyzXpD5Xfh5nGLlEGAqJzBlQsbi4icCbn3tu7r9yN7Qtbdt9/bdJGCyzy5UrGwCgVpzx2s7t5ZScly+qOoI1GTX3Sy/QZI+6JGau7//tUxBYADMkVK6yYaeGaHqV9ow38rDua6w1hw+JrXReRgxgnZSQEg4XobQksNtavp2uqZnCOKxBY22ZnbviowLE4FImlllbGtXrUjrWY+sEZ1Vnd4/+1cbBU4z9IwhYI0jBKOMui1TG7h2lxp61dFewxMuT1Thy3xZG9SqByEfSyfSKY522y52fLHIXHGPbEI6Smn1yK14R3snlOQp75SKU/IGQaNLFWCEBVpMp3Ov7l7pNKjCoXZmZniH/22sjT//tkxAUATBTZLe0YZ6GMG2W9rJgU4AG8wMgsE1M2KyTNBFaO3I11GHll2Qm6EvfTQEqynkPWYWbg3r1qqnaMUShFId513qkDYtnzHFuo+seq8OdIyHUaJgGQJZYLpfEwV8Y5rEIWx3v7GkCoKzMrNDR//nVMNIMN4B9qduWs3M5VezZprHqX7yS9rFr0xMpPSVmmz1Xm6eSs9O8P3amWmb6WG8l381sq9blQllSfHfZMx73XmYtCyi4soESB9aEoLPQKqWwiJshbGKKf7ClNDumtu+3ssbafJtaJZES3IfMuZfZ/K9a529nn7UQ6RCiR//tUxBCADFTNKa0Ya+GeJKV1kw48zN22Yt6JmsVR9HkAt9VX3zKQOqE4VqldnXItOxkbqIxmdXIh1aEQRNLGvYtjSxpSwINcLJaNQVTfjwI71755QhAQl0t///2ukjagfERnrgpJcbiMfw/fN8z/6bKmtYLlu65llWaxTqwiJk854vJdqyfqkJvO0b38bsOzzdTKY0vxnfUrOM1TTNKbYNRQw8X/vMyhHlZzpPc/docUexC9oEakYaH4363KiioW//tkxACADTTlLe1kwKGsnOU1rBhFd2VXd4//+skfkPPnRmA1BAqutGGbIkvO30KE+XWzc83KNofIcm31ckWMx/dx0FoczZJ2YdJvLfMK+rTMs5J38eKwvXiHY6YipbMe1tuZ6r6acAjGsRQLIS4pUh9bBQsfIrV9TSqC4pDYnkl23//tjjDBhyjIcXJyhmIsMpBdfazc6ScMQQbcJnVRKlzGlnhCSJodSRB9Hdil1RNZVzH1LTez62P42NTytfdl6Zma7nH8NEtPa6itnOrdsU0OG+cfrzuJsSOulbpzRO+++30ervp3moIEdnVnaI/3//tkxAOADUjlLezgwKGfHKW9lIyM3tkQ1OWoyMD6ksHjgeqSDtKGYgqLrDDZNy17VKXGXBy8ZXQ3Es8tVQGxI7Prf06VVdM+3PbYtKPaabuX9pj+0S3Wk7Y0MlOlasqTCoGEZ0AjzYULBAi0gRuFqXf3WKEgiFSKweGdnZ4j3/+yMOXMjsw+jBFMs9OUPPTbC8wbcaCS1CDgYMEJWiYj5IRRvqj0BdYOYc7BqeJNxwowYIRUGHVMUYYGKgQUUyC8JsnSFNzfgVoBBR4wNkDg0Yo2LpZaBLKT4ZHSH6eihRAEd3Z4iX/+9tsErhHoOiCX//tkxAgADLTZL+yYZ2GpoqU1rBhEbPX3dSUFqiiy3Wo9RVFBJAaFqsoeBfHECmRorJWbUnMiQpa8ZfOBwVJBDCCXPyRM84x1skZMitzUaBVgkxYUCMSAJAcBMYZdfINEIAvP2Tu3Y4WOmHC+2y7bfe2RstgY+uIiYS2HWLyAzge2R+zG5JP5vvntKj1vZUo3LY820lS304/ZcMvbTNmN5T294VCmaq3zcpkcYvybq78Zc29U0fT3rYbw2f2xW7YGjrNjVfI4bNgmExRSpjRVtYwyMs0qG2u+3+/+skYuYc2hy3mulDLyr2oamFeuEKGJ//tkxA2ADW0dK6yYa+G0r6V9kwy9UXHTNPJQUb88MgfR52ychp8FUxqEqiidqpnhmDKhgMHoGAhRzF0Hc7FKktQNVIi9KXlY5mtZlppmZrZseZFPJOwIQRfAKTUKCgy1HyyJyUIAzKzMzPG+90khgpnuqdHZ5EFgGOoywQSv5CMJvkbCJ7aiXvRAjeuoqhhDKdVXGWf16QYBGTVGDGD0eka0ZEBDgARDyZlCrTBGBIcnbB1dJf/czdz3sr6lIbkixoqZW9jZN+J90vl/8/Lmf88dWgJ3R2don/7aWQzSCkxi5Q4rYyaBZBEmHs8AZJLb//tkxA6ADP0RLeyYZ+G/oSW9lBid6yRyJMGKMJOmgitwgMgBQ3g4FzQURcLbhHQduUqMRC2YGdVbT0FTOGDRocPh/kRkhVNGFRhb783yQokGAp8st7zg4Y29/9bXjLxMCMqrDO8ff7ySDzpylGEQHSqPRE9m6QMCAEbO0pXKSt6RyunUpayO0j49OyFULMrNSNdlrVsmu5WtuYy+9ahQgYle7TUxhPSF7l1O670WpKpnf++237XlRTf0WRdLGLhYSstNx/9Bqf1bX3J+6x5AHh9bdr/fdpJGiiapuaWYZUmlu+MENg3ueE7ZOPtFJwDX//tkxBAADUUnKa0YZeGhl6V9lBi9pHAHRqBiDAyRwqDrobuUJyJBdHqnTABCKPNrNjzkN9+HDQjcwIkI3FVFiEDeNAjR0UVDWlkkKBT1LW5HBkB0JKtKoHva70RjnKQBsiszLD/77SSA7sy/kGB6+HXLlzHGEFnVC3F3iADyTG91cTppvB1yizNeO/9mFms8mYbZ+bvqFnpZF/Gmoghz5uStSZUgC/DpPjwbvpRP+m7o4QLesX+PTbTy58lotB/fvv4r4tz3S8oDZ3SGaH/3tkjMOGJIaqY02XNJmtxyS3uYyCCa/d8z3/08ftGuXMOR//tUxBQADSkPK+0YcyGaIuW9owz8CmpEq6d3heEa7NOUkjptWPUvyRGjKlIjbmYVvIMGhW2SW/n5GSx3yhpS2MuoYR91QmUQIgmXaoUWoSBDX/8y0qTGHVVd2ef/9rbBLQZCMa16Z8YvdoMj5TxbFlzlX7btcA2aZmr2zgrnhVF4QTwYk2h1lxjIVqNNQdpuDbIjQlONMo6VjM7A+VRczIOUjiWrmNccLHQz4brA6UOeITKTo7fAs57n1tamEu11//tkxAGADXDhJ6yYaemmpOV9nKAMt321rbZkGnnyZkIK4R5ak/VbCsIwcBksVT3lREPyKRXCCaZYkMn5zVwgaI23aJFmgdVYcBDJhZc1YGyKzgw7wuQJiXVl2cyQkQs9bQ+Npkrpic79w5/fVHTO/nk6f3vjpI7+896/nylgR3VHZYb/bayMiSOY5UZOgpahsBGCibQ0aXMRUSa6jN8rPFHmpqxyQVrUIVMVdFpaMitauy9MQeuHAzhdrXxzRBV1YyUoyzLMV3kcksMRO16RPbqXfkrtrr053SIzECYaAwCiFzPRmsTV1TrdLrtr9a20//tkxAQADTDJJ60wwqmbGCV9rKAMZIgRrjRKAWhBQfTpMyUrYyJIHleHIfVFsov7YhybSX8ui5WdeGoHnmKxJe6JZP+ivk31t3S7FzBfVt6+VbIS3f6p09zD4/4LLjBehkEFcyowr6jeFtmXe5l//Z3f/+Ftz8JmZlWGeP/tpIzdETqMTTmLrwt7QTfNm44CMVMlqV5soqhR8wkwYodJKHQXMpbeSrQhnCDImXtyW8p5Hs1yhBktTQ50TXJpzjXgiAnDBRbljzogHESB0H3PJR75sHUpPmGDTn2zWiNVM0l23++9skiMR4+BQAXHC4QZ//tkxAkADFTNK6ykYil2kyU1lgxF0KCoIzJnpx7qDBikNDo7BRFMQY4u1ChrnagGohgoZaM6PGOb0VlGI6ftPcGe8ui4kP2Dthc581aL1vhes1vehAu2u7kYl3Z/v7r5Ji9foRLYlklt33uscbD8zC/Lrh6wVLR2y3SsuiaIbQTVXOiScVQWKQVQjKdB2qS/FvQzuMpBjV4tEByWHNFvKB/hSKSqfzbf8MHgO7SngoVeBHpecOvvj/+x3uvzb3854X/xlQZlRXZnjf66yQgIEGwJyDvNarhZUqYGRBF20ZDDtrEUSCg3apkUbIZlvtVc//tUxBYADNkJK+zhAGGWHeU1kw289xqxVM017XMvP2TF9fUxKwKoIY1XQ2nhZLRrfTqd2nbN7aK0mYffqhrZyWUvULkB7E22zi6mih0gWFhNbbd//fbJGD3TD7CyIc42F/r9rWt2ta1WuZRIjS8mNcrJMpZQ0oLhBoffLbOPLWF4Kdsb0GQnIQ7r1OUkeJplYnh98xHUpSKm9oljRx8axowIKAU6dOCNKCIZPiAvU93bx7KQMtUEZmRFVo33tkjB//tkxAUADR0ZKeyYaeGmnGV9pI18AJuTPeUmOa5csrX5M+z2O9N8lkeasoxMEx+s7C4NaB7BCZCa1xA4zCRS4cquia6GhNWY3N8SvxbCKmboa4E9Cfm1Yn4Xoh2GNG1Rd6jUaJxIupsKMdbXOoAsrkAh/94qzOrK0R/7tZGRgzdjzIBA5y6j/2K0Mb7qStQ+T/tAJu3R1qEUamn28YfjMIUPvUVSbtz+kuh1Y8gtwr06xCmGZCI0aguGdeukUi8qvUxmYYFFhsQsF2XjGCYi0yTIXBZh84pn6TMfcl7lFtu9v3v9tkZUODXTn5VFr0VZ//tkxAkADa09KazgwGGmnSU1kZi1FOHYeeQt8majdOrx8NOPr9TbN/OQabJSs/Fm/aTxyoEy9H5qrd6v+sjMzNd97sdfNaygNs6OPu5nN3hP1swxs+33iGTqcOtoh3v43ma2PjzzmDDFu5jZxqUhs2JpJbtv/rpJA1U4VgIELdsvf+LHu9rxyBvGVIZOSyifwmYjJe2mWcSiiwkorDf3isxzIQ+T2mZjax5+85kLatYxrpI2HlfftVfI6OfyqgJRt3mLQy71cO1hg9RrZ0Kpae6L5ydFuz9rvhw7aa7f//SSSIzmkemTLnDBJguuxKU4//tkxAsADzFxKa0wbem4pSV9kw39cpoby1snsL07V7K91OPC4ljwhhwZjxsVlhVJSU+Wa++475wlabw6maRw0pe8Iq+nmkBYqbV65l9POD2BmJUtdoyQLRKIf5XuzsqKJMEpuSRTJ43c2+S/p93/lnb9Il5Rh4ctsIZXRmdmt/1ksFqgLUIuzpRW0+l67AMBaxqZbqdqEAgFMWrKJNhR3PV9h9KfaokjKZmyimSI1VubjtDhPb74Oj5bH9OSoM5YM2ThRMzM8jr6PTOy2/G85+9oI+5HIdHvcYrfkOadX7/f7NLeIlTiG+9+38v+1kgC//tkxASATYTrK6ykZOmmHCV9nBgNMEdoq+bgCb8hHIkrKsx1UsjKwHgNClDDCg0akZNuyrAShhYVWjiuVjdEHVRgrGxI6oIg+od6YowbiQRuIElelEUItruRkImpjwa6fZVuvud8fgDqDbPTOKT0Y7+6/9/e/m4HAjq6uzQu++AUphSSsniki76qW1uRRdAx3qQtyMR9nAdJa1Tk4QT7EiWUZO08bjoS/gvaMMjYMMRxGDOfTxEO3Qbxh9RDGVdo8y0rpL6fvDEd9DPBycS4gS5zOfboN/lPfr/3/N7PLTW3LQh2Vnd3fffa2wOvmVIn//tkxAcADb0xK+0Yb+GqpiU1kwz8EBAL6gMtS3DWuXa3eye3g+8mhZOcQ1by+VBmOgu8a49pxHZmu3yZakUcK2aPFXiFm6lgg+KHQbYZ64X+FVf3plOC0nbMkDqnmjDkklGqw8uEcMag8s8wu2/W9wTJtD8wZ7Nrt9t/Y4zbMPQYwyFypXNBsZ9zieIajcp2nuJuhhHcRPgftCKosx80CmoV2dfBEFEIyK8AQIGKDBgFgihGV8uptPqRBBNlCvO+zBTuy/15wiI8x86qO2siu7lmRDYYWXPgiM77BX1C4nUa7XW7/b6ySBogt0ZSgLXg//tkxAgADamBKayYa+GdkCW9nRgFOnuSakvWvCUT9e+0RUkFQozqQEpFFyXPUdB0M+lLgKoEoupRAt864b3CCcXxUT1CEZHGNq6DFCOEDGio75Ef1/vkLhEijZ3f/OktUiOk3/Hec//P7nkZkdX/p/4IyhmZoh4j//ay07ETudBzcbPBeCTbsplFg5EDCqKRc1MdEj0tOk5NFDc057Po/47Okbd7cQbmrpRYUFPqh/i3rGDEUIhjDc8Ir9hbuN25AgurzXL5+FHAIqjX46H+P/m7/P2L2RIEwOIbbXbf7X62SEezbo0JB4ophftW5VzD//tkxAsADKkDK6wYbeG1oCT1nJgFDVBJGzq8PM2ubR1aXOZ3owRs+t778xzwOGIW0GKRofjjLAWjGxV3U+Xrke4cnL3i8mgNJ5JP+n16WKoARRBwmLjrhEHA6i4r3XCZamkgosZ23W37f3SNmKEY24VlAzgmxqBEDT0gkgnZs2flZmEWiYids4mYhFw0k166byYYjAdSJisMP1CWf9Ou0a5H/nE8lfzsckzt1Y/5/iJRpTMmvzmbOK9RvheRV5Lq7FA7Ht9iXHc1+3ft3+DO2/bdBmZlZmiP/tbJEzRFE85OrP1yBaJPbde5DZuHEkqO//tkxA8ADQTnK+yYZemqMCW9kwy8paA0kwChTYhIyuDcwpiYzjIowr3N3ITSpnAyppCQ4Z5xzi5urB58dgWFXUkcOZjMPdlKr1TQd7kgxvhas7pnC4vf/9jnfO08rJUKurK7PEf7b22kRBhxq0ESrgP3Fk0Pcnv5Y+3sHfUKNMRDCIBghT4tmWrCpXqZP0u08iOOZ1xXFamPha6nB3HNohEtOMY0PvapuuhvEV1rhZOmzmWdIaWvD1K1d8szs3LP/73zmfKSbodcQhrbd//v9rJIEnN1DPou7PWbGuau481XpufyKZbqilwVvd6lFIgV//tkxBMADYkpKawYcamyr6V9hIy1UKJIs10YDmu5UTlPnyTK2VKOTPqz4adqMZ18/82xKzdCdKJxZtS85XdiMc8jyMk4sJZN1ldRzBE/9cU/+T88l6+W2ihpekGdWVneH3+uksUeAZzQgTW1ty1HpMZKV0wms2gkgRD7fDGDwtUgE4w6HFNHoUdZnSZpDMo9Va8xJEdOrIHUpoHdTCSR2NVTIzU6R7s0W5iTLj385jPlZYGOKGJw6ethoJ4xfn8T5/32/MjIGq8663Xf7/7SSBOAnaTZE54Bon0FjmRg+KHMIqSl3DkShTARAIgZ4t0F//tUxBQATU2BKaykYmGcoCU1hIxNgACDpBHEEVmLSgZh6iBHbo9lbVWUS65hAwpGJxu+yu3I2tkqM2x/+xpEUkX2nTklUiq69+aFX7S8i88pS/9rs5sFgu0ut339xI86qMgRMRIRAzOxRwA3hPuzMshjIWw50Z2YEOIIUOoVHNhYu7wjB5jY7mGGdwEs4BQlocUyuOWMFan5qeS5Ka8FphD0lhqQtXxFejmyX1QkYUuJszvS+X97P8t7Tilt7XUG//tkxACADl11J+0YcemUHKV1kwy1VERFVo+2mkbA6IxSEQnVhGx1ftbyz/Hve5b7yqlZjgFJROVj5SI5iGqWtBySWR41i6Ytna2z/I+X9Z9nbyHJqLzMyV3rkBZTtRJGHcUwwaCrn01USTGpiWhoEOd5FU96X+VPyO/5F7/531pfl7nQRb3gvrrvv//9rJDicMPhSYu7hEaRKU+PrERAXOViVpWLEAGUnIMMw1UQJcbBw4JCIJBHERUBZobfav0a5HwGE8ORT5KK4F1taRgWLw46WpgENkmdfWtpOLy3+dru9ySP7/8rfv/9qzYaW3e7//tkxAIADVGBJ60YbeG+oeU1kw096/2txnMCiNS8QOoWa9Lukv93veBJt+6husekhGkGak+7r3wUkmvLPdm9sbSPRBtSckgmI8MlMYAWYYQ5S2RdpLmDuVJdOtXZl9HbMsy7W2bTtL3zWFN1sz/YqTZX/+kf9Js1+ZIFIfbX7bf/3SSHCSFHhGUHIyi/GaT5SbpIJAHz3mVcT0U9jQQymIjU50tgU0SvYauJIS4Va7O9cyG4VjFucXBgqTiaDBiSWH6ZpwltoLZsaEyfsxLa1+3D1TUiIb9vmRETxx0npnWpZe+NPitM7////lUe237e//tkxAIADgkVKaykwyGXsCX9pIxUf77SSHaIY55hMCVZ18JJNw3j0HZ0IgadZn+eJSQTvlkHL3D63zaUVNHmA0XvzVOsklJ52waVhW8zwf4TVF9meqp9aEualUbTw2vWW2N52Zmt+Rr0VsoL5iGRYwgXNXqta5rJgc9gXLgqJlf6Ul3dnd4j//e3U0hI5Aw0ogMzioCSZM1sUqHSMykpAOPCGgjgxh0WITNq4uY2DYEx6GRq5CajzdPNYTYXNlUjZFd7fD7e75kd+Q+xdademRd0b4aF5fbHql+R/3mp+XP/71f79h7jqhhlVlhnj7+6//tkxAQADc0VK+yga+mvIeU1h4xN20PhJrjCDFyonbytVt5YM8Ehs54LIm4MOMZ21mjBtQnnqYQ4es91JARvSUlxjzNyIYmPBFuqMc1cYJBUhhiYu26qIVwsdHZng/06eO/jk5E4Q+YICY3iGHgJbbOv1t2B+/2MKHliZ/1t133+uskOdzoUx9RmJDc0X4cwlUMwoc/YYJmIECieQPjUhqQBjvVpvg0HC+IoJKJhEYsMd0yYLQZ0G4oKcF63QRxkDhhY8DU3YghCJywkbd0dFqyvuGjkwliQCu/XkN+ntz7XtG/+75DTVT7/f9r/7dJI//tkxAQADW0dKayYa+mgnKV1hJhVc5BktGUGLUSCmkk9G6PHTAJNgTelkzZsu3cGIQzwdaMmVmmRUmo3YcRChmRk9IMR3avTeYs7FVjKIT6pRCZSdRsEzk5PJr0zjGpo7brWPE06DVyD5qDn6Nl4ffv3ueKmqdZjouuu2//3uslI8GCLZytwqM0+Ai8Q3p2iI5uxyjy82A3VBj3kHRrbT00jrTcwxLS1M2z8Xs/cvZzETL1e7TrZlJ6q5+xivU36uMbluqhZsGatUmmeh5SWsfZBt7K8Hfb8hrjJJA+6Ny21Gu31///1skg+COLDoQ0T//tkxAeATXEVKayYa+mWoWV9hIxVS2JByn78sDQc2TdmjjjLPSGQYbaLFFrKLw/3hL0W4Gcxh0ZDasRiKCfDITkDOOmTJ2ZLEBcLzLNnIY0m999wdBH2VqIaaNvw0HxG2+MkWv2LXfzlXL8Wt+EN/5pgZmVWZoif/HsYJWsRxwVJkcmcqKxxxUGZxhAIGYZvzWu4BKNKGIzBwmEKCmgEZ6BwwMJjmrMdpgsqTZk3mZzhHEj7aqa6saRTW1mRTLI4ncMQCc2mRLM7F6kBv6U76sv/l+T1C4QqJmRWVleL97ZJDxojJLgaIIk7Z+Y401SK//tkxAwADqUhJ+0Ya+m5oCW9lIy9YQXT4vKdhpIiseQLJ+2coxAkn1lkKRJkzdj5EDDCmICGBAUBoC0zVDYyN1EqZEJwo1DA5IdjXIolGRCDYxPhMj87bvw4b5qpjA8xYCLIr1qYF7OzKds69vqaJG6go6wzPDvP//2spd062y/JRF+QKheO5KS7Upo6qFTplEI23JvcWwGa1yEiTJIzB2Ryg+QtaYCgMDxaNYOejiypiYKKK9TJRZAgPYdU3pAlZRx4CWjsxbpQWOGPi0Pu5P133ydvv7fAz/7Mu5919tR6ftsu231sjbhlAQSYMeNB//tkxAeADKERJ60YZ+m+IST1lJhMQqRYY3muM1LX2MJ0x/LhCrgFOJEaNVQ4w6VI0NeFNa0kN7WUtTLO7wvimZme5mRe1CpMOhvP9H5fLf8jUievGoMj8NTQ/a7ukJtaHWrrW0hTFqtVWbNbeXXX7fayOB1hxhA5lWAYIA49sIOcl4jTW8WdmaLSNmbFSWVSHYJd7PfkaPRPogc55zlrhnli5pmndLs71kN7PbGx3M7p0bXZ0vM/Tz4d5modEzIhsus/QWkQtJilq72qP22Ep8dPjxoZCBIKlv7qX2+u+++1slgPOGWMgouLMIpGaSXy//tkxAqADkk7Ka0YaeHAJ6T1gwz9OpZD5MUhBE5G/rBSaY43EU4PynI6bNTEWC67b2lGwQrPAiWKRMaw0PJGpqqMO1Zu+JCEaSQhMfAUyjDaEOJ0LJpHpUzDjk4CQYmdKSI6USgDqBmgiUA0OXpVHv/6TtZN7/r9LJIASmPiAQoq9NPIKz1NkkcCuQ27BClzXRpUoWkx02JCVKIgBDoumIWj1ECYIiIqW0R83hBTgNmcOMNUpoCeBQaGqg8MId8MMsTd5VeCzrIzB74o1pGCi/IC+061F+noIW//2Nhl4QN7USpIh3d3eI/321tP0ksd//tkxAaADRT9LeyYaem4r6V9pAx8oAFbWgTHKXtDhIYOukCqdBAjoY9Y786COsdUMPVWuRnXhpqK1dQkSC2Nu1HCQ0BCcqhH7kkzyUXmivDPTrRBFR/9DkwRxc255dQ+FeH//3s4hfnZfUvbH+vg1sCzIzM7Q/u28loeKFCCHJe4TEzqPKmbpHOXkcqBpirBRFBhhFpmUyPxELFpNmQDr7A44REokkGIiC4oUzBgFiCLA0MFLWnJGFl0yLKz0eXdHQ2bdWjzfDRA9ZQZ3O6RXPhbueU7CkS9z/pjwdxBphbZLv9t9q3IfigjNZ8lGJkJ//tkxAiADeWBJ6ykY+HNpGU1pJhluezU3fJttgwgi8MwboDRYUKHxLGY7DEpNhxxQUELggKdcPsWcYUeHIWGUBXoujLx3A0UZjOu+SEq+cV0dYa+VvJlxKWRXYrThFN86dLqkitCk17lktZNT85bLM6UxD92v3//32ssOVDNAaAw8eDptIsRZBhSAyTZ6lKCpNLSpk55PQyzSZZ6ZzUnuWmieizLPunXh2oFs5B5QeqIYtG67lawq801/tpVlkHeWO8bpnvxh+Tj8v4zTW7m3G8x777jFdkk7aag4tsV8kj4vq+r/tiaV4Z3iHh/7tpb//tkxASADZUdLe0kZamyIWX9nBgNQ5cElwEBYEt2nKwHCfUEUZsg0U4wqsSrE7KKUo7hIHASDhTNYrErnlsF7P4lU3RiY6LQoxRl2BIFYIUQyQ7F3PcihPKyzsUs81dqimWxfs7ILayqS9FWwMze/XMfccfYmW7VicxDvERE3//63CeQtaJDEoyKPFBmtFqOgjCRWkHSo8EqyV6+XV5p+W+bXh/nZJs1dwVWluJ5Se1P9lM/zE068/NjbhJE3UyVSzXul7Hy9/zteLtntv/fxWLKlvvvVYgW6jVJqzf99M7PxUl2x1Uqd5d4eZ//+tuC//tkxAUADU17L+ykYqm0r6T1kwz9SEAyBAOsGG0PDABnARalWHVRYSQKo4emIYBSmJCCAxi3JDZTVzRdZbTYVT6A9Fq6QY16Ta9eRYDzGPuSsV4ZPbP9SMnKbocJNEh+3aS59/OGRzQ+tkspnvS/yhz9kTBgktku12+/ukcOzE5t5pkstt77X2OkzEsr71HVtnkUiIMYhqwyZEqM4wtAgOuGMUoOwwENUIegBEyLu1OKBw3cJQ5CnFkUDGJs2jPe7cWsFlsQVxPMiP9WOt+r2+ReSGXv9LK2faxE+vWKTpQMMOVb7X//b+22SFHjLh4G//tkxAaADX0RKawkaenDsCV1gw28ttHm6kaqXcmufRJMPYYYYTi+SOML84UyshbtRMcUtXwKgqotWk1PKP6ZKgnRxArZoxBlJut2asrQdXDHfcIYCO1pDw+ZOhss8WSYlA3212+q/JLPvp90v833jCkbmci++/3+t/2stEzDM1fKSjdO/sO8t0si3en2uDaxrKOTYxyoaHW98/W1/xpRjaW5QEcb4fCsaVJASgN2hmEBxGU6b9D1Q6B2WkWPEIzOPCSEkM7vbTbF8PPp0tk7BLAzUwVKVsmKJGWWfDsy4dLmydUqFRV3d4Znff7WW0W4//tkxAWADUV1K+wYa+mkG6V9kw09IhOc30qarBliP0MZuCOTpdtkXh1IN5otG969ta17ctU2chpOApbdSWlRjspF0RiSpEtifPK1zpdX5w81P0yEqXKBhHixCJ/stJZMxzSxjUzn3y/ut87eVJaRoy0JxPWsM0Mzwy/7a2SnJCacpckWChVrucGTpRPwdpN0FK+vW3u2Y8l5rz+g46iWkGkppTh7gzyBAwRj8sILHAGkBJVPynSWHhUS0ncjIxXLPD1AUKjp77EXf8Ic89yNXuMv/pVzPAXPPDQLWZMqMtjttlckibYTY1AB9kiixhdz//tkxAkADW2BI6wwYeHHJKW9p5gNHXPWrrfvA21AWrmUpifEhCG6V5DNEsdV1qDPCCIQMQSKhEwCZubGhU0NEQ3sT8j7TcHcTdizjOv5QZXWFkHM81yhsxuRHqR8c+kkK//tM+ZaxeaR2IhH8AUs7u7O7xH//9tpzxAG9qUtHyhBAokL+6YRmzkMhBPmLIEtSRzDAU/U9tHdVdzDJVZe6jetmOUlpllwB/4cVPnm2RKk4q8jy7yV2fe+7uR5nXeGiY35NbLy8+Fn7VO3/+Yy7F99lzq0uu0/Rttmg11y0wTVe2t229310lpHwDnUolmA//tkxAeADTltKayYYqnIJ2T1hhgEEKOMwu4ILGzhrz2IGzKLEEGoQgcHu7DQQHCPEcLkwpipuKoKFNYjsY+URoxpkcYOnFRnY8zQoo2nu8PmbP7V2KjmfMFVM2EFVaGVTJmz3NfhIfSnndKN1RQJaVmu122utscgcEzmLItk5AtMmBBEnmTeWBl5BBNNOJR5OOxng77MtB7vp2b81l6b4iP4fE5RasQTLvRBzTXysaJRMhKyzpyqbzbLuN2Zwr/vdY/fN7/Ixq2mvceZbI/2te6UoIjVnECRLxkqwBjwAg7/pTd3d4d3n//e3YFnmILC//t0xAcADkV5LeyYcenqLaW+tGAF4KpM7susx6m19HZxz1W1cVkyealKe/C80/epB2lYmW2Dnui+ut7lPasXGdvmxrm5pQX5vXuzzc3rUOsr3QISkDZIZ1GRJ7MVMiMs1pZDRLtoxiezJv6zqfX7YaTNs4ebzLF4AsQ7vEQ8P99vbabS4YXAYIkqCGHTfuvalb7xO3UllyzMkAQgBLNP7A6ZzIlNGIKV3PvIte5EP3b78dmrb+xNvZi6Xm9W2e0GW5/pyqrdevU/G70+Xto/Nl6azp/9Gvjx21ryDd1n/jcKztDbD7839t8W/+Nmtu6nbFwTOoUGQHUHAIYHYPxgOBgKBQDdrE2QBiVH/mBgRebH/8iBkHf1/gM0GrwL4CDB//sUxBYADjFHl/m2/gAAADSDgAAEZr+JSE1GAV8ToKkMOLUKivV+ShTHESZBHr/+Pg9xhiscAlo+f/5TJI6XC6Ti+Xv//MUETJNJE4iZf//51IxQZI65dUyR2kxBTUUz//sUxAKDwAABpAAAACAAADSAAAAELjk4LjKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"//uQxAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAAB0AABvTwADBggKDQ8UFhkbHiAlJyksLjA0Nzk7PkBERklMTVBSV1lbXmBiZmhqbG9xdXh5fH6AhIeJi46Qk5eZnJ+ho6iqrK+xs7e6u76/wsbIyszP0dPX2dzd4OLm6Ovs7/H2+Pr8/v8AAABQTEFNRTMuOThyBLkAAAAAAAAAADQgJAhxQQAB4AAAb0+YrRDyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//swxAAAAbwDSHQAACHUkKm/NYRAAA4AA/////4IAgAwfD4AgAgJgR5NqRvAwFAgEAfBnaZyUqmprA6b5AEiRwGhknoGaEIJIUxQIvgJMiIOODFVww82WXX4gNRla+4mDTZ2NMvl0So4rJqWpCpz43I8Pmn+h6ZjP//////0tamtY0v4wOiX/fYn/2Ls/+ueWoVKinv3f+wAAAAQ//tgxAIADNhXM/m8AAGpC2b/N4AAFBBWCoYAAADjYAS0BDBixsYqcGv4IQMGRvhhYSCQg1xmGuoycvEqZgi7zIBkaIi85jATGXBBykkWqsBWvTSxEIIE0l3cs2INNjcOLEilNS0M8U////o/R6af///39SWlvZc4AAABgBEOWaqkAAAAD8AbAQFRh4kYyjmfnZhQieAhmVBK3wURmZFhswGZoOjAmX5MaEBIADiEwQbdxlKM5acySD1rCrEgUSmoApoS6n1uuO6GEZVAnWu933bYbGIL/////6fd///+f9RRTwcAcAgDkT6G+QOAAAAABBDCITMgr4wwBTBAFMQoI23WwIoD//tgxBGADzBbT/nNIIH5jWU3OaAAHxFMRA8waAjKjKNso4hAgKDRZQSBZpYemSwAXiUrSzojltA7St2EdAIFINfhs6RxZwIPxfKQyeHWdQdLjGFE3HPWr9b/////////6xf/8o6/q////9qgAAAQoCklN8AAAAAAAjFhMMR5oxw5AwvmhUSYlOoJgZyEcmwBmZABpncbnXIcY0CZl4qmEAiNAE2khDPwsNEhDHMsaSe2eZkam7GJbDrOYcDC7XWZspp72LbZ44Fr1cSybf/r+f7XtNakv///////////vLP34T/9CwR/8UuWAAAAINxv/A4AAFoADEMSFs7YsTF5RMVrgxgi//tgxA2ADuhbL7nMgAIgjaU3OaAAR4CmuhyamURholGRDWZEBZj0AgY4mQwqEDQtGDB4BQGXPdVMNdIBtNVwcZSMQDMqe+gXgCiCsAQlO868PL1gvsYcRX995fjnf//+f1L////+9v/xiTbvs/+3//qAAAAAALNt3wAAEAACSBr0P340Rkwyy2jPzsMysg3FXjUsqKiCObzwmVBj4qmi0uZ+SxkMvGBwqBBGYIAxQDAZsz4oaZjIJQ0mihYC3AoIQLAyi7KmmCQOBn8hEEMQf6WRCPN0gOMRuN5dd1/oZXcqGv//96P////9CGfXZ+u5z0/9M86Wb/9VtVAHADAHMaodlQOA//tgxAWADJBbUfm8goIbjyV3O5AAAAAAAOA4mNADCULNQMwakmZSBigqYsGmBH5iRAY0ymXoRgYGyMFIxVAB4Tec3DggRLp9BUJTZNiHH4NeJSa5GmvZeYJOWZps+vlbOJFMxr83//////////7gCAAAAI//N+AAAAAAADAo0zKUDhwEjgEkzBYNjDwyjFwHgoJJMthkUq5kC1Bl8LhiGChiKAhoqORjCNZjaBBgyGAUIQAhgoSyUIjzitwsWz83TF9LDGyS/KLAkKmhAtEkKsSfpWc2cXSw9yHI2/+sY2zh8n/ay9dT////////////sb/6v/3qAAAABBYUb+wAAAAAACM3//tgxAeAD/R1K7nMgAF9DCo/N4QINg1m2DL6YOyJ5AMcggprVJBQBm8EEc1f5wlmmrbCTE4yAJDLIkNHCALB0ykbzFZBgx/6oXAdUyAQwaNOWlYrXSGAW4K8WeW4fgtvHes2m8fqO4w1DybkM/zPH/ctyIx///////////+Hrv/5T//QFmAoA4AYAppUN/cAAAAAAAAFuzhpQAqYcxggdBV0cLPmclhhIoY4QAgtMEJTJwEiClbVETJAkAhQIW0dd7NjCAPcPKWgxNNR3X5AkUbGxs2ppNSQ47j1xkDMQZR1Xb3CVWJRVEQXRMmvzAAAAAABACCE7MACguLCGOOMKggWMWEz//tQxBAACrhbTdm3gAHuDiV3OZAAYRoZDDMhIx0QTpAgGrYsUwwAkAEqI0LYnwdgRAA8YRvCAK56JyLiJmCDPo1qjXdNiZFUvoqUAAAAAAhqX/AAAAAAIAzWkjZybMJB03IZTQNxNuj43mWjd73OxgMDREUUhjpDGTiKatQwkVTFwNGqSYcDZ6wIsGEAWgIvRQtDJJavGW+nAKmu9f7S3/qS+w9Lu0yX6Sbj2Pd92Hc47jlO05PwyNI/////////6P//2f/71QAAAAABUv/+AP/7cMQEgA/4dy+5zQACDQ8l9zmgAAAAAAADFEnObpowkRzQ59M5IwyIJDCLfCqeNcmcAsk2iUjMaCNGF80sRgIRDIIoCDaPA8yGcxAYVJLpGCL/l1om/wKImQNJ3M/dF0GPPNTZAAGvpi0BO0ztdEJi7jxjvw0kk3SMe7d2HHnf///////////+r/+sAAAAAAh5v/gAAAAAAAL5A5YpDLbgMoGUwMKDNitMmDU0suDM7WMgpg46BDghlNHC8zWTzEYTMgHQOJocJCPAbMegIATIxg0tcChxMGYAjPDMtL4KPMwHgMAMbfRWJz5ZQtBgPtl/+yly8GqsOdhvYbdldr7Oa7P///////////+3/+kAAAAAAgMT7gAAAAAAAynb0y3EUxGhc1VPAxEKExLacxeG4yrEg0hKsxb/+2DEFQARWHcrud0AAdkL5fc5oABYQw1J00bIcxaHgwmAoyZFcwTNkxWAAyZHI5VoHODuRjdKRa6ydbQgBQ4Ywe3rOQMCTDn0oHYqXGIzliqjM3aAXhuORdcXvYda44/fa+u1d3////////////QK//bd/7xcAAAAMAJWD/gAAAAAAAzYkgwsmDugbsAhl+lGpVSZrXhgQjGO2ucGIxklkGOmsvEeLpldAjQTMdqYzslS9RELNqpMESOA9CIsRdx3wyCLEVAyAcltD6ZrpxqNJeQ93js4UlPx/gZc2p3////////////Z////6IAAPfWBgkIigqN218yeHDfgWNeGUw+RTar/+2DEDIEOsHEs/cyAIfuOJM3NsWQvEoyZ5MhlgGGahKYzIICHQKLoQRzGoVMLBgFpgxoEInOm0JOAubH1OGtQc8NBHnhdeDKGrepKmfKSk5j/6z//r0l7/ds+m+lyby6+2myotz////L6tgVW507//qAX1bCMACkxudD1kYONEcz8YznjzMfE81jrTIZpNeIk1WLDiZpPJVTEtsxgPNaRzhDQBkJooCSFRkyYYUCEwLFjAwchBU6GywM2d9AeWHYmmRuanhJL8fnJyu9pi1219lq1/+5LXa+QUn/a+2lGofu///sPmyzLwm+9Amf9371qAXEbCMFjc0amT76uODtY5XRDP8X/+2DECgAP6HEmdcyAIbaOJj85kABNSGAzkLzM4mFquYkLJvEKGmwmYSQZmUhmRy8Cj8YhCBVDA3YJiArTjoBwEuKIqlWEpEmGaNGS0YEqaBXSjV2E1qaalXfvbq0tndmJTtM///9r7FX2OhWXoSOoqq//9X2WgVzTzT4HCbP/egAAAAAAABhSRb+gAAAAAAAE4s3s+jFDbMxu8y8IDDabM5wwx2tzdS/MpIo1ENjApNM6koCm4HKIcAoYWBYlmLWJWqdBgoBDfo8EDmJNApZTf8XIGDjQR3SiGhylhl3Yy30rVDVha2euf7DN//vNAAAAIIEUO+4AAAAAAAMFYQSN5iWzHKb/+2DEC4ANmHExucyACfkOJQ+7kAQAMJAywrTdqXMWJE40BDcDhNJCwzubjMJaMmBQxmDQSMCQNCw8PAcGknOMLTGOSmCCgGvVSJ9025sCkbJkvG4Nq5TR70trLraA+z6oRu/r/Yk/v/9KjAH1jCBoRAoQjOGPTUArDMFNTLQ9jHIwASsJjYSRiCTxkkZg6dphsOBiOHxh8OY4CRh6BYkboIZB1gDOHgTRGKzV4lqJOhswuM072UUbXm1aRxHUORO3S36CXWef////SAv/63UWLXqERIai+ac/2tRWn///6L5gYkcgUT9n7wB5WgSQKTBAJzg6AjYlbzEc0jpYaDI41jNZbTX/+3DEDgETHZ8kbu2rogizZanGFpwk0wsl5lGMZruUJ61AZyZnXFhpZiYZAGYppgg2ZkoGJj5iY8ZoImGCgkAmBABgASu1BhKlmqcLwSVsjO7jty19Ixff+cfQl0a38egA9mqFPmZfTTT//17rZuzNs7I/bQRW3Z09fqve7fX///////0teyHezJqes6wW/oSnL4AAH/WBmDSeZcDR2sGmvFsbkXRrYFiInGqlYYVMIVUyERiMnGqCQBByYDKwcWQANzJYMLamDhcLAwChcMBSFMhUgXpcR23WisRCEiRAvGsdSc47j+UUU2ZygBrwMq5mTl8uJQd/9P9Lf17bEeyu812fs2n/b2v//////+n7NyNV9BfAAAAZd9RDAiEefj9Ms2eTN7LD+QUyEYMw1jBIIxalNSHzmEY7//tgxBKBDpSJMU3pKyHTkSXpzSVky4GNzSyxEuBoQ4QBu4COGGHJUMBFgS9lYVYH8gCBJt5xhcF3OZDK841JG3QFyZlUImfST//KHba/orLwzMbNzxe93QnVZ///qzr0PauXjHQAAt/2hmAgKYbC5pm/GPlkUIs6OaDJ4vh0x8AzHroNBjgGgwyLIyhkGrTR4ZaFmKFAOQmCDEgRTASCLmUpXJUxkd8GC5CeIEeRFk1KtEyquCBNPOhe35Vv93n1r697M4HERyn1lhRLhVR507Pv////9xfSWpWAABg9ohVCBgQamK7iYOUpuViZJAGjqJjm6YtGmTV5qxsc+SHAihjA4Zat//tQxBWBDah3MO5tg+HZEWVNzRmkGPKQEBg6KHAQDDoiCRACq3oJ15NLSFdOaGgYFWpkyWo24rb/z1MXuW2d5ZR6ztv/tlcehlv2ed/V///5lcodpkySAAvpAhEEhk7HHuEaNihqUsn4CMZZR5lhWjjSMAQgxS1zFQgNijwxQhDKIGObRCsE7QA1KwCFwYpRhEQAlAJmN+3SXMMdeCHFiMsaO/EmCiYYllD0SJ1DB+N85d+nz/P2Dev9jh43Q9lycildPWwXhT////013qWAAP/7YMQBAY6wiS1ObMfhqIymDb0xZAAA/rAgSHB0NnR06aue5kyHHCDKZlJpghYAO2Nn4zW1w7yFMxSAtCGWJoCyQapGJFZkZQSgaTBiYwSgJbVlrWo4oM47wP40OzD0ASOdQJghrIlSq8CxHbI5Wq0g7T/+juo98ujSiTvWwvdst3Pb////+1afaIh6OIp/kScrLGkJR862aGCmkxhsEea1VHCAhkbqaRMATQ2MOW0MwlOSKHDQsLFRwjHpeBgJrbEHhcdjlmXhU4dwEWXF8Dl32JcvKx0PrQVB7/9yeLk9KsWSm/Uv4op////xY8EEQ9Wk4sAAABFHsjMCE0OBpvOtG2iubP/7YMQJAA9ceS9VzAAiBg5ntzuiQDIZ3sVGTQaaHD5lJbGW1qadMJo8EmbgIOj8yYODEBZHksYWFBgcGHCNHYwVCPNgdbqYMRWtMQPBl2bm4Gv1ZXSyipcrUdjHOX37/7z/Usm6ey7/3xmLmGs0umHuc32Uf3///vaSu4RjGgAAAAAAJT38AAAAAAAGSaDmlgehWIzUNXjAQiTJMCDMUeTNUXjCo6jFsYjBYRzFoajIIfxgZzGwajBQGjBoGTEIABwcQADpAzFnxEde0GBwwDLETMFG2xMNgSAXJcV2IaYJLZEosvly8l6t5ZrbFQcllv9aw9oRf////////////TUE4fUQKP/7YMQCgU44czJ9zAAhxI9mKc0lZAMcGJrqCGfhgZWKZyYIGFg4CB+YPL5kczmRCOZGABjQKmGCCYnDpjkNgIxmKwK0QOshPCpy8acj4NlXpHIlKLEsoaatFr3aWrVw+9esYXL+eNj/+zGi5//7EIaizSOn/FOlG/kf///6nUxYBEIAAhAQBgwsTzf6hAVPNBoQ4gYzFBsMLHgAKw0gLDTpGM6jA4YgBIAU2JqgKwGGKL8MWAKoIZJF0C8LWGRsQkrSatoVCaCACSN42VUapsQpfDNNfr9cl6Zr/+njx/g/W+w2FrPTfb///97URzGKFzpIMsAAAALHtEBg8JCocELZpQECJ//7YMQJAQ5YczFObYXhxg9ljcwl1AGzT2YIzGPOxopmGuR1QyZ+iHBkBgioYefGbmxio6aALluzFRIsDRbdH8SCmuKpsl1DD9WgZA2OnCUu9uBCi1pe+e1aSrH56U1lnf/TZ9qGf2yCANW3////bNDXm0XNHmAAvrA0ZhgVHAcQavNpnIvn9QkKA4wYMTVClOIBM1udQVHTTpIMCHYLhMyAjRAWjL4jN8TPBDmfCrdByH9IQr9iVMs2JhoCgCsMgi2GyxHvcJ23PKlsr/q/6p/+zvTiir1ZQTYfaM76lX2////ulrFipuoAMe0NwxwimKryZ+SBn1umWUkIB+Y6OZhJdGuyEf/7UMQOgY10ezBuaSshsY7mKc0ZNJUTxkA5mzmByg0C0GeDETTFqg5OxIwScKlmdJzq1JLsEk06zeMhgnDImKQIWrVRIz7K0FoTl/6lqepMf/9zOeSWy9lzCHk0L////6HM1UQAewQqhsxENjPFaNBqMwcGzuhUMREcwoTTUJLM4Hs1HU+dE2Ugwg0HgDn3TKtCkgFQKWA8FMePQAsufpVN1JqkdT2K1ZRDdPSCwhwTQQEGmNfQGfmJkjHWWd/6u1YY842/+/////mU6t9Tgkj/+2DEAAEORHsxTmkrIZgQZzW8oVyAAAABB9Q0QxAWjd7NM3Jw0UhDnA9MEh0wsVjIiRMgrY0eNgwvH4hGkSjkQ8SI1wcDQw6CXZABpKFHJlq3VtvLD9l16gAWSYcTMtEmKRinA9y6NeX/oKtSl1ToPv/9a/7mKSAS5XNxtZxLbP//7v3dbgrAAAAqB+MAg01U3OeDTI1kz1QONLSIzAqMYRBGMQIOtTRBA+EDONMUc3yAV8Akg4FGlDkIAnRfqH3jAVc4UKPhymOFDL4iKqiBhUXjYDpvmpzd///R0zrN+2eY7dX///4syWsixklVgAAUPQHgYEIJtmDABPCR2PXhgz6Cwcb/+2DEC4EM2HEw7mhpocwOZinNMSSjF53MbxY/oczR40S40gMdjmyvg+CAxIGHmAEmBMjhFcjJWLJHsRjEAzcWd92soNmbAQCih1RdgQsKN1aDcJVDXf/S5pn+c3//////r7LmqgAAMHtEC4mMSCwxZczIyZM+PMx6gDKIRMOq0zsmTCEREFw/L44LYFVCB4aPQNyzHkRqGy0gPpIrPetqyR5qKA4yi8SjAsNVJx88y0fWQzeWYj5uKrFSV5VxES//4mNHU30gi6p8wjrXAv///voReqUZGk0AQfYRYQwKTjO0uNAowyKeTtQOHgmSi8wu0DGDUNtVMy0PGuBUgDKhyec44aX/+1DEFoMM/HEybmkpYaIOJc3NJTQopQuwsDjFjGgs4SJUTmnpZ7eqnRMGZI2kCJt38TTS9yQ7/6I///20onH3N1k1vBIZ+f///7TlEsLbngB/2BxcGmk4LATaCvBkSPJKsRFYQo42OuTXMFO2TF3J+5A2IFXZqpxydpuDw1RFThh0giQrqaEjeiayppK8Jvtd/1iw++ksKpJkSsUazUllV0H/4e/925mq1PrT3r6q7////19mZapVqgDB9Q0/zEj8/whO7SDcLo+enMKWDDXY//tgxAuDDVxxMG3pKaHpjyWOu5AE6xRPi1DTPjSWTTzAV0MQIN2FNBmMQdMUNBhBnYKOKLwJJ0BqxmtMvj3zrowJF5HiLnFW3a0gLIGijkf6/GVf/6/IUlyikjWobJ2/p////6kLNCk4AH9YEIANC4sGqavGkQNGWIdhJBgQBjDkEzAJPDTU8TAkLTI8dwKMBjEDQiEQIN0GDyYvguY7IJIM6MMWECilKXCEKLTbq8rw8/rIWNN0hEPw5NZUOdFOxitq7N09/uGPySpnT4f+67oqhBVClMNPcm3jcW////7F21LqAAAAAh/gAAAAAAAMw1tNViIMVnxNZ3gMFErOWRVMQ0JN//tgxBCADzB5LVndAAHHjyYrOZAADyWMbD2NHBCNJkJODgvKozmMY4GDAMmB4QmhQHmDosGLQvYbsGBUB8eRlUOaTSdcNqQgQxQl0V0sHlz4SJtmnV6yvnlvP04brOU7uLjV1UqSH2sNIhxncjAAAABi/4AAAAAAAMqB8wDrzJWsNGVwxvbDd16M1Os5kxzV5tA1TOTGw3GNDDRzM4Hsw+SjE4WNSDQwcHjadSqAKyd4HeOBoeKbjRoPypqxelLCsr2EyJ9ou7mPqxt1mooqsnu5DBqVmWWTr8VYzvbYJXUAAAAAACGF7/8AAAAAAcVBjOImgVicKW5gC6mP6IbapRs0HGzV//tgxBKADyyVM7nMgAHmDyY3OaAA4aKDhiEwDUJMlE80yVBwZGLh2ROVAoODEAJbhjgmCIT1VlsR5dL5PaDAS0YCKcKeo8WAsfjUc45++w7BE3T8mX1ZjJON5NNlksfh+N///IsO//3rQAAAAAAASlnmwAAAAAAAkpwvEGSFqa/2Jna2GVgYaag5nc9GRPabDDJokcmkSsYiC5oAVGMTsZpFxnQfmGgibS+ACBr0idZli6PACBPW7SYLNHbYYu1mTB3Bgt72avxIsUNFePTUaBH4m1j4yzrstyeNpcPO5Fw3ntwA0fUMChox+IjXrkMEkUzUUTzY2MilUxKETUQWOGC1MAxW//tgxBEDDixxMH3MACG1jmYNzTEkTjAIuMpBEweCTAgcMog8BJ1uR2uKkN5AUNIWSpDRqYjkPwl+JqQx2IW8357etUtjO3hqxTbtV8MLf//d4vJUpQhooEnLH3/////8chthEqAYPaGQAMLIcypbzFh0M/vc0+wjNqBMDmcx+uDfJ8NK7Mo6Ni0NgaBRIyJk4DoxqcwYQHBTHnhEJBQBWtlqN1wbhaVNFhXJsRPufGNmL8veVQXu7Hb8us7//APZvTElPXvmWoavb///091zVJaqALHwDKoBMRDQxxXjHpnCg9O4FgziTzEpRM3ts1glzIKh5ydF4a5sYMUCoBs5JuyQqWaI//tQxBmDDQBpMG5piSHKDmYOuZAETLwEgEiali21ZHxpC5eVowtPBMLC0wL7SE79li6i3o2KxL/+ihn1i7aQoAwezv/////7PSkBYe0QwSETFZUNgrszgeDWhiOpIUOhxjEpGfA0ZXXhkQCmDR6ZjFhgAJFQEmLQCCBcZEAgBKUeM2siKFnGVp9poTrcGd/QS5us9H6apcp/s0l6zhQUVje+Z0/d0////KL2jtGmZIb3+z///baqrkRQ7DaKAAAABAgSfu4AAAAAAABrTNqiY//7YMQJgA4gdze5zIACERKmPzmgADMHjPshMKs4yirTHryMCigQAAycTzYKPNYm0x2OTAxFMAgpdpgoeGAAiPNseCHVokXI2vByKDpqduPYMo6IS+K2Z13la4d7iiMXfEYKZz/MKbvY97p6Vvz13HbWuzoAAAAAAAARAoC3fcAAAAAAxtUjF+gMhyAwg6TFMFN3b03u8zOYpNuME0mExo7nLBgYbGpm1FBYjGAweaCAQcJTtohp8CABgwBoIwZMWLAW0lUYaIMCDwNylUoXFXYCiswYFfKRzlWJrTcV6wUr2MStrSypBSMpch2oZfWL6//+m1//7ybqAVHwEhBiwdGDoqYGJv/7YMQGgw4odzJ9zAAhp45mDc0lZJrBxjzfMgoAymKzNQsMILMxaZTKgnMzCIw0KwuDQoRTHQtMZBArACvBXC8XgqNTfx7LUpi0vmIpMP3Ee15vlbK3nvDHlym3S2ZVZiVrdUFQV//xU9lRrWY5P/////+6kgMrEgGADHtEWIYjQBnCrGTTEZhXJ1ormaD0ACCZXUBKpguhhIVn+QGiZiM+ZZ0c1IYJakaNFiqLMgLRtfdMaAqJ0mHcqBgMAcHCzQmPqPVccubMryUa2Suf//MKS+9/qkNY/bZe3///6pmyPMOM1QAx7RGxmD0Ga5dJlIvmB2IdcYZrJGGOgKZjbJk9Bn45nP/7UMQQg42YfTBuaYkhsA9mDb0lXDwAcAaAKYMwcMiHrRcUWnBwMRJyQMidOpqQ8pPg1oWDxA8vL1Kg21uC7L6un0vTetejc3gd//q2OrEaNu+tjFFFrs8g7///9kbfi6vqIi+ZEohNga2OHPVRxNSeczGzOhtx4cQtHagBlDEArRkBhrTxyCJ3T5riAORtuFAJEjUFjDOXeJToBNHgaEJVCy0FSaCFujen6/hmxvx+JqFBMp3/1864pgPCi60IrLVCmz///5hPNgg8aBkAL6j/+2DEAYAOTH0sdcyAIgKSpfc5oAAItiIUMdVkxrIoGrxGD/EbkCpl4yGX2YbdN5vg4GWgcanDgUERkEemKT4aALRiYJvkHIASQxU36b4oXpmywy1LciYNAMflFao/b+RmtjenLFNhUzr37l6vYw592xSVHM/S73K3k+1Pd//////02DFAAAAAAMB9bbXgAAAAAGubWcmmRnjOmvcwOIc+STDRVPBVHN1BI5MNDehVN8S81SCQUUDMYbMEiAw6SDcJxFVyTYKPCzU2EYIekyItitSVO4tFJBkrwRtoLWoHEnTdC8DpK/UWiEeW9GJh2Y+y6UuBHJ6XKUKgjMXb3L//+f//87v/+3DEAAAQmHktudyAAbwOpjc5gAAAAAAAAADOb0AAAAAAEFGKYaK+YzSMYoxoY8rkaQRobWIeaCCQZUlsZRoSZ8HIaOiUZlhmYTjQYDg4YOAeY4F8ZgDoB5DQDNBcIEO90FWK0s+dUaAjbWxYBpCpGxZzMeCFxIaNM5TSLgPy6EDw6zilxaTWpNaU0tU/tbO///////////+sAAAAABoCSfAAAAAAAAxEhjI6HNSt86wWDG2ZMA3A45GjAE1A2yM4mg0yQTUxhMIhoAokxARgg5GagSIBmBunwApVR0wLFhFUDsrja5FmbKFM3a46z/VZYt1vI8xJWpksJh12WRf9KuSLyz8kmZ/FAAAAG3t4FAAAAAAChzmh8DGHxgmcKVmRTRGO59GcxwhFTmKLHmaw8mkoZmMohGRh//tQxBgADoh3L1ncgAHTDyYPuYAEmmOhNGRQJGOQ4mOgWkw3H3uUJGe6pQaJgCrL9TDBosy9oCXSknULzjIDaSJfUjo6jEWpzFdfk7I/93GBPn/sQbx+u/pAVHtEBIWMog40uuBooGjBOdBRhr9GmOSsZ6LRoQ9mvisZhHgszTDhPDBAZBNRiQfmJAVDENgJgKEho+rmRqlj0avSFd0utPI/1Fej1PSX91scd2r0Wod2+f//8Q//9FvZpWoWSZtqQi9H//9Wx+xM2KijRh4Acf/7YMQBAw8keSpu7Ythqw8mDc0ZbKQIkAsKI2Y/QCFBSM2VLM10iNiTfMowzMRTaMszSMuURMBzCAIeY4NmnuQhtTV2wZIQEUkwSIS4UDxYHUZTRdxkMFRGXM/SMbdfL4RHlRQVyk7qg/fiTtOvW3ph6WD5v/9hAftt63IW6UrRkOv//3/uNWnxUgGkgGj6hp3mNB8YeoxhcVgYHHFBIcJHpmFJmJ2aYgO46njLAePWIAxg45M6kozi8zIR5S7qshMRZalw5zBHJqySIxpkkXkr7wxaSMsfFpaHKybjNi6QyiDv/+ymxS2isUQpv133N////y9rrCIA0fYRJ4CwB0NWZQEHZP/7YMQHAwzUezJt6Qeh7I+lzrmQBIR7UWemJGlhZskxmqx+MJj1Z81BhmQNfh58yZwaarfLQhcGXMUyTnYA5sVlsXl0CKGylDujBjF9Uh6RBlVL+554+3//+LqYrNgVT007XZPjP///qQrJ0NCwBn9obomOROdIBIQuzUpyNhx03GbDQJ8NXtYzKvzhIYM6jkxiWjCB2MXEwx4TTFQdMNgtNAdNFZwSGDA0BS1OzrkWIFl7nt/DUBQxV3ajVN21uxbt1bNffd49yy7T16W+//c6x2bSVMcYgxn1tGCSAb9zv///dWSrYssuAAAAAAABrl/DAAAAAAMfl0MMFcMa2yMem7MS1P/7YMQOAA/gey253IABpo5m9zeAAJM1oNNlSxMZBVM/ETMcxJMPgFNqiWMhxKM0RkMYABMJhEM4iQMigQaqJXAbYGLgwIBpIRs+UqdBW9rQ9NLXTV2y585UvRPtmLNU04XBjgO+16OfALvwZLrEEU6t0jft12+Z6AAAAAQCNJv8AAAAAAACBtPmzTQek5koNoYzV886lhNQgThJA3AXOOKjazcxo1OAKTRgAHGYcqmGiAugPsFoIAtAAKRTDW0UYnZIBrA1g1FiraP/KFgok/0nXZDcNv82ByY1Loy0Tu/96OUAz6gJHYwiojdmOMmnI22zzsyVNvMIyAuzHcEMRF4w66DR4//7YMQRg448eSx9zIAhy5Blzc2k9KMzDgw4lzOBvMZFAyeEDGYRhpeRqwKKqkEkAgF3l9Nxjz3xNgMof2CoPzjOFPRZ8x+zuzMbu6///90saPuo7/oTuRbLvfMJd//////rntHtDWBMVp02K3zFhbCz+ONNE5UhjNghOz8TiSU5KjMddDARowKDMKTjZygIaRgOa04QYLmHB6+17qJlAC9ESjUmh4LhyI8HEDYsjFE/OGKxLy/8+vumDeSztgmd/XckfKqcM06aWUgAvVcVR////yl0NTphAOHtDKgFMSHU2MKzFo0NjEg0iWzhRCM3Jgy0OwVXDWY2MaBY5L4CVzppjbUxIv/7UMQXAw3EgTBuaYrhvozmDrmABMYgOpNwgCVAgRU0MI5FxRUFRVSuQjFYyju9E3ZZfOlmNiLumZXLGR8RwNysf/6vRRVJU8Krdj6rP///7JlMY7YA6PqGjCFDQbvdRkoVG1RWcjMBtgPmMk0YegRpsHmpBYARGYvMRgIHmaSKYIJxeswuBEhkhCA4aJH1mKGCd8aYPGItjOt7SVJzKY3nN3/w+pLK1DbtjzoKqBoO//pl7b8ebpJlVuW+/////r53tRatAAAAAAAAEAll9///+2DEBYAQnJUz+cwAAcwQZk+3gATAAAAAQNKu04U/jJFPM3wAKHM4HAjKDjA0yNRBc18OjMzDM4HkyuRioBQsKQ5TGphmZbIw8RHgdAEHEQAHJu8hdMIRDc2ISvtGgEhJB5ExFzuW7NRh7JH4mW2ZdKM6dpcQvzmEDTLuwHVzp///5U///tL/////////2gzD7CF7TA4U5jyACIdEqn4axtkSbFpm3SZg4CZouGFDAAUjBVwwQeAwaEIZgouHEeVEJFBM9x2BqX9mrMnvw1GcalJrHW7msrVa3WnZmTXstdyj2eVqks5XrV///zRQoVbYSqYdRl70SAon///96kVVkRgBUfX/+2DEAYMNRH0wbmjJobgPpg3NJSQNQ4x4STfaxMMhA4eSjYCYMTn0yoVTJ8iMwIE2FmKBWwbO8ZwgIWhjByDyB0PoAh0QuhrkXYCzl/rMgooAtzVy/Rbpt5MNR4FtvDVyJZacoLUe//TUwQvhu8C4hFd79hO7////3rT2ALD6iDoGMAI42wOzDxZMrQg2eXjWJ1MhK42mVTTqQPaMAWI39YfTnGIiNGYMyZgCHQh4kXjKgmHlb3tRxALFw+2oafiFvvyf3yWs659Z66IwOlm13DG/7/H2Zlw1odJ2HvO23////3w4jCQkJrfVBU+kCTlMdk41rZjGpON/Oc9atjnKNMgvg1//+1DEDQMNoH8sbmTNIZIMpg3NJSRIzazPEq6ZGDZldFGczeGIUMtMDQFzBcQeGDgxIFTNDk2JOVlMol0sqRaRUMFy6w48Vb4ok2AWRDta515RTk8j36mfWLvqaT6r0ntn6v////VsjwlB7QxQCg1SmHLKY8Cxx1emKzwbvNY81jVEcMfqw9IsKSwtqOjlZeCVQqtMESIlIcGTyHQi+EUYIUmAqEhaTWYQoE1YmxqDUV1L8mFUl1nhQucV/zRb9niBcsyy7////1dGxqa1BeH1//tgxAGDTWyFMm5oyWGODyYNzSUkET/AQ8MvQoyuSzPhSOQB01qPzIbBM2hsw6kzSJjWhThSjlmQgmYc+DEgiImAApfJ9uGytNZlbrTMZj2PSA0wUgcGNuJ34WwQeluu/OSwmx1Hpul/7kR6XvAPAg8kBHq+j////3WUlsIguhLYhQBvFGmfCsbMARuhimowWYZTJhCDmOGADNJrFx5pR2xxmSRogABXkTcwoEKgGlpvrcTxYe4iwoI6MIMoH7i9NOfvMbbba8MXbjHElzovR/5C3E3arWhbv////7T3WmjUCeHwEVwY/CJxQ7mfSqcjQRv95mXQgYhSQXhBhF3mpkHEOGeY//tQxBIDTSSDMG5oyWGlkGYNzSUkHrTFCMwaIdWBlAMRgwAjpMJZJdyROCajkUiMDiibm3qRNO337QOJNQiD7/PwLJeNkn/079aXLoP25n/////Va4c0lXsHAWiMGBjOavlRlYQGXiYdbUJVExlFfGdwEYadBtD5zzRvWx8zwEQlWOYo+hm1VVQlDF9E4VLE1FeCIHyMTKUjUGjnVn5S1+rMkQJI31Q0v+9t8X+TX+vqRcwtqAV9r//////TYTueAQXQqoABvgfCCEEGKgUYTv/7YMQGAQ00fTTuaMkhq49mDc0ZLC4yIzQTJAAPMuBgyaDzMS9MUoUIpGrPHRSAtkYoMDGRlzRkxBMJIgiwKlMba/KIXZqZoTPONEwuUuaqKJHajTN7pA84keUatn//uiwIJe54tMVJvS/t////VFrb7Wgqj6ht6YPQRrqcGQ0Ab1Kp1oZmyBoY5WZnhuGokwdIKd4ucuMN3yqgNWJNkfJrrqpIkhtATArKFYkuoeeqXQ9Ij8saZqBEuykpYkd6uLmMX0TpKEQk/7rKu4Ve4WeyIJTt/V///11aZKRWqglR8BFtmDop5raahImwcR9DSdYgGHFI+1njuYOowIjglCIqsElJ7P/7UMQTgwxwfzJt5Mzhy5Dlzc0hLKnecDS2+WBQdApFpRWSLWlUXjstpkgxaZMw8MikeEakFRhu+5t81GCu6KP/1znVo3kX//////sFaGAsiZAN/sDLAJMGHE44qzQ6QNoE43yNzXhoMKIYxRAzhRwPdIPO5ONGPaANEnNzcN4PNCGTuS3MAgElaJCJyPrdr6t8Qfp+QVBU0wwVCxqXR7nCP1dV6Ipym44oXo8j/RWL2r3JlFHqmR9l/2f///jb6BzLTQOVAVHtEW2YQMRsGjH/+2DEBYMNrH8wbmkpYaGQZg3NJSyghecZLZ4E+GdCQYPQhlpyGyxmbfWYMgdJQNrjJPgTdDL4OoLGTnMCYASEHA1CWjsohmPPdAlOBxl6KCpBiWaxtPIc95/JdronJKN6Df+3rufq5G9b2Wvo0////5S1aReLOQAuPaGh4YjDRhDBkz/MiD0w+0jHQqMFDseORpQEAncdwgbwQdE6Y0kbyYBlANKwGXjLNmGIKkKwLU2CNZeh/ZukBDUxlV45PXe3MSVuEK200qwalJVWJOa/2dXdoa39BrM9P///9HsTuYAAAKvA/FTxMVOTYrIBNhuzGeMvDgMYgqmKOJqYYfS4IGBgBqr/+1DEEoEL4HU5TeTJIdQPZY65gASiOc1wwMWLNVnuHSUx2Xw5nFEUSmUAF8qiHHnv2xzCBJN2ZX+dQMnSz///+tPbF5ojpcyn///++m6bAT+sCMKgcQHM8OwzKp2Nwq46wCzSISM9CoybBjdShOEiIziRDGoMBx/HAEYcHrFTFAORPQDJ6hVaPiW9G/CuJS9MpgZ/nPps5TXl0Xztfd/8bFeMS7DWH4/hz61ZxNG2L+LLR2l0oXPva2d9Dv////X6wpINAAAAAAAAAAg2998A//twxAYAD9CJL/nNAAINkqX3O5AAAAAAAMObcxf/DIEDOE+s0VZjABiHQMZ5DRq/CnnzsZnHBjxIGv18anH4sfjAIYMLCkyQAAZMOCEM4CBgYyBJVNX7cF9IqNPbVIB34i5S8y/1FB7vPrHXca+5MDqzzN9sHIZalS/fsNXcChjVmpz/+T0+8AAAAABpRS738AAAAAAwZhYxkVoEMUaroUDkiNVnZMtyXMkCbMFghN6A4M9Q8MJCBMnRmMrheMJQtMBhTEhXMNQXNVY5hS5CJZgEGkEoaJHJaKpRGC4oj078ZXK78pnHMf6Nrqgt+JS9suh+1UkKUMsjEHyJdL8ReTyzD//4Op///iNACeHtEQZMClML30z4NDV8DMrnQ1SMRCWzPSKMhjIx8rDBo/AIeMbjYxwOTCxAMP/7UMQXARBBozB9yIAheY9m6b0MvEhkMHABvFKARYDFBsULLIeUCyM0TJTL5LEks6bG7kBK0vpHzMzOGxNqPGxm6zKWSgZmyJgbmhqb////9Wqpv/2Z//Tf+/ev///////vr6vptZJ3n4AApwPxRwHMMEjVOI1dXM6Cg+YNW7GIISKMBBNddIp48VDlxpgRqwIMEIMjwNiiirdmUv4607MyOIZWAFoEVBgZxHOi5iMP3gPBoC5L//7gqLf6a99NX///+e20CwK1CXH1EZkQkY7/+2DEBAENZHcwbmWK4YcPJl29GWQKqzRSWCLQccO5jMehcFmC1SYbOBqscGMA0b1p69m1Idi5hpmSsn8HEsLTybgslOSUiaKR3UvP1l+3UO7dnsu/Ov+3uY2beUzxn/6tjTdJQ5YJ1KB3447fR///+uTIrfDDDovAE+BsIXUMvBT+lc22DPJeDgXkCiplJYYAjGXLYmiGcBoFWmjujIUVUBQAkgGKEDV/NbjrhL0afDbyUMjptwWa9PcZMubTFQ75snJYBmgZD//9fRKXN1VlqYKbf///4rWL3MAAAkvA/GReMKQTa6oyBCMsODqxNDMzqgEvDKoDqmwVfMSdBqMw4sdGsZb/+0DEFYEMMHs5TejF4ZMPZinNGLxWkBOwuvP4xtodPJLmNnRJEBIKuVmRXdIwHExiryb5ZHpO///9FLlJsqbSzYj///TdrWSYhMH4AAVR9RAqGDHAJEWJECHMxPMyiNAM0OGaKm8wBU41gqgBHBWWCtbIEqEqSY846wyszIJhg7U23g2ZppOPRAk7f2vZ+proiKvMv9fc3DX//6n7UsnnPUUGu+uXaz//+32ZYdetJmoBce0RpP/7YMQCg0y4gzBuaQXhlhBmDbwlnIVKBqamGT1QbFHptoFG+THfMnUsiIYa7GB3pxKZA6NOIMCSS/Eh4YeYkXmgZ+3jZSxV/2u8x0MRgkpDbG23eNso07uOYcbAuHDZJ//03R/a3Zo26/nX///7mlwlpGJaoGAFggjIRs/efN+wzspo+I9MoRDKzkyKkARqb+qAZjNIaQoqA0YJJp8iCSPEuHhAwcOwFDKQNhxJd2qOZbcbuE35eWzp1pj+Xo6itEwfzt1//a70MbycWetw/a1v///ztaoWQlSTYyoFX+0MRAsLjs5cmTWrIMRBMzOOxheMLVQN7hH+dYQmfrgpImCHSao8eP/7UMQUgQ2Mhy5ubSXhmI9mHc0ZLFAMDh0WBWIF1y3CVzJWeMFZ5IalfSD4Id1swtOUOmgRKC1+9uBMpb5Gf/Ht/d6BR8Ck+29DWI5S9QZ0////0v1zYWMwArD2iKKgQUGwZ0akQZtUcBnSMDkCMCqvM7BI+s02zo2v1rBoEphzQsMB1NwVhGNoDlmK+uPOo1fr0n1pQFpGkSkJtI8hZ49Lf+w3CZMFOOVf/l6PbvzJChftfZ///v2j0jllLB7KBU+kDJAQHAowJ8TcJiPoIzX/+2DECIENkHcsbm2D4YQPZh3NGSyx4x9sMmkjVNQ089NIjgQknAwJmxGGNJjaC18xoSAoElwoMOhNVfjQ2VBcIx6S6LH9mbnEs7B3L0nLHHXKdl259sWb9eiquO+Mui976H3MnrGN///6rdYhe5bhaAFUfAMtQYXBhq6cGoACKqkmeIqTDByIMboIeGJjJpuzZm5ptAZCqMgOpgYNQEMRZMoI2KVvo1ilkeVSiVJZmIKYAnlyjPw9PxLZRhM1yRzP/9mRiutwGLv//////+x0iWoBT+0MVAhgoUnJVSEYc1OdDSxVMGE5rhjKNmVTIc98ZwqdKSRjCgWYUQ3QMnF7J9BOoEz/+1DEGYENXHUubmjJYbiPZjW9GSxl3GoM4eHc9K7ZIuAt1rxA4rdR8qIJUrm6RUwN/+9Ay4VQ4xxUghgo2t3QhulH///3KZGHmDASGQAAAqj6iAAGMSIT9oEpUDvEgkSTPigw6DOWYDjHMjUmWJnikiXwGITEMREBHkgkKHgbE1TqYX5U16K0kbmugx4MC4xJLCi5OPsiUTUS9xI7onE0P/TTUiXsi1i30GbTCyFMU///6qc+h425BxoZAD+sDBohMJgs4rkjUpWMfj80eVTM//tgxAqADpB3LHXMACH2kOY3OYAAQGM6K013EjeqUATKMcj4xEbQ5QiRkC4sEIQVXCrBpwhM1NMNjjXkHpJXsSXcQi8vgC3S2Mv7SdvV983hncz/vaL+WgTYHP76PZU51q1FXDLqLlkE+7//9D91FKSpEgGAAAAAACxNP9/AAAAAEDGNnNlNIwJnzeBPMLNcMUZqAPmmhkYfipsQxHHJObOExjYCpUGYRgY3FhkMNAIHmGSdCCRPVtQgoWAxaABw6nqNrzrVXBezHFKBcbJ8VfSPsGvhBGVq3JImutWB2Li5m+lsusWf//otH/////////dVgACqPqIIguFhOaylxscmmkhe//tgxAkBTgh5MP3HgCGTD2YNzBlkSGA0UEzOiONECYx8agSCzDQfMUgMwsKQ4NmDAGgwoKAMi1AMYzR1h0I00Hx/SvJ6Kqbc8kG7fuJ73peG8cKz41l9arfD//SndBph2FLnsFpKm/dVu//9mmT/a8Mg2wE4QYSBU3qfTUikNClUw8ejOgRMNK4YghidKgETGUwyGePkQOMdUi6reiuuIRje5brA5bJo/CrFPcInGVMn6aTt9mHeb3XzhM8Bppu/+yhK3telj1l2sqpwC9Wj///2aqH50E1KgACaPaIIAsMgI4ElzULXGTsZKWRkAehY+mAoKDG4ZW5kNA/A0iibIQgggxFk//tQxBaBDVB5Lu5lKWG6D2XNzSUkMLh6+im15NJr8Hwa9d+UYfezJ6OZ6LsxOoJLNT2/ov0b1mf+tWWZVsWyQ7I3eNTG2M///VVmLHhkyKGwodAV/tkHAMQkA0/SjMDaNUA8x8uDIpbMXQk0UZR1jijgB/TeBApEFgxIDCpMmJTbhF7mUSFIWXvcCIYmVNmycqUZy4JS3erUEyEdjt12JvONPaG/61UZPfTQjSOKpJNRUMgctSr///hlbDEUElAKkwFh9RFlDIzHaSIViLT4x//7YMQHgQ0sgTBuZSkhu49l6cyZZGdDSpXMqDE0C+DFRyHATxBFQDJuJkBQoVMBAy9YgsZnj7LOflvAYGonLw3En3udt5m3OKCScalshGqsIiFA3qx//TSlYnz1ymrFhqRrqV2////61FyFb4TYgzAAAqPaGOhcw0IzUkmMprIxAUjSpYOAmMyA1jYq5NRnUMGRnEaAfo8UgOIheFEzADSpTqRvVVpVaH4VpfiVxivwiHFEfUqLlb9z5sSUehUyDFmCghg6W/9RxC1P/gC+3WUJxWEnC7f//+11kwtVpBUBTi0Mt2YYExwsvmlFCaKTpjESHDzSZBYxtItm2jcZUFIKXh4uHv/7UMQTAwxkdy5uZYrhnw9mTrbwBPSHQmoiZZhOEjiv5y5ZG23YE+oxcfPqJXn2r0eprTs9fbOIKi7l6WUzE2R/qt/8h6r0VfWYZt////Z3h46CsPsIkAIyY76bOtaDjyM2QZOrRzYSk07EN7JzRxgyJFFBgystCgWOjQiCxYQCFkuNhCj8TiKL2hsKLvMOkufmFjMeFqHfzyRYe9V3pVvqt8v//q/WqnxZpefNVGnB1Fv///32HHtfKAAAAAUi3u/8AAAAAAADDjKNUJkwxQD/+2DECwAOTHkzucyAAdAPJnc5kADakPMrpA1kQDAJXABSNJhww2VzjMDB4tMKCAwCCTOxGMFjUxUQTH4WCxTPTqFgUHdOG5zmZlFqDNMv9rTcpU5T6xNS1zpTnFZRAcXk8vc2MSGOwvOFSRw3WbSGJKAAAAEoqHp/wAAAAAAAYbOZkl9mK5SbbfZjChmLHOYqLpjQ4mJRmYKWBkEamIyGYLHhgQLGcBACjYZUEJjoeqBoWHuKlePJGeUnQ5sUCFBYxM1Y3ZM30khqIqWRmFwy2ktgCWP+5L+QX2JUkZgrsNOI/i179QAAAAAG3a7/JAAAAAADFQBzQ0UDEJUjQhYzG6WjHWb/+3DED4AR4IcrudyAAhQRJfc5gACSGrhGIxlsRxmoL5l4PBkqlhhSPBiGARj0LZgmEwgK0CjQNwJdG+TGDriLbj0DNlhBGYu9oZovJ3KnLcuwvZmapmwNll7AW4u9PqDNtGFjPEweHXEaS/7gtOZU6V38P//ttlj3///////////////oAAAAAQUC0v90AAAAAAM/zQ3QaTFZBNUocxvXzHqlN5js3qMTsk3NtiA2sGDHwKMkgoyoFTMwvColFmOHIYn6ydQIv8dkDyEu423JCIMMyqos+UtcmI7lBbSEemqsqgdp8tXWwx23ZiUTjjwsWp2+fyD5LGJBj//87ho/////////////6wAAAAAFI5fvtgAAAAADDnZNWdEyEazHyWMEMgw0ATFDbNsRQ7EmjrCbN+CcyyHz//tgxBeAETiVL7nMAAIjkmX3OZAAQIsNIkIBPEWGpoULGVgWWkSRK/qdj/H5RZa6uAIAX3lCXqgUdnXyfSkUtkjT5IwdhmVVJtp8bdiVPe+zpMlgFz4S38clE1z//5Bn//93X///////////////qAAAAADSWM713AAAAAAM4Zg7LMzONWNEMsBEcz7FDkQUMjHc3tUDyJ4OGAAykEjaZYMzCcxoUgxJGXSOYPDRvVltCN5WAwgTZBCgZfpiKGjvRJTZfEbTqW2u6JQxKpmafmCGfU7W5224M680Zk8KxizXnWkExV5//89///z3//////////9av/9CAAAAAASzk/2AAAAA//tgxAYADlR7M7nMAAHYjiWPuYAEAAMLrE1QsgvTzPkLMSHc1wgjbReM/qMzoNRqeG/p2ZdG5k8UmBAOUIkzwHTIYlV0FwoxgELzCVXtRvWFftPtZz/GVSYax4VA8bsuW2jgSyBZZL4KgCLPRI460J+4bgSlh5dL108a0AX/IGIASYpA5uCQHCxeY6M50FNHBCEakUBjY/mXjIZ4YRhcqmOggZlEKD5l8iBBQCC8QSEgAAhROKRN2Gswy3Ogzileil9PFK9NYuS3fcLHa1vGnr91jhRFwIT/VRriw2Lt06q27ontpb2f//+Uulwm2Lof/6oGcD8aIlU5N5GTWlY3tDNVkDkD//tQxAmDC/x9Nm3oxaGej2YNvRi8ARWNNsFWYFhkWISgEVsGkCBaW/L+FwIaUWS9ldJJoyRGJxd456fQZjK+s+q1b5RRoOkWbCJV3//sMJoQfgG3FkEGRTV//+uvbZlBZ9YLg+ohAAA4sOEhzbas3wFPQ6Ac8NpRMWlMJiOTUMU2DrB1xRmQxpKRggRhAaExg0eAgZ4r8ug2deCitTzhiqQgIq9e9rBdmoMzlKjJNAyLRH//X3ijtIUKx72OZu7////TXmFLGDSI+gFh9RE3DP/7YMQDAA3UezB1vAAh+Q8ltzmQAE1o1/qNc6AWSn5Rxu5+aFLmVS5jAWdkhgqMUtCMow0zMrHVthBOnsUSGWtPdWTP88cYlcxOXuXqbK3l2er3f/617HtNa3+8ct/VlNLw8DX/uZY9cw4UXsFw/rGsZ4x3//7aeh8ku1RYuAAAAAAQktbwAAAAAAAZxY5kzAGLGebmfJmNnnjRAbOaBxkhHg38EWw5WaDWpfNBhMx8BjSgHASINVggBAc28SI1L8GigM8Hjr6Y5Fy0kH0oFBL1z0FtYeCWMOjFl6E9k11sxJ/Fie/j+Q+4sFOr7OIHhl2u////////////0wAAAAAZk7f+AP/7YMQEgBBweT253JBB0Y8mNzmAAAAAAAADIIqzQmOhQNCZFjBYeDR4azJc8DDggDFUbw4kwFE4gDYy/HoyhDEFBYCQAMfRBMOAiMkANeSsbEWqLgCIIWKVMBoEb4+g+npAS7IYbPFnbf53YYZXBjZFMp2HpiH+wy8WUizfBoNiHId////////////////+gAAAAABURb3gAAAAAAAwhGDsAQMxhA0NXDBxxMH0M5OlzAarMwmU3cejhacMJGU0GSDNwaMgDgwkDTGI1BQ/MslgzZgrSgMQCKsUvcgDPIjKyix6Cw7butPqRWUPBKEen5StUUf2BWvx7koYJPuZJW7S/dS+AP/7cMQAgBAQeS25zIACC47ldzmQAAAAAAbMa+oAAAAAAAM6zU7TQTOljEDaMQHA8+mjgJTMoBQ4+1jBNFOgp4068jFoZDkcaUL5lAfAk7mHhecSh0GExgS6Yo5VFIjQUKyoZDDgkLkr49Bz/NDj8akkQanQODdgW41F1ovDHWuMvi0n6+LBoCkEFf///////////37wAAAAAGQ4/qAAAAAAADGSiOrcUzN/jgndNbvw61hDJZEMIMc62ADoJePVuc1YhQoXjD4xB4gNPkMyUETMouBBpKWY2JoDHLSJWmMSmo0ginXrACFEQf1ld2ibFF16u/D0elzKn8UEZy+zsv8sXvGIY5OQ1trv////////////////8fUAAAAAAAABFYO/gAAAAAAAwAXzftpM2083XtTJXJNMVcz/+2DEEIAQTHMt+cyAAgqOZXc7kADEDDTpcNKps5chjYp9McgIxSTkRDeROBzgMjBox8QwwdS81YzrRQFg9IOJeOgUGT0fxFldMfX42VszsMEEIK1Vbmvxpr/Xccl2cuqluZf7B0wz////////////6f/+qn/9IAAAAAFKkt+AAAAAAABh4CBnWsRgkVBmI6Zks+xljRJiiogc4JpQSIYkZgcihhQiBiKChgCEgKUUwRAYxpLUxWEgRjDAAVOHUDFuB2aZYQoiWrM0OXAslDVq7rO2/zXk6X1+yrxnH07F2vd/y7tL/+puux3///////////9f/6lf/+oAAAAABGvW/gAAAAD/+2DEBgAO+HUvucwAAhAPJfc7gAAAA0jCgeYBEEzkoEMjvMlhZtM5A6lnKB4ZiHhloUmSxaYdF5hwMmRggjoaNMplkGmZwtJOAaCYuHwQ2Lk4kFIaI39Yc1aFS1ynIUcVPhSLdathg5TQMf/FL7v/uxUAn////////////////6gCAAAAAI3NfhgA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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","module.exports = require(\"../../../../../../../../../scratch-vm/node_modules/arraybuffer-loader/lib/to-array-buffer.js\")(\"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\")","'use strict'\n\nmodule.exports = function (base64Data) {\n var isBrowser = typeof window !== 'undefined' && typeof window.atob === 'function'\n var binary = isBrowser ? window.atob(base64Data) : Buffer.from(base64Data, 'base64').toString('binary')\n var bytes = new Uint8Array(binary.length)\n\n for (var i = 0; i < binary.length; ++i) {\n bytes[i] = binary.charCodeAt(i)\n }\n\n return bytes.buffer\n}\n","module.exports = function() {\n return new Worker(__webpack_public_path__ + \"extension-worker.js\");\n};","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","/*!\n * Paper.js v0.11.8 - The Swiss Army Knife of Vector Graphics Scripting.\n * http://paperjs.org/\n *\n * Copyright (c) 2011 - 2016, Juerg Lehni & Jonathan Puckey\n * http://scratchdisk.com/ & http://jonathanpuckey.com/\n *\n * Distributed under the MIT license. See LICENSE file for details.\n *\n * All rights reserved.\n *\n * Date: Mon Jul 29 11:21:04 2019 -0400\n *\n ***\n *\n * Straps.js - Class inheritance library with support for bean-style accessors\n *\n * Copyright (c) 2006 - 2016 Juerg Lehni\n * http://scratchdisk.com/\n *\n * Distributed under the MIT license.\n *\n ***\n *\n * Acorn.js\n * http://marijnhaverbeke.nl/acorn/\n *\n * Acorn is a tiny, fast JavaScript parser written in JavaScript,\n * created by Marijn Haverbeke and released under an MIT license.\n *\n */\n\nvar paper = function(self, undefined) {\n\nself = self || require('./node/self.js');\nvar window = self.window ? self.window : self,\n\tdocument = self.document;\n\nvar Base = new function() {\n\tvar hidden = /^(statics|enumerable|beans|preserve)$/,\n\t\tarray = [],\n\t\tslice = array.slice,\n\t\tcreate = Object.create,\n\t\tdescribe = Object.getOwnPropertyDescriptor,\n\t\tdefine = Object.defineProperty,\n\n\t\tforEach = array.forEach || function(iter, bind) {\n\t\t\tfor (var i = 0, l = this.length; i < l; i++) {\n\t\t\t\titer.call(bind, this[i], i, this);\n\t\t\t}\n\t\t},\n\n\t\tforIn = function(iter, bind) {\n\t\t\tfor (var i in this) {\n\t\t\t\tif (this.hasOwnProperty(i))\n\t\t\t\t\titer.call(bind, this[i], i, this);\n\t\t\t}\n\t\t},\n\n\t\tset = Object.assign || function(dst) {\n\t\t\tfor (var i = 1, l = arguments.length; i < l; i++) {\n\t\t\t\tvar src = arguments[i];\n\t\t\t\tfor (var key in src) {\n\t\t\t\t\tif (src.hasOwnProperty(key))\n\t\t\t\t\t\tdst[key] = src[key];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn dst;\n\t\t},\n\n\t\teach = function(obj, iter, bind) {\n\t\t\tif (obj) {\n\t\t\t\tvar desc = describe(obj, 'length');\n\t\t\t\t(desc && typeof desc.value === 'number' ? forEach : forIn)\n\t\t\t\t\t.call(obj, iter, bind = bind || obj);\n\t\t\t}\n\t\t\treturn bind;\n\t\t};\n\n\tfunction inject(dest, src, enumerable, beans, preserve) {\n\t\tvar beansNames = {};\n\n\t\tfunction field(name, val) {\n\t\t\tval = val || (val = describe(src, name))\n\t\t\t\t\t&& (val.get ? val : val.value);\n\t\t\tif (typeof val === 'string' && val[0] === '#')\n\t\t\t\tval = dest[val.substring(1)] || val;\n\t\t\tvar isFunc = typeof val === 'function',\n\t\t\t\tres = val,\n\t\t\t\tprev = preserve || isFunc && !val.base\n\t\t\t\t\t\t? (val && val.get ? name in dest : dest[name])\n\t\t\t\t\t\t: null,\n\t\t\t\tbean;\n\t\t\tif (!preserve || !prev) {\n\t\t\t\tif (isFunc && prev)\n\t\t\t\t\tval.base = prev;\n\t\t\t\tif (isFunc && beans !== false\n\t\t\t\t\t\t&& (bean = name.match(/^([gs]et|is)(([A-Z])(.*))$/)))\n\t\t\t\t\tbeansNames[bean[3].toLowerCase() + bean[4]] = bean[2];\n\t\t\t\tif (!res || isFunc || !res.get || typeof res.get !== 'function'\n\t\t\t\t\t\t|| !Base.isPlainObject(res)) {\n\t\t\t\t\tres = { value: res, writable: true };\n\t\t\t\t}\n\t\t\t\tif ((describe(dest, name)\n\t\t\t\t\t\t|| { configurable: true }).configurable) {\n\t\t\t\t\tres.configurable = true;\n\t\t\t\t\tres.enumerable = enumerable != null ? enumerable : !bean;\n\t\t\t\t}\n\t\t\t\tdefine(dest, name, res);\n\t\t\t}\n\t\t}\n\t\tif (src) {\n\t\t\tfor (var name in src) {\n\t\t\t\tif (src.hasOwnProperty(name) && !hidden.test(name))\n\t\t\t\t\tfield(name);\n\t\t\t}\n\t\t\tfor (var name in beansNames) {\n\t\t\t\tvar part = beansNames[name],\n\t\t\t\t\tset = dest['set' + part],\n\t\t\t\t\tget = dest['get' + part] || set && dest['is' + part];\n\t\t\t\tif (get && (beans === true || get.length === 0))\n\t\t\t\t\tfield(name, { get: get, set: set });\n\t\t\t}\n\t\t}\n\t\treturn dest;\n\t}\n\n\tfunction Base() {\n\t\tfor (var i = 0, l = arguments.length; i < l; i++) {\n\t\t\tvar src = arguments[i];\n\t\t\tif (src)\n\t\t\t\tset(this, src);\n\t\t}\n\t\treturn this;\n\t}\n\n\treturn inject(Base, {\n\t\tinject: function(src) {\n\t\t\tif (src) {\n\t\t\t\tvar statics = src.statics === true ? src : src.statics,\n\t\t\t\t\tbeans = src.beans,\n\t\t\t\t\tpreserve = src.preserve;\n\t\t\t\tif (statics !== src)\n\t\t\t\t\tinject(this.prototype, src, src.enumerable, beans, preserve);\n\t\t\t\tinject(this, statics, null, beans, preserve);\n\t\t\t}\n\t\t\tfor (var i = 1, l = arguments.length; i < l; i++)\n\t\t\t\tthis.inject(arguments[i]);\n\t\t\treturn this;\n\t\t},\n\n\t\textend: function() {\n\t\t\tvar base = this,\n\t\t\t\tctor,\n\t\t\t\tproto;\n\t\t\tfor (var i = 0, obj, l = arguments.length;\n\t\t\t\t\ti < l && !(ctor && proto); i++) {\n\t\t\t\tobj = arguments[i];\n\t\t\t\tctor = ctor || obj.initialize;\n\t\t\t\tproto = proto || obj.prototype;\n\t\t\t}\n\t\t\tctor = ctor || function() {\n\t\t\t\tbase.apply(this, arguments);\n\t\t\t};\n\t\t\tproto = ctor.prototype = proto || create(this.prototype);\n\t\t\tdefine(proto, 'constructor',\n\t\t\t\t\t{ value: ctor, writable: true, configurable: true });\n\t\t\tinject(ctor, this);\n\t\t\tif (arguments.length)\n\t\t\t\tthis.inject.apply(ctor, arguments);\n\t\t\tctor.base = base;\n\t\t\treturn ctor;\n\t\t}\n\t}).inject({\n\t\tenumerable: false,\n\n\t\tinitialize: Base,\n\n\t\tset: Base,\n\n\t\tinject: function() {\n\t\t\tfor (var i = 0, l = arguments.length; i < l; i++) {\n\t\t\t\tvar src = arguments[i];\n\t\t\t\tif (src) {\n\t\t\t\t\tinject(this, src, src.enumerable, src.beans, src.preserve);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\textend: function() {\n\t\t\tvar res = create(this);\n\t\t\treturn res.inject.apply(res, arguments);\n\t\t},\n\n\t\teach: function(iter, bind) {\n\t\t\treturn each(this, iter, bind);\n\t\t},\n\n\t\tclone: function() {\n\t\t\treturn new this.constructor(this);\n\t\t},\n\n\t\tstatics: {\n\t\t\tset: set,\n\t\t\teach: each,\n\t\t\tcreate: create,\n\t\t\tdefine: define,\n\t\t\tdescribe: describe,\n\n\t\t\tclone: function(obj) {\n\t\t\t\treturn set(new obj.constructor(), obj);\n\t\t\t},\n\n\t\t\tisPlainObject: function(obj) {\n\t\t\t\tvar ctor = obj != null && obj.constructor;\n\t\t\t\treturn ctor && (ctor === Object || ctor === Base\n\t\t\t\t\t\t|| ctor.name === 'Object');\n\t\t\t},\n\n\t\t\tpick: function(a, b) {\n\t\t\t\treturn a !== undefined ? a : b;\n\t\t\t},\n\n\t\t\tslice: function(list, begin, end) {\n\t\t\t\treturn slice.call(list, begin, end);\n\t\t\t}\n\t\t}\n\t});\n};\n\nif (typeof module !== 'undefined')\n\tmodule.exports = Base;\n\nBase.inject({\n\tenumerable: false,\n\n\ttoString: function() {\n\t\treturn this._id != null\n\t\t\t? (this._class || 'Object') + (this._name\n\t\t\t\t? \" '\" + this._name + \"'\"\n\t\t\t\t: ' @' + this._id)\n\t\t\t: '{ ' + Base.each(this, function(value, key) {\n\t\t\t\tif (!/^_/.test(key)) {\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\tthis.push(key + ': ' + (type === 'number'\n\t\t\t\t\t\t\t? Formatter.instance.number(value)\n\t\t\t\t\t\t\t: type === 'string' ? \"'\" + value + \"'\" : value));\n\t\t\t\t}\n\t\t\t}, []).join(', ') + ' }';\n\t},\n\n\tgetClassName: function() {\n\t\treturn this._class || '';\n\t},\n\n\timportJSON: function(json) {\n\t\treturn Base.importJSON(json, this);\n\t},\n\n\texportJSON: function(options) {\n\t\treturn Base.exportJSON(this, options);\n\t},\n\n\ttoJSON: function() {\n\t\treturn Base.serialize(this);\n\t},\n\n\tset: function(props, exclude) {\n\t\tif (props)\n\t\t\tBase.filter(this, props, exclude, this._prioritize);\n\t\treturn this;\n\t}\n}, {\n\nbeans: false,\nstatics: {\n\texports: {},\n\n\textend: function extend() {\n\t\tvar res = extend.base.apply(this, arguments),\n\t\t\tname = res.prototype._class;\n\t\tif (name && !Base.exports[name])\n\t\t\tBase.exports[name] = res;\n\t\treturn res;\n\t},\n\n\tequals: function(obj1, obj2) {\n\t\tif (obj1 === obj2)\n\t\t\treturn true;\n\t\tif (obj1 && obj1.equals)\n\t\t\treturn obj1.equals(obj2);\n\t\tif (obj2 && obj2.equals)\n\t\t\treturn obj2.equals(obj1);\n\t\tif (obj1 && obj2\n\t\t\t\t&& typeof obj1 === 'object' && typeof obj2 === 'object') {\n\t\t\tif (Array.isArray(obj1) && Array.isArray(obj2)) {\n\t\t\t\tvar length = obj1.length;\n\t\t\t\tif (length !== obj2.length)\n\t\t\t\t\treturn false;\n\t\t\t\twhile (length--) {\n\t\t\t\t\tif (!Base.equals(obj1[length], obj2[length]))\n\t\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar keys = Object.keys(obj1),\n\t\t\t\t\tlength = keys.length;\n\t\t\t\tif (length !== Object.keys(obj2).length)\n\t\t\t\t\treturn false;\n\t\t\t\twhile (length--) {\n\t\t\t\t\tvar key = keys[length];\n\t\t\t\t\tif (!(obj2.hasOwnProperty(key)\n\t\t\t\t\t\t\t&& Base.equals(obj1[key], obj2[key])))\n\t\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\n\tread: function(list, start, options, amount) {\n\t\tif (this === Base) {\n\t\t\tvar value = this.peek(list, start);\n\t\t\tlist.__index++;\n\t\t\treturn value;\n\t\t}\n\t\tvar proto = this.prototype,\n\t\t\treadIndex = proto._readIndex,\n\t\t\tbegin = start || readIndex && list.__index || 0,\n\t\t\tlength = list.length,\n\t\t\tobj = list[begin];\n\t\tamount = amount || length - begin;\n\t\tif (obj instanceof this\n\t\t\t|| options && options.readNull && obj == null && amount <= 1) {\n\t\t\tif (readIndex)\n\t\t\t\tlist.__index = begin + 1;\n\t\t\treturn obj && options && options.clone ? obj.clone() : obj;\n\t\t}\n\t\tobj = Base.create(proto);\n\t\tif (readIndex)\n\t\t\tobj.__read = true;\n\t\tobj = obj.initialize.apply(obj, begin > 0 || begin + amount < length\n\t\t\t\t? Base.slice(list, begin, begin + amount)\n\t\t\t\t: list) || obj;\n\t\tif (readIndex) {\n\t\t\tlist.__index = begin + obj.__read;\n\t\t\tvar filtered = obj.__filtered;\n\t\t\tif (filtered) {\n\t\t\t\tlist.__filtered = filtered;\n\t\t\t\tobj.__filtered = undefined;\n\t\t\t}\n\t\t\tobj.__read = undefined;\n\t\t}\n\t\treturn obj;\n\t},\n\n\tpeek: function(list, start) {\n\t\treturn list[list.__index = start || list.__index || 0];\n\t},\n\n\tremain: function(list) {\n\t\treturn list.length - (list.__index || 0);\n\t},\n\n\treadList: function(list, start, options, amount) {\n\t\tvar res = [],\n\t\t\tentry,\n\t\t\tbegin = start || 0,\n\t\t\tend = amount ? begin + amount : list.length;\n\t\tfor (var i = begin; i < end; i++) {\n\t\t\tres.push(Array.isArray(entry = list[i])\n\t\t\t\t\t? this.read(entry, 0, options)\n\t\t\t\t\t: this.read(list, i, options, 1));\n\t\t}\n\t\treturn res;\n\t},\n\n\treadNamed: function(list, name, start, options, amount) {\n\t\tvar value = this.getNamed(list, name),\n\t\t\thasObject = value !== undefined;\n\t\tif (hasObject) {\n\t\t\tvar filtered = list.__filtered;\n\t\t\tif (!filtered) {\n\t\t\t\tfiltered = list.__filtered = Base.create(list[0]);\n\t\t\t\tfiltered.__unfiltered = list[0];\n\t\t\t}\n\t\t\tfiltered[name] = undefined;\n\t\t}\n\t\tvar l = hasObject ? [value] : list,\n\t\t\tres = this.read(l, start, options, amount);\n\t\treturn res;\n\t},\n\n\tgetNamed: function(list, name) {\n\t\tvar arg = list[0];\n\t\tif (list._hasObject === undefined)\n\t\t\tlist._hasObject = list.length === 1 && Base.isPlainObject(arg);\n\t\tif (list._hasObject)\n\t\t\treturn name ? arg[name] : list.__filtered || arg;\n\t},\n\n\thasNamed: function(list, name) {\n\t\treturn !!this.getNamed(list, name);\n\t},\n\n\tfilter: function(dest, source, exclude, prioritize) {\n\t\tvar processed;\n\n\t\tfunction handleKey(key) {\n\t\t\tif (!(exclude && key in exclude) &&\n\t\t\t\t!(processed && key in processed)) {\n\t\t\t\tvar value = source[key];\n\t\t\t\tif (value !== undefined)\n\t\t\t\t\tdest[key] = value;\n\t\t\t}\n\t\t}\n\n\t\tif (prioritize) {\n\t\t\tvar keys = {};\n\t\t\tfor (var i = 0, key, l = prioritize.length; i < l; i++) {\n\t\t\t\tif ((key = prioritize[i]) in source) {\n\t\t\t\t\thandleKey(key);\n\t\t\t\t\tkeys[key] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tprocessed = keys;\n\t\t}\n\n\t\tObject.keys(source.__unfiltered || source).forEach(handleKey);\n\t\treturn dest;\n\t},\n\n\tisPlainValue: function(obj, asString) {\n\t\treturn Base.isPlainObject(obj) || Array.isArray(obj)\n\t\t\t\t|| asString && typeof obj === 'string';\n\t},\n\n\tserialize: function(obj, options, compact, dictionary) {\n\t\toptions = options || {};\n\n\t\tvar isRoot = !dictionary,\n\t\t\tres;\n\t\tif (isRoot) {\n\t\t\toptions.formatter = new Formatter(options.precision);\n\t\t\tdictionary = {\n\t\t\t\tlength: 0,\n\t\t\t\tdefinitions: {},\n\t\t\t\treferences: {},\n\t\t\t\tadd: function(item, create) {\n\t\t\t\t\tvar id = '#' + item._id,\n\t\t\t\t\t\tref = this.references[id];\n\t\t\t\t\tif (!ref) {\n\t\t\t\t\t\tthis.length++;\n\t\t\t\t\t\tvar res = create.call(item),\n\t\t\t\t\t\t\tname = item._class;\n\t\t\t\t\t\tif (name && res[0] !== name)\n\t\t\t\t\t\t\tres.unshift(name);\n\t\t\t\t\t\tthis.definitions[id] = res;\n\t\t\t\t\t\tref = this.references[id] = [id];\n\t\t\t\t\t}\n\t\t\t\t\treturn ref;\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\tif (obj && obj._serialize) {\n\t\t\tres = obj._serialize(options, dictionary);\n\t\t\tvar name = obj._class;\n\t\t\tif (name && !obj._compactSerialize && (isRoot || !compact)\n\t\t\t\t\t&& res[0] !== name) {\n\t\t\t\tres.unshift(name);\n\t\t\t}\n\t\t} else if (Array.isArray(obj)) {\n\t\t\tres = [];\n\t\t\tfor (var i = 0, l = obj.length; i < l; i++)\n\t\t\t\tres[i] = Base.serialize(obj[i], options, compact, dictionary);\n\t\t} else if (Base.isPlainObject(obj)) {\n\t\t\tres = {};\n\t\t\tvar keys = Object.keys(obj);\n\t\t\tfor (var i = 0, l = keys.length; i < l; i++) {\n\t\t\t\tvar key = keys[i];\n\t\t\t\tres[key] = Base.serialize(obj[key], options, compact,\n\t\t\t\t\t\tdictionary);\n\t\t\t}\n\t\t} else if (typeof obj === 'number') {\n\t\t\tres = options.formatter.number(obj, options.precision);\n\t\t} else {\n\t\t\tres = obj;\n\t\t}\n\t\treturn isRoot && dictionary.length > 0\n\t\t\t\t? [['dictionary', dictionary.definitions], res]\n\t\t\t\t: res;\n\t},\n\n\tdeserialize: function(json, create, _data, _setDictionary, _isRoot) {\n\t\tvar res = json,\n\t\t\tisFirst = !_data,\n\t\t\thasDictionary = isFirst && json && json.length\n\t\t\t\t&& json[0][0] === 'dictionary';\n\t\t_data = _data || {};\n\t\tif (Array.isArray(json)) {\n\t\t\tvar type = json[0],\n\t\t\t\tisDictionary = type === 'dictionary';\n\t\t\tif (json.length == 1 && /^#/.test(type)) {\n\t\t\t\treturn _data.dictionary[type];\n\t\t\t}\n\t\t\ttype = Base.exports[type];\n\t\t\tres = [];\n\t\t\tfor (var i = type ? 1 : 0, l = json.length; i < l; i++) {\n\t\t\t\tres.push(Base.deserialize(json[i], create, _data,\n\t\t\t\t\t\tisDictionary, hasDictionary));\n\t\t\t}\n\t\t\tif (type) {\n\t\t\t\tvar args = res;\n\t\t\t\tif (create) {\n\t\t\t\t\tres = create(type, args, isFirst || _isRoot);\n\t\t\t\t} else {\n\t\t\t\t\tres = new type(args);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (Base.isPlainObject(json)) {\n\t\t\tres = {};\n\t\t\tif (_setDictionary)\n\t\t\t\t_data.dictionary = res;\n\t\t\tfor (var key in json)\n\t\t\t\tres[key] = Base.deserialize(json[key], create, _data);\n\t\t}\n\t\treturn hasDictionary ? res[1] : res;\n\t},\n\n\texportJSON: function(obj, options) {\n\t\tvar json = Base.serialize(obj, options);\n\t\treturn options && options.asString == false\n\t\t\t\t? json\n\t\t\t\t: JSON.stringify(json);\n\t},\n\n\timportJSON: function(json, target) {\n\t\treturn Base.deserialize(\n\t\t\t\ttypeof json === 'string' ? JSON.parse(json) : json,\n\t\t\t\tfunction(ctor, args, isRoot) {\n\t\t\t\t\tvar useTarget = isRoot && target\n\t\t\t\t\t\t\t&& target.constructor === ctor,\n\t\t\t\t\t\tobj = useTarget ? target\n\t\t\t\t\t\t\t: Base.create(ctor.prototype);\n\t\t\t\t\tif (args.length === 1 && obj instanceof Item\n\t\t\t\t\t\t\t&& (useTarget || !(obj instanceof Layer))) {\n\t\t\t\t\t\tvar arg = args[0];\n\t\t\t\t\t\tif (Base.isPlainObject(arg))\n\t\t\t\t\t\t\targ.insert = false;\n\t\t\t\t\t}\n\t\t\t\t\t(useTarget ? obj.set : ctor).apply(obj, args);\n\t\t\t\t\tif (useTarget)\n\t\t\t\t\t\ttarget = null;\n\t\t\t\t\treturn obj;\n\t\t\t\t});\n\t},\n\n\tpush: function(list, items) {\n\t\tvar itemsLength = items.length;\n\t\tif (itemsLength < 4096) {\n\t\t\tlist.push.apply(list, items);\n\t\t} else {\n\t\t\tvar startLength = list.length;\n\t\t\tlist.length += itemsLength;\n\t\t\tfor (var i = 0; i < itemsLength; i++) {\n\t\t\t\tlist[startLength + i] = items[i];\n\t\t\t}\n\t\t}\n\t\treturn list;\n\t},\n\n\tsplice: function(list, items, index, remove) {\n\t\tvar amount = items && items.length,\n\t\t\tappend = index === undefined;\n\t\tindex = append ? list.length : index;\n\t\tif (index > list.length)\n\t\t\tindex = list.length;\n\t\tfor (var i = 0; i < amount; i++)\n\t\t\titems[i]._index = index + i;\n\t\tif (append) {\n\t\t\tBase.push(list, items);\n\t\t\treturn [];\n\t\t} else {\n\t\t\tvar args = [index, remove];\n\t\t\tif (items)\n\t\t\t\tBase.push(args, items);\n\t\t\tvar removed = list.splice.apply(list, args);\n\t\t\tfor (var i = 0, l = removed.length; i < l; i++)\n\t\t\t\tremoved[i]._index = undefined;\n\t\t\tfor (var i = index + amount, l = list.length; i < l; i++)\n\t\t\t\tlist[i]._index = i;\n\t\t\treturn removed;\n\t\t}\n\t},\n\n\tcapitalize: function(str) {\n\t\treturn str.replace(/\\b[a-z]/g, function(match) {\n\t\t\treturn match.toUpperCase();\n\t\t});\n\t},\n\n\tcamelize: function(str) {\n\t\treturn str.replace(/-(.)/g, function(match, chr) {\n\t\t\treturn chr.toUpperCase();\n\t\t});\n\t},\n\n\thyphenate: function(str) {\n\t\treturn str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n\t}\n}});\n\nvar Emitter = {\n\ton: function(type, func) {\n\t\tif (typeof type !== 'string') {\n\t\t\tBase.each(type, function(value, key) {\n\t\t\t\tthis.on(key, value);\n\t\t\t}, this);\n\t\t} else {\n\t\t\tvar types = this._eventTypes,\n\t\t\t\tentry = types && types[type],\n\t\t\t\thandlers = this._callbacks = this._callbacks || {};\n\t\t\thandlers = handlers[type] = handlers[type] || [];\n\t\t\tif (handlers.indexOf(func) === -1) {\n\t\t\t\thandlers.push(func);\n\t\t\t\tif (entry && entry.install && handlers.length === 1)\n\t\t\t\t\tentry.install.call(this, type);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t},\n\n\toff: function(type, func) {\n\t\tif (typeof type !== 'string') {\n\t\t\tBase.each(type, function(value, key) {\n\t\t\t\tthis.off(key, value);\n\t\t\t}, this);\n\t\t\treturn;\n\t\t}\n\t\tvar types = this._eventTypes,\n\t\t\tentry = types && types[type],\n\t\t\thandlers = this._callbacks && this._callbacks[type],\n\t\t\tindex;\n\t\tif (handlers) {\n\t\t\tif (!func || (index = handlers.indexOf(func)) !== -1\n\t\t\t\t\t&& handlers.length === 1) {\n\t\t\t\tif (entry && entry.uninstall)\n\t\t\t\t\tentry.uninstall.call(this, type);\n\t\t\t\tdelete this._callbacks[type];\n\t\t\t} else if (index !== -1) {\n\t\t\t\thandlers.splice(index, 1);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t},\n\n\tonce: function(type, func) {\n\t\treturn this.on(type, function() {\n\t\t\tfunc.apply(this, arguments);\n\t\t\tthis.off(type, func);\n\t\t});\n\t},\n\n\temit: function(type, event) {\n\t\tvar handlers = this._callbacks && this._callbacks[type];\n\t\tif (!handlers)\n\t\t\treturn false;\n\t\tvar args = Base.slice(arguments, 1),\n\t\t\tsetTarget = event && event.target && !event.currentTarget;\n\t\thandlers = handlers.slice();\n\t\tif (setTarget)\n\t\t\tevent.currentTarget = this;\n\t\tfor (var i = 0, l = handlers.length; i < l; i++) {\n\t\t\tif (handlers[i].apply(this, args) == false) {\n\t\t\t\tif (event && event.stop)\n\t\t\t\t\tevent.stop();\n\t\t\t\tbreak;\n\t\t }\n\t\t}\n\t\tif (setTarget)\n\t\t\tdelete event.currentTarget;\n\t\treturn true;\n\t},\n\n\tresponds: function(type) {\n\t\treturn !!(this._callbacks && this._callbacks[type]);\n\t},\n\n\tattach: '#on',\n\tdetach: '#off',\n\tfire: '#emit',\n\n\t_installEvents: function(install) {\n\t\tvar types = this._eventTypes,\n\t\t\thandlers = this._callbacks,\n\t\t\tkey = install ? 'install' : 'uninstall';\n\t\tif (types) {\n\t\t\tfor (var type in handlers) {\n\t\t\t\tif (handlers[type].length > 0) {\n\t\t\t\t\tvar entry = types[type],\n\t\t\t\t\t\tfunc = entry && entry[key];\n\t\t\t\t\tif (func)\n\t\t\t\t\t\tfunc.call(this, type);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tstatics: {\n\t\tinject: function inject(src) {\n\t\t\tvar events = src._events;\n\t\t\tif (events) {\n\t\t\t\tvar types = {};\n\t\t\t\tBase.each(events, function(entry, key) {\n\t\t\t\t\tvar isString = typeof entry === 'string',\n\t\t\t\t\t\tname = isString ? entry : key,\n\t\t\t\t\t\tpart = Base.capitalize(name),\n\t\t\t\t\t\ttype = name.substring(2).toLowerCase();\n\t\t\t\t\ttypes[type] = isString ? {} : entry;\n\t\t\t\t\tname = '_' + name;\n\t\t\t\t\tsrc['get' + part] = function() {\n\t\t\t\t\t\treturn this[name];\n\t\t\t\t\t};\n\t\t\t\t\tsrc['set' + part] = function(func) {\n\t\t\t\t\t\tvar prev = this[name];\n\t\t\t\t\t\tif (prev)\n\t\t\t\t\t\t\tthis.off(type, prev);\n\t\t\t\t\t\tif (func)\n\t\t\t\t\t\t\tthis.on(type, func);\n\t\t\t\t\t\tthis[name] = func;\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t\tsrc._eventTypes = types;\n\t\t\t}\n\t\t\treturn inject.base.apply(this, arguments);\n\t\t}\n\t}\n};\n\nvar PaperScope = Base.extend({\n\t_class: 'PaperScope',\n\n\tinitialize: function PaperScope() {\n\t\tpaper = this;\n\t\tthis.settings = new Base({\n\t\t\tapplyMatrix: true,\n\t\t\tinsertItems: true,\n\t\t\thandleSize: 4,\n\t\t\thitTolerance: 0\n\t\t});\n\t\tthis.project = null;\n\t\tthis.projects = [];\n\t\tthis.tools = [];\n\t\tthis._id = PaperScope._id++;\n\t\tPaperScope._scopes[this._id] = this;\n\t\tvar proto = PaperScope.prototype;\n\t\tif (!this.support) {\n\t\t\tvar ctx = CanvasProvider.getContext(1, 1) || {};\n\t\t\tproto.support = {\n\t\t\t\tnativeDash: 'setLineDash' in ctx || 'mozDash' in ctx,\n\t\t\t\tnativeBlendModes: BlendMode.nativeModes\n\t\t\t};\n\t\t\tCanvasProvider.release(ctx);\n\t\t}\n\t\tif (!this.agent) {\n\t\t\tvar user = self.navigator.userAgent.toLowerCase(),\n\t\t\t\tos = (/(darwin|win|mac|linux|freebsd|sunos)/.exec(user)||[])[0],\n\t\t\t\tplatform = os === 'darwin' ? 'mac' : os,\n\t\t\t\tagent = proto.agent = proto.browser = { platform: platform };\n\t\t\tif (platform)\n\t\t\t\tagent[platform] = true;\n\t\t\tuser.replace(\n\t\t\t\t/(opera|chrome|safari|webkit|firefox|msie|trident|atom|node)\\/?\\s*([.\\d]+)(?:.*version\\/([.\\d]+))?(?:.*rv\\:v?([.\\d]+))?/g,\n\t\t\t\tfunction(match, n, v1, v2, rv) {\n\t\t\t\t\tif (!agent.chrome) {\n\t\t\t\t\t\tvar v = n === 'opera' ? v2 :\n\t\t\t\t\t\t\t\t/^(node|trident)$/.test(n) ? rv : v1;\n\t\t\t\t\t\tagent.version = v;\n\t\t\t\t\t\tagent.versionNumber = parseFloat(v);\n\t\t\t\t\t\tn = n === 'trident' ? 'msie' : n;\n\t\t\t\t\t\tagent.name = n;\n\t\t\t\t\t\tagent[n] = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\tif (agent.chrome)\n\t\t\t\tdelete agent.webkit;\n\t\t\tif (agent.atom)\n\t\t\t\tdelete agent.chrome;\n\t\t}\n\t},\n\n\tversion: \"0.11.8\",\n\n\tgetView: function() {\n\t\tvar project = this.project;\n\t\treturn project && project._view;\n\t},\n\n\tgetPaper: function() {\n\t\treturn this;\n\t},\n\n\texecute: function(code, options) {\n\t\t\tvar exports = paper.PaperScript.execute(code, this, options);\n\t\t\tView.updateFocus();\n\t\t\treturn exports;\n\t},\n\n\tinstall: function(scope) {\n\t\tvar that = this;\n\t\tBase.each(['project', 'view', 'tool'], function(key) {\n\t\t\tBase.define(scope, key, {\n\t\t\t\tconfigurable: true,\n\t\t\t\tget: function() {\n\t\t\t\t\treturn that[key];\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tfor (var key in this)\n\t\t\tif (!/^_/.test(key) && this[key])\n\t\t\t\tscope[key] = this[key];\n\t},\n\n\tsetup: function(element) {\n\t\tpaper = this;\n\t\tthis.project = new Project(element);\n\t\treturn this;\n\t},\n\n\tcreateCanvas: function(width, height) {\n\t\treturn CanvasProvider.getCanvas(width, height);\n\t},\n\n\tactivate: function() {\n\t\tpaper = this;\n\t},\n\n\tclear: function() {\n\t\tvar projects = this.projects,\n\t\t\ttools = this.tools;\n\t\tfor (var i = projects.length - 1; i >= 0; i--)\n\t\t\tprojects[i].remove();\n\t\tfor (var i = tools.length - 1; i >= 0; i--)\n\t\t\ttools[i].remove();\n\t},\n\n\tremove: function() {\n\t\tthis.clear();\n\t\tdelete PaperScope._scopes[this._id];\n\t},\n\n\tstatics: new function() {\n\t\tfunction handleAttribute(name) {\n\t\t\tname += 'Attribute';\n\t\t\treturn function(el, attr) {\n\t\t\t\treturn el[name](attr) || el[name]('data-paper-' + attr);\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\t_scopes: {},\n\t\t\t_id: 0,\n\n\t\t\tget: function(id) {\n\t\t\t\treturn this._scopes[id] || null;\n\t\t\t},\n\n\t\t\tgetAttribute: handleAttribute('get'),\n\t\t\thasAttribute: handleAttribute('has')\n\t\t};\n\t}\n});\n\nvar PaperScopeItem = Base.extend(Emitter, {\n\n\tinitialize: function(activate) {\n\t\tthis._scope = paper;\n\t\tthis._index = this._scope[this._list].push(this) - 1;\n\t\tif (activate || !this._scope[this._reference])\n\t\t\tthis.activate();\n\t},\n\n\tactivate: function() {\n\t\tif (!this._scope)\n\t\t\treturn false;\n\t\tvar prev = this._scope[this._reference];\n\t\tif (prev && prev !== this)\n\t\t\tprev.emit('deactivate');\n\t\tthis._scope[this._reference] = this;\n\t\tthis.emit('activate', prev);\n\t\treturn true;\n\t},\n\n\tisActive: function() {\n\t\treturn this._scope[this._reference] === this;\n\t},\n\n\tremove: function() {\n\t\tif (this._index == null)\n\t\t\treturn false;\n\t\tBase.splice(this._scope[this._list], null, this._index, 1);\n\t\tif (this._scope[this._reference] == this)\n\t\t\tthis._scope[this._reference] = null;\n\t\tthis._scope = null;\n\t\treturn true;\n\t},\n\n\tgetView: function() {\n\t\treturn this._scope.getView();\n\t}\n});\n\nvar Formatter = Base.extend({\n\tinitialize: function(precision) {\n\t\tthis.precision = Base.pick(precision, 5);\n\t\tthis.multiplier = Math.pow(10, this.precision);\n\t},\n\n\tnumber: function(val) {\n\t\treturn this.precision < 16\n\t\t\t\t? Math.round(val * this.multiplier) / this.multiplier : val;\n\t},\n\n\tpair: function(val1, val2, separator) {\n\t\treturn this.number(val1) + (separator || ',') + this.number(val2);\n\t},\n\n\tpoint: function(val, separator) {\n\t\treturn this.number(val.x) + (separator || ',') + this.number(val.y);\n\t},\n\n\tsize: function(val, separator) {\n\t\treturn this.number(val.width) + (separator || ',')\n\t\t\t\t+ this.number(val.height);\n\t},\n\n\trectangle: function(val, separator) {\n\t\treturn this.point(val, separator) + (separator || ',')\n\t\t\t\t+ this.size(val, separator);\n\t}\n});\n\nFormatter.instance = new Formatter();\n\nvar Numerical = new function() {\n\n\tvar abscissas = [\n\t\t[ 0.5773502691896257645091488],\n\t\t[0,0.7745966692414833770358531],\n\t\t[ 0.3399810435848562648026658,0.8611363115940525752239465],\n\t\t[0,0.5384693101056830910363144,0.9061798459386639927976269],\n\t\t[ 0.2386191860831969086305017,0.6612093864662645136613996,0.9324695142031520278123016],\n\t\t[0,0.4058451513773971669066064,0.7415311855993944398638648,0.9491079123427585245261897],\n\t\t[ 0.1834346424956498049394761,0.5255324099163289858177390,0.7966664774136267395915539,0.9602898564975362316835609],\n\t\t[0,0.3242534234038089290385380,0.6133714327005903973087020,0.8360311073266357942994298,0.9681602395076260898355762],\n\t\t[ 0.1488743389816312108848260,0.4333953941292471907992659,0.6794095682990244062343274,0.8650633666889845107320967,0.9739065285171717200779640],\n\t\t[0,0.2695431559523449723315320,0.5190961292068118159257257,0.7301520055740493240934163,0.8870625997680952990751578,0.9782286581460569928039380],\n\t\t[ 0.1252334085114689154724414,0.3678314989981801937526915,0.5873179542866174472967024,0.7699026741943046870368938,0.9041172563704748566784659,0.9815606342467192506905491],\n\t\t[0,0.2304583159551347940655281,0.4484927510364468528779129,0.6423493394403402206439846,0.8015780907333099127942065,0.9175983992229779652065478,0.9841830547185881494728294],\n\t\t[ 0.1080549487073436620662447,0.3191123689278897604356718,0.5152486363581540919652907,0.6872929048116854701480198,0.8272013150697649931897947,0.9284348836635735173363911,0.9862838086968123388415973],\n\t\t[0,0.2011940939974345223006283,0.3941513470775633698972074,0.5709721726085388475372267,0.7244177313601700474161861,0.8482065834104272162006483,0.9372733924007059043077589,0.9879925180204854284895657],\n\t\t[ 0.0950125098376374401853193,0.2816035507792589132304605,0.4580167776572273863424194,0.6178762444026437484466718,0.7554044083550030338951012,0.8656312023878317438804679,0.9445750230732325760779884,0.9894009349916499325961542]\n\t];\n\n\tvar weights = [\n\t\t[1],\n\t\t[0.8888888888888888888888889,0.5555555555555555555555556],\n\t\t[0.6521451548625461426269361,0.3478548451374538573730639],\n\t\t[0.5688888888888888888888889,0.4786286704993664680412915,0.2369268850561890875142640],\n\t\t[0.4679139345726910473898703,0.3607615730481386075698335,0.1713244923791703450402961],\n\t\t[0.4179591836734693877551020,0.3818300505051189449503698,0.2797053914892766679014678,0.1294849661688696932706114],\n\t\t[0.3626837833783619829651504,0.3137066458778872873379622,0.2223810344533744705443560,0.1012285362903762591525314],\n\t\t[0.3302393550012597631645251,0.3123470770400028400686304,0.2606106964029354623187429,0.1806481606948574040584720,0.0812743883615744119718922],\n\t\t[0.2955242247147528701738930,0.2692667193099963550912269,0.2190863625159820439955349,0.1494513491505805931457763,0.0666713443086881375935688],\n\t\t[0.2729250867779006307144835,0.2628045445102466621806889,0.2331937645919904799185237,0.1862902109277342514260976,0.1255803694649046246346943,0.0556685671161736664827537],\n\t\t[0.2491470458134027850005624,0.2334925365383548087608499,0.2031674267230659217490645,0.1600783285433462263346525,0.1069393259953184309602547,0.0471753363865118271946160],\n\t\t[0.2325515532308739101945895,0.2262831802628972384120902,0.2078160475368885023125232,0.1781459807619457382800467,0.1388735102197872384636018,0.0921214998377284479144218,0.0404840047653158795200216],\n\t\t[0.2152638534631577901958764,0.2051984637212956039659241,0.1855383974779378137417166,0.1572031671581935345696019,0.1215185706879031846894148,0.0801580871597602098056333,0.0351194603317518630318329],\n\t\t[0.2025782419255612728806202,0.1984314853271115764561183,0.1861610000155622110268006,0.1662692058169939335532009,0.1395706779261543144478048,0.1071592204671719350118695,0.0703660474881081247092674,0.0307532419961172683546284],\n\t\t[0.1894506104550684962853967,0.1826034150449235888667637,0.1691565193950025381893121,0.1495959888165767320815017,0.1246289712555338720524763,0.0951585116824927848099251,0.0622535239386478928628438,0.0271524594117540948517806]\n\t];\n\n\tvar abs = Math.abs,\n\t\tsqrt = Math.sqrt,\n\t\tpow = Math.pow,\n\t\tlog2 = Math.log2 || function(x) {\n\t\t\treturn Math.log(x) * Math.LOG2E;\n\t\t},\n\t\tEPSILON = 1e-12,\n\t\tMACHINE_EPSILON = 1.12e-16;\n\n\tfunction clamp(value, min, max) {\n\t\treturn value < min ? min : value > max ? max : value;\n\t}\n\n\tfunction getDiscriminant(a, b, c) {\n\t\tfunction split(v) {\n\t\t\tvar x = v * 134217729,\n\t\t\t\ty = v - x,\n\t\t\t\thi = y + x,\n\t\t\t\tlo = v - hi;\n\t\t\treturn [hi, lo];\n\t\t}\n\n\t\tvar D = b * b - a * c,\n\t\t\tE = b * b + a * c;\n\t\tif (abs(D) * 3 < E) {\n\t\t\tvar ad = split(a),\n\t\t\t\tbd = split(b),\n\t\t\t\tcd = split(c),\n\t\t\t\tp = b * b,\n\t\t\t\tdp = (bd[0] * bd[0] - p + 2 * bd[0] * bd[1]) + bd[1] * bd[1],\n\t\t\t\tq = a * c,\n\t\t\t\tdq = (ad[0] * cd[0] - q + ad[0] * cd[1] + ad[1] * cd[0])\n\t\t\t\t\t\t+ ad[1] * cd[1];\n\t\t\tD = (p - q) + (dp - dq);\n\t\t}\n\t\treturn D;\n\t}\n\n\tfunction getNormalizationFactor() {\n\t\tvar norm = Math.max.apply(Math, arguments);\n\t\treturn norm && (norm < 1e-8 || norm > 1e8)\n\t\t\t\t? pow(2, -Math.round(log2(norm)))\n\t\t\t\t: 0;\n\t}\n\n\treturn {\n\t\tEPSILON: EPSILON,\n\t\tMACHINE_EPSILON: MACHINE_EPSILON,\n\t\tCURVETIME_EPSILON: 1e-8,\n\t\tGEOMETRIC_EPSILON: 1e-7,\n\t\tTRIGONOMETRIC_EPSILON: 1e-8,\n\t\tKAPPA: 4 * (sqrt(2) - 1) / 3,\n\n\t\tisZero: function(val) {\n\t\t\treturn val >= -EPSILON && val <= EPSILON;\n\t\t},\n\n\t\tclamp: clamp,\n\n\t\tintegrate: function(f, a, b, n) {\n\t\t\tvar x = abscissas[n - 2],\n\t\t\t\tw = weights[n - 2],\n\t\t\t\tA = (b - a) * 0.5,\n\t\t\t\tB = A + a,\n\t\t\t\ti = 0,\n\t\t\t\tm = (n + 1) >> 1,\n\t\t\t\tsum = n & 1 ? w[i++] * f(B) : 0;\n\t\t\twhile (i < m) {\n\t\t\t\tvar Ax = A * x[i];\n\t\t\t\tsum += w[i++] * (f(B + Ax) + f(B - Ax));\n\t\t\t}\n\t\t\treturn A * sum;\n\t\t},\n\n\t\tfindRoot: function(f, df, x, a, b, n, tolerance) {\n\t\t\tfor (var i = 0; i < n; i++) {\n\t\t\t\tvar fx = f(x),\n\t\t\t\t\tdx = fx / df(x),\n\t\t\t\t\tnx = x - dx;\n\t\t\t\tif (abs(dx) < tolerance) {\n\t\t\t\t\tx = nx;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (fx > 0) {\n\t\t\t\t\tb = x;\n\t\t\t\t\tx = nx <= a ? (a + b) * 0.5 : nx;\n\t\t\t\t} else {\n\t\t\t\t\ta = x;\n\t\t\t\t\tx = nx >= b ? (a + b) * 0.5 : nx;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn clamp(x, a, b);\n\t\t},\n\n\t\tsolveQuadratic: function(a, b, c, roots, min, max) {\n\t\t\tvar x1, x2 = Infinity;\n\t\t\tif (abs(a) < EPSILON) {\n\t\t\t\tif (abs(b) < EPSILON)\n\t\t\t\t\treturn abs(c) < EPSILON ? -1 : 0;\n\t\t\t\tx1 = -c / b;\n\t\t\t} else {\n\t\t\t\tb *= -0.5;\n\t\t\t\tvar D = getDiscriminant(a, b, c);\n\t\t\t\tif (D && abs(D) < MACHINE_EPSILON) {\n\t\t\t\t\tvar f = getNormalizationFactor(abs(a), abs(b), abs(c));\n\t\t\t\t\tif (f) {\n\t\t\t\t\t\ta *= f;\n\t\t\t\t\t\tb *= f;\n\t\t\t\t\t\tc *= f;\n\t\t\t\t\t\tD = getDiscriminant(a, b, c);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (D >= -MACHINE_EPSILON) {\n\t\t\t\t\tvar Q = D < 0 ? 0 : sqrt(D),\n\t\t\t\t\t\tR = b + (b < 0 ? -Q : Q);\n\t\t\t\t\tif (R === 0) {\n\t\t\t\t\t\tx1 = c / a;\n\t\t\t\t\t\tx2 = -x1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tx1 = R / a;\n\t\t\t\t\t\tx2 = c / R;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar count = 0,\n\t\t\t\tboundless = min == null,\n\t\t\t\tminB = min - EPSILON,\n\t\t\t\tmaxB = max + EPSILON;\n\t\t\tif (isFinite(x1) && (boundless || x1 > minB && x1 < maxB))\n\t\t\t\troots[count++] = boundless ? x1 : clamp(x1, min, max);\n\t\t\tif (x2 !== x1\n\t\t\t\t\t&& isFinite(x2) && (boundless || x2 > minB && x2 < maxB))\n\t\t\t\troots[count++] = boundless ? x2 : clamp(x2, min, max);\n\t\t\treturn count;\n\t\t},\n\n\t\tsolveCubic: function(a, b, c, d, roots, min, max) {\n\t\t\tvar f = getNormalizationFactor(abs(a), abs(b), abs(c), abs(d)),\n\t\t\t\tx, b1, c2, qd, q;\n\t\t\tif (f) {\n\t\t\t\ta *= f;\n\t\t\t\tb *= f;\n\t\t\t\tc *= f;\n\t\t\t\td *= f;\n\t\t\t}\n\n\t\t\tfunction evaluate(x0) {\n\t\t\t\tx = x0;\n\t\t\t\tvar tmp = a * x;\n\t\t\t\tb1 = tmp + b;\n\t\t\t\tc2 = b1 * x + c;\n\t\t\t\tqd = (tmp + b1) * x + c2;\n\t\t\t\tq = c2 * x + d;\n\t\t\t}\n\n\t\t\tif (abs(a) < EPSILON) {\n\t\t\t\ta = b;\n\t\t\t\tb1 = c;\n\t\t\t\tc2 = d;\n\t\t\t\tx = Infinity;\n\t\t\t} else if (abs(d) < EPSILON) {\n\t\t\t\tb1 = b;\n\t\t\t\tc2 = c;\n\t\t\t\tx = 0;\n\t\t\t} else {\n\t\t\t\tevaluate(-(b / a) / 3);\n\t\t\t\tvar t = q / a,\n\t\t\t\t\tr = pow(abs(t), 1/3),\n\t\t\t\t\ts = t < 0 ? -1 : 1,\n\t\t\t\t\ttd = -qd / a,\n\t\t\t\t\trd = td > 0 ? 1.324717957244746 * Math.max(r, sqrt(td)) : r,\n\t\t\t\t\tx0 = x - s * rd;\n\t\t\t\tif (x0 !== x) {\n\t\t\t\t\tdo {\n\t\t\t\t\t\tevaluate(x0);\n\t\t\t\t\t\tx0 = qd === 0 ? x : x - q / qd / (1 + MACHINE_EPSILON);\n\t\t\t\t\t} while (s * x0 > s * x);\n\t\t\t\t\tif (abs(a) * x * x > abs(d / x)) {\n\t\t\t\t\t\tc2 = -d / x;\n\t\t\t\t\t\tb1 = (c2 - c) / x;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar count = Numerical.solveQuadratic(a, b1, c2, roots, min, max),\n\t\t\t\tboundless = min == null;\n\t\t\tif (isFinite(x) && (count === 0\n\t\t\t\t\t|| count > 0 && x !== roots[0] && x !== roots[1])\n\t\t\t\t\t&& (boundless || x > min - EPSILON && x < max + EPSILON))\n\t\t\t\troots[count++] = boundless ? x : clamp(x, min, max);\n\t\t\treturn count;\n\t\t}\n\t};\n};\n\nvar UID = {\n\t_id: 1,\n\t_pools: {},\n\n\tget: function(name) {\n\t\tif (name) {\n\t\t\tvar pool = this._pools[name];\n\t\t\tif (!pool)\n\t\t\t\tpool = this._pools[name] = { _id: 1 };\n\t\t\treturn pool._id++;\n\t\t} else {\n\t\t\treturn this._id++;\n\t\t}\n\t}\n};\n\nvar Point = Base.extend({\n\t_class: 'Point',\n\t_readIndex: true,\n\n\tinitialize: function Point(arg0, arg1) {\n\t\tvar type = typeof arg0,\n\t\t\treading = this.__read,\n\t\t\tread = 0;\n\t\tif (type === 'number') {\n\t\t\tvar hasY = typeof arg1 === 'number';\n\t\t\tthis._set(arg0, hasY ? arg1 : arg0);\n\t\t\tif (reading)\n\t\t\t\tread = hasY ? 2 : 1;\n\t\t} else if (type === 'undefined' || arg0 === null) {\n\t\t\tthis._set(0, 0);\n\t\t\tif (reading)\n\t\t\t\tread = arg0 === null ? 1 : 0;\n\t\t} else {\n\t\t\tvar obj = type === 'string' ? arg0.split(/[\\s,]+/) || [] : arg0;\n\t\t\tread = 1;\n\t\t\tif (Array.isArray(obj)) {\n\t\t\t\tthis._set(+obj[0], +(obj.length > 1 ? obj[1] : obj[0]));\n\t\t\t} else if ('x' in obj) {\n\t\t\t\tthis._set(obj.x || 0, obj.y || 0);\n\t\t\t} else if ('width' in obj) {\n\t\t\t\tthis._set(obj.width || 0, obj.height || 0);\n\t\t\t} else if ('angle' in obj) {\n\t\t\t\tthis._set(obj.length || 0, 0);\n\t\t\t\tthis.setAngle(obj.angle || 0);\n\t\t\t} else {\n\t\t\t\tthis._set(0, 0);\n\t\t\t\tread = 0;\n\t\t\t}\n\t\t}\n\t\tif (reading)\n\t\t\tthis.__read = read;\n\t\treturn this;\n\t},\n\n\tset: '#initialize',\n\n\t_set: function(x, y) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\treturn this;\n\t},\n\n\tequals: function(point) {\n\t\treturn this === point || point\n\t\t\t\t&& (this.x === point.x && this.y === point.y\n\t\t\t\t\t|| Array.isArray(point)\n\t\t\t\t\t\t&& this.x === point[0] && this.y === point[1])\n\t\t\t\t|| false;\n\t},\n\n\tclone: function() {\n\t\treturn new Point(this.x, this.y);\n\t},\n\n\ttoString: function() {\n\t\tvar f = Formatter.instance;\n\t\treturn '{ x: ' + f.number(this.x) + ', y: ' + f.number(this.y) + ' }';\n\t},\n\n\t_serialize: function(options) {\n\t\tvar f = options.formatter;\n\t\treturn [f.number(this.x), f.number(this.y)];\n\t},\n\n\tgetLength: function() {\n\t\treturn Math.sqrt(this.x * this.x + this.y * this.y);\n\t},\n\n\tsetLength: function(length) {\n\t\tif (this.isZero()) {\n\t\t\tvar angle = this._angle || 0;\n\t\t\tthis._set(\n\t\t\t\tMath.cos(angle) * length,\n\t\t\t\tMath.sin(angle) * length\n\t\t\t);\n\t\t} else {\n\t\t\tvar scale = length / this.getLength();\n\t\t\tif (Numerical.isZero(scale))\n\t\t\t\tthis.getAngle();\n\t\t\tthis._set(\n\t\t\t\tthis.x * scale,\n\t\t\t\tthis.y * scale\n\t\t\t);\n\t\t}\n\t},\n\tgetAngle: function() {\n\t\treturn this.getAngleInRadians.apply(this, arguments) * 180 / Math.PI;\n\t},\n\n\tsetAngle: function(angle) {\n\t\tthis.setAngleInRadians.call(this, angle * Math.PI / 180);\n\t},\n\n\tgetAngleInDegrees: '#getAngle',\n\tsetAngleInDegrees: '#setAngle',\n\n\tgetAngleInRadians: function() {\n\t\tif (!arguments.length) {\n\t\t\treturn this.isZero()\n\t\t\t\t\t? this._angle || 0\n\t\t\t\t\t: this._angle = Math.atan2(this.y, this.x);\n\t\t} else {\n\t\t\tvar point = Point.read(arguments),\n\t\t\t\tdiv = this.getLength() * point.getLength();\n\t\t\tif (Numerical.isZero(div)) {\n\t\t\t\treturn NaN;\n\t\t\t} else {\n\t\t\t\tvar a = this.dot(point) / div;\n\t\t\t\treturn Math.acos(a < -1 ? -1 : a > 1 ? 1 : a);\n\t\t\t}\n\t\t}\n\t},\n\n\tsetAngleInRadians: function(angle) {\n\t\tthis._angle = angle;\n\t\tif (!this.isZero()) {\n\t\t\tvar length = this.getLength();\n\t\t\tthis._set(\n\t\t\t\tMath.cos(angle) * length,\n\t\t\t\tMath.sin(angle) * length\n\t\t\t);\n\t\t}\n\t},\n\n\tgetQuadrant: function() {\n\t\treturn this.x >= 0 ? this.y >= 0 ? 1 : 4 : this.y >= 0 ? 2 : 3;\n\t}\n}, {\n\tbeans: false,\n\n\tgetDirectedAngle: function() {\n\t\tvar point = Point.read(arguments);\n\t\treturn Math.atan2(this.cross(point), this.dot(point)) * 180 / Math.PI;\n\t},\n\n\tgetDistance: function() {\n\t\tvar point = Point.read(arguments),\n\t\t\tx = point.x - this.x,\n\t\t\ty = point.y - this.y,\n\t\t\td = x * x + y * y,\n\t\t\tsquared = Base.read(arguments);\n\t\treturn squared ? d : Math.sqrt(d);\n\t},\n\n\tnormalize: function(length) {\n\t\tif (length === undefined)\n\t\t\tlength = 1;\n\t\tvar current = this.getLength(),\n\t\t\tscale = current !== 0 ? length / current : 0,\n\t\t\tpoint = new Point(this.x * scale, this.y * scale);\n\t\tif (scale >= 0)\n\t\t\tpoint._angle = this._angle;\n\t\treturn point;\n\t},\n\n\trotate: function(angle, center) {\n\t\tif (angle === 0)\n\t\t\treturn this.clone();\n\t\tangle = angle * Math.PI / 180;\n\t\tvar point = center ? this.subtract(center) : this,\n\t\t\tsin = Math.sin(angle),\n\t\t\tcos = Math.cos(angle);\n\t\tpoint = new Point(\n\t\t\tpoint.x * cos - point.y * sin,\n\t\t\tpoint.x * sin + point.y * cos\n\t\t);\n\t\treturn center ? point.add(center) : point;\n\t},\n\n\ttransform: function(matrix) {\n\t\treturn matrix ? matrix._transformPoint(this) : this;\n\t},\n\n\tadd: function() {\n\t\tvar point = Point.read(arguments);\n\t\treturn new Point(this.x + point.x, this.y + point.y);\n\t},\n\n\tsubtract: function() {\n\t\tvar point = Point.read(arguments);\n\t\treturn new Point(this.x - point.x, this.y - point.y);\n\t},\n\n\tmultiply: function() {\n\t\tvar point = Point.read(arguments);\n\t\treturn new Point(this.x * point.x, this.y * point.y);\n\t},\n\n\tdivide: function() {\n\t\tvar point = Point.read(arguments);\n\t\treturn new Point(this.x / point.x, this.y / point.y);\n\t},\n\n\tmodulo: function() {\n\t\tvar point = Point.read(arguments);\n\t\treturn new Point(this.x % point.x, this.y % point.y);\n\t},\n\n\tnegate: function() {\n\t\treturn new Point(-this.x, -this.y);\n\t},\n\n\tisInside: function() {\n\t\treturn Rectangle.read(arguments).contains(this);\n\t},\n\n\tisClose: function() {\n\t\tvar point = Point.read(arguments),\n\t\t\ttolerance = Base.read(arguments);\n\t\treturn this.getDistance(point) <= tolerance;\n\t},\n\n\tisCollinear: function() {\n\t\tvar point = Point.read(arguments);\n\t\treturn Point.isCollinear(this.x, this.y, point.x, point.y);\n\t},\n\n\tisColinear: '#isCollinear',\n\n\tisOrthogonal: function() {\n\t\tvar point = Point.read(arguments);\n\t\treturn Point.isOrthogonal(this.x, this.y, point.x, point.y);\n\t},\n\n\tisZero: function() {\n\t\tvar isZero = Numerical.isZero;\n\t\treturn isZero(this.x) && isZero(this.y);\n\t},\n\n\tisNaN: function() {\n\t\treturn isNaN(this.x) || isNaN(this.y);\n\t},\n\n\tisInQuadrant: function(q) {\n\t\treturn this.x * (q > 1 && q < 4 ? -1 : 1) >= 0\n\t\t\t&& this.y * (q > 2 ? -1 : 1) >= 0;\n\t},\n\n\tdot: function() {\n\t\tvar point = Point.read(arguments);\n\t\treturn this.x * point.x + this.y * point.y;\n\t},\n\n\tcross: function() {\n\t\tvar point = Point.read(arguments);\n\t\treturn this.x * point.y - this.y * point.x;\n\t},\n\n\tproject: function() {\n\t\tvar point = Point.read(arguments),\n\t\t\tscale = point.isZero() ? 0 : this.dot(point) / point.dot(point);\n\t\treturn new Point(\n\t\t\tpoint.x * scale,\n\t\t\tpoint.y * scale\n\t\t);\n\t},\n\n\tstatics: {\n\t\tmin: function() {\n\t\t\tvar point1 = Point.read(arguments),\n\t\t\t\tpoint2 = Point.read(arguments);\n\t\t\treturn new Point(\n\t\t\t\tMath.min(point1.x, point2.x),\n\t\t\t\tMath.min(point1.y, point2.y)\n\t\t\t);\n\t\t},\n\n\t\tmax: function() {\n\t\t\tvar point1 = Point.read(arguments),\n\t\t\t\tpoint2 = Point.read(arguments);\n\t\t\treturn new Point(\n\t\t\t\tMath.max(point1.x, point2.x),\n\t\t\t\tMath.max(point1.y, point2.y)\n\t\t\t);\n\t\t},\n\n\t\trandom: function() {\n\t\t\treturn new Point(Math.random(), Math.random());\n\t\t},\n\n\t\tisCollinear: function(x1, y1, x2, y2) {\n\t\t\treturn Math.abs(x1 * y2 - y1 * x2)\n\t\t\t\t\t<= Math.sqrt((x1 * x1 + y1 * y1) * (x2 * x2 + y2 * y2))\n\t\t\t\t\t\t* 1e-8;\n\t\t},\n\n\t\tisOrthogonal: function(x1, y1, x2, y2) {\n\t\t\treturn Math.abs(x1 * x2 + y1 * y2)\n\t\t\t\t\t<= Math.sqrt((x1 * x1 + y1 * y1) * (x2 * x2 + y2 * y2))\n\t\t\t\t\t\t* 1e-8;\n\t\t}\n\t}\n}, Base.each(['round', 'ceil', 'floor', 'abs'], function(key) {\n\tvar op = Math[key];\n\tthis[key] = function() {\n\t\treturn new Point(op(this.x), op(this.y));\n\t};\n}, {}));\n\nvar LinkedPoint = Point.extend({\n\tinitialize: function Point(x, y, owner, setter) {\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._owner = owner;\n\t\tthis._setter = setter;\n\t},\n\n\t_set: function(x, y, _dontNotify) {\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tif (!_dontNotify)\n\t\t\tthis._owner[this._setter](this);\n\t\treturn this;\n\t},\n\n\tgetX: function() {\n\t\treturn this._x;\n\t},\n\n\tsetX: function(x) {\n\t\tthis._x = x;\n\t\tthis._owner[this._setter](this);\n\t},\n\n\tgetY: function() {\n\t\treturn this._y;\n\t},\n\n\tsetY: function(y) {\n\t\tthis._y = y;\n\t\tthis._owner[this._setter](this);\n\t},\n\n\tisSelected: function() {\n\t\treturn !!(this._owner._selection & this._getSelection());\n\t},\n\n\tsetSelected: function(selected) {\n\t\tthis._owner._changeSelection(this._getSelection(), selected);\n\t},\n\n\t_getSelection: function() {\n\t\treturn this._setter === 'setPosition' ? 4 : 0;\n\t}\n});\n\nvar Size = Base.extend({\n\t_class: 'Size',\n\t_readIndex: true,\n\n\tinitialize: function Size(arg0, arg1) {\n\t\tvar type = typeof arg0,\n\t\t\treading = this.__read,\n\t\t\tread = 0;\n\t\tif (type === 'number') {\n\t\t\tvar hasHeight = typeof arg1 === 'number';\n\t\t\tthis._set(arg0, hasHeight ? arg1 : arg0);\n\t\t\tif (reading)\n\t\t\t\tread = hasHeight ? 2 : 1;\n\t\t} else if (type === 'undefined' || arg0 === null) {\n\t\t\tthis._set(0, 0);\n\t\t\tif (reading)\n\t\t\t\tread = arg0 === null ? 1 : 0;\n\t\t} else {\n\t\t\tvar obj = type === 'string' ? arg0.split(/[\\s,]+/) || [] : arg0;\n\t\t\tread = 1;\n\t\t\tif (Array.isArray(obj)) {\n\t\t\t\tthis._set(+obj[0], +(obj.length > 1 ? obj[1] : obj[0]));\n\t\t\t} else if ('width' in obj) {\n\t\t\t\tthis._set(obj.width || 0, obj.height || 0);\n\t\t\t} else if ('x' in obj) {\n\t\t\t\tthis._set(obj.x || 0, obj.y || 0);\n\t\t\t} else {\n\t\t\t\tthis._set(0, 0);\n\t\t\t\tread = 0;\n\t\t\t}\n\t\t}\n\t\tif (reading)\n\t\t\tthis.__read = read;\n\t\treturn this;\n\t},\n\n\tset: '#initialize',\n\n\t_set: function(width, height) {\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\treturn this;\n\t},\n\n\tequals: function(size) {\n\t\treturn size === this || size && (this.width === size.width\n\t\t\t\t&& this.height === size.height\n\t\t\t\t|| Array.isArray(size) && this.width === size[0]\n\t\t\t\t\t&& this.height === size[1]) || false;\n\t},\n\n\tclone: function() {\n\t\treturn new Size(this.width, this.height);\n\t},\n\n\ttoString: function() {\n\t\tvar f = Formatter.instance;\n\t\treturn '{ width: ' + f.number(this.width)\n\t\t\t\t+ ', height: ' + f.number(this.height) + ' }';\n\t},\n\n\t_serialize: function(options) {\n\t\tvar f = options.formatter;\n\t\treturn [f.number(this.width),\n\t\t\t\tf.number(this.height)];\n\t},\n\n\tadd: function() {\n\t\tvar size = Size.read(arguments);\n\t\treturn new Size(this.width + size.width, this.height + size.height);\n\t},\n\n\tsubtract: function() {\n\t\tvar size = Size.read(arguments);\n\t\treturn new Size(this.width - size.width, this.height - size.height);\n\t},\n\n\tmultiply: function() {\n\t\tvar size = Size.read(arguments);\n\t\treturn new Size(this.width * size.width, this.height * size.height);\n\t},\n\n\tdivide: function() {\n\t\tvar size = Size.read(arguments);\n\t\treturn new Size(this.width / size.width, this.height / size.height);\n\t},\n\n\tmodulo: function() {\n\t\tvar size = Size.read(arguments);\n\t\treturn new Size(this.width % size.width, this.height % size.height);\n\t},\n\n\tnegate: function() {\n\t\treturn new Size(-this.width, -this.height);\n\t},\n\n\tisZero: function() {\n\t\tvar isZero = Numerical.isZero;\n\t\treturn isZero(this.width) && isZero(this.height);\n\t},\n\n\tisNaN: function() {\n\t\treturn isNaN(this.width) || isNaN(this.height);\n\t},\n\n\tstatics: {\n\t\tmin: function(size1, size2) {\n\t\t\treturn new Size(\n\t\t\t\tMath.min(size1.width, size2.width),\n\t\t\t\tMath.min(size1.height, size2.height));\n\t\t},\n\n\t\tmax: function(size1, size2) {\n\t\t\treturn new Size(\n\t\t\t\tMath.max(size1.width, size2.width),\n\t\t\t\tMath.max(size1.height, size2.height));\n\t\t},\n\n\t\trandom: function() {\n\t\t\treturn new Size(Math.random(), Math.random());\n\t\t}\n\t}\n}, Base.each(['round', 'ceil', 'floor', 'abs'], function(key) {\n\tvar op = Math[key];\n\tthis[key] = function() {\n\t\treturn new Size(op(this.width), op(this.height));\n\t};\n}, {}));\n\nvar LinkedSize = Size.extend({\n\tinitialize: function Size(width, height, owner, setter) {\n\t\tthis._width = width;\n\t\tthis._height = height;\n\t\tthis._owner = owner;\n\t\tthis._setter = setter;\n\t},\n\n\t_set: function(width, height, _dontNotify) {\n\t\tthis._width = width;\n\t\tthis._height = height;\n\t\tif (!_dontNotify)\n\t\t\tthis._owner[this._setter](this);\n\t\treturn this;\n\t},\n\n\tgetWidth: function() {\n\t\treturn this._width;\n\t},\n\n\tsetWidth: function(width) {\n\t\tthis._width = width;\n\t\tthis._owner[this._setter](this);\n\t},\n\n\tgetHeight: function() {\n\t\treturn this._height;\n\t},\n\n\tsetHeight: function(height) {\n\t\tthis._height = height;\n\t\tthis._owner[this._setter](this);\n\t}\n});\n\nvar Rectangle = Base.extend({\n\t_class: 'Rectangle',\n\t_readIndex: true,\n\tbeans: true,\n\n\tinitialize: function Rectangle(arg0, arg1, arg2, arg3) {\n\t\tvar type = typeof arg0,\n\t\t\tread;\n\t\tif (type === 'number') {\n\t\t\tthis._set(arg0, arg1, arg2, arg3);\n\t\t\tread = 4;\n\t\t} else if (type === 'undefined' || arg0 === null) {\n\t\t\tthis._set(0, 0, 0, 0);\n\t\t\tread = arg0 === null ? 1 : 0;\n\t\t} else if (arguments.length === 1) {\n\t\t\tif (Array.isArray(arg0)) {\n\t\t\t\tthis._set.apply(this, arg0);\n\t\t\t\tread = 1;\n\t\t\t} else if (arg0.x !== undefined || arg0.width !== undefined) {\n\t\t\t\tthis._set(arg0.x || 0, arg0.y || 0,\n\t\t\t\t\t\targ0.width || 0, arg0.height || 0);\n\t\t\t\tread = 1;\n\t\t\t} else if (arg0.from === undefined && arg0.to === undefined) {\n\t\t\t\tthis._set(0, 0, 0, 0);\n\t\t\t\tBase.filter(this, arg0);\n\t\t\t\tread = 1;\n\t\t\t}\n\t\t}\n\t\tif (read === undefined) {\n\t\t\tvar frm = Point.readNamed(arguments, 'from'),\n\t\t\t\tnext = Base.peek(arguments),\n\t\t\t\tx = frm.x,\n\t\t\t\ty = frm.y,\n\t\t\t\twidth,\n\t\t\t\theight;\n\t\t\tif (next && next.x !== undefined\n\t\t\t\t\t|| Base.hasNamed(arguments, 'to')) {\n\t\t\t\tvar to = Point.readNamed(arguments, 'to');\n\t\t\t\twidth = to.x - x;\n\t\t\t\theight = to.y - y;\n\t\t\t\tif (width < 0) {\n\t\t\t\t\tx = to.x;\n\t\t\t\t\twidth = -width;\n\t\t\t\t}\n\t\t\t\tif (height < 0) {\n\t\t\t\t\ty = to.y;\n\t\t\t\t\theight = -height;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar size = Size.read(arguments);\n\t\t\t\twidth = size.width;\n\t\t\t\theight = size.height;\n\t\t\t}\n\t\t\tthis._set(x, y, width, height);\n\t\t\tread = arguments.__index;\n\t\t\tvar filtered = arguments.__filtered;\n\t\t\tif (filtered)\n\t\t\t\tthis.__filtered = filtered;\n\t\t}\n\t\tif (this.__read)\n\t\t\tthis.__read = read;\n\t\treturn this;\n\t},\n\n\tset: '#initialize',\n\n\t_set: function(x, y, width, height) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\treturn this;\n\t},\n\n\tclone: function() {\n\t\treturn new Rectangle(this.x, this.y, this.width, this.height);\n\t},\n\n\tequals: function(rect) {\n\t\tvar rt = Base.isPlainValue(rect)\n\t\t\t\t? Rectangle.read(arguments)\n\t\t\t\t: rect;\n\t\treturn rt === this\n\t\t\t\t|| rt && this.x === rt.x && this.y === rt.y\n\t\t\t\t\t&& this.width === rt.width && this.height === rt.height\n\t\t\t\t|| false;\n\t},\n\n\ttoString: function() {\n\t\tvar f = Formatter.instance;\n\t\treturn '{ x: ' + f.number(this.x)\n\t\t\t\t+ ', y: ' + f.number(this.y)\n\t\t\t\t+ ', width: ' + f.number(this.width)\n\t\t\t\t+ ', height: ' + f.number(this.height)\n\t\t\t\t+ ' }';\n\t},\n\n\t_serialize: function(options) {\n\t\tvar f = options.formatter;\n\t\treturn [f.number(this.x),\n\t\t\t\tf.number(this.y),\n\t\t\t\tf.number(this.width),\n\t\t\t\tf.number(this.height)];\n\t},\n\n\tgetPoint: function(_dontLink) {\n\t\tvar ctor = _dontLink ? Point : LinkedPoint;\n\t\treturn new ctor(this.x, this.y, this, 'setPoint');\n\t},\n\n\tsetPoint: function() {\n\t\tvar point = Point.read(arguments);\n\t\tthis.x = point.x;\n\t\tthis.y = point.y;\n\t},\n\n\tgetSize: function(_dontLink) {\n\t\tvar ctor = _dontLink ? Size : LinkedSize;\n\t\treturn new ctor(this.width, this.height, this, 'setSize');\n\t},\n\n\t_fw: 1,\n\t_fh: 1,\n\n\tsetSize: function() {\n\t\tvar size = Size.read(arguments),\n\t\t\tsx = this._sx,\n\t\t\tsy = this._sy,\n\t\t\tw = size.width,\n\t\t\th = size.height;\n\t\tif (sx) {\n\t\t\tthis.x += (this.width - w) * sx;\n\t\t}\n\t\tif (sy) {\n\t\t\tthis.y += (this.height - h) * sy;\n\t\t}\n\t\tthis.width = w;\n\t\tthis.height = h;\n\t\tthis._fw = this._fh = 1;\n\t},\n\n\tgetLeft: function() {\n\t\treturn this.x;\n\t},\n\n\tsetLeft: function(left) {\n\t\tif (!this._fw) {\n\t\t\tvar amount = left - this.x;\n\t\t\tthis.width -= this._sx === 0.5 ? amount * 2 : amount;\n\t\t}\n\t\tthis.x = left;\n\t\tthis._sx = this._fw = 0;\n\t},\n\n\tgetTop: function() {\n\t\treturn this.y;\n\t},\n\n\tsetTop: function(top) {\n\t\tif (!this._fh) {\n\t\t\tvar amount = top - this.y;\n\t\t\tthis.height -= this._sy === 0.5 ? amount * 2 : amount;\n\t\t}\n\t\tthis.y = top;\n\t\tthis._sy = this._fh = 0;\n\t},\n\n\tgetRight: function() {\n\t\treturn this.x + this.width;\n\t},\n\n\tsetRight: function(right) {\n\t\tif (!this._fw) {\n\t\t\tvar amount = right - this.x;\n\t\t\tthis.width = this._sx === 0.5 ? amount * 2 : amount;\n\t\t}\n\t\tthis.x = right - this.width;\n\t\tthis._sx = 1;\n\t\tthis._fw = 0;\n\t},\n\n\tgetBottom: function() {\n\t\treturn this.y + this.height;\n\t},\n\n\tsetBottom: function(bottom) {\n\t\tif (!this._fh) {\n\t\t\tvar amount = bottom - this.y;\n\t\t\tthis.height = this._sy === 0.5 ? amount * 2 : amount;\n\t\t}\n\t\tthis.y = bottom - this.height;\n\t\tthis._sy = 1;\n\t\tthis._fh = 0;\n\t},\n\n\tgetCenterX: function() {\n\t\treturn this.x + this.width / 2;\n\t},\n\n\tsetCenterX: function(x) {\n\t\tif (this._fw || this._sx === 0.5) {\n\t\t\tthis.x = x - this.width / 2;\n\t\t} else {\n\t\t\tif (this._sx) {\n\t\t\t\tthis.x += (x - this.x) * 2 * this._sx;\n\t\t\t}\n\t\t\tthis.width = (x - this.x) * 2;\n\t\t}\n\t\tthis._sx = 0.5;\n\t\tthis._fw = 0;\n\t},\n\n\tgetCenterY: function() {\n\t\treturn this.y + this.height / 2;\n\t},\n\n\tsetCenterY: function(y) {\n\t\tif (this._fh || this._sy === 0.5) {\n\t\t\tthis.y = y - this.height / 2;\n\t\t} else {\n\t\t\tif (this._sy) {\n\t\t\t\tthis.y += (y - this.y) * 2 * this._sy;\n\t\t\t}\n\t\t\tthis.height = (y - this.y) * 2;\n\t\t}\n\t\tthis._sy = 0.5;\n\t\tthis._fh = 0;\n\t},\n\n\tgetCenter: function(_dontLink) {\n\t\tvar ctor = _dontLink ? Point : LinkedPoint;\n\t\treturn new ctor(this.getCenterX(), this.getCenterY(), this, 'setCenter');\n\t},\n\n\tsetCenter: function() {\n\t\tvar point = Point.read(arguments);\n\t\tthis.setCenterX(point.x);\n\t\tthis.setCenterY(point.y);\n\t\treturn this;\n\t},\n\n\tgetArea: function() {\n\t\treturn this.width * this.height;\n\t},\n\n\tisEmpty: function() {\n\t\treturn this.width === 0 || this.height === 0;\n\t},\n\n\tcontains: function(arg) {\n\t\treturn arg && arg.width !== undefined\n\t\t\t\t|| (Array.isArray(arg) ? arg : arguments).length === 4\n\t\t\t\t? this._containsRectangle(Rectangle.read(arguments))\n\t\t\t\t: this._containsPoint(Point.read(arguments));\n\t},\n\n\t_containsPoint: function(point) {\n\t\tvar x = point.x,\n\t\t\ty = point.y;\n\t\treturn x >= this.x && y >= this.y\n\t\t\t\t&& x <= this.x + this.width\n\t\t\t\t&& y <= this.y + this.height;\n\t},\n\n\t_containsRectangle: function(rect) {\n\t\tvar x = rect.x,\n\t\t\ty = rect.y;\n\t\treturn x >= this.x && y >= this.y\n\t\t\t\t&& x + rect.width <= this.x + this.width\n\t\t\t\t&& y + rect.height <= this.y + this.height;\n\t},\n\n\tintersects: function() {\n\t\tvar rect = Rectangle.read(arguments),\n\t\t\tepsilon = Base.read(arguments) || 0;\n\t\treturn rect.x + rect.width > this.x - epsilon\n\t\t\t\t&& rect.y + rect.height > this.y - epsilon\n\t\t\t\t&& rect.x < this.x + this.width + epsilon\n\t\t\t\t&& rect.y < this.y + this.height + epsilon;\n\t},\n\n\tintersect: function() {\n\t\tvar rect = Rectangle.read(arguments),\n\t\t\tx1 = Math.max(this.x, rect.x),\n\t\t\ty1 = Math.max(this.y, rect.y),\n\t\t\tx2 = Math.min(this.x + this.width, rect.x + rect.width),\n\t\t\ty2 = Math.min(this.y + this.height, rect.y + rect.height);\n\t\treturn new Rectangle(x1, y1, x2 - x1, y2 - y1);\n\t},\n\n\tunite: function() {\n\t\tvar rect = Rectangle.read(arguments),\n\t\t\tx1 = Math.min(this.x, rect.x),\n\t\t\ty1 = Math.min(this.y, rect.y),\n\t\t\tx2 = Math.max(this.x + this.width, rect.x + rect.width),\n\t\t\ty2 = Math.max(this.y + this.height, rect.y + rect.height);\n\t\treturn new Rectangle(x1, y1, x2 - x1, y2 - y1);\n\t},\n\n\tinclude: function() {\n\t\tvar point = Point.read(arguments);\n\t\tvar x1 = Math.min(this.x, point.x),\n\t\t\ty1 = Math.min(this.y, point.y),\n\t\t\tx2 = Math.max(this.x + this.width, point.x),\n\t\t\ty2 = Math.max(this.y + this.height, point.y);\n\t\treturn new Rectangle(x1, y1, x2 - x1, y2 - y1);\n\t},\n\n\texpand: function() {\n\t\tvar amount = Size.read(arguments),\n\t\t\thor = amount.width,\n\t\t\tver = amount.height;\n\t\treturn new Rectangle(this.x - hor / 2, this.y - ver / 2,\n\t\t\t\tthis.width + hor, this.height + ver);\n\t},\n\n\tscale: function(hor, ver) {\n\t\treturn this.expand(this.width * hor - this.width,\n\t\t\t\tthis.height * (ver === undefined ? hor : ver) - this.height);\n\t}\n}, Base.each([\n\t\t['Top', 'Left'], ['Top', 'Right'],\n\t\t['Bottom', 'Left'], ['Bottom', 'Right'],\n\t\t['Left', 'Center'], ['Top', 'Center'],\n\t\t['Right', 'Center'], ['Bottom', 'Center']\n\t],\n\tfunction(parts, index) {\n\t\tvar part = parts.join(''),\n\t\t\txFirst = /^[RL]/.test(part);\n\t\tif (index >= 4)\n\t\t\tparts[1] += xFirst ? 'Y' : 'X';\n\t\tvar x = parts[xFirst ? 0 : 1],\n\t\t\ty = parts[xFirst ? 1 : 0],\n\t\t\tgetX = 'get' + x,\n\t\t\tgetY = 'get' + y,\n\t\t\tsetX = 'set' + x,\n\t\t\tsetY = 'set' + y,\n\t\t\tget = 'get' + part,\n\t\t\tset = 'set' + part;\n\t\tthis[get] = function(_dontLink) {\n\t\t\tvar ctor = _dontLink ? Point : LinkedPoint;\n\t\t\treturn new ctor(this[getX](), this[getY](), this, set);\n\t\t};\n\t\tthis[set] = function() {\n\t\t\tvar point = Point.read(arguments);\n\t\t\tthis[setX](point.x);\n\t\t\tthis[setY](point.y);\n\t\t};\n\t}, {\n\t\tbeans: true\n\t}\n));\n\nvar LinkedRectangle = Rectangle.extend({\n\tinitialize: function Rectangle(x, y, width, height, owner, setter) {\n\t\tthis._set(x, y, width, height, true);\n\t\tthis._owner = owner;\n\t\tthis._setter = setter;\n\t},\n\n\t_set: function(x, y, width, height, _dontNotify) {\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._width = width;\n\t\tthis._height = height;\n\t\tif (!_dontNotify)\n\t\t\tthis._owner[this._setter](this);\n\t\treturn this;\n\t}\n},\nnew function() {\n\tvar proto = Rectangle.prototype;\n\n\treturn Base.each(['x', 'y', 'width', 'height'], function(key) {\n\t\tvar part = Base.capitalize(key),\n\t\t\tinternal = '_' + key;\n\t\tthis['get' + part] = function() {\n\t\t\treturn this[internal];\n\t\t};\n\n\t\tthis['set' + part] = function(value) {\n\t\t\tthis[internal] = value;\n\t\t\tif (!this._dontNotify)\n\t\t\t\tthis._owner[this._setter](this);\n\t\t};\n\t}, Base.each(['Point', 'Size', 'Center',\n\t\t\t'Left', 'Top', 'Right', 'Bottom', 'CenterX', 'CenterY',\n\t\t\t'TopLeft', 'TopRight', 'BottomLeft', 'BottomRight',\n\t\t\t'LeftCenter', 'TopCenter', 'RightCenter', 'BottomCenter'],\n\t\tfunction(key) {\n\t\t\tvar name = 'set' + key;\n\t\t\tthis[name] = function() {\n\t\t\t\tthis._dontNotify = true;\n\t\t\t\tproto[name].apply(this, arguments);\n\t\t\t\tthis._dontNotify = false;\n\t\t\t\tthis._owner[this._setter](this);\n\t\t\t};\n\t\t}, {\n\t\t\tisSelected: function() {\n\t\t\t\treturn !!(this._owner._selection & 2);\n\t\t\t},\n\n\t\t\tsetSelected: function(selected) {\n\t\t\t\tvar owner = this._owner;\n\t\t\t\tif (owner._changeSelection) {\n\t\t\t\t\towner._changeSelection(2, selected);\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t);\n});\n\nvar Matrix = Base.extend({\n\t_class: 'Matrix',\n\n\tinitialize: function Matrix(arg, _dontNotify) {\n\t\tvar count = arguments.length,\n\t\t\tok = true;\n\t\tif (count >= 6) {\n\t\t\tthis._set.apply(this, arguments);\n\t\t} else if (count === 1 || count === 2) {\n\t\t\tif (arg instanceof Matrix) {\n\t\t\t\tthis._set(arg._a, arg._b, arg._c, arg._d, arg._tx, arg._ty,\n\t\t\t\t\t\t_dontNotify);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tthis._set.apply(this,\n\t\t\t\t\t\t_dontNotify ? arg.concat([_dontNotify]) : arg);\n\t\t\t} else {\n\t\t\t\tok = false;\n\t\t\t}\n\t\t} else if (!count) {\n\t\t\tthis.reset();\n\t\t} else {\n\t\t\tok = false;\n\t\t}\n\t\tif (!ok) {\n\t\t\tthrow new Error('Unsupported matrix parameters');\n\t\t}\n\t\treturn this;\n\t},\n\n\tset: '#initialize',\n\n\t_set: function(a, b, c, d, tx, ty, _dontNotify) {\n\t\tthis._a = a;\n\t\tthis._b = b;\n\t\tthis._c = c;\n\t\tthis._d = d;\n\t\tthis._tx = tx;\n\t\tthis._ty = ty;\n\t\tif (!_dontNotify)\n\t\t\tthis._changed();\n\t\treturn this;\n\t},\n\n\t_serialize: function(options, dictionary) {\n\t\treturn Base.serialize(this.getValues(), options, true, dictionary);\n\t},\n\n\t_changed: function() {\n\t\tvar owner = this._owner;\n\t\tif (owner) {\n\t\t\tif (owner._applyMatrix) {\n\t\t\t\towner.transform(null, true);\n\t\t\t} else {\n\t\t\t\towner._changed(25);\n\t\t\t}\n\t\t}\n\t},\n\n\tclone: function() {\n\t\treturn new Matrix(this._a, this._b, this._c, this._d,\n\t\t\t\tthis._tx, this._ty);\n\t},\n\n\tequals: function(mx) {\n\t\treturn mx === this || mx && this._a === mx._a && this._b === mx._b\n\t\t\t\t&& this._c === mx._c && this._d === mx._d\n\t\t\t\t&& this._tx === mx._tx && this._ty === mx._ty;\n\t},\n\n\ttoString: function() {\n\t\tvar f = Formatter.instance;\n\t\treturn '[[' + [f.number(this._a), f.number(this._c),\n\t\t\t\t\tf.number(this._tx)].join(', ') + '], ['\n\t\t\t\t+ [f.number(this._b), f.number(this._d),\n\t\t\t\t\tf.number(this._ty)].join(', ') + ']]';\n\t},\n\n\treset: function(_dontNotify) {\n\t\tthis._a = this._d = 1;\n\t\tthis._b = this._c = this._tx = this._ty = 0;\n\t\tif (!_dontNotify)\n\t\t\tthis._changed();\n\t\treturn this;\n\t},\n\n\tapply: function(recursively, _setApplyMatrix) {\n\t\tvar owner = this._owner;\n\t\tif (owner) {\n\t\t\towner.transform(null, true, Base.pick(recursively, true),\n\t\t\t\t\t_setApplyMatrix);\n\t\t\treturn this.isIdentity();\n\t\t}\n\t\treturn false;\n\t},\n\n\ttranslate: function() {\n\t\tvar point = Point.read(arguments),\n\t\t\tx = point.x,\n\t\t\ty = point.y;\n\t\tthis._tx += x * this._a + y * this._c;\n\t\tthis._ty += x * this._b + y * this._d;\n\t\tthis._changed();\n\t\treturn this;\n\t},\n\n\tscale: function() {\n\t\tvar scale = Point.read(arguments),\n\t\t\tcenter = Point.read(arguments, 0, { readNull: true });\n\t\tif (center)\n\t\t\tthis.translate(center);\n\t\tthis._a *= scale.x;\n\t\tthis._b *= scale.x;\n\t\tthis._c *= scale.y;\n\t\tthis._d *= scale.y;\n\t\tif (center)\n\t\t\tthis.translate(center.negate());\n\t\tthis._changed();\n\t\treturn this;\n\t},\n\n\trotate: function(angle ) {\n\t\tangle *= Math.PI / 180;\n\t\tvar center = Point.read(arguments, 1),\n\t\t\tx = center.x,\n\t\t\ty = center.y,\n\t\t\tcos = Math.cos(angle),\n\t\t\tsin = Math.sin(angle),\n\t\t\ttx = x - x * cos + y * sin,\n\t\t\tty = y - x * sin - y * cos,\n\t\t\ta = this._a,\n\t\t\tb = this._b,\n\t\t\tc = this._c,\n\t\t\td = this._d;\n\t\tthis._a = cos * a + sin * c;\n\t\tthis._b = cos * b + sin * d;\n\t\tthis._c = -sin * a + cos * c;\n\t\tthis._d = -sin * b + cos * d;\n\t\tthis._tx += tx * a + ty * c;\n\t\tthis._ty += tx * b + ty * d;\n\t\tthis._changed();\n\t\treturn this;\n\t},\n\n\tshear: function() {\n\t\tvar shear = Point.read(arguments),\n\t\t\tcenter = Point.read(arguments, 0, { readNull: true });\n\t\tif (center)\n\t\t\tthis.translate(center);\n\t\tvar a = this._a,\n\t\t\tb = this._b;\n\t\tthis._a += shear.y * this._c;\n\t\tthis._b += shear.y * this._d;\n\t\tthis._c += shear.x * a;\n\t\tthis._d += shear.x * b;\n\t\tif (center)\n\t\t\tthis.translate(center.negate());\n\t\tthis._changed();\n\t\treturn this;\n\t},\n\n\tskew: function() {\n\t\tvar skew = Point.read(arguments),\n\t\t\tcenter = Point.read(arguments, 0, { readNull: true }),\n\t\t\ttoRadians = Math.PI / 180,\n\t\t\tshear = new Point(Math.tan(skew.x * toRadians),\n\t\t\t\tMath.tan(skew.y * toRadians));\n\t\treturn this.shear(shear, center);\n\t},\n\n\tappend: function(mx, _dontNotify) {\n\t\tif (mx) {\n\t\t\tvar a1 = this._a,\n\t\t\t\tb1 = this._b,\n\t\t\t\tc1 = this._c,\n\t\t\t\td1 = this._d,\n\t\t\t\ta2 = mx._a,\n\t\t\t\tb2 = mx._c,\n\t\t\t\tc2 = mx._b,\n\t\t\t\td2 = mx._d,\n\t\t\t\ttx2 = mx._tx,\n\t\t\t\tty2 = mx._ty;\n\t\t\tthis._a = a2 * a1 + c2 * c1;\n\t\t\tthis._c = b2 * a1 + d2 * c1;\n\t\t\tthis._b = a2 * b1 + c2 * d1;\n\t\t\tthis._d = b2 * b1 + d2 * d1;\n\t\t\tthis._tx += tx2 * a1 + ty2 * c1;\n\t\t\tthis._ty += tx2 * b1 + ty2 * d1;\n\t\t\tif (!_dontNotify)\n\t\t\t\tthis._changed();\n\t\t}\n\t\treturn this;\n\t},\n\n\tprepend: function(mx, _dontNotify) {\n\t\tif (mx) {\n\t\t\tvar a1 = this._a,\n\t\t\t\tb1 = this._b,\n\t\t\t\tc1 = this._c,\n\t\t\t\td1 = this._d,\n\t\t\t\ttx1 = this._tx,\n\t\t\t\tty1 = this._ty,\n\t\t\t\ta2 = mx._a,\n\t\t\t\tb2 = mx._c,\n\t\t\t\tc2 = mx._b,\n\t\t\t\td2 = mx._d,\n\t\t\t\ttx2 = mx._tx,\n\t\t\t\tty2 = mx._ty;\n\t\t\tthis._a = a2 * a1 + b2 * b1;\n\t\t\tthis._c = a2 * c1 + b2 * d1;\n\t\t\tthis._b = c2 * a1 + d2 * b1;\n\t\t\tthis._d = c2 * c1 + d2 * d1;\n\t\t\tthis._tx = a2 * tx1 + b2 * ty1 + tx2;\n\t\t\tthis._ty = c2 * tx1 + d2 * ty1 + ty2;\n\t\t\tif (!_dontNotify)\n\t\t\t\tthis._changed();\n\t\t}\n\t\treturn this;\n\t},\n\n\tappended: function(mx) {\n\t\treturn this.clone().append(mx);\n\t},\n\n\tprepended: function(mx) {\n\t\treturn this.clone().prepend(mx);\n\t},\n\n\tinvert: function() {\n\t\tvar a = this._a,\n\t\t\tb = this._b,\n\t\t\tc = this._c,\n\t\t\td = this._d,\n\t\t\ttx = this._tx,\n\t\t\tty = this._ty,\n\t\t\tdet = a * d - b * c,\n\t\t\tres = null;\n\t\tif (det && !isNaN(det) && isFinite(tx) && isFinite(ty)) {\n\t\t\tthis._a = d / det;\n\t\t\tthis._b = -b / det;\n\t\t\tthis._c = -c / det;\n\t\t\tthis._d = a / det;\n\t\t\tthis._tx = (c * ty - d * tx) / det;\n\t\t\tthis._ty = (b * tx - a * ty) / det;\n\t\t\tres = this;\n\t\t}\n\t\treturn res;\n\t},\n\n\tinverted: function() {\n\t\treturn this.clone().invert();\n\t},\n\n\tconcatenate: '#append',\n\tpreConcatenate: '#prepend',\n\tchain: '#appended',\n\n\t_shiftless: function() {\n\t\treturn new Matrix(this._a, this._b, this._c, this._d, 0, 0);\n\t},\n\n\t_orNullIfIdentity: function() {\n\t\treturn this.isIdentity() ? null : this;\n\t},\n\n\tisIdentity: function() {\n\t\treturn this._a === 1 && this._b === 0 && this._c === 0 && this._d === 1\n\t\t\t\t&& this._tx === 0 && this._ty === 0;\n\t},\n\n\tisInvertible: function() {\n\t\tvar det = this._a * this._d - this._c * this._b;\n\t\treturn det && !isNaN(det) && isFinite(this._tx) && isFinite(this._ty);\n\t},\n\n\tisSingular: function() {\n\t\treturn !this.isInvertible();\n\t},\n\n\ttransform: function( src, dst, count) {\n\t\treturn arguments.length < 3\n\t\t\t? this._transformPoint(Point.read(arguments))\n\t\t\t: this._transformCoordinates(src, dst, count);\n\t},\n\n\t_transformPoint: function(point, dest, _dontNotify) {\n\t\tvar x = point.x,\n\t\t\ty = point.y;\n\t\tif (!dest)\n\t\t\tdest = new Point();\n\t\treturn dest._set(\n\t\t\t\tx * this._a + y * this._c + this._tx,\n\t\t\t\tx * this._b + y * this._d + this._ty,\n\t\t\t\t_dontNotify);\n\t},\n\n\t_transformCoordinates: function(src, dst, count) {\n\t\tfor (var i = 0, max = 2 * count; i < max; i += 2) {\n\t\t\tvar x = src[i],\n\t\t\t\ty = src[i + 1];\n\t\t\tdst[i] = x * this._a + y * this._c + this._tx;\n\t\t\tdst[i + 1] = x * this._b + y * this._d + this._ty;\n\t\t}\n\t\treturn dst;\n\t},\n\n\t_transformCorners: function(rect) {\n\t\tvar x1 = rect.x,\n\t\t\ty1 = rect.y,\n\t\t\tx2 = x1 + rect.width,\n\t\t\ty2 = y1 + rect.height,\n\t\t\tcoords = [ x1, y1, x2, y1, x2, y2, x1, y2 ];\n\t\treturn this._transformCoordinates(coords, coords, 4);\n\t},\n\n\t_transformBounds: function(bounds, dest, _dontNotify) {\n\t\tvar coords = this._transformCorners(bounds),\n\t\t\tmin = coords.slice(0, 2),\n\t\t\tmax = min.slice();\n\t\tfor (var i = 2; i < 8; i++) {\n\t\t\tvar val = coords[i],\n\t\t\t\tj = i & 1;\n\t\t\tif (val < min[j]) {\n\t\t\t\tmin[j] = val;\n\t\t\t} else if (val > max[j]) {\n\t\t\t\tmax[j] = val;\n\t\t\t}\n\t\t}\n\t\tif (!dest)\n\t\t\tdest = new Rectangle();\n\t\treturn dest._set(min[0], min[1], max[0] - min[0], max[1] - min[1],\n\t\t\t\t_dontNotify);\n\t},\n\n\tinverseTransform: function() {\n\t\treturn this._inverseTransform(Point.read(arguments));\n\t},\n\n\t_inverseTransform: function(point, dest, _dontNotify) {\n\t\tvar a = this._a,\n\t\t\tb = this._b,\n\t\t\tc = this._c,\n\t\t\td = this._d,\n\t\t\ttx = this._tx,\n\t\t\tty = this._ty,\n\t\t\tdet = a * d - b * c,\n\t\t\tres = null;\n\t\tif (det && !isNaN(det) && isFinite(tx) && isFinite(ty)) {\n\t\t\tvar x = point.x - this._tx,\n\t\t\t\ty = point.y - this._ty;\n\t\t\tif (!dest)\n\t\t\t\tdest = new Point();\n\t\t\tres = dest._set(\n\t\t\t\t\t(x * d - y * c) / det,\n\t\t\t\t\t(y * a - x * b) / det,\n\t\t\t\t\t_dontNotify);\n\t\t}\n\t\treturn res;\n\t},\n\n\tdecompose: function() {\n\t\tvar a = this._a,\n\t\t\tb = this._b,\n\t\t\tc = this._c,\n\t\t\td = this._d,\n\t\t\tdet = a * d - b * c,\n\t\t\tsqrt = Math.sqrt,\n\t\t\tatan2 = Math.atan2,\n\t\t\tdegrees = 180 / Math.PI,\n\t\t\trotate,\n\t\t\tscale,\n\t\t\tskew;\n\t\tif (a !== 0 || b !== 0) {\n\t\t\tvar r = sqrt(a * a + b * b);\n\t\t\trotate = Math.acos(a / r) * (b > 0 ? 1 : -1);\n\t\t\tscale = [r, det / r];\n\t\t\tskew = [atan2(a * c + b * d, r * r), 0];\n\t\t} else if (c !== 0 || d !== 0) {\n\t\t\tvar s = sqrt(c * c + d * d);\n\t\t\trotate = Math.asin(c / s) * (d > 0 ? 1 : -1);\n\t\t\tscale = [det / s, s];\n\t\t\tskew = [0, atan2(a * c + b * d, s * s)];\n\t\t} else {\n\t\t\trotate = 0;\n\t\t\tskew = scale = [0, 0];\n\t\t}\n\t\treturn {\n\t\t\ttranslation: this.getTranslation(),\n\t\t\trotation: rotate * degrees,\n\t\t\tscaling: new Point(scale),\n\t\t\tskewing: new Point(skew[0] * degrees, skew[1] * degrees)\n\t\t};\n\t},\n\n\tgetValues: function() {\n\t\treturn [ this._a, this._b, this._c, this._d, this._tx, this._ty ];\n\t},\n\n\tgetTranslation: function() {\n\t\treturn new Point(this._tx, this._ty);\n\t},\n\n\tgetScaling: function() {\n\t\treturn this.decompose().scaling;\n\t},\n\n\tgetRotation: function() {\n\t\treturn this.decompose().rotation;\n\t},\n\n\tapplyToContext: function(ctx) {\n\t\tif (!this.isIdentity()) {\n\t\t\tctx.transform(this._a, this._b, this._c, this._d,\n\t\t\t\t\tthis._tx, this._ty);\n\t\t}\n\t}\n}, Base.each(['a', 'b', 'c', 'd', 'tx', 'ty'], function(key) {\n\tvar part = Base.capitalize(key),\n\t\tprop = '_' + key;\n\tthis['get' + part] = function() {\n\t\treturn this[prop];\n\t};\n\tthis['set' + part] = function(value) {\n\t\tthis[prop] = value;\n\t\tthis._changed();\n\t};\n}, {}));\n\nvar Line = Base.extend({\n\t_class: 'Line',\n\n\tinitialize: function Line(arg0, arg1, arg2, arg3, arg4) {\n\t\tvar asVector = false;\n\t\tif (arguments.length >= 4) {\n\t\t\tthis._px = arg0;\n\t\t\tthis._py = arg1;\n\t\t\tthis._vx = arg2;\n\t\t\tthis._vy = arg3;\n\t\t\tasVector = arg4;\n\t\t} else {\n\t\t\tthis._px = arg0.x;\n\t\t\tthis._py = arg0.y;\n\t\t\tthis._vx = arg1.x;\n\t\t\tthis._vy = arg1.y;\n\t\t\tasVector = arg2;\n\t\t}\n\t\tif (!asVector) {\n\t\t\tthis._vx -= this._px;\n\t\t\tthis._vy -= this._py;\n\t\t}\n\t},\n\n\tgetPoint: function() {\n\t\treturn new Point(this._px, this._py);\n\t},\n\n\tgetVector: function() {\n\t\treturn new Point(this._vx, this._vy);\n\t},\n\n\tgetLength: function() {\n\t\treturn this.getVector().getLength();\n\t},\n\n\tintersect: function(line, isInfinite) {\n\t\treturn Line.intersect(\n\t\t\t\tthis._px, this._py, this._vx, this._vy,\n\t\t\t\tline._px, line._py, line._vx, line._vy,\n\t\t\t\ttrue, isInfinite);\n\t},\n\n\tgetSide: function(point, isInfinite) {\n\t\treturn Line.getSide(\n\t\t\t\tthis._px, this._py, this._vx, this._vy,\n\t\t\t\tpoint.x, point.y, true, isInfinite);\n\t},\n\n\tgetDistance: function(point) {\n\t\treturn Math.abs(this.getSignedDistance(point));\n\t},\n\n\tgetSignedDistance: function(point) {\n\t\treturn Line.getSignedDistance(this._px, this._py, this._vx, this._vy,\n\t\t\t\tpoint.x, point.y, true);\n\t},\n\n\tisCollinear: function(line) {\n\t\treturn Point.isCollinear(this._vx, this._vy, line._vx, line._vy);\n\t},\n\n\tisOrthogonal: function(line) {\n\t\treturn Point.isOrthogonal(this._vx, this._vy, line._vx, line._vy);\n\t},\n\n\tstatics: {\n\t\tintersect: function(p1x, p1y, v1x, v1y, p2x, p2y, v2x, v2y, asVector,\n\t\t\t\tisInfinite) {\n\t\t\tif (!asVector) {\n\t\t\t\tv1x -= p1x;\n\t\t\t\tv1y -= p1y;\n\t\t\t\tv2x -= p2x;\n\t\t\t\tv2y -= p2y;\n\t\t\t}\n\t\t\tvar cross = v1x * v2y - v1y * v2x;\n\t\t\tif (!Numerical.isZero(cross)) {\n\t\t\t\tvar dx = p1x - p2x,\n\t\t\t\t\tdy = p1y - p2y,\n\t\t\t\t\tu1 = (v2x * dy - v2y * dx) / cross,\n\t\t\t\t\tu2 = (v1x * dy - v1y * dx) / cross,\n\t\t\t\t\tepsilon = 1e-12,\n\t\t\t\t\tuMin = -epsilon,\n\t\t\t\t\tuMax = 1 + epsilon;\n\t\t\t\tif (isInfinite\n\t\t\t\t\t\t|| uMin < u1 && u1 < uMax && uMin < u2 && u2 < uMax) {\n\t\t\t\t\tif (!isInfinite) {\n\t\t\t\t\t\tu1 = u1 <= 0 ? 0 : u1 >= 1 ? 1 : u1;\n\t\t\t\t\t}\n\t\t\t\t\treturn new Point(\n\t\t\t\t\t\t\tp1x + u1 * v1x,\n\t\t\t\t\t\t\tp1y + u1 * v1y);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tgetSide: function(px, py, vx, vy, x, y, asVector, isInfinite) {\n\t\t\tif (!asVector) {\n\t\t\t\tvx -= px;\n\t\t\t\tvy -= py;\n\t\t\t}\n\t\t\tvar v2x = x - px,\n\t\t\t\tv2y = y - py,\n\t\t\t\tccw = v2x * vy - v2y * vx;\n\t\t\tif (!isInfinite && Numerical.isZero(ccw)) {\n\t\t\t\tccw = (v2x * vx + v2x * vx) / (vx * vx + vy * vy);\n\t\t\t\tif (ccw >= 0 && ccw <= 1)\n\t\t\t\t\tccw = 0;\n\t\t\t}\n\t\t\treturn ccw < 0 ? -1 : ccw > 0 ? 1 : 0;\n\t\t},\n\n\t\tgetSignedDistance: function(px, py, vx, vy, x, y, asVector) {\n\t\t\tif (!asVector) {\n\t\t\t\tvx -= px;\n\t\t\t\tvy -= py;\n\t\t\t}\n\t\t\treturn vx === 0 ? vy > 0 ? x - px : px - x\n\t\t\t\t : vy === 0 ? vx < 0 ? y - py : py - y\n\t\t\t\t : ((x-px) * vy - (y-py) * vx) / Math.sqrt(vx * vx + vy * vy);\n\t\t},\n\n\t\tgetDistance: function(px, py, vx, vy, x, y, asVector) {\n\t\t\treturn Math.abs(\n\t\t\t\t\tLine.getSignedDistance(px, py, vx, vy, x, y, asVector));\n\t\t}\n\t}\n});\n\nvar Project = PaperScopeItem.extend({\n\t_class: 'Project',\n\t_list: 'projects',\n\t_reference: 'project',\n\t_compactSerialize: true,\n\n\tinitialize: function Project(element) {\n\t\tPaperScopeItem.call(this, true);\n\t\tthis._children = [];\n\t\tthis._namedChildren = {};\n\t\tthis._activeLayer = null;\n\t\tthis._currentStyle = new Style(null, null, this);\n\t\tthis._view = View.create(this,\n\t\t\t\telement || CanvasProvider.getCanvas(1, 1));\n\t\tthis._selectionItems = {};\n\t\tthis._selectionCount = 0;\n\t\tthis._updateVersion = 0;\n\t},\n\n\t_serialize: function(options, dictionary) {\n\t\treturn Base.serialize(this._children, options, true, dictionary);\n\t},\n\n\t_changed: function(flags, item) {\n\t\tif (flags & 1) {\n\t\t\tvar view = this._view;\n\t\t\tif (view) {\n\t\t\t\tview._needsUpdate = true;\n\t\t\t\tif (!view._requested && view._autoUpdate)\n\t\t\t\t\tview.requestUpdate();\n\t\t\t}\n\t\t}\n\t\tvar changes = this._changes;\n\t\tif (changes && item) {\n\t\t\tvar changesById = this._changesById,\n\t\t\t\tid = item._id,\n\t\t\t\tentry = changesById[id];\n\t\t\tif (entry) {\n\t\t\t\tentry.flags |= flags;\n\t\t\t} else {\n\t\t\t\tchanges.push(changesById[id] = { item: item, flags: flags });\n\t\t\t}\n\t\t}\n\t},\n\n\tclear: function() {\n\t\tvar children = this._children;\n\t\tfor (var i = children.length - 1; i >= 0; i--)\n\t\t\tchildren[i].remove();\n\t},\n\n\tisEmpty: function() {\n\t\treturn !this._children.length;\n\t},\n\n\tremove: function remove() {\n\t\tif (!remove.base.call(this))\n\t\t\treturn false;\n\t\tif (this._view)\n\t\t\tthis._view.remove();\n\t\treturn true;\n\t},\n\n\tgetView: function() {\n\t\treturn this._view;\n\t},\n\n\tgetCurrentStyle: function() {\n\t\treturn this._currentStyle;\n\t},\n\n\tsetCurrentStyle: function(style) {\n\t\tthis._currentStyle.set(style);\n\t},\n\n\tgetIndex: function() {\n\t\treturn this._index;\n\t},\n\n\tgetOptions: function() {\n\t\treturn this._scope.settings;\n\t},\n\n\tgetLayers: function() {\n\t\treturn this._children;\n\t},\n\n\tgetActiveLayer: function() {\n\t\treturn this._activeLayer || new Layer({ project: this, insert: true });\n\t},\n\n\tgetSymbolDefinitions: function() {\n\t\tvar definitions = [],\n\t\t\tids = {};\n\t\tthis.getItems({\n\t\t\tclass: SymbolItem,\n\t\t\tmatch: function(item) {\n\t\t\t\tvar definition = item._definition,\n\t\t\t\t\tid = definition._id;\n\t\t\t\tif (!ids[id]) {\n\t\t\t\t\tids[id] = true;\n\t\t\t\t\tdefinitions.push(definition);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\treturn definitions;\n\t},\n\n\tgetSymbols: 'getSymbolDefinitions',\n\n\tgetSelectedItems: function() {\n\t\tvar selectionItems = this._selectionItems,\n\t\t\titems = [];\n\t\tfor (var id in selectionItems) {\n\t\t\tvar item = selectionItems[id],\n\t\t\t\tselection = item._selection;\n\t\t\tif ((selection & 1) && item.isInserted()) {\n\t\t\t\titems.push(item);\n\t\t\t} else if (!selection) {\n\t\t\t\tthis._updateSelection(item);\n\t\t\t}\n\t\t}\n\t\treturn items;\n\t},\n\n\t_updateSelection: function(item) {\n\t\tvar id = item._id,\n\t\t\tselectionItems = this._selectionItems;\n\t\tif (item._selection) {\n\t\t\tif (selectionItems[id] !== item) {\n\t\t\t\tthis._selectionCount++;\n\t\t\t\tselectionItems[id] = item;\n\t\t\t}\n\t\t} else if (selectionItems[id] === item) {\n\t\t\tthis._selectionCount--;\n\t\t\tdelete selectionItems[id];\n\t\t}\n\t},\n\n\tselectAll: function() {\n\t\tvar children = this._children;\n\t\tfor (var i = 0, l = children.length; i < l; i++)\n\t\t\tchildren[i].setFullySelected(true);\n\t},\n\n\tdeselectAll: function() {\n\t\tvar selectionItems = this._selectionItems;\n\t\tfor (var i in selectionItems)\n\t\t\tselectionItems[i].setFullySelected(false);\n\t},\n\n\taddLayer: function(layer) {\n\t\treturn this.insertLayer(undefined, layer);\n\t},\n\n\tinsertLayer: function(index, layer) {\n\t\tif (layer instanceof Layer) {\n\t\t\tlayer._remove(false, true);\n\t\t\tBase.splice(this._children, [layer], index, 0);\n\t\t\tlayer._setProject(this, true);\n\t\t\tvar name = layer._name;\n\t\t\tif (name)\n\t\t\t\tlayer.setName(name);\n\t\t\tif (this._changes)\n\t\t\t\tlayer._changed(5);\n\t\t\tif (!this._activeLayer)\n\t\t\t\tthis._activeLayer = layer;\n\t\t} else {\n\t\t\tlayer = null;\n\t\t}\n\t\treturn layer;\n\t},\n\n\t_insertItem: function(index, item, _created) {\n\t\titem = this.insertLayer(index, item)\n\t\t\t\t|| (this._activeLayer || this._insertItem(undefined,\n\t\t\t\t\t\tnew Layer(Item.NO_INSERT), true))\n\t\t\t\t\t\t.insertChild(index, item);\n\t\tif (_created && item.activate)\n\t\t\titem.activate();\n\t\treturn item;\n\t},\n\n\tgetItems: function(options) {\n\t\treturn Item._getItems(this, options);\n\t},\n\n\tgetItem: function(options) {\n\t\treturn Item._getItems(this, options, null, null, true)[0] || null;\n\t},\n\n\timportJSON: function(json) {\n\t\tthis.activate();\n\t\tvar layer = this._activeLayer;\n\t\treturn Base.importJSON(json, layer && layer.isEmpty() && layer);\n\t},\n\n\tremoveOn: function(type) {\n\t\tvar sets = this._removeSets;\n\t\tif (sets) {\n\t\t\tif (type === 'mouseup')\n\t\t\t\tsets.mousedrag = null;\n\t\t\tvar set = sets[type];\n\t\t\tif (set) {\n\t\t\t\tfor (var id in set) {\n\t\t\t\t\tvar item = set[id];\n\t\t\t\t\tfor (var key in sets) {\n\t\t\t\t\t\tvar other = sets[key];\n\t\t\t\t\t\tif (other && other != set)\n\t\t\t\t\t\t\tdelete other[item._id];\n\t\t\t\t\t}\n\t\t\t\t\titem.remove();\n\t\t\t\t}\n\t\t\t\tsets[type] = null;\n\t\t\t}\n\t\t}\n\t},\n\n\tdraw: function(ctx, matrix, pixelRatio) {\n\t\tthis._updateVersion++;\n\t\tctx.save();\n\t\tmatrix.applyToContext(ctx);\n\t\tvar children = this._children,\n\t\t\tparam = new Base({\n\t\t\t\toffset: new Point(0, 0),\n\t\t\t\tpixelRatio: pixelRatio,\n\t\t\t\tviewMatrix: matrix.isIdentity() ? null : matrix,\n\t\t\t\tmatrices: [new Matrix()],\n\t\t\t\tupdateMatrix: true\n\t\t\t});\n\t\tfor (var i = 0, l = children.length; i < l; i++) {\n\t\t\tchildren[i].draw(ctx, param);\n\t\t}\n\t\tctx.restore();\n\n\t\tif (this._selectionCount > 0) {\n\t\t\tctx.save();\n\t\t\tctx.strokeWidth = 1;\n\t\t\tvar items = this._selectionItems,\n\t\t\t\tsize = this._scope.settings.handleSize,\n\t\t\t\tversion = this._updateVersion;\n\t\t\tfor (var id in items) {\n\t\t\t\titems[id]._drawSelection(ctx, matrix, size, items, version);\n\t\t\t}\n\t\t\tctx.restore();\n\t\t}\n\t}\n});\n\nvar Item = Base.extend(Emitter, {\n\tstatics: {\n\t\textend: function extend(src) {\n\t\t\tif (src._serializeFields)\n\t\t\t\tsrc._serializeFields = Base.set({},\n\t\t\t\t\tthis.prototype._serializeFields, src._serializeFields);\n\t\t\treturn extend.base.apply(this, arguments);\n\t\t},\n\n\t\tNO_INSERT: { insert: false }\n\t},\n\n\t_class: 'Item',\n\t_name: null,\n\t_applyMatrix: true,\n\t_canApplyMatrix: true,\n\t_canScaleStroke: false,\n\t_pivot: null,\n\t_visible: true,\n\t_blendMode: 'normal',\n\t_opacity: 1,\n\t_locked: false,\n\t_guide: false,\n\t_clipMask: false,\n\t_selection: 0,\n\t_selectBounds: true,\n\t_selectChildren: false,\n\t_serializeFields: {\n\t\tname: null,\n\t\tapplyMatrix: null,\n\t\tmatrix: new Matrix(),\n\t\tpivot: null,\n\t\tvisible: true,\n\t\tblendMode: 'normal',\n\t\topacity: 1,\n\t\tlocked: false,\n\t\tguide: false,\n\t\tclipMask: false,\n\t\tselected: false,\n\t\tdata: {}\n\t},\n\t_prioritize: ['applyMatrix']\n},\nnew function() {\n\tvar handlers = ['onMouseDown', 'onMouseUp', 'onMouseDrag', 'onClick',\n\t\t\t'onDoubleClick', 'onMouseMove', 'onMouseEnter', 'onMouseLeave'];\n\treturn Base.each(handlers,\n\t\tfunction(name) {\n\t\t\tthis._events[name] = {\n\t\t\t\tinstall: function(type) {\n\t\t\t\t\tthis.getView()._countItemEvent(type, 1);\n\t\t\t\t},\n\n\t\t\t\tuninstall: function(type) {\n\t\t\t\t\tthis.getView()._countItemEvent(type, -1);\n\t\t\t\t}\n\t\t\t};\n\t\t}, {\n\t\t\t_events: {\n\t\t\t\tonFrame: {\n\t\t\t\t\tinstall: function() {\n\t\t\t\t\t\tthis.getView()._animateItem(this, true);\n\t\t\t\t\t},\n\n\t\t\t\t\tuninstall: function() {\n\t\t\t\t\t\tthis.getView()._animateItem(this, false);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tonLoad: {},\n\t\t\t\tonError: {}\n\t\t\t},\n\t\t\tstatics: {\n\t\t\t\t_itemHandlers: handlers\n\t\t\t}\n\t\t}\n\t);\n}, {\n\tinitialize: function Item() {\n\t},\n\n\t_initialize: function(props, point) {\n\t\tvar hasProps = props && Base.isPlainObject(props),\n\t\t\tinternal = hasProps && props.internal === true,\n\t\t\tmatrix = this._matrix = new Matrix(),\n\t\t\tproject = hasProps && props.project || paper.project,\n\t\t\tsettings = paper.settings;\n\t\tthis._id = internal ? null : UID.get();\n\t\tthis._parent = this._index = null;\n\t\tthis._applyMatrix = this._canApplyMatrix && settings.applyMatrix;\n\t\tif (point)\n\t\t\tmatrix.translate(point);\n\t\tmatrix._owner = this;\n\t\tthis._style = new Style(project._currentStyle, this, project);\n\t\tif (internal || hasProps && props.insert == false\n\t\t\t|| !settings.insertItems && !(hasProps && props.insert === true)) {\n\t\t\tthis._setProject(project);\n\t\t} else {\n\t\t\t(hasProps && props.parent || project)\n\t\t\t\t\t._insertItem(undefined, this, true);\n\t\t}\n\t\tif (hasProps && props !== Item.NO_INSERT) {\n\t\t\tthis.set(props, {\n\t\t\t\tinternal: true, insert: true, project: true, parent: true\n\t\t\t});\n\t\t}\n\t\treturn hasProps;\n\t},\n\n\t_serialize: function(options, dictionary) {\n\t\tvar props = {},\n\t\t\tthat = this;\n\n\t\tfunction serialize(fields) {\n\t\t\tfor (var key in fields) {\n\t\t\t\tvar value = that[key];\n\t\t\t\tif (!Base.equals(value, key === 'leading'\n\t\t\t\t\t\t? fields.fontSize * 1.2 : fields[key])) {\n\t\t\t\t\tprops[key] = Base.serialize(value, options,\n\t\t\t\t\t\t\tkey !== 'data', dictionary);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tserialize(this._serializeFields);\n\t\tif (!(this instanceof Group))\n\t\t\tserialize(this._style._defaults);\n\t\treturn [ this._class, props ];\n\t},\n\n\t_changed: function(flags) {\n\t\tvar symbol = this._symbol,\n\t\t\tcacheParent = this._parent || symbol,\n\t\t\tproject = this._project;\n\t\tif (flags & 8) {\n\t\t\tthis._bounds = this._position = this._decomposed = undefined;\n\t\t}\n\t\tif (flags & 16) {\n\t\t\tthis._globalMatrix = undefined;\n\t\t}\n\t\tif (cacheParent\n\t\t\t\t&& (flags & 72)) {\n\t\t\tItem._clearBoundsCache(cacheParent);\n\t\t}\n\t\tif (flags & 2) {\n\t\t\tItem._clearBoundsCache(this);\n\t\t}\n\t\tif (project)\n\t\t\tproject._changed(flags, this);\n\t\tif (symbol)\n\t\t\tsymbol._changed(flags);\n\t},\n\n\tgetId: function() {\n\t\treturn this._id;\n\t},\n\n\tgetName: function() {\n\t\treturn this._name;\n\t},\n\n\tsetName: function(name) {\n\n\t\tif (this._name)\n\t\t\tthis._removeNamed();\n\t\tif (name === (+name) + '')\n\t\t\tthrow new Error(\n\t\t\t\t\t'Names consisting only of numbers are not supported.');\n\t\tvar owner = this._getOwner();\n\t\tif (name && owner) {\n\t\t\tvar children = owner._children,\n\t\t\t\tnamedChildren = owner._namedChildren;\n\t\t\t(namedChildren[name] = namedChildren[name] || []).push(this);\n\t\t\tif (!(name in children))\n\t\t\t\tchildren[name] = this;\n\t\t}\n\t\tthis._name = name || undefined;\n\t\tthis._changed(256);\n\t},\n\n\tgetStyle: function() {\n\t\treturn this._style;\n\t},\n\n\tsetStyle: function(style) {\n\t\tthis.getStyle().set(style);\n\t}\n}, Base.each(['locked', 'visible', 'blendMode', 'opacity', 'guide'],\n\tfunction(name) {\n\t\tvar part = Base.capitalize(name),\n\t\t\tkey = '_' + name,\n\t\t\tflags = {\n\t\t\t\tlocked: 256,\n\t\t\t\tvisible: 265\n\t\t\t};\n\t\tthis['get' + part] = function() {\n\t\t\treturn this[key];\n\t\t};\n\t\tthis['set' + part] = function(value) {\n\t\t\tif (value != this[key]) {\n\t\t\t\tthis[key] = value;\n\t\t\t\tthis._changed(flags[name] || 257);\n\t\t\t}\n\t\t};\n\t},\n{}), {\n\tbeans: true,\n\n\tgetSelection: function() {\n\t\treturn this._selection;\n\t},\n\n\tsetSelection: function(selection) {\n\t\tif (selection !== this._selection) {\n\t\t\tthis._selection = selection;\n\t\t\tvar project = this._project;\n\t\t\tif (project) {\n\t\t\t\tproject._updateSelection(this);\n\t\t\t\tthis._changed(257);\n\t\t\t}\n\t\t}\n\t},\n\n\t_changeSelection: function(flag, selected) {\n\t\tvar selection = this._selection;\n\t\tthis.setSelection(selected ? selection | flag : selection & ~flag);\n\t},\n\n\tisSelected: function() {\n\t\tif (this._selectChildren) {\n\t\t\tvar children = this._children;\n\t\t\tfor (var i = 0, l = children.length; i < l; i++)\n\t\t\t\tif (children[i].isSelected())\n\t\t\t\t\treturn true;\n\t\t}\n\t\treturn !!(this._selection & 1);\n\t},\n\n\tsetSelected: function(selected) {\n\t\tif (this._selectChildren) {\n\t\t\tvar children = this._children;\n\t\t\tfor (var i = 0, l = children.length; i < l; i++)\n\t\t\t\tchildren[i].setSelected(selected);\n\t\t}\n\t\tthis._changeSelection(1, selected);\n\t},\n\n\tisFullySelected: function() {\n\t\tvar children = this._children,\n\t\t\tselected = !!(this._selection & 1);\n\t\tif (children && selected) {\n\t\t\tfor (var i = 0, l = children.length; i < l; i++)\n\t\t\t\tif (!children[i].isFullySelected())\n\t\t\t\t\treturn false;\n\t\t\treturn true;\n\t\t}\n\t\treturn selected;\n\t},\n\n\tsetFullySelected: function(selected) {\n\t\tvar children = this._children;\n\t\tif (children) {\n\t\t\tfor (var i = 0, l = children.length; i < l; i++)\n\t\t\t\tchildren[i].setFullySelected(selected);\n\t\t}\n\t\tthis._changeSelection(1, selected);\n\t},\n\n\tisClipMask: function() {\n\t\treturn this._clipMask;\n\t},\n\n\tsetClipMask: function(clipMask) {\n\t\tif (this._clipMask != (clipMask = !!clipMask)) {\n\t\t\tthis._clipMask = clipMask;\n\t\t\tif (clipMask) {\n\t\t\t\tthis.setFillColor(null);\n\t\t\t\tthis.setStrokeColor(null);\n\t\t\t}\n\t\t\tthis._changed(257);\n\t\t\tif (this._parent)\n\t\t\t\tthis._parent._changed(2048);\n\t\t}\n\t},\n\n\tgetData: function() {\n\t\tif (!this._data)\n\t\t\tthis._data = {};\n\t\treturn this._data;\n\t},\n\n\tsetData: function(data) {\n\t\tthis._data = data;\n\t},\n\n\tgetPosition: function(_dontLink) {\n\t\tvar ctor = _dontLink ? Point : LinkedPoint;\n\t\tvar position = this._position ||\n\t\t\t(this._position = this._getPositionFromBounds());\n\t\treturn new ctor(position.x, position.y, this, 'setPosition');\n\t},\n\n\tsetPosition: function() {\n\t\tthis.translate(Point.read(arguments).subtract(this.getPosition(true)));\n\t},\n\n\t_getPositionFromBounds: function(bounds) {\n\t\treturn this._pivot\n\t\t\t\t? this._matrix._transformPoint(this._pivot)\n\t\t\t\t: (bounds || this.getBounds()).getCenter(true);\n\t},\n\n\tgetPivot: function() {\n\t\tvar pivot = this._pivot;\n\t\treturn pivot\n\t\t\t\t? new LinkedPoint(pivot.x, pivot.y, this, 'setPivot')\n\t\t\t\t: null;\n\t},\n\n\tsetPivot: function() {\n\t\tthis._pivot = Point.read(arguments, 0, { clone: true, readNull: true });\n\t\tthis._position = undefined;\n\t}\n}, Base.each({\n\t\tgetStrokeBounds: { stroke: true },\n\t\tgetHandleBounds: { handle: true },\n\t\tgetInternalBounds: { internal: true },\n\t\tgetDrawnBounds: { stroke: true, drawnTextBounds: true },\n\t},\n\tfunction(options, key) {\n\t\tthis[key] = function(matrix) {\n\t\t\treturn this.getBounds(matrix, options);\n\t\t};\n\t},\n{\n\tbeans: true,\n\n\tgetBounds: function(matrix, options) {\n\t\tvar hasMatrix = options || matrix instanceof Matrix,\n\t\t\topts = Base.set({}, hasMatrix ? options : matrix,\n\t\t\t\t\tthis._boundsOptions);\n\t\tif (!opts.stroke || this.getStrokeScaling())\n\t\t\topts.cacheItem = this;\n\t\tvar rect = this._getCachedBounds(hasMatrix && matrix, opts).rect;\n\t\treturn !arguments.length\n\t\t\t\t? new LinkedRectangle(rect.x, rect.y, rect.width, rect.height,\n\t\t\t\t\tthis, 'setBounds')\n\t\t\t\t: rect;\n\t},\n\n\tsetBounds: function() {\n\t\tvar rect = Rectangle.read(arguments),\n\t\t\tbounds = this.getBounds(),\n\t\t\t_matrix = this._matrix,\n\t\t\tmatrix = new Matrix(),\n\t\t\tcenter = rect.getCenter();\n\t\tmatrix.translate(center);\n\t\tif (rect.width != bounds.width || rect.height != bounds.height) {\n\t\t\tif (!_matrix.isInvertible()) {\n\t\t\t\t_matrix.set(_matrix._backup\n\t\t\t\t\t\t|| new Matrix().translate(_matrix.getTranslation()));\n\t\t\t\tbounds = this.getBounds();\n\t\t\t}\n\t\t\tmatrix.scale(\n\t\t\t\t\tbounds.width !== 0 ? rect.width / bounds.width : 0,\n\t\t\t\t\tbounds.height !== 0 ? rect.height / bounds.height : 0);\n\t\t}\n\t\tcenter = bounds.getCenter();\n\t\tmatrix.translate(-center.x, -center.y);\n\t\tthis.transform(matrix);\n\t},\n\n\t_getBounds: function(matrix, options) {\n\t\tvar children = this._children;\n\t\tif (!children || !children.length)\n\t\t\treturn new Rectangle();\n\t\tItem._updateBoundsCache(this, options.cacheItem);\n\t\treturn Item._getBounds(children, matrix, options);\n\t},\n\n\t_getBoundsCacheKey: function(options, internal) {\n\t\treturn [\n\t\t\toptions.stroke ? 1 : 0,\n\t\t\toptions.handle ? 1 : 0,\n\t\t\toptions.drawnTextBounds? 1 : 0,\n\t\t\tinternal ? 1 : 0\n\t\t].join('');\n\t},\n\n\t_getCachedBounds: function(matrix, options, noInternal) {\n\t\tmatrix = matrix && matrix._orNullIfIdentity();\n\t\tvar internal = options.internal && !noInternal,\n\t\t\tcacheItem = options.cacheItem,\n\t\t\t_matrix = internal ? null : this._matrix._orNullIfIdentity(),\n\t\t\tcacheKey = cacheItem && (!matrix || matrix.equals(_matrix))\n\t\t\t\t&& this._getBoundsCacheKey(options, internal),\n\t\t\tbounds = this._bounds;\n\t\tItem._updateBoundsCache(this._parent || this._symbol, cacheItem);\n\t\tif (cacheKey && bounds && cacheKey in bounds) {\n\t\t\tvar cached = bounds[cacheKey];\n\t\t\treturn {\n\t\t\t\trect: cached.rect.clone(),\n\t\t\t\tnonscaling: cached.nonscaling\n\t\t\t};\n\t\t}\n\t\tvar res = this._getBounds(matrix || _matrix, options),\n\t\t\trect = res.rect || res,\n\t\t\tstyle = this._style,\n\t\t\tnonscaling = res.nonscaling || style.hasStroke()\n\t\t\t\t&& !style.getStrokeScaling();\n\t\tif (cacheKey) {\n\t\t\tif (!bounds) {\n\t\t\t\tthis._bounds = bounds = {};\n\t\t\t}\n\t\t\tvar cached = bounds[cacheKey] = {\n\t\t\t\trect: rect.clone(),\n\t\t\t\tnonscaling: nonscaling,\n\t\t\t\tinternal: internal\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\trect: rect,\n\t\t\tnonscaling: nonscaling\n\t\t};\n\t},\n\n\t_getStrokeMatrix: function(matrix, options) {\n\t\tvar parent = this.getStrokeScaling() ? null\n\t\t\t\t: options && options.internal ? this\n\t\t\t\t\t: this._parent || this._symbol && this._symbol._item,\n\t\t\tmx = parent ? parent.getViewMatrix().invert() : matrix;\n\t\treturn mx && mx._shiftless();\n\t},\n\n\tstatics: {\n\t\t_updateBoundsCache: function(parent, item) {\n\t\t\tif (parent && item) {\n\t\t\t\tvar id = item._id,\n\t\t\t\t\tref = parent._boundsCache = parent._boundsCache || {\n\t\t\t\t\t\tids: {},\n\t\t\t\t\t\tlist: []\n\t\t\t\t\t};\n\t\t\t\tif (!ref.ids[id]) {\n\t\t\t\t\tref.list.push(item);\n\t\t\t\t\tref.ids[id] = item;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_clearBoundsCache: function(item) {\n\t\t\tvar cache = item._boundsCache;\n\t\t\tif (cache) {\n\t\t\t\titem._bounds = item._position = item._boundsCache = undefined;\n\t\t\t\tfor (var i = 0, list = cache.list, l = list.length; i < l; i++){\n\t\t\t\t\tvar other = list[i];\n\t\t\t\t\tif (other !== item) {\n\t\t\t\t\t\tother._bounds = other._position = undefined;\n\t\t\t\t\t\tif (other._boundsCache)\n\t\t\t\t\t\t\tItem._clearBoundsCache(other);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_getBounds: function(items, matrix, options) {\n\t\t\tvar x1 = Infinity,\n\t\t\t\tx2 = -x1,\n\t\t\t\ty1 = x1,\n\t\t\t\ty2 = x2,\n\t\t\t\tnonscaling = false;\n\t\t\toptions = options || {};\n\t\t\tfor (var i = 0, l = items.length; i < l; i++) {\n\t\t\t\tvar item = items[i];\n\t\t\t\tif (item._visible && !item.isEmpty()) {\n\t\t\t\t\tvar bounds = item._getCachedBounds(\n\t\t\t\t\t\tmatrix && matrix.appended(item._matrix), options, true),\n\t\t\t\t\t\trect = bounds.rect;\n\t\t\t\t\tx1 = Math.min(rect.x, x1);\n\t\t\t\t\ty1 = Math.min(rect.y, y1);\n\t\t\t\t\tx2 = Math.max(rect.x + rect.width, x2);\n\t\t\t\t\ty2 = Math.max(rect.y + rect.height, y2);\n\t\t\t\t\tif (bounds.nonscaling)\n\t\t\t\t\t\tnonscaling = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\trect: isFinite(x1)\n\t\t\t\t\t? new Rectangle(x1, y1, x2 - x1, y2 - y1)\n\t\t\t\t\t: new Rectangle(),\n\t\t\t\tnonscaling: nonscaling\n\t\t\t};\n\t\t}\n\t}\n\n}), {\n\tbeans: true,\n\n\t_decompose: function() {\n\t\treturn this._applyMatrix\n\t\t\t? null\n\t\t\t: this._decomposed || (this._decomposed = this._matrix.decompose());\n\t},\n\n\tgetRotation: function() {\n\t\tvar decomposed = this._decompose();\n\t\treturn decomposed ? decomposed.rotation : 0;\n\t},\n\n\tsetRotation: function(rotation) {\n\t\tvar current = this.getRotation();\n\t\tif (current != null && rotation != null) {\n\t\t\tvar decomposed = this._decomposed;\n\t\t\tthis.rotate(rotation - current);\n\t\t\tif (decomposed) {\n\t\t\t\tdecomposed.rotation = rotation;\n\t\t\t\tthis._decomposed = decomposed;\n\t\t\t}\n\t\t}\n\t},\n\n\tgetScaling: function() {\n\t\tvar decomposed = this._decompose(),\n\t\t\ts = decomposed && decomposed.scaling;\n\t\treturn new LinkedPoint(s ? s.x : 1, s ? s.y : 1, this, 'setScaling');\n\t},\n\n\tsetScaling: function() {\n\t\tvar current = this.getScaling(),\n\t\t\tscaling = Point.read(arguments, 0, { clone: true, readNull: true });\n\t\tif (current && scaling && !current.equals(scaling)) {\n\t\t\tvar rotation = this.getRotation(),\n\t\t\t\tdecomposed = this._decomposed,\n\t\t\t\tmatrix = new Matrix(),\n\t\t\t\tcenter = this.getPosition(true);\n\t\t\tmatrix.translate(center);\n\t\t\tif (rotation)\n\t\t\t\tmatrix.rotate(rotation);\n\t\t\tmatrix.scale(scaling.x / current.x, scaling.y / current.y);\n\t\t\tif (rotation)\n\t\t\t\tmatrix.rotate(-rotation);\n\t\t\tmatrix.translate(center.negate());\n\t\t\tthis.transform(matrix);\n\t\t\tif (decomposed) {\n\t\t\t\tdecomposed.scaling = scaling;\n\t\t\t\tthis._decomposed = decomposed;\n\t\t\t}\n\t\t}\n\t},\n\n\tgetMatrix: function() {\n\t\treturn this._matrix;\n\t},\n\n\tsetMatrix: function() {\n\t\tvar matrix = this._matrix;\n\t\tmatrix.initialize.apply(matrix, arguments);\n\t},\n\n\tgetGlobalMatrix: function(_dontClone) {\n\t\tvar matrix = this._globalMatrix;\n\t\tif (matrix) {\n\t\t\tvar parent = this._parent;\n\t\t\tvar parents = [];\n\t\t\twhile (parent) {\n\t\t\t\tif (!parent._globalMatrix) {\n\t\t\t\t\tmatrix = null;\n\t\t\t\t\tfor (var i = 0, l = parents.length; i < l; i++) {\n\t\t\t\t\t\tparents[i]._globalMatrix = null;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tparents.push(parent);\n\t\t\t\tparent = parent._parent;\n\t\t\t}\n\t\t}\n\t\tif (!matrix) {\n\t\t\tmatrix = this._globalMatrix = this._matrix.clone();\n\t\t\tvar parent = this._parent;\n\t\t\tif (parent)\n\t\t\t\tmatrix.prepend(parent.getGlobalMatrix(true));\n\t\t}\n\t\treturn _dontClone ? matrix : matrix.clone();\n\t},\n\n\tgetViewMatrix: function() {\n\t\treturn this.getGlobalMatrix().prepend(this.getView()._matrix);\n\t},\n\n\tgetApplyMatrix: function() {\n\t\treturn this._applyMatrix;\n\t},\n\n\tsetApplyMatrix: function(apply) {\n\t\tif (this._applyMatrix = this._canApplyMatrix && !!apply)\n\t\t\tthis.transform(null, true);\n\t},\n\n\tgetTransformContent: '#getApplyMatrix',\n\tsetTransformContent: '#setApplyMatrix',\n}, {\n\tgetProject: function() {\n\t\treturn this._project;\n\t},\n\n\t_setProject: function(project, installEvents) {\n\t\tif (this._project !== project) {\n\t\t\tif (this._project)\n\t\t\t\tthis._installEvents(false);\n\t\t\tthis._project = project;\n\t\t\tvar children = this._children;\n\t\t\tfor (var i = 0, l = children && children.length; i < l; i++)\n\t\t\t\tchildren[i]._setProject(project);\n\t\t\tinstallEvents = true;\n\t\t}\n\t\tif (installEvents)\n\t\t\tthis._installEvents(true);\n\t},\n\n\tgetView: function() {\n\t\treturn this._project._view;\n\t},\n\n\t_installEvents: function _installEvents(install) {\n\t\t_installEvents.base.call(this, install);\n\t\tvar children = this._children;\n\t\tfor (var i = 0, l = children && children.length; i < l; i++)\n\t\t\tchildren[i]._installEvents(install);\n\t},\n\n\tgetLayer: function() {\n\t\tvar parent = this;\n\t\twhile (parent = parent._parent) {\n\t\t\tif (parent instanceof Layer)\n\t\t\t\treturn parent;\n\t\t}\n\t\treturn null;\n\t},\n\n\tgetParent: function() {\n\t\treturn this._parent;\n\t},\n\n\tsetParent: function(item) {\n\t\treturn item.addChild(this);\n\t},\n\n\t_getOwner: '#getParent',\n\n\tgetChildren: function() {\n\t\treturn this._children;\n\t},\n\n\tsetChildren: function(items) {\n\t\tthis.removeChildren();\n\t\tthis.addChildren(items);\n\t},\n\n\tgetFirstChild: function() {\n\t\treturn this._children && this._children[0] || null;\n\t},\n\n\tgetLastChild: function() {\n\t\treturn this._children && this._children[this._children.length - 1]\n\t\t\t\t|| null;\n\t},\n\n\tgetNextSibling: function() {\n\t\tvar owner = this._getOwner();\n\t\treturn owner && owner._children[this._index + 1] || null;\n\t},\n\n\tgetPreviousSibling: function() {\n\t\tvar owner = this._getOwner();\n\t\treturn owner && owner._children[this._index - 1] || null;\n\t},\n\n\tgetIndex: function() {\n\t\treturn this._index;\n\t},\n\n\tequals: function(item) {\n\t\treturn item === this || item && this._class === item._class\n\t\t\t\t&& this._style.equals(item._style)\n\t\t\t\t&& this._matrix.equals(item._matrix)\n\t\t\t\t&& this._locked === item._locked\n\t\t\t\t&& this._visible === item._visible\n\t\t\t\t&& this._blendMode === item._blendMode\n\t\t\t\t&& this._opacity === item._opacity\n\t\t\t\t&& this._clipMask === item._clipMask\n\t\t\t\t&& this._guide === item._guide\n\t\t\t\t&& this._equals(item)\n\t\t\t\t|| false;\n\t},\n\n\t_equals: function(item) {\n\t\treturn Base.equals(this._children, item._children);\n\t},\n\n\tclone: function(options) {\n\t\tvar copy = new this.constructor(Item.NO_INSERT),\n\t\t\tchildren = this._children,\n\t\t\tinsert = Base.pick(options ? options.insert : undefined,\n\t\t\t\t\toptions === undefined || options === true),\n\t\t\tdeep = Base.pick(options ? options.deep : undefined, true);\n\t\tif (children)\n\t\t\tcopy.copyAttributes(this);\n\t\tif (!children || deep)\n\t\t\tcopy.copyContent(this);\n\t\tif (!children)\n\t\t\tcopy.copyAttributes(this);\n\t\tif (insert)\n\t\t\tcopy.insertAbove(this);\n\t\tvar name = this._name,\n\t\t\tparent = this._parent;\n\t\tif (name && parent) {\n\t\t\tvar children = parent._children,\n\t\t\t\torig = name,\n\t\t\t\ti = 1;\n\t\t\twhile (children[name])\n\t\t\t\tname = orig + ' ' + (i++);\n\t\t\tif (name !== orig)\n\t\t\t\tcopy.setName(name);\n\t\t}\n\t\treturn copy;\n\t},\n\n\tcopyContent: function(source) {\n\t\tvar children = source._children;\n\t\tfor (var i = 0, l = children && children.length; i < l; i++) {\n\t\t\tthis.addChild(children[i].clone(false), true);\n\t\t}\n\t},\n\n\tcopyAttributes: function(source, excludeMatrix) {\n\t\tthis.setStyle(source._style);\n\t\tvar keys = ['_locked', '_visible', '_blendMode', '_opacity',\n\t\t\t\t'_clipMask', '_guide'];\n\t\tfor (var i = 0, l = keys.length; i < l; i++) {\n\t\t\tvar key = keys[i];\n\t\t\tif (source.hasOwnProperty(key))\n\t\t\t\tthis[key] = source[key];\n\t\t}\n\t\tif (!excludeMatrix)\n\t\t\tthis._matrix.set(source._matrix, true);\n\t\tthis.setApplyMatrix(source._applyMatrix);\n\t\tthis.setPivot(source._pivot);\n\t\tthis.setSelection(source._selection);\n\t\tvar data = source._data,\n\t\t\tname = source._name;\n\t\tthis._data = data ? Base.clone(data) : null;\n\t\tif (name)\n\t\t\tthis.setName(name);\n\t},\n\n\trasterize: function(resolution, insert, boundRect) {\n\t\tvar bounds = boundRect ? boundRect : this.getStrokeBounds(),\n\t\t\tscale = (resolution || this.getView().getResolution()) / 72,\n\t\t\ttopLeft = bounds.getTopLeft().floor(),\n\t\t\tbottomRight = bounds.getBottomRight().ceil(),\n\t\t\tsize = new Size(bottomRight.subtract(topLeft)),\n\t\t\traster = new Raster(Item.NO_INSERT);\n\t\tif (!size.isZero()) {\n\t\t\tvar canvas = CanvasProvider.getCanvas(size.multiply(scale)),\n\t\t\t\tctx = canvas.getContext('2d'),\n\t\t\t\tmatrix = new Matrix().scale(scale).translate(topLeft.negate());\n\t\t\tctx.imageSmoothingEnabled = false;\n\t\t\tctx.save();\n\t\t\tmatrix.applyToContext(ctx);\n\t\t\tthis.draw(ctx, new Base({ matrices: [matrix] }));\n\t\t\tctx.restore();\n\t\t\traster.setCanvas(canvas);\n\t\t}\n\t\traster.transform(new Matrix().translate(topLeft.add(size.divide(2)))\n\t\t\t\t.scale(1 / scale));\n\t\tif (insert === undefined || insert)\n\t\t\traster.insertAbove(this);\n\t\treturn raster;\n\t},\n\n\tcontains: function() {\n\t\treturn !!this._contains(\n\t\t\t\tthis._matrix._inverseTransform(Point.read(arguments)));\n\t},\n\n\t_contains: function(point) {\n\t\tvar children = this._children;\n\t\tif (children) {\n\t\t\tfor (var i = children.length - 1; i >= 0; i--) {\n\t\t\t\tif (children[i].contains(point))\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t\treturn point.isInside(this.getInternalBounds());\n\t},\n\n\tisInside: function() {\n\t\treturn Rectangle.read(arguments).contains(this.getBounds());\n\t},\n\n\t_asPathItem: function() {\n\t\treturn new Path.Rectangle({\n\t\t\trectangle: this.getInternalBounds(),\n\t\t\tmatrix: this._matrix,\n\t\t\tinsert: false,\n\t\t});\n\t},\n\n\tintersects: function(item, _matrix) {\n\t\tif (!(item instanceof Item))\n\t\t\treturn false;\n\t\treturn this._asPathItem().getIntersections(item._asPathItem(), null,\n\t\t\t\t_matrix, true).length > 0;\n\t}\n},\nnew function() {\n\tfunction hitTest() {\n\t\treturn this._hitTest(\n\t\t\t\tPoint.read(arguments),\n\t\t\t\tHitResult.getOptions(arguments));\n\t}\n\n\tfunction hitTestAll() {\n\t\tvar point = Point.read(arguments),\n\t\t\toptions = HitResult.getOptions(arguments),\n\t\t\tall = [];\n\t\tthis._hitTest(point, Base.set({ all: all }, options));\n\t\treturn all;\n\t}\n\n\tfunction hitTestChildren(point, options, viewMatrix, _exclude) {\n\t\tvar children = this._children;\n\t\tif (children) {\n\t\t\tfor (var i = children.length - 1; i >= 0; i--) {\n\t\t\t\tvar child = children[i];\n\t\t\t\tvar res = child !== _exclude && child._hitTest(point, options,\n\t\t\t\t\t\tviewMatrix);\n\t\t\t\tif (res && !options.all)\n\t\t\t\t\treturn res;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tProject.inject({\n\t\thitTest: hitTest,\n\t\thitTestAll: hitTestAll,\n\t\t_hitTest: hitTestChildren\n\t});\n\n\treturn {\n\t\thitTest: hitTest,\n\t\thitTestAll: hitTestAll,\n\t\t_hitTestChildren: hitTestChildren,\n\t};\n}, {\n\n\t_hitTest: function(point, options, parentViewMatrix) {\n\t\tif (this._locked || !this._visible || this._guide && !options.guides\n\t\t\t\t|| this.isEmpty()) {\n\t\t\treturn null;\n\t\t}\n\n\t\tvar matrix = this._matrix,\n\t\t\tviewMatrix = parentViewMatrix\n\t\t\t\t\t? parentViewMatrix.appended(matrix)\n\t\t\t\t\t: this.getGlobalMatrix().prepend(this.getView()._matrix),\n\t\t\ttolerance = Math.max(options.tolerance, 1e-12),\n\t\t\ttolerancePadding = options._tolerancePadding = new Size(\n\t\t\t\t\tPath._getStrokePadding(tolerance,\n\t\t\t\t\t\tmatrix._shiftless().invert()));\n\t\tpoint = matrix._inverseTransform(point);\n\t\tif (!point || !this._children &&\n\t\t\t!this.getBounds({ internal: true, stroke: true, handle: true })\n\t\t\t\t.expand(tolerancePadding.multiply(2))._containsPoint(point)) {\n\t\t\treturn null;\n\t\t}\n\n\t\tvar checkSelf = !(options.guides && !this._guide\n\t\t\t\t|| options.selected && !this.isSelected()\n\t\t\t\t|| options.type && options.type !== Base.hyphenate(this._class)\n\t\t\t\t|| options.class && !(this instanceof options.class)),\n\t\t\tmatch = options.match,\n\t\t\tthat = this,\n\t\t\tbounds,\n\t\t\tres;\n\n\t\tfunction filter(hit) {\n\t\t\tif (hit && match && !match(hit))\n\t\t\t\thit = null;\n\t\t\tif (hit && options.all)\n\t\t\t\toptions.all.push(hit);\n\t\t\treturn hit;\n\t\t}\n\n\t\tfunction checkPoint(type, part) {\n\t\t\tvar pt = part ? bounds['get' + part]() : that.getPosition();\n\t\t\tif (point.subtract(pt).divide(tolerancePadding).length <= 1) {\n\t\t\t\treturn new HitResult(type, that, {\n\t\t\t\t\tname: part ? Base.hyphenate(part) : type,\n\t\t\t\t\tpoint: pt\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tvar checkPosition = options.position,\n\t\t\tcheckCenter = options.center,\n\t\t\tcheckBounds = options.bounds;\n\t\tif (checkSelf && this._parent\n\t\t\t\t&& (checkPosition || checkCenter || checkBounds)) {\n\t\t\tif (checkCenter || checkBounds) {\n\t\t\t\tbounds = this.getInternalBounds();\n\t\t\t}\n\t\t\tres = checkPosition && checkPoint('position') ||\n\t\t\t\t\tcheckCenter && checkPoint('center', 'Center');\n\t\t\tif (!res && checkBounds) {\n\t\t\t\tvar points = [\n\t\t\t\t\t'TopLeft', 'TopRight', 'BottomLeft', 'BottomRight',\n\t\t\t\t\t'LeftCenter', 'TopCenter', 'RightCenter', 'BottomCenter'\n\t\t\t\t];\n\t\t\t\tfor (var i = 0; i < 8 && !res; i++) {\n\t\t\t\t\tres = checkPoint('bounds', points[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tres = filter(res);\n\t\t}\n\n\t\tif (!res) {\n\t\t\tres = this._hitTestChildren(point, options, viewMatrix)\n\t\t\t\t|| checkSelf\n\t\t\t\t\t&& filter(this._hitTestSelf(point, options, viewMatrix,\n\t\t\t\t\t\tthis.getStrokeScaling() ? null\n\t\t\t\t\t\t\t: viewMatrix._shiftless().invert()))\n\t\t\t\t|| null;\n\t\t}\n\t\tif (res && res.point) {\n\t\t\tres.point = matrix.transform(res.point);\n\t\t}\n\t\treturn res;\n\t},\n\n\t_hitTestSelf: function(point, options) {\n\t\tif (options.fill && this.hasFill() && this._contains(point))\n\t\t\treturn new HitResult('fill', this);\n\t},\n\n\tmatches: function(name, compare) {\n\t\tfunction matchObject(obj1, obj2) {\n\t\t\tfor (var i in obj1) {\n\t\t\t\tif (obj1.hasOwnProperty(i)) {\n\t\t\t\t\tvar val1 = obj1[i],\n\t\t\t\t\t\tval2 = obj2[i];\n\t\t\t\t\tif (Base.isPlainObject(val1) && Base.isPlainObject(val2)) {\n\t\t\t\t\t\tif (!matchObject(val1, val2))\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t} else if (!Base.equals(val1, val2)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\tvar type = typeof name;\n\t\tif (type === 'object') {\n\t\t\tfor (var key in name) {\n\t\t\t\tif (name.hasOwnProperty(key) && !this.matches(key, name[key]))\n\t\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t} else if (type === 'function') {\n\t\t\treturn name(this);\n\t\t} else if (name === 'match') {\n\t\t\treturn compare(this);\n\t\t} else {\n\t\t\tvar value = /^(empty|editable)$/.test(name)\n\t\t\t\t\t? this['is' + Base.capitalize(name)]()\n\t\t\t\t\t: name === 'type'\n\t\t\t\t\t\t? Base.hyphenate(this._class)\n\t\t\t\t\t\t: this[name];\n\t\t\tif (name === 'class') {\n\t\t\t\tif (typeof compare === 'function')\n\t\t\t\t\treturn this instanceof compare;\n\t\t\t\tvalue = this._class;\n\t\t\t}\n\t\t\tif (typeof compare === 'function') {\n\t\t\t\treturn !!compare(value);\n\t\t\t} else if (compare) {\n\t\t\t\tif (compare.test) {\n\t\t\t\t\treturn compare.test(value);\n\t\t\t\t} else if (Base.isPlainObject(compare)) {\n\t\t\t\t\treturn matchObject(compare, value);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn Base.equals(value, compare);\n\t\t}\n\t},\n\n\tgetItems: function(options) {\n\t\treturn Item._getItems(this, options, this._matrix);\n\t},\n\n\tgetItem: function(options) {\n\t\treturn Item._getItems(this, options, this._matrix, null, true)[0]\n\t\t\t\t|| null;\n\t},\n\n\tstatics: {\n\t\t_getItems: function _getItems(item, options, matrix, param, firstOnly) {\n\t\t\tif (!param) {\n\t\t\t\tvar obj = typeof options === 'object' && options,\n\t\t\t\t\toverlapping = obj && obj.overlapping,\n\t\t\t\t\tinside = obj && obj.inside,\n\t\t\t\t\tbounds = overlapping || inside,\n\t\t\t\t\trect = bounds && Rectangle.read([bounds]);\n\t\t\t\tparam = {\n\t\t\t\t\titems: [],\n\t\t\t\t\trecursive: obj && obj.recursive !== false,\n\t\t\t\t\tinside: !!inside,\n\t\t\t\t\toverlapping: !!overlapping,\n\t\t\t\t\trect: rect,\n\t\t\t\t\tpath: overlapping && new Path.Rectangle({\n\t\t\t\t\t\trectangle: rect,\n\t\t\t\t\t\tinsert: false\n\t\t\t\t\t})\n\t\t\t\t};\n\t\t\t\tif (obj) {\n\t\t\t\t\toptions = Base.filter({}, options, {\n\t\t\t\t\t\trecursive: true, inside: true, overlapping: true\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar children = item._children,\n\t\t\t\titems = param.items,\n\t\t\t\trect = param.rect;\n\t\t\tmatrix = rect && (matrix || new Matrix());\n\t\t\tfor (var i = 0, l = children && children.length; i < l; i++) {\n\t\t\t\tvar child = children[i],\n\t\t\t\t\tchildMatrix = matrix && matrix.appended(child._matrix),\n\t\t\t\t\tadd = true;\n\t\t\t\tif (rect) {\n\t\t\t\t\tvar bounds = child.getBounds(childMatrix);\n\t\t\t\t\tif (!rect.intersects(bounds))\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\tif (!(rect.contains(bounds)\n\t\t\t\t\t\t\t|| param.overlapping && (bounds.contains(rect)\n\t\t\t\t\t\t\t\t|| param.path.intersects(child, childMatrix))))\n\t\t\t\t\t\tadd = false;\n\t\t\t\t}\n\t\t\t\tif (add && child.matches(options)) {\n\t\t\t\t\titems.push(child);\n\t\t\t\t\tif (firstOnly)\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (param.recursive !== false) {\n\t\t\t\t\t_getItems(child, options, childMatrix, param, firstOnly);\n\t\t\t\t}\n\t\t\t\tif (firstOnly && items.length > 0)\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\treturn items;\n\t\t}\n\t}\n}, {\n\n\timportJSON: function(json) {\n\t\tvar res = Base.importJSON(json, this);\n\t\treturn res !== this ? this.addChild(res) : res;\n\t},\n\n\taddChild: function(item) {\n\t\treturn this.insertChild(undefined, item);\n\t},\n\n\tinsertChild: function(index, item) {\n\t\tvar res = item ? this.insertChildren(index, [item]) : null;\n\t\treturn res && res[0];\n\t},\n\n\taddChildren: function(items) {\n\t\treturn this.insertChildren(this._children.length, items);\n\t},\n\n\tinsertChildren: function(index, items) {\n\t\tvar children = this._children;\n\t\tif (children && items && items.length > 0) {\n\t\t\titems = Base.slice(items);\n\t\t\tvar inserted = {};\n\t\t\tfor (var i = items.length - 1; i >= 0; i--) {\n\t\t\t\tvar item = items[i],\n\t\t\t\t\tid = item && item._id;\n\t\t\t\tif (!item || inserted[id]) {\n\t\t\t\t\titems.splice(i, 1);\n\t\t\t\t} else {\n\t\t\t\t\titem._remove(false, true);\n\t\t\t\t\tinserted[id] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tBase.splice(children, items, index, 0);\n\t\t\tvar project = this._project,\n\t\t\t\tnotifySelf = project._changes;\n\t\t\tfor (var i = 0, l = items.length; i < l; i++) {\n\t\t\t\tvar item = items[i],\n\t\t\t\t\tname = item._name;\n\t\t\t\titem._parent = this;\n\t\t\t\titem._setProject(project, true);\n\t\t\t\tif (name)\n\t\t\t\t\titem.setName(name);\n\t\t\t\tif (notifySelf)\n\t\t\t\t\titem._changed(5);\n\t\t\t}\n\t\t\tthis._changed(11);\n\t\t} else {\n\t\t\titems = null;\n\t\t}\n\t\treturn items;\n\t},\n\n\t_insertItem: '#insertChild',\n\n\t_insertAt: function(item, offset) {\n\t\tvar owner = item && item._getOwner(),\n\t\t\tres = item !== this && owner ? this : null;\n\t\tif (res) {\n\t\t\tres._remove(false, true);\n\t\t\towner._insertItem(item._index + offset, res);\n\t\t}\n\t\treturn res;\n\t},\n\n\tinsertAbove: function(item) {\n\t\treturn this._insertAt(item, 1);\n\t},\n\n\tinsertBelow: function(item) {\n\t\treturn this._insertAt(item, 0);\n\t},\n\n\tsendToBack: function() {\n\t\tvar owner = this._getOwner();\n\t\treturn owner ? owner._insertItem(0, this) : null;\n\t},\n\n\tbringToFront: function() {\n\t\tvar owner = this._getOwner();\n\t\treturn owner ? owner._insertItem(undefined, this) : null;\n\t},\n\n\tappendTop: '#addChild',\n\n\tappendBottom: function(item) {\n\t\treturn this.insertChild(0, item);\n\t},\n\n\tmoveAbove: '#insertAbove',\n\n\tmoveBelow: '#insertBelow',\n\n\taddTo: function(owner) {\n\t\treturn owner._insertItem(undefined, this);\n\t},\n\n\tcopyTo: function(owner) {\n\t\treturn this.clone(false).addTo(owner);\n\t},\n\n\treduce: function(options) {\n\t\tvar children = this._children;\n\t\tif (children && children.length === 1) {\n\t\t\tvar child = children[0].reduce(options);\n\t\t\tif (this._parent) {\n\t\t\t\tchild.insertAbove(this);\n\t\t\t\tthis.remove();\n\t\t\t} else {\n\t\t\t\tchild.remove();\n\t\t\t}\n\t\t\treturn child;\n\t\t}\n\t\treturn this;\n\t},\n\n\t_removeNamed: function() {\n\t\tvar owner = this._getOwner();\n\t\tif (owner) {\n\t\t\tvar children = owner._children,\n\t\t\t\tnamedChildren = owner._namedChildren,\n\t\t\t\tname = this._name,\n\t\t\t\tnamedArray = namedChildren[name],\n\t\t\t\tindex = namedArray ? namedArray.indexOf(this) : -1;\n\t\t\tif (index !== -1) {\n\t\t\t\tif (children[name] == this)\n\t\t\t\t\tdelete children[name];\n\t\t\t\tnamedArray.splice(index, 1);\n\t\t\t\tif (namedArray.length) {\n\t\t\t\t\tchildren[name] = namedArray[0];\n\t\t\t\t} else {\n\t\t\t\t\tdelete namedChildren[name];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t_remove: function(notifySelf, notifyParent) {\n\t\tvar owner = this._getOwner(),\n\t\t\tproject = this._project,\n\t\t\tindex = this._index;\n\t\tif (this._style)\n\t\t\tthis._style._dispose();\n\t\tif (owner) {\n\t\t\tif (this._name)\n\t\t\t\tthis._removeNamed();\n\t\t\tif (index != null) {\n\t\t\t\tif (project._activeLayer === this)\n\t\t\t\t\tproject._activeLayer = this.getNextSibling()\n\t\t\t\t\t\t\t|| this.getPreviousSibling();\n\t\t\t\tBase.splice(owner._children, null, index, 1);\n\t\t\t}\n\t\t\tthis._installEvents(false);\n\t\t\tif (notifySelf && project._changes)\n\t\t\t\tthis._changed(5);\n\t\t\tif (notifyParent)\n\t\t\t\towner._changed(11, this);\n\t\t\tthis._parent = null;\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\n\tremove: function() {\n\t\treturn this._remove(true, true);\n\t},\n\n\treplaceWith: function(item) {\n\t\tvar ok = item && item.insertBelow(this);\n\t\tif (ok)\n\t\t\tthis.remove();\n\t\treturn ok;\n\t},\n\n\tremoveChildren: function(start, end) {\n\t\tif (!this._children)\n\t\t\treturn null;\n\t\tstart = start || 0;\n\t\tend = Base.pick(end, this._children.length);\n\t\tvar removed = Base.splice(this._children, null, start, end - start);\n\t\tfor (var i = removed.length - 1; i >= 0; i--) {\n\t\t\tremoved[i]._remove(true, false);\n\t\t}\n\t\tif (removed.length > 0)\n\t\t\tthis._changed(11);\n\t\treturn removed;\n\t},\n\n\tclear: '#removeChildren',\n\n\treverseChildren: function() {\n\t\tif (this._children) {\n\t\t\tthis._children.reverse();\n\t\t\tfor (var i = 0, l = this._children.length; i < l; i++)\n\t\t\t\tthis._children[i]._index = i;\n\t\t\tthis._changed(11);\n\t\t}\n\t},\n\n\tisEmpty: function() {\n\t\tvar children = this._children;\n\t\treturn !children || !children.length;\n\t},\n\n\tisEditable: function() {\n\t\tvar item = this;\n\t\twhile (item) {\n\t\t\tif (!item._visible || item._locked)\n\t\t\t\treturn false;\n\t\t\titem = item._parent;\n\t\t}\n\t\treturn true;\n\t},\n\n\thasFill: function() {\n\t\treturn this.getStyle().hasFill();\n\t},\n\n\thasStroke: function() {\n\t\treturn this.getStyle().hasStroke();\n\t},\n\n\thasShadow: function() {\n\t\treturn this.getStyle().hasShadow();\n\t},\n\n\t_getOrder: function(item) {\n\t\tfunction getList(item) {\n\t\t\tvar list = [];\n\t\t\tdo {\n\t\t\t\tlist.unshift(item);\n\t\t\t} while (item = item._parent);\n\t\t\treturn list;\n\t\t}\n\t\tvar list1 = getList(this),\n\t\t\tlist2 = getList(item);\n\t\tfor (var i = 0, l = Math.min(list1.length, list2.length); i < l; i++) {\n\t\t\tif (list1[i] != list2[i]) {\n\t\t\t\treturn list1[i]._index < list2[i]._index ? 1 : -1;\n\t\t\t}\n\t\t}\n\t\treturn 0;\n\t},\n\n\thasChildren: function() {\n\t\treturn this._children && this._children.length > 0;\n\t},\n\n\tisInserted: function() {\n\t\treturn this._parent ? this._parent.isInserted() : false;\n\t},\n\n\tisAbove: function(item) {\n\t\treturn this._getOrder(item) === -1;\n\t},\n\n\tisBelow: function(item) {\n\t\treturn this._getOrder(item) === 1;\n\t},\n\n\tisParent: function(item) {\n\t\treturn this._parent === item;\n\t},\n\n\tisChild: function(item) {\n\t\treturn item && item._parent === this;\n\t},\n\n\tisDescendant: function(item) {\n\t\tvar parent = this;\n\t\twhile (parent = parent._parent) {\n\t\t\tif (parent === item)\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\n\tisAncestor: function(item) {\n\t\treturn item ? item.isDescendant(this) : false;\n\t},\n\n\tisSibling: function(item) {\n\t\treturn this._parent === item._parent;\n\t},\n\n\tisGroupedWith: function(item) {\n\t\tvar parent = this._parent;\n\t\twhile (parent) {\n\t\t\tif (parent._parent\n\t\t\t\t&& /^(Group|Layer|CompoundPath)$/.test(parent._class)\n\t\t\t\t&& item.isDescendant(parent))\n\t\t\t\t\treturn true;\n\t\t\tparent = parent._parent;\n\t\t}\n\t\treturn false;\n\t},\n\n}, Base.each(['rotate', 'scale', 'shear', 'skew'], function(key) {\n\tvar rotate = key === 'rotate';\n\tthis[key] = function() {\n\t\tvar value = (rotate ? Base : Point).read(arguments),\n\t\t\tcenter = Point.read(arguments, 0, { readNull: true });\n\t\treturn this.transform(new Matrix()[key](value,\n\t\t\t\tcenter || this.getPosition(true)));\n\t};\n}, {\n\ttranslate: function() {\n\t\tvar mx = new Matrix();\n\t\treturn this.transform(mx.translate.apply(mx, arguments));\n\t},\n\n\ttransform: function(matrix, _applyMatrix, _applyRecursively,\n\t\t\t_setApplyMatrix) {\n\t\tvar _matrix = this._matrix,\n\t\t\ttransformMatrix = matrix && !matrix.isIdentity(),\n\t\t\tapplyMatrix = (_applyMatrix || this._applyMatrix)\n\t\t\t\t\t&& ((!_matrix.isIdentity() || transformMatrix)\n\t\t\t\t\t\t|| _applyMatrix && _applyRecursively && this._children);\n\t\tif (!transformMatrix && !applyMatrix)\n\t\t\treturn this;\n\t\tif (transformMatrix) {\n\t\t\tif (!matrix.isInvertible() && _matrix.isInvertible())\n\t\t\t\t_matrix._backup = _matrix.getValues();\n\t\t\t_matrix.prepend(matrix, true);\n\t\t\tvar style = this._style,\n\t\t\t\tfillColor = style.getFillColor(true),\n\t\t\t\tstrokeColor = style.getStrokeColor(true);\n\t\t\tif (fillColor)\n\t\t\t\tfillColor.transform(matrix);\n\t\t\tif (strokeColor)\n\t\t\t\tstrokeColor.transform(matrix);\n\t\t}\n\t\tif (applyMatrix && (applyMatrix = this._transformContent(_matrix,\n\t\t\t\t_applyRecursively, _setApplyMatrix))) {\n\t\t\tvar pivot = this._pivot;\n\t\t\tif (pivot)\n\t\t\t\t_matrix._transformPoint(pivot, pivot, true);\n\t\t\t_matrix.reset(true);\n\t\t\tif (_setApplyMatrix && this._canApplyMatrix)\n\t\t\t\tthis._applyMatrix = true;\n\t\t}\n\t\tvar bounds = this._bounds,\n\t\t\tposition = this._position;\n\t\tif (transformMatrix || applyMatrix) {\n\t\t\tthis._changed(25);\n\t\t}\n\t\tvar decomp = transformMatrix && bounds && matrix.decompose();\n\t\tif (decomp && decomp.skewing.isZero() && decomp.rotation % 90 === 0) {\n\t\t\tfor (var key in bounds) {\n\t\t\t\tvar cache = bounds[key];\n\t\t\t\tif (cache.nonscaling) {\n\t\t\t\t\tdelete bounds[key];\n\t\t\t\t} else if (applyMatrix || !cache.internal) {\n\t\t\t\t\tvar rect = cache.rect;\n\t\t\t\t\tmatrix._transformBounds(rect, rect);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._bounds = bounds;\n\t\t\tvar cached = bounds[this._getBoundsCacheKey(\n\t\t\t\tthis._boundsOptions || {})];\n\t\t\tif (cached) {\n\t\t\t\tthis._position = this._getPositionFromBounds(cached.rect);\n\t\t\t}\n\t\t} else if (transformMatrix && position && this._pivot) {\n\t\t\tthis._position = matrix._transformPoint(position, position);\n\t\t}\n\t\treturn this;\n\t},\n\n\t_transformContent: function(matrix, applyRecursively, setApplyMatrix) {\n\t\tvar children = this._children;\n\t\tif (children) {\n\t\t\tfor (var i = 0, l = children.length; i < l; i++)\n\t\t\t\tchildren[i].transform(matrix, true, applyRecursively,\n\t\t\t\t\t\tsetApplyMatrix);\n\t\t\treturn true;\n\t\t}\n\t},\n\n\tglobalToLocal: function() {\n\t\treturn this.getGlobalMatrix(true)._inverseTransform(\n\t\t\t\tPoint.read(arguments));\n\t},\n\n\tlocalToGlobal: function() {\n\t\treturn this.getGlobalMatrix(true)._transformPoint(\n\t\t\t\tPoint.read(arguments));\n\t},\n\n\tparentToLocal: function() {\n\t\treturn this._matrix._inverseTransform(Point.read(arguments));\n\t},\n\n\tlocalToParent: function() {\n\t\treturn this._matrix._transformPoint(Point.read(arguments));\n\t},\n\n\tfitBounds: function(rectangle, fill) {\n\t\trectangle = Rectangle.read(arguments);\n\t\tvar bounds = this.getBounds(),\n\t\t\titemRatio = bounds.height / bounds.width,\n\t\t\trectRatio = rectangle.height / rectangle.width,\n\t\t\tscale = (fill ? itemRatio > rectRatio : itemRatio < rectRatio)\n\t\t\t\t\t? rectangle.width / bounds.width\n\t\t\t\t\t: rectangle.height / bounds.height,\n\t\t\tnewBounds = new Rectangle(new Point(),\n\t\t\t\t\tnew Size(bounds.width * scale, bounds.height * scale));\n\t\tnewBounds.setCenter(rectangle.getCenter());\n\t\tthis.setBounds(newBounds);\n\t}\n}), {\n\n\t_setStyles: function(ctx, param, viewMatrix) {\n\t\tvar style = this._style,\n\t\t\tmatrix = this._matrix;\n\t\tif (style.hasFill()) {\n\t\t\tctx.fillStyle = style.getFillColor().toCanvasStyle(ctx, matrix);\n\t\t}\n\t\tif (style.hasStroke()) {\n\t\t\tctx.strokeStyle = style.getStrokeColor().toCanvasStyle(ctx, matrix);\n\t\t\tctx.lineWidth = style.getStrokeWidth();\n\t\t\tvar strokeJoin = style.getStrokeJoin(),\n\t\t\t\tstrokeCap = style.getStrokeCap(),\n\t\t\t\tmiterLimit = style.getMiterLimit();\n\t\t\tif (strokeJoin)\n\t\t\t\tctx.lineJoin = strokeJoin;\n\t\t\tif (strokeCap)\n\t\t\t\tctx.lineCap = strokeCap;\n\t\t\tif (miterLimit)\n\t\t\t\tctx.miterLimit = miterLimit;\n\t\t\tif (paper.support.nativeDash) {\n\t\t\t\tvar dashArray = style.getDashArray(),\n\t\t\t\t\tdashOffset = style.getDashOffset();\n\t\t\t\tif (dashArray && dashArray.length) {\n\t\t\t\t\tif ('setLineDash' in ctx) {\n\t\t\t\t\t\tctx.setLineDash(dashArray);\n\t\t\t\t\t\tctx.lineDashOffset = dashOffset;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tctx.mozDash = dashArray;\n\t\t\t\t\t\tctx.mozDashOffset = dashOffset;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (style.hasShadow()) {\n\t\t\tvar pixelRatio = param.pixelRatio || 1,\n\t\t\t\tmx = viewMatrix._shiftless().prepend(\n\t\t\t\t\tnew Matrix().scale(pixelRatio, pixelRatio)),\n\t\t\t\tblur = mx.transform(new Point(style.getShadowBlur(), 0)),\n\t\t\t\toffset = mx.transform(this.getShadowOffset());\n\t\t\tctx.shadowColor = style.getShadowColor().toCanvasStyle(ctx);\n\t\t\tctx.shadowBlur = blur.getLength();\n\t\t\tctx.shadowOffsetX = offset.x;\n\t\t\tctx.shadowOffsetY = offset.y;\n\t\t}\n\t},\n\n\tdraw: function(ctx, param, parentStrokeMatrix) {\n\t\tvar updateVersion = this._updateVersion = this._project._updateVersion;\n\t\tif (!this._visible || this._opacity === 0)\n\t\t\treturn;\n\t\tvar matrices = param.matrices,\n\t\t\tviewMatrix = param.viewMatrix,\n\t\t\tmatrix = this._matrix,\n\t\t\tglobalMatrix = matrices[matrices.length - 1].appended(matrix);\n\t\tif (!globalMatrix.isInvertible())\n\t\t\treturn;\n\n\t\tviewMatrix = viewMatrix ? viewMatrix.appended(globalMatrix)\n\t\t\t\t: globalMatrix;\n\n\t\tmatrices.push(globalMatrix);\n\t\tif (param.updateMatrix) {\n\t\t\tthis._globalMatrix = globalMatrix;\n\t\t}\n\n\t\tvar blendMode = this._blendMode,\n\t\t\topacity = this._opacity,\n\t\t\tnormalBlend = blendMode === 'normal',\n\t\t\tnativeBlend = BlendMode.nativeModes[blendMode],\n\t\t\tdirect = normalBlend && opacity === 1\n\t\t\t\t\t|| param.dontStart\n\t\t\t\t\t|| param.clip\n\t\t\t\t\t|| (nativeBlend || normalBlend && opacity < 1)\n\t\t\t\t\t\t&& this._canComposite(),\n\t\t\tpixelRatio = param.pixelRatio || 1,\n\t\t\tmainCtx, itemOffset, prevOffset;\n\t\tif (!direct) {\n\t\t\tvar bounds = this.getStrokeBounds(viewMatrix);\n\t\t\tif (!bounds.width || !bounds.height) {\n\t\t\t\tmatrices.pop();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tprevOffset = param.offset;\n\t\t\titemOffset = param.offset = bounds.getTopLeft().floor();\n\t\t\tmainCtx = ctx;\n\t\t\tctx = CanvasProvider.getContext(bounds.getSize().ceil().add(1)\n\t\t\t\t\t.multiply(pixelRatio));\n\t\t\tif (pixelRatio !== 1)\n\t\t\t\tctx.scale(pixelRatio, pixelRatio);\n\t\t}\n\t\tctx.save();\n\t\tvar strokeMatrix = parentStrokeMatrix\n\t\t\t\t? parentStrokeMatrix.appended(matrix)\n\t\t\t\t: this._canScaleStroke && !this.getStrokeScaling(true)\n\t\t\t\t\t&& viewMatrix,\n\t\t\tclip = !direct && param.clipItem,\n\t\t\ttransform = !strokeMatrix || clip;\n\t\tif (direct) {\n\t\t\tctx.globalAlpha = opacity;\n\t\t\tif (nativeBlend)\n\t\t\t\tctx.globalCompositeOperation = blendMode;\n\t\t} else if (transform) {\n\t\t\tctx.translate(-itemOffset.x, -itemOffset.y);\n\t\t}\n\t\tif (transform) {\n\t\t\t(direct ? matrix : viewMatrix).applyToContext(ctx);\n\t\t}\n\t\tif (clip) {\n\t\t\tparam.clipItem.draw(ctx, param.extend({ clip: true }));\n\t\t}\n\t\tif (strokeMatrix) {\n\t\t\tctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n\t\t\tvar offset = param.offset;\n\t\t\tif (offset)\n\t\t\t\tctx.translate(-offset.x, -offset.y);\n\t\t}\n\t\tthis._draw(ctx, param, viewMatrix, strokeMatrix);\n\t\tctx.restore();\n\t\tmatrices.pop();\n\t\tif (param.clip && !param.dontFinish)\n\t\t\tctx.clip();\n\t\tif (!direct) {\n\t\t\tBlendMode.process(blendMode, ctx, mainCtx, opacity,\n\t\t\t\t\titemOffset.subtract(prevOffset).multiply(pixelRatio));\n\t\t\tCanvasProvider.release(ctx);\n\t\t\tparam.offset = prevOffset;\n\t\t}\n\t},\n\n\t_isUpdated: function(updateVersion) {\n\t\tvar parent = this._parent;\n\t\tif (parent instanceof CompoundPath)\n\t\t\treturn parent._isUpdated(updateVersion);\n\t\tvar updated = this._updateVersion === updateVersion;\n\t\tif (!updated && parent && parent._visible\n\t\t\t\t&& parent._isUpdated(updateVersion)) {\n\t\t\tthis._updateVersion = updateVersion;\n\t\t\tupdated = true;\n\t\t}\n\t\treturn updated;\n\t},\n\n\t_drawSelection: function(ctx, matrix, size, selectionItems, updateVersion) {\n\t\tvar selection = this._selection,\n\t\t\titemSelected = selection & 1,\n\t\t\tboundsSelected = selection & 2\n\t\t\t\t\t|| itemSelected && this._selectBounds,\n\t\t\tpositionSelected = selection & 4;\n\t\tif (!this._drawSelected)\n\t\t\titemSelected = false;\n\t\tif ((itemSelected || boundsSelected || positionSelected)\n\t\t\t\t&& this._isUpdated(updateVersion)) {\n\t\t\tvar layer,\n\t\t\t\tcolor = this.getSelectedColor(true) || (layer = this.getLayer())\n\t\t\t\t\t&& layer.getSelectedColor(true),\n\t\t\t\tmx = matrix.appended(this.getGlobalMatrix(true)),\n\t\t\t\thalf = size / 2;\n\t\t\tctx.strokeStyle = ctx.fillStyle = color\n\t\t\t\t\t? color.toCanvasStyle(ctx) : '#009dec';\n\t\t\tctx.lineWidth=2.5;\n\t\t\tif (itemSelected)\n\t\t\t\tthis._drawSelected(ctx, mx, selectionItems);\n\t\t\tif (positionSelected) {\n\t\t\t\tvar pos = this.getPosition(true),\n\t\t\t\t\tparent = this._parent,\n\t\t\t\t\tpoint = parent ? parent.localToGlobal(pos) : pos,\n\t\t\t\t\tx = point.x,\n\t\t\t\t\ty = point.y;\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.arc(x, y, half, 0, Math.PI * 2, true);\n\t\t\t\tctx.stroke();\n\t\t\t\tvar deltas = [[0, -1], [1, 0], [0, 1], [-1, 0]],\n\t\t\t\t\tstart = half,\n\t\t\t\t\tend = size + 1;\n\t\t\t\tfor (var i = 0; i < 4; i++) {\n\t\t\t\t\tvar delta = deltas[i],\n\t\t\t\t\t\tdx = delta[0],\n\t\t\t\t\t\tdy = delta[1];\n\t\t\t\t\tctx.moveTo(x + dx * start, y + dy * start);\n\t\t\t\t\tctx.lineTo(x + dx * end, y + dy * end);\n\t\t\t\t\tctx.stroke();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (boundsSelected) {\n\t\t\t\tvar coords = mx._transformCorners(this.getInternalBounds());\n\t\t\t\tctx.beginPath();\n\t\t\t\tfor (var i = 0; i < 8; i++) {\n\t\t\t\t\tctx[!i ? 'moveTo' : 'lineTo'](coords[i], coords[++i]);\n\t\t\t\t}\n\t\t\t\tctx.closePath();\n\t\t\t\tctx.stroke();\n\t\t\t\tfor (var i = 0; i < 8; i++) {\n\t\t\t\t\tctx.fillRect(coords[i] - half, coords[++i] - half,\n\t\t\t\t\t\t\tsize, size);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t_canComposite: function() {\n\t\treturn false;\n\t}\n}, Base.each(['down', 'drag', 'up', 'move'], function(key) {\n\tthis['removeOn' + Base.capitalize(key)] = function() {\n\t\tvar hash = {};\n\t\thash[key] = true;\n\t\treturn this.removeOn(hash);\n\t};\n}, {\n\n\tremoveOn: function(obj) {\n\t\tfor (var name in obj) {\n\t\t\tif (obj[name]) {\n\t\t\t\tvar key = 'mouse' + name,\n\t\t\t\t\tproject = this._project,\n\t\t\t\t\tsets = project._removeSets = project._removeSets || {};\n\t\t\t\tsets[key] = sets[key] || {};\n\t\t\t\tsets[key][this._id] = this;\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n}));\n\nvar Group = Item.extend({\n\t_class: 'Group',\n\t_selectBounds: false,\n\t_selectChildren: true,\n\t_serializeFields: {\n\t\tchildren: []\n\t},\n\n\tinitialize: function Group(arg) {\n\t\tthis._children = [];\n\t\tthis._namedChildren = {};\n\t\tif (!this._initialize(arg))\n\t\t\tthis.addChildren(Array.isArray(arg) ? arg : arguments);\n\t},\n\n\t_changed: function _changed(flags) {\n\t\t_changed.base.call(this, flags);\n\t\tif (flags & 2050) {\n\t\t\tthis._clipItem = undefined;\n\t\t}\n\t},\n\n\t_getClipItem: function() {\n\t\tvar clipItem = this._clipItem;\n\t\tif (clipItem === undefined) {\n\t\t\tclipItem = null;\n\t\t\tvar children = this._children;\n\t\t\tfor (var i = 0, l = children.length; i < l; i++) {\n\t\t\t\tif (children[i]._clipMask) {\n\t\t\t\t\tclipItem = children[i];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._clipItem = clipItem;\n\t\t}\n\t\treturn clipItem;\n\t},\n\n\tisClipped: function() {\n\t\treturn !!this._getClipItem();\n\t},\n\n\tsetClipped: function(clipped) {\n\t\tvar child = this.getFirstChild();\n\t\tif (child)\n\t\t\tchild.setClipMask(clipped);\n\t},\n\n\t_getBounds: function _getBounds(matrix, options) {\n\t\tvar clipItem = this._getClipItem();\n\t\treturn clipItem\n\t\t\t? clipItem._getCachedBounds(\n\t\t\t\tmatrix && matrix.appended(clipItem._matrix),\n\t\t\t\tBase.set({}, options, { stroke: false }))\n\t\t\t: _getBounds.base.call(this, matrix, options);\n\t},\n\n\t_hitTestChildren: function _hitTestChildren(point, options, viewMatrix) {\n\t\tvar clipItem = this._getClipItem();\n\t\treturn (!clipItem || clipItem.contains(point))\n\t\t\t\t&& _hitTestChildren.base.call(this, point, options, viewMatrix,\n\t\t\t\t\tclipItem);\n\t},\n\n\t_draw: function(ctx, param) {\n\t\tvar clip = param.clip,\n\t\t\tclipItem = !clip && this._getClipItem();\n\t\tparam = param.extend({ clipItem: clipItem, clip: false });\n\t\tif (clip) {\n\t\t\tctx.beginPath();\n\t\t\tparam.dontStart = param.dontFinish = true;\n\t\t} else if (clipItem) {\n\t\t\tclipItem.draw(ctx, param.extend({ clip: true }));\n\t\t}\n\t\tvar children = this._children;\n\t\tfor (var i = 0, l = children.length; i < l; i++) {\n\t\t\tvar item = children[i];\n\t\t\tif (item !== clipItem)\n\t\t\t\titem.draw(ctx, param);\n\t\t}\n\t}\n});\n\nvar Layer = Group.extend({\n\t_class: 'Layer',\n\n\tinitialize: function Layer() {\n\t\tGroup.apply(this, arguments);\n\t},\n\n\t_getOwner: function() {\n\t\treturn this._parent || this._index != null && this._project;\n\t},\n\n\tisInserted: function isInserted() {\n\t\treturn this._parent ? isInserted.base.call(this) : this._index != null;\n\t},\n\n\tactivate: function() {\n\t\tthis._project._activeLayer = this;\n\t},\n\n\t_hitTestSelf: function() {\n\t}\n});\n\nvar Shape = Item.extend({\n\t_class: 'Shape',\n\t_applyMatrix: false,\n\t_canApplyMatrix: false,\n\t_canScaleStroke: true,\n\t_serializeFields: {\n\t\ttype: null,\n\t\tsize: null,\n\t\tradius: null\n\t},\n\n\tinitialize: function Shape(props, point) {\n\t\tthis._initialize(props, point);\n\t},\n\n\t_equals: function(item) {\n\t\treturn this._type === item._type\n\t\t\t&& this._size.equals(item._size)\n\t\t\t&& Base.equals(this._radius, item._radius);\n\t},\n\n\tcopyContent: function(source) {\n\t\tthis.setType(source._type);\n\t\tthis.setSize(source._size);\n\t\tthis.setRadius(source._radius);\n\t},\n\n\tgetType: function() {\n\t\treturn this._type;\n\t},\n\n\tsetType: function(type) {\n\t\tthis._type = type;\n\t},\n\n\tgetShape: '#getType',\n\tsetShape: '#setType',\n\n\tgetSize: function() {\n\t\tvar size = this._size;\n\t\treturn new LinkedSize(size.width, size.height, this, 'setSize');\n\t},\n\n\tsetSize: function() {\n\t\tvar size = Size.read(arguments);\n\t\tif (!this._size) {\n\t\t\tthis._size = size.clone();\n\t\t} else if (!this._size.equals(size)) {\n\t\t\tvar type = this._type,\n\t\t\t\twidth = size.width,\n\t\t\t\theight = size.height;\n\t\t\tif (type === 'rectangle') {\n\t\t\t\tthis._radius.set(Size.min(this._radius, size.divide(2)));\n\t\t\t} else if (type === 'circle') {\n\t\t\t\twidth = height = (width + height) / 2;\n\t\t\t\tthis._radius = width / 2;\n\t\t\t} else if (type === 'ellipse') {\n\t\t\t\tthis._radius._set(width / 2, height / 2);\n\t\t\t}\n\t\t\tthis._size._set(width, height);\n\t\t\tthis._changed(9);\n\t\t}\n\t},\n\n\tgetRadius: function() {\n\t\tvar rad = this._radius;\n\t\treturn this._type === 'circle'\n\t\t\t\t? rad\n\t\t\t\t: new LinkedSize(rad.width, rad.height, this, 'setRadius');\n\t},\n\n\tsetRadius: function(radius) {\n\t\tvar type = this._type;\n\t\tif (type === 'circle') {\n\t\t\tif (radius === this._radius)\n\t\t\t\treturn;\n\t\t\tvar size = radius * 2;\n\t\t\tthis._radius = radius;\n\t\t\tthis._size._set(size, size);\n\t\t} else {\n\t\t\tradius = Size.read(arguments);\n\t\t\tif (!this._radius) {\n\t\t\t\tthis._radius = radius.clone();\n\t\t\t} else {\n\t\t\t\tif (this._radius.equals(radius))\n\t\t\t\t\treturn;\n\t\t\t\tthis._radius.set(radius);\n\t\t\t\tif (type === 'rectangle') {\n\t\t\t\t\tvar size = Size.max(this._size, radius.multiply(2));\n\t\t\t\t\tthis._size.set(size);\n\t\t\t\t} else if (type === 'ellipse') {\n\t\t\t\t\tthis._size._set(radius.width * 2, radius.height * 2);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._changed(9);\n\t},\n\n\tisEmpty: function() {\n\t\treturn false;\n\t},\n\n\ttoPath: function(insert) {\n\t\tvar path = new Path[Base.capitalize(this._type)]({\n\t\t\tcenter: new Point(),\n\t\t\tsize: this._size,\n\t\t\tradius: this._radius,\n\t\t\tinsert: false\n\t\t});\n\t\tpath.copyAttributes(this);\n\t\tif (paper.settings.applyMatrix)\n\t\t\tpath.setApplyMatrix(true);\n\t\tif (insert === undefined || insert)\n\t\t\tpath.insertAbove(this);\n\t\treturn path;\n\t},\n\n\ttoShape: '#clone',\n\n\t_asPathItem: function() {\n\t\treturn this.toPath(false);\n\t},\n\n\t_draw: function(ctx, param, viewMatrix, strokeMatrix) {\n\t\tvar style = this._style,\n\t\t\thasFill = style.hasFill(),\n\t\t\thasStroke = style.hasStroke(),\n\t\t\tdontPaint = param.dontFinish || param.clip,\n\t\t\tuntransformed = !strokeMatrix;\n\t\tif (hasFill || hasStroke || dontPaint) {\n\t\t\tvar type = this._type,\n\t\t\t\tradius = this._radius,\n\t\t\t\tisCircle = type === 'circle';\n\t\t\tif (!param.dontStart)\n\t\t\t\tctx.beginPath();\n\t\t\tif (untransformed && isCircle) {\n\t\t\t\tctx.arc(0, 0, radius, 0, Math.PI * 2, true);\n\t\t\t} else {\n\t\t\t\tvar rx = isCircle ? radius : radius.width,\n\t\t\t\t\try = isCircle ? radius : radius.height,\n\t\t\t\t\tsize = this._size,\n\t\t\t\t\twidth = size.width,\n\t\t\t\t\theight = size.height;\n\t\t\t\tif (untransformed && type === 'rectangle' && rx === 0 && ry === 0) {\n\t\t\t\t\tctx.rect(-width / 2, -height / 2, width, height);\n\t\t\t\t} else {\n\t\t\t\t\tvar x = width / 2,\n\t\t\t\t\t\ty = height / 2,\n\t\t\t\t\t\tkappa = 1 - 0.5522847498307936,\n\t\t\t\t\t\tcx = rx * kappa,\n\t\t\t\t\t\tcy = ry * kappa,\n\t\t\t\t\t\tc = [\n\t\t\t\t\t\t\t-x, -y + ry,\n\t\t\t\t\t\t\t-x, -y + cy,\n\t\t\t\t\t\t\t-x + cx, -y,\n\t\t\t\t\t\t\t-x + rx, -y,\n\t\t\t\t\t\t\tx - rx, -y,\n\t\t\t\t\t\t\tx - cx, -y,\n\t\t\t\t\t\t\tx, -y + cy,\n\t\t\t\t\t\t\tx, -y + ry,\n\t\t\t\t\t\t\tx, y - ry,\n\t\t\t\t\t\t\tx, y - cy,\n\t\t\t\t\t\t\tx - cx, y,\n\t\t\t\t\t\t\tx - rx, y,\n\t\t\t\t\t\t\t-x + rx, y,\n\t\t\t\t\t\t\t-x + cx, y,\n\t\t\t\t\t\t\t-x, y - cy,\n\t\t\t\t\t\t\t-x, y - ry\n\t\t\t\t\t\t];\n\t\t\t\t\tif (strokeMatrix)\n\t\t\t\t\t\tstrokeMatrix.transform(c, c, 32);\n\t\t\t\t\tctx.moveTo(c[0], c[1]);\n\t\t\t\t\tctx.bezierCurveTo(c[2], c[3], c[4], c[5], c[6], c[7]);\n\t\t\t\t\tif (x !== rx)\n\t\t\t\t\t\tctx.lineTo(c[8], c[9]);\n\t\t\t\t\tctx.bezierCurveTo(c[10], c[11], c[12], c[13], c[14], c[15]);\n\t\t\t\t\tif (y !== ry)\n\t\t\t\t\t\tctx.lineTo(c[16], c[17]);\n\t\t\t\t\tctx.bezierCurveTo(c[18], c[19], c[20], c[21], c[22], c[23]);\n\t\t\t\t\tif (x !== rx)\n\t\t\t\t\t\tctx.lineTo(c[24], c[25]);\n\t\t\t\t\tctx.bezierCurveTo(c[26], c[27], c[28], c[29], c[30], c[31]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tctx.closePath();\n\t\t}\n\t\tif (!dontPaint && (hasFill || hasStroke)) {\n\t\t\tthis._setStyles(ctx, param, viewMatrix);\n\t\t\tif (hasFill) {\n\t\t\t\tctx.fill(style.getFillRule());\n\t\t\t\tctx.shadowColor = 'rgba(0,0,0,0)';\n\t\t\t}\n\t\t\tif (hasStroke)\n\t\t\t\tctx.stroke();\n\t\t}\n\t},\n\n\t_canComposite: function() {\n\t\treturn !(this.hasFill() && this.hasStroke());\n\t},\n\n\t_getBounds: function(matrix, options) {\n\t\tvar rect = new Rectangle(this._size).setCenter(0, 0),\n\t\t\tstyle = this._style,\n\t\t\tstrokeWidth = options.stroke && style.hasStroke()\n\t\t\t\t\t&& style.getStrokeWidth();\n\t\tif (matrix)\n\t\t\trect = matrix._transformBounds(rect);\n\t\treturn strokeWidth\n\t\t\t\t? rect.expand(Path._getStrokePadding(strokeWidth,\n\t\t\t\t\tthis._getStrokeMatrix(matrix, options)))\n\t\t\t\t: rect;\n\t}\n},\nnew function() {\n\tfunction getCornerCenter(that, point, expand) {\n\t\tvar radius = that._radius;\n\t\tif (!radius.isZero()) {\n\t\t\tvar halfSize = that._size.divide(2);\n\t\t\tfor (var q = 1; q <= 4; q++) {\n\t\t\t\tvar dir = new Point(q > 1 && q < 4 ? -1 : 1, q > 2 ? -1 : 1),\n\t\t\t\t\tcorner = dir.multiply(halfSize),\n\t\t\t\t\tcenter = corner.subtract(dir.multiply(radius)),\n\t\t\t\t\trect = new Rectangle(\n\t\t\t\t\t\t\texpand ? corner.add(dir.multiply(expand)) : corner,\n\t\t\t\t\t\t\tcenter);\n\t\t\t\tif (rect.contains(point))\n\t\t\t\t\treturn { point: center, quadrant: q };\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction isOnEllipseStroke(point, radius, padding, quadrant) {\n\t\tvar vector = point.divide(radius);\n\t\treturn (!quadrant || vector.isInQuadrant(quadrant)) &&\n\t\t\t\tvector.subtract(vector.normalize()).multiply(radius)\n\t\t\t\t\t.divide(padding).length <= 1;\n\t}\n\n\treturn {\n\t\t_contains: function _contains(point) {\n\t\t\tif (this._type === 'rectangle') {\n\t\t\t\tvar center = getCornerCenter(this, point);\n\t\t\t\treturn center\n\t\t\t\t\t\t? point.subtract(center.point).divide(this._radius)\n\t\t\t\t\t\t\t.getLength() <= 1\n\t\t\t\t\t\t: _contains.base.call(this, point);\n\t\t\t} else {\n\t\t\t\treturn point.divide(this.size).getLength() <= 0.5;\n\t\t\t}\n\t\t},\n\n\t\t_hitTestSelf: function _hitTestSelf(point, options, viewMatrix,\n\t\t\t\tstrokeMatrix) {\n\t\t\tvar hit = false,\n\t\t\t\tstyle = this._style,\n\t\t\t\thitStroke = options.stroke && style.hasStroke(),\n\t\t\t\thitFill = options.fill && style.hasFill();\n\t\t\tif (hitStroke || hitFill) {\n\t\t\t\tvar type = this._type,\n\t\t\t\t\tradius = this._radius,\n\t\t\t\t\tstrokeRadius = hitStroke ? style.getStrokeWidth() / 2 : 0,\n\t\t\t\t\tstrokePadding = options._tolerancePadding.add(\n\t\t\t\t\t\tPath._getStrokePadding(strokeRadius,\n\t\t\t\t\t\t\t!style.getStrokeScaling() && strokeMatrix));\n\t\t\t\tif (type === 'rectangle') {\n\t\t\t\t\tvar padding = strokePadding.multiply(2),\n\t\t\t\t\t\tcenter = getCornerCenter(this, point, padding);\n\t\t\t\t\tif (center) {\n\t\t\t\t\t\thit = isOnEllipseStroke(point.subtract(center.point),\n\t\t\t\t\t\t\t\tradius, strokePadding, center.quadrant);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar rect = new Rectangle(this._size).setCenter(0, 0),\n\t\t\t\t\t\t\touter = rect.expand(padding),\n\t\t\t\t\t\t\tinner = rect.expand(padding.negate());\n\t\t\t\t\t\thit = outer._containsPoint(point)\n\t\t\t\t\t\t\t\t&& !inner._containsPoint(point);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\thit = isOnEllipseStroke(point, radius, strokePadding);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn hit ? new HitResult(hitStroke ? 'stroke' : 'fill', this)\n\t\t\t\t\t: _hitTestSelf.base.apply(this, arguments);\n\t\t}\n\t};\n}, {\n\nstatics: new function() {\n\tfunction createShape(type, point, size, radius, args) {\n\t\tvar item = new Shape(Base.getNamed(args), point);\n\t\titem._type = type;\n\t\titem._size = size;\n\t\titem._radius = radius;\n\t\treturn item;\n\t}\n\n\treturn {\n\t\tCircle: function() {\n\t\t\tvar center = Point.readNamed(arguments, 'center'),\n\t\t\t\tradius = Base.readNamed(arguments, 'radius');\n\t\t\treturn createShape('circle', center, new Size(radius * 2), radius,\n\t\t\t\t\targuments);\n\t\t},\n\n\t\tRectangle: function() {\n\t\t\tvar rect = Rectangle.readNamed(arguments, 'rectangle'),\n\t\t\t\tradius = Size.min(Size.readNamed(arguments, 'radius'),\n\t\t\t\t\t\trect.getSize(true).divide(2));\n\t\t\treturn createShape('rectangle', rect.getCenter(true),\n\t\t\t\t\trect.getSize(true), radius, arguments);\n\t\t},\n\n\t\tEllipse: function() {\n\t\t\tvar ellipse = Shape._readEllipse(arguments),\n\t\t\t\tradius = ellipse.radius;\n\t\t\treturn createShape('ellipse', ellipse.center, radius.multiply(2),\n\t\t\t\t\tradius, arguments);\n\t\t},\n\n\t\t_readEllipse: function(args) {\n\t\t\tvar center,\n\t\t\t\tradius;\n\t\t\tif (Base.hasNamed(args, 'radius')) {\n\t\t\t\tcenter = Point.readNamed(args, 'center');\n\t\t\t\tradius = Size.readNamed(args, 'radius');\n\t\t\t} else {\n\t\t\t\tvar rect = Rectangle.readNamed(args, 'rectangle');\n\t\t\t\tcenter = rect.getCenter(true);\n\t\t\t\tradius = rect.getSize(true).divide(2);\n\t\t\t}\n\t\t\treturn { center: center, radius: radius };\n\t\t}\n\t};\n}});\n\nvar Raster = Item.extend({\n\t_class: 'Raster',\n\t_applyMatrix: false,\n\t_canApplyMatrix: false,\n\t_boundsOptions: { stroke: false, handle: false },\n\t_serializeFields: {\n\t\tcrossOrigin: null,\n\t\tsource: null\n\t},\n\t_prioritize: ['crossOrigin'],\n\t_smoothing: false,\n\n\tinitialize: function Raster(object, position) {\n\t\tif (!this._initialize(object,\n\t\t\t\tposition !== undefined && Point.read(arguments, 1))) {\n\t\t\tvar image = typeof object === 'string'\n\t\t\t\t\t? document.getElementById(object) : object;\n\t\t\tif (image) {\n\t\t\t\tthis.setImage(image);\n\t\t\t} else {\n\t\t\t\tthis.setSource(object);\n\t\t\t}\n\t\t}\n\t\tif (!this._size) {\n\t\t\tthis._size = new Size();\n\t\t\tthis._loaded = false;\n\t\t}\n\t},\n\n\t_equals: function(item) {\n\t\treturn this.getSource() === item.getSource();\n\t},\n\n\tcopyContent: function(source) {\n\t\tvar image = source._image,\n\t\t\tcanvas = source._canvas;\n\t\tif (image) {\n\t\t\tthis._setImage(image);\n\t\t} else if (canvas) {\n\t\t\tvar copyCanvas = CanvasProvider.getCanvas(source._size);\n\t\t\tcopyCanvas.getContext('2d').drawImage(canvas, 0, 0);\n\t\t\tthis._setImage(copyCanvas);\n\t\t}\n\t\tthis._crossOrigin = source._crossOrigin;\n\t},\n\n\tgetSize: function() {\n\t\tvar size = this._size;\n\t\treturn new LinkedSize(size ? size.width : 0, size ? size.height : 0,\n\t\t\t\tthis, 'setSize');\n\t},\n\n\tsetSize: function() {\n\t\tvar size = Size.read(arguments);\n\t\tif (!size.equals(this._size)) {\n\t\t\tif (size.width > 0 && size.height > 0) {\n\t\t\t\tvar element = this.getElement();\n\t\t\t\tthis._setImage(CanvasProvider.getCanvas(size));\n\t\t\t\tif (element)\n\t\t\t\t\tthis.getContext(true).drawImage(element, 0, 0,\n\t\t\t\t\t\t\tsize.width, size.height);\n\t\t\t} else {\n\t\t\t\tif (this._canvas)\n\t\t\t\t\tCanvasProvider.release(this._canvas);\n\t\t\t\tthis._size = size.clone();\n\t\t\t}\n\t\t}\n\t},\n\n\tgetWidth: function() {\n\t\treturn this._size ? this._size.width : 0;\n\t},\n\n\tsetWidth: function(width) {\n\t\tthis.setSize(width, this.getHeight());\n\t},\n\n\tgetHeight: function() {\n\t\treturn this._size ? this._size.height : 0;\n\t},\n\n\tsetHeight: function(height) {\n\t\tthis.setSize(this.getWidth(), height);\n\t},\n\n\tgetLoaded: function() {\n\t\treturn this._loaded;\n\t},\n\n\tisEmpty: function() {\n\t\tvar size = this._size;\n\t\treturn !size || size.width === 0 && size.height === 0;\n\t},\n\n\tgetResolution: function() {\n\t\tvar matrix = this._matrix,\n\t\t\torig = new Point(0, 0).transform(matrix),\n\t\t\tu = new Point(1, 0).transform(matrix).subtract(orig),\n\t\t\tv = new Point(0, 1).transform(matrix).subtract(orig);\n\t\treturn new Size(\n\t\t\t72 / u.getLength(),\n\t\t\t72 / v.getLength()\n\t\t);\n\t},\n\n\tgetPpi: '#getResolution',\n\n\tgetImage: function() {\n\t\treturn this._image;\n\t},\n\n\tsetImage: function(image) {\n\t\tvar that = this;\n\n\t\tfunction emit(event) {\n\t\t\tvar view = that.getView(),\n\t\t\t\ttype = event && event.type || 'load';\n\t\t\tif (view && that.responds(type)) {\n\t\t\t\tpaper = view._scope;\n\t\t\t\tthat.emit(type, new Event(event));\n\t\t\t}\n\t\t}\n\n\t\tthis._setImage(image);\n\t\tif (this._loaded) {\n\t\t\tsetTimeout(emit, 0);\n\t\t} else if (image) {\n\t\t\tDomEvent.add(image, {\n\t\t\t\tload: function(event) {\n\t\t\t\t\tthat._setImage(image);\n\t\t\t\t\temit(event);\n\t\t\t\t},\n\t\t\t\terror: emit\n\t\t\t});\n\t\t}\n\t},\n\n\t_setImage: function(image) {\n\t\tif (this._canvas)\n\t\t\tCanvasProvider.release(this._canvas);\n\t\tif (image && image.getContext) {\n\t\t\tthis._image = null;\n\t\t\tthis._canvas = image;\n\t\t\tthis._loaded = true;\n\t\t} else {\n\t\t\tthis._image = image;\n\t\t\tthis._canvas = null;\n\t\t\tthis._loaded = !!(image && image.src && image.complete);\n\t\t}\n\t\tthis._size = new Size(\n\t\t\t\timage ? image.naturalWidth || image.width : 0,\n\t\t\t\timage ? image.naturalHeight || image.height : 0);\n\t\tthis._context = null;\n\t\tthis._changed(1033);\n\t},\n\n\tgetCanvas: function() {\n\t\tif (!this._canvas) {\n\t\t\tvar ctx = CanvasProvider.getContext(this._size);\n\t\t\ttry {\n\t\t\t\tif (this._image)\n\t\t\t\t\tctx.drawImage(this._image, 0, 0);\n\t\t\t\tthis._canvas = ctx.canvas;\n\t\t\t} catch (e) {\n\t\t\t\tCanvasProvider.release(ctx);\n\t\t\t}\n\t\t}\n\t\treturn this._canvas;\n\t},\n\n\tsetCanvas: '#setImage',\n\n\tgetContext: function(modify) {\n\t\tif (!this._context)\n\t\t\tthis._context = this.getCanvas().getContext('2d');\n\t\tif (modify) {\n\t\t\tthis._image = null;\n\t\t\tthis._changed(1025);\n\t\t}\n\t\treturn this._context;\n\t},\n\n\tsetContext: function(context) {\n\t\tthis._context = context;\n\t},\n\n\tgetSource: function() {\n\t\tvar image = this._image;\n\t\treturn image && image.src || this.toDataURL();\n\t},\n\n\tsetSource: function(src) {\n\t\tvar image = new self.Image(),\n\t\t\tcrossOrigin = this._crossOrigin;\n\t\tif (crossOrigin)\n\t\t\timage.crossOrigin = crossOrigin;\n\t\timage.src = src;\n\t\tthis.setImage(image);\n\t},\n\n\tgetCrossOrigin: function() {\n\t\tvar image = this._image;\n\t\treturn image && image.crossOrigin || this._crossOrigin || '';\n\t},\n\n\tsetCrossOrigin: function(crossOrigin) {\n\t\tthis._crossOrigin = crossOrigin;\n\t\tvar image = this._image;\n\t\tif (image)\n\t\t\timage.crossOrigin = crossOrigin;\n\t},\n\n\tgetSmoothing: function() {\n\t\treturn this._smoothing;\n\t},\n\n\tsetSmoothing: function(smoothing) {\n\t\tthis._smoothing = smoothing;\n\t\tthis._changed(257);\n\t},\n\n\tgetElement: function() {\n\t\treturn this._canvas || this._loaded && this._image;\n\t}\n}, {\n\tbeans: false,\n\n\tgetSubCanvas: function() {\n\t\tvar rect = Rectangle.read(arguments),\n\t\t\tctx = CanvasProvider.getContext(rect.getSize());\n\t\tvar clippedStartX = Math.max(0, rect.x);\n\t\tvar clippedStartY = Math.max(0, rect.y);\n\t\tvar clippedEndX = Math.min(this.getCanvas().width, rect.x + rect.width);\n\t\tvar clippedEndY = Math.min(this.getCanvas().height, rect.y + rect.height);\n\t\tctx.drawImage(this.getCanvas(),\n\t\t\tclippedStartX, clippedStartY,\n\t\t\tclippedEndX - clippedStartX, clippedEndY - clippedStartY,\n\t\t\tclippedStartX - rect.x, clippedStartY - rect.y,\n\t\t\tclippedEndX - clippedStartX, clippedEndY - clippedStartY\n\t\t);\n\t\treturn ctx.canvas;\n\t},\n\n\tgetSubRaster: function() {\n\t\tvar rect = Rectangle.read(arguments),\n\t\t\traster = new Raster(Item.NO_INSERT);\n\t\traster._setImage(this.getSubCanvas(rect));\n\t\traster.translate(rect.getCenter().subtract(this.getSize().divide(2)));\n\t\traster._matrix.prepend(this._matrix);\n\t\traster.insertAbove(this);\n\t\treturn raster;\n\t},\n\n\ttoDataURL: function() {\n\t\tvar image = this._image,\n\t\t\tsrc = image && image.src;\n\t\tif (/^data:/.test(src))\n\t\t\treturn src;\n\t\tvar canvas = this.getCanvas();\n\t\treturn canvas ? canvas.toDataURL.apply(canvas, arguments) : null;\n\t},\n\n\tdrawImage: function(image ) {\n\t\tvar point = Point.read(arguments, 1);\n\t\tthis.getContext(true).drawImage(image, point.x, point.y);\n\t},\n\n\tgetAverageColor: function(object) {\n\t\tvar bounds, path;\n\t\tif (!object) {\n\t\t\tbounds = this.getBounds();\n\t\t} else if (object instanceof PathItem) {\n\t\t\tpath = object;\n\t\t\tbounds = object.getBounds();\n\t\t} else if (typeof object === 'object') {\n\t\t\tif ('width' in object) {\n\t\t\t\tbounds = new Rectangle(object);\n\t\t\t} else if ('x' in object) {\n\t\t\t\tbounds = new Rectangle(object.x - 0.5, object.y - 0.5, 1, 1);\n\t\t\t}\n\t\t}\n\t\tif (!bounds)\n\t\t\treturn null;\n\t\tvar sampleSize = 32,\n\t\t\twidth = Math.min(bounds.width, sampleSize),\n\t\t\theight = Math.min(bounds.height, sampleSize);\n\t\tvar ctx = Raster._sampleContext;\n\t\tif (!ctx) {\n\t\t\tctx = Raster._sampleContext = CanvasProvider.getContext(\n\t\t\t\t\tnew Size(sampleSize));\n\t\t} else {\n\t\t\tctx.clearRect(0, 0, sampleSize + 1, sampleSize + 1);\n\t\t}\n\t\tctx.save();\n\t\tvar matrix = new Matrix()\n\t\t\t\t.scale(width / bounds.width, height / bounds.height)\n\t\t\t\t.translate(-bounds.x, -bounds.y);\n\t\tmatrix.applyToContext(ctx);\n\t\tif (path)\n\t\t\tpath.draw(ctx, new Base({ clip: true, matrices: [matrix] }));\n\t\tthis._matrix.applyToContext(ctx);\n\t\tvar element = this.getElement(),\n\t\t\tsize = this._size;\n\t\tif (element)\n\t\t\tctx.drawImage(element, -size.width / 2, -size.height / 2);\n\t\tctx.restore();\n\t\tvar pixels = ctx.getImageData(0.5, 0.5, Math.ceil(width),\n\t\t\t\tMath.ceil(height)).data,\n\t\t\tchannels = [0, 0, 0],\n\t\t\ttotal = 0;\n\t\tfor (var i = 0, l = pixels.length; i < l; i += 4) {\n\t\t\tvar alpha = pixels[i + 3];\n\t\t\ttotal += alpha;\n\t\t\talpha /= 255;\n\t\t\tchannels[0] += pixels[i] * alpha;\n\t\t\tchannels[1] += pixels[i + 1] * alpha;\n\t\t\tchannels[2] += pixels[i + 2] * alpha;\n\t\t}\n\t\tfor (var i = 0; i < 3; i++)\n\t\t\tchannels[i] /= total;\n\t\treturn total ? Color.read(channels) : null;\n\t},\n\n\tgetPixel: function() {\n\t\tvar point = Point.read(arguments);\n\t\tvar data = this.getContext().getImageData(point.x, point.y, 1, 1).data;\n\t\treturn new Color('rgb', [data[0] / 255, data[1] / 255, data[2] / 255],\n\t\t\t\tdata[3] / 255);\n\t},\n\n\tsetPixel: function() {\n\t\tvar point = Point.read(arguments),\n\t\t\tcolor = Color.read(arguments),\n\t\t\tcomponents = color._convert('rgb'),\n\t\t\talpha = color._alpha,\n\t\t\tctx = this.getContext(true),\n\t\t\timageData = ctx.createImageData(1, 1),\n\t\t\tdata = imageData.data;\n\t\tdata[0] = components[0] * 255;\n\t\tdata[1] = components[1] * 255;\n\t\tdata[2] = components[2] * 255;\n\t\tdata[3] = alpha != null ? alpha * 255 : 255;\n\t\tctx.putImageData(imageData, point.x, point.y);\n\t},\n\n\tcreateImageData: function() {\n\t\tvar size = Size.read(arguments);\n\t\treturn this.getContext().createImageData(size.width, size.height);\n\t},\n\n\tgetImageData: function() {\n\t\tvar rect = Rectangle.read(arguments);\n\t\tif (rect.isEmpty())\n\t\t\trect = new Rectangle(this._size);\n\t\treturn this.getContext().getImageData(rect.x, rect.y,\n\t\t\t\trect.width, rect.height);\n\t},\n\n\tsetImageData: function(data ) {\n\t\tvar point = Point.read(arguments, 1);\n\t\tthis.getContext(true).putImageData(data, point.x, point.y);\n\t},\n\n\t_getBounds: function(matrix, options) {\n\t\tvar rect = new Rectangle(this._size).setCenter(0, 0);\n\t\treturn matrix ? matrix._transformBounds(rect) : rect;\n\t},\n\n\t_hitTestSelf: function(point) {\n\t\tif (this._contains(point)) {\n\t\t\tvar that = this;\n\t\t\treturn new HitResult('pixel', that, {\n\t\t\t\toffset: point.add(that._size.divide(2)).round(),\n\t\t\t\tcolor: {\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn that.getPixel(this.offset);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n\n\t_draw: function(ctx, param, viewMatrix) {\n\t\tvar element = this.getElement();\n\t\tif (element) {\n\t\t\tctx.globalAlpha = this._opacity;\n\n\t\t\tthis._setStyles(ctx, param, viewMatrix);\n\n\t\t\tDomElement.setPrefixed(\n\t\t\t\tctx, 'imageSmoothingEnabled', this._smoothing\n\t\t\t);\n\n\t\t\tctx.drawImage(element,\n\t\t\t\t\t-this._size.width / 2, -this._size.height / 2);\n\t\t}\n\t},\n\n\t_canComposite: function() {\n\t\treturn true;\n\t}\n});\n\nvar SymbolItem = Item.extend({\n\t_class: 'SymbolItem',\n\t_applyMatrix: false,\n\t_canApplyMatrix: false,\n\t_boundsOptions: { stroke: true },\n\t_serializeFields: {\n\t\tsymbol: null\n\t},\n\n\tinitialize: function SymbolItem(arg0, arg1) {\n\t\tif (!this._initialize(arg0,\n\t\t\t\targ1 !== undefined && Point.read(arguments, 1)))\n\t\t\tthis.setDefinition(arg0 instanceof SymbolDefinition ?\n\t\t\t\t\targ0 : new SymbolDefinition(arg0));\n\t},\n\n\t_equals: function(item) {\n\t\treturn this._definition === item._definition;\n\t},\n\n\tcopyContent: function(source) {\n\t\tthis.setDefinition(source._definition);\n\t},\n\n\tgetDefinition: function() {\n\t\treturn this._definition;\n\t},\n\n\tsetDefinition: function(definition) {\n\t\tthis._definition = definition;\n\t\tthis._changed(9);\n\t},\n\n\tgetSymbol: '#getDefinition',\n\tsetSymbol: '#setDefinition',\n\n\tisEmpty: function() {\n\t\treturn this._definition._item.isEmpty();\n\t},\n\n\t_getBounds: function(matrix, options) {\n\t\tvar item = this._definition._item;\n\t\treturn item._getCachedBounds(item._matrix.prepended(matrix), options);\n\t},\n\n\t_hitTestSelf: function(point, options, viewMatrix) {\n\t\tvar res = this._definition._item._hitTest(point, options, viewMatrix);\n\t\tif (res)\n\t\t\tres.item = this;\n\t\treturn res;\n\t},\n\n\t_draw: function(ctx, param) {\n\t\tthis._definition._item.draw(ctx, param);\n\t}\n\n});\n\nvar SymbolDefinition = Base.extend({\n\t_class: 'SymbolDefinition',\n\n\tinitialize: function SymbolDefinition(item, dontCenter) {\n\t\tthis._id = UID.get();\n\t\tthis.project = paper.project;\n\t\tif (item)\n\t\t\tthis.setItem(item, dontCenter);\n\t},\n\n\t_serialize: function(options, dictionary) {\n\t\treturn dictionary.add(this, function() {\n\t\t\treturn Base.serialize([this._class, this._item],\n\t\t\t\t\toptions, false, dictionary);\n\t\t});\n\t},\n\n\t_changed: function(flags) {\n\t\tif (flags & 8)\n\t\t\tItem._clearBoundsCache(this);\n\t\tif (flags & 1)\n\t\t\tthis.project._changed(flags);\n\t},\n\n\tgetItem: function() {\n\t\treturn this._item;\n\t},\n\n\tsetItem: function(item, _dontCenter) {\n\t\tif (item._symbol)\n\t\t\titem = item.clone();\n\t\tif (this._item)\n\t\t\tthis._item._symbol = null;\n\t\tthis._item = item;\n\t\titem.remove();\n\t\titem.setSelected(false);\n\t\tif (!_dontCenter)\n\t\t\titem.setPosition(new Point());\n\t\titem._symbol = this;\n\t\tthis._changed(9);\n\t},\n\n\tgetDefinition: '#getItem',\n\tsetDefinition: '#setItem',\n\n\tplace: function(position) {\n\t\treturn new SymbolItem(this, position);\n\t},\n\n\tclone: function() {\n\t\treturn new SymbolDefinition(this._item.clone(false));\n\t},\n\n\tequals: function(symbol) {\n\t\treturn symbol === this\n\t\t\t\t|| symbol && this._item.equals(symbol._item)\n\t\t\t\t|| false;\n\t}\n});\n\nvar HitResult = Base.extend({\n\t_class: 'HitResult',\n\n\tinitialize: function HitResult(type, item, values) {\n\t\tthis.type = type;\n\t\tthis.item = item;\n\t\tif (values)\n\t\t\tthis.inject(values);\n\t},\n\n\tstatics: {\n\t\tgetOptions: function(args) {\n\t\t\tvar options = args && Base.read(args);\n\t\t\treturn Base.set({\n\t\t\t\ttype: null,\n\t\t\t\ttolerance: paper.settings.hitTolerance,\n\t\t\t\tfill: !options,\n\t\t\t\tstroke: !options,\n\t\t\t\tsegments: !options,\n\t\t\t\thandles: false,\n\t\t\t\tends: false,\n\t\t\t\tposition: false,\n\t\t\t\tcenter: false,\n\t\t\t\tbounds: false,\n\t\t\t\tguides: false,\n\t\t\t\tselected: false\n\t\t\t}, options);\n\t\t}\n\t}\n});\n\nvar Segment = Base.extend({\n\t_class: 'Segment',\n\tbeans: true,\n\t_selection: 0,\n\n\tinitialize: function Segment(arg0, arg1, arg2, arg3, arg4, arg5) {\n\t\tvar count = arguments.length,\n\t\t\tpoint, handleIn, handleOut, selection;\n\t\tif (count > 0) {\n\t\t\tif (arg0 == null || typeof arg0 === 'object') {\n\t\t\t\tif (count === 1 && arg0 && 'point' in arg0) {\n\t\t\t\t\tpoint = arg0.point;\n\t\t\t\t\thandleIn = arg0.handleIn;\n\t\t\t\t\thandleOut = arg0.handleOut;\n\t\t\t\t\tselection = arg0.selection;\n\t\t\t\t} else {\n\t\t\t\t\tpoint = arg0;\n\t\t\t\t\thandleIn = arg1;\n\t\t\t\t\thandleOut = arg2;\n\t\t\t\t\tselection = arg3;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tpoint = [ arg0, arg1 ];\n\t\t\t\thandleIn = arg2 !== undefined ? [ arg2, arg3 ] : null;\n\t\t\t\thandleOut = arg4 !== undefined ? [ arg4, arg5 ] : null;\n\t\t\t}\n\t\t}\n\t\tnew SegmentPoint(point, this, '_point');\n\t\tnew SegmentPoint(handleIn, this, '_handleIn');\n\t\tnew SegmentPoint(handleOut, this, '_handleOut');\n\t\tif (selection)\n\t\t\tthis.setSelection(selection);\n\t},\n\n\t_serialize: function(options, dictionary) {\n\t\tvar point = this._point,\n\t\t\tselection = this._selection,\n\t\t\tobj = selection || this.hasHandles()\n\t\t\t\t\t? [point, this._handleIn, this._handleOut]\n\t\t\t\t\t: point;\n\t\tif (selection)\n\t\t\tobj.push(selection);\n\t\treturn Base.serialize(obj, options, true, dictionary);\n\t},\n\n\t_changed: function(point) {\n\t\tvar path = this._path;\n\t\tif (!path)\n\t\t\treturn;\n\t\tvar curves = path._curves,\n\t\t\tindex = this._index,\n\t\t\tcurve;\n\t\tif (curves) {\n\t\t\tif ((!point || point === this._point || point === this._handleIn)\n\t\t\t\t\t&& (curve = index > 0 ? curves[index - 1] : path._closed\n\t\t\t\t\t\t? curves[curves.length - 1] : null))\n\t\t\t\tcurve._changed();\n\t\t\tif ((!point || point === this._point || point === this._handleOut)\n\t\t\t\t\t&& (curve = curves[index]))\n\t\t\t\tcurve._changed();\n\t\t}\n\t\tpath._changed(41);\n\t},\n\n\tgetPoint: function() {\n\t\treturn this._point;\n\t},\n\n\tsetPoint: function() {\n\t\tthis._point.set(Point.read(arguments));\n\t},\n\n\tgetHandleIn: function() {\n\t\treturn this._handleIn;\n\t},\n\n\tsetHandleIn: function() {\n\t\tthis._handleIn.set(Point.read(arguments));\n\t},\n\n\tgetHandleOut: function() {\n\t\treturn this._handleOut;\n\t},\n\n\tsetHandleOut: function() {\n\t\tthis._handleOut.set(Point.read(arguments));\n\t},\n\n\thasHandles: function() {\n\t\treturn !this._handleIn.isZero() || !this._handleOut.isZero();\n\t},\n\n\tisSmooth: function() {\n\t\tvar handleIn = this._handleIn,\n\t\t\thandleOut = this._handleOut;\n\t\treturn !handleIn.isZero() && !handleOut.isZero()\n\t\t\t\t&& handleIn.isCollinear(handleOut);\n\t},\n\n\tclearHandles: function() {\n\t\tthis._handleIn._set(0, 0);\n\t\tthis._handleOut._set(0, 0);\n\t},\n\n\tgetSelection: function() {\n\t\treturn this._selection;\n\t},\n\n\tsetSelection: function(selection) {\n\t\tvar oldSelection = this._selection,\n\t\t\tpath = this._path;\n\t\tthis._selection = selection = selection || 0;\n\t\tif (path && selection !== oldSelection) {\n\t\t\tpath._updateSelection(this, oldSelection, selection);\n\t\t\tpath._changed(257);\n\t\t}\n\t},\n\n\t_changeSelection: function(flag, selected) {\n\t\tvar selection = this._selection;\n\t\tthis.setSelection(selected ? selection | flag : selection & ~flag);\n\t},\n\n\tisSelected: function() {\n\t\treturn !!(this._selection & 7);\n\t},\n\n\tsetSelected: function(selected) {\n\t\tthis._changeSelection(7, selected);\n\t},\n\n\tgetIndex: function() {\n\t\treturn this._index !== undefined ? this._index : null;\n\t},\n\n\tgetPath: function() {\n\t\treturn this._path || null;\n\t},\n\n\tgetCurve: function() {\n\t\tvar path = this._path,\n\t\t\tindex = this._index;\n\t\tif (path) {\n\t\t\tif (index > 0 && !path._closed\n\t\t\t\t\t&& index === path._segments.length - 1)\n\t\t\t\tindex--;\n\t\t\treturn path.getCurves()[index] || null;\n\t\t}\n\t\treturn null;\n\t},\n\n\tgetLocation: function() {\n\t\tvar curve = this.getCurve();\n\t\treturn curve\n\t\t\t\t? new CurveLocation(curve, this === curve._segment1 ? 0 : 1)\n\t\t\t\t: null;\n\t},\n\n\tgetNext: function() {\n\t\tvar segments = this._path && this._path._segments;\n\t\treturn segments && (segments[this._index + 1]\n\t\t\t\t|| this._path._closed && segments[0]) || null;\n\t},\n\n\tsmooth: function(options, _first, _last) {\n\t\tvar opts = options || {},\n\t\t\ttype = opts.type,\n\t\t\tfactor = opts.factor,\n\t\t\tprev = this.getPrevious(),\n\t\t\tnext = this.getNext(),\n\t\t\tp0 = (prev || this)._point,\n\t\t\tp1 = this._point,\n\t\t\tp2 = (next || this)._point,\n\t\t\td1 = p0.getDistance(p1),\n\t\t\td2 = p1.getDistance(p2);\n\t\tif (!type || type === 'catmull-rom') {\n\t\t\tvar a = factor === undefined ? 0.5 : factor,\n\t\t\t\td1_a = Math.pow(d1, a),\n\t\t\t\td1_2a = d1_a * d1_a,\n\t\t\t\td2_a = Math.pow(d2, a),\n\t\t\t\td2_2a = d2_a * d2_a;\n\t\t\tif (!_first && prev) {\n\t\t\t\tvar A = 2 * d2_2a + 3 * d2_a * d1_a + d1_2a,\n\t\t\t\t\tN = 3 * d2_a * (d2_a + d1_a);\n\t\t\t\tthis.setHandleIn(N !== 0\n\t\t\t\t\t? new Point(\n\t\t\t\t\t\t(d2_2a * p0._x + A * p1._x - d1_2a * p2._x) / N - p1._x,\n\t\t\t\t\t\t(d2_2a * p0._y + A * p1._y - d1_2a * p2._y) / N - p1._y)\n\t\t\t\t\t: new Point());\n\t\t\t}\n\t\t\tif (!_last && next) {\n\t\t\t\tvar A = 2 * d1_2a + 3 * d1_a * d2_a + d2_2a,\n\t\t\t\t\tN = 3 * d1_a * (d1_a + d2_a);\n\t\t\t\tthis.setHandleOut(N !== 0\n\t\t\t\t\t? new Point(\n\t\t\t\t\t\t(d1_2a * p2._x + A * p1._x - d2_2a * p0._x) / N - p1._x,\n\t\t\t\t\t\t(d1_2a * p2._y + A * p1._y - d2_2a * p0._y) / N - p1._y)\n\t\t\t\t\t: new Point());\n\t\t\t}\n\t\t} else if (type === 'geometric') {\n\t\t\tif (prev && next) {\n\t\t\t\tvar vector = p0.subtract(p2),\n\t\t\t\t\tt = factor === undefined ? 0.4 : factor,\n\t\t\t\t\tk = t * d1 / (d1 + d2);\n\t\t\t\tif (!_first)\n\t\t\t\t\tthis.setHandleIn(vector.multiply(k));\n\t\t\t\tif (!_last)\n\t\t\t\t\tthis.setHandleOut(vector.multiply(k - t));\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new Error('Smoothing method \\'' + type + '\\' not supported.');\n\t\t}\n\t},\n\n\tgetPrevious: function() {\n\t\tvar segments = this._path && this._path._segments;\n\t\treturn segments && (segments[this._index - 1]\n\t\t\t\t|| this._path._closed && segments[segments.length - 1]) || null;\n\t},\n\n\tisFirst: function() {\n\t\treturn !this._index;\n\t},\n\n\tisLast: function() {\n\t\tvar path = this._path;\n\t\treturn path && this._index === path._segments.length - 1 || false;\n\t},\n\n\treverse: function() {\n\t\tvar handleIn = this._handleIn,\n\t\t\thandleOut = this._handleOut,\n\t\t\ttmp = handleIn.clone();\n\t\thandleIn.set(handleOut);\n\t\thandleOut.set(tmp);\n\t},\n\n\treversed: function() {\n\t\treturn new Segment(this._point, this._handleOut, this._handleIn);\n\t},\n\n\tremove: function() {\n\t\treturn this._path ? !!this._path.removeSegment(this._index) : false;\n\t},\n\n\tclone: function() {\n\t\treturn new Segment(this._point, this._handleIn, this._handleOut);\n\t},\n\n\tequals: function(segment) {\n\t\treturn segment === this || segment && this._class === segment._class\n\t\t\t\t&& this._point.equals(segment._point)\n\t\t\t\t&& this._handleIn.equals(segment._handleIn)\n\t\t\t\t&& this._handleOut.equals(segment._handleOut)\n\t\t\t\t|| false;\n\t},\n\n\ttoString: function() {\n\t\tvar parts = [ 'point: ' + this._point ];\n\t\tif (!this._handleIn.isZero())\n\t\t\tparts.push('handleIn: ' + this._handleIn);\n\t\tif (!this._handleOut.isZero())\n\t\t\tparts.push('handleOut: ' + this._handleOut);\n\t\treturn '{ ' + parts.join(', ') + ' }';\n\t},\n\n\ttransform: function(matrix) {\n\t\tthis._transformCoordinates(matrix, new Array(6), true);\n\t\tthis._changed();\n\t},\n\n\tinterpolate: function(from, to, factor) {\n\t\tvar u = 1 - factor,\n\t\t\tv = factor,\n\t\t\tpoint1 = from._point,\n\t\t\tpoint2 = to._point,\n\t\t\thandleIn1 = from._handleIn,\n\t\t\thandleIn2 = to._handleIn,\n\t\t\thandleOut2 = to._handleOut,\n\t\t\thandleOut1 = from._handleOut;\n\t\tthis._point._set(\n\t\t\t\tu * point1._x + v * point2._x,\n\t\t\t\tu * point1._y + v * point2._y, true);\n\t\tthis._handleIn._set(\n\t\t\t\tu * handleIn1._x + v * handleIn2._x,\n\t\t\t\tu * handleIn1._y + v * handleIn2._y, true);\n\t\tthis._handleOut._set(\n\t\t\t\tu * handleOut1._x + v * handleOut2._x,\n\t\t\t\tu * handleOut1._y + v * handleOut2._y, true);\n\t\tthis._changed();\n\t},\n\n\t_transformCoordinates: function(matrix, coords, change) {\n\t\tvar point = this._point,\n\t\t\thandleIn = !change || !this._handleIn.isZero()\n\t\t\t\t\t? this._handleIn : null,\n\t\t\thandleOut = !change || !this._handleOut.isZero()\n\t\t\t\t\t? this._handleOut : null,\n\t\t\tx = point._x,\n\t\t\ty = point._y,\n\t\t\ti = 2;\n\t\tcoords[0] = x;\n\t\tcoords[1] = y;\n\t\tif (handleIn) {\n\t\t\tcoords[i++] = handleIn._x + x;\n\t\t\tcoords[i++] = handleIn._y + y;\n\t\t}\n\t\tif (handleOut) {\n\t\t\tcoords[i++] = handleOut._x + x;\n\t\t\tcoords[i++] = handleOut._y + y;\n\t\t}\n\t\tif (matrix) {\n\t\t\tmatrix._transformCoordinates(coords, coords, i / 2);\n\t\t\tx = coords[0];\n\t\t\ty = coords[1];\n\t\t\tif (change) {\n\t\t\t\tpoint._x = x;\n\t\t\t\tpoint._y = y;\n\t\t\t\ti = 2;\n\t\t\t\tif (handleIn) {\n\t\t\t\t\thandleIn._x = coords[i++] - x;\n\t\t\t\t\thandleIn._y = coords[i++] - y;\n\t\t\t\t}\n\t\t\t\tif (handleOut) {\n\t\t\t\t\thandleOut._x = coords[i++] - x;\n\t\t\t\t\thandleOut._y = coords[i++] - y;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!handleIn) {\n\t\t\t\t\tcoords[i++] = x;\n\t\t\t\t\tcoords[i++] = y;\n\t\t\t\t}\n\t\t\t\tif (!handleOut) {\n\t\t\t\t\tcoords[i++] = x;\n\t\t\t\t\tcoords[i++] = y;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn coords;\n\t}\n});\n\nvar SegmentPoint = Point.extend({\n\tinitialize: function SegmentPoint(point, owner, key) {\n\t\tvar x, y,\n\t\t\tselected;\n\t\tif (!point) {\n\t\t\tx = y = 0;\n\t\t} else if ((x = point[0]) !== undefined) {\n\t\t\ty = point[1];\n\t\t} else {\n\t\t\tvar pt = point;\n\t\t\tif ((x = pt.x) === undefined) {\n\t\t\t\tpt = Point.read(arguments);\n\t\t\t\tx = pt.x;\n\t\t\t}\n\t\t\ty = pt.y;\n\t\t\tselected = pt.selected;\n\t\t}\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._owner = owner;\n\t\towner[key] = this;\n\t\tif (selected)\n\t\t\tthis.setSelected(true);\n\t},\n\n\t_set: function(x, y) {\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._owner._changed(this);\n\t\treturn this;\n\t},\n\n\tgetX: function() {\n\t\treturn this._x;\n\t},\n\n\tsetX: function(x) {\n\t\tthis._x = x;\n\t\tthis._owner._changed(this);\n\t},\n\n\tgetY: function() {\n\t\treturn this._y;\n\t},\n\n\tsetY: function(y) {\n\t\tthis._y = y;\n\t\tthis._owner._changed(this);\n\t},\n\n\tisZero: function() {\n\t\tvar isZero = Numerical.isZero;\n\t\treturn isZero(this._x) && isZero(this._y);\n\t},\n\n\tisSelected: function() {\n\t\treturn !!(this._owner._selection & this._getSelection());\n\t},\n\n\tsetSelected: function(selected) {\n\t\tthis._owner._changeSelection(this._getSelection(), selected);\n\t},\n\n\t_getSelection: function() {\n\t\tvar owner = this._owner;\n\t\treturn this === owner._point ? 1\n\t\t\t: this === owner._handleIn ? 2\n\t\t\t: this === owner._handleOut ? 4\n\t\t\t: 0;\n\t}\n});\n\nvar Curve = Base.extend({\n\t_class: 'Curve',\n\tbeans: true,\n\n\tinitialize: function Curve(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) {\n\t\tvar count = arguments.length,\n\t\t\tseg1, seg2,\n\t\t\tpoint1, point2,\n\t\t\thandle1, handle2;\n\t\tif (count === 3) {\n\t\t\tthis._path = arg0;\n\t\t\tseg1 = arg1;\n\t\t\tseg2 = arg2;\n\t\t} else if (!count) {\n\t\t\tseg1 = new Segment();\n\t\t\tseg2 = new Segment();\n\t\t} else if (count === 1) {\n\t\t\tif ('segment1' in arg0) {\n\t\t\t\tseg1 = new Segment(arg0.segment1);\n\t\t\t\tseg2 = new Segment(arg0.segment2);\n\t\t\t} else if ('point1' in arg0) {\n\t\t\t\tpoint1 = arg0.point1;\n\t\t\t\thandle1 = arg0.handle1;\n\t\t\t\thandle2 = arg0.handle2;\n\t\t\t\tpoint2 = arg0.point2;\n\t\t\t} else if (Array.isArray(arg0)) {\n\t\t\t\tpoint1 = [arg0[0], arg0[1]];\n\t\t\t\tpoint2 = [arg0[6], arg0[7]];\n\t\t\t\thandle1 = [arg0[2] - arg0[0], arg0[3] - arg0[1]];\n\t\t\t\thandle2 = [arg0[4] - arg0[6], arg0[5] - arg0[7]];\n\t\t\t}\n\t\t} else if (count === 2) {\n\t\t\tseg1 = new Segment(arg0);\n\t\t\tseg2 = new Segment(arg1);\n\t\t} else if (count === 4) {\n\t\t\tpoint1 = arg0;\n\t\t\thandle1 = arg1;\n\t\t\thandle2 = arg2;\n\t\t\tpoint2 = arg3;\n\t\t} else if (count === 8) {\n\t\t\tpoint1 = [arg0, arg1];\n\t\t\tpoint2 = [arg6, arg7];\n\t\t\thandle1 = [arg2 - arg0, arg3 - arg1];\n\t\t\thandle2 = [arg4 - arg6, arg5 - arg7];\n\t\t}\n\t\tthis._segment1 = seg1 || new Segment(point1, null, handle1);\n\t\tthis._segment2 = seg2 || new Segment(point2, handle2, null);\n\t},\n\n\t_serialize: function(options, dictionary) {\n\t\treturn Base.serialize(this.hasHandles()\n\t\t\t\t? [this.getPoint1(), this.getHandle1(), this.getHandle2(),\n\t\t\t\t\tthis.getPoint2()]\n\t\t\t\t: [this.getPoint1(), this.getPoint2()],\n\t\t\t\toptions, true, dictionary);\n\t},\n\n\t_changed: function() {\n\t\tthis._length = this._bounds = undefined;\n\t},\n\n\tclone: function() {\n\t\treturn new Curve(this._segment1, this._segment2);\n\t},\n\n\ttoString: function() {\n\t\tvar parts = [ 'point1: ' + this._segment1._point ];\n\t\tif (!this._segment1._handleOut.isZero())\n\t\t\tparts.push('handle1: ' + this._segment1._handleOut);\n\t\tif (!this._segment2._handleIn.isZero())\n\t\t\tparts.push('handle2: ' + this._segment2._handleIn);\n\t\tparts.push('point2: ' + this._segment2._point);\n\t\treturn '{ ' + parts.join(', ') + ' }';\n\t},\n\n\tclassify: function() {\n\t\treturn Curve.classify(this.getValues());\n\t},\n\n\tremove: function() {\n\t\tvar removed = false;\n\t\tif (this._path) {\n\t\t\tvar segment2 = this._segment2,\n\t\t\t\thandleOut = segment2._handleOut;\n\t\t\tremoved = segment2.remove();\n\t\t\tif (removed)\n\t\t\t\tthis._segment1._handleOut.set(handleOut);\n\t\t}\n\t\treturn removed;\n\t},\n\n\tgetPoint1: function() {\n\t\treturn this._segment1._point;\n\t},\n\n\tsetPoint1: function() {\n\t\tthis._segment1._point.set(Point.read(arguments));\n\t},\n\n\tgetPoint2: function() {\n\t\treturn this._segment2._point;\n\t},\n\n\tsetPoint2: function() {\n\t\tthis._segment2._point.set(Point.read(arguments));\n\t},\n\n\tgetHandle1: function() {\n\t\treturn this._segment1._handleOut;\n\t},\n\n\tsetHandle1: function() {\n\t\tthis._segment1._handleOut.set(Point.read(arguments));\n\t},\n\n\tgetHandle2: function() {\n\t\treturn this._segment2._handleIn;\n\t},\n\n\tsetHandle2: function() {\n\t\tthis._segment2._handleIn.set(Point.read(arguments));\n\t},\n\n\tgetSegment1: function() {\n\t\treturn this._segment1;\n\t},\n\n\tgetSegment2: function() {\n\t\treturn this._segment2;\n\t},\n\n\tgetPath: function() {\n\t\treturn this._path;\n\t},\n\n\tgetIndex: function() {\n\t\treturn this._segment1._index;\n\t},\n\n\tgetNext: function() {\n\t\tvar curves = this._path && this._path._curves;\n\t\treturn curves && (curves[this._segment1._index + 1]\n\t\t\t\t|| this._path._closed && curves[0]) || null;\n\t},\n\n\tgetPrevious: function() {\n\t\tvar curves = this._path && this._path._curves;\n\t\treturn curves && (curves[this._segment1._index - 1]\n\t\t\t\t|| this._path._closed && curves[curves.length - 1]) || null;\n\t},\n\n\tisFirst: function() {\n\t\treturn !this._segment1._index;\n\t},\n\n\tisLast: function() {\n\t\tvar path = this._path;\n\t\treturn path && this._segment1._index === path._curves.length - 1\n\t\t\t\t|| false;\n\t},\n\n\tisSelected: function() {\n\t\treturn this.getPoint1().isSelected()\n\t\t\t\t&& this.getHandle1().isSelected()\n\t\t\t\t&& this.getHandle2().isSelected()\n\t\t\t\t&& this.getPoint2().isSelected();\n\t},\n\n\tsetSelected: function(selected) {\n\t\tthis.getPoint1().setSelected(selected);\n\t\tthis.getHandle1().setSelected(selected);\n\t\tthis.getHandle2().setSelected(selected);\n\t\tthis.getPoint2().setSelected(selected);\n\t},\n\n\tgetValues: function(matrix) {\n\t\treturn Curve.getValues(this._segment1, this._segment2, matrix);\n\t},\n\n\tgetPoints: function() {\n\t\tvar coords = this.getValues(),\n\t\t\tpoints = [];\n\t\tfor (var i = 0; i < 8; i += 2)\n\t\t\tpoints.push(new Point(coords[i], coords[i + 1]));\n\t\treturn points;\n\t}\n}, {\n\tgetLength: function() {\n\t\tif (this._length == null)\n\t\t\tthis._length = Curve.getLength(this.getValues(), 0, 1);\n\t\treturn this._length;\n\t},\n\n\tgetArea: function() {\n\t\treturn Curve.getArea(this.getValues());\n\t},\n\n\tgetLine: function() {\n\t\treturn new Line(this._segment1._point, this._segment2._point);\n\t},\n\n\tgetPart: function(from, to) {\n\t\treturn new Curve(Curve.getPart(this.getValues(), from, to));\n\t},\n\n\tgetPartLength: function(from, to) {\n\t\treturn Curve.getLength(this.getValues(), from, to);\n\t},\n\n\tdivideAt: function(location) {\n\t\treturn this.divideAtTime(location && location.curve === this\n\t\t\t\t? location.time : this.getTimeAt(location));\n\t},\n\n\tdivideAtTime: function(time, _setHandles) {\n\t\tvar tMin = 1e-8,\n\t\t\ttMax = 1 - tMin,\n\t\t\tres = null;\n\t\tif (time >= tMin && time <= tMax) {\n\t\t\tvar parts = Curve.subdivide(this.getValues(), time),\n\t\t\t\tleft = parts[0],\n\t\t\t\tright = parts[1],\n\t\t\t\tsetHandles = _setHandles || this.hasHandles(),\n\t\t\t\tseg1 = this._segment1,\n\t\t\t\tseg2 = this._segment2,\n\t\t\t\tpath = this._path;\n\t\t\tif (setHandles) {\n\t\t\t\tseg1._handleOut._set(left[2] - left[0], left[3] - left[1]);\n\t\t\t\tseg2._handleIn._set(right[4] - right[6],right[5] - right[7]);\n\t\t\t}\n\t\t\tvar x = left[6], y = left[7],\n\t\t\t\tsegment = new Segment(new Point(x, y),\n\t\t\t\t\t\tsetHandles && new Point(left[4] - x, left[5] - y),\n\t\t\t\t\t\tsetHandles && new Point(right[2] - x, right[3] - y));\n\t\t\tif (path) {\n\t\t\t\tpath.insert(seg1._index + 1, segment);\n\t\t\t\tres = this.getNext();\n\t\t\t} else {\n\t\t\t\tthis._segment2 = segment;\n\t\t\t\tthis._changed();\n\t\t\t\tres = new Curve(segment, seg2);\n\t\t\t}\n\t\t}\n\t\treturn res;\n\t},\n\n\tsplitAt: function(location) {\n\t\tvar path = this._path;\n\t\treturn path ? path.splitAt(location) : null;\n\t},\n\n\tsplitAtTime: function(time) {\n\t\treturn this.splitAt(this.getLocationAtTime(time));\n\t},\n\n\tdivide: function(offset, isTime) {\n\t\treturn this.divideAtTime(offset === undefined ? 0.5 : isTime ? offset\n\t\t\t\t: this.getTimeAt(offset));\n\t},\n\n\tsplit: function(offset, isTime) {\n\t\treturn this.splitAtTime(offset === undefined ? 0.5 : isTime ? offset\n\t\t\t\t: this.getTimeAt(offset));\n\t},\n\n\treversed: function() {\n\t\treturn new Curve(this._segment2.reversed(), this._segment1.reversed());\n\t},\n\n\tclearHandles: function() {\n\t\tthis._segment1._handleOut._set(0, 0);\n\t\tthis._segment2._handleIn._set(0, 0);\n\t},\n\nstatics: {\n\tgetValues: function(segment1, segment2, matrix, straight) {\n\t\tvar p1 = segment1._point,\n\t\t\th1 = segment1._handleOut,\n\t\t\th2 = segment2._handleIn,\n\t\t\tp2 = segment2._point,\n\t\t\tx1 = p1.x, y1 = p1.y,\n\t\t\tx2 = p2.x, y2 = p2.y,\n\t\t\tvalues = straight\n\t\t\t\t? [ x1, y1, x1, y1, x2, y2, x2, y2 ]\n\t\t\t\t: [\n\t\t\t\t\tx1, y1,\n\t\t\t\t\tx1 + h1._x, y1 + h1._y,\n\t\t\t\t\tx2 + h2._x, y2 + h2._y,\n\t\t\t\t\tx2, y2\n\t\t\t\t];\n\t\tif (matrix)\n\t\t\tmatrix._transformCoordinates(values, values, 4);\n\t\treturn values;\n\t},\n\n\tsubdivide: function(v, t) {\n\t\tvar x0 = v[0], y0 = v[1],\n\t\t\tx1 = v[2], y1 = v[3],\n\t\t\tx2 = v[4], y2 = v[5],\n\t\t\tx3 = v[6], y3 = v[7];\n\t\tif (t === undefined)\n\t\t\tt = 0.5;\n\t\tvar u = 1 - t,\n\t\t\tx4 = u * x0 + t * x1, y4 = u * y0 + t * y1,\n\t\t\tx5 = u * x1 + t * x2, y5 = u * y1 + t * y2,\n\t\t\tx6 = u * x2 + t * x3, y6 = u * y2 + t * y3,\n\t\t\tx7 = u * x4 + t * x5, y7 = u * y4 + t * y5,\n\t\t\tx8 = u * x5 + t * x6, y8 = u * y5 + t * y6,\n\t\t\tx9 = u * x7 + t * x8, y9 = u * y7 + t * y8;\n\t\treturn [\n\t\t\t[x0, y0, x4, y4, x7, y7, x9, y9],\n\t\t\t[x9, y9, x8, y8, x6, y6, x3, y3]\n\t\t];\n\t},\n\n\tgetMonoCurves: function(v, dir) {\n\t\tvar curves = [],\n\t\t\tio = dir ? 0 : 1,\n\t\t\to0 = v[io + 0],\n\t\t\to1 = v[io + 2],\n\t\t\to2 = v[io + 4],\n\t\t\to3 = v[io + 6];\n\t\tif ((o0 >= o1) === (o1 >= o2) && (o1 >= o2) === (o2 >= o3)\n\t\t\t\t|| Curve.isStraight(v)) {\n\t\t\tcurves.push(v);\n\t\t} else {\n\t\t\tvar a = 3 * (o1 - o2) - o0 + o3,\n\t\t\t\tb = 2 * (o0 + o2) - 4 * o1,\n\t\t\t\tc = o1 - o0,\n\t\t\t\ttMin = 1e-8,\n\t\t\t\ttMax = 1 - tMin,\n\t\t\t\troots = [],\n\t\t\t\tn = Numerical.solveQuadratic(a, b, c, roots, tMin, tMax);\n\t\t\tif (!n) {\n\t\t\t\tcurves.push(v);\n\t\t\t} else {\n\t\t\t\troots.sort();\n\t\t\t\tvar t = roots[0],\n\t\t\t\t\tparts = Curve.subdivide(v, t);\n\t\t\t\tcurves.push(parts[0]);\n\t\t\t\tif (n > 1) {\n\t\t\t\t\tt = (roots[1] - t) / (1 - t);\n\t\t\t\t\tparts = Curve.subdivide(parts[1], t);\n\t\t\t\t\tcurves.push(parts[0]);\n\t\t\t\t}\n\t\t\t\tcurves.push(parts[1]);\n\t\t\t}\n\t\t}\n\t\treturn curves;\n\t},\n\n\tsolveCubic: function (v, coord, val, roots, min, max) {\n\t\tvar v0 = v[coord],\n\t\t\tv1 = v[coord + 2],\n\t\t\tv2 = v[coord + 4],\n\t\t\tv3 = v[coord + 6],\n\t\t\tres = 0;\n\t\tif ( !(v0 < val && v3 < val && v1 < val && v2 < val ||\n\t\t\t\tv0 > val && v3 > val && v1 > val && v2 > val)) {\n\t\t\tvar c = 3 * (v1 - v0),\n\t\t\t\tb = 3 * (v2 - v1) - c,\n\t\t\t\ta = v3 - v0 - c - b;\n\t\t\tres = Numerical.solveCubic(a, b, c, v0 - val, roots, min, max);\n\t\t}\n\t\treturn res;\n\t},\n\n\tgetTimeOf: function(v, point) {\n\t\tvar p0 = new Point(v[0], v[1]),\n\t\t\tp3 = new Point(v[6], v[7]),\n\t\t\tepsilon = 1e-12,\n\t\t\tgeomEpsilon = 1e-7,\n\t\t\tt = point.isClose(p0, epsilon) ? 0\n\t\t\t : point.isClose(p3, epsilon) ? 1\n\t\t\t : null;\n\t\tif (t === null) {\n\t\t\tvar coords = [point.x, point.y],\n\t\t\t\troots = [];\n\t\t\tfor (var c = 0; c < 2; c++) {\n\t\t\t\tvar count = Curve.solveCubic(v, c, coords[c], roots, 0, 1);\n\t\t\t\tfor (var i = 0; i < count; i++) {\n\t\t\t\t\tvar u = roots[i];\n\t\t\t\t\tif (point.isClose(Curve.getPoint(v, u), geomEpsilon))\n\t\t\t\t\t\treturn u;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn point.isClose(p0, geomEpsilon) ? 0\n\t\t\t : point.isClose(p3, geomEpsilon) ? 1\n\t\t\t : null;\n\t},\n\n\tgetNearestTime: function(v, point) {\n\t\tif (Curve.isStraight(v)) {\n\t\t\tvar x0 = v[0], y0 = v[1],\n\t\t\t\tx3 = v[6], y3 = v[7],\n\t\t\t\tvx = x3 - x0, vy = y3 - y0,\n\t\t\t\tdet = vx * vx + vy * vy;\n\t\t\tif (det === 0)\n\t\t\t\treturn 0;\n\t\t\tvar u = ((point.x - x0) * vx + (point.y - y0) * vy) / det;\n\t\t\treturn u < 1e-12 ? 0\n\t\t\t\t : u > 0.999999999999 ? 1\n\t\t\t\t : Curve.getTimeOf(v,\n\t\t\t\t\tnew Point(x0 + u * vx, y0 + u * vy));\n\t\t}\n\n\t\tvar count = 100,\n\t\t\tminDist = Infinity,\n\t\t\tminT = 0;\n\n\t\tfunction refine(t) {\n\t\t\tif (t >= 0 && t <= 1) {\n\t\t\t\tvar dist = point.getDistance(Curve.getPoint(v, t), true);\n\t\t\t\tif (dist < minDist) {\n\t\t\t\t\tminDist = dist;\n\t\t\t\t\tminT = t;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (var i = 0; i <= count; i++)\n\t\t\trefine(i / count);\n\n\t\tvar step = 1 / (count * 2);\n\t\twhile (step > 1e-8) {\n\t\t\tif (!refine(minT - step) && !refine(minT + step))\n\t\t\t\tstep /= 2;\n\t\t}\n\t\treturn minT;\n\t},\n\n\tgetPart: function(v, from, to) {\n\t\tvar flip = from > to;\n\t\tif (flip) {\n\t\t\tvar tmp = from;\n\t\t\tfrom = to;\n\t\t\tto = tmp;\n\t\t}\n\t\tif (from > 0)\n\t\t\tv = Curve.subdivide(v, from)[1];\n\t\tif (to < 1)\n\t\t\tv = Curve.subdivide(v, (to - from) / (1 - from))[0];\n\t\treturn flip\n\t\t\t\t? [v[6], v[7], v[4], v[5], v[2], v[3], v[0], v[1]]\n\t\t\t\t: v;\n\t},\n\n\tisFlatEnough: function(v, flatness) {\n\t\tvar x0 = v[0], y0 = v[1],\n\t\t\tx1 = v[2], y1 = v[3],\n\t\t\tx2 = v[4], y2 = v[5],\n\t\t\tx3 = v[6], y3 = v[7],\n\t\t\tux = 3 * x1 - 2 * x0 - x3,\n\t\t\tuy = 3 * y1 - 2 * y0 - y3,\n\t\t\tvx = 3 * x2 - 2 * x3 - x0,\n\t\t\tvy = 3 * y2 - 2 * y3 - y0;\n\t\treturn Math.max(ux * ux, vx * vx) + Math.max(uy * uy, vy * vy)\n\t\t\t\t<= 16 * flatness * flatness;\n\t},\n\n\tgetArea: function(v) {\n\t\tvar x0 = v[0], y0 = v[1],\n\t\t\tx1 = v[2], y1 = v[3],\n\t\t\tx2 = v[4], y2 = v[5],\n\t\t\tx3 = v[6], y3 = v[7];\n\t\treturn 3 * ((y3 - y0) * (x1 + x2) - (x3 - x0) * (y1 + y2)\n\t\t\t\t+ y1 * (x0 - x2) - x1 * (y0 - y2)\n\t\t\t\t+ y3 * (x2 + x0 / 3) - x3 * (y2 + y0 / 3)) / 20;\n\t},\n\n\tgetBounds: function(v) {\n\t\tvar min = v.slice(0, 2),\n\t\t\tmax = min.slice(),\n\t\t\troots = [0, 0];\n\t\tfor (var i = 0; i < 2; i++)\n\t\t\tCurve._addBounds(v[i], v[i + 2], v[i + 4], v[i + 6],\n\t\t\t\t\ti, 0, min, max, roots);\n\t\treturn new Rectangle(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n\t},\n\n\t_addBounds: function(v0, v1, v2, v3, coord, padding, min, max, roots) {\n\t\tfunction add(value, padding) {\n\t\t\tvar left = value - padding,\n\t\t\t\tright = value + padding;\n\t\t\tif (left < min[coord])\n\t\t\t\tmin[coord] = left;\n\t\t\tif (right > max[coord])\n\t\t\t\tmax[coord] = right;\n\t\t}\n\n\t\tpadding /= 2;\n\t\tvar minPad = min[coord] - padding,\n\t\t\tmaxPad = max[coord] + padding;\n\t\tif ( v0 < minPad || v1 < minPad || v2 < minPad || v3 < minPad ||\n\t\t\t\tv0 > maxPad || v1 > maxPad || v2 > maxPad || v3 > maxPad) {\n\t\t\tif (v1 < v0 != v1 < v3 && v2 < v0 != v2 < v3) {\n\t\t\t\tadd(v0, padding);\n\t\t\t\tadd(v3, padding);\n\t\t\t} else {\n\t\t\t\tvar a = 3 * (v1 - v2) - v0 + v3,\n\t\t\t\t\tb = 2 * (v0 + v2) - 4 * v1,\n\t\t\t\t\tc = v1 - v0,\n\t\t\t\t\tcount = Numerical.solveQuadratic(a, b, c, roots),\n\t\t\t\t\ttMin = 1e-8,\n\t\t\t\t\ttMax = 1 - tMin;\n\t\t\t\tadd(v3, 0);\n\t\t\t\tfor (var i = 0; i < count; i++) {\n\t\t\t\t\tvar t = roots[i],\n\t\t\t\t\t\tu = 1 - t;\n\t\t\t\t\tif (tMin <= t && t <= tMax)\n\t\t\t\t\t\tadd(u * u * u * v0\n\t\t\t\t\t\t\t+ 3 * u * u * t * v1\n\t\t\t\t\t\t\t+ 3 * u * t * t * v2\n\t\t\t\t\t\t\t+ t * t * t * v3,\n\t\t\t\t\t\t\tpadding);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}}, Base.each(\n\t['getBounds', 'getStrokeBounds', 'getHandleBounds'],\n\tfunction(name) {\n\t\tthis[name] = function() {\n\t\t\tif (!this._bounds)\n\t\t\t\tthis._bounds = {};\n\t\t\tvar bounds = this._bounds[name];\n\t\t\tif (!bounds) {\n\t\t\t\tbounds = this._bounds[name] = Path[name](\n\t\t\t\t\t\t[this._segment1, this._segment2], false, this._path);\n\t\t\t}\n\t\t\treturn bounds.clone();\n\t\t};\n\t},\n{\n\n}), Base.each({\n\tisStraight: function(p1, h1, h2, p2) {\n\t\tif (h1.isZero() && h2.isZero()) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\tvar v = p2.subtract(p1);\n\t\t\tif (v.isZero()) {\n\t\t\t\treturn false;\n\t\t\t} else if (v.isCollinear(h1) && v.isCollinear(h2)) {\n\t\t\t\tvar l = new Line(p1, p2),\n\t\t\t\t\tepsilon = 1e-7;\n\t\t\t\tif (l.getDistance(p1.add(h1)) < epsilon &&\n\t\t\t\t\tl.getDistance(p2.add(h2)) < epsilon) {\n\t\t\t\t\tvar div = v.dot(v),\n\t\t\t\t\t\ts1 = v.dot(h1) / div,\n\t\t\t\t\t\ts2 = v.dot(h2) / div;\n\t\t\t\t\treturn s1 >= 0 && s1 <= 1 && s2 <= 0 && s2 >= -1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n\n\tisLinear: function(p1, h1, h2, p2) {\n\t\tvar third = p2.subtract(p1).divide(3);\n\t\treturn h1.equals(third) && h2.negate().equals(third);\n\t}\n}, function(test, name) {\n\tthis[name] = function(epsilon) {\n\t\tvar seg1 = this._segment1,\n\t\t\tseg2 = this._segment2;\n\t\treturn test(seg1._point, seg1._handleOut, seg2._handleIn, seg2._point,\n\t\t\t\tepsilon);\n\t};\n\n\tthis.statics[name] = function(v, epsilon) {\n\t\tvar x0 = v[0], y0 = v[1],\n\t\t\tx3 = v[6], y3 = v[7];\n\t\treturn test(\n\t\t\t\tnew Point(x0, y0),\n\t\t\t\tnew Point(v[2] - x0, v[3] - y0),\n\t\t\t\tnew Point(v[4] - x3, v[5] - y3),\n\t\t\t\tnew Point(x3, y3), epsilon);\n\t};\n}, {\n\tstatics: {},\n\n\thasHandles: function() {\n\t\treturn !this._segment1._handleOut.isZero()\n\t\t\t\t|| !this._segment2._handleIn.isZero();\n\t},\n\n\thasLength: function(epsilon) {\n\t\treturn (!this.getPoint1().equals(this.getPoint2()) || this.hasHandles())\n\t\t\t\t&& this.getLength() > (epsilon || 0);\n\t},\n\n\tisCollinear: function(curve) {\n\t\treturn curve && this.isStraight() && curve.isStraight()\n\t\t\t\t&& this.getLine().isCollinear(curve.getLine());\n\t},\n\n\tisHorizontal: function() {\n\t\treturn this.isStraight() && Math.abs(this.getTangentAtTime(0.5).y)\n\t\t\t\t< 1e-8;\n\t},\n\n\tisVertical: function() {\n\t\treturn this.isStraight() && Math.abs(this.getTangentAtTime(0.5).x)\n\t\t\t\t< 1e-8;\n\t}\n}), {\n\tbeans: false,\n\n\tgetLocationAt: function(offset, _isTime) {\n\t\treturn this.getLocationAtTime(\n\t\t\t\t_isTime ? offset : this.getTimeAt(offset));\n\t},\n\n\tgetLocationAtTime: function(t) {\n\t\treturn t != null && t >= 0 && t <= 1\n\t\t\t\t? new CurveLocation(this, t)\n\t\t\t\t: null;\n\t},\n\n\tgetTimeAt: function(offset, start) {\n\t\treturn Curve.getTimeAt(this.getValues(), offset, start);\n\t},\n\n\tgetParameterAt: '#getTimeAt',\n\n\tgetTimesWithTangent: function () {\n\t\tvar tangent = Point.read(arguments);\n\t\treturn tangent.isZero()\n\t\t\t\t? []\n\t\t\t\t: Curve.getTimesWithTangent(this.getValues(), tangent);\n\t},\n\n\tgetOffsetAtTime: function(t) {\n\t\treturn this.getPartLength(0, t);\n\t},\n\n\tgetLocationOf: function() {\n\t\treturn this.getLocationAtTime(this.getTimeOf(Point.read(arguments)));\n\t},\n\n\tgetOffsetOf: function() {\n\t\tvar loc = this.getLocationOf.apply(this, arguments);\n\t\treturn loc ? loc.getOffset() : null;\n\t},\n\n\tgetTimeOf: function() {\n\t\treturn Curve.getTimeOf(this.getValues(), Point.read(arguments));\n\t},\n\n\tgetParameterOf: '#getTimeOf',\n\n\tgetNearestLocation: function() {\n\t\tvar point = Point.read(arguments),\n\t\t\tvalues = this.getValues(),\n\t\t\tt = Curve.getNearestTime(values, point),\n\t\t\tpt = Curve.getPoint(values, t);\n\t\treturn new CurveLocation(this, t, pt, null, point.getDistance(pt));\n\t},\n\n\tgetNearestPoint: function() {\n\t\tvar loc = this.getNearestLocation.apply(this, arguments);\n\t\treturn loc ? loc.getPoint() : loc;\n\t}\n\n},\nnew function() {\n\tvar methods = ['getPoint', 'getTangent', 'getNormal', 'getWeightedTangent',\n\t\t'getWeightedNormal', 'getCurvature'];\n\treturn Base.each(methods,\n\t\tfunction(name) {\n\t\t\tthis[name + 'At'] = function(location, _isTime) {\n\t\t\t\tvar values = this.getValues();\n\t\t\t\treturn Curve[name](values, _isTime ? location\n\t\t\t\t\t\t: Curve.getTimeAt(values, location));\n\t\t\t};\n\n\t\t\tthis[name + 'AtTime'] = function(time) {\n\t\t\t\treturn Curve[name](this.getValues(), time);\n\t\t\t};\n\t\t}, {\n\t\t\tstatics: {\n\t\t\t\t_evaluateMethods: methods\n\t\t\t}\n\t\t}\n\t);\n},\nnew function() {\n\n\tfunction getLengthIntegrand(v) {\n\t\tvar x0 = v[0], y0 = v[1],\n\t\t\tx1 = v[2], y1 = v[3],\n\t\t\tx2 = v[4], y2 = v[5],\n\t\t\tx3 = v[6], y3 = v[7],\n\n\t\t\tax = 9 * (x1 - x2) + 3 * (x3 - x0),\n\t\t\tbx = 6 * (x0 + x2) - 12 * x1,\n\t\t\tcx = 3 * (x1 - x0),\n\n\t\t\tay = 9 * (y1 - y2) + 3 * (y3 - y0),\n\t\t\tby = 6 * (y0 + y2) - 12 * y1,\n\t\t\tcy = 3 * (y1 - y0);\n\n\t\treturn function(t) {\n\t\t\tvar dx = (ax * t + bx) * t + cx,\n\t\t\t\tdy = (ay * t + by) * t + cy;\n\t\t\treturn Math.sqrt(dx * dx + dy * dy);\n\t\t};\n\t}\n\n\tfunction getIterations(a, b) {\n\t\treturn Math.max(2, Math.min(16, Math.ceil(Math.abs(b - a) * 32)));\n\t}\n\n\tfunction evaluate(v, t, type, normalized) {\n\t\tif (t == null || t < 0 || t > 1)\n\t\t\treturn null;\n\t\tvar x0 = v[0], y0 = v[1],\n\t\t\tx1 = v[2], y1 = v[3],\n\t\t\tx2 = v[4], y2 = v[5],\n\t\t\tx3 = v[6], y3 = v[7],\n\t\t\tisZero = Numerical.isZero;\n\t\tif (isZero(x1 - x0) && isZero(y1 - y0)) {\n\t\t\tx1 = x0;\n\t\t\ty1 = y0;\n\t\t}\n\t\tif (isZero(x2 - x3) && isZero(y2 - y3)) {\n\t\t\tx2 = x3;\n\t\t\ty2 = y3;\n\t\t}\n\t\tvar cx = 3 * (x1 - x0),\n\t\t\tbx = 3 * (x2 - x1) - cx,\n\t\t\tax = x3 - x0 - cx - bx,\n\t\t\tcy = 3 * (y1 - y0),\n\t\t\tby = 3 * (y2 - y1) - cy,\n\t\t\tay = y3 - y0 - cy - by,\n\t\t\tx, y;\n\t\tif (type === 0) {\n\t\t\tx = t === 0 ? x0 : t === 1 ? x3\n\t\t\t\t\t: ((ax * t + bx) * t + cx) * t + x0;\n\t\t\ty = t === 0 ? y0 : t === 1 ? y3\n\t\t\t\t\t: ((ay * t + by) * t + cy) * t + y0;\n\t\t} else {\n\t\t\tvar tMin = 1e-8,\n\t\t\t\ttMax = 1 - tMin;\n\t\t\tif (t < tMin) {\n\t\t\t\tx = cx;\n\t\t\t\ty = cy;\n\t\t\t} else if (t > tMax) {\n\t\t\t\tx = 3 * (x3 - x2);\n\t\t\t\ty = 3 * (y3 - y2);\n\t\t\t} else {\n\t\t\t\tx = (3 * ax * t + 2 * bx) * t + cx;\n\t\t\t\ty = (3 * ay * t + 2 * by) * t + cy;\n\t\t\t}\n\t\t\tif (normalized) {\n\t\t\t\tif (x === 0 && y === 0 && (t < tMin || t > tMax)) {\n\t\t\t\t\tx = x2 - x1;\n\t\t\t\t\ty = y2 - y1;\n\t\t\t\t}\n\t\t\t\tvar len = Math.sqrt(x * x + y * y);\n\t\t\t\tif (len) {\n\t\t\t\t\tx /= len;\n\t\t\t\t\ty /= len;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (type === 3) {\n\t\t\t\tvar x2 = 6 * ax * t + 2 * bx,\n\t\t\t\t\ty2 = 6 * ay * t + 2 * by,\n\t\t\t\t\td = Math.pow(x * x + y * y, 3 / 2);\n\t\t\t\tx = d !== 0 ? (x * y2 - y * x2) / d : 0;\n\t\t\t\ty = 0;\n\t\t\t}\n\t\t}\n\t\treturn type === 2 ? new Point(y, -x) : new Point(x, y);\n\t}\n\n\treturn { statics: {\n\n\t\tclassify: function(v) {\n\n\t\t\tvar x0 = v[0], y0 = v[1],\n\t\t\t\tx1 = v[2], y1 = v[3],\n\t\t\t\tx2 = v[4], y2 = v[5],\n\t\t\t\tx3 = v[6], y3 = v[7],\n\t\t\t\ta1 = x0 * (y3 - y2) + y0 * (x2 - x3) + x3 * y2 - y3 * x2,\n\t\t\t\ta2 = x1 * (y0 - y3) + y1 * (x3 - x0) + x0 * y3 - y0 * x3,\n\t\t\t\ta3 = x2 * (y1 - y0) + y2 * (x0 - x1) + x1 * y0 - y1 * x0,\n\t\t\t\td3 = 3 * a3,\n\t\t\t\td2 = d3 - a2,\n\t\t\t\td1 = d2 - a2 + a1,\n\t\t\t\tl = Math.sqrt(d1 * d1 + d2 * d2 + d3 * d3),\n\t\t\t\ts = l !== 0 ? 1 / l : 0,\n\t\t\t\tisZero = Numerical.isZero,\n\t\t\t\tserpentine = 'serpentine';\n\t\t\td1 *= s;\n\t\t\td2 *= s;\n\t\t\td3 *= s;\n\n\t\t\tfunction type(type, t1, t2) {\n\t\t\t\tvar hasRoots = t1 !== undefined,\n\t\t\t\t\tt1Ok = hasRoots && t1 > 0 && t1 < 1,\n\t\t\t\t\tt2Ok = hasRoots && t2 > 0 && t2 < 1;\n\t\t\t\tif (hasRoots && (!(t1Ok || t2Ok)\n\t\t\t\t\t\t|| type === 'loop' && !(t1Ok && t2Ok))) {\n\t\t\t\t\ttype = 'arch';\n\t\t\t\t\tt1Ok = t2Ok = false;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\ttype: type,\n\t\t\t\t\troots: t1Ok || t2Ok\n\t\t\t\t\t\t\t? t1Ok && t2Ok\n\t\t\t\t\t\t\t\t? t1 < t2 ? [t1, t2] : [t2, t1]\n\t\t\t\t\t\t\t\t: [t1Ok ? t1 : t2]\n\t\t\t\t\t\t\t: null\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (isZero(d1)) {\n\t\t\t\treturn isZero(d2)\n\t\t\t\t\t\t? type(isZero(d3) ? 'line' : 'quadratic')\n\t\t\t\t\t\t: type(serpentine, d3 / (3 * d2));\n\t\t\t}\n\t\t\tvar d = 3 * d2 * d2 - 4 * d1 * d3;\n\t\t\tif (isZero(d)) {\n\t\t\t\treturn type('cusp', d2 / (2 * d1));\n\t\t\t}\n\t\t\tvar f1 = d > 0 ? Math.sqrt(d / 3) : Math.sqrt(-d),\n\t\t\t\tf2 = 2 * d1;\n\t\t\treturn type(d > 0 ? serpentine : 'loop',\n\t\t\t\t\t(d2 + f1) / f2,\n\t\t\t\t\t(d2 - f1) / f2);\n\t\t},\n\n\t\tgetLength: function(v, a, b, ds) {\n\t\t\tif (a === undefined)\n\t\t\t\ta = 0;\n\t\t\tif (b === undefined)\n\t\t\t\tb = 1;\n\t\t\tif (Curve.isStraight(v)) {\n\t\t\t\tvar c = v;\n\t\t\t\tif (b < 1) {\n\t\t\t\t\tc = Curve.subdivide(c, b)[0];\n\t\t\t\t\ta /= b;\n\t\t\t\t}\n\t\t\t\tif (a > 0) {\n\t\t\t\t\tc = Curve.subdivide(c, a)[1];\n\t\t\t\t}\n\t\t\t\tvar dx = c[6] - c[0],\n\t\t\t\t\tdy = c[7] - c[1];\n\t\t\t\treturn Math.sqrt(dx * dx + dy * dy);\n\t\t\t}\n\t\t\treturn Numerical.integrate(ds || getLengthIntegrand(v), a, b,\n\t\t\t\t\tgetIterations(a, b));\n\t\t},\n\n\t\tgetTimeAt: function(v, offset, start) {\n\t\t\tif (start === undefined)\n\t\t\t\tstart = offset < 0 ? 1 : 0;\n\t\t\tif (offset === 0)\n\t\t\t\treturn start;\n\t\t\tvar abs = Math.abs,\n\t\t\t\tepsilon = 1e-12,\n\t\t\t\tforward = offset > 0,\n\t\t\t\ta = forward ? start : 0,\n\t\t\t\tb = forward ? 1 : start,\n\t\t\t\tds = getLengthIntegrand(v),\n\t\t\t\trangeLength = Curve.getLength(v, a, b, ds),\n\t\t\t\tdiff = abs(offset) - rangeLength;\n\t\t\tif (abs(diff) < epsilon) {\n\t\t\t\treturn forward ? b : a;\n\t\t\t} else if (diff > epsilon) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tvar guess = offset / rangeLength,\n\t\t\t\tlength = 0;\n\t\t\tfunction f(t) {\n\t\t\t\tlength += Numerical.integrate(ds, start, t,\n\t\t\t\t\t\tgetIterations(start, t));\n\t\t\t\tstart = t;\n\t\t\t\treturn length - offset;\n\t\t\t}\n\t\t\treturn Numerical.findRoot(f, ds, start + guess, a, b, 32,\n\t\t\t\t\t1e-12);\n\t\t},\n\n\t\tgetPoint: function(v, t) {\n\t\t\treturn evaluate(v, t, 0, false);\n\t\t},\n\n\t\tgetTangent: function(v, t) {\n\t\t\treturn evaluate(v, t, 1, true);\n\t\t},\n\n\t\tgetWeightedTangent: function(v, t) {\n\t\t\treturn evaluate(v, t, 1, false);\n\t\t},\n\n\t\tgetNormal: function(v, t) {\n\t\t\treturn evaluate(v, t, 2, true);\n\t\t},\n\n\t\tgetWeightedNormal: function(v, t) {\n\t\t\treturn evaluate(v, t, 2, false);\n\t\t},\n\n\t\tgetCurvature: function(v, t) {\n\t\t\treturn evaluate(v, t, 3, false).x;\n\t\t},\n\n\t\tgetPeaks: function(v) {\n\t\t\tvar x0 = v[0], y0 = v[1],\n\t\t\t\tx1 = v[2], y1 = v[3],\n\t\t\t\tx2 = v[4], y2 = v[5],\n\t\t\t\tx3 = v[6], y3 = v[7],\n\t\t\t\tax = -x0 + 3 * x1 - 3 * x2 + x3,\n\t\t\t\tbx = 3 * x0 - 6 * x1 + 3 * x2,\n\t\t\t\tcx = -3 * x0 + 3 * x1,\n\t\t\t\tay = -y0 + 3 * y1 - 3 * y2 + y3,\n\t\t\t\tby = 3 * y0 - 6 * y1 + 3 * y2,\n\t\t\t\tcy = -3 * y0 + 3 * y1,\n\t\t\t\ttMin = 1e-8,\n\t\t\t\ttMax = 1 - tMin,\n\t\t\t\troots = [];\n\t\t\tNumerical.solveCubic(\n\t\t\t\t\t9 * (ax * ax + ay * ay),\n\t\t\t\t\t9 * (ax * bx + by * ay),\n\t\t\t\t\t2 * (bx * bx + by * by) + 3 * (cx * ax + cy * ay),\n\t\t\t\t\t(cx * bx + by * cy),\n\t\t\t\t\troots, tMin, tMax);\n\t\t\treturn roots.sort();\n\t\t}\n\t}};\n},\nnew function() {\n\n\tfunction addLocation(locations, include, c1, t1, c2, t2, overlap) {\n\t\tvar excludeStart = !overlap && c1.getPrevious() === c2,\n\t\t\texcludeEnd = !overlap && c1 !== c2 && c1.getNext() === c2,\n\t\t\ttMin = 1e-8,\n\t\t\ttMax = 1 - tMin;\n\t\tif (t1 !== null && t1 >= (excludeStart ? tMin : 0) &&\n\t\t\tt1 <= (excludeEnd ? tMax : 1)) {\n\t\t\tif (t2 !== null && t2 >= (excludeEnd ? tMin : 0) &&\n\t\t\t\tt2 <= (excludeStart ? tMax : 1)) {\n\t\t\t\tvar loc1 = new CurveLocation(c1, t1, null, overlap),\n\t\t\t\t\tloc2 = new CurveLocation(c2, t2, null, overlap);\n\t\t\t\tloc1._intersection = loc2;\n\t\t\t\tloc2._intersection = loc1;\n\t\t\t\tif (!include || include(loc1)) {\n\t\t\t\t\tCurveLocation.insert(locations, loc1, true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction addCurveIntersections(v1, v2, c1, c2, locations, include, flip,\n\t\t\trecursion, calls, tMin, tMax, uMin, uMax) {\n\t\tif (++calls >= 4096 || ++recursion >= 40)\n\t\t\treturn calls;\n\t\tvar fatLineEpsilon = 1e-9,\n\t\t\tq0x = v2[0], q0y = v2[1], q3x = v2[6], q3y = v2[7],\n\t\t\tgetSignedDistance = Line.getSignedDistance,\n\t\t\td1 = getSignedDistance(q0x, q0y, q3x, q3y, v2[2], v2[3]),\n\t\t\td2 = getSignedDistance(q0x, q0y, q3x, q3y, v2[4], v2[5]),\n\t\t\tfactor = d1 * d2 > 0 ? 3 / 4 : 4 / 9,\n\t\t\tdMin = factor * Math.min(0, d1, d2),\n\t\t\tdMax = factor * Math.max(0, d1, d2),\n\t\t\tdp0 = getSignedDistance(q0x, q0y, q3x, q3y, v1[0], v1[1]),\n\t\t\tdp1 = getSignedDistance(q0x, q0y, q3x, q3y, v1[2], v1[3]),\n\t\t\tdp2 = getSignedDistance(q0x, q0y, q3x, q3y, v1[4], v1[5]),\n\t\t\tdp3 = getSignedDistance(q0x, q0y, q3x, q3y, v1[6], v1[7]),\n\t\t\thull = getConvexHull(dp0, dp1, dp2, dp3),\n\t\t\ttop = hull[0],\n\t\t\tbottom = hull[1],\n\t\t\ttMinClip,\n\t\t\ttMaxClip;\n\t\tif (d1 === 0 && d2 === 0\n\t\t\t\t&& dp0 === 0 && dp1 === 0 && dp2 === 0 && dp3 === 0\n\t\t\t|| (tMinClip = clipConvexHull(top, bottom, dMin, dMax)) == null\n\t\t\t|| (tMaxClip = clipConvexHull(top.reverse(), bottom.reverse(),\n\t\t\t\tdMin, dMax)) == null)\n\t\t\treturn calls;\n\t\tvar tMinNew = tMin + (tMax - tMin) * tMinClip,\n\t\t\ttMaxNew = tMin + (tMax - tMin) * tMaxClip;\n\t\tif (Math.max(uMax - uMin, tMaxNew - tMinNew) < fatLineEpsilon) {\n\t\t\tvar t = (tMinNew + tMaxNew) / 2,\n\t\t\t\tu = (uMin + uMax) / 2;\n\t\t\taddLocation(locations, include,\n\t\t\t\t\tflip ? c2 : c1, flip ? u : t,\n\t\t\t\t\tflip ? c1 : c2, flip ? t : u);\n\t\t} else {\n\t\t\tv1 = Curve.getPart(v1, tMinClip, tMaxClip);\n\t\t\tif (tMaxClip - tMinClip > 0.8) {\n\t\t\t\tif (tMaxNew - tMinNew > uMax - uMin) {\n\t\t\t\t\tvar parts = Curve.subdivide(v1, 0.5),\n\t\t\t\t\t\tt = (tMinNew + tMaxNew) / 2;\n\t\t\t\t\tcalls = addCurveIntersections(\n\t\t\t\t\t\t\tv2, parts[0], c2, c1, locations, include, !flip,\n\t\t\t\t\t\t\trecursion, calls, uMin, uMax, tMinNew, t);\n\t\t\t\t\tcalls = addCurveIntersections(\n\t\t\t\t\t\t\tv2, parts[1], c2, c1, locations, include, !flip,\n\t\t\t\t\t\t\trecursion, calls, uMin, uMax, t, tMaxNew);\n\t\t\t\t} else {\n\t\t\t\t\tvar parts = Curve.subdivide(v2, 0.5),\n\t\t\t\t\t\tu = (uMin + uMax) / 2;\n\t\t\t\t\tcalls = addCurveIntersections(\n\t\t\t\t\t\t\tparts[0], v1, c2, c1, locations, include, !flip,\n\t\t\t\t\t\t\trecursion, calls, uMin, u, tMinNew, tMaxNew);\n\t\t\t\t\tcalls = addCurveIntersections(\n\t\t\t\t\t\t\tparts[1], v1, c2, c1, locations, include, !flip,\n\t\t\t\t\t\t\trecursion, calls, u, uMax, tMinNew, tMaxNew);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (uMax - uMin >= fatLineEpsilon) {\n\t\t\t\t\tcalls = addCurveIntersections(\n\t\t\t\t\t\t\tv2, v1, c2, c1, locations, include, !flip,\n\t\t\t\t\t\t\trecursion, calls, uMin, uMax, tMinNew, tMaxNew);\n\t\t\t\t} else {\n\t\t\t\t\tcalls = addCurveIntersections(\n\t\t\t\t\t\t\tv1, v2, c1, c2, locations, include, flip,\n\t\t\t\t\t\t\trecursion, calls, tMinNew, tMaxNew, uMin, uMax);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn calls;\n\t}\n\n\tfunction getConvexHull(dq0, dq1, dq2, dq3) {\n\t\tvar p0 = [ 0, dq0 ],\n\t\t\tp1 = [ 1 / 3, dq1 ],\n\t\t\tp2 = [ 2 / 3, dq2 ],\n\t\t\tp3 = [ 1, dq3 ],\n\t\t\tdist1 = dq1 - (2 * dq0 + dq3) / 3,\n\t\t\tdist2 = dq2 - (dq0 + 2 * dq3) / 3,\n\t\t\thull;\n\t\tif (dist1 * dist2 < 0) {\n\t\t\thull = [[p0, p1, p3], [p0, p2, p3]];\n\t\t} else {\n\t\t\tvar distRatio = dist1 / dist2;\n\t\t\thull = [\n\t\t\t\tdistRatio >= 2 ? [p0, p1, p3]\n\t\t\t\t: distRatio <= 0.5 ? [p0, p2, p3]\n\t\t\t\t: [p0, p1, p2, p3],\n\t\t\t\t[p0, p3]\n\t\t\t];\n\t\t}\n\t\treturn (dist1 || dist2) < 0 ? hull.reverse() : hull;\n\t}\n\n\tfunction clipConvexHull(hullTop, hullBottom, dMin, dMax) {\n\t\tif (hullTop[0][1] < dMin) {\n\t\t\treturn clipConvexHullPart(hullTop, true, dMin);\n\t\t} else if (hullBottom[0][1] > dMax) {\n\t\t\treturn clipConvexHullPart(hullBottom, false, dMax);\n\t\t} else {\n\t\t\treturn hullTop[0][0];\n\t\t}\n\t}\n\n\tfunction clipConvexHullPart(part, top, threshold) {\n\t\tvar px = part[0][0],\n\t\t\tpy = part[0][1];\n\t\tfor (var i = 1, l = part.length; i < l; i++) {\n\t\t\tvar qx = part[i][0],\n\t\t\t\tqy = part[i][1];\n\t\t\tif (top ? qy >= threshold : qy <= threshold) {\n\t\t\t\treturn qy === threshold ? qx\n\t\t\t\t\t\t: px + (threshold - py) * (qx - px) / (qy - py);\n\t\t\t}\n\t\t\tpx = qx;\n\t\t\tpy = qy;\n\t\t}\n\t\treturn null;\n\t}\n\n\tfunction getCurveLineIntersections(v, px, py, vx, vy) {\n\t\tvar isZero = Numerical.isZero;\n\t\tif (isZero(vx) && isZero(vy)) {\n\t\t\tvar t = Curve.getTimeOf(v, new Point(px, py));\n\t\t\treturn t === null ? [] : [t];\n\t\t}\n\t\tvar angle = Math.atan2(-vy, vx),\n\t\t\tsin = Math.sin(angle),\n\t\t\tcos = Math.cos(angle),\n\t\t\trv = [],\n\t\t\troots = [];\n\t\tfor (var i = 0; i < 8; i += 2) {\n\t\t\tvar x = v[i] - px,\n\t\t\t\ty = v[i + 1] - py;\n\t\t\trv.push(\n\t\t\t\tx * cos - y * sin,\n\t\t\t\tx * sin + y * cos);\n\t\t}\n\t\tCurve.solveCubic(rv, 1, 0, roots, 0, 1);\n\t\treturn roots;\n\t}\n\n\tfunction addCurveLineIntersections(v1, v2, c1, c2, locations, include,\n\t\t\tflip) {\n\t\tvar x1 = v2[0], y1 = v2[1],\n\t\t\tx2 = v2[6], y2 = v2[7],\n\t\t\troots = getCurveLineIntersections(v1, x1, y1, x2 - x1, y2 - y1);\n\t\tfor (var i = 0, l = roots.length; i < l; i++) {\n\t\t\tvar t1 = roots[i],\n\t\t\t\tp1 = Curve.getPoint(v1, t1),\n\t\t\t\tt2 = Curve.getTimeOf(v2, p1);\n\t\t\tif (t2 !== null) {\n\t\t\t\taddLocation(locations, include,\n\t\t\t\t\t\tflip ? c2 : c1, flip ? t2 : t1,\n\t\t\t\t\t\tflip ? c1 : c2, flip ? t1 : t2);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction addLineIntersection(v1, v2, c1, c2, locations, include) {\n\t\tvar pt = Line.intersect(\n\t\t\t\tv1[0], v1[1], v1[6], v1[7],\n\t\t\t\tv2[0], v2[1], v2[6], v2[7]);\n\t\tif (pt) {\n\t\t\taddLocation(locations, include,\n\t\t\t\t\tc1, Curve.getTimeOf(v1, pt),\n\t\t\t\t\tc2, Curve.getTimeOf(v2, pt));\n\t\t}\n\t}\n\n\tfunction getCurveIntersections(v1, v2, c1, c2, locations, include) {\n\t\tvar epsilon = 1e-12,\n\t\t\tmin = Math.min,\n\t\t\tmax = Math.max;\n\n\t\tif (max(v1[0], v1[2], v1[4], v1[6]) + epsilon >\n\t\t\tmin(v2[0], v2[2], v2[4], v2[6]) &&\n\t\t\tmin(v1[0], v1[2], v1[4], v1[6]) - epsilon <\n\t\t\tmax(v2[0], v2[2], v2[4], v2[6]) &&\n\t\t\tmax(v1[1], v1[3], v1[5], v1[7]) + epsilon >\n\t\t\tmin(v2[1], v2[3], v2[5], v2[7]) &&\n\t\t\tmin(v1[1], v1[3], v1[5], v1[7]) - epsilon <\n\t\t\tmax(v2[1], v2[3], v2[5], v2[7])) {\n\t\t\tvar overlaps = getOverlaps(v1, v2);\n\t\t\tif (overlaps) {\n\t\t\t\tfor (var i = 0; i < 2; i++) {\n\t\t\t\t\tvar overlap = overlaps[i];\n\t\t\t\t\taddLocation(locations, include,\n\t\t\t\t\t\t\tc1, overlap[0],\n\t\t\t\t\t\t\tc2, overlap[1], true);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar straight1 = Curve.isStraight(v1),\n\t\t\t\t\tstraight2 = Curve.isStraight(v2),\n\t\t\t\t\tstraight = straight1 && straight2,\n\t\t\t\t\tflip = straight1 && !straight2,\n\t\t\t\t\tbefore = locations.length;\n\t\t\t\t(straight\n\t\t\t\t\t? addLineIntersection\n\t\t\t\t\t: straight1 || straight2\n\t\t\t\t\t\t? addCurveLineIntersections\n\t\t\t\t\t\t: addCurveIntersections)(\n\t\t\t\t\t\t\tflip ? v2 : v1, flip ? v1 : v2,\n\t\t\t\t\t\t\tflip ? c2 : c1, flip ? c1 : c2,\n\t\t\t\t\t\t\tlocations, include, flip,\n\t\t\t\t\t\t\t0, 0, 0, 1, 0, 1);\n\t\t\t\tif (!straight || locations.length === before) {\n\t\t\t\t\tfor (var i = 0; i < 4; i++) {\n\t\t\t\t\t\tvar t1 = i >> 1,\n\t\t\t\t\t\t\tt2 = i & 1,\n\t\t\t\t\t\t\ti1 = t1 * 6,\n\t\t\t\t\t\t\ti2 = t2 * 6,\n\t\t\t\t\t\t\tp1 = new Point(v1[i1], v1[i1 + 1]),\n\t\t\t\t\t\t\tp2 = new Point(v2[i2], v2[i2 + 1]);\n\t\t\t\t\t\tif (p1.isClose(p2, epsilon)) {\n\t\t\t\t\t\t\taddLocation(locations, include,\n\t\t\t\t\t\t\t\t\tc1, t1,\n\t\t\t\t\t\t\t\t\tc2, t2);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn locations;\n\t}\n\n\tfunction getLoopIntersection(v1, c1, locations, include) {\n\t\tvar info = Curve.classify(v1);\n\t\tif (info.type === 'loop') {\n\t\t\tvar roots = info.roots;\n\t\t\taddLocation(locations, include,\n\t\t\t\t\tc1, roots[0],\n\t\t\t\t\tc1, roots[1]);\n\t\t}\n\t return locations;\n\t}\n\n\tfunction getIntersections(curves1, curves2, include, matrix1, matrix2,\n\t\t\t_returnFirst) {\n\t\tvar self = !curves2;\n\t\tif (self)\n\t\t\tcurves2 = curves1;\n\t\tvar length1 = curves1.length,\n\t\t\tlength2 = curves2.length,\n\t\t\tvalues2 = [],\n\t\t\tarrays = [],\n\t\t\tlocations,\n\t\t\tcurrent;\n\t\tfor (var i = 0; i < length2; i++)\n\t\t\tvalues2[i] = curves2[i].getValues(matrix2);\n\t\tfor (var i = 0; i < length1; i++) {\n\t\t\tvar curve1 = curves1[i],\n\t\t\t\tvalues1 = self ? values2[i] : curve1.getValues(matrix1),\n\t\t\t\tpath1 = curve1.getPath();\n\t\t\tif (path1 !== current) {\n\t\t\t\tcurrent = path1;\n\t\t\t\tlocations = [];\n\t\t\t\tarrays.push(locations);\n\t\t\t}\n\t\t\tif (self) {\n\t\t\t\tgetLoopIntersection(values1, curve1, locations, include);\n\t\t\t}\n\t\t\tfor (var j = self ? i + 1 : 0; j < length2; j++) {\n\t\t\t\tif (_returnFirst && locations.length)\n\t\t\t\t\treturn locations;\n\t\t\t\tgetCurveIntersections(values1, values2[j], curve1, curves2[j],\n\t\t\t\t\t\tlocations, include);\n\t\t\t}\n\t\t}\n\t\tlocations = [];\n\t\tfor (var i = 0, l = arrays.length; i < l; i++) {\n\t\t\tBase.push(locations, arrays[i]);\n\t\t}\n\t\treturn locations;\n\t}\n\n\tfunction getOverlaps(v1, v2) {\n\n\t\tfunction getSquaredLineLength(v) {\n\t\t\tvar x = v[6] - v[0],\n\t\t\t\ty = v[7] - v[1];\n\t\t\treturn x * x + y * y;\n\t\t}\n\n\t\tvar abs = Math.abs,\n\t\t\tgetDistance = Line.getDistance,\n\t\t\ttimeEpsilon = 1e-8,\n\t\t\tgeomEpsilon = 1e-7,\n\t\t\tstraight1 = Curve.isStraight(v1),\n\t\t\tstraight2 = Curve.isStraight(v2),\n\t\t\tstraightBoth = straight1 && straight2,\n\t\t\tflip = getSquaredLineLength(v1) < getSquaredLineLength(v2),\n\t\t\tl1 = flip ? v2 : v1,\n\t\t\tl2 = flip ? v1 : v2,\n\t\t\tpx = l1[0], py = l1[1],\n\t\t\tvx = l1[6] - px, vy = l1[7] - py;\n\t\tif (getDistance(px, py, vx, vy, l2[0], l2[1], true) < geomEpsilon &&\n\t\t\tgetDistance(px, py, vx, vy, l2[6], l2[7], true) < geomEpsilon) {\n\t\t\tif (!straightBoth &&\n\t\t\t\tgetDistance(px, py, vx, vy, l1[2], l1[3], true) < geomEpsilon &&\n\t\t\t\tgetDistance(px, py, vx, vy, l1[4], l1[5], true) < geomEpsilon &&\n\t\t\t\tgetDistance(px, py, vx, vy, l2[2], l2[3], true) < geomEpsilon &&\n\t\t\t\tgetDistance(px, py, vx, vy, l2[4], l2[5], true) < geomEpsilon) {\n\t\t\t\tstraight1 = straight2 = straightBoth = true;\n\t\t\t}\n\t\t} else if (straightBoth) {\n\t\t\treturn null;\n\t\t}\n\t\tif (straight1 ^ straight2) {\n\t\t\treturn null;\n\t\t}\n\n\t\tvar v = [v1, v2],\n\t\t\tpairs = [];\n\t\tfor (var i = 0; i < 4 && pairs.length < 2; i++) {\n\t\t\tvar i1 = i & 1,\n\t\t\t\ti2 = i1 ^ 1,\n\t\t\t\tt1 = i >> 1,\n\t\t\t\tt2 = Curve.getTimeOf(v[i1], new Point(\n\t\t\t\t\tv[i2][t1 ? 6 : 0],\n\t\t\t\t\tv[i2][t1 ? 7 : 1]));\n\t\t\tif (t2 != null) {\n\t\t\t\tvar pair = i1 ? [t1, t2] : [t2, t1];\n\t\t\t\tif (!pairs.length ||\n\t\t\t\t\tabs(pair[0] - pairs[0][0]) > timeEpsilon &&\n\t\t\t\t\tabs(pair[1] - pairs[0][1]) > timeEpsilon) {\n\t\t\t\t\tpairs.push(pair);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (i > 2 && !pairs.length)\n\t\t\t\tbreak;\n\t\t}\n\t\tif (pairs.length !== 2) {\n\t\t\tpairs = null;\n\t\t} else if (!straightBoth) {\n\t\t\tvar o1 = Curve.getPart(v1, pairs[0][0], pairs[1][0]),\n\t\t\t\to2 = Curve.getPart(v2, pairs[0][1], pairs[1][1]);\n\t\t\tif (abs(o2[2] - o1[2]) > geomEpsilon ||\n\t\t\t\tabs(o2[3] - o1[3]) > geomEpsilon ||\n\t\t\t\tabs(o2[4] - o1[4]) > geomEpsilon ||\n\t\t\t\tabs(o2[5] - o1[5]) > geomEpsilon)\n\t\t\t\tpairs = null;\n\t\t}\n\t\treturn pairs;\n\t}\n\n\tfunction getTimesWithTangent(v, tangent) {\n\t\tvar x0 = v[0], y0 = v[1],\n\t\t\tx1 = v[2], y1 = v[3],\n\t\t\tx2 = v[4], y2 = v[5],\n\t\t\tx3 = v[6], y3 = v[7],\n\t\t\tnormalized = tangent.normalize(),\n\t\t\ttx = normalized.x,\n\t\t\tty = normalized.y,\n\t\t\tax = 3 * x3 - 9 * x2 + 9 * x1 - 3 * x0,\n\t\t\tay = 3 * y3 - 9 * y2 + 9 * y1 - 3 * y0,\n\t\t\tbx = 6 * x2 - 12 * x1 + 6 * x0,\n\t\t\tby = 6 * y2 - 12 * y1 + 6 * y0,\n\t\t\tcx = 3 * x1 - 3 * x0,\n\t\t\tcy = 3 * y1 - 3 * y0,\n\t\t\tden = 2 * ax * ty - 2 * ay * tx,\n\t\t\ttimes = [];\n\t\tif (Math.abs(den) < Numerical.CURVETIME_EPSILON) {\n\t\t\tvar num = ax * cy - ay * cx,\n\t\t\t\tden = ax * by - ay * bx;\n\t\t\tif (den != 0) {\n\t\t\t\tvar t = -num / den;\n\t\t\t\tif (t >= 0 && t <= 1) times.push(t);\n\t\t\t}\n\t\t} else {\n\t\t\tvar delta = (bx * bx - 4 * ax * cx) * ty * ty +\n\t\t\t\t(-2 * bx * by + 4 * ay * cx + 4 * ax * cy) * tx * ty +\n\t\t\t\t(by * by - 4 * ay * cy) * tx * tx,\n\t\t\t\tk = bx * ty - by * tx;\n\t\t\tif (delta >= 0 && den != 0) {\n\t\t\t\tvar d = Math.sqrt(delta),\n\t\t\t\t\tt0 = -(k + d) / den,\n\t\t\t\t\tt1 = (-k + d) / den;\n\t\t\t\tif (t0 >= 0 && t0 <= 1) times.push(t0);\n\t\t\t\tif (t1 >= 0 && t1 <= 1) times.push(t1);\n\t\t\t}\n\t\t}\n\t\treturn times;\n\t}\n\n\treturn {\n\t\tgetIntersections: function(curve) {\n\t\t\tvar v1 = this.getValues(),\n\t\t\t\tv2 = curve && curve !== this && curve.getValues();\n\t\t\treturn v2 ? getCurveIntersections(v1, v2, this, curve, [])\n\t\t\t\t\t : getLoopIntersection(v1, this, []);\n\t\t},\n\n\t\tstatics: {\n\t\t\tgetOverlaps: getOverlaps,\n\t\t\tgetIntersections: getIntersections,\n\t\t\tgetCurveLineIntersections: getCurveLineIntersections,\n\t\t\tgetTimesWithTangent: getTimesWithTangent\n\t\t}\n\t};\n});\n\nvar CurveLocation = Base.extend({\n\t_class: 'CurveLocation',\n\n\tinitialize: function CurveLocation(curve, time, point, _overlap, _distance) {\n\t\tif (time >= 0.99999999) {\n\t\t\tvar next = curve.getNext();\n\t\t\tif (next) {\n\t\t\t\ttime = 0;\n\t\t\t\tcurve = next;\n\t\t\t}\n\t\t}\n\t\tthis._setCurve(curve);\n\t\tthis._time = time;\n\t\tthis._point = point || curve.getPointAtTime(time);\n\t\tthis._overlap = _overlap;\n\t\tthis._distance = _distance;\n\t\tthis._intersection = this._next = this._previous = null;\n\t},\n\n\t_setCurve: function(curve) {\n\t\tvar path = curve._path;\n\t\tthis._path = path;\n\t\tthis._version = path ? path._version : 0;\n\t\tthis._curve = curve;\n\t\tthis._segment = null;\n\t\tthis._segment1 = curve._segment1;\n\t\tthis._segment2 = curve._segment2;\n\t},\n\n\t_setSegment: function(segment) {\n\t\tthis._setCurve(segment.getCurve());\n\t\tthis._segment = segment;\n\t\tthis._time = segment === this._segment1 ? 0 : 1;\n\t\tthis._point = segment._point.clone();\n\t},\n\n\tgetSegment: function() {\n\t\tvar segment = this._segment;\n\t\tif (!segment) {\n\t\t\tvar curve = this.getCurve(),\n\t\t\t\ttime = this.getTime();\n\t\t\tif (time === 0) {\n\t\t\t\tsegment = curve._segment1;\n\t\t\t} else if (time === 1) {\n\t\t\t\tsegment = curve._segment2;\n\t\t\t} else if (time != null) {\n\t\t\t\tsegment = curve.getPartLength(0, time)\n\t\t\t\t\t< curve.getPartLength(time, 1)\n\t\t\t\t\t\t? curve._segment1\n\t\t\t\t\t\t: curve._segment2;\n\t\t\t}\n\t\t\tthis._segment = segment;\n\t\t}\n\t\treturn segment;\n\t},\n\n\tgetCurve: function() {\n\t\tvar path = this._path,\n\t\t\tthat = this;\n\t\tif (path && path._version !== this._version) {\n\t\t\tthis._time = this._offset = this._curveOffset = this._curve = null;\n\t\t}\n\n\t\tfunction trySegment(segment) {\n\t\t\tvar curve = segment && segment.getCurve();\n\t\t\tif (curve && (that._time = curve.getTimeOf(that._point)) != null) {\n\t\t\t\tthat._setCurve(curve);\n\t\t\t\treturn curve;\n\t\t\t}\n\t\t}\n\n\t\treturn this._curve\n\t\t\t|| trySegment(this._segment)\n\t\t\t|| trySegment(this._segment1)\n\t\t\t|| trySegment(this._segment2.getPrevious());\n\t},\n\n\tgetPath: function() {\n\t\tvar curve = this.getCurve();\n\t\treturn curve && curve._path;\n\t},\n\n\tgetIndex: function() {\n\t\tvar curve = this.getCurve();\n\t\treturn curve && curve.getIndex();\n\t},\n\n\tgetTime: function() {\n\t\tvar curve = this.getCurve(),\n\t\t\ttime = this._time;\n\t\treturn curve && time == null\n\t\t\t? this._time = curve.getTimeOf(this._point)\n\t\t\t: time;\n\t},\n\n\tgetParameter: '#getTime',\n\n\tgetPoint: function() {\n\t\treturn this._point;\n\t},\n\n\tgetOffset: function() {\n\t\tvar offset = this._offset;\n\t\tif (offset == null) {\n\t\t\toffset = 0;\n\t\t\tvar path = this.getPath(),\n\t\t\t\tindex = this.getIndex();\n\t\t\tif (path && index != null) {\n\t\t\t\tvar curves = path.getCurves();\n\t\t\t\tfor (var i = 0; i < index; i++)\n\t\t\t\t\toffset += curves[i].getLength();\n\t\t\t}\n\t\t\tthis._offset = offset += this.getCurveOffset();\n\t\t}\n\t\treturn offset;\n\t},\n\n\tgetCurveOffset: function() {\n\t\tvar offset = this._curveOffset;\n\t\tif (offset == null) {\n\t\t\tvar curve = this.getCurve(),\n\t\t\t\ttime = this.getTime();\n\t\t\tthis._curveOffset = offset = time != null && curve\n\t\t\t\t\t&& curve.getPartLength(0, time);\n\t\t}\n\t\treturn offset;\n\t},\n\n\tgetIntersection: function() {\n\t\treturn this._intersection;\n\t},\n\n\tgetDistance: function() {\n\t\treturn this._distance;\n\t},\n\n\tdivide: function() {\n\t\tvar curve = this.getCurve(),\n\t\t\tres = curve && curve.divideAtTime(this.getTime());\n\t\tif (res) {\n\t\t\tthis._setSegment(res._segment1);\n\t\t}\n\t\treturn res;\n\t},\n\n\tsplit: function() {\n\t\tvar curve = this.getCurve(),\n\t\t\tpath = curve._path,\n\t\t\tres = curve && curve.splitAtTime(this.getTime());\n\t\tif (res) {\n\t\t\tthis._setSegment(path.getLastSegment());\n\t\t}\n\t\treturn res;\n\t},\n\n\tequals: function(loc, _ignoreOther) {\n\t\tvar res = this === loc;\n\t\tif (!res && loc instanceof CurveLocation) {\n\t\t\tvar c1 = this.getCurve(),\n\t\t\t\tc2 = loc.getCurve(),\n\t\t\t\tp1 = c1._path,\n\t\t\t\tp2 = c2._path;\n\t\t\tif (p1 === p2) {\n\t\t\t\tvar abs = Math.abs,\n\t\t\t\t\tepsilon = 1e-7,\n\t\t\t\t\tdiff = abs(this.getOffset() - loc.getOffset()),\n\t\t\t\t\ti1 = !_ignoreOther && this._intersection,\n\t\t\t\t\ti2 = !_ignoreOther && loc._intersection;\n\t\t\t\tres = (diff < epsilon\n\t\t\t\t\t\t|| p1 && abs(p1.getLength() - diff) < epsilon)\n\t\t\t\t\t&& (!i1 && !i2 || i1 && i2 && i1.equals(i2, true));\n\t\t\t}\n\t\t}\n\t\treturn res;\n\t},\n\n\ttoString: function() {\n\t\tvar parts = [],\n\t\t\tpoint = this.getPoint(),\n\t\t\tf = Formatter.instance;\n\t\tif (point)\n\t\t\tparts.push('point: ' + point);\n\t\tvar index = this.getIndex();\n\t\tif (index != null)\n\t\t\tparts.push('index: ' + index);\n\t\tvar time = this.getTime();\n\t\tif (time != null)\n\t\t\tparts.push('time: ' + f.number(time));\n\t\tif (this._distance != null)\n\t\t\tparts.push('distance: ' + f.number(this._distance));\n\t\treturn '{ ' + parts.join(', ') + ' }';\n\t},\n\n\tisTouching: function() {\n\t\tvar inter = this._intersection;\n\t\tif (inter && this.getTangent().isCollinear(inter.getTangent())) {\n\t\t\tvar curve1 = this.getCurve(),\n\t\t\t\tcurve2 = inter.getCurve();\n\t\t\treturn !(curve1.isStraight() && curve2.isStraight()\n\t\t\t\t\t&& curve1.getLine().intersect(curve2.getLine()));\n\t\t}\n\t\treturn false;\n\t},\n\n\tisCrossing: function() {\n\t\tvar inter = this._intersection;\n\t\tif (!inter)\n\t\t\treturn false;\n\t\tvar t1 = this.getTime(),\n\t\t\tt2 = inter.getTime(),\n\t\t\ttMin = 1e-8,\n\t\t\ttMax = 1 - tMin,\n\t\t\tt1Inside = t1 >= tMin && t1 <= tMax,\n\t\t\tt2Inside = t2 >= tMin && t2 <= tMax;\n\t\tif (t1Inside && t2Inside)\n\t\t\treturn !this.isTouching();\n\t\tvar c2 = this.getCurve(),\n\t\t\tc1 = t1 < tMin ? c2.getPrevious() : c2,\n\t\t\tc4 = inter.getCurve(),\n\t\t\tc3 = t2 < tMin ? c4.getPrevious() : c4;\n\t\tif (t1 > tMax)\n\t\t\tc2 = c2.getNext();\n\t\tif (t2 > tMax)\n\t\t\tc4 = c4.getNext();\n\t\tif (!c1 || !c2 || !c3 || !c4)\n\t\t\treturn false;\n\n\t\tvar offsets = [];\n\n\t\tfunction addOffsets(curve, end) {\n\t\t\tvar v = curve.getValues(),\n\t\t\t\troots = Curve.classify(v).roots || Curve.getPeaks(v),\n\t\t\t\tcount = roots.length,\n\t\t\t\tt = end && count > 1 ? roots[count - 1]\n\t\t\t\t\t\t: count > 0 ? roots[0]\n\t\t\t\t\t\t: 0.5;\n\t\t\toffsets.push(Curve.getLength(v, end ? t : 0, end ? 1 : t) / 2);\n\t\t}\n\n\t\tfunction isInRange(angle, min, max) {\n\t\t\treturn min < max\n\t\t\t\t\t? angle > min && angle < max\n\t\t\t\t\t: angle > min || angle < max;\n\t\t}\n\n\t\tif (!t1Inside) {\n\t\t\taddOffsets(c1, true);\n\t\t\taddOffsets(c2, false);\n\t\t}\n\t\tif (!t2Inside) {\n\t\t\taddOffsets(c3, true);\n\t\t\taddOffsets(c4, false);\n\t\t}\n\t\tvar pt = this.getPoint(),\n\t\t\toffset = Math.min.apply(Math, offsets),\n\t\t\tv2 = t1Inside ? c2.getTangentAtTime(t1)\n\t\t\t\t\t: c2.getPointAt(offset).subtract(pt),\n\t\t\tv1 = t1Inside ? v2.negate()\n\t\t\t\t\t: c1.getPointAt(-offset).subtract(pt),\n\t\t\tv4 = t2Inside ? c4.getTangentAtTime(t2)\n\t\t\t\t\t: c4.getPointAt(offset).subtract(pt),\n\t\t\tv3 = t2Inside ? v4.negate()\n\t\t\t\t\t: c3.getPointAt(-offset).subtract(pt),\n\t\t\ta1 = v1.getAngle(),\n\t\t\ta2 = v2.getAngle(),\n\t\t\ta3 = v3.getAngle(),\n\t\t\ta4 = v4.getAngle();\n\t\treturn !!(t1Inside\n\t\t\t\t? (isInRange(a1, a3, a4) ^ isInRange(a2, a3, a4)) &&\n\t\t\t\t (isInRange(a1, a4, a3) ^ isInRange(a2, a4, a3))\n\t\t\t\t: (isInRange(a3, a1, a2) ^ isInRange(a4, a1, a2)) &&\n\t\t\t\t (isInRange(a3, a2, a1) ^ isInRange(a4, a2, a1)));\n\t},\n\n\thasOverlap: function() {\n\t\treturn !!this._overlap;\n\t}\n}, Base.each(Curve._evaluateMethods, function(name) {\n\tvar get = name + 'At';\n\tthis[name] = function() {\n\t\tvar curve = this.getCurve(),\n\t\t\ttime = this.getTime();\n\t\treturn time != null && curve && curve[get](time, true);\n\t};\n}, {\n\tpreserve: true\n}),\nnew function() {\n\n\tfunction insert(locations, loc, merge) {\n\t\tvar length = locations.length,\n\t\t\tl = 0,\n\t\t\tr = length - 1;\n\n\t\tfunction search(index, dir) {\n\t\t\tfor (var i = index + dir; i >= -1 && i <= length; i += dir) {\n\t\t\t\tvar loc2 = locations[((i % length) + length) % length];\n\t\t\t\tif (!loc.getPoint().isClose(loc2.getPoint(),\n\t\t\t\t\t\t1e-7))\n\t\t\t\t\tbreak;\n\t\t\t\tif (loc.equals(loc2))\n\t\t\t\t\treturn loc2;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\twhile (l <= r) {\n\t\t\tvar m = (l + r) >>> 1,\n\t\t\t\tloc2 = locations[m],\n\t\t\t\tfound;\n\t\t\tif (merge && (found = loc.equals(loc2) ? loc2\n\t\t\t\t\t: (search(m, -1) || search(m, 1)))) {\n\t\t\t\tif (loc._overlap) {\n\t\t\t\t\tfound._overlap = found._intersection._overlap = true;\n\t\t\t\t}\n\t\t\t\treturn found;\n\t\t\t}\n\t\tvar path1 = loc.getPath(),\n\t\t\tpath2 = loc2.getPath(),\n\t\t\tdiff = path1 !== path2\n\t\t\t\t? path1._id - path2._id\n\t\t\t\t: (loc.getIndex() + loc.getTime())\n\t\t\t\t- (loc2.getIndex() + loc2.getTime());\n\t\t\tif (diff < 0) {\n\t\t\t\tr = m - 1;\n\t\t\t} else {\n\t\t\t\tl = m + 1;\n\t\t\t}\n\t\t}\n\t\tlocations.splice(l, 0, loc);\n\t\treturn loc;\n\t}\n\n\treturn { statics: {\n\t\tinsert: insert,\n\n\t\texpand: function(locations) {\n\t\t\tvar expanded = locations.slice();\n\t\t\tfor (var i = locations.length - 1; i >= 0; i--) {\n\t\t\t\tinsert(expanded, locations[i]._intersection, false);\n\t\t\t}\n\t\t\treturn expanded;\n\t\t}\n\t}};\n});\n\nvar PathItem = Item.extend({\n\t_class: 'PathItem',\n\t_selectBounds: false,\n\t_canScaleStroke: true,\n\tbeans: true,\n\n\tinitialize: function PathItem() {\n\t},\n\n\tstatics: {\n\t\tcreate: function(arg) {\n\t\t\tvar data,\n\t\t\t\tsegments,\n\t\t\t\tcompound;\n\t\t\tif (Base.isPlainObject(arg)) {\n\t\t\t\tsegments = arg.segments;\n\t\t\t\tdata = arg.pathData;\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tsegments = arg;\n\t\t\t} else if (typeof arg === 'string') {\n\t\t\t\tdata = arg;\n\t\t\t}\n\t\t\tif (segments) {\n\t\t\t\tvar first = segments[0];\n\t\t\t\tcompound = first && Array.isArray(first[0]);\n\t\t\t} else if (data) {\n\t\t\t\tcompound = (data.match(/m/gi) || []).length > 1\n\t\t\t\t\t\t|| /z\\s*\\S+/i.test(data);\n\t\t\t}\n\t\t\tvar ctor = compound ? CompoundPath : Path;\n\t\t\treturn new ctor(arg);\n\t\t}\n\t},\n\n\t_asPathItem: function() {\n\t\treturn this;\n\t},\n\n\tisClockwise: function() {\n\t\treturn this.getArea() >= 0;\n\t},\n\n\tsetClockwise: function(clockwise) {\n\t\tif (this.isClockwise() != (clockwise = !!clockwise))\n\t\t\tthis.reverse();\n\t},\n\n\tsetPathData: function(data) {\n\n\t\tvar parts = data && data.match(/[mlhvcsqtaz][^mlhvcsqtaz]*/ig),\n\t\t\tcoords,\n\t\t\trelative = false,\n\t\t\tprevious,\n\t\t\tcontrol,\n\t\t\tcurrent = new Point(),\n\t\t\tstart = new Point();\n\n\t\tfunction getCoord(index, coord) {\n\t\t\tvar val = +coords[index];\n\t\t\tif (relative)\n\t\t\t\tval += current[coord];\n\t\t\treturn val;\n\t\t}\n\n\t\tfunction getPoint(index) {\n\t\t\treturn new Point(\n\t\t\t\tgetCoord(index, 'x'),\n\t\t\t\tgetCoord(index + 1, 'y')\n\t\t\t);\n\t\t}\n\n\t\tthis.clear();\n\n\t\tfor (var i = 0, l = parts && parts.length; i < l; i++) {\n\t\t\tvar part = parts[i],\n\t\t\t\tcommand = part[0],\n\t\t\t\tlower = command.toLowerCase();\n\t\t\tcoords = part.match(/[+-]?(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][+-]?\\d+)?/g);\n\t\t\tvar length = coords && coords.length;\n\t\t\trelative = command === lower;\n\t\t\tif (previous === 'z' && !/[mz]/.test(lower))\n\t\t\t\tthis.moveTo(current);\n\t\t\tswitch (lower) {\n\t\t\tcase 'm':\n\t\t\tcase 'l':\n\t\t\t\tvar move = lower === 'm';\n\t\t\t\tfor (var j = 0; j < length; j += 2) {\n\t\t\t\t\tthis[move ? 'moveTo' : 'lineTo'](current = getPoint(j));\n\t\t\t\t\tif (move) {\n\t\t\t\t\t\tstart = current;\n\t\t\t\t\t\tmove = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontrol = current;\n\t\t\t\tbreak;\n\t\t\tcase 'h':\n\t\t\tcase 'v':\n\t\t\t\tvar coord = lower === 'h' ? 'x' : 'y';\n\t\t\t\tcurrent = current.clone();\n\t\t\t\tfor (var j = 0; j < length; j++) {\n\t\t\t\t\tcurrent[coord] = getCoord(j, coord);\n\t\t\t\t\tthis.lineTo(current);\n\t\t\t\t}\n\t\t\t\tcontrol = current;\n\t\t\t\tbreak;\n\t\t\tcase 'c':\n\t\t\t\tfor (var j = 0; j < length; j += 6) {\n\t\t\t\t\tthis.cubicCurveTo(\n\t\t\t\t\t\t\tgetPoint(j),\n\t\t\t\t\t\t\tcontrol = getPoint(j + 2),\n\t\t\t\t\t\t\tcurrent = getPoint(j + 4));\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 's':\n\t\t\t\tfor (var j = 0; j < length; j += 4) {\n\t\t\t\t\tthis.cubicCurveTo(\n\t\t\t\t\t\t\t/[cs]/.test(previous)\n\t\t\t\t\t\t\t\t\t? current.multiply(2).subtract(control)\n\t\t\t\t\t\t\t\t\t: current,\n\t\t\t\t\t\t\tcontrol = getPoint(j),\n\t\t\t\t\t\t\tcurrent = getPoint(j + 2));\n\t\t\t\t\tprevious = lower;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'q':\n\t\t\t\tfor (var j = 0; j < length; j += 4) {\n\t\t\t\t\tthis.quadraticCurveTo(\n\t\t\t\t\t\t\tcontrol = getPoint(j),\n\t\t\t\t\t\t\tcurrent = getPoint(j + 2));\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 't':\n\t\t\t\tfor (var j = 0; j < length; j += 2) {\n\t\t\t\t\tthis.quadraticCurveTo(\n\t\t\t\t\t\t\tcontrol = (/[qt]/.test(previous)\n\t\t\t\t\t\t\t\t\t? current.multiply(2).subtract(control)\n\t\t\t\t\t\t\t\t\t: current),\n\t\t\t\t\t\t\tcurrent = getPoint(j));\n\t\t\t\t\tprevious = lower;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'a':\n\t\t\t\tfor (var j = 0; j < length; j += 7) {\n\t\t\t\t\tthis.arcTo(current = getPoint(j + 5),\n\t\t\t\t\t\t\tnew Size(+coords[j], +coords[j + 1]),\n\t\t\t\t\t\t\t+coords[j + 2], +coords[j + 4], +coords[j + 3]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'z':\n\t\t\t\tthis.closePath(1e-12);\n\t\t\t\tcurrent = start;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tprevious = lower;\n\t\t}\n\t},\n\n\t_canComposite: function() {\n\t\treturn !(this.hasFill() && this.hasStroke());\n\t},\n\n\t_contains: function(point) {\n\t\tvar winding = point.isInside(\n\t\t\t\tthis.getBounds({ internal: true, handle: true }))\n\t\t\t\t\t? this._getWinding(point)\n\t\t\t\t\t: {};\n\t\treturn winding.onPath || !!(this.getFillRule() === 'evenodd'\n\t\t\t\t? winding.windingL & 1 || winding.windingR & 1\n\t\t\t\t: winding.winding);\n\t},\n\n\tgetIntersections: function(path, include, _matrix, _returnFirst) {\n\t\tvar self = this === path || !path,\n\t\t\tmatrix1 = this._matrix._orNullIfIdentity(),\n\t\t\tmatrix2 = self ? matrix1\n\t\t\t\t: (_matrix || path._matrix)._orNullIfIdentity();\n\t\treturn self || this.getBounds(matrix1).intersects(\n\t\t\t\tpath.getBounds(matrix2), 1e-12)\n\t\t\t\t? Curve.getIntersections(\n\t\t\t\t\t\tthis.getCurves(), !self && path.getCurves(), include,\n\t\t\t\t\t\tmatrix1, matrix2, _returnFirst)\n\t\t\t\t: [];\n\t},\n\n\tgetCrossings: function(path) {\n\t\treturn this.getIntersections(path, function(inter) {\n\t\t\treturn inter.hasOverlap() || inter.isCrossing();\n\t\t});\n\t},\n\n\tgetNearestLocation: function() {\n\t\tvar point = Point.read(arguments),\n\t\t\tcurves = this.getCurves(),\n\t\t\tminDist = Infinity,\n\t\t\tminLoc = null;\n\t\tfor (var i = 0, l = curves.length; i < l; i++) {\n\t\t\tvar loc = curves[i].getNearestLocation(point);\n\t\t\tif (loc._distance < minDist) {\n\t\t\t\tminDist = loc._distance;\n\t\t\t\tminLoc = loc;\n\t\t\t}\n\t\t}\n\t\treturn minLoc;\n\t},\n\n\tgetNearestPoint: function() {\n\t\tvar loc = this.getNearestLocation.apply(this, arguments);\n\t\treturn loc ? loc.getPoint() : loc;\n\t},\n\n\tinterpolate: function(from, to, factor) {\n\t\tvar isPath = !this._children,\n\t\t\tname = isPath ? '_segments' : '_children',\n\t\t\titemsFrom = from[name],\n\t\t\titemsTo = to[name],\n\t\t\titems = this[name];\n\t\tif (!itemsFrom || !itemsTo || itemsFrom.length !== itemsTo.length) {\n\t\t\tthrow new Error('Invalid operands in interpolate() call: ' +\n\t\t\t\t\tfrom + ', ' + to);\n\t\t}\n\t\tvar current = items.length,\n\t\t\tlength = itemsTo.length;\n\t\tif (current < length) {\n\t\t\tvar ctor = isPath ? Segment : Path;\n\t\t\tfor (var i = current; i < length; i++) {\n\t\t\t\tthis.add(new ctor());\n\t\t\t}\n\t\t} else if (current > length) {\n\t\t\tthis[isPath ? 'removeSegments' : 'removeChildren'](length, current);\n\t\t}\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\titems[i].interpolate(itemsFrom[i], itemsTo[i], factor);\n\t\t}\n\t\tif (isPath) {\n\t\t\tthis.setClosed(from._closed);\n\t\t\tthis._changed(9);\n\t\t}\n\t},\n\n\tcompare: function(path) {\n\t\tvar ok = false;\n\t\tif (path) {\n\t\t\tvar paths1 = this._children || [this],\n\t\t\t\tpaths2 = path._children ? path._children.slice() : [path],\n\t\t\t\tlength1 = paths1.length,\n\t\t\t\tlength2 = paths2.length,\n\t\t\t\tmatched = [],\n\t\t\t\tcount = 0;\n\t\t\tok = true;\n\t\t\tfor (var i1 = length1 - 1; i1 >= 0 && ok; i1--) {\n\t\t\t\tvar path1 = paths1[i1];\n\t\t\t\tok = false;\n\t\t\t\tfor (var i2 = length2 - 1; i2 >= 0 && !ok; i2--) {\n\t\t\t\t\tif (path1.compare(paths2[i2])) {\n\t\t\t\t\t\tif (!matched[i2]) {\n\t\t\t\t\t\t\tmatched[i2] = true;\n\t\t\t\t\t\t\tcount++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tok = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tok = ok && count === length2;\n\t\t}\n\t\treturn ok;\n\t},\n\n});\n\nvar Path = PathItem.extend({\n\t_class: 'Path',\n\t_serializeFields: {\n\t\tsegments: [],\n\t\tclosed: false\n\t},\n\n\tinitialize: function Path(arg) {\n\t\tthis._closed = false;\n\t\tthis._segments = [];\n\t\tthis._version = 0;\n\t\tvar segments = Array.isArray(arg)\n\t\t\t? typeof arg[0] === 'object'\n\t\t\t\t? arg\n\t\t\t\t: arguments\n\t\t\t: arg && (arg.size === undefined && (arg.x !== undefined\n\t\t\t\t\t|| arg.point !== undefined))\n\t\t\t\t? arguments\n\t\t\t\t: null;\n\t\tif (segments && segments.length > 0) {\n\t\t\tthis.setSegments(segments);\n\t\t} else {\n\t\t\tthis._curves = undefined;\n\t\t\tthis._segmentSelection = 0;\n\t\t\tif (!segments && typeof arg === 'string') {\n\t\t\t\tthis.setPathData(arg);\n\t\t\t\targ = null;\n\t\t\t}\n\t\t}\n\t\tthis._initialize(!segments && arg);\n\t},\n\n\t_equals: function(item) {\n\t\treturn this._closed === item._closed\n\t\t\t\t&& Base.equals(this._segments, item._segments);\n\t},\n\n\tcopyContent: function(source) {\n\t\tthis.setSegments(source._segments);\n\t\tthis._closed = source._closed;\n\t},\n\n\t_changed: function _changed(flags) {\n\t\t_changed.base.call(this, flags);\n\t\tif (flags & 8) {\n\t\t\tthis._length = this._area = undefined;\n\t\t\tif (flags & 32) {\n\t\t\t\tthis._version++;\n\t\t\t} else if (this._curves) {\n\t\t\t for (var i = 0, l = this._curves.length; i < l; i++)\n\t\t\t\t\tthis._curves[i]._changed();\n\t\t\t}\n\t\t} else if (flags & 64) {\n\t\t\tthis._bounds = undefined;\n\t\t}\n\t},\n\n\tgetStyle: function() {\n\t\tvar parent = this._parent;\n\t\treturn (parent instanceof CompoundPath ? parent : this)._style;\n\t},\n\n\tgetSegments: function() {\n\t\treturn this._segments;\n\t},\n\n\tsetSegments: function(segments) {\n\t\tvar fullySelected = this.isFullySelected(),\n\t\t\tlength = segments && segments.length;\n\t\tthis._segments.length = 0;\n\t\tthis._segmentSelection = 0;\n\t\tthis._curves = undefined;\n\t\tif (length) {\n\t\t\tvar last = segments[length - 1];\n\t\t\tif (typeof last === 'boolean') {\n\t\t\t\tthis.setClosed(last);\n\t\t\t\tlength--;\n\t\t\t}\n\t\t\tthis._add(Segment.readList(segments, 0, {}, length));\n\t\t}\n\t\tif (fullySelected)\n\t\t\tthis.setFullySelected(true);\n\t},\n\n\tgetFirstSegment: function() {\n\t\treturn this._segments[0];\n\t},\n\n\tgetLastSegment: function() {\n\t\treturn this._segments[this._segments.length - 1];\n\t},\n\n\tgetCurves: function() {\n\t\tvar curves = this._curves,\n\t\t\tsegments = this._segments;\n\t\tif (!curves) {\n\t\t\tvar length = this._countCurves();\n\t\t\tcurves = this._curves = new Array(length);\n\t\t\tfor (var i = 0; i < length; i++)\n\t\t\t\tcurves[i] = new Curve(this, segments[i],\n\t\t\t\t\tsegments[i + 1] || segments[0]);\n\t\t}\n\t\treturn curves;\n\t},\n\n\tgetFirstCurve: function() {\n\t\treturn this.getCurves()[0];\n\t},\n\n\tgetLastCurve: function() {\n\t\tvar curves = this.getCurves();\n\t\treturn curves[curves.length - 1];\n\t},\n\n\tisClosed: function() {\n\t\treturn this._closed;\n\t},\n\n\tsetClosed: function(closed) {\n\t\tif (this._closed != (closed = !!closed)) {\n\t\t\tthis._closed = closed;\n\t\t\tif (this._curves) {\n\t\t\t\tvar length = this._curves.length = this._countCurves();\n\t\t\t\tif (closed)\n\t\t\t\t\tthis._curves[length - 1] = new Curve(this,\n\t\t\t\t\t\tthis._segments[length - 1], this._segments[0]);\n\t\t\t}\n\t\t\tthis._changed(41);\n\t\t}\n\t}\n}, {\n\tbeans: true,\n\n\tgetPathData: function(_matrix, _precision) {\n\t\tvar segments = this._segments,\n\t\t\tlength = segments.length,\n\t\t\tf = new Formatter(_precision),\n\t\t\tcoords = new Array(6),\n\t\t\tfirst = true,\n\t\t\tcurX, curY,\n\t\t\tprevX, prevY,\n\t\t\tinX, inY,\n\t\t\toutX, outY,\n\t\t\tparts = [];\n\n\t\tfunction addSegment(segment, skipLine) {\n\t\t\tsegment._transformCoordinates(_matrix, coords);\n\t\t\tcurX = coords[0];\n\t\t\tcurY = coords[1];\n\t\t\tif (first) {\n\t\t\t\tparts.push('M' + f.pair(curX, curY));\n\t\t\t\tfirst = false;\n\t\t\t} else {\n\t\t\t\tinX = coords[2];\n\t\t\t\tinY = coords[3];\n\t\t\t\tif (inX === curX && inY === curY\n\t\t\t\t\t\t&& outX === prevX && outY === prevY) {\n\t\t\t\t\tif (!skipLine) {\n\t\t\t\t\t\tvar dx = curX - prevX,\n\t\t\t\t\t\t\tdy = curY - prevY;\n\t\t\t\t\t\tparts.push(\n\t\t\t\t\t\t\t dx === 0 ? 'v' + f.number(dy)\n\t\t\t\t\t\t\t: dy === 0 ? 'h' + f.number(dx)\n\t\t\t\t\t\t\t: 'l' + f.pair(dx, dy));\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tparts.push('c' + f.pair(outX - prevX, outY - prevY)\n\t\t\t\t\t\t\t + ' ' + f.pair( inX - prevX, inY - prevY)\n\t\t\t\t\t\t\t + ' ' + f.pair(curX - prevX, curY - prevY));\n\t\t\t\t}\n\t\t\t}\n\t\t\tprevX = curX;\n\t\t\tprevY = curY;\n\t\t\toutX = coords[4];\n\t\t\toutY = coords[5];\n\t\t}\n\n\t\tif (!length)\n\t\t\treturn '';\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\taddSegment(segments[i]);\n\t\tif (this._closed && length > 0) {\n\t\t\taddSegment(segments[0], true);\n\t\t\tparts.push('z');\n\t\t}\n\t\treturn parts.join('');\n\t},\n\n\tisEmpty: function() {\n\t\treturn !this._segments.length;\n\t},\n\n\t_transformContent: function(matrix) {\n\t\tvar segments = this._segments,\n\t\t\tcoords = new Array(6);\n\t\tfor (var i = 0, l = segments.length; i < l; i++)\n\t\t\tsegments[i]._transformCoordinates(matrix, coords, true);\n\t\treturn true;\n\t},\n\n\t_add: function(segs, index) {\n\t\tvar segments = this._segments,\n\t\t\tcurves = this._curves,\n\t\t\tamount = segs.length,\n\t\t\tappend = index == null,\n\t\t\tindex = append ? segments.length : index;\n\t\tfor (var i = 0; i < amount; i++) {\n\t\t\tvar segment = segs[i];\n\t\t\tif (segment._path)\n\t\t\t\tsegment = segs[i] = segment.clone();\n\t\t\tsegment._path = this;\n\t\t\tsegment._index = index + i;\n\t\t\tif (segment._selection)\n\t\t\t\tthis._updateSelection(segment, 0, segment._selection);\n\t\t}\n\t\tif (append) {\n\t\t\tBase.push(segments, segs);\n\t\t} else {\n\t\t\tsegments.splice.apply(segments, [index, 0].concat(segs));\n\t\t\tfor (var i = index + amount, l = segments.length; i < l; i++)\n\t\t\t\tsegments[i]._index = i;\n\t\t}\n\t\tif (curves) {\n\t\t\tvar total = this._countCurves(),\n\t\t\t\tstart = index > 0 && index + amount - 1 === total ? index - 1\n\t\t\t\t\t: index,\n\t\t\t\tinsert = start,\n\t\t\t\tend = Math.min(start + amount, total);\n\t\t\tif (segs._curves) {\n\t\t\t\tcurves.splice.apply(curves, [start, 0].concat(segs._curves));\n\t\t\t\tinsert += segs._curves.length;\n\t\t\t}\n\t\t\tfor (var i = insert; i < end; i++)\n\t\t\t\tcurves.splice(i, 0, new Curve(this, null, null));\n\t\t\tthis._adjustCurves(start, end);\n\t\t}\n\t\tthis._changed(41);\n\t\treturn segs;\n\t},\n\n\t_adjustCurves: function(start, end) {\n\t\tvar segments = this._segments,\n\t\t\tcurves = this._curves,\n\t\t\tcurve;\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tcurve = curves[i];\n\t\t\tcurve._path = this;\n\t\t\tcurve._segment1 = segments[i];\n\t\t\tcurve._segment2 = segments[i + 1] || segments[0];\n\t\t\tcurve._changed();\n\t\t}\n\t\tif (curve = curves[this._closed && !start ? segments.length - 1\n\t\t\t\t: start - 1]) {\n\t\t\tcurve._segment2 = segments[start] || segments[0];\n\t\t\tcurve._changed();\n\t\t}\n\t\tif (curve = curves[end]) {\n\t\t\tcurve._segment1 = segments[end];\n\t\t\tcurve._changed();\n\t\t}\n\t},\n\n\t_countCurves: function() {\n\t\tvar length = this._segments.length;\n\t\treturn !this._closed && length > 0 ? length - 1 : length;\n\t},\n\n\tadd: function(segment1 ) {\n\t\treturn arguments.length > 1 && typeof segment1 !== 'number'\n\t\t\t? this._add(Segment.readList(arguments))\n\t\t\t: this._add([ Segment.read(arguments) ])[0];\n\t},\n\n\tinsert: function(index, segment1 ) {\n\t\treturn arguments.length > 2 && typeof segment1 !== 'number'\n\t\t\t? this._add(Segment.readList(arguments, 1), index)\n\t\t\t: this._add([ Segment.read(arguments, 1) ], index)[0];\n\t},\n\n\taddSegment: function() {\n\t\treturn this._add([ Segment.read(arguments) ])[0];\n\t},\n\n\tinsertSegment: function(index ) {\n\t\treturn this._add([ Segment.read(arguments, 1) ], index)[0];\n\t},\n\n\taddSegments: function(segments) {\n\t\treturn this._add(Segment.readList(segments));\n\t},\n\n\tinsertSegments: function(index, segments) {\n\t\treturn this._add(Segment.readList(segments), index);\n\t},\n\n\tremoveSegment: function(index) {\n\t\treturn this.removeSegments(index, index + 1)[0] || null;\n\t},\n\n\tremoveSegments: function(start, end, _includeCurves) {\n\t\tstart = start || 0;\n\t\tend = Base.pick(end, this._segments.length);\n\t\tvar segments = this._segments,\n\t\t\tcurves = this._curves,\n\t\t\tcount = segments.length,\n\t\t\tremoved = segments.splice(start, end - start),\n\t\t\tamount = removed.length;\n\t\tif (!amount)\n\t\t\treturn removed;\n\t\tfor (var i = 0; i < amount; i++) {\n\t\t\tvar segment = removed[i];\n\t\t\tif (segment._selection)\n\t\t\t\tthis._updateSelection(segment, segment._selection, 0);\n\t\t\tsegment._index = segment._path = null;\n\t\t}\n\t\tfor (var i = start, l = segments.length; i < l; i++)\n\t\t\tsegments[i]._index = i;\n\t\tif (curves) {\n\t\t\tvar index = start > 0 && end === count + (this._closed ? 1 : 0)\n\t\t\t\t\t? start - 1\n\t\t\t\t\t: start,\n\t\t\t\tcurves = curves.splice(index, amount);\n\t\t\tfor (var i = curves.length - 1; i >= 0; i--)\n\t\t\t\tcurves[i]._path = null;\n\t\t\tif (_includeCurves)\n\t\t\t\tremoved._curves = curves.slice(1);\n\t\t\tthis._adjustCurves(index, index);\n\t\t}\n\t\tthis._changed(41);\n\t\treturn removed;\n\t},\n\n\tclear: '#removeSegments',\n\n\thasHandles: function() {\n\t\tvar segments = this._segments;\n\t\tfor (var i = 0, l = segments.length; i < l; i++) {\n\t\t\tif (segments[i].hasHandles())\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\n\tclearHandles: function() {\n\t\tvar segments = this._segments;\n\t\tfor (var i = 0, l = segments.length; i < l; i++)\n\t\t\tsegments[i].clearHandles();\n\t},\n\n\tgetLength: function() {\n\t\tif (this._length == null) {\n\t\t\tvar curves = this.getCurves(),\n\t\t\t\tlength = 0;\n\t\t\tfor (var i = 0, l = curves.length; i < l; i++)\n\t\t\t\tlength += curves[i].getLength();\n\t\t\tthis._length = length;\n\t\t}\n\t\treturn this._length;\n\t},\n\n\tgetArea: function() {\n\t\tvar area = this._area;\n\t\tif (area == null) {\n\t\t\tvar segments = this._segments,\n\t\t\t\tclosed = this._closed;\n\t\t\tarea = 0;\n\t\t\tfor (var i = 0, l = segments.length; i < l; i++) {\n\t\t\t\tvar last = i + 1 === l;\n\t\t\t\tarea += Curve.getArea(Curve.getValues(\n\t\t\t\t\t\tsegments[i], segments[last ? 0 : i + 1],\n\t\t\t\t\t\tnull, last && !closed));\n\t\t\t}\n\t\t\tthis._area = area;\n\t\t}\n\t\treturn area;\n\t},\n\n\tisFullySelected: function() {\n\t\tvar length = this._segments.length;\n\t\treturn this.isSelected() && length > 0 && this._segmentSelection\n\t\t\t\t=== length * 7;\n\t},\n\n\tsetFullySelected: function(selected) {\n\t\tif (selected)\n\t\t\tthis._selectSegments(true);\n\t\tthis.setSelected(selected);\n\t},\n\n\tsetSelection: function setSelection(selection) {\n\t\tif (!(selection & 1))\n\t\t\tthis._selectSegments(false);\n\t\tsetSelection.base.call(this, selection);\n\t},\n\n\t_selectSegments: function(selected) {\n\t\tvar segments = this._segments,\n\t\t\tlength = segments.length,\n\t\t\tselection = selected ? 7 : 0;\n\t\tthis._segmentSelection = selection * length;\n\t\tfor (var i = 0; i < length; i++)\n\t\t\tsegments[i]._selection = selection;\n\t},\n\n\t_updateSelection: function(segment, oldSelection, newSelection) {\n\t\tsegment._selection = newSelection;\n\t\tvar selection = this._segmentSelection += newSelection - oldSelection;\n\t\tif (selection > 0)\n\t\t\tthis.setSelected(true);\n\t},\n\n\tdivideAt: function(location) {\n\t\tvar loc = this.getLocationAt(location),\n\t\t\tcurve;\n\t\treturn loc && (curve = loc.getCurve().divideAt(loc.getCurveOffset()))\n\t\t\t\t? curve._segment1\n\t\t\t\t: null;\n\t},\n\n\tsplitAt: function(location) {\n\t\tvar loc = this.getLocationAt(location),\n\t\t\tindex = loc && loc.index,\n\t\t\ttime = loc && loc.time,\n\t\t\ttMin = 1e-8,\n\t\t\ttMax = 1 - tMin;\n\t\tif (time > tMax) {\n\t\t\tindex++;\n\t\t\ttime = 0;\n\t\t}\n\t\tvar curves = this.getCurves();\n\t\tif (index >= 0 && index < curves.length) {\n\t\t\tif (time >= tMin) {\n\t\t\t\tcurves[index++].divideAtTime(time);\n\t\t\t}\n\t\t\tvar segs = this.removeSegments(index, this._segments.length, true),\n\t\t\t\tpath;\n\t\t\tif (this._closed) {\n\t\t\t\tthis.setClosed(false);\n\t\t\t\tpath = this;\n\t\t\t} else {\n\t\t\t\tpath = new Path(Item.NO_INSERT);\n\t\t\t\tpath.insertAbove(this);\n\t\t\t\tpath.copyAttributes(this);\n\t\t\t}\n\t\t\tpath._add(segs, 0);\n\t\t\tthis.addSegment(segs[0]);\n\t\t\treturn path;\n\t\t}\n\t\treturn null;\n\t},\n\n\tsplit: function(index, time) {\n\t\tvar curve,\n\t\t\tlocation = time === undefined ? index\n\t\t\t\t: (curve = this.getCurves()[index])\n\t\t\t\t\t&& curve.getLocationAtTime(time);\n\t\treturn location != null ? this.splitAt(location) : null;\n\t},\n\n\tjoin: function(path, tolerance) {\n\t\tvar epsilon = tolerance || 0;\n\t\tif (path && path !== this) {\n\t\t\tvar segments = path._segments,\n\t\t\t\tlast1 = this.getLastSegment(),\n\t\t\t\tlast2 = path.getLastSegment();\n\t\t\tif (!last2)\n\t\t\t\treturn this;\n\t\t\tif (last1 && last1._point.isClose(last2._point, epsilon))\n\t\t\t\tpath.reverse();\n\t\t\tvar first2 = path.getFirstSegment();\n\t\t\tif (last1 && last1._point.isClose(first2._point, epsilon)) {\n\t\t\t\tlast1.setHandleOut(first2._handleOut);\n\t\t\t\tthis._add(segments.slice(1));\n\t\t\t} else {\n\t\t\t\tvar first1 = this.getFirstSegment();\n\t\t\t\tif (first1 && first1._point.isClose(first2._point, epsilon))\n\t\t\t\t\tpath.reverse();\n\t\t\t\tlast2 = path.getLastSegment();\n\t\t\t\tif (first1 && first1._point.isClose(last2._point, epsilon)) {\n\t\t\t\t\tfirst1.setHandleIn(last2._handleIn);\n\t\t\t\t\tthis._add(segments.slice(0, segments.length - 1), 0);\n\t\t\t\t} else {\n\t\t\t\t\tthis._add(segments.slice());\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (path._closed)\n\t\t\t\tthis._add([segments[0]]);\n\t\t\tpath.remove();\n\t\t}\n\t\tvar first = this.getFirstSegment(),\n\t\t\tlast = this.getLastSegment();\n\t\tif (first !== last && first._point.isClose(last._point, epsilon)) {\n\t\t\tfirst.setHandleIn(last._handleIn);\n\t\t\tlast.remove();\n\t\t\tthis.setClosed(true);\n\t\t}\n\t\treturn this;\n\t},\n\n\treduce: function(options) {\n\t\tvar curves = this.getCurves(),\n\t\t\tsimplify = options && options.simplify,\n\t\t\ttolerance = simplify ? 1e-7 : 0;\n\t\tfor (var i = curves.length - 1; i >= 0; i--) {\n\t\t\tvar curve = curves[i];\n\t\t\tif (!curve.hasHandles() && (!curve.hasLength(tolerance)\n\t\t\t\t\t|| simplify && curve.isCollinear(curve.getNext())))\n\t\t\t\tcurve.remove();\n\t\t}\n\t\treturn this;\n\t},\n\n\treverse: function() {\n\t\tthis._segments.reverse();\n\t\tfor (var i = 0, l = this._segments.length; i < l; i++) {\n\t\t\tvar segment = this._segments[i];\n\t\t\tvar handleIn = segment._handleIn;\n\t\t\tsegment._handleIn = segment._handleOut;\n\t\t\tsegment._handleOut = handleIn;\n\t\t\tsegment._index = i;\n\t\t}\n\t\tthis._curves = null;\n\t\tthis._changed(9);\n\t},\n\n\tflatten: function(flatness) {\n\t\tvar flattener = new PathFlattener(this, flatness || 0.25, 256, true),\n\t\t\tparts = flattener.parts,\n\t\t\tlength = parts.length,\n\t\t\tsegments = [];\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tsegments.push(new Segment(parts[i].curve.slice(0, 2)));\n\t\t}\n\t\tif (!this._closed && length > 0) {\n\t\t\tsegments.push(new Segment(parts[length - 1].curve.slice(6)));\n\t\t}\n\t\tthis.setSegments(segments);\n\t},\n\n\tsimplify: function(tolerance) {\n\t\tvar segments = new PathFitter(this).fit(tolerance || 2.5);\n\t\tif (segments)\n\t\t\tthis.setSegments(segments);\n\t\treturn !!segments;\n\t},\n\n\tsmooth: function(options) {\n\t\tvar that = this,\n\t\t\topts = options || {},\n\t\t\ttype = opts.type || 'asymmetric',\n\t\t\tsegments = this._segments,\n\t\t\tlength = segments.length,\n\t\t\tclosed = this._closed;\n\n\t\tfunction getIndex(value, _default) {\n\t\t\tvar index = value && value.index;\n\t\t\tif (index != null) {\n\t\t\t\tvar path = value.path;\n\t\t\t\tif (path && path !== that)\n\t\t\t\t\tthrow new Error(value._class + ' ' + index + ' of ' + path\n\t\t\t\t\t\t\t+ ' is not part of ' + that);\n\t\t\t\tif (_default && value instanceof Curve)\n\t\t\t\t\tindex++;\n\t\t\t} else {\n\t\t\t\tindex = typeof value === 'number' ? value : _default;\n\t\t\t}\n\t\t\treturn Math.min(index < 0 && closed\n\t\t\t\t\t? index % length\n\t\t\t\t\t: index < 0 ? index + length : index, length - 1);\n\t\t}\n\n\t\tvar loop = closed && opts.from === undefined && opts.to === undefined,\n\t\t\tfrom = getIndex(opts.from, 0),\n\t\t\tto = getIndex(opts.to, length - 1);\n\n\t\tif (from > to) {\n\t\t\tif (closed) {\n\t\t\t\tfrom -= length;\n\t\t\t} else {\n\t\t\t\tvar tmp = from;\n\t\t\t\tfrom = to;\n\t\t\t\tto = tmp;\n\t\t\t}\n\t\t}\n\t\tif (/^(?:asymmetric|continuous)$/.test(type)) {\n\t\t\tvar asymmetric = type === 'asymmetric',\n\t\t\t\tmin = Math.min,\n\t\t\t\tamount = to - from + 1,\n\t\t\t\tn = amount - 1,\n\t\t\t\tpadding = loop ? min(amount, 4) : 1,\n\t\t\t\tpaddingLeft = padding,\n\t\t\t\tpaddingRight = padding,\n\t\t\t\tknots = [];\n\t\t\tif (!closed) {\n\t\t\t\tpaddingLeft = min(1, from);\n\t\t\t\tpaddingRight = min(1, length - to - 1);\n\t\t\t}\n\t\t\tn += paddingLeft + paddingRight;\n\t\t\tif (n <= 1)\n\t\t\t\treturn;\n\t\t\tfor (var i = 0, j = from - paddingLeft; i <= n; i++, j++) {\n\t\t\t\tknots[i] = segments[(j < 0 ? j + length : j) % length]._point;\n\t\t\t}\n\n\t\t\tvar x = knots[0]._x + 2 * knots[1]._x,\n\t\t\t\ty = knots[0]._y + 2 * knots[1]._y,\n\t\t\t\tf = 2,\n\t\t\t\tn_1 = n - 1,\n\t\t\t\trx = [x],\n\t\t\t\try = [y],\n\t\t\t\trf = [f],\n\t\t\t\tpx = [],\n\t\t\t\tpy = [];\n\t\t\tfor (var i = 1; i < n; i++) {\n\t\t\t\tvar internal = i < n_1,\n\t\t\t\t\ta = internal ? 1 : asymmetric ? 1 : 2,\n\t\t\t\t\tb = internal ? 4 : asymmetric ? 2 : 7,\n\t\t\t\t\tu = internal ? 4 : asymmetric ? 3 : 8,\n\t\t\t\t\tv = internal ? 2 : asymmetric ? 0 : 1,\n\t\t\t\t\tm = a / f;\n\t\t\t\tf = rf[i] = b - m;\n\t\t\t\tx = rx[i] = u * knots[i]._x + v * knots[i + 1]._x - m * x;\n\t\t\t\ty = ry[i] = u * knots[i]._y + v * knots[i + 1]._y - m * y;\n\t\t\t}\n\n\t\t\tpx[n_1] = rx[n_1] / rf[n_1];\n\t\t\tpy[n_1] = ry[n_1] / rf[n_1];\n\t\t\tfor (var i = n - 2; i >= 0; i--) {\n\t\t\t\tpx[i] = (rx[i] - px[i + 1]) / rf[i];\n\t\t\t\tpy[i] = (ry[i] - py[i + 1]) / rf[i];\n\t\t\t}\n\t\t\tpx[n] = (3 * knots[n]._x - px[n_1]) / 2;\n\t\t\tpy[n] = (3 * knots[n]._y - py[n_1]) / 2;\n\n\t\t\tfor (var i = paddingLeft, max = n - paddingRight, j = from;\n\t\t\t\t\ti <= max; i++, j++) {\n\t\t\t\tvar segment = segments[j < 0 ? j + length : j],\n\t\t\t\t\tpt = segment._point,\n\t\t\t\t\thx = px[i] - pt._x,\n\t\t\t\t\thy = py[i] - pt._y;\n\t\t\t\tif (loop || i < max)\n\t\t\t\t\tsegment.setHandleOut(hx, hy);\n\t\t\t\tif (loop || i > paddingLeft)\n\t\t\t\t\tsegment.setHandleIn(-hx, -hy);\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var i = from; i <= to; i++) {\n\t\t\t\tsegments[i < 0 ? i + length : i].smooth(opts,\n\t\t\t\t\t\t!loop && i === from, !loop && i === to);\n\t\t\t}\n\t\t}\n\t},\n\n\ttoShape: function(insert) {\n\t\tif (!this._closed)\n\t\t\treturn null;\n\n\t\tvar segments = this._segments,\n\t\t\ttype,\n\t\t\tsize,\n\t\t\tradius,\n\t\t\ttopCenter;\n\n\t\tfunction isCollinear(i, j) {\n\t\t\tvar seg1 = segments[i],\n\t\t\t\tseg2 = seg1.getNext(),\n\t\t\t\tseg3 = segments[j],\n\t\t\t\tseg4 = seg3.getNext();\n\t\t\treturn seg1._handleOut.isZero() && seg2._handleIn.isZero()\n\t\t\t\t\t&& seg3._handleOut.isZero() && seg4._handleIn.isZero()\n\t\t\t\t\t&& seg2._point.subtract(seg1._point).isCollinear(\n\t\t\t\t\t\tseg4._point.subtract(seg3._point));\n\t\t}\n\n\t\tfunction isOrthogonal(i) {\n\t\t\tvar seg2 = segments[i],\n\t\t\t\tseg1 = seg2.getPrevious(),\n\t\t\t\tseg3 = seg2.getNext();\n\t\t\treturn seg1._handleOut.isZero() && seg2._handleIn.isZero()\n\t\t\t\t\t&& seg2._handleOut.isZero() && seg3._handleIn.isZero()\n\t\t\t\t\t&& seg2._point.subtract(seg1._point).isOrthogonal(\n\t\t\t\t\t\tseg3._point.subtract(seg2._point));\n\t\t}\n\n\t\tfunction isArc(i) {\n\t\t\tvar seg1 = segments[i],\n\t\t\t\tseg2 = seg1.getNext(),\n\t\t\t\thandle1 = seg1._handleOut,\n\t\t\t\thandle2 = seg2._handleIn,\n\t\t\t\tkappa = 0.5522847498307936;\n\t\t\tif (handle1.isOrthogonal(handle2)) {\n\t\t\t\tvar pt1 = seg1._point,\n\t\t\t\t\tpt2 = seg2._point,\n\t\t\t\t\tcorner = new Line(pt1, handle1, true).intersect(\n\t\t\t\t\t\t\tnew Line(pt2, handle2, true), true);\n\t\t\t\treturn corner && Numerical.isZero(handle1.getLength() /\n\t\t\t\t\t\tcorner.subtract(pt1).getLength() - kappa)\n\t\t\t\t\t&& Numerical.isZero(handle2.getLength() /\n\t\t\t\t\t\tcorner.subtract(pt2).getLength() - kappa);\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction getDistance(i, j) {\n\t\t\treturn segments[i]._point.getDistance(segments[j]._point);\n\t\t}\n\n\t\tif (!this.hasHandles() && segments.length === 4\n\t\t\t\t&& isCollinear(0, 2) && isCollinear(1, 3) && isOrthogonal(1)) {\n\t\t\ttype = Shape.Rectangle;\n\t\t\tsize = new Size(getDistance(0, 3), getDistance(0, 1));\n\t\t\ttopCenter = segments[1]._point.add(segments[2]._point).divide(2);\n\t\t} else if (segments.length === 8 && isArc(0) && isArc(2) && isArc(4)\n\t\t\t\t&& isArc(6) && isCollinear(1, 5) && isCollinear(3, 7)) {\n\t\t\ttype = Shape.Rectangle;\n\t\t\tsize = new Size(getDistance(1, 6), getDistance(0, 3));\n\t\t\tradius = size.subtract(new Size(getDistance(0, 7),\n\t\t\t\t\tgetDistance(1, 2))).divide(2);\n\t\t\ttopCenter = segments[3]._point.add(segments[4]._point).divide(2);\n\t\t} else if (segments.length === 4\n\t\t\t\t&& isArc(0) && isArc(1) && isArc(2) && isArc(3)) {\n\t\t\tif (Numerical.isZero(getDistance(0, 2) - getDistance(1, 3))) {\n\t\t\t\ttype = Shape.Circle;\n\t\t\t\tradius = getDistance(0, 2) / 2;\n\t\t\t} else {\n\t\t\t\ttype = Shape.Ellipse;\n\t\t\t\tradius = new Size(getDistance(2, 0) / 2, getDistance(3, 1) / 2);\n\t\t\t}\n\t\t\ttopCenter = segments[1]._point;\n\t\t}\n\n\t\tif (type) {\n\t\t\tvar center = this.getPosition(true),\n\t\t\t\tshape = new type({\n\t\t\t\t\tcenter: center,\n\t\t\t\t\tsize: size,\n\t\t\t\t\tradius: radius,\n\t\t\t\t\tinsert: false\n\t\t\t\t});\n\t\t\tshape.copyAttributes(this, true);\n\t\t\tshape._matrix.prepend(this._matrix);\n\t\t\tshape.rotate(topCenter.subtract(center).getAngle() + 90);\n\t\t\tif (insert === undefined || insert)\n\t\t\t\tshape.insertAbove(this);\n\t\t\treturn shape;\n\t\t}\n\t\treturn null;\n\t},\n\n\ttoPath: '#clone',\n\n\tcompare: function compare(path) {\n\t\tif (!path || path instanceof CompoundPath)\n\t\t\treturn compare.base.call(this, path);\n\t\tvar curves1 = this.getCurves(),\n\t\t\tcurves2 = path.getCurves(),\n\t\t\tlength1 = curves1.length,\n\t\t\tlength2 = curves2.length;\n\t\tif (!length1 || !length2) {\n\t\t\treturn length1 == length2;\n\t\t}\n\t\tvar v1 = curves1[0].getValues(),\n\t\t\tvalues2 = [],\n\t\t\tpos1 = 0, pos2,\n\t\t\tend1 = 0, end2;\n\t\tfor (var i = 0; i < length2; i++) {\n\t\t\tvar v2 = curves2[i].getValues();\n\t\t\tvalues2.push(v2);\n\t\t\tvar overlaps = Curve.getOverlaps(v1, v2);\n\t\t\tif (overlaps) {\n\t\t\t\tpos2 = !i && overlaps[0][0] > 0 ? length2 - 1 : i;\n\t\t\t\tend2 = overlaps[0][1];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar abs = Math.abs,\n\t\t\tepsilon = 1e-8,\n\t\t\tv2 = values2[pos2],\n\t\t\tstart2;\n\t\twhile (v1 && v2) {\n\t\t\tvar overlaps = Curve.getOverlaps(v1, v2);\n\t\t\tif (overlaps) {\n\t\t\t\tvar t1 = overlaps[0][0];\n\t\t\t\tif (abs(t1 - end1) < epsilon) {\n\t\t\t\t\tend1 = overlaps[1][0];\n\t\t\t\t\tif (end1 === 1) {\n\t\t\t\t\t\tv1 = ++pos1 < length1 ? curves1[pos1].getValues() : null;\n\t\t\t\t\t\tend1 = 0;\n\t\t\t\t\t}\n\t\t\t\t\tvar t2 = overlaps[0][1];\n\t\t\t\t\tif (abs(t2 - end2) < epsilon) {\n\t\t\t\t\t\tif (!start2)\n\t\t\t\t\t\t\tstart2 = [pos2, t2];\n\t\t\t\t\t\tend2 = overlaps[1][1];\n\t\t\t\t\t\tif (end2 === 1) {\n\t\t\t\t\t\t\tif (++pos2 >= length2)\n\t\t\t\t\t\t\t\tpos2 = 0;\n\t\t\t\t\t\t\tv2 = values2[pos2] || curves2[pos2].getValues();\n\t\t\t\t\t\t\tend2 = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!v1) {\n\t\t\t\t\t\t\treturn start2[0] === pos2 && start2[1] === end2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\treturn false;\n\t},\n\n\t_hitTestSelf: function(point, options, viewMatrix, strokeMatrix) {\n\t\tvar that = this,\n\t\t\tstyle = this.getStyle(),\n\t\t\tsegments = this._segments,\n\t\t\tnumSegments = segments.length,\n\t\t\tclosed = this._closed,\n\t\t\ttolerancePadding = options._tolerancePadding,\n\t\t\tstrokePadding = tolerancePadding,\n\t\t\tjoin, cap, miterLimit,\n\t\t\tarea, loc, res,\n\t\t\thitStroke = options.stroke && style.hasStroke(),\n\t\t\thitFill = options.hitUnfilledPaths\n\t\t\t\t? options.fill : options.fill && style.hasFill(),\n\t\t\thitCurves = options.curves,\n\t\t\tstrokeRadius = hitStroke\n\t\t\t\t\t? style.getStrokeWidth() / 2\n\t\t\t\t\t: hitFill && options.tolerance > 0 || hitCurves\n\t\t\t\t\t\t? 0 : null;\n\t\tif (strokeRadius !== null) {\n\t\t\tif (strokeRadius > 0) {\n\t\t\t\tjoin = style.getStrokeJoin();\n\t\t\t\tcap = style.getStrokeCap();\n\t\t\t\tmiterLimit = style.getMiterLimit();\n\t\t\t\tstrokePadding = strokePadding.add(\n\t\t\t\t\tPath._getStrokePadding(strokeRadius, strokeMatrix));\n\t\t\t} else {\n\t\t\t\tjoin = cap = 'round';\n\t\t\t}\n\t\t}\n\n\t\tfunction isCloseEnough(pt, padding) {\n\t\t\treturn point.subtract(pt).divide(padding).length <= 1;\n\t\t}\n\n\t\tfunction checkSegmentPoint(seg, pt, name) {\n\t\t\tif (!options.selected || pt.isSelected()) {\n\t\t\t\tvar anchor = seg._point;\n\t\t\t\tif (pt !== anchor)\n\t\t\t\t\tpt = pt.add(anchor);\n\t\t\t\tif (isCloseEnough(pt, strokePadding)) {\n\t\t\t\t\treturn new HitResult(name, that, {\n\t\t\t\t\t\tsegment: seg,\n\t\t\t\t\t\tpoint: pt\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction checkSegmentPoints(seg, ends) {\n\t\t\treturn (ends || options.segments)\n\t\t\t\t&& checkSegmentPoint(seg, seg._point, 'segment')\n\t\t\t\t|| (!ends && options.handles) && (\n\t\t\t\t\tcheckSegmentPoint(seg, seg._handleIn, 'handle-in') ||\n\t\t\t\t\tcheckSegmentPoint(seg, seg._handleOut, 'handle-out'));\n\t\t}\n\n\t\tfunction addToArea(point) {\n\t\t\tarea.add(point);\n\t\t}\n\n\t\tfunction checkSegmentStroke(segment) {\n\t\t\tvar isJoin = closed || segment._index > 0\n\t\t\t\t\t&& segment._index < numSegments - 1;\n\t\t\tif ((isJoin ? join : cap) === 'round') {\n\t\t\t\treturn isCloseEnough(segment._point, strokePadding);\n\t\t\t} else {\n\t\t\t\tarea = new Path({ internal: true, closed: true });\n\t\t\t\tif (isJoin) {\n\t\t\t\t\tif (!segment.isSmooth()) {\n\t\t\t\t\t\tPath._addBevelJoin(segment, join, strokeRadius,\n\t\t\t\t\t\t\t miterLimit, null, strokeMatrix, addToArea, true);\n\t\t\t\t\t}\n\t\t\t\t} else if (cap === 'square') {\n\t\t\t\t\tPath._addSquareCap(segment, cap, strokeRadius, null,\n\t\t\t\t\t\t\tstrokeMatrix, addToArea, true);\n\t\t\t\t}\n\t\t\t\tif (!area.isEmpty()) {\n\t\t\t\t\tvar loc;\n\t\t\t\t\treturn area.contains(point)\n\t\t\t\t\t\t|| (loc = area.getNearestLocation(point))\n\t\t\t\t\t\t\t&& isCloseEnough(loc.getPoint(), tolerancePadding);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (options.ends && !options.segments && !closed) {\n\t\t\tif (res = checkSegmentPoints(segments[0], true)\n\t\t\t\t\t|| checkSegmentPoints(segments[numSegments - 1], true))\n\t\t\t\treturn res;\n\t\t} else if (options.segments || options.handles) {\n\t\t\tfor (var i = 0; i < numSegments; i++)\n\t\t\t\tif (res = checkSegmentPoints(segments[i]))\n\t\t\t\t\treturn res;\n\t\t}\n\t\tif (strokeRadius !== null) {\n\t\t\tloc = this.getNearestLocation(point);\n\t\t\tif (loc) {\n\t\t\t\tvar time = loc.getTime();\n\t\t\t\tif (time === 0 || time === 1 && numSegments > 1) {\n\t\t\t\t\tif (!checkSegmentStroke(loc.getSegment()))\n\t\t\t\t\t\tloc = null;\n\t\t\t\t} else if (!isCloseEnough(loc.getPoint(), strokePadding)) {\n\t\t\t\t\tloc = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!loc && join === 'miter' && numSegments > 1) {\n\t\t\t\tfor (var i = 0; i < numSegments; i++) {\n\t\t\t\t\tvar segment = segments[i];\n\t\t\t\t\tif (point.getDistance(segment._point)\n\t\t\t\t\t\t\t<= miterLimit * strokeRadius\n\t\t\t\t\t\t\t&& checkSegmentStroke(segment)) {\n\t\t\t\t\t\tloc = segment.getLocation();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn !loc && hitFill && this._contains(point)\n\t\t\t\t|| loc && !hitStroke && !hitCurves\n\t\t\t\t\t? new HitResult('fill', this)\n\t\t\t\t\t: loc\n\t\t\t\t\t\t? new HitResult(hitStroke ? 'stroke' : 'curve', this, {\n\t\t\t\t\t\t\tlocation: loc,\n\t\t\t\t\t\t\tpoint: loc.getPoint()\n\t\t\t\t\t\t})\n\t\t\t\t\t\t: null;\n\t}\n\n}, Base.each(Curve._evaluateMethods,\n\tfunction(name) {\n\t\tthis[name + 'At'] = function(offset) {\n\t\t\tvar loc = this.getLocationAt(offset);\n\t\t\treturn loc && loc[name]();\n\t\t};\n\t},\n{\n\tbeans: false,\n\n\tgetLocationOf: function() {\n\t\tvar point = Point.read(arguments),\n\t\t\tcurves = this.getCurves();\n\t\tfor (var i = 0, l = curves.length; i < l; i++) {\n\t\t\tvar loc = curves[i].getLocationOf(point);\n\t\t\tif (loc)\n\t\t\t\treturn loc;\n\t\t}\n\t\treturn null;\n\t},\n\n\tgetOffsetOf: function() {\n\t\tvar loc = this.getLocationOf.apply(this, arguments);\n\t\treturn loc ? loc.getOffset() : null;\n\t},\n\n\tgetLocationAt: function(offset) {\n\t\tif (typeof offset === 'number') {\n\t\t\tvar curves = this.getCurves(),\n\t\t\t\tlength = 0;\n\t\t\tfor (var i = 0, l = curves.length; i < l; i++) {\n\t\t\t\tvar start = length,\n\t\t\t\t\tcurve = curves[i];\n\t\t\t\tlength += curve.getLength();\n\t\t\t\tif (length > offset) {\n\t\t\t\t\treturn curve.getLocationAt(offset - start);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (curves.length > 0 && offset <= this.getLength()) {\n\t\t\t\treturn new CurveLocation(curves[curves.length - 1], 1);\n\t\t\t}\n\t\t} else if (offset && offset.getPath && offset.getPath() === this) {\n\t\t\treturn offset;\n\t\t}\n\t\treturn null;\n\t},\n\n\tgetOffsetsWithTangent: function() {\n\t\tvar tangent = Point.read(arguments);\n\t\tif (tangent.isZero()) {\n\t\t\treturn [];\n\t\t}\n\n\t\tvar offsets = [];\n\t\tvar curveStart = 0;\n\t\tvar curves = this.getCurves();\n\t\tfor (var i = 0, l = curves.length; i < l; i++) {\n\t\t\tvar curve = curves[i];\n\t\t\tvar curveTimes = curve.getTimesWithTangent(tangent);\n\t\t\tfor (var j = 0, m = curveTimes.length; j < m; j++) {\n\t\t\t\tvar offset = curveStart + curve.getOffsetAtTime(curveTimes[j]);\n\t\t\t\tif (offsets.indexOf(offset) < 0) {\n\t\t\t\t\toffsets.push(offset);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcurveStart += curve.length;\n\t\t}\n\t\treturn offsets;\n\t}\n}),\nnew function() {\n\n\tfunction drawHandles(ctx, segments, matrix, size, isFullySelected) {\n\t\tif (size === 0) {\n\t\t\treturn;\n\t\t}\n\t\tvar half = size / 2,\n\t\t\tcoords = new Array(6),\n\t\t\tpX, pY;\n\n\t\tfunction drawHandle(index) {\n\t\t\tvar hX = coords[index],\n\t\t\t\thY = coords[index + 1];\n\t\t\tif (pX != hX || pY != hY) {\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(pX, pY);\n\t\t\t\tctx.lineTo(hX, hY);\n\t\t\t\tctx.moveTo(hX - half, hY);\n\t\t\t\tctx.lineTo(hX, hY + half);\n\t\t\t\tctx.lineTo(hX + half, hY);\n\t\t\t\tctx.lineTo(hX, hY - half);\n\t\t\t\tctx.closePath();\n\t\t\t\tctx.stroke();\n\t\t\t}\n\t\t}\n\n\t\tfor (var i = 0, l = segments.length; i < l; i++) {\n\t\t\tvar segment = segments[i],\n\t\t\t\tselection = segment._selection;\n\t\t\tsegment._transformCoordinates(matrix, coords);\n\t\t\tpX = coords[0];\n\t\t\tpY = coords[1];\n\t\t\tif (selection & 2 && !isFullySelected)\n\t\t\t\tdrawHandle(2);\n\t\t\tif (selection & 4 && !isFullySelected)\n\t\t\t\tdrawHandle(4);\n\t\t\tctx.beginPath();\n\t\t\tctx.arc(pX, pY, half, 0, Math.PI * 2, true);\n\t\t\tctx.stroke();\n\t\t\tvar fillStyle = ctx.fillStyle;\n\t\t\tif (!(selection & 1)) {\n\t\t\t\tctx.fillStyle = 'rgba(255, 255, 255, 0.5)';\n\t\t\t}\n\t\t\tctx.fill();\n\t\t\tctx.fillStyle = fillStyle;\n\t\t}\n\t}\n\n\tfunction drawSegments(ctx, path, matrix) {\n\t\tvar segments = path._segments,\n\t\t\tlength = segments.length,\n\t\t\tcoords = new Array(6),\n\t\t\tfirst = true,\n\t\t\tcurX, curY,\n\t\t\tprevX, prevY,\n\t\t\tinX, inY,\n\t\t\toutX, outY;\n\n\t\tfunction drawSegment(segment) {\n\t\t\tif (matrix) {\n\t\t\t\tsegment._transformCoordinates(matrix, coords);\n\t\t\t\tcurX = coords[0];\n\t\t\t\tcurY = coords[1];\n\t\t\t} else {\n\t\t\t\tvar point = segment._point;\n\t\t\t\tcurX = point._x;\n\t\t\t\tcurY = point._y;\n\t\t\t}\n\t\t\tif (first) {\n\t\t\t\tctx.moveTo(curX, curY);\n\t\t\t\tfirst = false;\n\t\t\t} else {\n\t\t\t\tif (matrix) {\n\t\t\t\t\tinX = coords[2];\n\t\t\t\t\tinY = coords[3];\n\t\t\t\t} else {\n\t\t\t\t\tvar handle = segment._handleIn;\n\t\t\t\t\tinX = curX + handle._x;\n\t\t\t\t\tinY = curY + handle._y;\n\t\t\t\t}\n\t\t\t\tif (inX === curX && inY === curY\n\t\t\t\t\t\t&& outX === prevX && outY === prevY) {\n\t\t\t\t\tctx.lineTo(curX, curY);\n\t\t\t\t} else {\n\t\t\t\t\tctx.bezierCurveTo(outX, outY, inX, inY, curX, curY);\n\t\t\t\t}\n\t\t\t}\n\t\t\tprevX = curX;\n\t\t\tprevY = curY;\n\t\t\tif (matrix) {\n\t\t\t\toutX = coords[4];\n\t\t\t\toutY = coords[5];\n\t\t\t} else {\n\t\t\t\tvar handle = segment._handleOut;\n\t\t\t\toutX = prevX + handle._x;\n\t\t\t\toutY = prevY + handle._y;\n\t\t\t}\n\t\t}\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\tdrawSegment(segments[i]);\n\t\tif (path._closed && length > 0)\n\t\t\tdrawSegment(segments[0]);\n\t}\n\n\treturn {\n\t\t_draw: function(ctx, param, viewMatrix, strokeMatrix) {\n\t\t\tvar dontStart = param.dontStart,\n\t\t\t\tdontPaint = param.dontFinish || param.clip,\n\t\t\t\tstyle = this.getStyle(),\n\t\t\t\thasFill = style.hasFill(),\n\t\t\t\thasStroke = style.hasStroke(),\n\t\t\t\tdashArray = style.getDashArray(),\n\t\t\t\tdashLength = !paper.support.nativeDash && hasStroke\n\t\t\t\t\t\t&& dashArray && dashArray.length;\n\n\t\t\tif (!dontStart)\n\t\t\t\tctx.beginPath();\n\n\t\t\tif (hasFill || hasStroke && !dashLength || dontPaint) {\n\t\t\t\tdrawSegments(ctx, this, strokeMatrix);\n\t\t\t\tif (this._closed)\n\t\t\t\t\tctx.closePath();\n\t\t\t}\n\n\t\t\tfunction getOffset(i) {\n\t\t\t\treturn dashArray[((i % dashLength) + dashLength) % dashLength];\n\t\t\t}\n\n\t\t\tif (!dontPaint && (hasFill || hasStroke)) {\n\t\t\t\tthis._setStyles(ctx, param, viewMatrix);\n\t\t\t\tif (hasFill) {\n\t\t\t\t\tctx.fill(style.getFillRule());\n\t\t\t\t\tctx.shadowColor = 'rgba(0,0,0,0)';\n\t\t\t\t}\n\t\t\t\tif (hasStroke) {\n\t\t\t\t\tif (dashLength) {\n\t\t\t\t\t\tif (!dontStart)\n\t\t\t\t\t\t\tctx.beginPath();\n\t\t\t\t\t\tvar flattener = new PathFlattener(this, 0.25, 32, false,\n\t\t\t\t\t\t\t\tstrokeMatrix),\n\t\t\t\t\t\t\tlength = flattener.length,\n\t\t\t\t\t\t\tfrom = -style.getDashOffset(), to,\n\t\t\t\t\t\t\ti = 0;\n\t\t\t\t\t\tfrom = from % length;\n\t\t\t\t\t\twhile (from > 0) {\n\t\t\t\t\t\t\tfrom -= getOffset(i--) + getOffset(i--);\n\t\t\t\t\t\t}\n\t\t\t\t\t\twhile (from < length) {\n\t\t\t\t\t\t\tto = from + getOffset(i++);\n\t\t\t\t\t\t\tif (from > 0 || to > 0)\n\t\t\t\t\t\t\t\tflattener.drawPart(ctx,\n\t\t\t\t\t\t\t\t\t\tMath.max(from, 0), Math.max(to, 0));\n\t\t\t\t\t\t\tfrom = to + getOffset(i++);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tctx.stroke();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_drawSelected: function(ctx, matrix) {\n\t\t\tctx.beginPath();\n\t\t\tdrawSegments(ctx, this, matrix);\n\t\t\tctx.stroke();\n\t\t\tdrawHandles(ctx, this._segments, matrix, paper.settings.handleSize,\n\t\t\t\tthis.isFullySelected());\n\t\t}\n\t};\n},\nnew function() {\n\tfunction getCurrentSegment(that) {\n\t\tvar segments = that._segments;\n\t\tif (!segments.length)\n\t\t\tthrow new Error('Use a moveTo() command first');\n\t\treturn segments[segments.length - 1];\n\t}\n\n\treturn {\n\t\tmoveTo: function() {\n\t\t\tvar segments = this._segments;\n\t\t\tif (segments.length === 1)\n\t\t\t\tthis.removeSegment(0);\n\t\t\tif (!segments.length)\n\t\t\t\tthis._add([ new Segment(Point.read(arguments)) ]);\n\t\t},\n\n\t\tmoveBy: function() {\n\t\t\tthrow new Error('moveBy() is unsupported on Path items.');\n\t\t},\n\n\t\tlineTo: function() {\n\t\t\tthis._add([ new Segment(Point.read(arguments)) ]);\n\t\t},\n\n\t\tcubicCurveTo: function() {\n\t\t\tvar handle1 = Point.read(arguments),\n\t\t\t\thandle2 = Point.read(arguments),\n\t\t\t\tto = Point.read(arguments),\n\t\t\t\tcurrent = getCurrentSegment(this);\n\t\t\tcurrent.setHandleOut(handle1.subtract(current._point));\n\t\t\tthis._add([ new Segment(to, handle2.subtract(to)) ]);\n\t\t},\n\n\t\tquadraticCurveTo: function() {\n\t\t\tvar handle = Point.read(arguments),\n\t\t\t\tto = Point.read(arguments),\n\t\t\t\tcurrent = getCurrentSegment(this)._point;\n\t\t\tthis.cubicCurveTo(\n\t\t\t\thandle.add(current.subtract(handle).multiply(1 / 3)),\n\t\t\t\thandle.add(to.subtract(handle).multiply(1 / 3)),\n\t\t\t\tto\n\t\t\t);\n\t\t},\n\n\t\tcurveTo: function() {\n\t\t\tvar through = Point.read(arguments),\n\t\t\t\tto = Point.read(arguments),\n\t\t\t\tt = Base.pick(Base.read(arguments), 0.5),\n\t\t\t\tt1 = 1 - t,\n\t\t\t\tcurrent = getCurrentSegment(this)._point,\n\t\t\t\thandle = through.subtract(current.multiply(t1 * t1))\n\t\t\t\t\t.subtract(to.multiply(t * t)).divide(2 * t * t1);\n\t\t\tif (handle.isNaN())\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'Cannot put a curve through points with parameter = ' + t);\n\t\t\tthis.quadraticCurveTo(handle, to);\n\t\t},\n\n\t\tarcTo: function() {\n\t\t\tvar abs = Math.abs,\n\t\t\t\tsqrt = Math.sqrt,\n\t\t\t\tcurrent = getCurrentSegment(this),\n\t\t\t\tfrom = current._point,\n\t\t\t\tto = Point.read(arguments),\n\t\t\t\tthrough,\n\t\t\t\tpeek = Base.peek(arguments),\n\t\t\t\tclockwise = Base.pick(peek, true),\n\t\t\t\tcenter, extent, vector, matrix;\n\t\t\tif (typeof clockwise === 'boolean') {\n\t\t\t\tvar middle = from.add(to).divide(2),\n\t\t\t\tthrough = middle.add(middle.subtract(from).rotate(\n\t\t\t\t\t\tclockwise ? -90 : 90));\n\t\t\t} else if (Base.remain(arguments) <= 2) {\n\t\t\t\tthrough = to;\n\t\t\t\tto = Point.read(arguments);\n\t\t\t} else {\n\t\t\t\tvar radius = Size.read(arguments),\n\t\t\t\t\tisZero = Numerical.isZero;\n\t\t\t\tif (isZero(radius.width) || isZero(radius.height))\n\t\t\t\t\treturn this.lineTo(to);\n\t\t\t\tvar rotation = Base.read(arguments),\n\t\t\t\t\tclockwise = !!Base.read(arguments),\n\t\t\t\t\tlarge = !!Base.read(arguments),\n\t\t\t\t\tmiddle = from.add(to).divide(2),\n\t\t\t\t\tpt = from.subtract(middle).rotate(-rotation),\n\t\t\t\t\tx = pt.x,\n\t\t\t\t\ty = pt.y,\n\t\t\t\t\trx = abs(radius.width),\n\t\t\t\t\try = abs(radius.height),\n\t\t\t\t\trxSq = rx * rx,\n\t\t\t\t\trySq = ry * ry,\n\t\t\t\t\txSq = x * x,\n\t\t\t\t\tySq = y * y;\n\t\t\t\tvar factor = sqrt(xSq / rxSq + ySq / rySq);\n\t\t\t\tif (factor > 1) {\n\t\t\t\t\trx *= factor;\n\t\t\t\t\try *= factor;\n\t\t\t\t\trxSq = rx * rx;\n\t\t\t\t\trySq = ry * ry;\n\t\t\t\t}\n\t\t\t\tfactor = (rxSq * rySq - rxSq * ySq - rySq * xSq) /\n\t\t\t\t\t\t(rxSq * ySq + rySq * xSq);\n\t\t\t\tif (abs(factor) < 1e-12)\n\t\t\t\t\tfactor = 0;\n\t\t\t\tif (factor < 0)\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t'Cannot create an arc with the given arguments');\n\t\t\t\tcenter = new Point(rx * y / ry, -ry * x / rx)\n\t\t\t\t\t\t.multiply((large === clockwise ? -1 : 1) * sqrt(factor))\n\t\t\t\t\t\t.rotate(rotation).add(middle);\n\t\t\t\tmatrix = new Matrix().translate(center).rotate(rotation)\n\t\t\t\t\t\t.scale(rx, ry);\n\t\t\t\tvector = matrix._inverseTransform(from);\n\t\t\t\textent = vector.getDirectedAngle(matrix._inverseTransform(to));\n\t\t\t\tif (!clockwise && extent > 0)\n\t\t\t\t\textent -= 360;\n\t\t\t\telse if (clockwise && extent < 0)\n\t\t\t\t\textent += 360;\n\t\t\t}\n\t\t\tif (through) {\n\t\t\t\tvar l1 = new Line(from.add(through).divide(2),\n\t\t\t\t\t\t\tthrough.subtract(from).rotate(90), true),\n\t\t\t\t\tl2 = new Line(through.add(to).divide(2),\n\t\t\t\t\t\t\tto.subtract(through).rotate(90), true),\n\t\t\t\t\tline = new Line(from, to),\n\t\t\t\t\tthroughSide = line.getSide(through);\n\t\t\t\tcenter = l1.intersect(l2, true);\n\t\t\t\tif (!center) {\n\t\t\t\t\tif (!throughSide)\n\t\t\t\t\t\treturn this.lineTo(to);\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t'Cannot create an arc with the given arguments');\n\t\t\t\t}\n\t\t\t\tvector = from.subtract(center);\n\t\t\t\textent = vector.getDirectedAngle(to.subtract(center));\n\t\t\t\tvar centerSide = line.getSide(center, true);\n\t\t\t\tif (centerSide === 0) {\n\t\t\t\t\textent = throughSide * abs(extent);\n\t\t\t\t} else if (throughSide === centerSide) {\n\t\t\t\t\textent += extent < 0 ? 360 : -360;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar epsilon = 1e-7,\n\t\t\t\text = abs(extent),\n\t\t\t\tcount = ext >= 360 ? 4 : Math.ceil((ext - epsilon) / 90),\n\t\t\t\tinc = extent / count,\n\t\t\t\thalf = inc * Math.PI / 360,\n\t\t\t\tz = 4 / 3 * Math.sin(half) / (1 + Math.cos(half)),\n\t\t\t\tsegments = [];\n\t\t\tfor (var i = 0; i <= count; i++) {\n\t\t\t\tvar pt = to,\n\t\t\t\t\tout = null;\n\t\t\t\tif (i < count) {\n\t\t\t\t\tout = vector.rotate(90).multiply(z);\n\t\t\t\t\tif (matrix) {\n\t\t\t\t\t\tpt = matrix._transformPoint(vector);\n\t\t\t\t\t\tout = matrix._transformPoint(vector.add(out))\n\t\t\t\t\t\t\t\t.subtract(pt);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpt = center.add(vector);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!i) {\n\t\t\t\t\tcurrent.setHandleOut(out);\n\t\t\t\t} else {\n\t\t\t\t\tvar _in = vector.rotate(-90).multiply(z);\n\t\t\t\t\tif (matrix) {\n\t\t\t\t\t\t_in = matrix._transformPoint(vector.add(_in))\n\t\t\t\t\t\t\t\t.subtract(pt);\n\t\t\t\t\t}\n\t\t\t\t\tsegments.push(new Segment(pt, _in, out));\n\t\t\t\t}\n\t\t\t\tvector = vector.rotate(inc);\n\t\t\t}\n\t\t\tthis._add(segments);\n\t\t},\n\n\t\tlineBy: function() {\n\t\t\tvar to = Point.read(arguments),\n\t\t\t\tcurrent = getCurrentSegment(this)._point;\n\t\t\tthis.lineTo(current.add(to));\n\t\t},\n\n\t\tcurveBy: function() {\n\t\t\tvar through = Point.read(arguments),\n\t\t\t\tto = Point.read(arguments),\n\t\t\t\tparameter = Base.read(arguments),\n\t\t\t\tcurrent = getCurrentSegment(this)._point;\n\t\t\tthis.curveTo(current.add(through), current.add(to), parameter);\n\t\t},\n\n\t\tcubicCurveBy: function() {\n\t\t\tvar handle1 = Point.read(arguments),\n\t\t\t\thandle2 = Point.read(arguments),\n\t\t\t\tto = Point.read(arguments),\n\t\t\t\tcurrent = getCurrentSegment(this)._point;\n\t\t\tthis.cubicCurveTo(current.add(handle1), current.add(handle2),\n\t\t\t\t\tcurrent.add(to));\n\t\t},\n\n\t\tquadraticCurveBy: function() {\n\t\t\tvar handle = Point.read(arguments),\n\t\t\t\tto = Point.read(arguments),\n\t\t\t\tcurrent = getCurrentSegment(this)._point;\n\t\t\tthis.quadraticCurveTo(current.add(handle), current.add(to));\n\t\t},\n\n\t\tarcBy: function() {\n\t\t\tvar current = getCurrentSegment(this)._point,\n\t\t\t\tpoint = current.add(Point.read(arguments)),\n\t\t\t\tclockwise = Base.pick(Base.peek(arguments), true);\n\t\t\tif (typeof clockwise === 'boolean') {\n\t\t\t\tthis.arcTo(point, clockwise);\n\t\t\t} else {\n\t\t\t\tthis.arcTo(point, current.add(Point.read(arguments)));\n\t\t\t}\n\t\t},\n\n\t\tclosePath: function(tolerance) {\n\t\t\tthis.setClosed(true);\n\t\t\tthis.join(this, tolerance);\n\t\t}\n\t};\n}, {\n\n\t_getBounds: function(matrix, options) {\n\t\tvar method = options.handle\n\t\t\t\t? 'getHandleBounds'\n\t\t\t\t: options.stroke\n\t\t\t\t? 'getStrokeBounds'\n\t\t\t\t: 'getBounds';\n\t\treturn Path[method](this._segments, this._closed, this, matrix, options);\n\t},\n\nstatics: {\n\tgetBounds: function(segments, closed, path, matrix, options, strokePadding) {\n\t\tvar first = segments[0];\n\t\tif (!first)\n\t\t\treturn new Rectangle();\n\t\tvar coords = new Array(6),\n\t\t\tprevCoords = first._transformCoordinates(matrix, new Array(6)),\n\t\t\tmin = prevCoords.slice(0, 2),\n\t\t\tmax = min.slice(),\n\t\t\troots = new Array(2);\n\n\t\tfunction processSegment(segment) {\n\t\t\tsegment._transformCoordinates(matrix, coords);\n\t\t\tfor (var i = 0; i < 2; i++) {\n\t\t\t\tCurve._addBounds(\n\t\t\t\t\tprevCoords[i],\n\t\t\t\t\tprevCoords[i + 4],\n\t\t\t\t\tcoords[i + 2],\n\t\t\t\t\tcoords[i],\n\t\t\t\t\ti, strokePadding ? strokePadding[i] : 0, min, max, roots);\n\t\t\t}\n\t\t\tvar tmp = prevCoords;\n\t\t\tprevCoords = coords;\n\t\t\tcoords = tmp;\n\t\t}\n\n\t\tfor (var i = 1, l = segments.length; i < l; i++)\n\t\t\tprocessSegment(segments[i]);\n\t\tif (closed)\n\t\t\tprocessSegment(first);\n\t\treturn new Rectangle(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n\t},\n\n\tgetStrokeBounds: function(segments, closed, path, matrix, options) {\n\t\tvar style = path.getStyle(),\n\t\t\tstroke = style.hasStroke(),\n\t\t\tstrokeWidth = style.getStrokeWidth(),\n\t\t\tstrokeMatrix = stroke && path._getStrokeMatrix(matrix, options),\n\t\t\tstrokePadding = stroke && Path._getStrokePadding(strokeWidth,\n\t\t\t\tstrokeMatrix),\n\t\t\tbounds = Path.getBounds(segments, closed, path, matrix, options,\n\t\t\t\tstrokePadding);\n\t\tif (!stroke)\n\t\t\treturn bounds;\n\t\tvar strokeRadius = strokeWidth / 2,\n\t\t\tjoin = style.getStrokeJoin(),\n\t\t\tcap = style.getStrokeCap(),\n\t\t\tmiterLimit = style.getMiterLimit(),\n\t\t\tjoinBounds = new Rectangle(new Size(strokePadding));\n\n\t\tfunction addPoint(point) {\n\t\t\tbounds = bounds.include(point);\n\t\t}\n\n\t\tfunction addRound(segment) {\n\t\t\tbounds = bounds.unite(\n\t\t\t\t\tjoinBounds.setCenter(segment._point.transform(matrix)));\n\t\t}\n\n\t\tfunction addJoin(segment, join) {\n\t\t\tif (join === 'round' || segment.isSmooth()) {\n\t\t\t\taddRound(segment);\n\t\t\t} else {\n\t\t\t\tPath._addBevelJoin(segment, join, strokeRadius, miterLimit,\n\t\t\t\t\t\tmatrix, strokeMatrix, addPoint);\n\t\t\t}\n\t\t}\n\n\t\tfunction addCap(segment, cap) {\n\t\t\tif (cap === 'round') {\n\t\t\t\taddRound(segment);\n\t\t\t} else {\n\t\t\t\tPath._addSquareCap(segment, cap, strokeRadius, matrix,\n\t\t\t\t\t\tstrokeMatrix, addPoint);\n\t\t\t}\n\t\t}\n\n\t\tvar length = segments.length - (closed ? 0 : 1);\n\t\tfor (var i = 1; i < length; i++)\n\t\t\taddJoin(segments[i], join);\n\t\tif (closed) {\n\t\t\taddJoin(segments[0], join);\n\t\t} else if (length > 0) {\n\t\t\taddCap(segments[0], cap);\n\t\t\taddCap(segments[segments.length - 1], cap);\n\t\t}\n\t\treturn bounds;\n\t},\n\n\t_getStrokePadding: function(radius, matrix) {\n\t\tif (!matrix)\n\t\t\treturn [radius, radius];\n\t\tvar hor = new Point(radius, 0).transform(matrix),\n\t\t\tver = new Point(0, radius).transform(matrix),\n\t\t\tphi = hor.getAngleInRadians(),\n\t\t\ta = hor.getLength(),\n\t\t\tb = ver.getLength();\n\t\tvar sin = Math.sin(phi),\n\t\t\tcos = Math.cos(phi),\n\t\t\ttan = Math.tan(phi),\n\t\t\ttx = Math.atan2(b * tan, a),\n\t\t\tty = Math.atan2(b, tan * a);\n\t\treturn [Math.abs(a * Math.cos(tx) * cos + b * Math.sin(tx) * sin),\n\t\t\t\tMath.abs(b * Math.sin(ty) * cos + a * Math.cos(ty) * sin)];\n\t},\n\n\t_addBevelJoin: function(segment, join, radius, miterLimit, matrix,\n\t\t\tstrokeMatrix, addPoint, isArea) {\n\t\tvar curve2 = segment.getCurve(),\n\t\t\tcurve1 = curve2.getPrevious(),\n\t\t\tpoint = curve2.getPoint1().transform(matrix),\n\t\t\tnormal1 = curve1.getNormalAtTime(1).multiply(radius)\n\t\t\t\t.transform(strokeMatrix),\n\t\t\tnormal2 = curve2.getNormalAtTime(0).multiply(radius)\n\t\t\t\t.transform(strokeMatrix);\n\t\tif (normal1.getDirectedAngle(normal2) < 0) {\n\t\t\tnormal1 = normal1.negate();\n\t\t\tnormal2 = normal2.negate();\n\t\t}\n\t\tif (isArea)\n\t\t\taddPoint(point);\n\t\taddPoint(point.add(normal1));\n\t\tif (join === 'miter') {\n\t\t\tvar corner = new Line(point.add(normal1),\n\t\t\t\t\tnew Point(-normal1.y, normal1.x), true\n\t\t\t\t).intersect(new Line(point.add(normal2),\n\t\t\t\t\tnew Point(-normal2.y, normal2.x), true\n\t\t\t\t), true);\n\t\t\tif (corner && point.getDistance(corner) <= miterLimit * radius) {\n\t\t\t\taddPoint(corner);\n\t\t\t}\n\t\t}\n\t\taddPoint(point.add(normal2));\n\t},\n\n\t_addSquareCap: function(segment, cap, radius, matrix, strokeMatrix,\n\t\t\taddPoint, isArea) {\n\t\tvar point = segment._point.transform(matrix),\n\t\t\tloc = segment.getLocation(),\n\t\t\tnormal = loc.getNormal()\n\t\t\t\t\t.multiply(loc.getTime() === 0 ? radius : -radius)\n\t\t\t\t\t.transform(strokeMatrix);\n\t\tif (cap === 'square') {\n\t\t\tif (isArea) {\n\t\t\t\taddPoint(point.subtract(normal));\n\t\t\t\taddPoint(point.add(normal));\n\t\t\t}\n\t\t\tpoint = point.add(normal.rotate(-90));\n\t\t}\n\t\taddPoint(point.add(normal));\n\t\taddPoint(point.subtract(normal));\n\t},\n\n\tgetHandleBounds: function(segments, closed, path, matrix, options) {\n\t\tvar style = path.getStyle(),\n\t\t\tstroke = options.stroke && style.hasStroke(),\n\t\t\tstrokePadding,\n\t\t\tjoinPadding;\n\t\tif (stroke) {\n\t\t\tvar strokeMatrix = path._getStrokeMatrix(matrix, options),\n\t\t\t\tstrokeRadius = style.getStrokeWidth() / 2,\n\t\t\t\tjoinRadius = strokeRadius;\n\t\t\tif (style.getStrokeJoin() === 'miter')\n\t\t\t\tjoinRadius = strokeRadius * style.getMiterLimit();\n\t\t\tif (style.getStrokeCap() === 'square')\n\t\t\t\tjoinRadius = Math.max(joinRadius, strokeRadius * Math.SQRT2);\n\t\t\tstrokePadding = Path._getStrokePadding(strokeRadius, strokeMatrix);\n\t\t\tjoinPadding = Path._getStrokePadding(joinRadius, strokeMatrix);\n\t\t}\n\t\tvar coords = new Array(6),\n\t\t\tx1 = Infinity,\n\t\t\tx2 = -x1,\n\t\t\ty1 = x1,\n\t\t\ty2 = x2;\n\t\tfor (var i = 0, l = segments.length; i < l; i++) {\n\t\t\tvar segment = segments[i];\n\t\t\tsegment._transformCoordinates(matrix, coords);\n\t\t\tfor (var j = 0; j < 6; j += 2) {\n\t\t\t\tvar padding = !j ? joinPadding : strokePadding,\n\t\t\t\t\tpaddingX = padding ? padding[0] : 0,\n\t\t\t\t\tpaddingY = padding ? padding[1] : 0,\n\t\t\t\t\tx = coords[j],\n\t\t\t\t\ty = coords[j + 1],\n\t\t\t\t\txn = x - paddingX,\n\t\t\t\t\txx = x + paddingX,\n\t\t\t\t\tyn = y - paddingY,\n\t\t\t\t\tyx = y + paddingY;\n\t\t\t\tif (xn < x1) x1 = xn;\n\t\t\t\tif (xx > x2) x2 = xx;\n\t\t\t\tif (yn < y1) y1 = yn;\n\t\t\t\tif (yx > y2) y2 = yx;\n\t\t\t}\n\t\t}\n\t\treturn new Rectangle(x1, y1, x2 - x1, y2 - y1);\n\t}\n}});\n\nPath.inject({ statics: new function() {\n\n\tvar kappa = 0.5522847498307936,\n\t\tellipseSegments = [\n\t\t\tnew Segment([-1, 0], [0, kappa ], [0, -kappa]),\n\t\t\tnew Segment([0, -1], [-kappa, 0], [kappa, 0 ]),\n\t\t\tnew Segment([1, 0], [0, -kappa], [0, kappa ]),\n\t\t\tnew Segment([0, 1], [kappa, 0 ], [-kappa, 0])\n\t\t];\n\n\tfunction createPath(segments, closed, args) {\n\t\tvar props = Base.getNamed(args),\n\t\t\tpath = new Path(props && props.insert == false && Item.NO_INSERT);\n\t\tpath._add(segments);\n\t\tpath._closed = closed;\n\t\treturn path.set(props, { insert: true });\n\t}\n\n\tfunction createEllipse(center, radius, args) {\n\t\tvar segments = new Array(4);\n\t\tfor (var i = 0; i < 4; i++) {\n\t\t\tvar segment = ellipseSegments[i];\n\t\t\tsegments[i] = new Segment(\n\t\t\t\tsegment._point.multiply(radius).add(center),\n\t\t\t\tsegment._handleIn.multiply(radius),\n\t\t\t\tsegment._handleOut.multiply(radius)\n\t\t\t);\n\t\t}\n\t\treturn createPath(segments, true, args);\n\t}\n\n\treturn {\n\t\tLine: function() {\n\t\t\treturn createPath([\n\t\t\t\tnew Segment(Point.readNamed(arguments, 'from')),\n\t\t\t\tnew Segment(Point.readNamed(arguments, 'to'))\n\t\t\t], false, arguments);\n\t\t},\n\n\t\tCircle: function() {\n\t\t\tvar center = Point.readNamed(arguments, 'center'),\n\t\t\t\tradius = Base.readNamed(arguments, 'radius');\n\t\t\treturn createEllipse(center, new Size(radius), arguments);\n\t\t},\n\n\t\tRectangle: function() {\n\t\t\tvar rect = Rectangle.readNamed(arguments, 'rectangle'),\n\t\t\t\tradius = Size.readNamed(arguments, 'radius', 0,\n\t\t\t\t\t\t{ readNull: true }),\n\t\t\t\tbl = rect.getBottomLeft(true),\n\t\t\t\ttl = rect.getTopLeft(true),\n\t\t\t\ttr = rect.getTopRight(true),\n\t\t\t\tbr = rect.getBottomRight(true),\n\t\t\t\tsegments;\n\t\t\tif (!radius || radius.isZero()) {\n\t\t\t\tsegments = [\n\t\t\t\t\tnew Segment(bl),\n\t\t\t\t\tnew Segment(tl),\n\t\t\t\t\tnew Segment(tr),\n\t\t\t\t\tnew Segment(br)\n\t\t\t\t];\n\t\t\t} else {\n\t\t\t\tradius = Size.min(radius, rect.getSize(true).divide(2));\n\t\t\t\tvar rx = radius.width,\n\t\t\t\t\try = radius.height,\n\t\t\t\t\thx = rx * kappa,\n\t\t\t\t\thy = ry * kappa;\n\t\t\t\tsegments = [\n\t\t\t\t\tnew Segment(bl.add(rx, 0), null, [-hx, 0]),\n\t\t\t\t\tnew Segment(bl.subtract(0, ry), [0, hy]),\n\t\t\t\t\tnew Segment(tl.add(0, ry), null, [0, -hy]),\n\t\t\t\t\tnew Segment(tl.add(rx, 0), [-hx, 0], null),\n\t\t\t\t\tnew Segment(tr.subtract(rx, 0), null, [hx, 0]),\n\t\t\t\t\tnew Segment(tr.add(0, ry), [0, -hy], null),\n\t\t\t\t\tnew Segment(br.subtract(0, ry), null, [0, hy]),\n\t\t\t\t\tnew Segment(br.subtract(rx, 0), [hx, 0])\n\t\t\t\t];\n\t\t\t}\n\t\t\treturn createPath(segments, true, arguments);\n\t\t},\n\n\t\tRoundRectangle: '#Rectangle',\n\n\t\tEllipse: function() {\n\t\t\tvar ellipse = Shape._readEllipse(arguments);\n\t\t\treturn createEllipse(ellipse.center, ellipse.radius, arguments);\n\t\t},\n\n\t\tOval: '#Ellipse',\n\n\t\tArc: function() {\n\t\t\tvar from = Point.readNamed(arguments, 'from'),\n\t\t\t\tthrough = Point.readNamed(arguments, 'through'),\n\t\t\t\tto = Point.readNamed(arguments, 'to'),\n\t\t\t\tprops = Base.getNamed(arguments),\n\t\t\t\tpath = new Path(props && props.insert == false\n\t\t\t\t\t\t&& Item.NO_INSERT);\n\t\t\tpath.moveTo(from);\n\t\t\tpath.arcTo(through, to);\n\t\t\treturn path.set(props);\n\t\t},\n\n\t\tRegularPolygon: function() {\n\t\t\tvar center = Point.readNamed(arguments, 'center'),\n\t\t\t\tsides = Base.readNamed(arguments, 'sides'),\n\t\t\t\tradius = Base.readNamed(arguments, 'radius'),\n\t\t\t\tstep = 360 / sides,\n\t\t\t\tthree = sides % 3 === 0,\n\t\t\t\tvector = new Point(0, three ? -radius : radius),\n\t\t\t\toffset = three ? -1 : 0.5,\n\t\t\t\tsegments = new Array(sides);\n\t\t\tfor (var i = 0; i < sides; i++)\n\t\t\t\tsegments[i] = new Segment(center.add(\n\t\t\t\t\tvector.rotate((i + offset) * step)));\n\t\t\treturn createPath(segments, true, arguments);\n\t\t},\n\n\t\tStar: function() {\n\t\t\tvar center = Point.readNamed(arguments, 'center'),\n\t\t\t\tpoints = Base.readNamed(arguments, 'points') * 2,\n\t\t\t\tradius1 = Base.readNamed(arguments, 'radius1'),\n\t\t\t\tradius2 = Base.readNamed(arguments, 'radius2'),\n\t\t\t\tstep = 360 / points,\n\t\t\t\tvector = new Point(0, -1),\n\t\t\t\tsegments = new Array(points);\n\t\t\tfor (var i = 0; i < points; i++)\n\t\t\t\tsegments[i] = new Segment(center.add(vector.rotate(step * i)\n\t\t\t\t\t\t.multiply(i % 2 ? radius2 : radius1)));\n\t\t\treturn createPath(segments, true, arguments);\n\t\t}\n\t};\n}});\n\nvar CompoundPath = PathItem.extend({\n\t_class: 'CompoundPath',\n\t_serializeFields: {\n\t\tchildren: []\n\t},\n\tbeans: true,\n\n\tinitialize: function CompoundPath(arg) {\n\t\tthis._children = [];\n\t\tthis._namedChildren = {};\n\t\tif (!this._initialize(arg)) {\n\t\t\tif (typeof arg === 'string') {\n\t\t\t\tthis.setPathData(arg);\n\t\t\t} else {\n\t\t\t\tthis.addChildren(Array.isArray(arg) ? arg : arguments);\n\t\t\t}\n\t\t}\n\t},\n\n\tinsertChildren: function insertChildren(index, items) {\n\t\tvar list = items,\n\t\t\tfirst = list[0];\n\t\tif (first && typeof first[0] === 'number')\n\t\t\tlist = [list];\n\t\tfor (var i = items.length - 1; i >= 0; i--) {\n\t\t\tvar item = list[i];\n\t\t\tif (list === items && !(item instanceof Path))\n\t\t\t\tlist = Base.slice(list);\n\t\t\tif (Array.isArray(item)) {\n\t\t\t\tlist[i] = new Path({ segments: item, insert: false });\n\t\t\t} else if (item instanceof CompoundPath) {\n\t\t\t\tlist.splice.apply(list, [i, 1].concat(item.removeChildren()));\n\t\t\t\titem.remove();\n\t\t\t}\n\t\t}\n\t\treturn insertChildren.base.call(this, index, list);\n\t},\n\n\treduce: function reduce(options) {\n\t\tvar children = this._children;\n\t\tfor (var i = children.length - 1; i >= 0; i--) {\n\t\t\tvar path = children[i].reduce(options);\n\t\t\tif (path.isEmpty())\n\t\t\t\tpath.remove();\n\t\t}\n\t\tif (!children.length) {\n\t\t\tvar path = new Path(Item.NO_INSERT);\n\t\t\tpath.copyAttributes(this);\n\t\t\tpath.insertAbove(this);\n\t\t\tthis.remove();\n\t\t\treturn path;\n\t\t}\n\t\treturn reduce.base.call(this);\n\t},\n\n\tisClosed: function() {\n\t\tvar children = this._children;\n\t\tfor (var i = 0, l = children.length; i < l; i++) {\n\t\t\tif (!children[i]._closed)\n\t\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\tsetClosed: function(closed) {\n\t\tvar children = this._children;\n\t\tfor (var i = 0, l = children.length; i < l; i++) {\n\t\t\tchildren[i].setClosed(closed);\n\t\t}\n\t},\n\n\tgetFirstSegment: function() {\n\t\tvar first = this.getFirstChild();\n\t\treturn first && first.getFirstSegment();\n\t},\n\n\tgetLastSegment: function() {\n\t\tvar last = this.getLastChild();\n\t\treturn last && last.getLastSegment();\n\t},\n\n\tgetCurves: function() {\n\t\tvar children = this._children,\n\t\t\tcurves = [];\n\t\tfor (var i = 0, l = children.length; i < l; i++) {\n\t\t\tBase.push(curves, children[i].getCurves());\n\t\t}\n\t\treturn curves;\n\t},\n\n\tgetFirstCurve: function() {\n\t\tvar first = this.getFirstChild();\n\t\treturn first && first.getFirstCurve();\n\t},\n\n\tgetLastCurve: function() {\n\t\tvar last = this.getLastChild();\n\t\treturn last && last.getLastCurve();\n\t},\n\n\tgetArea: function() {\n\t\tvar children = this._children,\n\t\t\tarea = 0;\n\t\tfor (var i = 0, l = children.length; i < l; i++)\n\t\t\tarea += children[i].getArea();\n\t\treturn area;\n\t},\n\n\tgetLength: function() {\n\t\tvar children = this._children,\n\t\t\tlength = 0;\n\t\tfor (var i = 0, l = children.length; i < l; i++)\n\t\t\tlength += children[i].getLength();\n\t\treturn length;\n\t},\n\n\tgetPathData: function(_matrix, _precision) {\n\t\tvar children = this._children,\n\t\t\tpaths = [];\n\t\tfor (var i = 0, l = children.length; i < l; i++) {\n\t\t\tvar child = children[i],\n\t\t\t\tmx = child._matrix;\n\t\t\tpaths.push(child.getPathData(_matrix && !mx.isIdentity()\n\t\t\t\t\t? _matrix.appended(mx) : _matrix, _precision));\n\t\t}\n\t\treturn paths.join('');\n\t},\n\n\t_hitTestChildren: function _hitTestChildren(point, options, viewMatrix) {\n\t\treturn _hitTestChildren.base.call(this, point,\n\t\t\t\toptions.class === Path || options.type === 'path' || options.hitUnfilledPaths ? options\n\t\t\t\t\t: Base.set({}, options, { fill: false }),\n\t\t\t\tviewMatrix);\n\t},\n\n\t_draw: function(ctx, param, viewMatrix, strokeMatrix) {\n\t\tvar children = this._children;\n\t\tif (!children.length)\n\t\t\treturn;\n\n\t\tparam = param.extend({ dontStart: true, dontFinish: true });\n\t\tctx.beginPath();\n\t\tfor (var i = 0, l = children.length; i < l; i++)\n\t\t\tchildren[i].draw(ctx, param, strokeMatrix);\n\n\t\tif (!param.clip) {\n\t\t\tthis._setStyles(ctx, param, viewMatrix);\n\t\t\tvar style = this._style;\n\t\t\tif (style.hasFill()) {\n\t\t\t\tctx.fill(style.getFillRule());\n\t\t\t\tctx.shadowColor = 'rgba(0,0,0,0)';\n\t\t\t}\n\t\t\tif (style.hasStroke())\n\t\t\t\tctx.stroke();\n\t\t}\n\t},\n\n\t_drawSelected: function(ctx, matrix, selectionItems) {\n\t\tvar children = this._children;\n\t\tfor (var i = 0, l = children.length; i < l; i++) {\n\t\t\tvar child = children[i],\n\t\t\t\tmx = child._matrix;\n\t\t\tif (!selectionItems[child._id]) {\n\t\t\t\tchild._drawSelected(ctx, mx.isIdentity() ? matrix\n\t\t\t\t\t\t: matrix.appended(mx));\n\t\t\t}\n\t\t}\n\t}\n},\nnew function() {\n\tfunction getCurrentPath(that, check) {\n\t\tvar children = that._children;\n\t\tif (check && !children.length)\n\t\t\tthrow new Error('Use a moveTo() command first');\n\t\treturn children[children.length - 1];\n\t}\n\n\treturn Base.each(['lineTo', 'cubicCurveTo', 'quadraticCurveTo', 'curveTo',\n\t\t\t'arcTo', 'lineBy', 'cubicCurveBy', 'quadraticCurveBy', 'curveBy',\n\t\t\t'arcBy'],\n\t\tfunction(key) {\n\t\t\tthis[key] = function() {\n\t\t\t\tvar path = getCurrentPath(this, true);\n\t\t\t\tpath[key].apply(path, arguments);\n\t\t\t};\n\t\t}, {\n\t\t\tmoveTo: function() {\n\t\t\t\tvar current = getCurrentPath(this),\n\t\t\t\t\tpath = current && current.isEmpty() ? current\n\t\t\t\t\t\t\t: new Path(Item.NO_INSERT);\n\t\t\t\tif (path !== current)\n\t\t\t\t\tthis.addChild(path);\n\t\t\t\tpath.moveTo.apply(path, arguments);\n\t\t\t},\n\n\t\t\tmoveBy: function() {\n\t\t\t\tvar current = getCurrentPath(this, true),\n\t\t\t\t\tlast = current && current.getLastSegment(),\n\t\t\t\t\tpoint = Point.read(arguments);\n\t\t\t\tthis.moveTo(last ? point.add(last._point) : point);\n\t\t\t},\n\n\t\t\tclosePath: function(tolerance) {\n\t\t\t\tgetCurrentPath(this, true).closePath(tolerance);\n\t\t\t}\n\t\t}\n\t);\n}, Base.each(['reverse', 'flatten', 'simplify', 'smooth'], function(key) {\n\tthis[key] = function(param) {\n\t\tvar children = this._children,\n\t\t\tres;\n\t\tfor (var i = 0, l = children.length; i < l; i++) {\n\t\t\tres = children[i][key](param) || res;\n\t\t}\n\t\treturn res;\n\t};\n}, {}));\n\nPathItem.inject(new function() {\n\tvar min = Math.min,\n\t\tmax = Math.max,\n\t\tabs = Math.abs,\n\t\toperators = {\n\t\t\tunite: { '1': true, '2': true },\n\t\t\tintersect: { '2': true },\n\t\t\tsubtract: { '1': true },\n\t\t\texclude: { '1': true, '-1': true }\n\t\t};\n\n\tfunction preparePath(path, resolve) {\n\t\tvar res = path.clone(false).reduce({ simplify: true })\n\t\t\t\t.transform(null, true, true);\n\t\treturn resolve\n\t\t\t\t? res.resolveCrossings().reorient(\n\t\t\t\t\tres.getFillRule() === 'nonzero', true)\n\t\t\t\t: res;\n\t}\n\n\tfunction createResult(paths, simplify, path1, path2, options) {\n\t\tvar result = new CompoundPath(Item.NO_INSERT);\n\t\tresult.addChildren(paths, true);\n\t\tresult = result.reduce({ simplify: simplify });\n\t\tif (!(options && options.insert == false)) {\n\t\t\tresult.insertAbove(path2 && path1.isSibling(path2)\n\t\t\t\t\t&& path1.getIndex() < path2.getIndex() ? path2 : path1);\n\t\t}\n\t\tresult.copyAttributes(path1, true);\n\t\treturn result;\n\t}\n\n\tfunction traceBoolean(path1, path2, operation, options) {\n\t\tif (options && (options.trace == false || options.stroke) &&\n\t\t\t\t/^(subtract|intersect)$/.test(operation))\n\t\t\treturn splitBoolean(path1, path2, operation);\n\t\tvar _path1 = preparePath(path1, true),\n\t\t\t_path2 = path2 && path1 !== path2 && preparePath(path2, true),\n\t\t\toperator = operators[operation];\n\t\toperator[operation] = true;\n\t\tif (_path2 && (operator.subtract || operator.exclude)\n\t\t\t\t^ (_path2.isClockwise() ^ _path1.isClockwise()))\n\t\t\t_path2.reverse();\n\t\tvar crossings = divideLocations(\n\t\t\t\tCurveLocation.expand(_path1.getCrossings(_path2))),\n\t\t\tpaths1 = _path1._children || [_path1],\n\t\t\tpaths2 = _path2 && (_path2._children || [_path2]),\n\t\t\tsegments = [],\n\t\t\tcurves = [],\n\t\t\tpaths;\n\n\t\tfunction collect(paths) {\n\t\t\tfor (var i = 0, l = paths.length; i < l; i++) {\n\t\t\t\tvar path = paths[i];\n\t\t\t\tBase.push(segments, path._segments);\n\t\t\t\tBase.push(curves, path.getCurves());\n\t\t\t\tpath._overlapsOnly = true;\n\t\t\t}\n\t\t}\n\n\t\tif (crossings.length) {\n\t\t\tcollect(paths1);\n\t\t\tif (paths2)\n\t\t\t\tcollect(paths2);\n\t\t\tfor (var i = 0, l = crossings.length; i < l; i++) {\n\t\t\t\tpropagateWinding(crossings[i]._segment, _path1, _path2, curves,\n\t\t\t\t\t\toperator);\n\t\t\t}\n\t\t\tfor (var i = 0, l = segments.length; i < l; i++) {\n\t\t\t\tvar segment = segments[i],\n\t\t\t\t\tinter = segment._intersection;\n\t\t\t\tif (!segment._winding) {\n\t\t\t\t\tpropagateWinding(segment, _path1, _path2, curves, operator);\n\t\t\t\t}\n\t\t\t\tif (!(inter && inter._overlap))\n\t\t\t\t\tsegment._path._overlapsOnly = false;\n\t\t\t}\n\t\t\tpaths = tracePaths(segments, operator);\n\t\t} else {\n\t\t\tpaths = reorientPaths(\n\t\t\t\t\tpaths2 ? paths1.concat(paths2) : paths1.slice(),\n\t\t\t\t\tfunction(w) {\n\t\t\t\t\t\treturn !!operator[w];\n\t\t\t\t\t});\n\t\t}\n\n\t\treturn createResult(paths, true, path1, path2, options);\n\t}\n\n\tfunction splitBoolean(path1, path2, operation) {\n\t\tvar _path1 = preparePath(path1),\n\t\t\t_path2 = preparePath(path2),\n\t\t\tcrossings = _path1.getCrossings(_path2),\n\t\t\tsubtract = operation === 'subtract',\n\t\t\tdivide = operation === 'divide',\n\t\t\tadded = {},\n\t\t\tpaths = [];\n\n\t\tfunction addPath(path) {\n\t\t\tif (!added[path._id] && (divide ||\n\t\t\t\t\t_path2.contains(path.getPointAt(path.getLength() / 2))\n\t\t\t\t\t\t^ subtract)) {\n\t\t\t\tpaths.unshift(path);\n\t\t\t\treturn added[path._id] = true;\n\t\t\t}\n\t\t}\n\n\t\tfor (var i = crossings.length - 1; i >= 0; i--) {\n\t\t\tvar path = crossings[i].split();\n\t\t\tif (path) {\n\t\t\t\tif (addPath(path))\n\t\t\t\t\tpath.getFirstSegment().setHandleIn(0, 0);\n\t\t\t\t_path1.getLastSegment().setHandleOut(0, 0);\n\t\t\t}\n\t\t}\n\t\taddPath(_path1);\n\t\treturn createResult(paths, false, path1, path2);\n\t}\n\n\tfunction linkIntersections(from, to) {\n\t\tvar prev = from;\n\t\twhile (prev) {\n\t\t\tif (prev === to)\n\t\t\t\treturn;\n\t\t\tprev = prev._previous;\n\t\t}\n\t\twhile (from._next && from._next !== to)\n\t\t\tfrom = from._next;\n\t\tif (!from._next) {\n\t\t\twhile (to._previous)\n\t\t\t\tto = to._previous;\n\t\t\tfrom._next = to;\n\t\t\tto._previous = from;\n\t\t}\n\t}\n\n\tfunction clearCurveHandles(curves) {\n\t\tfor (var i = curves.length - 1; i >= 0; i--)\n\t\t\tcurves[i].clearHandles();\n\t}\n\n\tfunction reorientPaths(paths, isInside, clockwise) {\n\t\tvar length = paths && paths.length;\n\t\tif (length) {\n\t\t\tvar lookup = Base.each(paths, function (path, i) {\n\t\t\t\t\tthis[path._id] = {\n\t\t\t\t\t\tcontainer: null,\n\t\t\t\t\t\twinding: path.isClockwise() ? 1 : -1,\n\t\t\t\t\t\tindex: i\n\t\t\t\t\t};\n\t\t\t\t}, {}),\n\t\t\t\tsorted = paths.slice().sort(function (a, b) {\n\t\t\t\t\treturn abs(b.getArea()) - abs(a.getArea());\n\t\t\t\t}),\n\t\t\t\tfirst = sorted[0];\n\t\t\tif (clockwise == null)\n\t\t\t\tclockwise = first.isClockwise();\n\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\tvar path1 = sorted[i],\n\t\t\t\t\tentry1 = lookup[path1._id],\n\t\t\t\t\tpoint = path1.getInteriorPoint(),\n\t\t\t\t\tcontainerWinding = 0;\n\t\t\t\tfor (var j = i - 1; j >= 0; j--) {\n\t\t\t\t\tvar path2 = sorted[j];\n\t\t\t\t\tif (path2.contains(point)) {\n\t\t\t\t\t\tvar entry2 = lookup[path2._id];\n\t\t\t\t\t\tcontainerWinding = entry2.winding;\n\t\t\t\t\t\tentry1.winding += containerWinding;\n\t\t\t\t\t\tentry1.container = entry2.exclude ? entry2.container\n\t\t\t\t\t\t\t\t: path2;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (isInside(entry1.winding) === isInside(containerWinding)) {\n\t\t\t\t\tentry1.exclude = true;\n\t\t\t\t\tpaths[entry1.index] = null;\n\t\t\t\t} else {\n\t\t\t\t\tvar container = entry1.container;\n\t\t\t\t\tpath1.setClockwise(container ? !container.isClockwise()\n\t\t\t\t\t\t\t: clockwise);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn paths;\n\t}\n\n\tfunction divideLocations(locations, include, clearLater) {\n\t\tvar results = include && [],\n\t\t\ttMin = 1e-8,\n\t\t\ttMax = 1 - tMin,\n\t\t\tclearHandles = false,\n\t\t\tclearCurves = clearLater || [],\n\t\t\tclearLookup = clearLater && {},\n\t\t\trenormalizeLocs,\n\t\t\tprevCurve,\n\t\t\tprevTime;\n\n\t\tfunction getId(curve) {\n\t\t\treturn curve._path._id + '.' + curve._segment1._index;\n\t\t}\n\n\t\tfor (var i = (clearLater && clearLater.length) - 1; i >= 0; i--) {\n\t\t\tvar curve = clearLater[i];\n\t\t\tif (curve._path)\n\t\t\t\tclearLookup[getId(curve)] = true;\n\t\t}\n\n\t\tfor (var i = locations.length - 1; i >= 0; i--) {\n\t\t\tvar loc = locations[i],\n\t\t\t\ttime = loc._time,\n\t\t\t\torigTime = time,\n\t\t\t\texclude = include && !include(loc),\n\t\t\t\tcurve = loc._curve,\n\t\t\t\tsegment;\n\t\t\tif (curve) {\n\t\t\t\tif (curve !== prevCurve) {\n\t\t\t\t\tclearHandles = !curve.hasHandles()\n\t\t\t\t\t\t\t|| clearLookup && clearLookup[getId(curve)];\n\t\t\t\t\trenormalizeLocs = [];\n\t\t\t\t\tprevTime = null;\n\t\t\t\t\tprevCurve = curve;\n\t\t\t\t} else if (prevTime >= tMin) {\n\t\t\t\t\ttime /= prevTime;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (exclude) {\n\t\t\t\tif (renormalizeLocs)\n\t\t\t\t\trenormalizeLocs.push(loc);\n\t\t\t\tcontinue;\n\t\t\t} else if (include) {\n\t\t\t\tresults.unshift(loc);\n\t\t\t}\n\t\t\tprevTime = origTime;\n\t\t\tif (time < tMin) {\n\t\t\t\tsegment = curve._segment1;\n\t\t\t} else if (time > tMax) {\n\t\t\t\tsegment = curve._segment2;\n\t\t\t} else {\n\t\t\t\tvar newCurve = curve.divideAtTime(time, true);\n\t\t\t\tif (clearHandles)\n\t\t\t\t\tclearCurves.push(curve, newCurve);\n\t\t\t\tsegment = newCurve._segment1;\n\t\t\t\tfor (var j = renormalizeLocs.length - 1; j >= 0; j--) {\n\t\t\t\t\tvar l = renormalizeLocs[j];\n\t\t\t\t\tl._time = (l._time - time) / (1 - time);\n\t\t\t\t}\n\t\t\t}\n\t\t\tloc._setSegment(segment);\n\t\t\tvar inter = segment._intersection,\n\t\t\t\tdest = loc._intersection;\n\t\t\tif (inter) {\n\t\t\t\tlinkIntersections(inter, dest);\n\t\t\t\tvar other = inter;\n\t\t\t\twhile (other) {\n\t\t\t\t\tlinkIntersections(other._intersection, inter);\n\t\t\t\t\tother = other._next;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsegment._intersection = dest;\n\t\t\t}\n\t\t}\n\t\tif (!clearLater)\n\t\t\tclearCurveHandles(clearCurves);\n\t\treturn results || locations;\n\t}\n\n\tfunction getWinding(point, curves, dir, closed, dontFlip) {\n\t\tvar ia = dir ? 1 : 0,\n\t\t\tio = ia ^ 1,\n\t\t\tpv = [point.x, point.y],\n\t\t\tpa = pv[ia],\n\t\t\tpo = pv[io],\n\t\t\twindingEpsilon = 1e-9,\n\t\t\tqualityEpsilon = 1e-6,\n\t\t\tpaL = pa - windingEpsilon,\n\t\t\tpaR = pa + windingEpsilon,\n\t\t\twindingL = 0,\n\t\t\twindingR = 0,\n\t\t\tpathWindingL = 0,\n\t\t\tpathWindingR = 0,\n\t\t\tonPath = false,\n\t\t\tonAnyPath = false,\n\t\t\tquality = 1,\n\t\t\troots = [],\n\t\t\tvPrev,\n\t\t\tvClose;\n\n\t\tfunction addWinding(v) {\n\t\t\tvar o0 = v[io + 0],\n\t\t\t\to3 = v[io + 6];\n\t\t\tif (po < min(o0, o3) || po > max(o0, o3)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar a0 = v[ia + 0],\n\t\t\t\ta1 = v[ia + 2],\n\t\t\t\ta2 = v[ia + 4],\n\t\t\t\ta3 = v[ia + 6];\n\t\t\tif (o0 === o3) {\n\t\t\t\tif (a0 < paR && a3 > paL || a3 < paR && a0 > paL) {\n\t\t\t\t\tonPath = true;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar t = po === o0 ? 0\n\t\t\t\t\t: po === o3 ? 1\n\t\t\t\t\t: paL > max(a0, a1, a2, a3) || paR < min(a0, a1, a2, a3)\n\t\t\t\t\t? 1\n\t\t\t\t\t: Curve.solveCubic(v, io, po, roots, 0, 1) > 0\n\t\t\t\t\t\t? roots[0]\n\t\t\t\t\t\t: 1,\n\t\t\t\ta = t === 0 ? a0\n\t\t\t\t\t: t === 1 ? a3\n\t\t\t\t\t: Curve.getPoint(v, t)[dir ? 'y' : 'x'],\n\t\t\t\twinding = o0 > o3 ? 1 : -1,\n\t\t\t\twindingPrev = vPrev[io] > vPrev[io + 6] ? 1 : -1,\n\t\t\t\ta3Prev = vPrev[ia + 6];\n\t\t\tif (po !== o0) {\n\t\t\t\tif (a < paL) {\n\t\t\t\t\tpathWindingL += winding;\n\t\t\t\t} else if (a > paR) {\n\t\t\t\t\tpathWindingR += winding;\n\t\t\t\t} else {\n\t\t\t\t\tonPath = true;\n\t\t\t\t}\n\t\t\t\tif (a > pa - qualityEpsilon && a < pa + qualityEpsilon)\n\t\t\t\t\tquality /= 2;\n\t\t\t} else {\n\t\t\t\tif (winding !== windingPrev) {\n\t\t\t\t\tif (a0 < paL) {\n\t\t\t\t\t\tpathWindingL += winding;\n\t\t\t\t\t} else if (a0 > paR) {\n\t\t\t\t\t\tpathWindingR += winding;\n\t\t\t\t\t}\n\t\t\t\t} else if (a0 != a3Prev) {\n\t\t\t\t\tif (a3Prev < paR && a > paR) {\n\t\t\t\t\t\tpathWindingR += winding;\n\t\t\t\t\t\tonPath = true;\n\t\t\t\t\t} else if (a3Prev > paL && a < paL) {\n\t\t\t\t\t\tpathWindingL += winding;\n\t\t\t\t\t\tonPath = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tquality = 0;\n\t\t\t}\n\t\t\tvPrev = v;\n\t\t\treturn !dontFlip && a > paL && a < paR\n\t\t\t\t\t&& Curve.getTangent(v, t)[dir ? 'x' : 'y'] === 0\n\t\t\t\t\t&& getWinding(point, curves, !dir, closed, true);\n\t\t}\n\n\t\tfunction handleCurve(v) {\n\t\t\tvar o0 = v[io + 0],\n\t\t\t\to1 = v[io + 2],\n\t\t\t\to2 = v[io + 4],\n\t\t\t\to3 = v[io + 6];\n\t\t\tif (po <= max(o0, o1, o2, o3) && po >= min(o0, o1, o2, o3)) {\n\t\t\t\tvar a0 = v[ia + 0],\n\t\t\t\t\ta1 = v[ia + 2],\n\t\t\t\t\ta2 = v[ia + 4],\n\t\t\t\t\ta3 = v[ia + 6],\n\t\t\t\t\tmonoCurves = paL > max(a0, a1, a2, a3) ||\n\t\t\t\t\t\t\t\t paR < min(a0, a1, a2, a3)\n\t\t\t\t\t\t\t? [v] : Curve.getMonoCurves(v, dir),\n\t\t\t\t\tres;\n\t\t\t\tfor (var i = 0, l = monoCurves.length; i < l; i++) {\n\t\t\t\t\tif (res = addWinding(monoCurves[i]))\n\t\t\t\t\t\treturn res;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (var i = 0, l = curves.length; i < l; i++) {\n\t\t\tvar curve = curves[i],\n\t\t\t\tpath = curve._path,\n\t\t\t\tv = curve.getValues(),\n\t\t\t\tres;\n\t\t\tif (!i || curves[i - 1]._path !== path) {\n\t\t\t\tvPrev = null;\n\t\t\t\tif (!path._closed) {\n\t\t\t\t\tvClose = Curve.getValues(\n\t\t\t\t\t\t\tpath.getLastCurve().getSegment2(),\n\t\t\t\t\t\t\tcurve.getSegment1(),\n\t\t\t\t\t\t\tnull, !closed);\n\t\t\t\t\tif (vClose[io] !== vClose[io + 6]) {\n\t\t\t\t\t\tvPrev = vClose;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!vPrev) {\n\t\t\t\t\tvPrev = v;\n\t\t\t\t\tvar prev = path.getLastCurve();\n\t\t\t\t\twhile (prev && prev !== curve) {\n\t\t\t\t\t\tvar v2 = prev.getValues();\n\t\t\t\t\t\tif (v2[io] !== v2[io + 6]) {\n\t\t\t\t\t\t\tvPrev = v2;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tprev = prev.getPrevious();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (res = handleCurve(v))\n\t\t\t\treturn res;\n\n\t\t\tif (i + 1 === l || curves[i + 1]._path !== path) {\n\t\t\t\tif (vClose && (res = handleCurve(vClose)))\n\t\t\t\t\treturn res;\n\t\t\t\tif (onPath && !pathWindingL && !pathWindingR) {\n\t\t\t\t\tpathWindingL = pathWindingR = path.isClockwise(closed) ^ dir\n\t\t\t\t\t\t\t? 1 : -1;\n\t\t\t\t}\n\t\t\t\twindingL += pathWindingL;\n\t\t\t\twindingR += pathWindingR;\n\t\t\t\tpathWindingL = pathWindingR = 0;\n\t\t\t\tif (onPath) {\n\t\t\t\t\tonAnyPath = true;\n\t\t\t\t\tonPath = false;\n\t\t\t\t}\n\t\t\t\tvClose = null;\n\t\t\t}\n\t\t}\n\t\twindingL = abs(windingL);\n\t\twindingR = abs(windingR);\n\t\treturn {\n\t\t\twinding: max(windingL, windingR),\n\t\t\twindingL: windingL,\n\t\t\twindingR: windingR,\n\t\t\tquality: quality,\n\t\t\tonPath: onAnyPath\n\t\t};\n\t}\n\n\tfunction propagateWinding(segment, path1, path2, curves, operator) {\n\t\tvar chain = [],\n\t\t\tstart = segment,\n\t\t\ttotalLength = 0,\n\t\t\twinding;\n\t\tdo {\n\t\t\tvar curve = segment.getCurve(),\n\t\t\t\tlength = curve.getLength();\n\t\t\tchain.push({ segment: segment, curve: curve, length: length });\n\t\t\ttotalLength += length;\n\t\t\tsegment = segment.getNext();\n\t\t} while (segment && !segment._intersection && segment !== start);\n\t\tvar offsets = [0.5, 0.25, 0.75],\n\t\t\twinding = { winding: 0, quality: -1 },\n\t\t\ttMin = 1e-8,\n\t\t\ttMax = 1 - tMin;\n\t\tfor (var i = 0; i < offsets.length && winding.quality < 0.5; i++) {\n\t\t\tvar length = totalLength * offsets[i];\n\t\t\tfor (var j = 0, l = chain.length; j < l; j++) {\n\t\t\t\tvar entry = chain[j],\n\t\t\t\t\tcurveLength = entry.length;\n\t\t\t\tif (length <= curveLength) {\n\t\t\t\t\tvar curve = entry.curve,\n\t\t\t\t\t\tpath = curve._path,\n\t\t\t\t\t\tparent = path._parent,\n\t\t\t\t\t\toperand = parent instanceof CompoundPath ? parent : path,\n\t\t\t\t\t\tt = Numerical.clamp(curve.getTimeAt(length), tMin, tMax),\n\t\t\t\t\t\tpt = curve.getPointAtTime(t),\n\t\t\t\t\t\tdir = abs(curve.getTangentAtTime(t).y) < Math.SQRT1_2;\n\t\t\t\t\tvar wind = null;\n\t\t\t\t\tif (operator.subtract && path2) {\n\t\t\t\t\t\tvar pathWinding = operand === path1\n\t\t\t\t\t\t\t\t\t\t ? path2._getWinding(pt, dir, true)\n\t\t\t\t\t\t\t\t\t\t : path1._getWinding(pt, dir, true);\n\t\t\t\t\t\tif (operand === path1 && pathWinding.winding ||\n\t\t\t\t\t\t\toperand === path2 && !pathWinding.winding) {\n\t\t\t\t\t\t\tif (pathWinding.quality < 1) {\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twind = { winding: 0, quality: 1 };\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\twind = wind || getWinding(pt, curves, dir, true);\n\t\t\t\t\tif (wind.quality > winding.quality)\n\t\t\t\t\t\twinding = wind;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tlength -= curveLength;\n\t\t\t}\n\t\t}\n\t\tfor (var j = chain.length - 1; j >= 0; j--) {\n\t\t\tchain[j].segment._winding = winding;\n\t\t}\n\t}\n\n\tfunction tracePaths(segments, operator) {\n\t\tvar paths = [],\n\t\t\tstarts;\n\n\t\tfunction isValid(seg) {\n\t\t\tvar winding;\n\t\t\treturn !!(seg && !seg._visited && (!operator\n\t\t\t\t\t|| operator[(winding = seg._winding || {}).winding]\n\t\t\t\t\t\t&& !(operator.unite && winding.winding === 2\n\t\t\t\t\t\t\t&& winding.windingL && winding.windingR)));\n\t\t}\n\n\t\tfunction isStart(seg) {\n\t\t\tif (seg) {\n\t\t\t\tfor (var i = 0, l = starts.length; i < l; i++) {\n\t\t\t\t\tif (seg === starts[i])\n\t\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction visitPath(path) {\n\t\t\tvar segments = path._segments;\n\t\t\tfor (var i = 0, l = segments.length; i < l; i++) {\n\t\t\t\tsegments[i]._visited = true;\n\t\t\t}\n\t\t}\n\n\t\tfunction getCrossingSegments(segment, collectStarts) {\n\t\t\tvar inter = segment._intersection,\n\t\t\t\tstart = inter,\n\t\t\t\tcrossings = [];\n\t\t\tif (collectStarts)\n\t\t\t\tstarts = [segment];\n\n\t\t\tfunction collect(inter, end) {\n\t\t\t\twhile (inter && inter !== end) {\n\t\t\t\t\tvar other = inter._segment,\n\t\t\t\t\t\tpath = other && other._path;\n\t\t\t\t\tif (path) {\n\t\t\t\t\t\tvar next = other.getNext() || path.getFirstSegment(),\n\t\t\t\t\t\t\tnextInter = next._intersection;\n\t\t\t\t\t\tif (other !== segment && (isStart(other)\n\t\t\t\t\t\t\t|| isStart(next)\n\t\t\t\t\t\t\t|| next && (isValid(other) && (isValid(next)\n\t\t\t\t\t\t\t\t|| nextInter && isValid(nextInter._segment))))\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tcrossings.push(other);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (collectStarts)\n\t\t\t\t\t\t\tstarts.push(other);\n\t\t\t\t\t}\n\t\t\t\t\tinter = inter._next;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (inter) {\n\t\t\t\tcollect(inter);\n\t\t\t\twhile (inter && inter._prev)\n\t\t\t\t\tinter = inter._prev;\n\t\t\t\tcollect(inter, start);\n\t\t\t}\n\t\t\treturn crossings;\n\t\t}\n\n\t\tsegments.sort(function(seg1, seg2) {\n\t\t\tvar inter1 = seg1._intersection,\n\t\t\t\tinter2 = seg2._intersection,\n\t\t\t\tover1 = !!(inter1 && inter1._overlap),\n\t\t\t\tover2 = !!(inter2 && inter2._overlap),\n\t\t\t\tpath1 = seg1._path,\n\t\t\t\tpath2 = seg2._path;\n\t\t\treturn over1 ^ over2\n\t\t\t\t\t? over1 ? 1 : -1\n\t\t\t\t\t: !inter1 ^ !inter2\n\t\t\t\t\t\t? inter1 ? 1 : -1\n\t\t\t\t\t\t: path1 !== path2\n\t\t\t\t\t\t\t? path1._id - path2._id\n\t\t\t\t\t\t\t: seg1._index - seg2._index;\n\t\t});\n\n\t\tfor (var i = 0, l = segments.length; i < l; i++) {\n\t\t\tvar seg = segments[i],\n\t\t\t\tvalid = isValid(seg),\n\t\t\t\tpath = null,\n\t\t\t\tfinished = false,\n\t\t\t\tclosed = true,\n\t\t\t\tbranches = [],\n\t\t\t\tbranch,\n\t\t\t\tvisited,\n\t\t\t\thandleIn;\n\t\t\tif (valid && seg._path._overlapsOnly) {\n\t\t\t\tvar path1 = seg._path,\n\t\t\t\t\tpath2 = seg._intersection._segment._path;\n\t\t\t\tif (path1.compare(path2)) {\n\t\t\t\t\tif (path1.getArea())\n\t\t\t\t\t\tpaths.push(path1.clone(false));\n\t\t\t\t\tvisitPath(path1);\n\t\t\t\t\tvisitPath(path2);\n\t\t\t\t\tvalid = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\twhile (valid) {\n\t\t\t\tvar first = !path,\n\t\t\t\t\tcrossings = getCrossingSegments(seg, first),\n\t\t\t\t\tother = crossings.shift(),\n\t\t\t\t\tfinished = !first && (isStart(seg) || isStart(other)),\n\t\t\t\t\tcross = !finished && other;\n\t\t\t\tif (first) {\n\t\t\t\t\tpath = new Path(Item.NO_INSERT);\n\t\t\t\t\tbranch = null;\n\t\t\t\t}\n\t\t\t\tif (finished) {\n\t\t\t\t\tif (seg.isFirst() || seg.isLast())\n\t\t\t\t\t\tclosed = seg._path._closed;\n\t\t\t\t\tseg._visited = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (cross && branch) {\n\t\t\t\t\tbranches.push(branch);\n\t\t\t\t\tbranch = null;\n\t\t\t\t}\n\t\t\t\tif (!branch) {\n\t\t\t\t\tif (cross)\n\t\t\t\t\t\tcrossings.push(seg);\n\t\t\t\t\tbranch = {\n\t\t\t\t\t\tstart: path._segments.length,\n\t\t\t\t\t\tcrossings: crossings,\n\t\t\t\t\t\tvisited: visited = [],\n\t\t\t\t\t\thandleIn: handleIn\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (cross)\n\t\t\t\t\tseg = other;\n\t\t\t\tif (!isValid(seg)) {\n\t\t\t\t\tpath.removeSegments(branch.start);\n\t\t\t\t\tfor (var j = 0, k = visited.length; j < k; j++) {\n\t\t\t\t\t\tvisited[j]._visited = false;\n\t\t\t\t\t}\n\t\t\t\t\tvisited.length = 0;\n\t\t\t\t\tdo {\n\t\t\t\t\t\tseg = branch && branch.crossings.shift();\n\t\t\t\t\t\tif (!seg || !seg._path) {\n\t\t\t\t\t\t\tseg = null;\n\t\t\t\t\t\t\tbranch = branches.pop();\n\t\t\t\t\t\t\tif (branch) {\n\t\t\t\t\t\t\t\tvisited = branch.visited;\n\t\t\t\t\t\t\t\thandleIn = branch.handleIn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} while (branch && !isValid(seg));\n\t\t\t\t\tif (!seg)\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tvar next = seg.getNext();\n\t\t\t\tpath.add(new Segment(seg._point, handleIn,\n\t\t\t\t\t\tnext && seg._handleOut));\n\t\t\t\tseg._visited = true;\n\t\t\t\tvisited.push(seg);\n\t\t\t\tseg = next || seg._path.getFirstSegment();\n\t\t\t\thandleIn = next && next._handleIn;\n\t\t\t}\n\t\t\tif (finished) {\n\t\t\t\tif (closed) {\n\t\t\t\t\tpath.getFirstSegment().setHandleIn(handleIn);\n\t\t\t\t\tpath.setClosed(closed);\n\t\t\t\t}\n\t\t\t\tif (path.getArea() !== 0) {\n\t\t\t\t\tpaths.push(path);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn paths;\n\t}\n\n\treturn {\n\t\t_getWinding: function(point, dir, closed) {\n\t\t\treturn getWinding(point, this.getCurves(), dir, closed);\n\t\t},\n\n\t\tunite: function(path, options) {\n\t\t\treturn traceBoolean(this, path, 'unite', options);\n\t\t},\n\n\t\tintersect: function(path, options) {\n\t\t\treturn traceBoolean(this, path, 'intersect', options);\n\t\t},\n\n\t\tsubtract: function(path, options) {\n\t\t\treturn traceBoolean(this, path, 'subtract', options);\n\t\t},\n\n\t\texclude: function(path, options) {\n\t\t\treturn traceBoolean(this, path, 'exclude', options);\n\t\t},\n\n\t\tdivide: function(path, options) {\n\t\t\treturn options && (options.trace == false || options.stroke)\n\t\t\t\t\t? splitBoolean(this, path, 'divide')\n\t\t\t\t\t: createResult([\n\t\t\t\t\t\tthis.subtract(path, options),\n\t\t\t\t\t\tthis.intersect(path, options)\n\t\t\t\t\t], true, this, path, options);\n\t\t},\n\n\t\tresolveCrossings: function() {\n\t\t\tvar children = this._children,\n\t\t\t\tpaths = children || [this];\n\n\t\t\tfunction hasOverlap(seg, path) {\n\t\t\t\tvar inter = seg && seg._intersection;\n\t\t\t\treturn inter && inter._overlap && inter._path === path;\n\t\t\t}\n\n\t\t\tvar hasOverlaps = false,\n\t\t\t\thasCrossings = false,\n\t\t\t\tintersections = this.getIntersections(null, function(inter) {\n\t\t\t\t\treturn inter.hasOverlap() && (hasOverlaps = true) ||\n\t\t\t\t\t\t\tinter.isCrossing() && (hasCrossings = true);\n\t\t\t\t}),\n\t\t\t\tclearCurves = hasOverlaps && hasCrossings && [];\n\t\t\tintersections = CurveLocation.expand(intersections);\n\t\t\tif (hasOverlaps) {\n\t\t\t\tvar overlaps = divideLocations(intersections, function(inter) {\n\t\t\t\t\treturn inter.hasOverlap();\n\t\t\t\t}, clearCurves);\n\t\t\t\tfor (var i = overlaps.length - 1; i >= 0; i--) {\n\t\t\t\t\tvar overlap = overlaps[i],\n\t\t\t\t\t\tpath = overlap._path,\n\t\t\t\t\t\tseg = overlap._segment,\n\t\t\t\t\t\tprev = seg.getPrevious(),\n\t\t\t\t\t\tnext = seg.getNext();\n\t\t\t\t\tif (hasOverlap(prev, path) && hasOverlap(next, path)) {\n\t\t\t\t\t\tseg.remove();\n\t\t\t\t\t\tprev._handleOut._set(0, 0);\n\t\t\t\t\t\tnext._handleIn._set(0, 0);\n\t\t\t\t\t\tif (prev !== seg && !prev.getCurve().hasLength()) {\n\t\t\t\t\t\t\tnext._handleIn.set(prev._handleIn);\n\t\t\t\t\t\t\tprev.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (hasCrossings) {\n\t\t\t\tdivideLocations(intersections, hasOverlaps && function(inter) {\n\t\t\t\t\tvar curve1 = inter.getCurve(),\n\t\t\t\t\t\tseg1 = inter.getSegment(),\n\t\t\t\t\t\tother = inter._intersection,\n\t\t\t\t\t\tcurve2 = other._curve,\n\t\t\t\t\t\tseg2 = other._segment;\n\t\t\t\t\tif (curve1 && curve2 && curve1._path && curve2._path)\n\t\t\t\t\t\treturn true;\n\t\t\t\t\tif (seg1)\n\t\t\t\t\t\tseg1._intersection = null;\n\t\t\t\t\tif (seg2)\n\t\t\t\t\t\tseg2._intersection = null;\n\t\t\t\t}, clearCurves);\n\t\t\t\tif (clearCurves)\n\t\t\t\t\tclearCurveHandles(clearCurves);\n\t\t\t\tpaths = tracePaths(Base.each(paths, function(path) {\n\t\t\t\t\tBase.push(this, path._segments);\n\t\t\t\t}, []));\n\t\t\t}\n\t\t\tvar length = paths.length,\n\t\t\t\titem;\n\t\t\tif (length > 1 && children) {\n\t\t\t\tif (paths !== children)\n\t\t\t\t\tthis.setChildren(paths);\n\t\t\t\titem = this;\n\t\t\t} else if (length === 1 && !children) {\n\t\t\t\tif (paths[0] !== this)\n\t\t\t\t\tthis.setSegments(paths[0].removeSegments());\n\t\t\t\titem = this;\n\t\t\t}\n\t\t\tif (!item) {\n\t\t\t\titem = new CompoundPath(Item.NO_INSERT);\n\t\t\t\titem.addChildren(paths);\n\t\t\t\titem = item.reduce();\n\t\t\t\titem.copyAttributes(this);\n\t\t\t\tthis.replaceWith(item);\n\t\t\t}\n\t\t\treturn item;\n\t\t},\n\n\t\treorient: function(nonZero, clockwise) {\n\t\t\tvar children = this._children;\n\t\t\tif (children && children.length) {\n\t\t\t\tthis.setChildren(reorientPaths(this.removeChildren(),\n\t\t\t\t\t\tfunction(w) {\n\t\t\t\t\t\t\treturn !!(nonZero ? w : w & 1);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tclockwise));\n\t\t\t} else if (clockwise !== undefined) {\n\t\t\t\tthis.setClockwise(clockwise);\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\tgetInteriorPoint: function() {\n\t\t\tvar bounds = this.getBounds(),\n\t\t\t\tpoint = bounds.getCenter(true);\n\t\t\tif (!this.contains(point)) {\n\t\t\t\tvar curves = this.getCurves(),\n\t\t\t\t\ty = point.y,\n\t\t\t\t\tintercepts = [],\n\t\t\t\t\troots = [];\n\t\t\t\tfor (var i = 0, l = curves.length; i < l; i++) {\n\t\t\t\t\tvar v = curves[i].getValues(),\n\t\t\t\t\t\to0 = v[1],\n\t\t\t\t\t\to1 = v[3],\n\t\t\t\t\t\to2 = v[5],\n\t\t\t\t\t\to3 = v[7];\n\t\t\t\t\tif (y >= min(o0, o1, o2, o3) && y <= max(o0, o1, o2, o3)) {\n\t\t\t\t\t\tvar monoCurves = Curve.getMonoCurves(v);\n\t\t\t\t\t\tfor (var j = 0, m = monoCurves.length; j < m; j++) {\n\t\t\t\t\t\t\tvar mv = monoCurves[j],\n\t\t\t\t\t\t\t\tmo0 = mv[1],\n\t\t\t\t\t\t\t\tmo3 = mv[7];\n\t\t\t\t\t\t\tif ((mo0 !== mo3) &&\n\t\t\t\t\t\t\t\t(y >= mo0 && y <= mo3 || y >= mo3 && y <= mo0)){\n\t\t\t\t\t\t\t\tvar x = y === mo0 ? mv[0]\n\t\t\t\t\t\t\t\t\t: y === mo3 ? mv[6]\n\t\t\t\t\t\t\t\t\t: Curve.solveCubic(mv, 1, y, roots, 0, 1)\n\t\t\t\t\t\t\t\t\t\t=== 1\n\t\t\t\t\t\t\t\t\t\t? Curve.getPoint(mv, roots[0]).x\n\t\t\t\t\t\t\t\t\t\t: (mv[0] + mv[6]) / 2;\n\t\t\t\t\t\t\t\tintercepts.push(x);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (intercepts.length > 1) {\n\t\t\t\t\tintercepts.sort(function(a, b) { return a - b; });\n\t\t\t\t\tpoint.x = (intercepts[0] + intercepts[1]) / 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn point;\n\t\t}\n\t};\n});\n\nvar PathFlattener = Base.extend({\n\t_class: 'PathFlattener',\n\n\tinitialize: function(path, flatness, maxRecursion, ignoreStraight, matrix) {\n\t\tvar curves = [],\n\t\t\tparts = [],\n\t\t\tlength = 0,\n\t\t\tminSpan = 1 / (maxRecursion || 32),\n\t\t\tsegments = path._segments,\n\t\t\tsegment1 = segments[0],\n\t\t\tsegment2;\n\n\t\tfunction addCurve(segment1, segment2) {\n\t\t\tvar curve = Curve.getValues(segment1, segment2, matrix);\n\t\t\tcurves.push(curve);\n\t\t\tcomputeParts(curve, segment1._index, 0, 1);\n\t\t}\n\n\t\tfunction computeParts(curve, index, t1, t2) {\n\t\t\tif ((t2 - t1) > minSpan\n\t\t\t\t\t&& !(ignoreStraight && Curve.isStraight(curve))\n\t\t\t\t\t&& !Curve.isFlatEnough(curve, flatness || 0.25)) {\n\t\t\t\tvar halves = Curve.subdivide(curve, 0.5),\n\t\t\t\t\ttMid = (t1 + t2) / 2;\n\t\t\t\tcomputeParts(halves[0], index, t1, tMid);\n\t\t\t\tcomputeParts(halves[1], index, tMid, t2);\n\t\t\t} else {\n\t\t\t\tvar dx = curve[6] - curve[0],\n\t\t\t\t\tdy = curve[7] - curve[1],\n\t\t\t\t\tdist = Math.sqrt(dx * dx + dy * dy);\n\t\t\t\tif (dist > 0) {\n\t\t\t\t\tlength += dist;\n\t\t\t\t\tparts.push({\n\t\t\t\t\t\toffset: length,\n\t\t\t\t\t\tcurve: curve,\n\t\t\t\t\t\tindex: index,\n\t\t\t\t\t\ttime: t2,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (var i = 1, l = segments.length; i < l; i++) {\n\t\t\tsegment2 = segments[i];\n\t\t\taddCurve(segment1, segment2);\n\t\t\tsegment1 = segment2;\n\t\t}\n\t\tif (path._closed)\n\t\t\taddCurve(segment2 || segment1, segments[0]);\n\t\tthis.curves = curves;\n\t\tthis.parts = parts;\n\t\tthis.length = length;\n\t\tthis.index = 0;\n\t},\n\n\t_get: function(offset) {\n\t\tvar parts = this.parts,\n\t\t\tlength = parts.length,\n\t\t\tstart,\n\t\t\ti, j = this.index;\n\t\tfor (;;) {\n\t\t\ti = j;\n\t\t\tif (!j || parts[--j].offset < offset)\n\t\t\t\tbreak;\n\t\t}\n\t\tfor (; i < length; i++) {\n\t\t\tvar part = parts[i];\n\t\t\tif (part.offset >= offset) {\n\t\t\t\tthis.index = i;\n\t\t\t\tvar prev = parts[i - 1],\n\t\t\t\t\tprevTime = prev && prev.index === part.index ? prev.time : 0,\n\t\t\t\t\tprevOffset = prev ? prev.offset : 0;\n\t\t\t\treturn {\n\t\t\t\t\tindex: part.index,\n\t\t\t\t\ttime: prevTime + (part.time - prevTime)\n\t\t\t\t\t\t* (offset - prevOffset) / (part.offset - prevOffset)\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tindex: parts[length - 1].index,\n\t\t\ttime: 1\n\t\t};\n\t},\n\n\tdrawPart: function(ctx, from, to) {\n\t\tvar start = this._get(from),\n\t\t\tend = this._get(to);\n\t\tfor (var i = start.index, l = end.index; i <= l; i++) {\n\t\t\tvar curve = Curve.getPart(this.curves[i],\n\t\t\t\t\ti === start.index ? start.time : 0,\n\t\t\t\t\ti === end.index ? end.time : 1);\n\t\t\tif (i === start.index)\n\t\t\t\tctx.moveTo(curve[0], curve[1]);\n\t\t\tctx.bezierCurveTo.apply(ctx, curve.slice(2));\n\t\t}\n\t}\n}, Base.each(Curve._evaluateMethods,\n\tfunction(name) {\n\t\tthis[name + 'At'] = function(offset) {\n\t\t\tvar param = this._get(offset);\n\t\t\treturn Curve[name](this.curves[param.index], param.time);\n\t\t};\n\t}, {})\n);\n\nvar PathFitter = Base.extend({\n\tinitialize: function(path) {\n\t\tvar points = this.points = [],\n\t\t\tsegments = path._segments,\n\t\t\tclosed = path._closed;\n\t\tfor (var i = 0, prev, l = segments.length; i < l; i++) {\n\t\t\tvar point = segments[i].point;\n\t\t\tif (!prev || !prev.equals(point)) {\n\t\t\t\tpoints.push(prev = point.clone());\n\t\t\t}\n\t\t}\n\t\tif (closed) {\n\t\t\tpoints.unshift(points[points.length - 1]);\n\t\t\tpoints.push(points[1]);\n\t\t}\n\t\tthis.closed = closed;\n\t},\n\n\tfit: function(error) {\n\t\tvar points = this.points,\n\t\t\tlength = points.length,\n\t\t\tsegments = null;\n\t\tif (length > 0) {\n\t\t\tsegments = [new Segment(points[0])];\n\t\t\tif (length > 1) {\n\t\t\t\tthis.fitCubic(segments, error, 0, length - 1,\n\t\t\t\t\t\tpoints[1].subtract(points[0]),\n\t\t\t\t\t\tpoints[length - 2].subtract(points[length - 1]));\n\t\t\t\tif (this.closed) {\n\t\t\t\t\tsegments.shift();\n\t\t\t\t\tsegments.pop();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn segments;\n\t},\n\n\tfitCubic: function(segments, error, first, last, tan1, tan2) {\n\t\tvar points = this.points;\n\t\tif (last - first === 1) {\n\t\t\tvar pt1 = points[first],\n\t\t\t\tpt2 = points[last],\n\t\t\t\tdist = pt1.getDistance(pt2) / 3;\n\t\t\tthis.addCurve(segments, [pt1, pt1.add(tan1.normalize(dist)),\n\t\t\t\t\tpt2.add(tan2.normalize(dist)), pt2]);\n\t\t\treturn;\n\t\t}\n\t\tvar uPrime = this.chordLengthParameterize(first, last),\n\t\t\tmaxError = Math.max(error, error * error),\n\t\t\tsplit,\n\t\t\tparametersInOrder = true;\n\t\tfor (var i = 0; i <= 4; i++) {\n\t\t\tvar curve = this.generateBezier(first, last, uPrime, tan1, tan2);\n\t\t\tvar max = this.findMaxError(first, last, curve, uPrime);\n\t\t\tif (max.error < error && parametersInOrder) {\n\t\t\t\tthis.addCurve(segments, curve);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsplit = max.index;\n\t\t\tif (max.error >= maxError)\n\t\t\t\tbreak;\n\t\t\tparametersInOrder = this.reparameterize(first, last, uPrime, curve);\n\t\t\tmaxError = max.error;\n\t\t}\n\t\tvar tanCenter = points[split - 1].subtract(points[split + 1]);\n\t\tthis.fitCubic(segments, error, first, split, tan1, tanCenter);\n\t\tthis.fitCubic(segments, error, split, last, tanCenter.negate(), tan2);\n\t},\n\n\taddCurve: function(segments, curve) {\n\t\tvar prev = segments[segments.length - 1];\n\t\tprev.setHandleOut(curve[1].subtract(curve[0]));\n\t\tsegments.push(new Segment(curve[3], curve[2].subtract(curve[3])));\n\t},\n\n\tgenerateBezier: function(first, last, uPrime, tan1, tan2) {\n\t\tvar epsilon = 1e-12,\n\t\t\tabs = Math.abs,\n\t\t\tpoints = this.points,\n\t\t\tpt1 = points[first],\n\t\t\tpt2 = points[last],\n\t\t\tC = [[0, 0], [0, 0]],\n\t\t\tX = [0, 0];\n\n\t\tfor (var i = 0, l = last - first + 1; i < l; i++) {\n\t\t\tvar u = uPrime[i],\n\t\t\t\tt = 1 - u,\n\t\t\t\tb = 3 * u * t,\n\t\t\t\tb0 = t * t * t,\n\t\t\t\tb1 = b * t,\n\t\t\t\tb2 = b * u,\n\t\t\t\tb3 = u * u * u,\n\t\t\t\ta1 = tan1.normalize(b1),\n\t\t\t\ta2 = tan2.normalize(b2),\n\t\t\t\ttmp = points[first + i]\n\t\t\t\t\t.subtract(pt1.multiply(b0 + b1))\n\t\t\t\t\t.subtract(pt2.multiply(b2 + b3));\n\t\t\tC[0][0] += a1.dot(a1);\n\t\t\tC[0][1] += a1.dot(a2);\n\t\t\tC[1][0] = C[0][1];\n\t\t\tC[1][1] += a2.dot(a2);\n\t\t\tX[0] += a1.dot(tmp);\n\t\t\tX[1] += a2.dot(tmp);\n\t\t}\n\n\t\tvar detC0C1 = C[0][0] * C[1][1] - C[1][0] * C[0][1],\n\t\t\talpha1,\n\t\t\talpha2;\n\t\tif (abs(detC0C1) > epsilon) {\n\t\t\tvar detC0X = C[0][0] * X[1] - C[1][0] * X[0],\n\t\t\t\tdetXC1 = X[0] * C[1][1] - X[1] * C[0][1];\n\t\t\talpha1 = detXC1 / detC0C1;\n\t\t\talpha2 = detC0X / detC0C1;\n\t\t} else {\n\t\t\tvar c0 = C[0][0] + C[0][1],\n\t\t\t\tc1 = C[1][0] + C[1][1];\n\t\t\talpha1 = alpha2 = abs(c0) > epsilon ? X[0] / c0\n\t\t\t\t\t\t\t: abs(c1) > epsilon ? X[1] / c1\n\t\t\t\t\t\t\t: 0;\n\t\t}\n\n\t\tvar segLength = pt2.getDistance(pt1),\n\t\t\teps = epsilon * segLength,\n\t\t\thandle1,\n\t\t\thandle2;\n\t\tif (alpha1 < eps || alpha2 < eps) {\n\t\t\talpha1 = alpha2 = segLength / 3;\n\t\t} else {\n\t\t\tvar line = pt2.subtract(pt1);\n\t\t\thandle1 = tan1.normalize(alpha1);\n\t\t\thandle2 = tan2.normalize(alpha2);\n\t\t\tif (handle1.dot(line) - handle2.dot(line) > segLength * segLength) {\n\t\t\t\talpha1 = alpha2 = segLength / 3;\n\t\t\t\thandle1 = handle2 = null;\n\t\t\t}\n\t\t}\n\n\t\treturn [pt1,\n\t\t\t\tpt1.add(handle1 || tan1.normalize(alpha1)),\n\t\t\t\tpt2.add(handle2 || tan2.normalize(alpha2)),\n\t\t\t\tpt2];\n\t},\n\n\treparameterize: function(first, last, u, curve) {\n\t\tfor (var i = first; i <= last; i++) {\n\t\t\tu[i - first] = this.findRoot(curve, this.points[i], u[i - first]);\n\t\t}\n\t\tfor (var i = 1, l = u.length; i < l; i++) {\n\t\t\tif (u[i] <= u[i - 1])\n\t\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\tfindRoot: function(curve, point, u) {\n\t\tvar curve1 = [],\n\t\t\tcurve2 = [];\n\t\tfor (var i = 0; i <= 2; i++) {\n\t\t\tcurve1[i] = curve[i + 1].subtract(curve[i]).multiply(3);\n\t\t}\n\t\tfor (var i = 0; i <= 1; i++) {\n\t\t\tcurve2[i] = curve1[i + 1].subtract(curve1[i]).multiply(2);\n\t\t}\n\t\tvar pt = this.evaluate(3, curve, u),\n\t\t\tpt1 = this.evaluate(2, curve1, u),\n\t\t\tpt2 = this.evaluate(1, curve2, u),\n\t\t\tdiff = pt.subtract(point),\n\t\t\tdf = pt1.dot(pt1) + diff.dot(pt2);\n\t\treturn Numerical.isZero(df) ? u : u - diff.dot(pt1) / df;\n\t},\n\n\tevaluate: function(degree, curve, t) {\n\t\tvar tmp = curve.slice();\n\t\tfor (var i = 1; i <= degree; i++) {\n\t\t\tfor (var j = 0; j <= degree - i; j++) {\n\t\t\t\ttmp[j] = tmp[j].multiply(1 - t).add(tmp[j + 1].multiply(t));\n\t\t\t}\n\t\t}\n\t\treturn tmp[0];\n\t},\n\n\tchordLengthParameterize: function(first, last) {\n\t\tvar u = [0];\n\t\tfor (var i = first + 1; i <= last; i++) {\n\t\t\tu[i - first] = u[i - first - 1]\n\t\t\t\t\t+ this.points[i].getDistance(this.points[i - 1]);\n\t\t}\n\t\tfor (var i = 1, m = last - first; i <= m; i++) {\n\t\t\tu[i] /= u[m];\n\t\t}\n\t\treturn u;\n\t},\n\n\tfindMaxError: function(first, last, curve, u) {\n\t\tvar index = Math.floor((last - first + 1) / 2),\n\t\t\tmaxDist = 0;\n\t\tfor (var i = first + 1; i < last; i++) {\n\t\t\tvar P = this.evaluate(3, curve, u[i - first]);\n\t\t\tvar v = P.subtract(this.points[i]);\n\t\t\tvar dist = v.x * v.x + v.y * v.y;\n\t\t\tif (dist >= maxDist) {\n\t\t\t\tmaxDist = dist;\n\t\t\t\tindex = i;\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\terror: maxDist,\n\t\t\tindex: index\n\t\t};\n\t}\n});\n\nvar TextItem = Item.extend({\n\t_class: 'TextItem',\n\t_applyMatrix: false,\n\t_canApplyMatrix: false,\n\t_serializeFields: {\n\t\tcontent: null\n\t},\n\t_boundsOptions: { stroke: false, handle: false },\n\n\tinitialize: function TextItem(arg) {\n\t\tthis._content = '';\n\t\tthis._lines = [];\n\t\tvar hasProps = arg && Base.isPlainObject(arg)\n\t\t\t\t&& arg.x === undefined && arg.y === undefined;\n\t\tthis._initialize(hasProps && arg, !hasProps && Point.read(arguments));\n\t},\n\n\t_equals: function(item) {\n\t\treturn this._content === item._content;\n\t},\n\n\tcopyContent: function(source) {\n\t\tthis.setContent(source._content);\n\t},\n\n\tgetContent: function() {\n\t\treturn this._content;\n\t},\n\n\tsetContent: function(content) {\n\t\tthis._content = '' + content;\n\t\tthis._lines = this._content.split(/\\r\\n|\\n|\\r/mg);\n\t\tthis._changed(521);\n\t},\n\n\tisEmpty: function() {\n\t\treturn !this._content;\n\t},\n\n\tgetCharacterStyle: '#getStyle',\n\tsetCharacterStyle: '#setStyle',\n\n\tgetParagraphStyle: '#getStyle',\n\tsetParagraphStyle: '#setStyle'\n});\n\nvar PointText = TextItem.extend({\n\t_class: 'PointText',\n\n\tinitialize: function PointText() {\n\t\tTextItem.apply(this, arguments);\n\t},\n\n\tgetPoint: function() {\n\t\tvar point = this._matrix.getTranslation();\n\t\treturn new LinkedPoint(point.x, point.y, this, 'setPoint');\n\t},\n\n\tsetPoint: function() {\n\t\tvar point = Point.read(arguments);\n\t\tthis.translate(point.subtract(this._matrix.getTranslation()));\n\t},\n\n\t_draw: function(ctx, param, viewMatrix) {\n\t\tif (!this._content)\n\t\t\treturn;\n\t\tthis._setStyles(ctx, param, viewMatrix);\n\t\tvar lines = this._lines,\n\t\t\tstyle = this._style,\n\t\t\thasFill = style.hasFill(),\n\t\t\thasStroke = style.hasStroke(),\n\t\t\tleading = style.getLeading(),\n\t\t\tshadowColor = ctx.shadowColor;\n\t\tctx.font = style.getFontStyle();\n\t\tctx.textAlign = style.getJustification();\n\t\tfor (var i = 0, l = lines.length; i < l; i++) {\n\t\t\tctx.shadowColor = shadowColor;\n\t\t\tvar line = lines[i];\n\t\t\tif (hasFill) {\n\t\t\t\tctx.fillText(line, 0, 0);\n\t\t\t\tctx.shadowColor = 'rgba(0,0,0,0)';\n\t\t\t}\n\t\t\tif (hasStroke)\n\t\t\t\tctx.strokeText(line, 0, 0);\n\t\t\tctx.translate(0, leading);\n\t\t}\n\t},\n\n\t_getBounds: function(matrix, options) {\n\t\tvar rect = options.drawnTextBounds ? this._getDrawnTextSize() : this._getMeasuredTextSize();\n\t\treturn matrix ? matrix._transformBounds(rect, rect) : rect;\n\t},\n\n\t_getMeasuredTextSize: function() {\n\t\tvar style = this._style,\n\t\t\tlines = this._lines,\n\t\t\tnumLines = lines.length,\n\t\t\tjustification = style.getJustification(),\n\t\t\tleading = style.getLeading(),\n\t\t\twidth = this.getView().getTextWidth(style.getFontStyle(), lines),\n\t\t\tx = 0;\n\t\tif (justification !== 'left')\n\t\t\tx -= width / (justification === 'center' ? 2: 1);\n\t\treturn new Rectangle(x,\n\t\t\t\t\tnumLines ? - 0.75 * leading : 0,\n\t\t\t\t\twidth, numLines * leading);\n\t},\n\n\t_getDrawnTextSize: function() {\n\t\tvar style = this._style;\n\t\tvar lines = this._lines;\n\t\tvar numLines = lines.length;\n\t\tvar leading = style.getLeading();\n\t\tvar justification = style.getJustification();\n\n\t\tvar svg = SvgElement.create('svg', {\n\t\t\t\t\tversion: '1.1',\n\t\t\t\t\txmlns: SvgElement.svg\n\t\t\t\t});\n\t\tvar node = SvgElement.create('text');\n\t\tnode.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\t\tsvg.appendChild(node);\n\t\tfor (var i = 0; i < numLines; i++) {\n\t\t\tvar tspanNode = SvgElement.create('tspan', {\n\t\t\t\tx: '0',\n\t\t\t\tdy: i === 0 ? '0' : leading + 'px'\n\t\t\t});\n\t\t\ttspanNode.textContent = this._lines[i];\n\t\t\tnode.appendChild(tspanNode);\n\t\t}\n\n\t\tvar element = document.createElement('span');\n\t\telement.style.visibility = ('hidden');\n\t\telement.style.whiteSpace = 'pre';\n\t\telement.style.fontSize = this.fontSize + 'px';\n\t\telement.style.fontFamily = this.font;\n\t\telement.style.lineHeight = this.leading / this.fontSize;\n\n\t\tvar bbox;\n\t\ttry {\n\t\t\telement.appendChild(svg);\n\t\t\tdocument.body.appendChild(element);\n\t\t\tbbox = svg.getBBox();\n\t\t} finally {\n\t\t\tdocument.body.removeChild(element);\n\t\t}\n\n\t\tvar halfStrokeWidth = this.strokeWidth / 2;\n\t\tvar width = bbox.width + (halfStrokeWidth * 2);\n\t\tvar height = bbox.height + (halfStrokeWidth * 2);\n\t\tvar x = bbox.x - halfStrokeWidth;\n\t\tvar y = bbox.y - halfStrokeWidth;\n\n\t\tif (justification !== 'left') {\n\t\t\tvar eltWidth = this.getView().getTextWidth(style.getFontStyle(), lines);\n\t\t\tx -= eltWidth / (justification === 'center' ? 2: 1);\n\t\t}\n\n\t\treturn new Rectangle(x, y, width + 1, Math.max(height, numLines * leading));\n\t},\n\n\t_hitTestSelf: function(point, options) {\n\t\tif (options.fill && (this.hasFill() || options.hitUnfilledPaths) && this._contains(point))\n\t\t\treturn new HitResult('fill', this);\n\t}\n});\n\nvar Color = Base.extend(new function() {\n\tvar types = {\n\t\tgray: ['gray'],\n\t\trgb: ['red', 'green', 'blue'],\n\t\thsb: ['hue', 'saturation', 'brightness'],\n\t\thsl: ['hue', 'saturation', 'lightness'],\n\t\tgradient: ['gradient', 'origin', 'destination', 'highlight']\n\t};\n\n\tvar componentParsers = {},\n\t\tnamedColors = {\n\t\t\ttransparent: [0, 0, 0, 0]\n\t\t},\n\t\tcolorCtx;\n\n\tfunction fromCSS(string) {\n\t\tvar match = string.match(\n\t\t\t\t/^#([\\da-f]{2})([\\da-f]{2})([\\da-f]{2})([\\da-f]{2})?$/i\n\t\t\t) || string.match(\n\t\t\t\t/^#([\\da-f])([\\da-f])([\\da-f])([\\da-f])?$/i\n\t\t\t),\n\t\t\ttype = 'rgb',\n\t\t\tcomponents;\n\t\tif (match) {\n\t\t\tvar amount = match[4] ? 4 : 3;\n\t\t\tcomponents = new Array(amount);\n\t\t\tfor (var i = 0; i < amount; i++) {\n\t\t\t\tvar value = match[i + 1];\n\t\t\t\tcomponents[i] = parseInt(value.length == 1\n\t\t\t\t\t\t? value + value : value, 16) / 255;\n\t\t\t}\n\t\t} else if (match = string.match(/^(rgb|hsl)a?\\((.*)\\)$/)) {\n\t\t\ttype = match[1];\n\t\t\tcomponents = match[2].split(/[,\\s]+/g);\n\t\t\tvar isHSL = type === 'hsl';\n\t\t\tfor (var i = 0, l = Math.min(components.length, 4); i < l; i++) {\n\t\t\t\tvar component = components[i];\n\t\t\t\tvar value = parseFloat(component);\n\t\t\t\tif (isHSL) {\n\t\t\t\t\tif (i === 0) {\n\t\t\t\t\t\tvar unit = component.match(/([a-z]*)$/)[1];\n\t\t\t\t\t\tvalue *= ({\n\t\t\t\t\t\t\tturn: 360,\n\t\t\t\t\t\t\trad: 180 / Math.PI,\n\t\t\t\t\t\t\tgrad: 0.9\n\t\t\t\t\t\t}[unit] || 1);\n\t\t\t\t\t} else if (i < 3) {\n\t\t\t\t\t\tvalue /= 100;\n\t\t\t\t\t}\n\t\t\t\t} else if (i < 3) {\n\t\t\t\t\tvalue /= 255;\n\t\t\t\t}\n\t\t\t\tcomponents[i] = value;\n\t\t\t}\n\t\t} else {\n\t\t\tvar color = namedColors[string];\n\t\t\tif (!color) {\n\t\t\t\tif (window) {\n\t\t\t\t\tif (!colorCtx) {\n\t\t\t\t\t\tcolorCtx = CanvasProvider.getContext(1, 1);\n\t\t\t\t\t\tcolorCtx.globalCompositeOperation = 'copy';\n\t\t\t\t\t}\n\t\t\t\t\tcolorCtx.fillStyle = 'rgba(0,0,0,0)';\n\t\t\t\t\tcolorCtx.fillStyle = string;\n\t\t\t\t\tcolorCtx.fillRect(0, 0, 1, 1);\n\t\t\t\t\tvar data = colorCtx.getImageData(0, 0, 1, 1).data;\n\t\t\t\t\tcolor = namedColors[string] = [\n\t\t\t\t\t\tdata[0] / 255,\n\t\t\t\t\t\tdata[1] / 255,\n\t\t\t\t\t\tdata[2] / 255\n\t\t\t\t\t];\n\t\t\t\t} else {\n\t\t\t\t\tcolor = [0, 0, 0];\n\t\t\t\t}\n\t\t\t}\n\t\t\tcomponents = color.slice();\n\t\t}\n\t\treturn [type, components];\n\t}\n\n\tvar hsbIndices = [\n\t\t[0, 3, 1],\n\t\t[2, 0, 1],\n\t\t[1, 0, 3],\n\t\t[1, 2, 0],\n\t\t[3, 1, 0],\n\t\t[0, 1, 2]\n\t];\n\n\tvar converters = {\n\t\t'rgb-hsb': function(r, g, b) {\n\t\t\tvar max = Math.max(r, g, b),\n\t\t\t\tmin = Math.min(r, g, b),\n\t\t\t\tdelta = max - min,\n\t\t\t\th = delta === 0 ? 0\n\t\t\t\t\t: ( max == r ? (g - b) / delta + (g < b ? 6 : 0)\n\t\t\t\t\t\t: max == g ? (b - r) / delta + 2\n\t\t\t\t\t\t: (r - g) / delta + 4) * 60;\n\t\t\treturn [h, max === 0 ? 0 : delta / max, max];\n\t\t},\n\n\t\t'hsb-rgb': function(h, s, b) {\n\t\t\th = (((h / 60) % 6) + 6) % 6;\n\t\t\tvar i = Math.floor(h),\n\t\t\t\tf = h - i,\n\t\t\t\ti = hsbIndices[i],\n\t\t\t\tv = [\n\t\t\t\t\tb,\n\t\t\t\t\tb * (1 - s),\n\t\t\t\t\tb * (1 - s * f),\n\t\t\t\t\tb * (1 - s * (1 - f))\n\t\t\t\t];\n\t\t\treturn [v[i[0]], v[i[1]], v[i[2]]];\n\t\t},\n\n\t\t'rgb-hsl': function(r, g, b) {\n\t\t\tvar max = Math.max(r, g, b),\n\t\t\t\tmin = Math.min(r, g, b),\n\t\t\t\tdelta = max - min,\n\t\t\t\tachromatic = delta === 0,\n\t\t\t\th = achromatic ? 0\n\t\t\t\t\t: ( max == r ? (g - b) / delta + (g < b ? 6 : 0)\n\t\t\t\t\t\t: max == g ? (b - r) / delta + 2\n\t\t\t\t\t\t: (r - g) / delta + 4) * 60,\n\t\t\t\tl = (max + min) / 2,\n\t\t\t\ts = achromatic ? 0 : l < 0.5\n\t\t\t\t\t\t? delta / (max + min)\n\t\t\t\t\t\t: delta / (2 - max - min);\n\t\t\treturn [h, s, l];\n\t\t},\n\n\t\t'hsl-rgb': function(h, s, l) {\n\t\t\th = (((h / 360) % 1) + 1) % 1;\n\t\t\tif (s === 0)\n\t\t\t\treturn [l, l, l];\n\t\t\tvar t3s = [ h + 1 / 3, h, h - 1 / 3 ],\n\t\t\t\tt2 = l < 0.5 ? l * (1 + s) : l + s - l * s,\n\t\t\t\tt1 = 2 * l - t2,\n\t\t\t\tc = [];\n\t\t\tfor (var i = 0; i < 3; i++) {\n\t\t\t\tvar t3 = t3s[i];\n\t\t\t\tif (t3 < 0) t3 += 1;\n\t\t\t\tif (t3 > 1) t3 -= 1;\n\t\t\t\tc[i] = 6 * t3 < 1\n\t\t\t\t\t? t1 + (t2 - t1) * 6 * t3\n\t\t\t\t\t: 2 * t3 < 1\n\t\t\t\t\t\t? t2\n\t\t\t\t\t\t: 3 * t3 < 2\n\t\t\t\t\t\t\t? t1 + (t2 - t1) * ((2 / 3) - t3) * 6\n\t\t\t\t\t\t\t: t1;\n\t\t\t}\n\t\t\treturn c;\n\t\t},\n\n\t\t'rgb-gray': function(r, g, b) {\n\t\t\treturn [r * 0.2989 + g * 0.587 + b * 0.114];\n\t\t},\n\n\t\t'gray-rgb': function(g) {\n\t\t\treturn [g, g, g];\n\t\t},\n\n\t\t'gray-hsb': function(g) {\n\t\t\treturn [0, 0, g];\n\t\t},\n\n\t\t'gray-hsl': function(g) {\n\t\t\treturn [0, 0, g];\n\t\t},\n\n\t\t'gradient-rgb': function() {\n\t\t\treturn [];\n\t\t},\n\n\t\t'rgb-gradient': function() {\n\t\t\treturn [];\n\t\t}\n\n\t};\n\n\treturn Base.each(types, function(properties, type) {\n\t\tcomponentParsers[type] = [];\n\t\tBase.each(properties, function(name, index) {\n\t\t\tvar part = Base.capitalize(name),\n\t\t\t\thasOverlap = /^(hue|saturation)$/.test(name),\n\t\t\t\tparser = componentParsers[type][index] = type === 'gradient'\n\t\t\t\t\t? name === 'gradient'\n\t\t\t\t\t\t? function(value) {\n\t\t\t\t\t\t\tvar current = this._components[0];\n\t\t\t\t\t\t\tvalue = Gradient.read(\n\t\t\t\t\t\t\t\tArray.isArray(value)\n\t\t\t\t\t\t\t\t\t? value\n\t\t\t\t\t\t\t\t\t: arguments, 0, { readNull: true }\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (current !== value) {\n\t\t\t\t\t\t\t\tif (current)\n\t\t\t\t\t\t\t\t\tcurrent._removeOwner(this);\n\t\t\t\t\t\t\t\tif (value)\n\t\t\t\t\t\t\t\t\tvalue._addOwner(this);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t: function() {\n\t\t\t\t\t\t\treturn Point.read(arguments, 0, {\n\t\t\t\t\t\t\t\t\treadNull: name === 'highlight',\n\t\t\t\t\t\t\t\t\tclone: true\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t: function(value) {\n\t\t\t\t\t\treturn value == null || isNaN(value) ? 0 : +value;\n\t\t\t\t\t};\n\t\t\tthis['get' + part] = function() {\n\t\t\t\treturn this._type === type\n\t\t\t\t\t|| hasOverlap && /^hs[bl]$/.test(this._type)\n\t\t\t\t\t\t? this._components[index]\n\t\t\t\t\t\t: this._convert(type)[index];\n\t\t\t};\n\n\t\t\tthis['set' + part] = function(value) {\n\t\t\t\tif (this._type !== type\n\t\t\t\t\t\t&& !(hasOverlap && /^hs[bl]$/.test(this._type))) {\n\t\t\t\t\tthis._components = this._convert(type);\n\t\t\t\t\tthis._properties = types[type];\n\t\t\t\t\tthis._type = type;\n\t\t\t\t}\n\t\t\t\tthis._components[index] = parser.call(this, value);\n\t\t\t\tthis._changed();\n\t\t\t};\n\t\t}, this);\n\t}, {\n\t\t_class: 'Color',\n\t\t_readIndex: true,\n\n\t\tinitialize: function Color(arg) {\n\t\t\tvar args = arguments,\n\t\t\t\treading = this.__read,\n\t\t\t\tread = 0,\n\t\t\t\ttype,\n\t\t\t\tcomponents,\n\t\t\t\talpha,\n\t\t\t\tvalues;\n\t\t\tif (Array.isArray(arg)) {\n\t\t\t\targs = arg;\n\t\t\t\targ = args[0];\n\t\t\t}\n\t\t\tvar argType = arg != null && typeof arg;\n\t\t\tif (argType === 'string' && arg in types) {\n\t\t\t\ttype = arg;\n\t\t\t\targ = args[1];\n\t\t\t\tif (Array.isArray(arg)) {\n\t\t\t\t\tcomponents = arg;\n\t\t\t\t\talpha = args[2];\n\t\t\t\t} else {\n\t\t\t\t\tif (reading)\n\t\t\t\t\t\tread = 1;\n\t\t\t\t\targs = Base.slice(args, 1);\n\t\t\t\t\targType = typeof arg;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!components) {\n\t\t\t\tvalues = argType === 'number'\n\t\t\t\t\t\t? args\n\t\t\t\t\t\t: argType === 'object' && arg.length != null\n\t\t\t\t\t\t\t? arg\n\t\t\t\t\t\t\t: null;\n\t\t\t\tif (values) {\n\t\t\t\t\tif (!type)\n\t\t\t\t\t\ttype = values.length >= 3\n\t\t\t\t\t\t\t\t? 'rgb'\n\t\t\t\t\t\t\t\t: 'gray';\n\t\t\t\t\tvar length = types[type].length;\n\t\t\t\t\talpha = values[length];\n\t\t\t\t\tif (reading) {\n\t\t\t\t\t\tread += values === arguments\n\t\t\t\t\t\t\t? length + (alpha != null ? 1 : 0)\n\t\t\t\t\t\t\t: 1;\n\t\t\t\t\t}\n\t\t\t\t\tif (values.length > length)\n\t\t\t\t\t\tvalues = Base.slice(values, 0, length);\n\t\t\t\t} else if (argType === 'string') {\n\t\t\t\t\tvar converted = fromCSS(arg);\n\t\t\t\t\ttype = converted[0];\n\t\t\t\t\tcomponents = converted[1];\n\t\t\t\t\tif (components.length === 4) {\n\t\t\t\t\t\talpha = components[3];\n\t\t\t\t\t\tcomponents.length--;\n\t\t\t\t\t}\n\t\t\t\t} else if (argType === 'object') {\n\t\t\t\t\tif (arg.constructor === Color) {\n\t\t\t\t\t\ttype = arg._type;\n\t\t\t\t\t\tcomponents = arg._components.slice();\n\t\t\t\t\t\talpha = arg._alpha;\n\t\t\t\t\t\tif (type === 'gradient') {\n\t\t\t\t\t\t\tfor (var i = 1, l = components.length; i < l; i++) {\n\t\t\t\t\t\t\t\tvar point = components[i];\n\t\t\t\t\t\t\t\tif (point)\n\t\t\t\t\t\t\t\t\tcomponents[i] = point.clone();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (arg.constructor === Gradient) {\n\t\t\t\t\t\ttype = 'gradient';\n\t\t\t\t\t\tvalues = args;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttype = 'hue' in arg\n\t\t\t\t\t\t\t? 'lightness' in arg\n\t\t\t\t\t\t\t\t? 'hsl'\n\t\t\t\t\t\t\t\t: 'hsb'\n\t\t\t\t\t\t\t: 'gradient' in arg || 'stops' in arg\n\t\t\t\t\t\t\t\t\t|| 'radial' in arg\n\t\t\t\t\t\t\t\t? 'gradient'\n\t\t\t\t\t\t\t\t: 'gray' in arg\n\t\t\t\t\t\t\t\t\t? 'gray'\n\t\t\t\t\t\t\t\t\t: 'rgb';\n\t\t\t\t\t\tvar properties = types[type],\n\t\t\t\t\t\t\tparsers = componentParsers[type];\n\t\t\t\t\t\tthis._components = components = [];\n\t\t\t\t\t\tfor (var i = 0, l = properties.length; i < l; i++) {\n\t\t\t\t\t\t\tvar value = arg[properties[i]];\n\t\t\t\t\t\t\tif (value == null && !i && type === 'gradient'\n\t\t\t\t\t\t\t\t\t&& 'stops' in arg) {\n\t\t\t\t\t\t\t\tvalue = {\n\t\t\t\t\t\t\t\t\tstops: arg.stops,\n\t\t\t\t\t\t\t\t\tradial: arg.radial\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue = parsers[i].call(this, value);\n\t\t\t\t\t\t\tif (value != null)\n\t\t\t\t\t\t\t\tcomponents[i] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t\talpha = arg.alpha;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (reading && type)\n\t\t\t\t\tread = 1;\n\t\t\t}\n\t\t\tthis._type = type || 'rgb';\n\t\t\tif (!components) {\n\t\t\t\tthis._components = components = [];\n\t\t\t\tvar parsers = componentParsers[this._type];\n\t\t\t\tfor (var i = 0, l = parsers.length; i < l; i++) {\n\t\t\t\t\tvar value = parsers[i].call(this, values && values[i]);\n\t\t\t\t\tif (value != null)\n\t\t\t\t\t\tcomponents[i] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._components = components;\n\t\t\tthis._properties = types[this._type];\n\t\t\tthis._alpha = alpha;\n\t\t\tif (reading)\n\t\t\t\tthis.__read = read;\n\t\t\treturn this;\n\t\t},\n\n\t\tset: '#initialize',\n\n\t\t_serialize: function(options, dictionary) {\n\t\t\tvar components = this.getComponents();\n\t\t\treturn Base.serialize(\n\t\t\t\t\t/^(gray|rgb)$/.test(this._type)\n\t\t\t\t\t\t? components\n\t\t\t\t\t\t: [this._type].concat(components),\n\t\t\t\t\toptions, true, dictionary);\n\t\t},\n\n\t\t_changed: function() {\n\t\t\tthis._canvasStyle = null;\n\t\t\tif (this._owner)\n\t\t\t\tthis._owner._changed(129);\n\t\t},\n\n\t\t_convert: function(type) {\n\t\t\tvar converter;\n\t\t\treturn this._type === type\n\t\t\t\t\t? this._components.slice()\n\t\t\t\t\t: (converter = converters[this._type + '-' + type])\n\t\t\t\t\t\t? converter.apply(this, this._components)\n\t\t\t\t\t\t: converters['rgb-' + type].apply(this,\n\t\t\t\t\t\t\tconverters[this._type + '-rgb'].apply(this,\n\t\t\t\t\t\t\t\tthis._components));\n\t\t},\n\n\t\tconvert: function(type) {\n\t\t\treturn new Color(type, this._convert(type), this._alpha);\n\t\t},\n\n\t\tgetType: function() {\n\t\t\treturn this._type;\n\t\t},\n\n\t\tsetType: function(type) {\n\t\t\tthis._components = this._convert(type);\n\t\t\tthis._properties = types[type];\n\t\t\tthis._type = type;\n\t\t},\n\n\t\tgetComponents: function() {\n\t\t\tvar components = this._components.slice();\n\t\t\tif (this._alpha != null)\n\t\t\t\tcomponents.push(this._alpha);\n\t\t\treturn components;\n\t\t},\n\n\t\tgetAlpha: function() {\n\t\t\treturn this._alpha != null ? this._alpha : 1;\n\t\t},\n\n\t\tsetAlpha: function(alpha) {\n\t\t\tthis._alpha = alpha == null ? null : Math.min(Math.max(alpha, 0), 1);\n\t\t\tthis._changed();\n\t\t},\n\n\t\thasAlpha: function() {\n\t\t\treturn this._alpha != null;\n\t\t},\n\n\t\tequals: function(color) {\n\t\t\tvar col = Base.isPlainValue(color, true)\n\t\t\t\t\t? Color.read(arguments)\n\t\t\t\t\t: color;\n\t\t\treturn col === this || col && this._class === col._class\n\t\t\t\t\t&& this._type === col._type\n\t\t\t\t\t&& this.getAlpha() === col.getAlpha()\n\t\t\t\t\t&& Base.equals(this._components, col._components)\n\t\t\t\t\t|| false;\n\t\t},\n\n\t\ttoString: function() {\n\t\t\tvar properties = this._properties,\n\t\t\t\tparts = [],\n\t\t\t\tisGradient = this._type === 'gradient',\n\t\t\t\tf = Formatter.instance;\n\t\t\tfor (var i = 0, l = properties.length; i < l; i++) {\n\t\t\t\tvar value = this._components[i];\n\t\t\t\tif (value != null)\n\t\t\t\t\tparts.push(properties[i] + ': '\n\t\t\t\t\t\t\t+ (isGradient ? value : f.number(value)));\n\t\t\t}\n\t\t\tif (this._alpha != null)\n\t\t\t\tparts.push('alpha: ' + f.number(this._alpha));\n\t\t\treturn '{ ' + parts.join(', ') + ' }';\n\t\t},\n\n\t\ttoCSS: function(hex) {\n\t\t\tvar components = this._convert('rgb'),\n\t\t\t\talpha = hex || this._alpha == null ? 1 : this._alpha;\n\t\t\tfunction convert(val) {\n\t\t\t\treturn Math.round((val < 0 ? 0 : val > 1 ? 1 : val) * 255);\n\t\t\t}\n\t\t\tcomponents = [\n\t\t\t\tconvert(components[0]),\n\t\t\t\tconvert(components[1]),\n\t\t\t\tconvert(components[2])\n\t\t\t];\n\t\t\tif (alpha < 1)\n\t\t\t\tcomponents.push(alpha < 0 ? 0 : alpha);\n\t\t\treturn hex\n\t\t\t\t\t? '#' + ((1 << 24) + (components[0] << 16)\n\t\t\t\t\t\t+ (components[1] << 8)\n\t\t\t\t\t\t+ components[2]).toString(16).slice(1)\n\t\t\t\t\t: (components.length == 4 ? 'rgba(' : 'rgb(')\n\t\t\t\t\t\t+ components.join(',') + ')';\n\t\t},\n\n\t\ttoCanvasStyle: function(ctx, matrix) {\n\t\t\tif (this._canvasStyle)\n\t\t\t\treturn this._canvasStyle;\n\t\t\tif (this._type !== 'gradient')\n\t\t\t\treturn this._canvasStyle = this.toCSS();\n\t\t\tvar components = this._components,\n\t\t\t\tgradient = components[0],\n\t\t\t\tstops = gradient._stops,\n\t\t\t\torigin = components[1],\n\t\t\t\tdestination = components[2],\n\t\t\t\thighlight = components[3],\n\t\t\t\tinverse = matrix && matrix.inverted(),\n\t\t\t\tcanvasGradient;\n\t\t\tif (inverse) {\n\t\t\t\torigin = inverse._transformPoint(origin);\n\t\t\t\tdestination = inverse._transformPoint(destination);\n\t\t\t\tif (highlight)\n\t\t\t\t\thighlight = inverse._transformPoint(highlight);\n\t\t\t}\n\t\t\tif (gradient._radial) {\n\t\t\t\tvar radius = destination.getDistance(origin);\n\t\t\t\tif (highlight) {\n\t\t\t\t\tvar vector = highlight.subtract(origin);\n\t\t\t\t\tif (vector.getLength() > radius)\n\t\t\t\t\t\thighlight = origin.add(vector.normalize(radius - 0.1));\n\t\t\t\t}\n\t\t\t\tvar start = highlight || origin;\n\t\t\t\tcanvasGradient = ctx.createRadialGradient(start.x, start.y,\n\t\t\t\t\t\t0, origin.x, origin.y, radius);\n\t\t\t} else {\n\t\t\t\tcanvasGradient = ctx.createLinearGradient(origin.x, origin.y,\n\t\t\t\t\t\tdestination.x, destination.y);\n\t\t\t}\n\t\t\tfor (var i = 0, l = stops.length; i < l; i++) {\n\t\t\t\tvar stop = stops[i],\n\t\t\t\t\toffset = stop._offset;\n\t\t\t\tcanvasGradient.addColorStop(\n\t\t\t\t\t\toffset == null ? i / (l - 1) : offset,\n\t\t\t\t\t\tstop._color.toCanvasStyle());\n\t\t\t}\n\t\t\treturn this._canvasStyle = canvasGradient;\n\t\t},\n\n\t\ttransform: function(matrix) {\n\t\t\tif (this._type === 'gradient') {\n\t\t\t\tvar components = this._components;\n\t\t\t\tfor (var i = 1, l = components.length; i < l; i++) {\n\t\t\t\t\tvar point = components[i];\n\t\t\t\t\tmatrix._transformPoint(point, point, true);\n\t\t\t\t}\n\t\t\t\tthis._changed();\n\t\t\t}\n\t\t},\n\n\t\tstatics: {\n\t\t\t_types: types,\n\n\t\t\trandom: function() {\n\t\t\t\tvar random = Math.random;\n\t\t\t\treturn new Color(random(), random(), random());\n\t\t\t}\n\t\t}\n\t});\n},\nnew function() {\n\tvar operators = {\n\t\tadd: function(a, b) {\n\t\t\treturn a + b;\n\t\t},\n\n\t\tsubtract: function(a, b) {\n\t\t\treturn a - b;\n\t\t},\n\n\t\tmultiply: function(a, b) {\n\t\t\treturn a * b;\n\t\t},\n\n\t\tdivide: function(a, b) {\n\t\t\treturn a / b;\n\t\t}\n\t};\n\n\treturn Base.each(operators, function(operator, name) {\n\t\tthis[name] = function(color) {\n\t\t\tcolor = Color.read(arguments);\n\t\t\tvar type = this._type,\n\t\t\t\tcomponents1 = this._components,\n\t\t\t\tcomponents2 = color._convert(type);\n\t\t\tfor (var i = 0, l = components1.length; i < l; i++)\n\t\t\t\tcomponents2[i] = operator(components1[i], components2[i]);\n\t\t\treturn new Color(type, components2,\n\t\t\t\t\tthis._alpha != null\n\t\t\t\t\t\t\t? operator(this._alpha, color.getAlpha())\n\t\t\t\t\t\t\t: null);\n\t\t};\n\t}, {\n\t});\n});\n\nvar Gradient = Base.extend({\n\t_class: 'Gradient',\n\n\tinitialize: function Gradient(stops, radial) {\n\t\tthis._id = UID.get();\n\t\tif (stops && Base.isPlainObject(stops)) {\n\t\t\tthis.set(stops);\n\t\t\tstops = radial = null;\n\t\t}\n\t\tif (this._stops == null) {\n\t\t\tthis.setStops(stops || ['white', 'black']);\n\t\t}\n\t\tif (this._radial == null) {\n\t\t\tthis.setRadial(typeof radial === 'string' && radial === 'radial'\n\t\t\t\t\t|| radial || false);\n\t\t}\n\t},\n\n\t_serialize: function(options, dictionary) {\n\t\treturn dictionary.add(this, function() {\n\t\t\treturn Base.serialize([this._stops, this._radial],\n\t\t\t\t\toptions, true, dictionary);\n\t\t});\n\t},\n\n\t_changed: function() {\n\t\tfor (var i = 0, l = this._owners && this._owners.length; i < l; i++) {\n\t\t\tthis._owners[i]._changed();\n\t\t}\n\t},\n\n\t_addOwner: function(color) {\n\t\tif (!this._owners)\n\t\t\tthis._owners = [];\n\t\tthis._owners.push(color);\n\t},\n\n\t_removeOwner: function(color) {\n\t\tvar index = this._owners ? this._owners.indexOf(color) : -1;\n\t\tif (index != -1) {\n\t\t\tthis._owners.splice(index, 1);\n\t\t\tif (!this._owners.length)\n\t\t\t\tthis._owners = undefined;\n\t\t}\n\t},\n\n\tclone: function() {\n\t\tvar stops = [];\n\t\tfor (var i = 0, l = this._stops.length; i < l; i++) {\n\t\t\tstops[i] = this._stops[i].clone();\n\t\t}\n\t\treturn new Gradient(stops, this._radial);\n\t},\n\n\tgetStops: function() {\n\t\treturn this._stops;\n\t},\n\n\tsetStops: function(stops) {\n\t\tif (stops.length < 2) {\n\t\t\tthrow new Error(\n\t\t\t\t\t'Gradient stop list needs to contain at least two stops.');\n\t\t}\n\t\tvar _stops = this._stops;\n\t\tif (_stops) {\n\t\t\tfor (var i = 0, l = _stops.length; i < l; i++)\n\t\t\t\t_stops[i]._owner = undefined;\n\t\t}\n\t\t_stops = this._stops = GradientStop.readList(stops, 0, { clone: true });\n\t\tfor (var i = 0, l = _stops.length; i < l; i++)\n\t\t\t_stops[i]._owner = this;\n\t\tthis._changed();\n\t},\n\n\tgetRadial: function() {\n\t\treturn this._radial;\n\t},\n\n\tsetRadial: function(radial) {\n\t\tthis._radial = radial;\n\t\tthis._changed();\n\t},\n\n\tequals: function(gradient) {\n\t\tif (gradient === this)\n\t\t\treturn true;\n\t\tif (gradient && this._class === gradient._class) {\n\t\t\tvar stops1 = this._stops,\n\t\t\t\tstops2 = gradient._stops,\n\t\t\t\tlength = stops1.length;\n\t\t\tif (length === stops2.length) {\n\t\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\t\tif (!stops1[i].equals(stops2[i]))\n\t\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n});\n\nvar GradientStop = Base.extend({\n\t_class: 'GradientStop',\n\n\tinitialize: function GradientStop(arg0, arg1) {\n\t\tvar color = arg0,\n\t\t\toffset = arg1;\n\t\tif (typeof arg0 === 'object' && arg1 === undefined) {\n\t\t\tif (Array.isArray(arg0) && typeof arg0[0] !== 'number') {\n\t\t\t\tcolor = arg0[0];\n\t\t\t\toffset = arg0[1];\n\t\t\t} else if ('color' in arg0 || 'offset' in arg0\n\t\t\t\t\t|| 'rampPoint' in arg0) {\n\t\t\t\tcolor = arg0.color;\n\t\t\t\toffset = arg0.offset || arg0.rampPoint || 0;\n\t\t\t}\n\t\t}\n\t\tthis.setColor(color);\n\t\tthis.setOffset(offset);\n\t},\n\n\tclone: function() {\n\t\treturn new GradientStop(this._color.clone(), this._offset);\n\t},\n\n\t_serialize: function(options, dictionary) {\n\t\tvar color = this._color,\n\t\t\toffset = this._offset;\n\t\treturn Base.serialize(offset == null ? [color] : [color, offset],\n\t\t\t\toptions, true, dictionary);\n\t},\n\n\t_changed: function() {\n\t\tif (this._owner)\n\t\t\tthis._owner._changed(129);\n\t},\n\n\tgetOffset: function() {\n\t\treturn this._offset;\n\t},\n\n\tsetOffset: function(offset) {\n\t\tthis._offset = offset;\n\t\tthis._changed();\n\t},\n\n\tgetRampPoint: '#getOffset',\n\tsetRampPoint: '#setOffset',\n\n\tgetColor: function() {\n\t\treturn this._color;\n\t},\n\n\tsetColor: function() {\n\t\tvar color = Color.read(arguments, 0, { clone: true });\n\t\tif (color)\n\t\t\tcolor._owner = this;\n\t\tthis._color = color;\n\t\tthis._changed();\n\t},\n\n\tequals: function(stop) {\n\t\treturn stop === this || stop && this._class === stop._class\n\t\t\t\t&& this._color.equals(stop._color)\n\t\t\t\t&& this._offset == stop._offset\n\t\t\t\t|| false;\n\t}\n});\n\nvar Style = Base.extend(new function() {\n\tvar itemDefaults = {\n\t\tfillColor: null,\n\t\tfillRule: 'nonzero',\n\t\tstrokeColor: null,\n\t\tstrokeWidth: 1,\n\t\tstrokeCap: 'butt',\n\t\tstrokeJoin: 'miter',\n\t\tstrokeScaling: true,\n\t\tmiterLimit: 10,\n\t\tdashOffset: 0,\n\t\tdashArray: [],\n\t\tshadowColor: null,\n\t\tshadowBlur: 0,\n\t\tshadowOffset: new Point(),\n\t\tselectedColor: null\n\t},\n\tgroupDefaults = Base.set({}, itemDefaults, {\n\t\tfontFamily: 'sans-serif',\n\t\tfontWeight: 'normal',\n\t\tfontSize: 12,\n\t\tleading: null,\n\t\tjustification: 'left'\n\t}),\n\ttextDefaults = Base.set({}, groupDefaults, {\n\t\tfillColor: new Color()\n\t}),\n\tflags = {\n\t\tstrokeWidth: 193,\n\t\tstrokeCap: 193,\n\t\tstrokeJoin: 193,\n\t\tstrokeScaling: 201,\n\t\tmiterLimit: 193,\n\t\tfontFamily: 9,\n\t\tfontWeight: 9,\n\t\tfontSize: 9,\n\t\tfont: 9,\n\t\tleading: 9,\n\t\tjustification: 9\n\t},\n\titem = {\n\t\tbeans: true\n\t},\n\tfields = {\n\t\t_class: 'Style',\n\t\tbeans: true,\n\n\t\tinitialize: function Style(style, _owner, _project) {\n\t\t\tthis._values = {};\n\t\t\tthis._owner = _owner;\n\t\t\tthis._project = _owner && _owner._project || _project\n\t\t\t\t\t|| paper.project;\n\t\t\tthis._defaults = !_owner || _owner instanceof Group ? groupDefaults\n\t\t\t\t\t: _owner instanceof TextItem ? textDefaults\n\t\t\t\t\t: itemDefaults;\n\t\t\tif (style)\n\t\t\t\tthis.set(style);\n\t\t}\n\t};\n\n\tBase.each(groupDefaults, function(value, key) {\n\t\tvar isColor = /Color$/.test(key),\n\t\t\tisPoint = key === 'shadowOffset',\n\t\t\tpart = Base.capitalize(key),\n\t\t\tflag = flags[key],\n\t\t\tset = 'set' + part,\n\t\t\tget = 'get' + part;\n\n\t\tfields[set] = function(value) {\n\t\t\tvar owner = this._owner,\n\t\t\t\tchildren = owner && owner._children;\n\t\t\tif (children && children.length > 0\n\t\t\t\t\t&& !(owner instanceof CompoundPath)) {\n\t\t\t\tfor (var i = 0, l = children.length; i < l; i++)\n\t\t\t\t\tchildren[i]._style[set](value);\n\t\t\t} else if (key in this._defaults) {\n\t\t\t\tvar old = this._values[key];\n\t\t\t\tif (old !== value) {\n\t\t\t\t\tif (isColor) {\n\t\t\t\t\t\tif (old && old._owner !== undefined) {\n\t\t\t\t\t\t\told._owner = undefined;\n\t\t\t\t\t\t\told._canvasStyle = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (value && value.constructor === Color) {\n\t\t\t\t\t\t\tif (value._owner)\n\t\t\t\t\t\t\t\tvalue = value.clone();\n\t\t\t\t\t\t\tvalue._owner = owner;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis._values[key] = value;\n\t\t\t\t\tif (owner)\n\t\t\t\t\t\towner._changed(flag || 129);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tfields[get] = function(_dontMerge) {\n\t\t\tvar owner = this._owner,\n\t\t\t\tchildren = owner && owner._children,\n\t\t\t\tvalue;\n\t\t\tif (key in this._defaults && (!children || !children.length\n\t\t\t\t\t|| _dontMerge || owner instanceof CompoundPath)) {\n\t\t\t\tvar value = this._values[key];\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\tvalue = this._defaults[key];\n\t\t\t\t\tif (value && value.clone)\n\t\t\t\t\t\tvalue = value.clone();\n\t\t\t\t} else {\n\t\t\t\t\tvar ctor = isColor ? Color : isPoint ? Point : null;\n\t\t\t\t\tif (ctor && !(value && value.constructor === ctor)) {\n\t\t\t\t\t\tthis._values[key] = value = ctor.read([value], 0,\n\t\t\t\t\t\t\t\t{ readNull: true, clone: true });\n\t\t\t\t\t\tif (value && isColor)\n\t\t\t\t\t\t\tvalue._owner = owner;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (children) {\n\t\t\t\tfor (var i = 0, l = children.length; i < l; i++) {\n\t\t\t\t\tvar childValue = children[i]._style[get]();\n\t\t\t\t\tif (!i) {\n\t\t\t\t\t\tvalue = childValue;\n\t\t\t\t\t} else if (!Base.equals(value, childValue)) {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value;\n\t\t};\n\n\t\titem[get] = function(_dontMerge) {\n\t\t\treturn this._style[get](_dontMerge);\n\t\t};\n\n\t\titem[set] = function(value) {\n\t\t\tthis._style[set](value);\n\t\t};\n\t});\n\n\tBase.each({\n\t\tFont: 'FontFamily',\n\t\tWindingRule: 'FillRule'\n\t}, function(value, key) {\n\t\tvar get = 'get' + key,\n\t\t\tset = 'set' + key;\n\t\tfields[get] = item[get] = '#get' + value;\n\t\tfields[set] = item[set] = '#set' + value;\n\t});\n\n\tItem.inject(item);\n\treturn fields;\n}, {\n\tset: function(style) {\n\t\tvar isStyle = style instanceof Style,\n\t\t\tvalues = isStyle ? style._values : style;\n\t\tif (values) {\n\t\t\tfor (var key in values) {\n\t\t\t\tif (key in this._defaults) {\n\t\t\t\t\tvar value = values[key];\n\t\t\t\t\tthis[key] = value && isStyle && value.clone\n\t\t\t\t\t\t\t? value.clone() : value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tequals: function(style) {\n\t\tfunction compare(style1, style2, secondary) {\n\t\t\tvar values1 = style1._values,\n\t\t\t\tvalues2 = style2._values,\n\t\t\t\tdefaults2 = style2._defaults;\n\t\t\tfor (var key in values1) {\n\t\t\t\tvar value1 = values1[key],\n\t\t\t\t\tvalue2 = values2[key];\n\t\t\t\tif (!(secondary && key in values2) && !Base.equals(value1,\n\t\t\t\t\t\tvalue2 === undefined ? defaults2[key] : value2))\n\t\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\treturn style === this || style && this._class === style._class\n\t\t\t\t&& compare(this, style)\n\t\t\t\t&& compare(style, this, true)\n\t\t\t\t|| false;\n\t},\n\n\t_dispose: function() {\n\t\tvar color;\n\t\tcolor = this.getFillColor();\n\t\tif (color) color._canvasStyle = null;\n\t\tcolor = this.getStrokeColor();\n\t\tif (color) color._canvasStyle = null;\n\t\tcolor = this.getShadowColor();\n\t\tif (color) color._canvasStyle = null;\n\t},\n\n\thasFill: function() {\n\t\tvar color = this.getFillColor();\n\t\treturn !!color && color.alpha > 0;\n\t},\n\n\thasStroke: function() {\n\t\tvar color = this.getStrokeColor();\n\t\treturn !!color && color.alpha > 0 && this.getStrokeWidth() > 0;\n\t},\n\n\thasShadow: function() {\n\t\tvar color = this.getShadowColor();\n\t\treturn !!color && color.alpha > 0 && (this.getShadowBlur() > 0\n\t\t\t\t|| !this.getShadowOffset().isZero());\n\t},\n\n\tgetView: function() {\n\t\treturn this._project._view;\n\t},\n\n\tgetFontStyle: function() {\n\t\tvar fontSize = this.getFontSize();\n\t\treturn this.getFontWeight()\n\t\t\t\t+ ' ' + fontSize + (/[a-z]/i.test(fontSize + '') ? ' ' : 'px ')\n\t\t\t\t+ this.getFontFamily();\n\t},\n\n\tgetFont: '#getFontFamily',\n\tsetFont: '#setFontFamily',\n\n\tgetLeading: function getLeading() {\n\t\tvar leading = getLeading.base.call(this),\n\t\t\tfontSize = this.getFontSize();\n\t\tif (/pt|em|%|px/.test(fontSize))\n\t\t\tfontSize = this.getView().getPixelSize(fontSize);\n\t\treturn leading != null ? leading : fontSize * 1.2;\n\t}\n\n});\n\nvar DomElement = new function() {\n\tfunction handlePrefix(el, name, set, value) {\n\t\tvar prefixes = ['', 'webkit', 'moz', 'Moz', 'ms', 'o'],\n\t\t\tsuffix = name[0].toUpperCase() + name.substring(1);\n\t\tfor (var i = 0; i < 6; i++) {\n\t\t\tvar prefix = prefixes[i],\n\t\t\t\tkey = prefix ? prefix + suffix : name;\n\t\t\tif (key in el) {\n\t\t\t\tif (set) {\n\t\t\t\t\tel[key] = value;\n\t\t\t\t} else {\n\t\t\t\t\treturn el[key];\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tgetStyles: function(el) {\n\t\t\tvar doc = el && el.nodeType !== 9 ? el.ownerDocument : el,\n\t\t\t\tview = doc && doc.defaultView;\n\t\t\treturn view && view.getComputedStyle(el, '');\n\t\t},\n\n\t\tgetBounds: function(el, viewport) {\n\t\t\tvar doc = el.ownerDocument,\n\t\t\t\tbody = doc.body,\n\t\t\t\thtml = doc.documentElement,\n\t\t\t\trect;\n\t\t\ttry {\n\t\t\t\trect = el.getBoundingClientRect();\n\t\t\t} catch (e) {\n\t\t\t\trect = { left: 0, top: 0, width: 0, height: 0 };\n\t\t\t}\n\t\t\tvar x = rect.left - (html.clientLeft || body.clientLeft || 0),\n\t\t\t\ty = rect.top - (html.clientTop || body.clientTop || 0);\n\t\t\tif (!viewport) {\n\t\t\t\tvar view = doc.defaultView;\n\t\t\t\tx += view.pageXOffset || html.scrollLeft || body.scrollLeft;\n\t\t\t\ty += view.pageYOffset || html.scrollTop || body.scrollTop;\n\t\t\t}\n\t\t\treturn new Rectangle(x, y, rect.width, rect.height);\n\t\t},\n\n\t\tgetViewportBounds: function(el) {\n\t\t\tvar doc = el.ownerDocument,\n\t\t\t\tview = doc.defaultView,\n\t\t\t\thtml = doc.documentElement;\n\t\t\treturn new Rectangle(0, 0,\n\t\t\t\tview.innerWidth || html.clientWidth,\n\t\t\t\tview.innerHeight || html.clientHeight\n\t\t\t);\n\t\t},\n\n\t\tgetOffset: function(el, viewport) {\n\t\t\treturn DomElement.getBounds(el, viewport).getPoint();\n\t\t},\n\n\t\tgetSize: function(el) {\n\t\t\treturn DomElement.getBounds(el, true).getSize();\n\t\t},\n\n\t\tisInvisible: function(el) {\n\t\t\treturn DomElement.getSize(el).equals(new Size(0, 0));\n\t\t},\n\n\t\tisInView: function(el) {\n\t\t\treturn !DomElement.isInvisible(el)\n\t\t\t\t\t&& DomElement.getViewportBounds(el).intersects(\n\t\t\t\t\t\tDomElement.getBounds(el, true));\n\t\t},\n\n\t\tisInserted: function(el) {\n\t\t\treturn document.body.contains(el);\n\t\t},\n\n\t\tgetPrefixed: function(el, name) {\n\t\t\treturn el && handlePrefix(el, name);\n\t\t},\n\n\t\tsetPrefixed: function(el, name, value) {\n\t\t\tif (typeof name === 'object') {\n\t\t\t\tfor (var key in name)\n\t\t\t\t\thandlePrefix(el, key, true, name[key]);\n\t\t\t} else {\n\t\t\t\thandlePrefix(el, name, true, value);\n\t\t\t}\n\t\t}\n\t};\n};\n\nvar DomEvent = {\n\tadd: function(el, events) {\n\t\tif (el) {\n\t\t\tfor (var type in events) {\n\t\t\t\tvar func = events[type],\n\t\t\t\t\tparts = type.split(/[\\s,]+/g);\n\t\t\t\tfor (var i = 0, l = parts.length; i < l; i++) {\n\t\t\t\t\tvar name = parts[i];\n\t\t\t\t\tvar options = (\n\t\t\t\t\t\tel === document\n\t\t\t\t\t\t&& (name === 'touchstart' || name === 'touchmove')\n\t\t\t\t\t) ? { passive: false } : false;\n\t\t\t\t\tel.addEventListener(name, func, options);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremove: function(el, events) {\n\t\tif (el) {\n\t\t\tfor (var type in events) {\n\t\t\t\tvar func = events[type],\n\t\t\t\t\tparts = type.split(/[\\s,]+/g);\n\t\t\t\tfor (var i = 0, l = parts.length; i < l; i++)\n\t\t\t\t\tel.removeEventListener(parts[i], func, false);\n\t\t\t}\n\t\t}\n\t},\n\n\tgetPoint: function(event) {\n\t\tvar pos = event.targetTouches\n\t\t\t\t? event.targetTouches.length\n\t\t\t\t\t? event.targetTouches[0]\n\t\t\t\t\t: event.changedTouches[0]\n\t\t\t\t: event;\n\t\treturn new Point(\n\t\t\tpos.pageX || pos.clientX + document.documentElement.scrollLeft,\n\t\t\tpos.pageY || pos.clientY + document.documentElement.scrollTop\n\t\t);\n\t},\n\n\tgetTarget: function(event) {\n\t\treturn event.target || event.srcElement;\n\t},\n\n\tgetRelatedTarget: function(event) {\n\t\treturn event.relatedTarget || event.toElement;\n\t},\n\n\tgetOffset: function(event, target) {\n\t\treturn DomEvent.getPoint(event).subtract(DomElement.getOffset(\n\t\t\t\ttarget || DomEvent.getTarget(event)));\n\t}\n};\n\nDomEvent.requestAnimationFrame = new function() {\n\tvar nativeRequest = DomElement.getPrefixed(window, 'requestAnimationFrame'),\n\t\trequested = false,\n\t\tcallbacks = [],\n\t\ttimer;\n\n\tfunction handleCallbacks() {\n\t\tvar functions = callbacks;\n\t\tcallbacks = [];\n\t\tfor (var i = 0, l = functions.length; i < l; i++)\n\t\t\tfunctions[i]();\n\t\trequested = nativeRequest && callbacks.length;\n\t\tif (requested)\n\t\t\tnativeRequest(handleCallbacks);\n\t}\n\n\treturn function(callback) {\n\t\tcallbacks.push(callback);\n\t\tif (nativeRequest) {\n\t\t\tif (!requested) {\n\t\t\t\tnativeRequest(handleCallbacks);\n\t\t\t\trequested = true;\n\t\t\t}\n\t\t} else if (!timer) {\n\t\t\ttimer = setInterval(handleCallbacks, 1000 / 60);\n\t\t}\n\t};\n};\n\nvar View = Base.extend(Emitter, {\n\t_class: 'View',\n\n\tinitialize: function View(project, element) {\n\n\t\tfunction getSize(name) {\n\t\t\treturn element[name] || parseInt(element.getAttribute(name), 10);\n\t\t}\n\n\t\tfunction getCanvasSize() {\n\t\t\tvar size = DomElement.getSize(element);\n\t\t\treturn size.isNaN() || size.isZero()\n\t\t\t\t\t? new Size(getSize('width'), getSize('height'))\n\t\t\t\t\t: size;\n\t\t}\n\n\t\tvar size;\n\t\tif (window && element) {\n\t\t\tthis._id = element.getAttribute('id');\n\t\t\tif (this._id == null)\n\t\t\t\telement.setAttribute('id', this._id = 'view-' + View._id++);\n\t\t\tDomEvent.add(element, this._viewEvents);\n\t\t\tvar none = 'none';\n\t\t\tDomElement.setPrefixed(element.style, {\n\t\t\t\tuserDrag: none,\n\t\t\t\tuserSelect: none,\n\t\t\t\ttouchCallout: none,\n\t\t\t\tcontentZooming: none,\n\t\t\t\ttapHighlightColor: 'rgba(0,0,0,0)'\n\t\t\t});\n\n\t\t\tif (PaperScope.hasAttribute(element, 'resize')) {\n\t\t\t\tvar that = this;\n\t\t\t\tDomEvent.add(window, this._windowEvents = {\n\t\t\t\t\tresize: function() {\n\t\t\t\t\t\tthat.setViewSize(getCanvasSize());\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tsize = getCanvasSize();\n\n\t\t\tif (PaperScope.hasAttribute(element, 'stats')\n\t\t\t\t\t&& typeof Stats !== 'undefined') {\n\t\t\t\tthis._stats = new Stats();\n\t\t\t\tvar stats = this._stats.domElement,\n\t\t\t\t\tstyle = stats.style,\n\t\t\t\t\toffset = DomElement.getOffset(element);\n\t\t\t\tstyle.position = 'absolute';\n\t\t\t\tstyle.left = offset.x + 'px';\n\t\t\t\tstyle.top = offset.y + 'px';\n\t\t\t\tdocument.body.appendChild(stats);\n\t\t\t}\n\t\t} else {\n\t\t\tsize = new Size(element);\n\t\t\telement = null;\n\t\t}\n\t\tthis._project = project;\n\t\tthis._scope = project._scope;\n\t\tthis._element = element;\n\t\tif (!this._pixelRatio)\n\t\t\tthis._pixelRatio = window && window.devicePixelRatio || 1;\n\t\tthis._setElementSize(size.width, size.height);\n\t\tthis._viewSize = size;\n\t\tView._views.push(this);\n\t\tView._viewsById[this._id] = this;\n\t\t(this._matrix = new Matrix())._owner = this;\n\t\tif (!View._focused)\n\t\t\tView._focused = this;\n\t\tthis._frameItems = {};\n\t\tthis._frameItemCount = 0;\n\t\tthis._itemEvents = { native: {}, virtual: {} };\n\t\tthis._autoUpdate = !paper.agent.node;\n\t\tthis._needsUpdate = false;\n\t},\n\n\tremove: function() {\n\t\tif (!this._project)\n\t\t\treturn false;\n\t\tif (View._focused === this)\n\t\t\tView._focused = null;\n\t\tView._views.splice(View._views.indexOf(this), 1);\n\t\tdelete View._viewsById[this._id];\n\t\tvar project = this._project;\n\t\tif (project._view === this)\n\t\t\tproject._view = null;\n\t\tDomEvent.remove(this._element, this._viewEvents);\n\t\tDomEvent.remove(window, this._windowEvents);\n\t\tthis._element = this._project = null;\n\t\tthis.off('frame');\n\t\tthis._animate = false;\n\t\tthis._frameItems = {};\n\t\treturn true;\n\t},\n\n\t_events: Base.each(\n\t\tItem._itemHandlers.concat(['onResize', 'onKeyDown', 'onKeyUp']),\n\t\tfunction(name) {\n\t\t\tthis[name] = {};\n\t\t}, {\n\t\t\tonFrame: {\n\t\t\t\tinstall: function() {\n\t\t\t\t\tthis.play();\n\t\t\t\t},\n\n\t\t\t\tuninstall: function() {\n\t\t\t\t\tthis.pause();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t),\n\n\t_animate: false,\n\t_time: 0,\n\t_count: 0,\n\n\tgetAutoUpdate: function() {\n\t\treturn this._autoUpdate;\n\t},\n\n\tsetAutoUpdate: function(autoUpdate) {\n\t\tthis._autoUpdate = autoUpdate;\n\t\tif (autoUpdate)\n\t\t\tthis.requestUpdate();\n\t},\n\n\tupdate: function() {\n\t},\n\n\tdraw: function() {\n\t\tthis.update();\n\t},\n\n\trequestUpdate: function() {\n\t\tif (!this._requested) {\n\t\t\tvar that = this;\n\t\t\tDomEvent.requestAnimationFrame(function() {\n\t\t\t\tthat._requested = false;\n\t\t\t\tif (that._animate) {\n\t\t\t\t\tthat.requestUpdate();\n\t\t\t\t\tvar element = that._element;\n\t\t\t\t\tif ((!DomElement.getPrefixed(document, 'hidden')\n\t\t\t\t\t\t\t|| PaperScope.getAttribute(element, 'keepalive')\n\t\t\t\t\t\t\t\t=== 'true') && DomElement.isInView(element)) {\n\t\t\t\t\t\tthat._handleFrame();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (that._autoUpdate)\n\t\t\t\t\tthat.update();\n\t\t\t});\n\t\t\tthis._requested = true;\n\t\t}\n\t},\n\n\tplay: function() {\n\t\tthis._animate = true;\n\t\tthis.requestUpdate();\n\t},\n\n\tpause: function() {\n\t\tthis._animate = false;\n\t},\n\n\t_handleFrame: function() {\n\t\tpaper = this._scope;\n\t\tvar now = Date.now() / 1000,\n\t\t\tdelta = this._last ? now - this._last : 0;\n\t\tthis._last = now;\n\t\tthis.emit('frame', new Base({\n\t\t\tdelta: delta,\n\t\t\ttime: this._time += delta,\n\t\t\tcount: this._count++\n\t\t}));\n\t\tif (this._stats)\n\t\t\tthis._stats.update();\n\t},\n\n\t_animateItem: function(item, animate) {\n\t\tvar items = this._frameItems;\n\t\tif (animate) {\n\t\t\titems[item._id] = {\n\t\t\t\titem: item,\n\t\t\t\ttime: 0,\n\t\t\t\tcount: 0\n\t\t\t};\n\t\t\tif (++this._frameItemCount === 1)\n\t\t\t\tthis.on('frame', this._handleFrameItems);\n\t\t} else {\n\t\t\tdelete items[item._id];\n\t\t\tif (--this._frameItemCount === 0) {\n\t\t\t\tthis.off('frame', this._handleFrameItems);\n\t\t\t}\n\t\t}\n\t},\n\n\t_handleFrameItems: function(event) {\n\t\tfor (var i in this._frameItems) {\n\t\t\tvar entry = this._frameItems[i];\n\t\t\tentry.item.emit('frame', new Base(event, {\n\t\t\t\ttime: entry.time += event.delta,\n\t\t\t\tcount: entry.count++\n\t\t\t}));\n\t\t}\n\t},\n\n\t_changed: function() {\n\t\tthis._project._changed(4097);\n\t\tthis._bounds = this._decomposed = undefined;\n\t},\n\n\tgetElement: function() {\n\t\treturn this._element;\n\t},\n\n\tgetPixelRatio: function() {\n\t\treturn this._pixelRatio;\n\t},\n\n\tgetResolution: function() {\n\t\treturn this._pixelRatio * 72;\n\t},\n\n\tgetViewSize: function() {\n\t\tvar size = this._viewSize;\n\t\treturn new LinkedSize(size.width, size.height, this, 'setViewSize');\n\t},\n\n\tsetViewSize: function() {\n\t\tvar size = Size.read(arguments),\n\t\t\tdelta = size.subtract(this._viewSize);\n\t\tif (delta.isZero())\n\t\t\treturn;\n\t\tthis._setElementSize(size.width, size.height);\n\t\tthis._viewSize.set(size);\n\t\tthis._changed();\n\t\tthis.emit('resize', { size: size, delta: delta });\n\t\tif (this._autoUpdate) {\n\t\t\tthis.update();\n\t\t}\n\t},\n\n\t_setElementSize: function(width, height) {\n\t\tvar element = this._element;\n\t\tif (element) {\n\t\t\tif (element.width !== width)\n\t\t\t\telement.width = width;\n\t\t\tif (element.height !== height)\n\t\t\t\telement.height = height;\n\t\t}\n\t},\n\n\tgetBounds: function() {\n\t\tif (!this._bounds)\n\t\t\tthis._bounds = this._matrix.inverted()._transformBounds(\n\t\t\t\t\tnew Rectangle(new Point(), this._viewSize));\n\t\treturn this._bounds;\n\t},\n\n\tgetSize: function() {\n\t\treturn this.getBounds().getSize();\n\t},\n\n\tisVisible: function() {\n\t\treturn DomElement.isInView(this._element);\n\t},\n\n\tisInserted: function() {\n\t\treturn DomElement.isInserted(this._element);\n\t},\n\n\tgetPixelSize: function(size) {\n\t\tvar element = this._element,\n\t\t\tpixels;\n\t\tif (element) {\n\t\t\tvar parent = element.parentNode,\n\t\t\t\ttemp = document.createElement('div');\n\t\t\ttemp.style.fontSize = size;\n\t\t\tparent.appendChild(temp);\n\t\t\tpixels = parseFloat(DomElement.getStyles(temp).fontSize);\n\t\t\tparent.removeChild(temp);\n\t\t} else {\n\t\t\tpixels = parseFloat(pixels);\n\t\t}\n\t\treturn pixels;\n\t},\n\n\tgetTextWidth: function(font, lines) {\n\t\treturn 0;\n\t}\n}, Base.each(['rotate', 'scale', 'shear', 'skew'], function(key) {\n\tvar rotate = key === 'rotate';\n\tthis[key] = function() {\n\t\tvar value = (rotate ? Base : Point).read(arguments),\n\t\t\tcenter = Point.read(arguments, 0, { readNull: true });\n\t\treturn this.transform(new Matrix()[key](value,\n\t\t\t\tcenter || this.getCenter(true)));\n\t};\n}, {\n\t_decompose: function() {\n\t\treturn this._decomposed || (this._decomposed = this._matrix.decompose());\n\t},\n\n\ttranslate: function() {\n\t\tvar mx = new Matrix();\n\t\treturn this.transform(mx.translate.apply(mx, arguments));\n\t},\n\n\tgetCenter: function() {\n\t\treturn this.getBounds().getCenter();\n\t},\n\n\tsetCenter: function() {\n\t\tvar center = Point.read(arguments);\n\t\tthis.translate(this.getCenter().subtract(center));\n\t},\n\n\tgetZoom: function() {\n\t\tvar scaling = this._decompose().scaling;\n\t\treturn (scaling.x + scaling.y) / 2;\n\t},\n\n\tsetZoom: function(zoom) {\n\t\tthis.transform(new Matrix().scale(zoom / this.getZoom(),\n\t\t\tthis.getCenter()));\n\t},\n\n\tgetRotation: function() {\n\t\treturn this._decompose().rotation;\n\t},\n\n\tsetRotation: function(rotation) {\n\t\tvar current = this.getRotation();\n\t\tif (current != null && rotation != null) {\n\t\t\tthis.rotate(rotation - current);\n\t\t}\n\t},\n\n\tgetScaling: function() {\n\t\tvar scaling = this._decompose().scaling;\n\t\treturn new LinkedPoint(scaling.x, scaling.y, this, 'setScaling');\n\t},\n\n\tsetScaling: function() {\n\t\tvar current = this.getScaling(),\n\t\t\tscaling = Point.read(arguments, 0, { clone: true, readNull: true });\n\t\tif (current && scaling) {\n\t\t\tthis.scale(scaling.x / current.x, scaling.y / current.y);\n\t\t}\n\t},\n\n\tgetMatrix: function() {\n\t\treturn this._matrix;\n\t},\n\n\tsetMatrix: function() {\n\t\tvar matrix = this._matrix;\n\t\tmatrix.initialize.apply(matrix, arguments);\n\t},\n\n\ttransform: function(matrix) {\n\t\tthis._matrix.append(matrix);\n\t},\n\n\tscrollBy: function() {\n\t\tthis.translate(Point.read(arguments).negate());\n\t}\n}), {\n\n\tprojectToView: function() {\n\t\treturn this._matrix._transformPoint(Point.read(arguments));\n\t},\n\n\tviewToProject: function() {\n\t\treturn this._matrix._inverseTransform(Point.read(arguments));\n\t},\n\n\tgetEventPoint: function(event) {\n\t\treturn this.viewToProject(DomEvent.getOffset(event, this._element));\n\t},\n\n}, {\n\tstatics: {\n\t\t_views: [],\n\t\t_viewsById: {},\n\t\t_id: 0,\n\n\t\tcreate: function(project, element) {\n\t\t\tif (document && typeof element === 'string')\n\t\t\t\telement = document.getElementById(element);\n\t\t\tvar ctor = window ? CanvasView : View;\n\t\t\treturn new ctor(project, element);\n\t\t}\n\t}\n},\nnew function() {\n\tif (!window)\n\t\treturn;\n\tvar prevFocus,\n\t\ttempFocus,\n\t\tdragging = false,\n\t\tmouseDown = false;\n\n\tfunction getView(event) {\n\t\tvar target = DomEvent.getTarget(event);\n\t\treturn target.getAttribute && View._viewsById[\n\t\t\t\ttarget.getAttribute('id')];\n\t}\n\n\tfunction updateFocus() {\n\t\tvar view = View._focused;\n\t\tif (!view || !view.isVisible()) {\n\t\t\tfor (var i = 0, l = View._views.length; i < l; i++) {\n\t\t\t\tif ((view = View._views[i]).isVisible()) {\n\t\t\t\t\tView._focused = tempFocus = view;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction handleMouseMove(view, event, point) {\n\t\tview._handleMouseEvent('mousemove', event, point);\n\t}\n\n\tvar navigator = window.navigator,\n\t\tmousedown, mousemove, mouseup;\n\tif (navigator.pointerEnabled || navigator.msPointerEnabled) {\n\t\tmousedown = 'pointerdown MSPointerDown';\n\t\tmousemove = 'pointermove MSPointerMove';\n\t\tmouseup = 'pointerup pointercancel MSPointerUp MSPointerCancel';\n\t} else {\n\t\tmousedown = 'touchstart';\n\t\tmousemove = 'touchmove';\n\t\tmouseup = 'touchend touchcancel';\n\t\tif (!('ontouchstart' in window && navigator.userAgent.match(\n\t\t\t\t/mobile|tablet|ip(ad|hone|od)|android|silk/i))) {\n\t\t\tmousedown += ' mousedown';\n\t\t\tmousemove += ' mousemove';\n\t\t\tmouseup += ' mouseup';\n\t\t}\n\t}\n\n\tvar viewEvents = {},\n\t\tdocEvents = {\n\t\t\tmouseout: function(event) {\n\t\t\t\tvar view = View._focused,\n\t\t\t\t\ttarget = DomEvent.getRelatedTarget(event);\n\t\t\t\tif (view && (!target || target.nodeName === 'HTML')) {\n\t\t\t\t\tvar offset = DomEvent.getOffset(event, view._element),\n\t\t\t\t\t\tx = offset.x,\n\t\t\t\t\t\tabs = Math.abs,\n\t\t\t\t\t\tax = abs(x),\n\t\t\t\t\t\tmax = 1 << 25,\n\t\t\t\t\t\tdiff = ax - max;\n\t\t\t\t\toffset.x = abs(diff) < ax ? diff * (x < 0 ? -1 : 1) : x;\n\t\t\t\t\thandleMouseMove(view, event, view.viewToProject(offset));\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tscroll: updateFocus\n\t\t};\n\n\tviewEvents[mousedown] = function(event) {\n\t\tvar view = View._focused = getView(event);\n\t\tif (!dragging) {\n\t\t\tdragging = true;\n\t\t\tview._handleMouseEvent('mousedown', event);\n\t\t}\n\t};\n\n\tdocEvents[mousemove] = function(event) {\n\t\tvar view = View._focused;\n\t\tif (!mouseDown) {\n\t\t\tvar target = getView(event);\n\t\t\tif (target) {\n\t\t\t\tif (view !== target) {\n\t\t\t\t\tif (view)\n\t\t\t\t\t\thandleMouseMove(view, event);\n\t\t\t\t\tif (!prevFocus)\n\t\t\t\t\t\tprevFocus = view;\n\t\t\t\t\tview = View._focused = tempFocus = target;\n\t\t\t\t}\n\t\t\t} else if (tempFocus && tempFocus === view) {\n\t\t\t\tif (prevFocus && !prevFocus.isInserted())\n\t\t\t\t\tprevFocus = null;\n\t\t\t\tview = View._focused = prevFocus;\n\t\t\t\tprevFocus = null;\n\t\t\t\tupdateFocus();\n\t\t\t}\n\t\t}\n\t\tif (view)\n\t\t\thandleMouseMove(view, event);\n\t};\n\n\tdocEvents[mousedown] = function() {\n\t\tmouseDown = true;\n\t};\n\n\tdocEvents[mouseup] = function(event) {\n\t\tvar view = View._focused;\n\t\tif (view && dragging)\n\t\t\tview._handleMouseEvent('mouseup', event);\n\t\tmouseDown = dragging = false;\n\t};\n\n\tDomEvent.add(document, docEvents);\n\n\tDomEvent.add(window, {\n\t\tload: updateFocus\n\t});\n\n\tvar called = false,\n\t\tprevented = false,\n\t\tfallbacks = {\n\t\t\tdoubleclick: 'click',\n\t\t\tmousedrag: 'mousemove'\n\t\t},\n\t\twasInView = false,\n\t\toverView,\n\t\tdownPoint,\n\t\tlastPoint,\n\t\tdownItem,\n\t\toverItem,\n\t\tdragItem,\n\t\tclickItem,\n\t\tclickTime,\n\t\tdblClick;\n\n\tfunction emitMouseEvent(obj, target, type, event, point, prevPoint,\n\t\t\tstopItem) {\n\t\tvar stopped = false,\n\t\t\tmouseEvent;\n\n\t\tfunction emit(obj, type) {\n\t\t\tif (obj.responds(type)) {\n\t\t\t\tif (!mouseEvent) {\n\t\t\t\t\tmouseEvent = new MouseEvent(type, event, point,\n\t\t\t\t\t\t\ttarget || obj,\n\t\t\t\t\t\t\tprevPoint ? point.subtract(prevPoint) : null);\n\t\t\t\t}\n\t\t\t\tif (obj.emit(type, mouseEvent)) {\n\t\t\t\t\tcalled = true;\n\t\t\t\t\tif (mouseEvent.prevented)\n\t\t\t\t\t\tprevented = true;\n\t\t\t\t\tif (mouseEvent.stopped)\n\t\t\t\t\t\treturn stopped = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar fallback = fallbacks[type];\n\t\t\t\tif (fallback)\n\t\t\t\t\treturn emit(obj, fallback);\n\t\t\t}\n\t\t}\n\n\t\twhile (obj && obj !== stopItem) {\n\t\t\tif (emit(obj, type))\n\t\t\t\tbreak;\n\t\t\tobj = obj._parent;\n\t\t}\n\t\treturn stopped;\n\t}\n\n\tfunction emitMouseEvents(view, hitItem, type, event, point, prevPoint) {\n\t\tview._project.removeOn(type);\n\t\tprevented = called = false;\n\t\treturn (dragItem && emitMouseEvent(dragItem, null, type, event,\n\t\t\t\t\tpoint, prevPoint)\n\t\t\t|| hitItem && hitItem !== dragItem\n\t\t\t\t&& !hitItem.isDescendant(dragItem)\n\t\t\t\t&& emitMouseEvent(hitItem, null, type === 'mousedrag' ?\n\t\t\t\t\t'mousemove' : type, event, point, prevPoint, dragItem)\n\t\t\t|| emitMouseEvent(view, dragItem || hitItem || view, type, event,\n\t\t\t\t\tpoint, prevPoint));\n\t}\n\n\tvar itemEventsMap = {\n\t\tmousedown: {\n\t\t\tmousedown: 1,\n\t\t\tmousedrag: 1,\n\t\t\tclick: 1,\n\t\t\tdoubleclick: 1\n\t\t},\n\t\tmouseup: {\n\t\t\tmouseup: 1,\n\t\t\tmousedrag: 1,\n\t\t\tclick: 1,\n\t\t\tdoubleclick: 1\n\t\t},\n\t\tmousemove: {\n\t\t\tmousedrag: 1,\n\t\t\tmousemove: 1,\n\t\t\tmouseenter: 1,\n\t\t\tmouseleave: 1\n\t\t}\n\t};\n\n\treturn {\n\t\t_viewEvents: viewEvents,\n\n\t\t_handleMouseEvent: function(type, event, point) {\n\t\t\tvar itemEvents = this._itemEvents,\n\t\t\t\thitItems = itemEvents.native[type],\n\t\t\t\tnativeMove = type === 'mousemove',\n\t\t\t\ttool = this._scope.tool,\n\t\t\t\tview = this;\n\n\t\t\tfunction responds(type) {\n\t\t\t\treturn itemEvents.virtual[type] || view.responds(type)\n\t\t\t\t\t\t|| tool && tool.responds(type);\n\t\t\t}\n\n\t\t\tif (nativeMove && dragging && responds('mousedrag'))\n\t\t\t\ttype = 'mousedrag';\n\t\t\tif (!point)\n\t\t\t\tpoint = this.getEventPoint(event);\n\n\t\t\tvar inView = this.getBounds().contains(point),\n\t\t\t\thit = hitItems && inView && view._project.hitTest(point, {\n\t\t\t\t\ttolerance: 0,\n\t\t\t\t\tfill: true,\n\t\t\t\t\tstroke: true\n\t\t\t\t}),\n\t\t\t\thitItem = hit && hit.item || null,\n\t\t\t\thandle = false,\n\t\t\t\tmouse = {};\n\t\t\tmouse[type.substr(5)] = true;\n\n\t\t\tif (hitItems && hitItem !== overItem) {\n\t\t\t\tif (overItem) {\n\t\t\t\t\temitMouseEvent(overItem, null, 'mouseleave', event, point);\n\t\t\t\t}\n\t\t\t\tif (hitItem) {\n\t\t\t\t\temitMouseEvent(hitItem, null, 'mouseenter', event, point);\n\t\t\t\t}\n\t\t\t\toverItem = hitItem;\n\t\t\t}\n\t\t\tif (wasInView ^ inView) {\n\t\t\t\temitMouseEvent(this, null, inView ? 'mouseenter' : 'mouseleave',\n\t\t\t\t\t\tevent, point);\n\t\t\t\toverView = inView ? this : null;\n\t\t\t\thandle = true;\n\t\t\t}\n\t\t\tif ((inView || mouse.drag) && !point.equals(lastPoint)) {\n\t\t\t\temitMouseEvents(this, hitItem, nativeMove ? type : 'mousemove',\n\t\t\t\t\t\tevent, point, lastPoint);\n\t\t\t\thandle = true;\n\t\t\t}\n\t\t\twasInView = inView;\n\t\t\tif (mouse.down && inView || mouse.up && downPoint) {\n\t\t\t\temitMouseEvents(this, hitItem, type, event, point, downPoint);\n\t\t\t\tif (mouse.down) {\n\t\t\t\t\tdblClick = hitItem === clickItem\n\t\t\t\t\t\t&& (Date.now() - clickTime < 300);\n\t\t\t\t\tdownItem = clickItem = hitItem;\n\t\t\t\t\tif (!prevented && hitItem) {\n\t\t\t\t\t\tvar item = hitItem;\n\t\t\t\t\t\twhile (item && !item.responds('mousedrag'))\n\t\t\t\t\t\t\titem = item._parent;\n\t\t\t\t\t\tif (item)\n\t\t\t\t\t\t\tdragItem = hitItem;\n\t\t\t\t\t}\n\t\t\t\t\tdownPoint = point;\n\t\t\t\t} else if (mouse.up) {\n\t\t\t\t\tif (!prevented && hitItem === downItem) {\n\t\t\t\t\t\tclickTime = Date.now();\n\t\t\t\t\t\temitMouseEvents(this, hitItem, dblClick ? 'doubleclick'\n\t\t\t\t\t\t\t\t: 'click', event, point, downPoint);\n\t\t\t\t\t\tdblClick = false;\n\t\t\t\t\t}\n\t\t\t\t\tdownItem = dragItem = null;\n\t\t\t\t}\n\t\t\t\twasInView = false;\n\t\t\t\thandle = true;\n\t\t\t}\n\t\t\tlastPoint = point;\n\t\t\tif (handle && tool) {\n\t\t\t\tcalled = tool._handleMouseEvent(type, event, point, mouse)\n\t\t\t\t\t|| called;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tevent.cancelable !== false\n\t\t\t\t&& (called && !mouse.move || mouse.down && responds('mouseup'))\n\t\t\t) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\n\t\t_handleKeyEvent: function(type, event, key, character) {\n\t\t\tvar scope = this._scope,\n\t\t\t\ttool = scope.tool,\n\t\t\t\tkeyEvent;\n\n\t\t\tfunction emit(obj) {\n\t\t\t\tif (obj.responds(type)) {\n\t\t\t\t\tpaper = scope;\n\t\t\t\t\tobj.emit(type, keyEvent = keyEvent\n\t\t\t\t\t\t\t|| new KeyEvent(type, event, key, character));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.isVisible()) {\n\t\t\t\temit(this);\n\t\t\t\tif (tool && tool.responds(type))\n\t\t\t\t\temit(tool);\n\t\t\t}\n\t\t},\n\n\t\t_countItemEvent: function(type, sign) {\n\t\t\tvar itemEvents = this._itemEvents,\n\t\t\t\tnative = itemEvents.native,\n\t\t\t\tvirtual = itemEvents.virtual;\n\t\t\tfor (var key in itemEventsMap) {\n\t\t\t\tnative[key] = (native[key] || 0)\n\t\t\t\t\t\t+ (itemEventsMap[key][type] || 0) * sign;\n\t\t\t}\n\t\t\tvirtual[type] = (virtual[type] || 0) + sign;\n\t\t},\n\n\t\tstatics: {\n\t\t\tupdateFocus: updateFocus,\n\n\t\t\t_resetState: function() {\n\t\t\t\tdragging = mouseDown = called = wasInView = false;\n\t\t\t\tprevFocus = tempFocus = overView = downPoint = lastPoint =\n\t\t\t\t\tdownItem = overItem = dragItem = clickItem = clickTime =\n\t\t\t\t\tdblClick = null;\n\t\t\t}\n\t\t}\n\t};\n});\n\nvar CanvasView = View.extend({\n\t_class: 'CanvasView',\n\n\tinitialize: function CanvasView(project, canvas) {\n\t\tif (!(canvas instanceof window.HTMLCanvasElement)) {\n\t\t\tvar size = Size.read(arguments, 1);\n\t\t\tif (size.isZero())\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\t'Cannot create CanvasView with the provided argument: '\n\t\t\t\t\t\t+ Base.slice(arguments, 1));\n\t\t\tcanvas = CanvasProvider.getCanvas(size);\n\t\t}\n\t\tvar ctx = this._context = canvas.getContext('2d');\n\t\tctx.save();\n\t\tthis._pixelRatio = 1;\n\t\tif (!/^off|false$/.test(PaperScope.getAttribute(canvas, 'hidpi'))) {\n\t\t\tvar deviceRatio = window.devicePixelRatio || 1,\n\t\t\t\tbackingStoreRatio = DomElement.getPrefixed(ctx,\n\t\t\t\t\t\t'backingStorePixelRatio') || 1;\n\t\t\tthis._pixelRatio = deviceRatio / backingStoreRatio;\n\t\t}\n\t\tView.call(this, project, canvas);\n\t\tthis._needsUpdate = true;\n\t},\n\n\tremove: function remove() {\n\t\tthis._context.restore();\n\t\treturn remove.base.call(this);\n\t},\n\n\t_setElementSize: function _setElementSize(width, height) {\n\t\tvar pixelRatio = this._pixelRatio;\n\t\t_setElementSize.base.call(this, width * pixelRatio, height * pixelRatio);\n\t\tif (pixelRatio !== 1) {\n\t\t\tvar element = this._element,\n\t\t\t\tctx = this._context;\n\t\t\tif (!PaperScope.hasAttribute(element, 'resize')) {\n\t\t\t\tvar style = element.style;\n\t\t\t\tstyle.width = width + 'px';\n\t\t\t\tstyle.height = height + 'px';\n\t\t\t}\n\t\t\tctx.restore();\n\t\t\tctx.save();\n\t\t\tctx.scale(pixelRatio, pixelRatio);\n\t\t}\n\t},\n\n\tgetPixelSize: function getPixelSize(size) {\n\t\tvar agent = paper.agent,\n\t\t\tpixels;\n\t\tif (agent && agent.firefox) {\n\t\t\tpixels = getPixelSize.base.call(this, size);\n\t\t} else {\n\t\t\tvar ctx = this._context,\n\t\t\t\tprevFont = ctx.font;\n\t\t\tctx.font = size + ' serif';\n\t\t\tpixels = parseFloat(ctx.font);\n\t\t\tctx.font = prevFont;\n\t\t}\n\t\treturn pixels;\n\t},\n\n\tgetTextWidth: function(font, lines) {\n\t\tvar ctx = this._context,\n\t\t\tprevFont = ctx.font,\n\t\t\twidth = 0;\n\t\tctx.font = font;\n\t\tfor (var i = 0, l = lines.length; i < l; i++)\n\t\t\twidth = Math.max(width, ctx.measureText(lines[i]).width);\n\t\tctx.font = prevFont;\n\t\treturn width;\n\t},\n\n\tupdate: function() {\n\t\tif (!this._needsUpdate)\n\t\t\treturn false;\n\t\tvar project = this._project,\n\t\t\tctx = this._context,\n\t\t\tsize = this._viewSize;\n\t\tctx.clearRect(0, 0, size.width + 1, size.height + 1);\n\t\tif (project)\n\t\t\tproject.draw(ctx, this._matrix, this._pixelRatio);\n\t\tthis._needsUpdate = false;\n\t\treturn true;\n\t}\n});\n\nvar Event = Base.extend({\n\t_class: 'Event',\n\n\tinitialize: function Event(event) {\n\t\tthis.event = event;\n\t\tthis.type = event && event.type;\n\t},\n\n\tprevented: false,\n\tstopped: false,\n\n\tpreventDefault: function() {\n\t\tthis.prevented = true;\n\t\tthis.event.preventDefault();\n\t},\n\n\tstopPropagation: function() {\n\t\tthis.stopped = true;\n\t\tthis.event.stopPropagation();\n\t},\n\n\tstop: function() {\n\t\tthis.stopPropagation();\n\t\tthis.preventDefault();\n\t},\n\n\tgetTimeStamp: function() {\n\t\treturn this.event.timeStamp;\n\t},\n\n\tgetModifiers: function() {\n\t\treturn Key.modifiers;\n\t}\n});\n\nvar KeyEvent = Event.extend({\n\t_class: 'KeyEvent',\n\n\tinitialize: function KeyEvent(type, event, key, character) {\n\t\tthis.type = type;\n\t\tthis.event = event;\n\t\tthis.key = key;\n\t\tthis.character = character;\n\t},\n\n\ttoString: function() {\n\t\treturn \"{ type: '\" + this.type\n\t\t\t\t+ \"', key: '\" + this.key\n\t\t\t\t+ \"', character: '\" + this.character\n\t\t\t\t+ \"', modifiers: \" + this.getModifiers()\n\t\t\t\t+ \" }\";\n\t}\n});\n\nvar Key = new function() {\n\tvar keyLookup = {\n\t\t\t'\\t': 'tab',\n\t\t\t' ': 'space',\n\t\t\t'\\b': 'backspace',\n\t\t\t'\\x7f': 'delete',\n\t\t\t'Spacebar': 'space',\n\t\t\t'Del': 'delete',\n\t\t\t'Win': 'meta',\n\t\t\t'Esc': 'escape'\n\t\t},\n\n\t\tcharLookup = {\n\t\t\t'tab': '\\t',\n\t\t\t'space': ' ',\n\t\t\t'enter': '\\r'\n\t\t},\n\n\t\tkeyMap = {},\n\t\tcharMap = {},\n\t\tmetaFixMap,\n\t\tdownKey,\n\n\t\tmodifiers = new Base({\n\t\t\tshift: false,\n\t\t\tcontrol: false,\n\t\t\talt: false,\n\t\t\tmeta: false,\n\t\t\tcapsLock: false,\n\t\t\tspace: false\n\t\t}).inject({\n\t\t\toption: {\n\t\t\t\tget: function() {\n\t\t\t\t\treturn this.alt;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tcommand: {\n\t\t\t\tget: function() {\n\t\t\t\t\tvar agent = paper && paper.agent;\n\t\t\t\t\treturn agent && agent.mac ? this.meta : this.control;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\tfunction getKey(event) {\n\t\tvar key = event.key || event.keyIdentifier;\n\t\tkey = /^U\\+/.test(key)\n\t\t\t\t? String.fromCharCode(parseInt(key.substr(2), 16))\n\t\t\t\t: /^Arrow[A-Z]/.test(key) ? key.substr(5)\n\t\t\t\t: key === 'Unidentified' || key === undefined\n\t\t\t\t\t? String.fromCharCode(event.keyCode)\n\t\t\t\t\t: key;\n\t\treturn keyLookup[key] ||\n\t\t\t\t(key.length > 1 ? Base.hyphenate(key) : key.toLowerCase());\n\t}\n\n\tfunction handleKey(down, key, character, event) {\n\t\tvar type = down ? 'keydown' : 'keyup',\n\t\t\tview = View._focused,\n\t\t\tname;\n\t\tkeyMap[key] = down;\n\t\tif (down) {\n\t\t\tcharMap[key] = character;\n\t\t} else {\n\t\t\tdelete charMap[key];\n\t\t}\n\t\tif (key.length > 1 && (name = Base.camelize(key)) in modifiers) {\n\t\t\tmodifiers[name] = down;\n\t\t\tvar agent = paper && paper.agent;\n\t\t\tif (name === 'meta' && agent && agent.mac) {\n\t\t\t\tif (down) {\n\t\t\t\t\tmetaFixMap = {};\n\t\t\t\t} else {\n\t\t\t\t\tfor (var k in metaFixMap) {\n\t\t\t\t\t\tif (k in charMap)\n\t\t\t\t\t\t\thandleKey(false, k, metaFixMap[k], event);\n\t\t\t\t\t}\n\t\t\t\t\tmetaFixMap = null;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (down && metaFixMap) {\n\t\t\tmetaFixMap[key] = character;\n\t\t}\n\t\tif (view) {\n\t\t\tview._handleKeyEvent(down ? 'keydown' : 'keyup', event, key,\n\t\t\t\t\tcharacter);\n\t\t}\n\t}\n\n\tDomEvent.add(document, {\n\t\tkeydown: function(event) {\n\t\t\tvar key = getKey(event),\n\t\t\t\tagent = paper && paper.agent;\n\t\t\tif (key.length > 1 || agent && (agent.chrome && (event.altKey\n\t\t\t\t\t\t|| agent.mac && event.metaKey\n\t\t\t\t\t\t|| !agent.mac && event.ctrlKey))) {\n\t\t\t\thandleKey(true, key,\n\t\t\t\t\t\tcharLookup[key] || (key.length > 1 ? '' : key), event);\n\t\t\t} else {\n\t\t\t\tdownKey = key;\n\t\t\t}\n\t\t},\n\n\t\tkeypress: function(event) {\n\t\t\tif (downKey) {\n\t\t\t\tvar key = getKey(event),\n\t\t\t\t\tcode = event.charCode,\n\t\t\t\t\tcharacter = code >= 32 ? String.fromCharCode(code)\n\t\t\t\t\t\t: key.length > 1 ? '' : key;\n\t\t\t\tif (key !== downKey) {\n\t\t\t\t\tkey = character.toLowerCase();\n\t\t\t\t}\n\t\t\t\thandleKey(true, key, character, event);\n\t\t\t\tdownKey = null;\n\t\t\t}\n\t\t},\n\n\t\tkeyup: function(event) {\n\t\t\tvar key = getKey(event);\n\t\t\tif (key in charMap)\n\t\t\t\thandleKey(false, key, charMap[key], event);\n\t\t}\n\t});\n\n\tDomEvent.add(window, {\n\t\tblur: function(event) {\n\t\t\tfor (var key in charMap)\n\t\t\t\thandleKey(false, key, charMap[key], event);\n\t\t}\n\t});\n\n\treturn {\n\t\tmodifiers: modifiers,\n\n\t\tisDown: function(key) {\n\t\t\treturn !!keyMap[key];\n\t\t}\n\t};\n};\n\nvar MouseEvent = Event.extend({\n\t_class: 'MouseEvent',\n\n\tinitialize: function MouseEvent(type, event, point, target, delta) {\n\t\tthis.type = type;\n\t\tthis.event = event;\n\t\tthis.point = point;\n\t\tthis.target = target;\n\t\tthis.delta = delta;\n\t},\n\n\ttoString: function() {\n\t\treturn \"{ type: '\" + this.type\n\t\t\t\t+ \"', point: \" + this.point\n\t\t\t\t+ ', target: ' + this.target\n\t\t\t\t+ (this.delta ? ', delta: ' + this.delta : '')\n\t\t\t\t+ ', modifiers: ' + this.getModifiers()\n\t\t\t\t+ ' }';\n\t}\n});\n\nvar ToolEvent = Event.extend({\n\t_class: 'ToolEvent',\n\t_item: null,\n\n\tinitialize: function ToolEvent(tool, type, event) {\n\t\tthis.tool = tool;\n\t\tthis.type = type;\n\t\tthis.event = event;\n\t},\n\n\t_choosePoint: function(point, toolPoint) {\n\t\treturn point ? point : toolPoint ? toolPoint.clone() : null;\n\t},\n\n\tgetPoint: function() {\n\t\treturn this._choosePoint(this._point, this.tool._point);\n\t},\n\n\tsetPoint: function(point) {\n\t\tthis._point = point;\n\t},\n\n\tgetLastPoint: function() {\n\t\treturn this._choosePoint(this._lastPoint, this.tool._lastPoint);\n\t},\n\n\tsetLastPoint: function(lastPoint) {\n\t\tthis._lastPoint = lastPoint;\n\t},\n\n\tgetDownPoint: function() {\n\t\treturn this._choosePoint(this._downPoint, this.tool._downPoint);\n\t},\n\n\tsetDownPoint: function(downPoint) {\n\t\tthis._downPoint = downPoint;\n\t},\n\n\tgetMiddlePoint: function() {\n\t\tif (!this._middlePoint && this.tool._lastPoint) {\n\t\t\treturn this.tool._point.add(this.tool._lastPoint).divide(2);\n\t\t}\n\t\treturn this._middlePoint;\n\t},\n\n\tsetMiddlePoint: function(middlePoint) {\n\t\tthis._middlePoint = middlePoint;\n\t},\n\n\tgetDelta: function() {\n\t\treturn !this._delta && this.tool._lastPoint\n\t\t\t\t? this.tool._point.subtract(this.tool._lastPoint)\n\t\t\t\t: this._delta;\n\t},\n\n\tsetDelta: function(delta) {\n\t\tthis._delta = delta;\n\t},\n\n\tgetCount: function() {\n\t\treturn this.tool[/^mouse(down|up)$/.test(this.type)\n\t\t\t\t? '_downCount' : '_moveCount'];\n\t},\n\n\tsetCount: function(count) {\n\t\tthis.tool[/^mouse(down|up)$/.test(this.type) ? 'downCount' : 'count']\n\t\t\t= count;\n\t},\n\n\tgetItem: function() {\n\t\tif (!this._item) {\n\t\t\tvar result = this.tool._scope.project.hitTest(this.getPoint());\n\t\t\tif (result) {\n\t\t\t\tvar item = result.item,\n\t\t\t\t\tparent = item._parent;\n\t\t\t\twhile (/^(Group|CompoundPath)$/.test(parent._class)) {\n\t\t\t\t\titem = parent;\n\t\t\t\t\tparent = parent._parent;\n\t\t\t\t}\n\t\t\t\tthis._item = item;\n\t\t\t}\n\t\t}\n\t\treturn this._item;\n\t},\n\n\tsetItem: function(item) {\n\t\tthis._item = item;\n\t},\n\n\ttoString: function() {\n\t\treturn '{ type: ' + this.type\n\t\t\t\t+ ', point: ' + this.getPoint()\n\t\t\t\t+ ', count: ' + this.getCount()\n\t\t\t\t+ ', modifiers: ' + this.getModifiers()\n\t\t\t\t+ ' }';\n\t}\n});\n\nvar Tool = PaperScopeItem.extend({\n\t_class: 'Tool',\n\t_list: 'tools',\n\t_reference: 'tool',\n\t_events: ['onMouseDown', 'onMouseUp', 'onMouseDrag', 'onMouseMove',\n\t\t\t'onActivate', 'onDeactivate', 'onEditOptions', 'onKeyDown',\n\t\t\t'onKeyUp'],\n\n\tinitialize: function Tool(props) {\n\t\tPaperScopeItem.call(this);\n\t\tthis._moveCount = -1;\n\t\tthis._downCount = -1;\n\t\tthis.set(props);\n\t},\n\n\tgetMinDistance: function() {\n\t\treturn this._minDistance;\n\t},\n\n\tsetMinDistance: function(minDistance) {\n\t\tthis._minDistance = minDistance;\n\t\tif (minDistance != null && this._maxDistance != null\n\t\t\t\t&& minDistance > this._maxDistance) {\n\t\t\tthis._maxDistance = minDistance;\n\t\t}\n\t},\n\n\tgetMaxDistance: function() {\n\t\treturn this._maxDistance;\n\t},\n\n\tsetMaxDistance: function(maxDistance) {\n\t\tthis._maxDistance = maxDistance;\n\t\tif (this._minDistance != null && maxDistance != null\n\t\t\t\t&& maxDistance < this._minDistance) {\n\t\t\tthis._minDistance = maxDistance;\n\t\t}\n\t},\n\n\tgetFixedDistance: function() {\n\t\treturn this._minDistance == this._maxDistance\n\t\t\t? this._minDistance : null;\n\t},\n\n\tsetFixedDistance: function(distance) {\n\t\tthis._minDistance = this._maxDistance = distance;\n\t},\n\n\t_handleMouseEvent: function(type, event, point, mouse) {\n\t\tpaper = this._scope;\n\t\tif (mouse.drag && !this.responds(type))\n\t\t\ttype = 'mousemove';\n\t\tvar move = mouse.move || mouse.drag,\n\t\t\tresponds = this.responds(type),\n\t\t\tminDistance = this.minDistance,\n\t\t\tmaxDistance = this.maxDistance,\n\t\t\tcalled = false,\n\t\t\ttool = this;\n\t\tfunction update(minDistance, maxDistance) {\n\t\t\tvar pt = point,\n\t\t\t\ttoolPoint = move ? tool._point : (tool._downPoint || pt);\n\t\t\tif (move) {\n\t\t\t\tif (tool._moveCount >= 0 && pt.equals(toolPoint)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (toolPoint && (minDistance != null || maxDistance != null)) {\n\t\t\t\t\tvar vector = pt.subtract(toolPoint),\n\t\t\t\t\t\tdistance = vector.getLength();\n\t\t\t\t\tif (distance < (minDistance || 0))\n\t\t\t\t\t\treturn false;\n\t\t\t\t\tif (maxDistance) {\n\t\t\t\t\t\tpt = toolPoint.add(vector.normalize(\n\t\t\t\t\t\t\t\tMath.min(distance, maxDistance)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttool._moveCount++;\n\t\t\t}\n\t\t\ttool._point = pt;\n\t\t\ttool._lastPoint = toolPoint || pt;\n\t\t\tif (mouse.down) {\n\t\t\t\ttool._moveCount = -1;\n\t\t\t\ttool._downPoint = pt;\n\t\t\t\ttool._downCount++;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tfunction emit() {\n\t\t\tif (responds) {\n\t\t\t\tcalled = tool.emit(type, new ToolEvent(tool, type, event))\n\t\t\t\t\t\t|| called;\n\t\t\t}\n\t\t}\n\n\t\tif (mouse.down) {\n\t\t\tupdate();\n\t\t\temit();\n\t\t} else if (mouse.up) {\n\t\t\tupdate(null, maxDistance);\n\t\t\temit();\n\t\t} else if (responds) {\n\t\t\twhile (update(minDistance, maxDistance))\n\t\t\t\temit();\n\t\t}\n\t\treturn called;\n\t}\n\n});\n\nvar Http = {\n\trequest: function(options) {\n\t\tvar xhr = new self.XMLHttpRequest();\n\t\txhr.open((options.method || 'get').toUpperCase(), options.url,\n\t\t\t\tBase.pick(options.async, true));\n\t\tif (options.mimeType)\n\t\t\txhr.overrideMimeType(options.mimeType);\n\t\txhr.onload = function() {\n\t\t\tvar status = xhr.status;\n\t\t\tif (status === 0 || status === 200) {\n\t\t\t\tif (options.onLoad) {\n\t\t\t\t\toptions.onLoad.call(xhr, xhr.responseText);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\txhr.onerror();\n\t\t\t}\n\t\t};\n\t\txhr.onerror = function() {\n\t\t\tvar status = xhr.status,\n\t\t\t\tmessage = 'Could not load \"' + options.url + '\" (Status: '\n\t\t\t\t\t\t+ status + ')';\n\t\t\tif (options.onError) {\n\t\t\t\toptions.onError(message, status);\n\t\t\t} else {\n\t\t\t\tthrow new Error(message);\n\t\t\t}\n\t\t};\n\t\treturn xhr.send(null);\n\t}\n};\n\nvar CanvasProvider = {\n\tcanvases: [],\n\n\tgetCanvas: function(width, height) {\n\t\tif (!window)\n\t\t\treturn null;\n\t\tvar canvas,\n\t\t\tclear = true;\n\t\tif (typeof width === 'object') {\n\t\t\theight = width.height;\n\t\t\twidth = width.width;\n\t\t}\n\t\tif (this.canvases.length) {\n\t\t\tcanvas = this.canvases.pop();\n\t\t} else {\n\t\t\tcanvas = document.createElement('canvas');\n\t\t\tclear = false;\n\t\t}\n\t\tvar ctx = canvas.getContext('2d');\n\t\tif (!ctx) {\n\t\t\tthrow new Error('Canvas ' + canvas +\n\t\t\t\t\t' is unable to provide a 2D context.');\n\t\t}\n\t\tif (canvas.width === width && canvas.height === height) {\n\t\t\tif (clear)\n\t\t\t\tctx.clearRect(0, 0, width + 1, height + 1);\n\t\t} else {\n\t\t\tcanvas.width = width;\n\t\t\tcanvas.height = height;\n\t\t}\n\t\tctx.save();\n\t\treturn canvas;\n\t},\n\n\tgetContext: function(width, height) {\n\t\tvar canvas = this.getCanvas(width, height);\n\t\treturn canvas ? canvas.getContext('2d') : null;\n\t},\n\n\trelease: function(obj) {\n\t\tvar canvas = obj && obj.canvas ? obj.canvas : obj;\n\t\tif (canvas && canvas.getContext) {\n\t\t\tcanvas.getContext('2d').restore();\n\t\t\tthis.canvases.push(canvas);\n\t\t}\n\t}\n};\n\nvar BlendMode = new function() {\n\tvar min = Math.min,\n\t\tmax = Math.max,\n\t\tabs = Math.abs,\n\t\tsr, sg, sb, sa,\n\t\tbr, bg, bb, ba,\n\t\tdr, dg, db;\n\n\tfunction getLum(r, g, b) {\n\t\treturn 0.2989 * r + 0.587 * g + 0.114 * b;\n\t}\n\n\tfunction setLum(r, g, b, l) {\n\t\tvar d = l - getLum(r, g, b);\n\t\tdr = r + d;\n\t\tdg = g + d;\n\t\tdb = b + d;\n\t\tvar l = getLum(dr, dg, db),\n\t\t\tmn = min(dr, dg, db),\n\t\t\tmx = max(dr, dg, db);\n\t\tif (mn < 0) {\n\t\t\tvar lmn = l - mn;\n\t\t\tdr = l + (dr - l) * l / lmn;\n\t\t\tdg = l + (dg - l) * l / lmn;\n\t\t\tdb = l + (db - l) * l / lmn;\n\t\t}\n\t\tif (mx > 255) {\n\t\t\tvar ln = 255 - l,\n\t\t\t\tmxl = mx - l;\n\t\t\tdr = l + (dr - l) * ln / mxl;\n\t\t\tdg = l + (dg - l) * ln / mxl;\n\t\t\tdb = l + (db - l) * ln / mxl;\n\t\t}\n\t}\n\n\tfunction getSat(r, g, b) {\n\t\treturn max(r, g, b) - min(r, g, b);\n\t}\n\n\tfunction setSat(r, g, b, s) {\n\t\tvar col = [r, g, b],\n\t\t\tmx = max(r, g, b),\n\t\t\tmn = min(r, g, b),\n\t\t\tmd;\n\t\tmn = mn === r ? 0 : mn === g ? 1 : 2;\n\t\tmx = mx === r ? 0 : mx === g ? 1 : 2;\n\t\tmd = min(mn, mx) === 0 ? max(mn, mx) === 1 ? 2 : 1 : 0;\n\t\tif (col[mx] > col[mn]) {\n\t\t\tcol[md] = (col[md] - col[mn]) * s / (col[mx] - col[mn]);\n\t\t\tcol[mx] = s;\n\t\t} else {\n\t\t\tcol[md] = col[mx] = 0;\n\t\t}\n\t\tcol[mn] = 0;\n\t\tdr = col[0];\n\t\tdg = col[1];\n\t\tdb = col[2];\n\t}\n\n\tvar modes = {\n\t\tmultiply: function() {\n\t\t\tdr = br * sr / 255;\n\t\t\tdg = bg * sg / 255;\n\t\t\tdb = bb * sb / 255;\n\t\t},\n\n\t\tscreen: function() {\n\t\t\tdr = br + sr - (br * sr / 255);\n\t\t\tdg = bg + sg - (bg * sg / 255);\n\t\t\tdb = bb + sb - (bb * sb / 255);\n\t\t},\n\n\t\toverlay: function() {\n\t\t\tdr = br < 128 ? 2 * br * sr / 255 : 255 - 2 * (255 - br) * (255 - sr) / 255;\n\t\t\tdg = bg < 128 ? 2 * bg * sg / 255 : 255 - 2 * (255 - bg) * (255 - sg) / 255;\n\t\t\tdb = bb < 128 ? 2 * bb * sb / 255 : 255 - 2 * (255 - bb) * (255 - sb) / 255;\n\t\t},\n\n\t\t'soft-light': function() {\n\t\t\tvar t = sr * br / 255;\n\t\t\tdr = t + br * (255 - (255 - br) * (255 - sr) / 255 - t) / 255;\n\t\t\tt = sg * bg / 255;\n\t\t\tdg = t + bg * (255 - (255 - bg) * (255 - sg) / 255 - t) / 255;\n\t\t\tt = sb * bb / 255;\n\t\t\tdb = t + bb * (255 - (255 - bb) * (255 - sb) / 255 - t) / 255;\n\t\t},\n\n\t\t'hard-light': function() {\n\t\t\tdr = sr < 128 ? 2 * sr * br / 255 : 255 - 2 * (255 - sr) * (255 - br) / 255;\n\t\t\tdg = sg < 128 ? 2 * sg * bg / 255 : 255 - 2 * (255 - sg) * (255 - bg) / 255;\n\t\t\tdb = sb < 128 ? 2 * sb * bb / 255 : 255 - 2 * (255 - sb) * (255 - bb) / 255;\n\t\t},\n\n\t\t'color-dodge': function() {\n\t\t\tdr = br === 0 ? 0 : sr === 255 ? 255 : min(255, 255 * br / (255 - sr));\n\t\t\tdg = bg === 0 ? 0 : sg === 255 ? 255 : min(255, 255 * bg / (255 - sg));\n\t\t\tdb = bb === 0 ? 0 : sb === 255 ? 255 : min(255, 255 * bb / (255 - sb));\n\t\t},\n\n\t\t'color-burn': function() {\n\t\t\tdr = br === 255 ? 255 : sr === 0 ? 0 : max(0, 255 - (255 - br) * 255 / sr);\n\t\t\tdg = bg === 255 ? 255 : sg === 0 ? 0 : max(0, 255 - (255 - bg) * 255 / sg);\n\t\t\tdb = bb === 255 ? 255 : sb === 0 ? 0 : max(0, 255 - (255 - bb) * 255 / sb);\n\t\t},\n\n\t\tdarken: function() {\n\t\t\tdr = br < sr ? br : sr;\n\t\t\tdg = bg < sg ? bg : sg;\n\t\t\tdb = bb < sb ? bb : sb;\n\t\t},\n\n\t\tlighten: function() {\n\t\t\tdr = br > sr ? br : sr;\n\t\t\tdg = bg > sg ? bg : sg;\n\t\t\tdb = bb > sb ? bb : sb;\n\t\t},\n\n\t\tdifference: function() {\n\t\t\tdr = br - sr;\n\t\t\tif (dr < 0)\n\t\t\t\tdr = -dr;\n\t\t\tdg = bg - sg;\n\t\t\tif (dg < 0)\n\t\t\t\tdg = -dg;\n\t\t\tdb = bb - sb;\n\t\t\tif (db < 0)\n\t\t\t\tdb = -db;\n\t\t},\n\n\t\texclusion: function() {\n\t\t\tdr = br + sr * (255 - br - br) / 255;\n\t\t\tdg = bg + sg * (255 - bg - bg) / 255;\n\t\t\tdb = bb + sb * (255 - bb - bb) / 255;\n\t\t},\n\n\t\thue: function() {\n\t\t\tsetSat(sr, sg, sb, getSat(br, bg, bb));\n\t\t\tsetLum(dr, dg, db, getLum(br, bg, bb));\n\t\t},\n\n\t\tsaturation: function() {\n\t\t\tsetSat(br, bg, bb, getSat(sr, sg, sb));\n\t\t\tsetLum(dr, dg, db, getLum(br, bg, bb));\n\t\t},\n\n\t\tluminosity: function() {\n\t\t\tsetLum(br, bg, bb, getLum(sr, sg, sb));\n\t\t},\n\n\t\tcolor: function() {\n\t\t\tsetLum(sr, sg, sb, getLum(br, bg, bb));\n\t\t},\n\n\t\tadd: function() {\n\t\t\tdr = min(br + sr, 255);\n\t\t\tdg = min(bg + sg, 255);\n\t\t\tdb = min(bb + sb, 255);\n\t\t},\n\n\t\tsubtract: function() {\n\t\t\tdr = max(br - sr, 0);\n\t\t\tdg = max(bg - sg, 0);\n\t\t\tdb = max(bb - sb, 0);\n\t\t},\n\n\t\taverage: function() {\n\t\t\tdr = (br + sr) / 2;\n\t\t\tdg = (bg + sg) / 2;\n\t\t\tdb = (bb + sb) / 2;\n\t\t},\n\n\t\tnegation: function() {\n\t\t\tdr = 255 - abs(255 - sr - br);\n\t\t\tdg = 255 - abs(255 - sg - bg);\n\t\t\tdb = 255 - abs(255 - sb - bb);\n\t\t}\n\t};\n\n\tvar nativeModes = this.nativeModes = Base.each([\n\t\t'source-over', 'source-in', 'source-out', 'source-atop',\n\t\t'destination-over', 'destination-in', 'destination-out',\n\t\t'destination-atop', 'lighter', 'darker', 'copy', 'xor'\n\t], function(mode) {\n\t\tthis[mode] = true;\n\t}, {});\n\n\tvar ctx = CanvasProvider.getContext(1, 1);\n\tif (ctx) {\n\t\tBase.each(modes, function(func, mode) {\n\t\t\tvar darken = mode === 'darken',\n\t\t\t\tok = false;\n\t\t\tctx.save();\n\t\t\ttry {\n\t\t\t\tctx.fillStyle = darken ? '#300' : '#a00';\n\t\t\t\tctx.fillRect(0, 0, 1, 1);\n\t\t\t\tctx.globalCompositeOperation = mode;\n\t\t\t\tif (ctx.globalCompositeOperation === mode) {\n\t\t\t\t\tctx.fillStyle = darken ? '#a00' : '#300';\n\t\t\t\t\tctx.fillRect(0, 0, 1, 1);\n\t\t\t\t\tok = ctx.getImageData(0, 0, 1, 1).data[0] !== darken\n\t\t\t\t\t\t\t? 170 : 51;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\t\t\tctx.restore();\n\t\t\tnativeModes[mode] = ok;\n\t\t});\n\t\tCanvasProvider.release(ctx);\n\t}\n\n\tthis.process = function(mode, srcContext, dstContext, alpha, offset) {\n\t\tvar srcCanvas = srcContext.canvas,\n\t\t\tnormal = mode === 'normal';\n\t\tif (normal || nativeModes[mode]) {\n\t\t\tdstContext.save();\n\t\t\tdstContext.setTransform(1, 0, 0, 1, 0, 0);\n\t\t\tdstContext.globalAlpha = alpha;\n\t\t\tif (!normal)\n\t\t\t\tdstContext.globalCompositeOperation = mode;\n\t\t\tdstContext.drawImage(srcCanvas, offset.x, offset.y);\n\t\t\tdstContext.restore();\n\t\t} else {\n\t\t\tvar process = modes[mode];\n\t\t\tif (!process)\n\t\t\t\treturn;\n\t\t\tvar dstData = dstContext.getImageData(offset.x, offset.y,\n\t\t\t\t\tsrcCanvas.width, srcCanvas.height),\n\t\t\t\tdst = dstData.data,\n\t\t\t\tsrc = srcContext.getImageData(0, 0,\n\t\t\t\t\tsrcCanvas.width, srcCanvas.height).data;\n\t\t\tfor (var i = 0, l = dst.length; i < l; i += 4) {\n\t\t\t\tsr = src[i];\n\t\t\t\tbr = dst[i];\n\t\t\t\tsg = src[i + 1];\n\t\t\t\tbg = dst[i + 1];\n\t\t\t\tsb = src[i + 2];\n\t\t\t\tbb = dst[i + 2];\n\t\t\t\tsa = src[i + 3];\n\t\t\t\tba = dst[i + 3];\n\t\t\t\tprocess();\n\t\t\t\tvar a1 = sa * alpha / 255,\n\t\t\t\t\ta2 = 1 - a1;\n\t\t\t\tdst[i] = a1 * dr + a2 * br;\n\t\t\t\tdst[i + 1] = a1 * dg + a2 * bg;\n\t\t\t\tdst[i + 2] = a1 * db + a2 * bb;\n\t\t\t\tdst[i + 3] = sa * alpha + a2 * ba;\n\t\t\t}\n\t\t\tdstContext.putImageData(dstData, offset.x, offset.y);\n\t\t}\n\t};\n};\n\nvar SvgElement = new function() {\n\tvar svg = 'http://www.w3.org/2000/svg',\n\t\txmlns = 'http://www.w3.org/2000/xmlns',\n\t\txlink = 'http://www.w3.org/1999/xlink',\n\t\tattributeNamespace = {\n\t\t\thref: xlink,\n\t\t\txlink: xmlns,\n\t\t\txmlns: xmlns + '/',\n\t\t\t'xmlns:xlink': xmlns + '/'\n\t\t};\n\n\tfunction create(tag, attributes, formatter) {\n\t\treturn set(document.createElementNS(svg, tag), attributes, formatter);\n\t}\n\n\tfunction get(node, name) {\n\t\tvar namespace = attributeNamespace[name],\n\t\t\tvalue = namespace\n\t\t\t\t? node.getAttributeNS(namespace, name)\n\t\t\t\t: node.getAttribute(name);\n\t\treturn value === 'null' ? null : value;\n\t}\n\n\tfunction set(node, attributes, formatter) {\n\t\tfor (var name in attributes) {\n\t\t\tvar value = attributes[name],\n\t\t\t\tnamespace = attributeNamespace[name];\n\t\t\tif (typeof value === 'number' && formatter)\n\t\t\t\tvalue = formatter.number(value);\n\t\t\tif (namespace) {\n\t\t\t\tnode.setAttributeNS(namespace, name, value);\n\t\t\t} else {\n\t\t\t\tnode.setAttribute(name, value);\n\t\t\t}\n\t\t}\n\t\treturn node;\n\t}\n\n\treturn {\n\t\tsvg: svg,\n\t\txmlns: xmlns,\n\t\txlink: xlink,\n\n\t\tcreate: create,\n\t\tget: get,\n\t\tset: set\n\t};\n};\n\nvar SvgStyles = Base.each({\n\tfillColor: ['fill', 'color'],\n\tfillRule: ['fill-rule', 'string'],\n\tstrokeColor: ['stroke', 'color'],\n\tstrokeWidth: ['stroke-width', 'number'],\n\tstrokeCap: ['stroke-linecap', 'string'],\n\tstrokeJoin: ['stroke-linejoin', 'string'],\n\tstrokeScaling: ['vector-effect', 'lookup', {\n\t\ttrue: 'none',\n\t\tfalse: 'non-scaling-stroke'\n\t}, function(item, value) {\n\t\treturn !value\n\t\t\t\t&& (item instanceof PathItem\n\t\t\t\t\t|| item instanceof Shape\n\t\t\t\t\t|| item instanceof TextItem);\n\t}],\n\tmiterLimit: ['stroke-miterlimit', 'number'],\n\tdashArray: ['stroke-dasharray', 'array'],\n\tdashOffset: ['stroke-dashoffset', 'number'],\n\tfontFamily: ['font-family', 'string'],\n\tfontWeight: ['font-weight', 'string'],\n\tfontSize: ['font-size', 'number'],\n\tjustification: ['text-anchor', 'lookup', {\n\t\tleft: 'start',\n\t\tcenter: 'middle',\n\t\tright: 'end'\n\t}],\n\topacity: ['opacity', 'number'],\n\tblendMode: ['mix-blend-mode', 'style']\n}, function(entry, key) {\n\tvar part = Base.capitalize(key),\n\t\tlookup = entry[2];\n\tthis[key] = {\n\t\ttype: entry[1],\n\t\tproperty: key,\n\t\tattribute: entry[0],\n\t\ttoSVG: lookup,\n\t\tfromSVG: lookup && Base.each(lookup, function(value, name) {\n\t\t\tthis[value] = name;\n\t\t}, {}),\n\t\texportFilter: entry[3],\n\t\tget: 'get' + part,\n\t\tset: 'set' + part\n\t};\n}, {});\n\nnew function() {\n\tvar formatter;\n\n\tfunction getTransform(matrix, coordinates, center) {\n\t\tvar attrs = new Base(),\n\t\t\ttrans = matrix.getTranslation();\n\t\tif (coordinates) {\n\t\t\tmatrix = matrix._shiftless();\n\t\t\tvar point = matrix._inverseTransform(trans);\n\t\t\tattrs[center ? 'cx' : 'x'] = point.x;\n\t\t\tattrs[center ? 'cy' : 'y'] = point.y;\n\t\t\ttrans = null;\n\t\t}\n\t\tif (!matrix.isIdentity()) {\n\t\t\tvar decomposed = matrix.decompose();\n\t\t\tif (decomposed) {\n\t\t\t\tvar parts = [],\n\t\t\t\t\tangle = decomposed.rotation,\n\t\t\t\t\tscale = decomposed.scaling,\n\t\t\t\t\tskew = decomposed.skewing;\n\t\t\t\tif (trans && !trans.isZero())\n\t\t\t\t\tparts.push('translate(' + formatter.point(trans) + ')');\n\t\t\t\tif (angle)\n\t\t\t\t\tparts.push('rotate(' + formatter.number(angle) + ')');\n\t\t\t\tif (!Numerical.isZero(scale.x - 1)\n\t\t\t\t\t\t|| !Numerical.isZero(scale.y - 1))\n\t\t\t\t\tparts.push('scale(' + formatter.point(scale) +')');\n\t\t\t\tif (skew.x)\n\t\t\t\t\tparts.push('skewX(' + formatter.number(skew.x) + ')');\n\t\t\t\tif (skew.y)\n\t\t\t\t\tparts.push('skewY(' + formatter.number(skew.y) + ')');\n\t\t\t\tattrs.transform = parts.join(' ');\n\t\t\t} else {\n\t\t\t\tattrs.transform = 'matrix(' + matrix.getValues().join(',') + ')';\n\t\t\t}\n\t\t}\n\t\treturn attrs;\n\t}\n\n\tfunction exportGroup(item, options) {\n\t\tvar attrs = getTransform(item._matrix),\n\t\t\tchildren = item._children;\n\t\tvar node = SvgElement.create('g', attrs, formatter);\n\t\tfor (var i = 0, l = children.length; i < l; i++) {\n\t\t\tvar child = children[i];\n\t\t\tvar childNode = exportSVG(child, options);\n\t\t\tif (childNode) {\n\t\t\t\tif (child.isClipMask()) {\n\t\t\t\t\tvar clip = SvgElement.create('clipPath');\n\t\t\t\t\tclip.appendChild(childNode);\n\t\t\t\t\tsetDefinition(child, clip, 'clip');\n\t\t\t\t\tSvgElement.set(node, {\n\t\t\t\t\t\t'clip-path': 'url(#' + clip.id + ')'\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tnode.appendChild(childNode);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn node;\n\t}\n\n\tfunction exportRaster(item, options) {\n\t\tvar attrs = getTransform(item._matrix, true),\n\t\t\tsize = item.getSize(),\n\t\t\timage = item.getImage();\n\t\tattrs.x -= size.width / 2;\n\t\tattrs.y -= size.height / 2;\n\t\tattrs.width = size.width;\n\t\tattrs.height = size.height;\n\t\tattrs.href = options.embedImages == false && image && image.src\n\t\t\t\t|| item.toDataURL();\n\t\treturn SvgElement.create('image', attrs, formatter);\n\t}\n\n\tfunction exportPath(item, options) {\n\t\tvar matchShapes = options.matchShapes;\n\t\tif (matchShapes) {\n\t\t\tvar shape = item.toShape(false);\n\t\t\tif (shape)\n\t\t\t\treturn exportShape(shape, options);\n\t\t}\n\t\tvar segments = item._segments,\n\t\t\tlength = segments.length,\n\t\t\ttype,\n\t\t\tattrs = getTransform(item._matrix);\n\t\tif (matchShapes && length >= 2 && !item.hasHandles()) {\n\t\t\tif (length > 2) {\n\t\t\t\ttype = item._closed ? 'polygon' : 'polyline';\n\t\t\t\tvar parts = [];\n\t\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\t\tparts.push(formatter.point(segments[i]._point));\n\t\t\t\t}\n\t\t\t\tattrs.points = parts.join(' ');\n\t\t\t} else {\n\t\t\t\ttype = 'line';\n\t\t\t\tvar start = segments[0]._point,\n\t\t\t\t\tend = segments[1]._point;\n\t\t\t\tattrs.set({\n\t\t\t\t\tx1: start.x,\n\t\t\t\t\ty1: start.y,\n\t\t\t\t\tx2: end.x,\n\t\t\t\t\ty2: end.y\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\ttype = 'path';\n\t\t\tattrs.d = item.getPathData(null, options.precision);\n\t\t}\n\t\treturn SvgElement.create(type, attrs, formatter);\n\t}\n\n\tfunction exportShape(item) {\n\t\tvar type = item._type,\n\t\t\tradius = item._radius,\n\t\t\tattrs = getTransform(item._matrix, true, type !== 'rectangle');\n\t\tif (type === 'rectangle') {\n\t\t\ttype = 'rect';\n\t\t\tvar size = item._size,\n\t\t\t\twidth = size.width,\n\t\t\t\theight = size.height;\n\t\t\tattrs.x -= width / 2;\n\t\t\tattrs.y -= height / 2;\n\t\t\tattrs.width = width;\n\t\t\tattrs.height = height;\n\t\t\tif (radius.isZero())\n\t\t\t\tradius = null;\n\t\t}\n\t\tif (radius) {\n\t\t\tif (type === 'circle') {\n\t\t\t\tattrs.r = radius;\n\t\t\t} else {\n\t\t\t\tattrs.rx = radius.width;\n\t\t\t\tattrs.ry = radius.height;\n\t\t\t}\n\t\t}\n\t\treturn SvgElement.create(type, attrs, formatter);\n\t}\n\n\tfunction exportCompoundPath(item, options) {\n\t\tvar attrs = getTransform(item._matrix);\n\t\tvar data = item.getPathData(null, options.precision);\n\t\tif (data)\n\t\t\tattrs.d = data;\n\t\treturn SvgElement.create('path', attrs, formatter);\n\t}\n\n\tfunction exportSymbolItem(item, options) {\n\t\tvar attrs = getTransform(item._matrix, true),\n\t\t\tdefinition = item._definition,\n\t\t\tnode = getDefinition(definition, 'symbol'),\n\t\t\tdefinitionItem = definition._item,\n\t\t\tbounds = definitionItem.getBounds();\n\t\tif (!node) {\n\t\t\tnode = SvgElement.create('symbol', {\n\t\t\t\tviewBox: formatter.rectangle(bounds)\n\t\t\t});\n\t\t\tnode.appendChild(exportSVG(definitionItem, options));\n\t\t\tsetDefinition(definition, node, 'symbol');\n\t\t}\n\t\tattrs.href = '#' + node.id;\n\t\tattrs.x += bounds.x;\n\t\tattrs.y += bounds.y;\n\t\tattrs.width = bounds.width;\n\t\tattrs.height = bounds.height;\n\t\tattrs.overflow = 'visible';\n\t\treturn SvgElement.create('use', attrs, formatter);\n\t}\n\n\tfunction exportGradient(color, item) {\n\t\tvar gradientNode = getDefinition(color, 'color');\n\t\tif (!gradientNode) {\n\t\t\tvar gradient = color.getGradient(),\n\t\t\t\tradial = gradient._radial,\n\t\t\t\torigin = color.getOrigin(),\n\t\t\t\tdestination = color.getDestination(),\n\t\t\t\tattrs;\n\t\t\tif (radial) {\n\t\t\t\tattrs = {\n\t\t\t\t\tcx: origin.x,\n\t\t\t\t\tcy: origin.y,\n\t\t\t\t\tr: origin.getDistance(destination)\n\t\t\t\t};\n\t\t\t\tvar highlight = color.getHighlight();\n\t\t\t\tif (highlight) {\n\t\t\t\t\tattrs.fx = highlight.x;\n\t\t\t\t\tattrs.fy = highlight.y;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tattrs = {\n\t\t\t\t\tx1: origin.x,\n\t\t\t\t\ty1: origin.y,\n\t\t\t\t\tx2: destination.x,\n\t\t\t\t\ty2: destination.y\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (item instanceof paper.PointText) {\n\t\t\t\tattrs.gradientTransform = getTransform(\n\t\t\t\t\titem._matrix.clone().invert(), false, formatter).transform;\n\t\t\t}\n\n\t\t\tattrs.gradientUnits = 'userSpaceOnUse';\n\t\t\tgradientNode = SvgElement.create((radial ? 'radial' : 'linear')\n\t\t\t\t\t+ 'Gradient', attrs, formatter);\n\t\t\tvar stops = gradient._stops;\n\t\t\tfor (var i = 0, l = stops.length; i < l; i++) {\n\t\t\t\tvar stop = stops[i],\n\t\t\t\t\tstopColor = stop._color,\n\t\t\t\t\talpha = stopColor.getAlpha(),\n\t\t\t\t\toffset = stop._offset;\n\t\t\t\tattrs = {\n\t\t\t\t\toffset: offset == null ? i / (l - 1) : offset\n\t\t\t\t};\n\t\t\t\tif (stopColor)\n\t\t\t\t\tattrs['stop-color'] = stopColor.toCSS(true);\n\t\t\t\tif (alpha < 1)\n\t\t\t\t\tattrs['stop-opacity'] = alpha;\n\t\t\t\tgradientNode.appendChild(\n\t\t\t\t\t\tSvgElement.create('stop', attrs, formatter));\n\t\t\t}\n\t\t\tsetDefinition(color, gradientNode, 'color');\n\t\t}\n\t\treturn 'url(#' + gradientNode.id + ')';\n\t}\n\n\tfunction exportText(item) {\n\t\tvar node = SvgElement.create('text', getTransform(item._matrix, false),\n\t\t\t\tformatter);\n\t\tnode.setAttribute('font-size', item.fontSize);\n\t\tnode.setAttribute('xml:space', 'preserve');\n\t\tfor (var i = 0; i < item._lines.length; i++) {\n\t\t\tvar tspanNode = SvgElement.create('tspan', {\n\t\t\t\tx: '0',\n\t\t\t\tdy: i === 0 ? '0' : item.getLeading() + 'px'\n\t\t\t}, formatter);\n\t\t\ttspanNode.textContent = item._lines[i] ? item._lines[i] : ' ';\n\t\t\tnode.appendChild(tspanNode);\n\t\t}\n\t\treturn node;\n\t}\n\n\tvar exporters = {\n\t\tGroup: exportGroup,\n\t\tLayer: exportGroup,\n\t\tRaster: exportRaster,\n\t\tPath: exportPath,\n\t\tShape: exportShape,\n\t\tCompoundPath: exportCompoundPath,\n\t\tSymbolItem: exportSymbolItem,\n\t\tPointText: exportText\n\t};\n\n\tfunction applyStyle(item, node, isRoot) {\n\t\tvar attrs = {},\n\t\t\tparent = !isRoot && item.getParent(),\n\t\t\tstyle = [];\n\n\t\tif (item._name != null)\n\t\t\tattrs.id = item._name;\n\n\t\tBase.each(SvgStyles, function(entry) {\n\t\t\tvar get = entry.get,\n\t\t\t\ttype = entry.type,\n\t\t\t\tvalue = item[get]();\n\t\t\tif (entry.exportFilter\n\t\t\t\t\t? entry.exportFilter(item, value)\n\t\t\t\t\t: !parent || !Base.equals(parent[get](), value) ||\n\t\t\t\t\t item instanceof paper.PointText) {\n\t\t\t\tif (type === 'color' && value != null) {\n\t\t\t\t\tvar alpha = value.getAlpha();\n\t\t\t\t\tif (alpha < 1)\n\t\t\t\t\t\tattrs[entry.attribute + '-opacity'] = alpha;\n\t\t\t\t}\n\t\t\t\tif (type === 'style') {\n\t\t\t\t\tstyle.push(entry.attribute + ': ' + value);\n\t\t\t\t} else {\n\t\t\t\t\tattrs[entry.attribute] = value == null ? 'none'\n\t\t\t\t\t\t\t: type === 'color' ? value.gradient\n\t\t\t\t\t\t\t\t? exportGradient(value, item)\n\t\t\t\t\t\t\t\t: value.toCSS(true)\n\t\t\t\t\t\t\t: type === 'array' ? value.join(',')\n\t\t\t\t\t\t\t: type === 'lookup' ? entry.toSVG[value]\n\t\t\t\t\t\t\t: value;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tif (style.length)\n\t\t\tattrs.style = style.join(';');\n\n\t\tif (attrs.opacity === 1)\n\t\t\tdelete attrs.opacity;\n\n\t\tif (!item._visible)\n\t\t\tattrs.visibility = 'hidden';\n\n\t\treturn SvgElement.set(node, attrs, formatter);\n\t}\n\n\tvar definitions;\n\tfunction getDefinition(item, type) {\n\t\tif (!definitions)\n\t\t\tdefinitions = { ids: {}, svgs: {} };\n\t\treturn item && definitions.svgs[type + '-'\n\t\t\t\t+ (item._id || item.__id || (item.__id = UID.get('svg')))];\n\t}\n\n\tfunction setDefinition(item, node, type) {\n\t\tif (!definitions)\n\t\t\tgetDefinition();\n\t\tvar typeId = definitions.ids[type] = (definitions.ids[type] || 0) + 1;\n\t\tnode.id = type + '-' + typeId;\n\t\tdefinitions.svgs[type + '-' + (item._id || item.__id)] = node;\n\t}\n\n\tfunction exportDefinitions(node, options) {\n\t\tvar svg = node,\n\t\t\tdefs = null;\n\t\tif (definitions) {\n\t\t\tsvg = node.nodeName.toLowerCase() === 'svg' && node;\n\t\t\tfor (var i in definitions.svgs) {\n\t\t\t\tif (!defs) {\n\t\t\t\t\tif (!svg) {\n\t\t\t\t\t\tsvg = SvgElement.create('svg');\n\t\t\t\t\t\tsvg.appendChild(node);\n\t\t\t\t\t}\n\t\t\t\t\tdefs = svg.insertBefore(SvgElement.create('defs'),\n\t\t\t\t\t\t\tsvg.firstChild);\n\t\t\t\t}\n\t\t\t\tdefs.appendChild(definitions.svgs[i]);\n\t\t\t}\n\t\t\tdefinitions = null;\n\t\t}\n\t\treturn options.asString\n\t\t\t\t? new self.XMLSerializer().serializeToString(svg)\n\t\t\t\t: svg;\n\t}\n\n\tfunction exportSVG(item, options, isRoot) {\n\t\tvar exporter = exporters[item._class],\n\t\t\tnode = exporter && exporter(item, options);\n\t\tif (node) {\n\t\t\tvar onExport = options.onExport;\n\t\t\tif (onExport)\n\t\t\t\tnode = onExport(item, node, options) || node;\n\t\t\tvar data = JSON.stringify(item._data);\n\t\t\tif (data && data !== '{}' && data !== 'null')\n\t\t\t\tnode.setAttribute('data-paper-data', data);\n\t\t}\n\t\treturn node && applyStyle(item, node, isRoot);\n\t}\n\n\tfunction setOptions(options) {\n\t\tif (!options)\n\t\t\toptions = {};\n\t\tformatter = new Formatter(options.precision);\n\t\treturn options;\n\t}\n\n\tItem.inject({\n\t\texportSVG: function(options) {\n\t\t\toptions = setOptions(options);\n\t\t\treturn exportDefinitions(exportSVG(this, options, true), options);\n\t\t}\n\t});\n\n\tProject.inject({\n\t\texportSVG: function(options) {\n\t\t\toptions = setOptions(options);\n\t\t\tvar children = this._children,\n\t\t\t\tview = this.getView(),\n\t\t\t\tbounds = Base.pick(options.bounds, 'view'),\n\t\t\t\tmx = options.matrix || bounds === 'view' && view._matrix,\n\t\t\t\tmatrix = mx && Matrix.read([mx]),\n\t\t\t\trect = bounds === 'view'\n\t\t\t\t\t? new Rectangle([0, 0], view.getViewSize())\n\t\t\t\t\t: bounds === 'content'\n\t\t\t\t\t\t? Item._getBounds(children, matrix, { stroke: true, drawnTextBounds: true })\n\t\t\t\t\t\t\t.rect\n\t\t\t\t\t\t: Rectangle.read([bounds], 0, { readNull: true }),\n\t\t\t\tattrs = {\n\t\t\t\t\tversion: '1.1',\n\t\t\t\t\txmlns: SvgElement.svg,\n\t\t\t\t\t'xmlns:xlink': SvgElement.xlink,\n\t\t\t\t};\n\t\t\tif (rect) {\n\t\t\t\tattrs.width = rect.width;\n\t\t\t\tattrs.height = rect.height;\n\t\t\t\tif (rect.x || rect.y)\n\t\t\t\t\tattrs.viewBox = formatter.rectangle(rect);\n\t\t\t}\n\t\t\tvar node = SvgElement.create('svg', attrs, formatter),\n\t\t\t\tparent = node;\n\t\t\tif (matrix && !matrix.isIdentity()) {\n\t\t\t\tparent = node.appendChild(SvgElement.create('g',\n\t\t\t\t\t\tgetTransform(matrix), formatter));\n\t\t\t}\n\t\t\tfor (var i = 0, l = children.length; i < l; i++) {\n\t\t\t\tparent.appendChild(exportSVG(children[i], options, true));\n\t\t\t}\n\t\t\treturn exportDefinitions(node, options);\n\t\t}\n\t});\n};\n\nnew function() {\n\n\tvar definitions = {},\n\t\trootSize;\n\n\tfunction getValue(node, name, isString, allowNull, allowPercent) {\n\t\tvar value = SvgElement.get(node, name),\n\t\t\tres = value == null\n\t\t\t\t? allowNull\n\t\t\t\t\t? null\n\t\t\t\t\t: isString ? '' : 0\n\t\t\t\t: isString\n\t\t\t\t\t? value\n\t\t\t\t\t: parseFloat(value);\n\t\treturn /%\\s*$/.test(value)\n\t\t\t? (res / 100) * (allowPercent ? 1\n\t\t\t\t: rootSize[/x|^width/.test(name) ? 'width' : 'height'])\n\t\t\t: res;\n\t}\n\n\tfunction getPoint(node, x, y, allowNull, allowPercent) {\n\t\tx = getValue(node, x || 'x', false, allowNull, allowPercent);\n\t\ty = getValue(node, y || 'y', false, allowNull, allowPercent);\n\t\treturn allowNull && (x == null || y == null) ? null\n\t\t\t\t: new Point(x, y);\n\t}\n\n\tfunction getSize(node, w, h, allowNull, allowPercent) {\n\t\tw = getValue(node, w || 'width', false, allowNull, allowPercent);\n\t\th = getValue(node, h || 'height', false, allowNull, allowPercent);\n\t\treturn allowNull && (w == null || h == null) ? null\n\t\t\t\t: new Size(w, h);\n\t}\n\n\tfunction convertValue(value, type, lookup) {\n\t\treturn value === 'none' ? null\n\t\t\t\t: type === 'number' ? parseFloat(value)\n\t\t\t\t: type === 'array' ?\n\t\t\t\t\tvalue ? value.split(/[\\s,]+/g).map(parseFloat) : []\n\t\t\t\t: type === 'color' ? getDefinition(value) || value\n\t\t\t\t: type === 'lookup' ? lookup[value]\n\t\t\t\t: value;\n\t}\n\n\tfunction importGroup(node, type, options, isRoot) {\n\t\tvar nodes = node.childNodes,\n\t\t\tisClip = type === 'clippath',\n\t\t\tisDefs = type === 'defs',\n\t\t\titem = new Group(),\n\t\t\tproject = item._project,\n\t\t\tcurrentStyle = project._currentStyle,\n\t\t\tchildren = [];\n\t\tif (!isClip && !isDefs) {\n\t\t\titem = applyAttributes(item, node, isRoot);\n\t\t\tproject._currentStyle = item._style.clone();\n\t\t}\n\t\tif (isRoot) {\n\t\t\tvar defs = node.querySelectorAll('defs');\n\t\t\tfor (var i = 0, l = defs.length; i < l; i++) {\n\t\t\t\timportNode(defs[i], options, false);\n\t\t\t}\n\t\t}\n\t\tfor (var i = 0, l = nodes.length; i < l; i++) {\n\t\t\tvar childNode = nodes[i],\n\t\t\t\tchild;\n\t\t\tif (childNode.nodeType === 1\n\t\t\t\t\t&& !/^defs$/i.test(childNode.nodeName)\n\t\t\t\t\t&& (child = importNode(childNode, options, false))\n\t\t\t\t\t&& !(child instanceof SymbolDefinition))\n\t\t\t\tchildren.push(child);\n\t\t}\n\t\titem.addChildren(children);\n\t\tif (isClip)\n\t\t\titem = applyAttributes(item.reduce(), node, isRoot);\n\t\tproject._currentStyle = currentStyle;\n\t\tif (isClip || isDefs) {\n\t\t\titem.remove();\n\t\t\titem = null;\n\t\t}\n\t\treturn item;\n\t}\n\n\tfunction importPoly(node, type) {\n\t\tvar coords = node.getAttribute('points').match(\n\t\t\t\t\t/[+-]?(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][+-]?\\d+)?/g),\n\t\t\tpoints = [];\n\t\tfor (var i = 0, l = coords.length; i < l; i += 2)\n\t\t\tpoints.push(new Point(\n\t\t\t\t\tparseFloat(coords[i]),\n\t\t\t\t\tparseFloat(coords[i + 1])));\n\t\tvar path = new Path(points);\n\t\tif (type === 'polygon')\n\t\t\tpath.closePath();\n\t\treturn path;\n\t}\n\n\tfunction importPath(node) {\n\t\treturn PathItem.create(node.getAttribute('d'));\n\t}\n\n\tfunction importGradient(node, type) {\n\t\tvar id = (getValue(node, 'href', true) || '').substring(1),\n\t\t\tradial = type === 'radialgradient',\n\t\t\tgradient;\n\t\tif (id) {\n\t\t\tgradient = definitions[id].getGradient();\n\t\t\tif (gradient._radial ^ radial) {\n\t\t\t\tgradient = gradient.clone();\n\t\t\t\tgradient._radial = radial;\n\t\t\t}\n\t\t} else {\n\t\t\tvar nodes = node.childNodes,\n\t\t\t\tstops = [];\n\t\t\tfor (var i = 0, l = nodes.length; i < l; i++) {\n\t\t\t\tvar child = nodes[i];\n\t\t\t\tif (child.nodeType === 1)\n\t\t\t\t\tstops.push(applyAttributes(new GradientStop(), child));\n\t\t\t}\n\t\t\tgradient = new Gradient(stops, radial);\n\t\t}\n\t\tvar origin, destination, highlight,\n\t\t\tscaleToBounds = getValue(node, 'gradientUnits', true) !==\n\t\t\t\t'userSpaceOnUse';\n\t\tif (radial) {\n\t\t\torigin = getPoint(node, 'cx', 'cy', false, scaleToBounds);\n\t\t\tdestination = origin.add(\n\t\t\t\t\tgetValue(node, 'r', false, false, scaleToBounds), 0);\n\t\t\thighlight = getPoint(node, 'fx', 'fy', true, scaleToBounds);\n\t\t} else {\n\t\t\torigin = getPoint(node, 'x1', 'y1', false, scaleToBounds);\n\t\t\tdestination = getPoint(node, 'x2', 'y2', false, scaleToBounds);\n\t\t}\n\t\tvar color = applyAttributes(\n\t\t\t\tnew Color(gradient, origin, destination, highlight), node);\n\t\tcolor._scaleToBounds = scaleToBounds;\n\t\treturn null;\n\t}\n\n\tvar importers = {\n\t\t'#document': function (node, type, options, isRoot) {\n\t\t\tvar nodes = node.childNodes;\n\t\t\tfor (var i = 0, l = nodes.length; i < l; i++) {\n\t\t\t\tvar child = nodes[i];\n\t\t\t\tif (child.nodeType === 1)\n\t\t\t\t\treturn importNode(child, options, isRoot);\n\t\t\t}\n\t\t},\n\t\tg: importGroup,\n\t\tsvg: importGroup,\n\t\tclippath: importGroup,\n\t\tpolygon: importPoly,\n\t\tpolyline: importPoly,\n\t\tpath: importPath,\n\t\tlineargradient: importGradient,\n\t\tradialgradient: importGradient,\n\n\t\timage: function (node) {\n\t\t\tvar raster = new Raster(getValue(node, 'href', true));\n\t\t\traster.on('load', function() {\n\t\t\t\tvar size = getSize(node);\n\t\t\t\tthis.setSize(size);\n\t\t\t\tvar center = getPoint(node).add(size.divide(2));\n\t\t\t\tthis._matrix.append(new Matrix().translate(center));\n\t\t\t});\n\t\t\treturn raster;\n\t\t},\n\n\t\tsymbol: function(node, type, options, isRoot) {\n\t\t\treturn new SymbolDefinition(\n\t\t\t\t\timportGroup(node, type, options, isRoot), true);\n\t\t},\n\n\t\tdefs: importGroup,\n\n\t\tuse: function(node) {\n\t\t\tvar id = (getValue(node, 'href', true) || '').substring(1),\n\t\t\t\tdefinition = definitions[id],\n\t\t\t\tpoint = getPoint(node);\n\t\t\treturn definition\n\t\t\t\t\t? definition instanceof SymbolDefinition\n\t\t\t\t\t\t? definition.place(point)\n\t\t\t\t\t\t: definition.clone().translate(point)\n\t\t\t\t\t: null;\n\t\t},\n\n\t\tcircle: function(node) {\n\t\t\treturn new Shape.Circle(\n\t\t\t\t\tgetPoint(node, 'cx', 'cy'),\n\t\t\t\t\tgetValue(node, 'r'));\n\t\t},\n\n\t\tellipse: function(node) {\n\t\t\treturn new Shape.Ellipse({\n\t\t\t\tcenter: getPoint(node, 'cx', 'cy'),\n\t\t\t\tradius: getSize(node, 'rx', 'ry')\n\t\t\t});\n\t\t},\n\n\t\trect: function(node) {\n\t\t\treturn new Shape.Rectangle(new Rectangle(\n\t\t\t\t\t\tgetPoint(node),\n\t\t\t\t\t\tgetSize(node)\n\t\t\t\t\t), getSize(node, 'rx', 'ry'));\n\t\t\t},\n\n\t\tline: function(node) {\n\t\t\treturn new Path.Line(\n\t\t\t\t\tgetPoint(node, 'x1', 'y1'),\n\t\t\t\t\tgetPoint(node, 'x2', 'y2'));\n\t\t},\n\n\t\ttext: function(node) {\n\n\t\t\tvar fontSize = parseFloat(node.getAttribute(\"font-size\"));\n\t\t\tvar alignmentBaseline = node.getAttribute(\"alignment-baseline\");\n\t\t\tif (node.childElementCount === 0) {\n\t\t\t\tvar text = new PointText();\n\t\t\t\ttext.setContent(node.textContent.trim() || '');\n\t\t\t\ttext.translate(0, text._style.getLeading());\n\t\t\t\tif (!isNaN(fontSize)) text.setFontSize(fontSize);\n\t\t\t\treturn text;\n\t\t\t} else {\n\t\t\t\tvar lines = [];\n\t\t\t\tvar spacing = 1.2;\n\t\t\t\tfor (var i = 0; i < node.childNodes.length; i++) {\n\t\t\t\t\tvar child = node.childNodes[i];\n\t\t\t\t\tif (!child.getAttribute) continue;\n\t\t\t\t\tlines.push(child.textContent);\n\t\t\t\t\tvar dyString = child.getAttribute('dy');\n\t\t\t\t\tif (dyString) {\n\t\t\t\t\t\tvar dy = parseFloat(dyString);\n\t\t\t\t\t\tif (!isNaN(dy)) {\n\t\t\t\t\t\t\tif (dyString.endsWith('em')) {\n\t\t\t\t\t\t\t\tspacing = dy;\n\t\t\t\t\t\t\t} else if (dyString.endsWith('px') && !isNaN(fontSize)) {\n\t\t\t\t\t\t\t\tspacing = dy / fontSize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar text = new PointText();\n\t\t\t\tif (!isNaN(fontSize)) text.setFontSize(fontSize);\n\t\t\t\ttext.setLeading(text.fontSize * spacing);\n\t\t\t\tif (alignmentBaseline === 'text-before-edge') {\n\t\t\t\t\ttext.setContent(' ');\n\t\t\t\t\ttext.translate(0, text.bounds.height);\n\t\t\t\t}\n\t\t\t\ttext.setContent(lines.join('\\n'));\n\t\t\t\treturn text;\n\t\t\t}\n\t\t}\n\t};\n\n\tfunction applyTransform(item, value, name, node) {\n\t\tif (item.transform) {\n\t\t\tvar transforms = (node.getAttribute(name) || '').split(/\\)\\s*/g),\n\t\t\t\tmatrix = new Matrix();\n\t\t\tfor (var i = 0, l = transforms.length; i < l; i++) {\n\t\t\t\tvar transform = transforms[i];\n\t\t\t\tif (!transform)\n\t\t\t\t\tbreak;\n\t\t\t\tvar parts = transform.split(/\\(\\s*/),\n\t\t\t\t\tcommand = parts[0],\n\t\t\t\t\tv = parts[1].split(/[\\s,]+/g);\n\t\t\t\tfor (var j = 0, m = v.length; j < m; j++)\n\t\t\t\t\tv[j] = parseFloat(v[j]);\n\t\t\t\tswitch (command) {\n\t\t\t\tcase 'matrix':\n\t\t\t\t\tmatrix.append(\n\t\t\t\t\t\t\tnew Matrix(v[0], v[1], v[2], v[3], v[4], v[5]));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'rotate':\n\t\t\t\t\tmatrix.rotate(v[0], v[1] || 0, v[2] || 0);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'translate':\n\t\t\t\t\tmatrix.translate(v[0], v[1] || 0);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'scale':\n\t\t\t\t\tmatrix.scale(v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'skewX':\n\t\t\t\t\tmatrix.skew(v[0], 0);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'skewY':\n\t\t\t\t\tmatrix.skew(0, v[0]);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\titem.transform(matrix);\n\t\t}\n\t}\n\n\tfunction applyOpacity(item, value, name) {\n\t\tvar key = name === 'fill-opacity' ? 'getFillColor' : 'getStrokeColor',\n\t\t\tcolor = item[key] && item[key]();\n\t\tif (color)\n\t\t\tcolor.setAlpha(parseFloat(value));\n\t}\n\n\tvar attributes = Base.set(Base.each(SvgStyles, function(entry) {\n\t\tthis[entry.attribute] = function(item, value) {\n\t\t\tif (item[entry.set]) {\n\t\t\t\titem[entry.set](convertValue(value, entry.type, entry.fromSVG));\n\t\t\t\tif (entry.type === 'color') {\n\t\t\t\t\tvar color = item[entry.get]();\n\t\t\t\t\tif (color) {\n\t\t\t\t\t\tif (color._scaleToBounds) {\n\t\t\t\t\t\t\tvar bounds = item.getBounds();\n\t\t\t\t\t\t\tcolor.transform(new Matrix()\n\t\t\t\t\t\t\t\t.translate(bounds.getPoint())\n\t\t\t\t\t\t\t\t.scale(bounds.getSize()));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}, {}), {\n\t\tid: function(item, value) {\n\t\t\tdefinitions[value] = item;\n\t\t\tif (item.setName)\n\t\t\t\titem.setName(value);\n\t\t},\n\n\t\t'clip-path': function(item, value) {\n\t\t\tvar clip = getDefinition(value);\n\t\t\tif (clip) {\n\t\t\t\tclip = clip.clone();\n\t\t\t\tclip.setClipMask(true);\n\t\t\t\tif (item instanceof Group) {\n\t\t\t\t\titem.insertChild(0, clip);\n\t\t\t\t} else {\n\t\t\t\t\treturn new Group(clip, item);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tgradientTransform: applyTransform,\n\t\ttransform: applyTransform,\n\n\t\t'fill-opacity': applyOpacity,\n\t\t'stroke-opacity': applyOpacity,\n\n\t\tvisibility: function(item, value) {\n\t\t\tif (item.setVisible)\n\t\t\t\titem.setVisible(value === 'visible');\n\t\t},\n\n\t\tdisplay: function(item, value) {\n\t\t\tif (item.setVisible)\n\t\t\t\titem.setVisible(value !== null);\n\t\t},\n\n\t\t'stop-color': function(item, value) {\n\t\t\tif (item.setColor)\n\t\t\t\titem.setColor(value);\n\t\t},\n\n\t\t'stop-opacity': function(item, value) {\n\t\t\tif (item._color)\n\t\t\t\titem._color.setAlpha(parseFloat(value));\n\t\t},\n\n\t\toffset: function(item, value) {\n\t\t\tif (item.setOffset) {\n\t\t\t\tvar percent = value.match(/(.*)%$/);\n\t\t\t\titem.setOffset(percent ? percent[1] / 100 : parseFloat(value));\n\t\t\t}\n\t\t},\n\n\t\tviewBox: function(item, value, name, node, styles) {\n\t\t\tvar rect = new Rectangle(convertValue(value, 'array')),\n\t\t\t\tsize = getSize(node, null, null, true),\n\t\t\t\tgroup,\n\t\t\t\tmatrix;\n\t\t\tif (item instanceof Group) {\n\t\t\t\tvar scale = size ? size.divide(rect.getSize()) : 1,\n\t\t\t\tmatrix = new Matrix().scale(scale)\n\t\t\t\t\t\t.translate(rect.getPoint().negate());\n\t\t\t\tgroup = item;\n\t\t\t} else if (item instanceof SymbolDefinition) {\n\t\t\t\tif (size)\n\t\t\t\t\trect.setSize(size);\n\t\t\t\tgroup = item._item;\n\t\t\t}\n\t\t\tif (group) {\n\t\t\t\tif (getAttribute(node, 'overflow', styles) !== 'visible') {\n\t\t\t\t\tvar clip = new Shape.Rectangle(rect);\n\t\t\t\t\tclip.setClipMask(true);\n\t\t\t\t\tgroup.addChild(clip);\n\t\t\t\t}\n\t\t\t\tif (matrix)\n\t\t\t\t\tgroup.transform(matrix);\n\t\t\t}\n\t\t}\n\t});\n\n\tfunction getAttribute(node, name, styles) {\n\t\tvar attr = node.attributes[name],\n\t\t\tvalue = attr && attr.value;\n\t\tif (!value && node.style) {\n\t\t\tvar style = Base.camelize(name);\n\t\t\tvalue = node.style[style];\n\t\t\tif (!value && styles.node[style] !== styles.parent[style])\n\t\t\t\tvalue = styles.node[style];\n\t\t}\n\t\treturn !value ? undefined\n\t\t\t\t: value === 'none' ? null\n\t\t\t\t: value;\n\t}\n\n\tfunction applyAttributes(item, node, isRoot) {\n\t\tvar parent = node.parentNode,\n\t\t\tstyles = {\n\t\t\t\tnode: DomElement.getStyles(node) || {},\n\t\t\t\tparent: !isRoot && !/^defs$/i.test(parent.tagName)\n\t\t\t\t\t\t&& DomElement.getStyles(parent) || {}\n\t\t\t};\n\t\tBase.each(attributes, function(apply, name) {\n\t\t\tvar value = getAttribute(node, name, styles);\n\t\t\titem = value !== undefined\n\t\t\t\t\t&& apply(item, value, name, node, styles) || item;\n\t\t});\n\t\treturn item;\n\t}\n\n\tfunction getDefinition(value) {\n\t\tvar match = value && value.match(/\\((?:[\"'#]*)([^\"')]+)/),\n\t\t\tname = match && match[1],\n\t\t\tres = name && definitions[window\n\t\t\t\t\t? name.replace(window.location.href.split('#')[0] + '#', '')\n\t\t\t\t\t: name];\n\t\tif (res && res._scaleToBounds) {\n\t\t\tres = res.clone();\n\t\t\tres._scaleToBounds = true;\n\t\t}\n\t\treturn res;\n\t}\n\n\tfunction importNode(node, options, isRoot) {\n\t\tvar type = node.nodeName.toLowerCase(),\n\t\t\tisElement = type !== '#document',\n\t\t\tbody = document.body,\n\t\t\tcontainer,\n\t\t\tparent,\n\t\t\tnext;\n\t\tif (isRoot && isElement) {\n\t\t\trootSize = paper.getView().getSize();\n\t\t\trootSize = getSize(node, null, null, true) || rootSize;\n\t\t\tcontainer = SvgElement.create('svg', {\n\t\t\t\tstyle: 'stroke-width: 1px; stroke-miterlimit: 10'\n\t\t\t});\n\t\t\tparent = node.parentNode;\n\t\t\tnext = node.nextSibling;\n\t\t\tcontainer.appendChild(node);\n\t\t\tbody.appendChild(container);\n\t\t}\n\t\tvar settings = paper.settings,\n\t\t\tapplyMatrix = settings.applyMatrix,\n\t\t\tinsertItems = settings.insertItems;\n\t\tsettings.applyMatrix = false;\n\t\tsettings.insertItems = false;\n\t\tvar importer = importers[type],\n\t\t\titem = importer && importer(node, type, options, isRoot) || null;\n\t\tsettings.insertItems = insertItems;\n\t\tsettings.applyMatrix = applyMatrix;\n\t\tif (item) {\n\t\t\tif (isElement && !(item instanceof Group))\n\t\t\t\titem = applyAttributes(item, node, isRoot);\n\t\t\tvar onImport = options.onImport,\n\t\t\t\tdata = isElement && node.getAttribute('data-paper-data');\n\t\t\tif (onImport)\n\t\t\t\titem = onImport(node, item, options) || item;\n\t\t\tif (options.expandShapes && item instanceof Shape) {\n\t\t\t\titem.remove();\n\t\t\t\titem = item.toPath();\n\t\t\t}\n\t\t\tif (data)\n\t\t\t\titem._data = JSON.parse(data);\n\t\t}\n\t\tif (container) {\n\t\t\tbody.removeChild(container);\n\t\t\tif (parent) {\n\t\t\t\tif (next) {\n\t\t\t\t\tparent.insertBefore(node, next);\n\t\t\t\t} else {\n\t\t\t\t\tparent.appendChild(node);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (isRoot) {\n\t\t\tdefinitions = {};\n\t\t\tif (item && Base.pick(options.applyMatrix, applyMatrix))\n\t\t\t\titem.matrix.apply(true, true);\n\t\t}\n\t\treturn item;\n\t}\n\n\tfunction importSVG(source, options, owner) {\n\t\tif (!source)\n\t\t\treturn null;\n\t\toptions = typeof options === 'function' ? { onLoad: options }\n\t\t\t\t: options || {};\n\t\tvar scope = paper,\n\t\t\titem = null;\n\n\t\tfunction onLoad(svg) {\n\t\t\ttry {\n\t\t\t\tvar node = typeof svg === 'object' ? svg : new self.DOMParser()\n\t\t\t\t\t\t.parseFromString(svg, 'image/svg+xml');\n\t\t\t\tif (!node.nodeName) {\n\t\t\t\t\tnode = null;\n\t\t\t\t\tthrow new Error('Unsupported SVG source: ' + source);\n\t\t\t\t}\n\t\t\t\tpaper = scope;\n\t\t\t\titem = importNode(node, options, true);\n\t\t\t\tif (!options || options.insert !== false) {\n\t\t\t\t\towner._insertItem(undefined, item);\n\t\t\t\t}\n\t\t\t\tvar onLoad = options.onLoad;\n\t\t\t\tif (onLoad)\n\t\t\t\t\tonLoad(item, svg);\n\t\t\t} catch (e) {\n\t\t\t\tonError(e);\n\t\t\t}\n\t\t}\n\n\t\tfunction onError(message, status) {\n\t\t\tvar onError = options.onError;\n\t\t\tif (onError) {\n\t\t\t\tonError(message, status);\n\t\t\t} else {\n\t\t\t\tthrow new Error(message);\n\t\t\t}\n\t\t}\n\n\t\tif (typeof source === 'string' && !/^.* 3) {\n\t cats.sort(function(a, b) {return b.length - a.length;});\n\t f += \"switch(str.length){\";\n\t for (var i = 0; i < cats.length; ++i) {\n\t\tvar cat = cats[i];\n\t\tf += \"case \" + cat[0].length + \":\";\n\t\tcompareTo(cat);\n\t }\n\t f += \"}\";\n\n\t} else {\n\t compareTo(words);\n\t}\n\treturn new Function(\"str\", f);\n }\n\n var isReservedWord3 = makePredicate(\"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\");\n\n var isReservedWord5 = makePredicate(\"class enum extends super const export import\");\n\n var isStrictReservedWord = makePredicate(\"implements interface let package private protected public static yield\");\n\n var isStrictBadIdWord = makePredicate(\"eval arguments\");\n\n var isKeyword = makePredicate(\"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\");\n\n var nonASCIIwhitespace = /[\\u1680\\u180e\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/;\n var nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05d0-\\u05ea\\u05f0-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u08a0\\u08a2-\\u08ac\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097f\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\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\\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-\\u0c33\\u0c35-\\u0c39\\u0c3d\\u0c58\\u0c59\\u0c60\\u0c61\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d60\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\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\\u13a0-\\u13f4\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f0\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1877\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191c\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19c1-\\u19c7\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\\u212f-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2e2f\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312d\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua697\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua78e\\ua790-\\ua793\\ua7a0-\\ua7aa\\ua7f8-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa80-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uabc0-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\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\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n var nonASCIIidentifierChars = \"\\u0300-\\u036f\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u0620-\\u0649\\u0672-\\u06d3\\u06e7-\\u06e8\\u06fb-\\u06fc\\u0730-\\u074a\\u0800-\\u0814\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0840-\\u0857\\u08e4-\\u08fe\\u0900-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962-\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09d7\\u09df-\\u09e0\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2-\\u0ae3\\u0ae6-\\u0aef\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b56\\u0b57\\u0b5f-\\u0b60\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c01-\\u0c03\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62-\\u0c63\\u0c66-\\u0c6f\\u0c82\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2-\\u0ce3\\u0ce6-\\u0cef\\u0d02\\u0d03\\u0d46-\\u0d48\\u0d57\\u0d62-\\u0d63\\u0d66-\\u0d6f\\u0d82\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0df2\\u0df3\\u0e34-\\u0e3a\\u0e40-\\u0e45\\u0e50-\\u0e59\\u0eb4-\\u0eb9\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f41-\\u0f47\\u0f71-\\u0f84\\u0f86-\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1029\\u1040-\\u1049\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u170e-\\u1710\\u1720-\\u1730\\u1740-\\u1750\\u1772\\u1773\\u1780-\\u17b2\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1920-\\u192b\\u1930-\\u193b\\u1951-\\u196d\\u19b0-\\u19c0\\u19c8-\\u19c9\\u19d0-\\u19d9\\u1a00-\\u1a15\\u1a20-\\u1a53\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1b46-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c00-\\u1c22\\u1c40-\\u1c49\\u1c5b-\\u1c7d\\u1cd0-\\u1cd2\\u1d00-\\u1dbe\\u1e01-\\u1f15\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2d81-\\u2d96\\u2de0-\\u2dff\\u3021-\\u3028\\u3099\\u309a\\ua640-\\ua66d\\ua674-\\ua67d\\ua69f\\ua6f0-\\ua6f1\\ua7f8-\\ua800\\ua806\\ua80b\\ua823-\\ua827\\ua880-\\ua881\\ua8b4-\\ua8c4\\ua8d0-\\ua8d9\\ua8f3-\\ua8f7\\ua900-\\ua909\\ua926-\\ua92d\\ua930-\\ua945\\ua980-\\ua983\\ua9b3-\\ua9c0\\uaa00-\\uaa27\\uaa40-\\uaa41\\uaa4c-\\uaa4d\\uaa50-\\uaa59\\uaa7b\\uaae0-\\uaae9\\uaaf2-\\uaaf3\\uabc0-\\uabe1\\uabec\\uabed\\uabf0-\\uabf9\\ufb20-\\ufb28\\ufe00-\\ufe0f\\ufe20-\\ufe26\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\";\n var nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\");\n var nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\");\n\n var newline = /[\\n\\r\\u2028\\u2029]/;\n\n var lineBreak = /\\r\\n|[\\n\\r\\u2028\\u2029]/g;\n\n var isIdentifierStart = exports.isIdentifierStart = function(code) {\n\tif (code < 65) return code === 36;\n\tif (code < 91) return true;\n\tif (code < 97) return code === 95;\n\tif (code < 123)return true;\n\treturn code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));\n };\n\n var isIdentifierChar = exports.isIdentifierChar = function(code) {\n\tif (code < 48) return code === 36;\n\tif (code < 58) return true;\n\tif (code < 65) return false;\n\tif (code < 91) return true;\n\tif (code < 97) return code === 95;\n\tif (code < 123)return true;\n\treturn code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n };\n\n function line_loc_t() {\n\tthis.line = tokCurLine;\n\tthis.column = tokPos - tokLineStart;\n }\n\n function initTokenState() {\n\ttokCurLine = 1;\n\ttokPos = tokLineStart = 0;\n\ttokRegexpAllowed = true;\n\tskipSpace();\n }\n\n function finishToken(type, val) {\n\ttokEnd = tokPos;\n\tif (options.locations) tokEndLoc = new line_loc_t;\n\ttokType = type;\n\tskipSpace();\n\ttokVal = val;\n\ttokRegexpAllowed = type.beforeExpr;\n }\n\n function skipBlockComment() {\n\tvar startLoc = options.onComment && options.locations && new line_loc_t;\n\tvar start = tokPos, end = input.indexOf(\"*/\", tokPos += 2);\n\tif (end === -1) raise(tokPos - 2, \"Unterminated comment\");\n\ttokPos = end + 2;\n\tif (options.locations) {\n\t lineBreak.lastIndex = start;\n\t var match;\n\t while ((match = lineBreak.exec(input)) && match.index < tokPos) {\n\t\t++tokCurLine;\n\t\ttokLineStart = match.index + match[0].length;\n\t }\n\t}\n\tif (options.onComment)\n\t options.onComment(true, input.slice(start + 2, end), start, tokPos,\n\t\t\t\t\t\tstartLoc, options.locations && new line_loc_t);\n }\n\n function skipLineComment() {\n\tvar start = tokPos;\n\tvar startLoc = options.onComment && options.locations && new line_loc_t;\n\tvar ch = input.charCodeAt(tokPos+=2);\n\twhile (tokPos < inputLen && ch !== 10 && ch !== 13 && ch !== 8232 && ch !== 8233) {\n\t ++tokPos;\n\t ch = input.charCodeAt(tokPos);\n\t}\n\tif (options.onComment)\n\t options.onComment(false, input.slice(start + 2, tokPos), start, tokPos,\n\t\t\t\t\t\tstartLoc, options.locations && new line_loc_t);\n }\n\n function skipSpace() {\n\twhile (tokPos < inputLen) {\n\t var ch = input.charCodeAt(tokPos);\n\t if (ch === 32) {\n\t\t++tokPos;\n\t } else if (ch === 13) {\n\t\t++tokPos;\n\t\tvar next = input.charCodeAt(tokPos);\n\t\tif (next === 10) {\n\t\t ++tokPos;\n\t\t}\n\t\tif (options.locations) {\n\t\t ++tokCurLine;\n\t\t tokLineStart = tokPos;\n\t\t}\n\t } else if (ch === 10 || ch === 8232 || ch === 8233) {\n\t\t++tokPos;\n\t\tif (options.locations) {\n\t\t ++tokCurLine;\n\t\t tokLineStart = tokPos;\n\t\t}\n\t } else if (ch > 8 && ch < 14) {\n\t\t++tokPos;\n\t } else if (ch === 47) {\n\t\tvar next = input.charCodeAt(tokPos + 1);\n\t\tif (next === 42) {\n\t\t skipBlockComment();\n\t\t} else if (next === 47) {\n\t\t skipLineComment();\n\t\t} else break;\n\t } else if (ch === 160) {\n\t\t++tokPos;\n\t } else if (ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {\n\t\t++tokPos;\n\t } else {\n\t\tbreak;\n\t }\n\t}\n }\n\n function readToken_dot() {\n\tvar next = input.charCodeAt(tokPos + 1);\n\tif (next >= 48 && next <= 57) return readNumber(true);\n\t++tokPos;\n\treturn finishToken(_dot);\n }\n\n function readToken_slash() {\n\tvar next = input.charCodeAt(tokPos + 1);\n\tif (tokRegexpAllowed) {++tokPos; return readRegexp();}\n\tif (next === 61) return finishOp(_assign, 2);\n\treturn finishOp(_slash, 1);\n }\n\n function readToken_mult_modulo() {\n\tvar next = input.charCodeAt(tokPos + 1);\n\tif (next === 61) return finishOp(_assign, 2);\n\treturn finishOp(_multiplyModulo, 1);\n }\n\n function readToken_pipe_amp(code) {\n\tvar next = input.charCodeAt(tokPos + 1);\n\tif (next === code) return finishOp(code === 124 ? _logicalOR : _logicalAND, 2);\n\tif (next === 61) return finishOp(_assign, 2);\n\treturn finishOp(code === 124 ? _bitwiseOR : _bitwiseAND, 1);\n }\n\n function readToken_caret() {\n\tvar next = input.charCodeAt(tokPos + 1);\n\tif (next === 61) return finishOp(_assign, 2);\n\treturn finishOp(_bitwiseXOR, 1);\n }\n\n function readToken_plus_min(code) {\n\tvar next = input.charCodeAt(tokPos + 1);\n\tif (next === code) {\n\t if (next == 45 && input.charCodeAt(tokPos + 2) == 62 &&\n\t\t newline.test(input.slice(lastEnd, tokPos))) {\n\t\ttokPos += 3;\n\t\tskipLineComment();\n\t\tskipSpace();\n\t\treturn readToken();\n\t }\n\t return finishOp(_incDec, 2);\n\t}\n\tif (next === 61) return finishOp(_assign, 2);\n\treturn finishOp(_plusMin, 1);\n }\n\n function readToken_lt_gt(code) {\n\tvar next = input.charCodeAt(tokPos + 1);\n\tvar size = 1;\n\tif (next === code) {\n\t size = code === 62 && input.charCodeAt(tokPos + 2) === 62 ? 3 : 2;\n\t if (input.charCodeAt(tokPos + size) === 61) return finishOp(_assign, size + 1);\n\t return finishOp(_bitShift, size);\n\t}\n\tif (next == 33 && code == 60 && input.charCodeAt(tokPos + 2) == 45 &&\n\t\tinput.charCodeAt(tokPos + 3) == 45) {\n\t tokPos += 4;\n\t skipLineComment();\n\t skipSpace();\n\t return readToken();\n\t}\n\tif (next === 61)\n\t size = input.charCodeAt(tokPos + 2) === 61 ? 3 : 2;\n\treturn finishOp(_relational, size);\n }\n\n function readToken_eq_excl(code) {\n\tvar next = input.charCodeAt(tokPos + 1);\n\tif (next === 61) return finishOp(_equality, input.charCodeAt(tokPos + 2) === 61 ? 3 : 2);\n\treturn finishOp(code === 61 ? _eq : _prefix, 1);\n }\n\n function getTokenFromCode(code) {\n\tswitch(code) {\n\tcase 46:\n\t return readToken_dot();\n\n\tcase 40: ++tokPos; return finishToken(_parenL);\n\tcase 41: ++tokPos; return finishToken(_parenR);\n\tcase 59: ++tokPos; return finishToken(_semi);\n\tcase 44: ++tokPos; return finishToken(_comma);\n\tcase 91: ++tokPos; return finishToken(_bracketL);\n\tcase 93: ++tokPos; return finishToken(_bracketR);\n\tcase 123: ++tokPos; return finishToken(_braceL);\n\tcase 125: ++tokPos; return finishToken(_braceR);\n\tcase 58: ++tokPos; return finishToken(_colon);\n\tcase 63: ++tokPos; return finishToken(_question);\n\n\tcase 48:\n\t var next = input.charCodeAt(tokPos + 1);\n\t if (next === 120 || next === 88) return readHexNumber();\n\tcase 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57:\n\t return readNumber(false);\n\n\tcase 34: case 39:\n\t return readString(code);\n\n\tcase 47:\n\t return readToken_slash(code);\n\n\tcase 37: case 42:\n\t return readToken_mult_modulo();\n\n\tcase 124: case 38:\n\t return readToken_pipe_amp(code);\n\n\tcase 94:\n\t return readToken_caret();\n\n\tcase 43: case 45:\n\t return readToken_plus_min(code);\n\n\tcase 60: case 62:\n\t return readToken_lt_gt(code);\n\n\tcase 61: case 33:\n\t return readToken_eq_excl(code);\n\n\tcase 126:\n\t return finishOp(_prefix, 1);\n\t}\n\n\treturn false;\n }\n\n function readToken(forceRegexp) {\n\tif (!forceRegexp) tokStart = tokPos;\n\telse tokPos = tokStart + 1;\n\tif (options.locations) tokStartLoc = new line_loc_t;\n\tif (forceRegexp) return readRegexp();\n\tif (tokPos >= inputLen) return finishToken(_eof);\n\n\tvar code = input.charCodeAt(tokPos);\n\tif (isIdentifierStart(code) || code === 92 ) return readWord();\n\n\tvar tok = getTokenFromCode(code);\n\n\tif (tok === false) {\n\t var ch = String.fromCharCode(code);\n\t if (ch === \"\\\\\" || nonASCIIidentifierStart.test(ch)) return readWord();\n\t raise(tokPos, \"Unexpected character '\" + ch + \"'\");\n\t}\n\treturn tok;\n }\n\n function finishOp(type, size) {\n\tvar str = input.slice(tokPos, tokPos + size);\n\ttokPos += size;\n\tfinishToken(type, str);\n }\n\n function readRegexp() {\n\tvar content = \"\", escaped, inClass, start = tokPos;\n\tfor (;;) {\n\t if (tokPos >= inputLen) raise(start, \"Unterminated regular expression\");\n\t var ch = input.charAt(tokPos);\n\t if (newline.test(ch)) raise(start, \"Unterminated regular expression\");\n\t if (!escaped) {\n\t\tif (ch === \"[\") inClass = true;\n\t\telse if (ch === \"]\" && inClass) inClass = false;\n\t\telse if (ch === \"/\" && !inClass) break;\n\t\tescaped = ch === \"\\\\\";\n\t } else escaped = false;\n\t ++tokPos;\n\t}\n\tvar content = input.slice(start, tokPos);\n\t++tokPos;\n\tvar mods = readWord1();\n\tif (mods && !/^[gmsiy]*$/.test(mods)) raise(start, \"Invalid regexp flag\");\n\ttry {\n\t var value = new RegExp(content, mods);\n\t} catch (e) {\n\t if (e instanceof SyntaxError) raise(start, e.message);\n\t raise(e);\n\t}\n\treturn finishToken(_regexp, value);\n }\n\n function readInt(radix, len) {\n\tvar start = tokPos, total = 0;\n\tfor (var i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n\t var code = input.charCodeAt(tokPos), val;\n\t if (code >= 97) val = code - 97 + 10;\n\t else if (code >= 65) val = code - 65 + 10;\n\t else if (code >= 48 && code <= 57) val = code - 48;\n\t else val = Infinity;\n\t if (val >= radix) break;\n\t ++tokPos;\n\t total = total * radix + val;\n\t}\n\tif (tokPos === start || len != null && tokPos - start !== len) return null;\n\n\treturn total;\n }\n\n function readHexNumber() {\n\ttokPos += 2;\n\tvar val = readInt(16);\n\tif (val == null) raise(tokStart + 2, \"Expected hexadecimal number\");\n\tif (isIdentifierStart(input.charCodeAt(tokPos))) raise(tokPos, \"Identifier directly after number\");\n\treturn finishToken(_num, val);\n }\n\n function readNumber(startsWithDot) {\n\tvar start = tokPos, isFloat = false, octal = input.charCodeAt(tokPos) === 48;\n\tif (!startsWithDot && readInt(10) === null) raise(start, \"Invalid number\");\n\tif (input.charCodeAt(tokPos) === 46) {\n\t ++tokPos;\n\t readInt(10);\n\t isFloat = true;\n\t}\n\tvar next = input.charCodeAt(tokPos);\n\tif (next === 69 || next === 101) {\n\t next = input.charCodeAt(++tokPos);\n\t if (next === 43 || next === 45) ++tokPos;\n\t if (readInt(10) === null) raise(start, \"Invalid number\");\n\t isFloat = true;\n\t}\n\tif (isIdentifierStart(input.charCodeAt(tokPos))) raise(tokPos, \"Identifier directly after number\");\n\n\tvar str = input.slice(start, tokPos), val;\n\tif (isFloat) val = parseFloat(str);\n\telse if (!octal || str.length === 1) val = parseInt(str, 10);\n\telse if (/[89]/.test(str) || strict) raise(start, \"Invalid number\");\n\telse val = parseInt(str, 8);\n\treturn finishToken(_num, val);\n }\n\n function readString(quote) {\n\ttokPos++;\n\tvar out = \"\";\n\tfor (;;) {\n\t if (tokPos >= inputLen) raise(tokStart, \"Unterminated string constant\");\n\t var ch = input.charCodeAt(tokPos);\n\t if (ch === quote) {\n\t\t++tokPos;\n\t\treturn finishToken(_string, out);\n\t }\n\t if (ch === 92) {\n\t\tch = input.charCodeAt(++tokPos);\n\t\tvar octal = /^[0-7]+/.exec(input.slice(tokPos, tokPos + 3));\n\t\tif (octal) octal = octal[0];\n\t\twhile (octal && parseInt(octal, 8) > 255) octal = octal.slice(0, -1);\n\t\tif (octal === \"0\") octal = null;\n\t\t++tokPos;\n\t\tif (octal) {\n\t\t if (strict) raise(tokPos - 2, \"Octal literal in strict mode\");\n\t\t out += String.fromCharCode(parseInt(octal, 8));\n\t\t tokPos += octal.length - 1;\n\t\t} else {\n\t\t switch (ch) {\n\t\t case 110: out += \"\\n\"; break;\n\t\t case 114: out += \"\\r\"; break;\n\t\t case 120: out += String.fromCharCode(readHexChar(2)); break;\n\t\t case 117: out += String.fromCharCode(readHexChar(4)); break;\n\t\t case 85: out += String.fromCharCode(readHexChar(8)); break;\n\t\t case 116: out += \"\\t\"; break;\n\t\t case 98: out += \"\\b\"; break;\n\t\t case 118: out += \"\\u000b\"; break;\n\t\t case 102: out += \"\\f\"; break;\n\t\t case 48: out += \"\\0\"; break;\n\t\t case 13: if (input.charCodeAt(tokPos) === 10) ++tokPos;\n\t\t case 10:\n\t\t\tif (options.locations) { tokLineStart = tokPos; ++tokCurLine; }\n\t\t\tbreak;\n\t\t default: out += String.fromCharCode(ch); break;\n\t\t }\n\t\t}\n\t } else {\n\t\tif (ch === 13 || ch === 10 || ch === 8232 || ch === 8233) raise(tokStart, \"Unterminated string constant\");\n\t\tout += String.fromCharCode(ch);\n\t\t++tokPos;\n\t }\n\t}\n }\n\n function readHexChar(len) {\n\tvar n = readInt(16, len);\n\tif (n === null) raise(tokStart, \"Bad character escape sequence\");\n\treturn n;\n }\n\n var containsEsc;\n\n function readWord1() {\n\tcontainsEsc = false;\n\tvar word, first = true, start = tokPos;\n\tfor (;;) {\n\t var ch = input.charCodeAt(tokPos);\n\t if (isIdentifierChar(ch)) {\n\t\tif (containsEsc) word += input.charAt(tokPos);\n\t\t++tokPos;\n\t } else if (ch === 92) {\n\t\tif (!containsEsc) word = input.slice(start, tokPos);\n\t\tcontainsEsc = true;\n\t\tif (input.charCodeAt(++tokPos) != 117)\n\t\t raise(tokPos, \"Expecting Unicode escape sequence \\\\uXXXX\");\n\t\t++tokPos;\n\t\tvar esc = readHexChar(4);\n\t\tvar escStr = String.fromCharCode(esc);\n\t\tif (!escStr) raise(tokPos - 1, \"Invalid Unicode escape\");\n\t\tif (!(first ? isIdentifierStart(esc) : isIdentifierChar(esc)))\n\t\t raise(tokPos - 4, \"Invalid Unicode escape\");\n\t\tword += escStr;\n\t } else {\n\t\tbreak;\n\t }\n\t first = false;\n\t}\n\treturn containsEsc ? word : input.slice(start, tokPos);\n }\n\n function readWord() {\n\tvar word = readWord1();\n\tvar type = _name;\n\tif (!containsEsc && isKeyword(word))\n\t type = keywordTypes[word];\n\treturn finishToken(type, word);\n }\n\n function next() {\n\tlastStart = tokStart;\n\tlastEnd = tokEnd;\n\tlastEndLoc = tokEndLoc;\n\treadToken();\n }\n\n function setStrict(strct) {\n\tstrict = strct;\n\ttokPos = tokStart;\n\tif (options.locations) {\n\t while (tokPos < tokLineStart) {\n\t\ttokLineStart = input.lastIndexOf(\"\\n\", tokLineStart - 2) + 1;\n\t\t--tokCurLine;\n\t }\n\t}\n\tskipSpace();\n\treadToken();\n }\n\n function node_t() {\n\tthis.type = null;\n\tthis.start = tokStart;\n\tthis.end = null;\n }\n\n function node_loc_t() {\n\tthis.start = tokStartLoc;\n\tthis.end = null;\n\tif (sourceFile !== null) this.source = sourceFile;\n }\n\n function startNode() {\n\tvar node = new node_t();\n\tif (options.locations)\n\t node.loc = new node_loc_t();\n\tif (options.directSourceFile)\n\t node.sourceFile = options.directSourceFile;\n\tif (options.ranges)\n\t node.range = [tokStart, 0];\n\treturn node;\n }\n\n function startNodeFrom(other) {\n\tvar node = new node_t();\n\tnode.start = other.start;\n\tif (options.locations) {\n\t node.loc = new node_loc_t();\n\t node.loc.start = other.loc.start;\n\t}\n\tif (options.ranges)\n\t node.range = [other.range[0], 0];\n\n\treturn node;\n }\n\n function finishNode(node, type) {\n\tnode.type = type;\n\tnode.end = lastEnd;\n\tif (options.locations)\n\t node.loc.end = lastEndLoc;\n\tif (options.ranges)\n\t node.range[1] = lastEnd;\n\treturn node;\n }\n\n function isUseStrict(stmt) {\n\treturn options.ecmaVersion >= 5 && stmt.type === \"ExpressionStatement\" &&\n\t stmt.expression.type === \"Literal\" && stmt.expression.value === \"use strict\";\n }\n\n function eat(type) {\n\tif (tokType === type) {\n\t next();\n\t return true;\n\t}\n }\n\n function canInsertSemicolon() {\n\treturn !options.strictSemicolons &&\n\t (tokType === _eof || tokType === _braceR || newline.test(input.slice(lastEnd, tokStart)));\n }\n\n function semicolon() {\n\tif (!eat(_semi) && !canInsertSemicolon()) unexpected();\n }\n\n function expect(type) {\n\tif (tokType === type) next();\n\telse unexpected();\n }\n\n function unexpected() {\n\traise(tokStart, \"Unexpected token\");\n }\n\n function checkLVal(expr) {\n\tif (expr.type !== \"Identifier\" && expr.type !== \"MemberExpression\")\n\t raise(expr.start, \"Assigning to rvalue\");\n\tif (strict && expr.type === \"Identifier\" && isStrictBadIdWord(expr.name))\n\t raise(expr.start, \"Assigning to \" + expr.name + \" in strict mode\");\n }\n\n function parseTopLevel(program) {\n\tlastStart = lastEnd = tokPos;\n\tif (options.locations) lastEndLoc = new line_loc_t;\n\tinFunction = strict = null;\n\tlabels = [];\n\treadToken();\n\n\tvar node = program || startNode(), first = true;\n\tif (!program) node.body = [];\n\twhile (tokType !== _eof) {\n\t var stmt = parseStatement();\n\t node.body.push(stmt);\n\t if (first && isUseStrict(stmt)) setStrict(true);\n\t first = false;\n\t}\n\treturn finishNode(node, \"Program\");\n }\n\n var loopLabel = {kind: \"loop\"}, switchLabel = {kind: \"switch\"};\n\n function parseStatement() {\n\tif (tokType === _slash || tokType === _assign && tokVal == \"/=\")\n\t readToken(true);\n\n\tvar starttype = tokType, node = startNode();\n\n\tswitch (starttype) {\n\tcase _break: case _continue:\n\t next();\n\t var isBreak = starttype === _break;\n\t if (eat(_semi) || canInsertSemicolon()) node.label = null;\n\t else if (tokType !== _name) unexpected();\n\t else {\n\t\tnode.label = parseIdent();\n\t\tsemicolon();\n\t }\n\n\t for (var i = 0; i < labels.length; ++i) {\n\t\tvar lab = labels[i];\n\t\tif (node.label == null || lab.name === node.label.name) {\n\t\t if (lab.kind != null && (isBreak || lab.kind === \"loop\")) break;\n\t\t if (node.label && isBreak) break;\n\t\t}\n\t }\n\t if (i === labels.length) raise(node.start, \"Unsyntactic \" + starttype.keyword);\n\t return finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\");\n\n\tcase _debugger:\n\t next();\n\t semicolon();\n\t return finishNode(node, \"DebuggerStatement\");\n\n\tcase _do:\n\t next();\n\t labels.push(loopLabel);\n\t node.body = parseStatement();\n\t labels.pop();\n\t expect(_while);\n\t node.test = parseParenExpression();\n\t semicolon();\n\t return finishNode(node, \"DoWhileStatement\");\n\n\tcase _for:\n\t next();\n\t labels.push(loopLabel);\n\t expect(_parenL);\n\t if (tokType === _semi) return parseFor(node, null);\n\t if (tokType === _var) {\n\t\tvar init = startNode();\n\t\tnext();\n\t\tparseVar(init, true);\n\t\tfinishNode(init, \"VariableDeclaration\");\n\t\tif (init.declarations.length === 1 && eat(_in))\n\t\t return parseForIn(node, init);\n\t\treturn parseFor(node, init);\n\t }\n\t var init = parseExpression(false, true);\n\t if (eat(_in)) {checkLVal(init); return parseForIn(node, init);}\n\t return parseFor(node, init);\n\n\tcase _function:\n\t next();\n\t return parseFunction(node, true);\n\n\tcase _if:\n\t next();\n\t node.test = parseParenExpression();\n\t node.consequent = parseStatement();\n\t node.alternate = eat(_else) ? parseStatement() : null;\n\t return finishNode(node, \"IfStatement\");\n\n\tcase _return:\n\t if (!inFunction && !options.allowReturnOutsideFunction)\n\t\traise(tokStart, \"'return' outside of function\");\n\t next();\n\n\t if (eat(_semi) || canInsertSemicolon()) node.argument = null;\n\t else { node.argument = parseExpression(); semicolon(); }\n\t return finishNode(node, \"ReturnStatement\");\n\n\tcase _switch:\n\t next();\n\t node.discriminant = parseParenExpression();\n\t node.cases = [];\n\t expect(_braceL);\n\t labels.push(switchLabel);\n\n\t for (var cur, sawDefault; tokType != _braceR;) {\n\t\tif (tokType === _case || tokType === _default) {\n\t\t var isCase = tokType === _case;\n\t\t if (cur) finishNode(cur, \"SwitchCase\");\n\t\t node.cases.push(cur = startNode());\n\t\t cur.consequent = [];\n\t\t next();\n\t\t if (isCase) cur.test = parseExpression();\n\t\t else {\n\t\t\tif (sawDefault) raise(lastStart, \"Multiple default clauses\"); sawDefault = true;\n\t\t\tcur.test = null;\n\t\t }\n\t\t expect(_colon);\n\t\t} else {\n\t\t if (!cur) unexpected();\n\t\t cur.consequent.push(parseStatement());\n\t\t}\n\t }\n\t if (cur) finishNode(cur, \"SwitchCase\");\n\t next();\n\t labels.pop();\n\t return finishNode(node, \"SwitchStatement\");\n\n\tcase _throw:\n\t next();\n\t if (newline.test(input.slice(lastEnd, tokStart)))\n\t\traise(lastEnd, \"Illegal newline after throw\");\n\t node.argument = parseExpression();\n\t semicolon();\n\t return finishNode(node, \"ThrowStatement\");\n\n\tcase _try:\n\t next();\n\t node.block = parseBlock();\n\t node.handler = null;\n\t if (tokType === _catch) {\n\t\tvar clause = startNode();\n\t\tnext();\n\t\texpect(_parenL);\n\t\tclause.param = parseIdent();\n\t\tif (strict && isStrictBadIdWord(clause.param.name))\n\t\t raise(clause.param.start, \"Binding \" + clause.param.name + \" in strict mode\");\n\t\texpect(_parenR);\n\t\tclause.guard = null;\n\t\tclause.body = parseBlock();\n\t\tnode.handler = finishNode(clause, \"CatchClause\");\n\t }\n\t node.guardedHandlers = empty;\n\t node.finalizer = eat(_finally) ? parseBlock() : null;\n\t if (!node.handler && !node.finalizer)\n\t\traise(node.start, \"Missing catch or finally clause\");\n\t return finishNode(node, \"TryStatement\");\n\n\tcase _var:\n\t next();\n\t parseVar(node);\n\t semicolon();\n\t return finishNode(node, \"VariableDeclaration\");\n\n\tcase _while:\n\t next();\n\t node.test = parseParenExpression();\n\t labels.push(loopLabel);\n\t node.body = parseStatement();\n\t labels.pop();\n\t return finishNode(node, \"WhileStatement\");\n\n\tcase _with:\n\t if (strict) raise(tokStart, \"'with' in strict mode\");\n\t next();\n\t node.object = parseParenExpression();\n\t node.body = parseStatement();\n\t return finishNode(node, \"WithStatement\");\n\n\tcase _braceL:\n\t return parseBlock();\n\n\tcase _semi:\n\t next();\n\t return finishNode(node, \"EmptyStatement\");\n\n\tdefault:\n\t var maybeName = tokVal, expr = parseExpression();\n\t if (starttype === _name && expr.type === \"Identifier\" && eat(_colon)) {\n\t\tfor (var i = 0; i < labels.length; ++i)\n\t\t if (labels[i].name === maybeName) raise(expr.start, \"Label '\" + maybeName + \"' is already declared\");\n\t\tvar kind = tokType.isLoop ? \"loop\" : tokType === _switch ? \"switch\" : null;\n\t\tlabels.push({name: maybeName, kind: kind});\n\t\tnode.body = parseStatement();\n\t\tlabels.pop();\n\t\tnode.label = expr;\n\t\treturn finishNode(node, \"LabeledStatement\");\n\t } else {\n\t\tnode.expression = expr;\n\t\tsemicolon();\n\t\treturn finishNode(node, \"ExpressionStatement\");\n\t }\n\t}\n }\n\n function parseParenExpression() {\n\texpect(_parenL);\n\tvar val = parseExpression();\n\texpect(_parenR);\n\treturn val;\n }\n\n function parseBlock(allowStrict) {\n\tvar node = startNode(), first = true, strict = false, oldStrict;\n\tnode.body = [];\n\texpect(_braceL);\n\twhile (!eat(_braceR)) {\n\t var stmt = parseStatement();\n\t node.body.push(stmt);\n\t if (first && allowStrict && isUseStrict(stmt)) {\n\t\toldStrict = strict;\n\t\tsetStrict(strict = true);\n\t }\n\t first = false;\n\t}\n\tif (strict && !oldStrict) setStrict(false);\n\treturn finishNode(node, \"BlockStatement\");\n }\n\n function parseFor(node, init) {\n\tnode.init = init;\n\texpect(_semi);\n\tnode.test = tokType === _semi ? null : parseExpression();\n\texpect(_semi);\n\tnode.update = tokType === _parenR ? null : parseExpression();\n\texpect(_parenR);\n\tnode.body = parseStatement();\n\tlabels.pop();\n\treturn finishNode(node, \"ForStatement\");\n }\n\n function parseForIn(node, init) {\n\tnode.left = init;\n\tnode.right = parseExpression();\n\texpect(_parenR);\n\tnode.body = parseStatement();\n\tlabels.pop();\n\treturn finishNode(node, \"ForInStatement\");\n }\n\n function parseVar(node, noIn) {\n\tnode.declarations = [];\n\tnode.kind = \"var\";\n\tfor (;;) {\n\t var decl = startNode();\n\t decl.id = parseIdent();\n\t if (strict && isStrictBadIdWord(decl.id.name))\n\t\traise(decl.id.start, \"Binding \" + decl.id.name + \" in strict mode\");\n\t decl.init = eat(_eq) ? parseExpression(true, noIn) : null;\n\t node.declarations.push(finishNode(decl, \"VariableDeclarator\"));\n\t if (!eat(_comma)) break;\n\t}\n\treturn node;\n }\n\n function parseExpression(noComma, noIn) {\n\tvar expr = parseMaybeAssign(noIn);\n\tif (!noComma && tokType === _comma) {\n\t var node = startNodeFrom(expr);\n\t node.expressions = [expr];\n\t while (eat(_comma)) node.expressions.push(parseMaybeAssign(noIn));\n\t return finishNode(node, \"SequenceExpression\");\n\t}\n\treturn expr;\n }\n\n function parseMaybeAssign(noIn) {\n\tvar left = parseMaybeConditional(noIn);\n\tif (tokType.isAssign) {\n\t var node = startNodeFrom(left);\n\t node.operator = tokVal;\n\t node.left = left;\n\t next();\n\t node.right = parseMaybeAssign(noIn);\n\t checkLVal(left);\n\t return finishNode(node, \"AssignmentExpression\");\n\t}\n\treturn left;\n }\n\n function parseMaybeConditional(noIn) {\n\tvar expr = parseExprOps(noIn);\n\tif (eat(_question)) {\n\t var node = startNodeFrom(expr);\n\t node.test = expr;\n\t node.consequent = parseExpression(true);\n\t expect(_colon);\n\t node.alternate = parseExpression(true, noIn);\n\t return finishNode(node, \"ConditionalExpression\");\n\t}\n\treturn expr;\n }\n\n function parseExprOps(noIn) {\n\treturn parseExprOp(parseMaybeUnary(), -1, noIn);\n }\n\n function parseExprOp(left, minPrec, noIn) {\n\tvar prec = tokType.binop;\n\tif (prec != null && (!noIn || tokType !== _in)) {\n\t if (prec > minPrec) {\n\t\tvar node = startNodeFrom(left);\n\t\tnode.left = left;\n\t\tnode.operator = tokVal;\n\t\tvar op = tokType;\n\t\tnext();\n\t\tnode.right = parseExprOp(parseMaybeUnary(), prec, noIn);\n\t\tvar exprNode = finishNode(node, (op === _logicalOR || op === _logicalAND) ? \"LogicalExpression\" : \"BinaryExpression\");\n\t\treturn parseExprOp(exprNode, minPrec, noIn);\n\t }\n\t}\n\treturn left;\n }\n\n function parseMaybeUnary() {\n\tif (tokType.prefix) {\n\t var node = startNode(), update = tokType.isUpdate;\n\t node.operator = tokVal;\n\t node.prefix = true;\n\t tokRegexpAllowed = true;\n\t next();\n\t node.argument = parseMaybeUnary();\n\t if (update) checkLVal(node.argument);\n\t else if (strict && node.operator === \"delete\" &&\n\t\t\t node.argument.type === \"Identifier\")\n\t\traise(node.start, \"Deleting local variable in strict mode\");\n\t return finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\");\n\t}\n\tvar expr = parseExprSubscripts();\n\twhile (tokType.postfix && !canInsertSemicolon()) {\n\t var node = startNodeFrom(expr);\n\t node.operator = tokVal;\n\t node.prefix = false;\n\t node.argument = expr;\n\t checkLVal(expr);\n\t next();\n\t expr = finishNode(node, \"UpdateExpression\");\n\t}\n\treturn expr;\n }\n\n function parseExprSubscripts() {\n\treturn parseSubscripts(parseExprAtom());\n }\n\n function parseSubscripts(base, noCalls) {\n\tif (eat(_dot)) {\n\t var node = startNodeFrom(base);\n\t node.object = base;\n\t node.property = parseIdent(true);\n\t node.computed = false;\n\t return parseSubscripts(finishNode(node, \"MemberExpression\"), noCalls);\n\t} else if (eat(_bracketL)) {\n\t var node = startNodeFrom(base);\n\t node.object = base;\n\t node.property = parseExpression();\n\t node.computed = true;\n\t expect(_bracketR);\n\t return parseSubscripts(finishNode(node, \"MemberExpression\"), noCalls);\n\t} else if (!noCalls && eat(_parenL)) {\n\t var node = startNodeFrom(base);\n\t node.callee = base;\n\t node.arguments = parseExprList(_parenR, false);\n\t return parseSubscripts(finishNode(node, \"CallExpression\"), noCalls);\n\t} else return base;\n }\n\n function parseExprAtom() {\n\tswitch (tokType) {\n\tcase _this:\n\t var node = startNode();\n\t next();\n\t return finishNode(node, \"ThisExpression\");\n\tcase _name:\n\t return parseIdent();\n\tcase _num: case _string: case _regexp:\n\t var node = startNode();\n\t node.value = tokVal;\n\t node.raw = input.slice(tokStart, tokEnd);\n\t next();\n\t return finishNode(node, \"Literal\");\n\n\tcase _null: case _true: case _false:\n\t var node = startNode();\n\t node.value = tokType.atomValue;\n\t node.raw = tokType.keyword;\n\t next();\n\t return finishNode(node, \"Literal\");\n\n\tcase _parenL:\n\t var tokStartLoc1 = tokStartLoc, tokStart1 = tokStart;\n\t next();\n\t var val = parseExpression();\n\t val.start = tokStart1;\n\t val.end = tokEnd;\n\t if (options.locations) {\n\t\tval.loc.start = tokStartLoc1;\n\t\tval.loc.end = tokEndLoc;\n\t }\n\t if (options.ranges)\n\t\tval.range = [tokStart1, tokEnd];\n\t expect(_parenR);\n\t return val;\n\n\tcase _bracketL:\n\t var node = startNode();\n\t next();\n\t node.elements = parseExprList(_bracketR, true, true);\n\t return finishNode(node, \"ArrayExpression\");\n\n\tcase _braceL:\n\t return parseObj();\n\n\tcase _function:\n\t var node = startNode();\n\t next();\n\t return parseFunction(node, false);\n\n\tcase _new:\n\t return parseNew();\n\n\tdefault:\n\t unexpected();\n\t}\n }\n\n function parseNew() {\n\tvar node = startNode();\n\tnext();\n\tnode.callee = parseSubscripts(parseExprAtom(), true);\n\tif (eat(_parenL)) node.arguments = parseExprList(_parenR, false);\n\telse node.arguments = empty;\n\treturn finishNode(node, \"NewExpression\");\n }\n\n function parseObj() {\n\tvar node = startNode(), first = true, sawGetSet = false;\n\tnode.properties = [];\n\tnext();\n\twhile (!eat(_braceR)) {\n\t if (!first) {\n\t\texpect(_comma);\n\t\tif (options.allowTrailingCommas && eat(_braceR)) break;\n\t } else first = false;\n\n\t var prop = {key: parsePropertyName()}, isGetSet = false, kind;\n\t if (eat(_colon)) {\n\t\tprop.value = parseExpression(true);\n\t\tkind = prop.kind = \"init\";\n\t } else if (options.ecmaVersion >= 5 && prop.key.type === \"Identifier\" &&\n\t\t\t\t (prop.key.name === \"get\" || prop.key.name === \"set\")) {\n\t\tisGetSet = sawGetSet = true;\n\t\tkind = prop.kind = prop.key.name;\n\t\tprop.key = parsePropertyName();\n\t\tif (tokType !== _parenL) unexpected();\n\t\tprop.value = parseFunction(startNode(), false);\n\t } else unexpected();\n\n\t if (prop.key.type === \"Identifier\" && (strict || sawGetSet)) {\n\t\tfor (var i = 0; i < node.properties.length; ++i) {\n\t\t var other = node.properties[i];\n\t\t if (other.key.name === prop.key.name) {\n\t\t\tvar conflict = kind == other.kind || isGetSet && other.kind === \"init\" ||\n\t\t\t kind === \"init\" && (other.kind === \"get\" || other.kind === \"set\");\n\t\t\tif (conflict && !strict && kind === \"init\" && other.kind === \"init\") conflict = false;\n\t\t\tif (conflict) raise(prop.key.start, \"Redefinition of property\");\n\t\t }\n\t\t}\n\t }\n\t node.properties.push(prop);\n\t}\n\treturn finishNode(node, \"ObjectExpression\");\n }\n\n function parsePropertyName() {\n\tif (tokType === _num || tokType === _string) return parseExprAtom();\n\treturn parseIdent(true);\n }\n\n function parseFunction(node, isStatement) {\n\tif (tokType === _name) node.id = parseIdent();\n\telse if (isStatement) unexpected();\n\telse node.id = null;\n\tnode.params = [];\n\tvar first = true;\n\texpect(_parenL);\n\twhile (!eat(_parenR)) {\n\t if (!first) expect(_comma); else first = false;\n\t node.params.push(parseIdent());\n\t}\n\n\tvar oldInFunc = inFunction, oldLabels = labels;\n\tinFunction = true; labels = [];\n\tnode.body = parseBlock(true);\n\tinFunction = oldInFunc; labels = oldLabels;\n\n\tif (strict || node.body.body.length && isUseStrict(node.body.body[0])) {\n\t for (var i = node.id ? -1 : 0; i < node.params.length; ++i) {\n\t\tvar id = i < 0 ? node.id : node.params[i];\n\t\tif (isStrictReservedWord(id.name) || isStrictBadIdWord(id.name))\n\t\t raise(id.start, \"Defining '\" + id.name + \"' in strict mode\");\n\t\tif (i >= 0) for (var j = 0; j < i; ++j) if (id.name === node.params[j].name)\n\t\t raise(id.start, \"Argument name clash in strict mode\");\n\t }\n\t}\n\n\treturn finishNode(node, isStatement ? \"FunctionDeclaration\" : \"FunctionExpression\");\n }\n\n function parseExprList(close, allowTrailingComma, allowEmpty) {\n\tvar elts = [], first = true;\n\twhile (!eat(close)) {\n\t if (!first) {\n\t\texpect(_comma);\n\t\tif (allowTrailingComma && options.allowTrailingCommas && eat(close)) break;\n\t } else first = false;\n\n\t if (allowEmpty && tokType === _comma) elts.push(null);\n\t else elts.push(parseExpression(true));\n\t}\n\treturn elts;\n }\n\n function parseIdent(liberal) {\n\tvar node = startNode();\n\tif (liberal && options.forbidReserved == \"everywhere\") liberal = false;\n\tif (tokType === _name) {\n\t if (!liberal &&\n\t\t (options.forbidReserved &&\n\t\t (options.ecmaVersion === 3 ? isReservedWord3 : isReservedWord5)(tokVal) ||\n\t\t strict && isStrictReservedWord(tokVal)) &&\n\t\t input.slice(tokStart, tokEnd).indexOf(\"\\\\\") == -1)\n\t\traise(tokStart, \"The keyword '\" + tokVal + \"' is reserved\");\n\t node.name = tokVal;\n\t} else if (liberal && tokType.keyword) {\n\t node.name = tokType.keyword;\n\t} else {\n\t unexpected();\n\t}\n\ttokRegexpAllowed = false;\n\tnext();\n\treturn finishNode(node, \"Identifier\");\n }\n\n});\n\n\t\tif (!acorn.version)\n\t\t\tacorn = null;\n\t}\n\n\tfunction parse(code, options) {\n\t\treturn (global.acorn || acorn).parse(code, options);\n\t}\n\n\tvar binaryOperators = {\n\t\t'+': '__add',\n\t\t'-': '__subtract',\n\t\t'*': '__multiply',\n\t\t'/': '__divide',\n\t\t'%': '__modulo',\n\t\t'==': '__equals',\n\t\t'!=': '__equals'\n\t};\n\n\tvar unaryOperators = {\n\t\t'-': '__negate',\n\t\t'+': '__self'\n\t};\n\n\tvar fields = Base.each(\n\t\t['add', 'subtract', 'multiply', 'divide', 'modulo', 'equals', 'negate'],\n\t\tfunction(name) {\n\t\t\tthis['__' + name] = '#' + name;\n\t\t},\n\t\t{\n\t\t\t__self: function() {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t);\n\tPoint.inject(fields);\n\tSize.inject(fields);\n\tColor.inject(fields);\n\n\tfunction __$__(left, operator, right) {\n\t\tvar handler = binaryOperators[operator];\n\t\tif (left && left[handler]) {\n\t\t\tvar res = left[handler](right);\n\t\t\treturn operator === '!=' ? !res : res;\n\t\t}\n\t\tswitch (operator) {\n\t\tcase '+': return left + right;\n\t\tcase '-': return left - right;\n\t\tcase '*': return left * right;\n\t\tcase '/': return left / right;\n\t\tcase '%': return left % right;\n\t\tcase '==': return left == right;\n\t\tcase '!=': return left != right;\n\t\t}\n\t}\n\n\tfunction $__(operator, value) {\n\t\tvar handler = unaryOperators[operator];\n\t\tif (value && value[handler])\n\t\t\treturn value[handler]();\n\t\tswitch (operator) {\n\t\tcase '+': return +value;\n\t\tcase '-': return -value;\n\t\t}\n\t}\n\n\tfunction compile(code, options) {\n\t\tif (!code)\n\t\t\treturn '';\n\t\toptions = options || {};\n\n\t\tvar insertions = [];\n\n\t\tfunction getOffset(offset) {\n\t\t\tfor (var i = 0, l = insertions.length; i < l; i++) {\n\t\t\t\tvar insertion = insertions[i];\n\t\t\t\tif (insertion[0] >= offset)\n\t\t\t\t\tbreak;\n\t\t\t\toffset += insertion[1];\n\t\t\t}\n\t\t\treturn offset;\n\t\t}\n\n\t\tfunction getCode(node) {\n\t\t\treturn code.substring(getOffset(node.range[0]),\n\t\t\t\t\tgetOffset(node.range[1]));\n\t\t}\n\n\t\tfunction getBetween(left, right) {\n\t\t\treturn code.substring(getOffset(left.range[1]),\n\t\t\t\t\tgetOffset(right.range[0]));\n\t\t}\n\n\t\tfunction replaceCode(node, str) {\n\t\t\tvar start = getOffset(node.range[0]),\n\t\t\t\tend = getOffset(node.range[1]),\n\t\t\t\tinsert = 0;\n\t\t\tfor (var i = insertions.length - 1; i >= 0; i--) {\n\t\t\t\tif (start > insertions[i][0]) {\n\t\t\t\t\tinsert = i + 1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tinsertions.splice(insert, 0, [start, str.length - end + start]);\n\t\t\tcode = code.substring(0, start) + str + code.substring(end);\n\t\t}\n\n\t\tfunction walkAST(node, parent) {\n\t\t\tif (!node)\n\t\t\t\treturn;\n\t\t\tfor (var key in node) {\n\t\t\t\tif (key === 'range' || key === 'loc')\n\t\t\t\t\tcontinue;\n\t\t\t\tvar value = node[key];\n\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\tfor (var i = 0, l = value.length; i < l; i++)\n\t\t\t\t\t\twalkAST(value[i], node);\n\t\t\t\t} else if (value && typeof value === 'object') {\n\t\t\t\t\twalkAST(value, node);\n\t\t\t\t}\n\t\t\t}\n\t\t\tswitch (node.type) {\n\t\t\tcase 'UnaryExpression':\n\t\t\t\tif (node.operator in unaryOperators\n\t\t\t\t\t\t&& node.argument.type !== 'Literal') {\n\t\t\t\t\tvar arg = getCode(node.argument);\n\t\t\t\t\treplaceCode(node, '$__(\"' + node.operator + '\", '\n\t\t\t\t\t\t\t+ arg + ')');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'BinaryExpression':\n\t\t\t\tif (node.operator in binaryOperators\n\t\t\t\t\t\t&& node.left.type !== 'Literal') {\n\t\t\t\t\tvar left = getCode(node.left),\n\t\t\t\t\t\tright = getCode(node.right),\n\t\t\t\t\t\tbetween = getBetween(node.left, node.right),\n\t\t\t\t\t\toperator = node.operator;\n\t\t\t\t\treplaceCode(node, '__$__(' + left + ','\n\t\t\t\t\t\t\t+ between.replace(new RegExp('\\\\' + operator),\n\t\t\t\t\t\t\t\t'\"' + operator + '\"')\n\t\t\t\t\t\t\t+ ', ' + right + ')');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'UpdateExpression':\n\t\t\tcase 'AssignmentExpression':\n\t\t\t\tvar parentType = parent && parent.type;\n\t\t\t\tif (!(\n\t\t\t\t\t\tparentType === 'ForStatement'\n\t\t\t\t\t\t|| parentType === 'BinaryExpression'\n\t\t\t\t\t\t\t&& /^[=!<>]/.test(parent.operator)\n\t\t\t\t\t\t|| parentType === 'MemberExpression' && parent.computed\n\t\t\t\t)) {\n\t\t\t\t\tif (node.type === 'UpdateExpression') {\n\t\t\t\t\t\tvar arg = getCode(node.argument),\n\t\t\t\t\t\t\texp = '__$__(' + arg + ', \"' + node.operator[0]\n\t\t\t\t\t\t\t\t\t+ '\", 1)',\n\t\t\t\t\t\t\tstr = arg + ' = ' + exp;\n\t\t\t\t\t\tif (!node.prefix\n\t\t\t\t\t\t\t\t&& (parentType === 'AssignmentExpression'\n\t\t\t\t\t\t\t\t\t|| parentType === 'VariableDeclarator')) {\n\t\t\t\t\t\t\tif (getCode(parent.left || parent.id) === arg)\n\t\t\t\t\t\t\t\tstr = exp;\n\t\t\t\t\t\t\tstr = arg + '; ' + str;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treplaceCode(node, str);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (/^.=$/.test(node.operator)\n\t\t\t\t\t\t\t\t&& node.left.type !== 'Literal') {\n\t\t\t\t\t\t\tvar left = getCode(node.left),\n\t\t\t\t\t\t\t\tright = getCode(node.right),\n\t\t\t\t\t\t\t\texp = left + ' = __$__(' + left + ', \"'\n\t\t\t\t\t\t\t\t\t+ node.operator[0] + '\", ' + right + ')';\n\t\t\t\t\t\t\treplaceCode(node, /^\\(.*\\)$/.test(getCode(node))\n\t\t\t\t\t\t\t\t\t? '(' + exp + ')' : exp);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'ExportDefaultDeclaration':\n\t\t\t\treplaceCode({\n\t\t\t\t\trange: [node.start, node.declaration.start]\n\t\t\t\t}, 'module.exports = ');\n\t\t\t\tbreak;\n\t\t\tcase 'ExportNamedDeclaration':\n\t\t\t\tvar declaration = node.declaration;\n\t\t\t\tvar specifiers = node.specifiers;\n\t\t\t\tif (declaration) {\n\t\t\t\t\tvar declarations = declaration.declarations;\n\t\t\t\t\tif (declarations) {\n\t\t\t\t\t\tdeclarations.forEach(function(dec) {\n\t\t\t\t\t\t\treplaceCode(dec, 'module.exports.' + getCode(dec));\n\t\t\t\t\t\t});\n\t\t\t\t\t\treplaceCode({\n\t\t\t\t\t\t\trange: [\n\t\t\t\t\t\t\t\tnode.start,\n\t\t\t\t\t\t\t\tdeclaration.start + declaration.kind.length\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}, '');\n\t\t\t\t\t}\n\t\t\t\t} else if (specifiers) {\n\t\t\t\t\tvar exports = specifiers.map(function(specifier) {\n\t\t\t\t\t\tvar name = getCode(specifier);\n\t\t\t\t\t\treturn 'module.exports.' + name + ' = ' + name + '; ';\n\t\t\t\t\t}).join('');\n\t\t\t\t\tif (exports) {\n\t\t\t\t\t\treplaceCode(node, exports);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tfunction encodeVLQ(value) {\n\t\t\tvar res = '',\n\t\t\t\tbase64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t\t\tvalue = (Math.abs(value) << 1) + (value < 0 ? 1 : 0);\n\t\t\twhile (value || !res) {\n\t\t\t\tvar next = value & (32 - 1);\n\t\t\t\tvalue >>= 5;\n\t\t\t\tif (value)\n\t\t\t\t\tnext |= 32;\n\t\t\t\tres += base64[next];\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\tvar url = options.url || '',\n\t\t\tagent = paper.agent,\n\t\t\tversion = agent.versionNumber,\n\t\t\toffsetCode = false,\n\t\t\tsourceMaps = options.sourceMaps,\n\t\t\tsource = options.source || code,\n\t\t\tlineBreaks = /\\r\\n|\\n|\\r/mg,\n\t\t\toffset = options.offset || 0,\n\t\t\tmap;\n\t\tif (sourceMaps && (agent.chrome && version >= 30\n\t\t\t\t|| agent.webkit && version >= 537.76\n\t\t\t\t|| agent.firefox && version >= 23\n\t\t\t\t|| agent.node)) {\n\t\t\tif (agent.node) {\n\t\t\t\toffset -= 2;\n\t\t\t} else if (window && url && !window.location.href.indexOf(url)) {\n\t\t\t\tvar html = document.getElementsByTagName('html')[0].innerHTML;\n\t\t\t\toffset = html.substr(0, html.indexOf(code) + 1).match(\n\t\t\t\t\t\tlineBreaks).length + 1;\n\t\t\t}\n\t\t\toffsetCode = offset > 0 && !(\n\t\t\t\t\tagent.chrome && version >= 36 ||\n\t\t\t\t\tagent.safari && version >= 600 ||\n\t\t\t\t\tagent.firefox && version >= 40 ||\n\t\t\t\t\tagent.node);\n\t\t\tvar mappings = ['AA' + encodeVLQ(offsetCode ? 0 : offset) + 'A'];\n\t\t\tmappings.length = (code.match(lineBreaks) || []).length + 1\n\t\t\t\t\t+ (offsetCode ? offset : 0);\n\t\t\tmap = {\n\t\t\t\tversion: 3,\n\t\t\t\tfile: url,\n\t\t\t\tnames:[],\n\t\t\t\tmappings: mappings.join(';AACA'),\n\t\t\t\tsourceRoot: '',\n\t\t\t\tsources: [url],\n\t\t\t\tsourcesContent: [source]\n\t\t\t};\n\t\t}\n\t\twalkAST(parse(code, {\n\t\t\tranges: true,\n\t\t\tpreserveParens: true,\n\t\t\tsourceType: 'module'\n\t\t}));\n\t\tif (map) {\n\t\t\tif (offsetCode) {\n\t\t\t\tcode = new Array(offset + 1).join('\\n') + code;\n\t\t\t}\n\t\t\tif (/^(inline|both)$/.test(sourceMaps)) {\n\t\t\t\tcode += \"\\n//# sourceMappingURL=data:application/json;base64,\"\n\t\t\t\t\t\t+ self.btoa(unescape(encodeURIComponent(\n\t\t\t\t\t\t\tJSON.stringify(map))));\n\t\t\t}\n\t\t\tcode += \"\\n//# sourceURL=\" + (url || 'paperscript');\n\t\t}\n\t\treturn {\n\t\t\turl: url,\n\t\t\tsource: source,\n\t\t\tcode: code,\n\t\t\tmap: map\n\t\t};\n\t}\n\n\tfunction execute(code, scope, options) {\n\t\tpaper = scope;\n\t\tvar view = scope.getView(),\n\t\t\ttool = /\\btool\\.\\w+|\\s+on(?:Key|Mouse)(?:Up|Down|Move|Drag)\\b/\n\t\t\t\t\t.test(code) && !/\\bnew\\s+Tool\\b/.test(code)\n\t\t\t\t\t\t? new Tool() : null,\n\t\t\ttoolHandlers = tool ? tool._events : [],\n\t\t\thandlers = ['onFrame', 'onResize'].concat(toolHandlers),\n\t\t\tparams = [],\n\t\t\targs = [],\n\t\t\tfunc,\n\t\t\tcompiled = typeof code === 'object' ? code : compile(code, options);\n\t\tcode = compiled.code;\n\t\tfunction expose(scope, hidden) {\n\t\t\tfor (var key in scope) {\n\t\t\t\tif ((hidden || !/^_/.test(key)) && new RegExp('([\\\\b\\\\s\\\\W]|^)'\n\t\t\t\t\t\t+ key.replace(/\\$/g, '\\\\$') + '\\\\b').test(code)) {\n\t\t\t\t\tparams.push(key);\n\t\t\t\t\targs.push(scope[key]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\texpose({ __$__: __$__, $__: $__, paper: scope, view: view, tool: tool },\n\t\t\t\ttrue);\n\t\texpose(scope);\n\t\tcode = 'var module = { exports: {} }; ' + code;\n\t\tvar exports = Base.each(handlers, function(key) {\n\t\t\tif (new RegExp('\\\\s+' + key + '\\\\b').test(code)) {\n\t\t\t\tparams.push(key);\n\t\t\t\tthis.push('module.exports.' + key + ' = ' + key + ';');\n\t\t\t}\n\t\t}, []).join('\\n');\n\t\tif (exports) {\n\t\t\tcode += '\\n' + exports;\n\t\t}\n\t\tcode += '\\nreturn module.exports;';\n\t\tvar agent = paper.agent;\n\t\tif (document && (agent.chrome\n\t\t\t\t|| agent.firefox && agent.versionNumber < 40)) {\n\t\t\tvar script = document.createElement('script'),\n\t\t\t\thead = document.head || document.getElementsByTagName('head')[0];\n\t\t\tif (agent.firefox)\n\t\t\t\tcode = '\\n' + code;\n\t\t\tscript.appendChild(document.createTextNode(\n\t\t\t\t'document.__paperscript__ = function(' + params + ') {' +\n\t\t\t\t\tcode +\n\t\t\t\t'\\n}'\n\t\t\t));\n\t\t\thead.appendChild(script);\n\t\t\tfunc = document.__paperscript__;\n\t\t\tdelete document.__paperscript__;\n\t\t\thead.removeChild(script);\n\t\t} else {\n\t\t\tfunc = Function(params, code);\n\t\t}\n\t\tvar exports = func && func.apply(scope, args);\n\t\tvar obj = exports || {};\n\t\tBase.each(toolHandlers, function(key) {\n\t\t\tvar value = obj[key];\n\t\t\tif (value)\n\t\t\t\ttool[key] = value;\n\t\t});\n\t\tif (view) {\n\t\t\tif (obj.onResize)\n\t\t\t\tview.setOnResize(obj.onResize);\n\t\t\tview.emit('resize', {\n\t\t\t\tsize: view.size,\n\t\t\t\tdelta: new Point()\n\t\t\t});\n\t\t\tif (obj.onFrame)\n\t\t\t\tview.setOnFrame(obj.onFrame);\n\t\t\tview.requestUpdate();\n\t\t}\n\t\treturn exports;\n\t}\n\n\tfunction loadScript(script) {\n\t\tif (/^text\\/(?:x-|)paperscript$/.test(script.type)\n\t\t\t\t&& PaperScope.getAttribute(script, 'ignore') !== 'true') {\n\t\t\tvar canvasId = PaperScope.getAttribute(script, 'canvas'),\n\t\t\t\tcanvas = document.getElementById(canvasId),\n\t\t\t\tsrc = script.src || script.getAttribute('data-src'),\n\t\t\t\tasync = PaperScope.hasAttribute(script, 'async'),\n\t\t\t\tscopeAttribute = 'data-paper-scope';\n\t\t\tif (!canvas)\n\t\t\t\tthrow new Error('Unable to find canvas with id \"'\n\t\t\t\t\t\t+ canvasId + '\"');\n\t\t\tvar scope = PaperScope.get(canvas.getAttribute(scopeAttribute))\n\t\t\t\t\t\t|| new PaperScope().setup(canvas);\n\t\t\tcanvas.setAttribute(scopeAttribute, scope._id);\n\t\t\tif (src) {\n\t\t\t\tHttp.request({\n\t\t\t\t\turl: src,\n\t\t\t\t\tasync: async,\n\t\t\t\t\tmimeType: 'text/plain',\n\t\t\t\t\tonLoad: function(code) {\n\t\t\t\t\t\texecute(code, scope, src);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\texecute(script.innerHTML, scope, script.baseURI);\n\t\t\t}\n\t\t\tscript.setAttribute('data-paper-ignore', 'true');\n\t\t\treturn scope;\n\t\t}\n\t}\n\n\tfunction loadAll() {\n\t\tBase.each(document && document.getElementsByTagName('script'),\n\t\t\t\tloadScript);\n\t}\n\n\tfunction load(script) {\n\t\treturn script ? loadScript(script) : loadAll();\n\t}\n\n\tif (window) {\n\t\tif (document.readyState === 'complete') {\n\t\t\tsetTimeout(loadAll);\n\t\t} else {\n\t\t\tDomEvent.add(window, { load: loadAll });\n\t\t}\n\t}\n\n\treturn {\n\t\tcompile: compile,\n\t\texecute: execute,\n\t\tload: load,\n\t\tparse: parse\n\t};\n\n}.call(this);\n\nvar paper = new (PaperScope.inject(Base.exports, {\n\tBase: Base,\n\tNumerical: Numerical,\n\tKey: Key,\n\tDomEvent: DomEvent,\n\tDomElement: DomElement,\n\tdocument: document,\n\twindow: window,\n\tSymbol: SymbolDefinition,\n\tPlacedSymbol: SymbolItem\n}))();\n\nif (paper.agent.node) {\n\trequire('./node/extend.js')(paper);\n}\n\nif (typeof define === 'function' && define.amd) {\n\tdefine('paper', paper);\n} else if (typeof module === 'object' && module) {\n\tmodule.exports = paper;\n}\n\nreturn paper;\n}.call(this, typeof self === 'object' ? self : null);\n","// Reserved word lists for various dialects of the language\n\nvar reservedWords = {\n 3: \"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",\n 5: \"class enum extends super const export import\",\n 6: \"enum\",\n strict: \"implements interface let package private protected public static yield\",\n strictBind: \"eval arguments\"\n};\n\n// And the keywords\n\nvar ecma5AndLessKeywords = \"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\";\n\nvar keywords = {\n 5: ecma5AndLessKeywords,\n \"5module\": ecma5AndLessKeywords + \" export import\",\n 6: ecma5AndLessKeywords + \" const class extends export import super\"\n};\n\nvar keywordRelationalOperator = /^in(stanceof)?$/;\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point above 128.\n// Generated by `bin/generate-identifier-regex.js`.\nvar nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\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\\u0d05-\\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-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\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\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\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\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\nvar nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\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\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d82\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1df9\\u1dfb-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\";\n\nvar nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\");\nvar nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\");\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by bin/generate-identifier-regex.js\n\n// eslint-disable-next-line comma-spacing\nvar astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,477,28,11,0,9,21,155,22,13,52,76,44,33,24,27,35,30,0,12,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,0,33,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,0,161,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,270,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,754,9486,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,15,7472,3104,541];\n\n// eslint-disable-next-line comma-spacing\nvar astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,525,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,4,9,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,232,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,792487,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code, set) {\n var pos = 0x10000;\n for (var i = 0; i < set.length; i += 2) {\n pos += set[i];\n if (pos > code) { return false }\n pos += set[i + 1];\n if (pos >= code) { return true }\n }\n}\n\n// Test whether a given character code starts an identifier.\n\nfunction isIdentifierStart(code, astral) {\n if (code < 65) { return code === 36 }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes)\n}\n\n// Test whether a given character is part of an identifier.\n\nfunction isIdentifierChar(code, astral) {\n if (code < 48) { return code === 36 }\n if (code < 58) { return true }\n if (code < 65) { return false }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)\n}\n\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n//\n// The `startsExpr` property is used to check if the token ends a\n// `yield` expression. It is set on all token types that either can\n// directly start an expression (like a quotation mark) or can\n// continue an expression (like the body of a string).\n//\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nvar TokenType = function TokenType(label, conf) {\n if ( conf === void 0 ) conf = {};\n\n this.label = label;\n this.keyword = conf.keyword;\n this.beforeExpr = !!conf.beforeExpr;\n this.startsExpr = !!conf.startsExpr;\n this.isLoop = !!conf.isLoop;\n this.isAssign = !!conf.isAssign;\n this.prefix = !!conf.prefix;\n this.postfix = !!conf.postfix;\n this.binop = conf.binop || null;\n this.updateContext = null;\n};\n\nfunction binop(name, prec) {\n return new TokenType(name, {beforeExpr: true, binop: prec})\n}\nvar beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true};\n\n// Map keyword names to token types.\n\nvar keywords$1 = {};\n\n// Succinct definitions of keyword token types\nfunction kw(name, options) {\n if ( options === void 0 ) options = {};\n\n options.keyword = name;\n return keywords$1[name] = new TokenType(name, options)\n}\n\nvar types = {\n num: new TokenType(\"num\", startsExpr),\n regexp: new TokenType(\"regexp\", startsExpr),\n string: new TokenType(\"string\", startsExpr),\n name: new TokenType(\"name\", startsExpr),\n eof: new TokenType(\"eof\"),\n\n // Punctuation token types.\n bracketL: new TokenType(\"[\", {beforeExpr: true, startsExpr: true}),\n bracketR: new TokenType(\"]\"),\n braceL: new TokenType(\"{\", {beforeExpr: true, startsExpr: true}),\n braceR: new TokenType(\"}\"),\n parenL: new TokenType(\"(\", {beforeExpr: true, startsExpr: true}),\n parenR: new TokenType(\")\"),\n comma: new TokenType(\",\", beforeExpr),\n semi: new TokenType(\";\", beforeExpr),\n colon: new TokenType(\":\", beforeExpr),\n dot: new TokenType(\".\"),\n question: new TokenType(\"?\", beforeExpr),\n arrow: new TokenType(\"=>\", beforeExpr),\n template: new TokenType(\"template\"),\n invalidTemplate: new TokenType(\"invalidTemplate\"),\n ellipsis: new TokenType(\"...\", beforeExpr),\n backQuote: new TokenType(\"`\", startsExpr),\n dollarBraceL: new TokenType(\"${\", {beforeExpr: true, startsExpr: true}),\n\n // Operators. These carry several kinds of properties to help the\n // parser use them properly (the presence of these properties is\n // what categorizes them as operators).\n //\n // `binop`, when present, specifies that this operator is a binary\n // operator, and will refer to its precedence.\n //\n // `prefix` and `postfix` mark the operator as a prefix or postfix\n // unary operator.\n //\n // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n // binary operators with a very low precedence, that should result\n // in AssignmentExpression nodes.\n\n eq: new TokenType(\"=\", {beforeExpr: true, isAssign: true}),\n assign: new TokenType(\"_=\", {beforeExpr: true, isAssign: true}),\n incDec: new TokenType(\"++/--\", {prefix: true, postfix: true, startsExpr: true}),\n prefix: new TokenType(\"!/~\", {beforeExpr: true, prefix: true, startsExpr: true}),\n logicalOR: binop(\"||\", 1),\n logicalAND: binop(\"&&\", 2),\n bitwiseOR: binop(\"|\", 3),\n bitwiseXOR: binop(\"^\", 4),\n bitwiseAND: binop(\"&\", 5),\n equality: binop(\"==/!=/===/!==\", 6),\n relational: binop(\"/<=/>=\", 7),\n bitShift: binop(\"<>/>>>\", 8),\n plusMin: new TokenType(\"+/-\", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),\n modulo: binop(\"%\", 10),\n star: binop(\"*\", 10),\n slash: binop(\"/\", 10),\n starstar: new TokenType(\"**\", {beforeExpr: true}),\n\n // Keyword token types.\n _break: kw(\"break\"),\n _case: kw(\"case\", beforeExpr),\n _catch: kw(\"catch\"),\n _continue: kw(\"continue\"),\n _debugger: kw(\"debugger\"),\n _default: kw(\"default\", beforeExpr),\n _do: kw(\"do\", {isLoop: true, beforeExpr: true}),\n _else: kw(\"else\", beforeExpr),\n _finally: kw(\"finally\"),\n _for: kw(\"for\", {isLoop: true}),\n _function: kw(\"function\", startsExpr),\n _if: kw(\"if\"),\n _return: kw(\"return\", beforeExpr),\n _switch: kw(\"switch\"),\n _throw: kw(\"throw\", beforeExpr),\n _try: kw(\"try\"),\n _var: kw(\"var\"),\n _const: kw(\"const\"),\n _while: kw(\"while\", {isLoop: true}),\n _with: kw(\"with\"),\n _new: kw(\"new\", {beforeExpr: true, startsExpr: true}),\n _this: kw(\"this\", startsExpr),\n _super: kw(\"super\", startsExpr),\n _class: kw(\"class\", startsExpr),\n _extends: kw(\"extends\", beforeExpr),\n _export: kw(\"export\"),\n _import: kw(\"import\", startsExpr),\n _null: kw(\"null\", startsExpr),\n _true: kw(\"true\", startsExpr),\n _false: kw(\"false\", startsExpr),\n _in: kw(\"in\", {beforeExpr: true, binop: 7}),\n _instanceof: kw(\"instanceof\", {beforeExpr: true, binop: 7}),\n _typeof: kw(\"typeof\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _void: kw(\"void\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _delete: kw(\"delete\", {beforeExpr: true, prefix: true, startsExpr: true})\n};\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\n\nvar lineBreak = /\\r\\n?|\\n|\\u2028|\\u2029/;\nvar lineBreakG = new RegExp(lineBreak.source, \"g\");\n\nfunction isNewLine(code, ecma2019String) {\n return code === 10 || code === 13 || (!ecma2019String && (code === 0x2028 || code === 0x2029))\n}\n\nvar nonASCIIwhitespace = /[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/;\n\nvar skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\nvar ref = Object.prototype;\nvar hasOwnProperty = ref.hasOwnProperty;\nvar toString = ref.toString;\n\n// Checks if an object has a property.\n\nfunction has(obj, propName) {\n return hasOwnProperty.call(obj, propName)\n}\n\nvar isArray = Array.isArray || (function (obj) { return (\n toString.call(obj) === \"[object Array]\"\n); });\n\nfunction wordsRegexp(words) {\n return new RegExp(\"^(?:\" + words.replace(/ /g, \"|\") + \")$\")\n}\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nvar Position = function Position(line, col) {\n this.line = line;\n this.column = col;\n};\n\nPosition.prototype.offset = function offset (n) {\n return new Position(this.line, this.column + n)\n};\n\nvar SourceLocation = function SourceLocation(p, start, end) {\n this.start = start;\n this.end = end;\n if (p.sourceFile !== null) { this.source = p.sourceFile; }\n};\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nfunction getLineInfo(input, offset) {\n for (var line = 1, cur = 0;;) {\n lineBreakG.lastIndex = cur;\n var match = lineBreakG.exec(input);\n if (match && match.index < offset) {\n ++line;\n cur = match.index + match[0].length;\n } else {\n return new Position(line, offset - cur)\n }\n }\n}\n\n// A second optional argument can be given to further configure\n// the parser process. These options are recognized:\n\nvar defaultOptions = {\n // `ecmaVersion` indicates the ECMAScript version to parse. Must be\n // either 3, 5, 6 (2015), 7 (2016), 8 (2017), 9 (2018), or 10\n // (2019). This influences support for strict mode, the set of\n // reserved words, and support for new syntax features. The default\n // is 9.\n ecmaVersion: 9,\n // `sourceType` indicates the mode the code should be parsed in.\n // Can be either `\"script\"` or `\"module\"`. This influences global\n // strict mode and parsing of `import` and `export` declarations.\n sourceType: \"script\",\n // `onInsertedSemicolon` can be a callback that will be called\n // when a semicolon is automatically inserted. It will be passed\n // the position of the comma as an offset, and if `locations` is\n // enabled, it is given the location as a `{line, column}` object\n // as second argument.\n onInsertedSemicolon: null,\n // `onTrailingComma` is similar to `onInsertedSemicolon`, but for\n // trailing commas.\n onTrailingComma: null,\n // By default, reserved words are only enforced if ecmaVersion >= 5.\n // Set `allowReserved` to a boolean value to explicitly turn this on\n // an off. When this option has the value \"never\", reserved words\n // and keywords can also not be used as property names.\n allowReserved: null,\n // When enabled, a return at the top level is not considered an\n // error.\n allowReturnOutsideFunction: false,\n // When enabled, import/export statements are not constrained to\n // appearing at the top of the program.\n allowImportExportEverywhere: false,\n // When enabled, await identifiers are allowed to appear at the top-level scope,\n // but they are still not allowed in non-async functions.\n allowAwaitOutsideFunction: false,\n // When enabled, hashbang directive in the beginning of file\n // is allowed and treated as a line comment.\n allowHashBang: false,\n // When `locations` is on, `loc` properties holding objects with\n // `start` and `end` properties in `{line, column}` form (with\n // line being 1-based and column 0-based) will be attached to the\n // nodes.\n locations: false,\n // A function can be passed as `onToken` option, which will\n // cause Acorn to call that function with object in the same\n // format as tokens returned from `tokenizer().getToken()`. Note\n // that you are not allowed to call the parser from the\n // callback—that will corrupt its internal state.\n onToken: null,\n // A function can be passed as `onComment` option, which will\n // cause Acorn to call that function with `(block, text, start,\n // end)` parameters whenever a comment is skipped. `block` is a\n // boolean indicating whether this is a block (`/* */`) comment,\n // `text` is the content of the comment, and `start` and `end` are\n // character offsets that denote the start and end of the comment.\n // When the `locations` option is on, two more parameters are\n // passed, the full `{line, column}` locations of the start and\n // end of the comments. Note that you are not allowed to call the\n // parser from the callback—that will corrupt its internal state.\n onComment: null,\n // Nodes have their start and end characters offsets recorded in\n // `start` and `end` properties (directly on the node, rather than\n // the `loc` object, which holds line/column data. To also add a\n // [semi-standardized][range] `range` property holding a `[start,\n // end]` array with the same numbers, set the `ranges` option to\n // `true`.\n //\n // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n ranges: false,\n // It is possible to parse multiple files into a single AST by\n // passing the tree produced by parsing the first file as\n // `program` option in subsequent parses. This will add the\n // toplevel forms of the parsed file to the `Program` (top) node\n // of an existing parse tree.\n program: null,\n // When `locations` is on, you can pass this to record the source\n // file in every node's `loc` object.\n sourceFile: null,\n // This value, if given, is stored in every node, whether\n // `locations` is on or off.\n directSourceFile: null,\n // When enabled, parenthesized expressions are represented by\n // (non-standard) ParenthesizedExpression nodes\n preserveParens: false\n};\n\n// Interpret and default an options object\n\nfunction getOptions(opts) {\n var options = {};\n\n for (var opt in defaultOptions)\n { options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]; }\n\n if (options.ecmaVersion >= 2015)\n { options.ecmaVersion -= 2009; }\n\n if (options.allowReserved == null)\n { options.allowReserved = options.ecmaVersion < 5; }\n\n if (isArray(options.onToken)) {\n var tokens = options.onToken;\n options.onToken = function (token) { return tokens.push(token); };\n }\n if (isArray(options.onComment))\n { options.onComment = pushComment(options, options.onComment); }\n\n return options\n}\n\nfunction pushComment(options, array) {\n return function(block, text, start, end, startLoc, endLoc) {\n var comment = {\n type: block ? \"Block\" : \"Line\",\n value: text,\n start: start,\n end: end\n };\n if (options.locations)\n { comment.loc = new SourceLocation(this, startLoc, endLoc); }\n if (options.ranges)\n { comment.range = [start, end]; }\n array.push(comment);\n }\n}\n\n// Each scope gets a bitset that may contain these flags\nvar\n SCOPE_TOP = 1,\n SCOPE_FUNCTION = 2,\n SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION,\n SCOPE_ASYNC = 4,\n SCOPE_GENERATOR = 8,\n SCOPE_ARROW = 16,\n SCOPE_SIMPLE_CATCH = 32,\n SCOPE_SUPER = 64,\n SCOPE_DIRECT_SUPER = 128;\n\nfunction functionFlags(async, generator) {\n return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0)\n}\n\n// Used in checkLVal and declareName to determine the type of a binding\nvar\n BIND_NONE = 0, // Not a binding\n BIND_VAR = 1, // Var-style binding\n BIND_LEXICAL = 2, // Let- or const-style binding\n BIND_FUNCTION = 3, // Function declaration\n BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding\n BIND_OUTSIDE = 5; // Special case for function names as bound inside the function\n\nvar Parser = function Parser(options, input, startPos) {\n this.options = options = getOptions(options);\n this.sourceFile = options.sourceFile;\n this.keywords = wordsRegexp(keywords[options.ecmaVersion >= 6 ? 6 : options.sourceType === \"module\" ? \"5module\" : 5]);\n var reserved = \"\";\n if (options.allowReserved !== true) {\n for (var v = options.ecmaVersion;; v--)\n { if (reserved = reservedWords[v]) { break } }\n if (options.sourceType === \"module\") { reserved += \" await\"; }\n }\n this.reservedWords = wordsRegexp(reserved);\n var reservedStrict = (reserved ? reserved + \" \" : \"\") + reservedWords.strict;\n this.reservedWordsStrict = wordsRegexp(reservedStrict);\n this.reservedWordsStrictBind = wordsRegexp(reservedStrict + \" \" + reservedWords.strictBind);\n this.input = String(input);\n\n // Used to signal to callers of `readWord1` whether the word\n // contained any escape sequences. This is needed because words with\n // escape sequences must not be interpreted as keywords.\n this.containsEsc = false;\n\n // Set up token state\n\n // The current position of the tokenizer in the input.\n if (startPos) {\n this.pos = startPos;\n this.lineStart = this.input.lastIndexOf(\"\\n\", startPos - 1) + 1;\n this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length;\n } else {\n this.pos = this.lineStart = 0;\n this.curLine = 1;\n }\n\n // Properties of the current token:\n // Its type\n this.type = types.eof;\n // For tokens that include more information than their type, the value\n this.value = null;\n // Its start and end offset\n this.start = this.end = this.pos;\n // And, if locations are used, the {line, column} object\n // corresponding to those offsets\n this.startLoc = this.endLoc = this.curPosition();\n\n // Position information for the previous token\n this.lastTokEndLoc = this.lastTokStartLoc = null;\n this.lastTokStart = this.lastTokEnd = this.pos;\n\n // The context stack is used to superficially track syntactic\n // context to predict whether a regular expression is allowed in a\n // given position.\n this.context = this.initialContext();\n this.exprAllowed = true;\n\n // Figure out if it's a module code.\n this.inModule = options.sourceType === \"module\";\n this.strict = this.inModule || this.strictDirective(this.pos);\n\n // Used to signify the start of a potential arrow function\n this.potentialArrowAt = -1;\n\n // Positions to delayed-check that yield/await does not exist in default parameters.\n this.yieldPos = this.awaitPos = this.awaitIdentPos = 0;\n // Labels in scope.\n this.labels = [];\n // Thus-far undefined exports.\n this.undefinedExports = {};\n\n // If enabled, skip leading hashbang line.\n if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === \"#!\")\n { this.skipLineComment(2); }\n\n // Scope tracking for duplicate variable names (see scope.js)\n this.scopeStack = [];\n this.enterScope(SCOPE_TOP);\n\n // For RegExp validation\n this.regexpState = null;\n};\n\nvar prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true } };\n\nParser.prototype.parse = function parse () {\n var node = this.options.program || this.startNode();\n this.nextToken();\n return this.parseTopLevel(node)\n};\n\nprototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 };\nprototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 };\nprototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 };\nprototypeAccessors.allowSuper.get = function () { return (this.currentThisScope().flags & SCOPE_SUPER) > 0 };\nprototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 };\nprototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) };\n\n// Switch to a getter for 7.0.0.\nParser.prototype.inNonArrowFunction = function inNonArrowFunction () { return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0 };\n\nParser.extend = function extend () {\n var plugins = [], len = arguments.length;\n while ( len-- ) plugins[ len ] = arguments[ len ];\n\n var cls = this;\n for (var i = 0; i < plugins.length; i++) { cls = plugins[i](cls); }\n return cls\n};\n\nParser.parse = function parse (input, options) {\n return new this(options, input).parse()\n};\n\nParser.parseExpressionAt = function parseExpressionAt (input, pos, options) {\n var parser = new this(options, input, pos);\n parser.nextToken();\n return parser.parseExpression()\n};\n\nParser.tokenizer = function tokenizer (input, options) {\n return new this(options, input)\n};\n\nObject.defineProperties( Parser.prototype, prototypeAccessors );\n\nvar pp = Parser.prototype;\n\n// ## Parser utilities\n\nvar literal = /^(?:'((?:\\\\.|[^'])*?)'|\"((?:\\\\.|[^\"])*?)\")/;\npp.strictDirective = function(start) {\n for (;;) {\n // Try to find string literal.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n var match = literal.exec(this.input.slice(start));\n if (!match) { return false }\n if ((match[1] || match[2]) === \"use strict\") { return true }\n start += match[0].length;\n\n // Skip semicolon, if any.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n if (this.input[start] === \";\")\n { start++; }\n }\n};\n\n// Predicate that tests whether the next token is of the given\n// type, and if yes, consumes it as a side effect.\n\npp.eat = function(type) {\n if (this.type === type) {\n this.next();\n return true\n } else {\n return false\n }\n};\n\n// Tests whether parsed token is a contextual keyword.\n\npp.isContextual = function(name) {\n return this.type === types.name && this.value === name && !this.containsEsc\n};\n\n// Consumes contextual keyword if possible.\n\npp.eatContextual = function(name) {\n if (!this.isContextual(name)) { return false }\n this.next();\n return true\n};\n\n// Asserts that following token is given contextual keyword.\n\npp.expectContextual = function(name) {\n if (!this.eatContextual(name)) { this.unexpected(); }\n};\n\n// Test whether a semicolon can be inserted at the current position.\n\npp.canInsertSemicolon = function() {\n return this.type === types.eof ||\n this.type === types.braceR ||\n lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n};\n\npp.insertSemicolon = function() {\n if (this.canInsertSemicolon()) {\n if (this.options.onInsertedSemicolon)\n { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); }\n return true\n }\n};\n\n// Consume a semicolon, or, failing that, see if we are allowed to\n// pretend that there is a semicolon at this position.\n\npp.semicolon = function() {\n if (!this.eat(types.semi) && !this.insertSemicolon()) { this.unexpected(); }\n};\n\npp.afterTrailingComma = function(tokType, notNext) {\n if (this.type === tokType) {\n if (this.options.onTrailingComma)\n { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); }\n if (!notNext)\n { this.next(); }\n return true\n }\n};\n\n// Expect a token of a given type. If found, consume it, otherwise,\n// raise an unexpected token error.\n\npp.expect = function(type) {\n this.eat(type) || this.unexpected();\n};\n\n// Raise an unexpected token error.\n\npp.unexpected = function(pos) {\n this.raise(pos != null ? pos : this.start, \"Unexpected token\");\n};\n\nfunction DestructuringErrors() {\n this.shorthandAssign =\n this.trailingComma =\n this.parenthesizedAssign =\n this.parenthesizedBind =\n this.doubleProto =\n -1;\n}\n\npp.checkPatternErrors = function(refDestructuringErrors, isAssign) {\n if (!refDestructuringErrors) { return }\n if (refDestructuringErrors.trailingComma > -1)\n { this.raiseRecoverable(refDestructuringErrors.trailingComma, \"Comma is not permitted after the rest element\"); }\n var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind;\n if (parens > -1) { this.raiseRecoverable(parens, \"Parenthesized pattern\"); }\n};\n\npp.checkExpressionErrors = function(refDestructuringErrors, andThrow) {\n if (!refDestructuringErrors) { return false }\n var shorthandAssign = refDestructuringErrors.shorthandAssign;\n var doubleProto = refDestructuringErrors.doubleProto;\n if (!andThrow) { return shorthandAssign >= 0 || doubleProto >= 0 }\n if (shorthandAssign >= 0)\n { this.raise(shorthandAssign, \"Shorthand property assignments are valid only in destructuring patterns\"); }\n if (doubleProto >= 0)\n { this.raiseRecoverable(doubleProto, \"Redefinition of __proto__ property\"); }\n};\n\npp.checkYieldAwaitInDefaultParams = function() {\n if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))\n { this.raise(this.yieldPos, \"Yield expression cannot be a default value\"); }\n if (this.awaitPos)\n { this.raise(this.awaitPos, \"Await expression cannot be a default value\"); }\n};\n\npp.isSimpleAssignTarget = function(expr) {\n if (expr.type === \"ParenthesizedExpression\")\n { return this.isSimpleAssignTarget(expr.expression) }\n return expr.type === \"Identifier\" || expr.type === \"MemberExpression\"\n};\n\nvar pp$1 = Parser.prototype;\n\n// ### Statement parsing\n\n// Parse a program. Initializes the parser, reads any number of\n// statements, and wraps them in a Program node. Optionally takes a\n// `program` argument. If present, the statements will be appended\n// to its body instead of creating a new node.\n\npp$1.parseTopLevel = function(node) {\n var exports = {};\n if (!node.body) { node.body = []; }\n while (this.type !== types.eof) {\n var stmt = this.parseStatement(null, true, exports);\n node.body.push(stmt);\n }\n if (this.inModule)\n { for (var i = 0, list = Object.keys(this.undefinedExports); i < list.length; i += 1)\n {\n var name = list[i];\n\n this.raiseRecoverable(this.undefinedExports[name].start, (\"Export '\" + name + \"' is not defined\"));\n } }\n this.adaptDirectivePrologue(node.body);\n this.next();\n node.sourceType = this.options.sourceType;\n return this.finishNode(node, \"Program\")\n};\n\nvar loopLabel = {kind: \"loop\"}, switchLabel = {kind: \"switch\"};\n\npp$1.isLet = function(context) {\n if (this.options.ecmaVersion < 6 || !this.isContextual(\"let\")) { return false }\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);\n // For ambiguous cases, determine if a LexicalDeclaration (or only a\n // Statement) is allowed here. If context is not empty then only a Statement\n // is allowed. However, `let [` is an explicit negative lookahead for\n // ExpressionStatement, so special-case it first.\n if (nextCh === 91) { return true } // '['\n if (context) { return false }\n\n if (nextCh === 123) { return true } // '{'\n if (isIdentifierStart(nextCh, true)) {\n var pos = next + 1;\n while (isIdentifierChar(this.input.charCodeAt(pos), true)) { ++pos; }\n var ident = this.input.slice(next, pos);\n if (!keywordRelationalOperator.test(ident)) { return true }\n }\n return false\n};\n\n// check 'async [no LineTerminator here] function'\n// - 'async /*foo*/ function' is OK.\n// - 'async /*\\n*/ function' is invalid.\npp$1.isAsyncFunction = function() {\n if (this.options.ecmaVersion < 8 || !this.isContextual(\"async\"))\n { return false }\n\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length;\n return !lineBreak.test(this.input.slice(this.pos, next)) &&\n this.input.slice(next, next + 8) === \"function\" &&\n (next + 8 === this.input.length || !isIdentifierChar(this.input.charAt(next + 8)))\n};\n\n// Parse a single statement.\n//\n// If expecting a statement and finding a slash operator, parse a\n// regular expression literal. This is to handle cases like\n// `if (foo) /blah/.exec(foo)`, where looking at the previous token\n// does not help.\n\npp$1.parseStatement = function(context, topLevel, exports) {\n var starttype = this.type, node = this.startNode(), kind;\n\n if (this.isLet(context)) {\n starttype = types._var;\n kind = \"let\";\n }\n\n // Most types of statements are recognized by the keyword they\n // start with. Many are trivial to parse, some require a bit of\n // complexity.\n\n switch (starttype) {\n case types._break: case types._continue: return this.parseBreakContinueStatement(node, starttype.keyword)\n case types._debugger: return this.parseDebuggerStatement(node)\n case types._do: return this.parseDoStatement(node)\n case types._for: return this.parseForStatement(node)\n case types._function:\n // Function as sole body of either an if statement or a labeled statement\n // works, but not when it is part of a labeled statement that is the sole\n // body of an if statement.\n if ((context && (this.strict || context !== \"if\" && context !== \"label\")) && this.options.ecmaVersion >= 6) { this.unexpected(); }\n return this.parseFunctionStatement(node, false, !context)\n case types._class:\n if (context) { this.unexpected(); }\n return this.parseClass(node, true)\n case types._if: return this.parseIfStatement(node)\n case types._return: return this.parseReturnStatement(node)\n case types._switch: return this.parseSwitchStatement(node)\n case types._throw: return this.parseThrowStatement(node)\n case types._try: return this.parseTryStatement(node)\n case types._const: case types._var:\n kind = kind || this.value;\n if (context && kind !== \"var\") { this.unexpected(); }\n return this.parseVarStatement(node, kind)\n case types._while: return this.parseWhileStatement(node)\n case types._with: return this.parseWithStatement(node)\n case types.braceL: return this.parseBlock(true, node)\n case types.semi: return this.parseEmptyStatement(node)\n case types._export:\n case types._import:\n if (this.options.ecmaVersion > 10 && starttype === types._import) {\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);\n if (nextCh === 40) // '('\n { return this.parseExpressionStatement(node, this.parseExpression()) }\n }\n\n if (!this.options.allowImportExportEverywhere) {\n if (!topLevel)\n { this.raise(this.start, \"'import' and 'export' may only appear at the top level\"); }\n if (!this.inModule)\n { this.raise(this.start, \"'import' and 'export' may appear only with 'sourceType: module'\"); }\n }\n return starttype === types._import ? this.parseImport(node) : this.parseExport(node, exports)\n\n // If the statement does not start with a statement keyword or a\n // brace, it's an ExpressionStatement or LabeledStatement. We\n // simply start parsing an expression, and afterwards, if the\n // next token is a colon and the expression was a simple\n // Identifier node, we switch to interpreting it as a label.\n default:\n if (this.isAsyncFunction()) {\n if (context) { this.unexpected(); }\n this.next();\n return this.parseFunctionStatement(node, true, !context)\n }\n\n var maybeName = this.value, expr = this.parseExpression();\n if (starttype === types.name && expr.type === \"Identifier\" && this.eat(types.colon))\n { return this.parseLabeledStatement(node, maybeName, expr, context) }\n else { return this.parseExpressionStatement(node, expr) }\n }\n};\n\npp$1.parseBreakContinueStatement = function(node, keyword) {\n var isBreak = keyword === \"break\";\n this.next();\n if (this.eat(types.semi) || this.insertSemicolon()) { node.label = null; }\n else if (this.type !== types.name) { this.unexpected(); }\n else {\n node.label = this.parseIdent();\n this.semicolon();\n }\n\n // Verify that there is an actual destination to break or\n // continue to.\n var i = 0;\n for (; i < this.labels.length; ++i) {\n var lab = this.labels[i];\n if (node.label == null || lab.name === node.label.name) {\n if (lab.kind != null && (isBreak || lab.kind === \"loop\")) { break }\n if (node.label && isBreak) { break }\n }\n }\n if (i === this.labels.length) { this.raise(node.start, \"Unsyntactic \" + keyword); }\n return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\")\n};\n\npp$1.parseDebuggerStatement = function(node) {\n this.next();\n this.semicolon();\n return this.finishNode(node, \"DebuggerStatement\")\n};\n\npp$1.parseDoStatement = function(node) {\n this.next();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"do\");\n this.labels.pop();\n this.expect(types._while);\n node.test = this.parseParenExpression();\n if (this.options.ecmaVersion >= 6)\n { this.eat(types.semi); }\n else\n { this.semicolon(); }\n return this.finishNode(node, \"DoWhileStatement\")\n};\n\n// Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n// loop is non-trivial. Basically, we have to parse the init `var`\n// statement or expression, disallowing the `in` operator (see\n// the second parameter to `parseExpression`), and then check\n// whether the next token is `in` or `of`. When there is no init\n// part (semicolon immediately after the opening parenthesis), it\n// is a regular `for` loop.\n\npp$1.parseForStatement = function(node) {\n this.next();\n var awaitAt = (this.options.ecmaVersion >= 9 && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction)) && this.eatContextual(\"await\")) ? this.lastTokStart : -1;\n this.labels.push(loopLabel);\n this.enterScope(0);\n this.expect(types.parenL);\n if (this.type === types.semi) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, null)\n }\n var isLet = this.isLet();\n if (this.type === types._var || this.type === types._const || isLet) {\n var init$1 = this.startNode(), kind = isLet ? \"let\" : this.value;\n this.next();\n this.parseVar(init$1, true, kind);\n this.finishNode(init$1, \"VariableDeclaration\");\n if ((this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) && init$1.declarations.length === 1) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === types._in) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n } else { node.await = awaitAt > -1; }\n }\n return this.parseForIn(node, init$1)\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init$1)\n }\n var refDestructuringErrors = new DestructuringErrors;\n var init = this.parseExpression(true, refDestructuringErrors);\n if (this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === types._in) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n } else { node.await = awaitAt > -1; }\n }\n this.toAssignable(init, false, refDestructuringErrors);\n this.checkLVal(init);\n return this.parseForIn(node, init)\n } else {\n this.checkExpressionErrors(refDestructuringErrors, true);\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init)\n};\n\npp$1.parseFunctionStatement = function(node, isAsync, declarationPosition) {\n this.next();\n return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)\n};\n\npp$1.parseIfStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n // allow function declarations in branches, but only in non-strict mode\n node.consequent = this.parseStatement(\"if\");\n node.alternate = this.eat(types._else) ? this.parseStatement(\"if\") : null;\n return this.finishNode(node, \"IfStatement\")\n};\n\npp$1.parseReturnStatement = function(node) {\n if (!this.inFunction && !this.options.allowReturnOutsideFunction)\n { this.raise(this.start, \"'return' outside of function\"); }\n this.next();\n\n // In `return` (and `break`/`continue`), the keywords with\n // optional arguments, we eagerly look for a semicolon or the\n // possibility to insert one.\n\n if (this.eat(types.semi) || this.insertSemicolon()) { node.argument = null; }\n else { node.argument = this.parseExpression(); this.semicolon(); }\n return this.finishNode(node, \"ReturnStatement\")\n};\n\npp$1.parseSwitchStatement = function(node) {\n this.next();\n node.discriminant = this.parseParenExpression();\n node.cases = [];\n this.expect(types.braceL);\n this.labels.push(switchLabel);\n this.enterScope(0);\n\n // Statements under must be grouped (by label) in SwitchCase\n // nodes. `cur` is used to keep the node that we are currently\n // adding statements to.\n\n var cur;\n for (var sawDefault = false; this.type !== types.braceR;) {\n if (this.type === types._case || this.type === types._default) {\n var isCase = this.type === types._case;\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n node.cases.push(cur = this.startNode());\n cur.consequent = [];\n this.next();\n if (isCase) {\n cur.test = this.parseExpression();\n } else {\n if (sawDefault) { this.raiseRecoverable(this.lastTokStart, \"Multiple default clauses\"); }\n sawDefault = true;\n cur.test = null;\n }\n this.expect(types.colon);\n } else {\n if (!cur) { this.unexpected(); }\n cur.consequent.push(this.parseStatement(null));\n }\n }\n this.exitScope();\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n this.next(); // Closing brace\n this.labels.pop();\n return this.finishNode(node, \"SwitchStatement\")\n};\n\npp$1.parseThrowStatement = function(node) {\n this.next();\n if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))\n { this.raise(this.lastTokEnd, \"Illegal newline after throw\"); }\n node.argument = this.parseExpression();\n this.semicolon();\n return this.finishNode(node, \"ThrowStatement\")\n};\n\n// Reused empty array added for node fields that are always empty.\n\nvar empty = [];\n\npp$1.parseTryStatement = function(node) {\n this.next();\n node.block = this.parseBlock();\n node.handler = null;\n if (this.type === types._catch) {\n var clause = this.startNode();\n this.next();\n if (this.eat(types.parenL)) {\n clause.param = this.parseBindingAtom();\n var simple = clause.param.type === \"Identifier\";\n this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0);\n this.checkLVal(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL);\n this.expect(types.parenR);\n } else {\n if (this.options.ecmaVersion < 10) { this.unexpected(); }\n clause.param = null;\n this.enterScope(0);\n }\n clause.body = this.parseBlock(false);\n this.exitScope();\n node.handler = this.finishNode(clause, \"CatchClause\");\n }\n node.finalizer = this.eat(types._finally) ? this.parseBlock() : null;\n if (!node.handler && !node.finalizer)\n { this.raise(node.start, \"Missing catch or finally clause\"); }\n return this.finishNode(node, \"TryStatement\")\n};\n\npp$1.parseVarStatement = function(node, kind) {\n this.next();\n this.parseVar(node, false, kind);\n this.semicolon();\n return this.finishNode(node, \"VariableDeclaration\")\n};\n\npp$1.parseWhileStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"while\");\n this.labels.pop();\n return this.finishNode(node, \"WhileStatement\")\n};\n\npp$1.parseWithStatement = function(node) {\n if (this.strict) { this.raise(this.start, \"'with' in strict mode\"); }\n this.next();\n node.object = this.parseParenExpression();\n node.body = this.parseStatement(\"with\");\n return this.finishNode(node, \"WithStatement\")\n};\n\npp$1.parseEmptyStatement = function(node) {\n this.next();\n return this.finishNode(node, \"EmptyStatement\")\n};\n\npp$1.parseLabeledStatement = function(node, maybeName, expr, context) {\n for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1)\n {\n var label = list[i$1];\n\n if (label.name === maybeName)\n { this.raise(expr.start, \"Label '\" + maybeName + \"' is already declared\");\n } }\n var kind = this.type.isLoop ? \"loop\" : this.type === types._switch ? \"switch\" : null;\n for (var i = this.labels.length - 1; i >= 0; i--) {\n var label$1 = this.labels[i];\n if (label$1.statementStart === node.start) {\n // Update information about previous labels on this node\n label$1.statementStart = this.start;\n label$1.kind = kind;\n } else { break }\n }\n this.labels.push({name: maybeName, kind: kind, statementStart: this.start});\n node.body = this.parseStatement(context ? context.indexOf(\"label\") === -1 ? context + \"label\" : context : \"label\");\n this.labels.pop();\n node.label = expr;\n return this.finishNode(node, \"LabeledStatement\")\n};\n\npp$1.parseExpressionStatement = function(node, expr) {\n node.expression = expr;\n this.semicolon();\n return this.finishNode(node, \"ExpressionStatement\")\n};\n\n// Parse a semicolon-enclosed block of statements, handling `\"use\n// strict\"` declarations when `allowStrict` is true (used for\n// function bodies).\n\npp$1.parseBlock = function(createNewLexicalScope, node) {\n if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true;\n if ( node === void 0 ) node = this.startNode();\n\n node.body = [];\n this.expect(types.braceL);\n if (createNewLexicalScope) { this.enterScope(0); }\n while (!this.eat(types.braceR)) {\n var stmt = this.parseStatement(null);\n node.body.push(stmt);\n }\n if (createNewLexicalScope) { this.exitScope(); }\n return this.finishNode(node, \"BlockStatement\")\n};\n\n// Parse a regular `for` loop. The disambiguation code in\n// `parseStatement` will already have parsed the init statement or\n// expression.\n\npp$1.parseFor = function(node, init) {\n node.init = init;\n this.expect(types.semi);\n node.test = this.type === types.semi ? null : this.parseExpression();\n this.expect(types.semi);\n node.update = this.type === types.parenR ? null : this.parseExpression();\n this.expect(types.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, \"ForStatement\")\n};\n\n// Parse a `for`/`in` and `for`/`of` loop, which are almost\n// same from parser's perspective.\n\npp$1.parseForIn = function(node, init) {\n var isForIn = this.type === types._in;\n this.next();\n\n if (\n init.type === \"VariableDeclaration\" &&\n init.declarations[0].init != null &&\n (\n !isForIn ||\n this.options.ecmaVersion < 8 ||\n this.strict ||\n init.kind !== \"var\" ||\n init.declarations[0].id.type !== \"Identifier\"\n )\n ) {\n this.raise(\n init.start,\n ((isForIn ? \"for-in\" : \"for-of\") + \" loop variable declaration may not have an initializer\")\n );\n } else if (init.type === \"AssignmentPattern\") {\n this.raise(init.start, \"Invalid left-hand side in for-loop\");\n }\n node.left = init;\n node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();\n this.expect(types.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\")\n};\n\n// Parse a list of variable declarations.\n\npp$1.parseVar = function(node, isFor, kind) {\n node.declarations = [];\n node.kind = kind;\n for (;;) {\n var decl = this.startNode();\n this.parseVarId(decl, kind);\n if (this.eat(types.eq)) {\n decl.init = this.parseMaybeAssign(isFor);\n } else if (kind === \"const\" && !(this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\")))) {\n this.unexpected();\n } else if (decl.id.type !== \"Identifier\" && !(isFor && (this.type === types._in || this.isContextual(\"of\")))) {\n this.raise(this.lastTokEnd, \"Complex binding patterns require an initialization value\");\n } else {\n decl.init = null;\n }\n node.declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n if (!this.eat(types.comma)) { break }\n }\n return node\n};\n\npp$1.parseVarId = function(decl, kind) {\n decl.id = this.parseBindingAtom();\n this.checkLVal(decl.id, kind === \"var\" ? BIND_VAR : BIND_LEXICAL, false);\n};\n\nvar FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4;\n\n// Parse a function declaration or literal (depending on the\n// `statement & FUNC_STATEMENT`).\n\n// Remove `allowExpressionBody` for 7.0.0, as it is only called with false\npp$1.parseFunction = function(node, statement, allowExpressionBody, isAsync) {\n this.initFunction(node);\n if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {\n if (this.type === types.star && (statement & FUNC_HANGING_STATEMENT))\n { this.unexpected(); }\n node.generator = this.eat(types.star);\n }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n if (statement & FUNC_STATEMENT) {\n node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types.name ? null : this.parseIdent();\n if (node.id && !(statement & FUNC_HANGING_STATEMENT))\n // If it is a regular function declaration in sloppy mode, then it is\n // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n // mode depends on properties of the current scope (see\n // treatFunctionsAsVar).\n { this.checkLVal(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION); }\n }\n\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(node.async, node.generator));\n\n if (!(statement & FUNC_STATEMENT))\n { node.id = this.type === types.name ? this.parseIdent() : null; }\n\n this.parseFunctionParams(node);\n this.parseFunctionBody(node, allowExpressionBody, false);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, (statement & FUNC_STATEMENT) ? \"FunctionDeclaration\" : \"FunctionExpression\")\n};\n\npp$1.parseFunctionParams = function(node) {\n this.expect(types.parenL);\n node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n};\n\n// Parse a class declaration or literal (depending on the\n// `isStatement` parameter).\n\npp$1.parseClass = function(node, isStatement) {\n this.next();\n\n // ecma-262 14.6 Class Definitions\n // A class definition is always strict mode code.\n var oldStrict = this.strict;\n this.strict = true;\n\n this.parseClassId(node, isStatement);\n this.parseClassSuper(node);\n var classBody = this.startNode();\n var hadConstructor = false;\n classBody.body = [];\n this.expect(types.braceL);\n while (!this.eat(types.braceR)) {\n var element = this.parseClassElement(node.superClass !== null);\n if (element) {\n classBody.body.push(element);\n if (element.type === \"MethodDefinition\" && element.kind === \"constructor\") {\n if (hadConstructor) { this.raise(element.start, \"Duplicate constructor in the same class\"); }\n hadConstructor = true;\n }\n }\n }\n node.body = this.finishNode(classBody, \"ClassBody\");\n this.strict = oldStrict;\n return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\")\n};\n\npp$1.parseClassElement = function(constructorAllowsSuper) {\n var this$1 = this;\n\n if (this.eat(types.semi)) { return null }\n\n var method = this.startNode();\n var tryContextual = function (k, noLineBreak) {\n if ( noLineBreak === void 0 ) noLineBreak = false;\n\n var start = this$1.start, startLoc = this$1.startLoc;\n if (!this$1.eatContextual(k)) { return false }\n if (this$1.type !== types.parenL && (!noLineBreak || !this$1.canInsertSemicolon())) { return true }\n if (method.key) { this$1.unexpected(); }\n method.computed = false;\n method.key = this$1.startNodeAt(start, startLoc);\n method.key.name = k;\n this$1.finishNode(method.key, \"Identifier\");\n return false\n };\n\n method.kind = \"method\";\n method.static = tryContextual(\"static\");\n var isGenerator = this.eat(types.star);\n var isAsync = false;\n if (!isGenerator) {\n if (this.options.ecmaVersion >= 8 && tryContextual(\"async\", true)) {\n isAsync = true;\n isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star);\n } else if (tryContextual(\"get\")) {\n method.kind = \"get\";\n } else if (tryContextual(\"set\")) {\n method.kind = \"set\";\n }\n }\n if (!method.key) { this.parsePropertyName(method); }\n var key = method.key;\n var allowsDirectSuper = false;\n if (!method.computed && !method.static && (key.type === \"Identifier\" && key.name === \"constructor\" ||\n key.type === \"Literal\" && key.value === \"constructor\")) {\n if (method.kind !== \"method\") { this.raise(key.start, \"Constructor can't have get/set modifier\"); }\n if (isGenerator) { this.raise(key.start, \"Constructor can't be a generator\"); }\n if (isAsync) { this.raise(key.start, \"Constructor can't be an async method\"); }\n method.kind = \"constructor\";\n allowsDirectSuper = constructorAllowsSuper;\n } else if (method.static && key.type === \"Identifier\" && key.name === \"prototype\") {\n this.raise(key.start, \"Classes may not have a static property named prototype\");\n }\n this.parseClassMethod(method, isGenerator, isAsync, allowsDirectSuper);\n if (method.kind === \"get\" && method.value.params.length !== 0)\n { this.raiseRecoverable(method.value.start, \"getter should have no params\"); }\n if (method.kind === \"set\" && method.value.params.length !== 1)\n { this.raiseRecoverable(method.value.start, \"setter should have exactly one param\"); }\n if (method.kind === \"set\" && method.value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(method.value.params[0].start, \"Setter cannot use rest params\"); }\n return method\n};\n\npp$1.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {\n method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper);\n return this.finishNode(method, \"MethodDefinition\")\n};\n\npp$1.parseClassId = function(node, isStatement) {\n if (this.type === types.name) {\n node.id = this.parseIdent();\n if (isStatement)\n { this.checkLVal(node.id, BIND_LEXICAL, false); }\n } else {\n if (isStatement === true)\n { this.unexpected(); }\n node.id = null;\n }\n};\n\npp$1.parseClassSuper = function(node) {\n node.superClass = this.eat(types._extends) ? this.parseExprSubscripts() : null;\n};\n\n// Parses module export declaration.\n\npp$1.parseExport = function(node, exports) {\n this.next();\n // export * from '...'\n if (this.eat(types.star)) {\n this.expectContextual(\"from\");\n if (this.type !== types.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n this.semicolon();\n return this.finishNode(node, \"ExportAllDeclaration\")\n }\n if (this.eat(types._default)) { // export default ...\n this.checkExport(exports, \"default\", this.lastTokStart);\n var isAsync;\n if (this.type === types._function || (isAsync = this.isAsyncFunction())) {\n var fNode = this.startNode();\n this.next();\n if (isAsync) { this.next(); }\n node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync);\n } else if (this.type === types._class) {\n var cNode = this.startNode();\n node.declaration = this.parseClass(cNode, \"nullableID\");\n } else {\n node.declaration = this.parseMaybeAssign();\n this.semicolon();\n }\n return this.finishNode(node, \"ExportDefaultDeclaration\")\n }\n // export var|const|let|function|class ...\n if (this.shouldParseExportStatement()) {\n node.declaration = this.parseStatement(null);\n if (node.declaration.type === \"VariableDeclaration\")\n { this.checkVariableExport(exports, node.declaration.declarations); }\n else\n { this.checkExport(exports, node.declaration.id.name, node.declaration.id.start); }\n node.specifiers = [];\n node.source = null;\n } else { // export { x, y as z } [from '...']\n node.declaration = null;\n node.specifiers = this.parseExportSpecifiers(exports);\n if (this.eatContextual(\"from\")) {\n if (this.type !== types.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n } else {\n for (var i = 0, list = node.specifiers; i < list.length; i += 1) {\n // check for keywords used as local names\n var spec = list[i];\n\n this.checkUnreserved(spec.local);\n // check if export is defined\n this.checkLocalExport(spec.local);\n }\n\n node.source = null;\n }\n this.semicolon();\n }\n return this.finishNode(node, \"ExportNamedDeclaration\")\n};\n\npp$1.checkExport = function(exports, name, pos) {\n if (!exports) { return }\n if (has(exports, name))\n { this.raiseRecoverable(pos, \"Duplicate export '\" + name + \"'\"); }\n exports[name] = true;\n};\n\npp$1.checkPatternExport = function(exports, pat) {\n var type = pat.type;\n if (type === \"Identifier\")\n { this.checkExport(exports, pat.name, pat.start); }\n else if (type === \"ObjectPattern\")\n { for (var i = 0, list = pat.properties; i < list.length; i += 1)\n {\n var prop = list[i];\n\n this.checkPatternExport(exports, prop);\n } }\n else if (type === \"ArrayPattern\")\n { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) {\n var elt = list$1[i$1];\n\n if (elt) { this.checkPatternExport(exports, elt); }\n } }\n else if (type === \"Property\")\n { this.checkPatternExport(exports, pat.value); }\n else if (type === \"AssignmentPattern\")\n { this.checkPatternExport(exports, pat.left); }\n else if (type === \"RestElement\")\n { this.checkPatternExport(exports, pat.argument); }\n else if (type === \"ParenthesizedExpression\")\n { this.checkPatternExport(exports, pat.expression); }\n};\n\npp$1.checkVariableExport = function(exports, decls) {\n if (!exports) { return }\n for (var i = 0, list = decls; i < list.length; i += 1)\n {\n var decl = list[i];\n\n this.checkPatternExport(exports, decl.id);\n }\n};\n\npp$1.shouldParseExportStatement = function() {\n return this.type.keyword === \"var\" ||\n this.type.keyword === \"const\" ||\n this.type.keyword === \"class\" ||\n this.type.keyword === \"function\" ||\n this.isLet() ||\n this.isAsyncFunction()\n};\n\n// Parses a comma-separated list of module exports.\n\npp$1.parseExportSpecifiers = function(exports) {\n var nodes = [], first = true;\n // export { x, y as z } [from '...']\n this.expect(types.braceL);\n while (!this.eat(types.braceR)) {\n if (!first) {\n this.expect(types.comma);\n if (this.afterTrailingComma(types.braceR)) { break }\n } else { first = false; }\n\n var node = this.startNode();\n node.local = this.parseIdent(true);\n node.exported = this.eatContextual(\"as\") ? this.parseIdent(true) : node.local;\n this.checkExport(exports, node.exported.name, node.exported.start);\n nodes.push(this.finishNode(node, \"ExportSpecifier\"));\n }\n return nodes\n};\n\n// Parses import declaration.\n\npp$1.parseImport = function(node) {\n this.next();\n // import '...'\n if (this.type === types.string) {\n node.specifiers = empty;\n node.source = this.parseExprAtom();\n } else {\n node.specifiers = this.parseImportSpecifiers();\n this.expectContextual(\"from\");\n node.source = this.type === types.string ? this.parseExprAtom() : this.unexpected();\n }\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\")\n};\n\n// Parses a comma-separated list of module imports.\n\npp$1.parseImportSpecifiers = function() {\n var nodes = [], first = true;\n if (this.type === types.name) {\n // import defaultObj, { x, y as z } from '...'\n var node = this.startNode();\n node.local = this.parseIdent();\n this.checkLVal(node.local, BIND_LEXICAL);\n nodes.push(this.finishNode(node, \"ImportDefaultSpecifier\"));\n if (!this.eat(types.comma)) { return nodes }\n }\n if (this.type === types.star) {\n var node$1 = this.startNode();\n this.next();\n this.expectContextual(\"as\");\n node$1.local = this.parseIdent();\n this.checkLVal(node$1.local, BIND_LEXICAL);\n nodes.push(this.finishNode(node$1, \"ImportNamespaceSpecifier\"));\n return nodes\n }\n this.expect(types.braceL);\n while (!this.eat(types.braceR)) {\n if (!first) {\n this.expect(types.comma);\n if (this.afterTrailingComma(types.braceR)) { break }\n } else { first = false; }\n\n var node$2 = this.startNode();\n node$2.imported = this.parseIdent(true);\n if (this.eatContextual(\"as\")) {\n node$2.local = this.parseIdent();\n } else {\n this.checkUnreserved(node$2.imported);\n node$2.local = node$2.imported;\n }\n this.checkLVal(node$2.local, BIND_LEXICAL);\n nodes.push(this.finishNode(node$2, \"ImportSpecifier\"));\n }\n return nodes\n};\n\n// Set `ExpressionStatement#directive` property for directive prologues.\npp$1.adaptDirectivePrologue = function(statements) {\n for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {\n statements[i].directive = statements[i].expression.raw.slice(1, -1);\n }\n};\npp$1.isDirectiveCandidate = function(statement) {\n return (\n statement.type === \"ExpressionStatement\" &&\n statement.expression.type === \"Literal\" &&\n typeof statement.expression.value === \"string\" &&\n // Reject parenthesized strings.\n (this.input[statement.start] === \"\\\"\" || this.input[statement.start] === \"'\")\n )\n};\n\nvar pp$2 = Parser.prototype;\n\n// Convert existing expression atom to assignable pattern\n// if possible.\n\npp$2.toAssignable = function(node, isBinding, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 6 && node) {\n switch (node.type) {\n case \"Identifier\":\n if (this.inAsync && node.name === \"await\")\n { this.raise(node.start, \"Cannot use 'await' as identifier inside an async function\"); }\n break\n\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"RestElement\":\n break\n\n case \"ObjectExpression\":\n node.type = \"ObjectPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n for (var i = 0, list = node.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n this.toAssignable(prop, isBinding);\n // Early error:\n // AssignmentRestProperty[Yield, Await] :\n // `...` DestructuringAssignmentTarget[Yield, Await]\n //\n // It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.\n if (\n prop.type === \"RestElement\" &&\n (prop.argument.type === \"ArrayPattern\" || prop.argument.type === \"ObjectPattern\")\n ) {\n this.raise(prop.argument.start, \"Unexpected token\");\n }\n }\n break\n\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n if (node.kind !== \"init\") { this.raise(node.key.start, \"Object pattern can't contain getter or setter\"); }\n this.toAssignable(node.value, isBinding);\n break\n\n case \"ArrayExpression\":\n node.type = \"ArrayPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n this.toAssignableList(node.elements, isBinding);\n break\n\n case \"SpreadElement\":\n node.type = \"RestElement\";\n this.toAssignable(node.argument, isBinding);\n if (node.argument.type === \"AssignmentPattern\")\n { this.raise(node.argument.start, \"Rest elements cannot have a default value\"); }\n break\n\n case \"AssignmentExpression\":\n if (node.operator !== \"=\") { this.raise(node.left.end, \"Only '=' operator can be used for specifying default value.\"); }\n node.type = \"AssignmentPattern\";\n delete node.operator;\n this.toAssignable(node.left, isBinding);\n // falls through to AssignmentPattern\n\n case \"AssignmentPattern\":\n break\n\n case \"ParenthesizedExpression\":\n this.toAssignable(node.expression, isBinding, refDestructuringErrors);\n break\n\n case \"MemberExpression\":\n if (!isBinding) { break }\n\n default:\n this.raise(node.start, \"Assigning to rvalue\");\n }\n } else if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n return node\n};\n\n// Convert list of expression atoms to binding list.\n\npp$2.toAssignableList = function(exprList, isBinding) {\n var end = exprList.length;\n for (var i = 0; i < end; i++) {\n var elt = exprList[i];\n if (elt) { this.toAssignable(elt, isBinding); }\n }\n if (end) {\n var last = exprList[end - 1];\n if (this.options.ecmaVersion === 6 && isBinding && last && last.type === \"RestElement\" && last.argument.type !== \"Identifier\")\n { this.unexpected(last.argument.start); }\n }\n return exprList\n};\n\n// Parses spread element.\n\npp$2.parseSpread = function(refDestructuringErrors) {\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n return this.finishNode(node, \"SpreadElement\")\n};\n\npp$2.parseRestBinding = function() {\n var node = this.startNode();\n this.next();\n\n // RestElement inside of a function parameter must be an identifier\n if (this.options.ecmaVersion === 6 && this.type !== types.name)\n { this.unexpected(); }\n\n node.argument = this.parseBindingAtom();\n\n return this.finishNode(node, \"RestElement\")\n};\n\n// Parses lvalue (assignable) atom.\n\npp$2.parseBindingAtom = function() {\n if (this.options.ecmaVersion >= 6) {\n switch (this.type) {\n case types.bracketL:\n var node = this.startNode();\n this.next();\n node.elements = this.parseBindingList(types.bracketR, true, true);\n return this.finishNode(node, \"ArrayPattern\")\n\n case types.braceL:\n return this.parseObj(true)\n }\n }\n return this.parseIdent()\n};\n\npp$2.parseBindingList = function(close, allowEmpty, allowTrailingComma) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (first) { first = false; }\n else { this.expect(types.comma); }\n if (allowEmpty && this.type === types.comma) {\n elts.push(null);\n } else if (allowTrailingComma && this.afterTrailingComma(close)) {\n break\n } else if (this.type === types.ellipsis) {\n var rest = this.parseRestBinding();\n this.parseBindingListItem(rest);\n elts.push(rest);\n if (this.type === types.comma) { this.raise(this.start, \"Comma is not permitted after the rest element\"); }\n this.expect(close);\n break\n } else {\n var elem = this.parseMaybeDefault(this.start, this.startLoc);\n this.parseBindingListItem(elem);\n elts.push(elem);\n }\n }\n return elts\n};\n\npp$2.parseBindingListItem = function(param) {\n return param\n};\n\n// Parses assignment pattern around given atom if possible.\n\npp$2.parseMaybeDefault = function(startPos, startLoc, left) {\n left = left || this.parseBindingAtom();\n if (this.options.ecmaVersion < 6 || !this.eat(types.eq)) { return left }\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.right = this.parseMaybeAssign();\n return this.finishNode(node, \"AssignmentPattern\")\n};\n\n// Verify that a node is an lval — something that can be assigned\n// to.\n// bindingType can be either:\n// 'var' indicating that the lval creates a 'var' binding\n// 'let' indicating that the lval creates a lexical ('let' or 'const') binding\n// 'none' indicating that the binding should be checked for illegal identifiers, but not for duplicate references\n\npp$2.checkLVal = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n switch (expr.type) {\n case \"Identifier\":\n if (bindingType === BIND_LEXICAL && expr.name === \"let\")\n { this.raiseRecoverable(expr.start, \"let is disallowed as a lexically bound name\"); }\n if (this.strict && this.reservedWordsStrictBind.test(expr.name))\n { this.raiseRecoverable(expr.start, (bindingType ? \"Binding \" : \"Assigning to \") + expr.name + \" in strict mode\"); }\n if (checkClashes) {\n if (has(checkClashes, expr.name))\n { this.raiseRecoverable(expr.start, \"Argument name clash\"); }\n checkClashes[expr.name] = true;\n }\n if (bindingType !== BIND_NONE && bindingType !== BIND_OUTSIDE) { this.declareName(expr.name, bindingType, expr.start); }\n break\n\n case \"MemberExpression\":\n if (bindingType) { this.raiseRecoverable(expr.start, \"Binding member expression\"); }\n break\n\n case \"ObjectPattern\":\n for (var i = 0, list = expr.properties; i < list.length; i += 1)\n {\n var prop = list[i];\n\n this.checkLVal(prop, bindingType, checkClashes);\n }\n break\n\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n this.checkLVal(expr.value, bindingType, checkClashes);\n break\n\n case \"ArrayPattern\":\n for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) {\n var elem = list$1[i$1];\n\n if (elem) { this.checkLVal(elem, bindingType, checkClashes); }\n }\n break\n\n case \"AssignmentPattern\":\n this.checkLVal(expr.left, bindingType, checkClashes);\n break\n\n case \"RestElement\":\n this.checkLVal(expr.argument, bindingType, checkClashes);\n break\n\n case \"ParenthesizedExpression\":\n this.checkLVal(expr.expression, bindingType, checkClashes);\n break\n\n default:\n this.raise(expr.start, (bindingType ? \"Binding\" : \"Assigning to\") + \" rvalue\");\n }\n};\n\n// A recursive descent parser operates by defining functions for all\n\nvar pp$3 = Parser.prototype;\n\n// Check if property name clashes with already added.\n// Object/class getters and setters are not allowed to clash —\n// either with each other or with an init property — and in\n// strict mode, init properties are also not allowed to be repeated.\n\npp$3.checkPropClash = function(prop, propHash, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 9 && prop.type === \"SpreadElement\")\n { return }\n if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))\n { return }\n var key = prop.key;\n var name;\n switch (key.type) {\n case \"Identifier\": name = key.name; break\n case \"Literal\": name = String(key.value); break\n default: return\n }\n var kind = prop.kind;\n if (this.options.ecmaVersion >= 6) {\n if (name === \"__proto__\" && kind === \"init\") {\n if (propHash.proto) {\n if (refDestructuringErrors && refDestructuringErrors.doubleProto < 0) { refDestructuringErrors.doubleProto = key.start; }\n // Backwards-compat kludge. Can be removed in version 6.0\n else { this.raiseRecoverable(key.start, \"Redefinition of __proto__ property\"); }\n }\n propHash.proto = true;\n }\n return\n }\n name = \"$\" + name;\n var other = propHash[name];\n if (other) {\n var redefinition;\n if (kind === \"init\") {\n redefinition = this.strict && other.init || other.get || other.set;\n } else {\n redefinition = other.init || other[kind];\n }\n if (redefinition)\n { this.raiseRecoverable(key.start, \"Redefinition of property\"); }\n } else {\n other = propHash[name] = {\n init: false,\n get: false,\n set: false\n };\n }\n other[kind] = true;\n};\n\n// ### Expression parsing\n\n// These nest, from the most general expression type at the top to\n// 'atomic', nondivisible expression types at the bottom. Most of\n// the functions will simply let the function(s) below them parse,\n// and, *if* the syntactic construct they handle is present, wrap\n// the AST node that the inner parser gave them in another node.\n\n// Parse a full expression. The optional arguments are used to\n// forbid the `in` operator (in for loops initalization expressions)\n// and provide reference for storing '=' operator inside shorthand\n// property assignment in contexts where both object expression\n// and object pattern might appear (so it's possible to raise\n// delayed syntax error at correct position).\n\npp$3.parseExpression = function(noIn, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeAssign(noIn, refDestructuringErrors);\n if (this.type === types.comma) {\n var node = this.startNodeAt(startPos, startLoc);\n node.expressions = [expr];\n while (this.eat(types.comma)) { node.expressions.push(this.parseMaybeAssign(noIn, refDestructuringErrors)); }\n return this.finishNode(node, \"SequenceExpression\")\n }\n return expr\n};\n\n// Parse an assignment expression. This includes applications of\n// operators like `+=`.\n\npp$3.parseMaybeAssign = function(noIn, refDestructuringErrors, afterLeftParse) {\n if (this.isContextual(\"yield\")) {\n if (this.inGenerator) { return this.parseYield(noIn) }\n // The tokenizer will assume an expression is allowed after\n // `yield`, but this isn't that kind of yield\n else { this.exprAllowed = false; }\n }\n\n var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldShorthandAssign = -1;\n if (refDestructuringErrors) {\n oldParenAssign = refDestructuringErrors.parenthesizedAssign;\n oldTrailingComma = refDestructuringErrors.trailingComma;\n oldShorthandAssign = refDestructuringErrors.shorthandAssign;\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.shorthandAssign = -1;\n } else {\n refDestructuringErrors = new DestructuringErrors;\n ownDestructuringErrors = true;\n }\n\n var startPos = this.start, startLoc = this.startLoc;\n if (this.type === types.parenL || this.type === types.name)\n { this.potentialArrowAt = this.start; }\n var left = this.parseMaybeConditional(noIn, refDestructuringErrors);\n if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); }\n if (this.type.isAssign) {\n var node = this.startNodeAt(startPos, startLoc);\n node.operator = this.value;\n node.left = this.type === types.eq ? this.toAssignable(left, false, refDestructuringErrors) : left;\n if (!ownDestructuringErrors) { DestructuringErrors.call(refDestructuringErrors); }\n refDestructuringErrors.shorthandAssign = -1; // reset because shorthand default was used correctly\n this.checkLVal(left);\n this.next();\n node.right = this.parseMaybeAssign(noIn);\n return this.finishNode(node, \"AssignmentExpression\")\n } else {\n if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); }\n }\n if (oldParenAssign > -1) { refDestructuringErrors.parenthesizedAssign = oldParenAssign; }\n if (oldTrailingComma > -1) { refDestructuringErrors.trailingComma = oldTrailingComma; }\n if (oldShorthandAssign > -1) { refDestructuringErrors.shorthandAssign = oldShorthandAssign; }\n return left\n};\n\n// Parse a ternary conditional (`?:`) operator.\n\npp$3.parseMaybeConditional = function(noIn, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprOps(noIn, refDestructuringErrors);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n if (this.eat(types.question)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.test = expr;\n node.consequent = this.parseMaybeAssign();\n this.expect(types.colon);\n node.alternate = this.parseMaybeAssign(noIn);\n return this.finishNode(node, \"ConditionalExpression\")\n }\n return expr\n};\n\n// Start the precedence parser.\n\npp$3.parseExprOps = function(noIn, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeUnary(refDestructuringErrors, false);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n return expr.start === startPos && expr.type === \"ArrowFunctionExpression\" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, noIn)\n};\n\n// Parse binary operators with the operator precedence parsing\n// algorithm. `left` is the left-hand side of the operator.\n// `minPrec` provides context that allows the function to stop and\n// defer further parser to one of its callers when it encounters an\n// operator that has a lower precedence than the set it is parsing.\n\npp$3.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, noIn) {\n var prec = this.type.binop;\n if (prec != null && (!noIn || this.type !== types._in)) {\n if (prec > minPrec) {\n var logical = this.type === types.logicalOR || this.type === types.logicalAND;\n var op = this.value;\n this.next();\n var startPos = this.start, startLoc = this.startLoc;\n var right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, noIn);\n var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical);\n return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn)\n }\n }\n return left\n};\n\npp$3.buildBinary = function(startPos, startLoc, left, right, op, logical) {\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.operator = op;\n node.right = right;\n return this.finishNode(node, logical ? \"LogicalExpression\" : \"BinaryExpression\")\n};\n\n// Parse unary operators, both prefix and postfix.\n\npp$3.parseMaybeUnary = function(refDestructuringErrors, sawUnary) {\n var startPos = this.start, startLoc = this.startLoc, expr;\n if (this.isContextual(\"await\") && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction))) {\n expr = this.parseAwait();\n sawUnary = true;\n } else if (this.type.prefix) {\n var node = this.startNode(), update = this.type === types.incDec;\n node.operator = this.value;\n node.prefix = true;\n this.next();\n node.argument = this.parseMaybeUnary(null, true);\n this.checkExpressionErrors(refDestructuringErrors, true);\n if (update) { this.checkLVal(node.argument); }\n else if (this.strict && node.operator === \"delete\" &&\n node.argument.type === \"Identifier\")\n { this.raiseRecoverable(node.start, \"Deleting local variable in strict mode\"); }\n else { sawUnary = true; }\n expr = this.finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\");\n } else {\n expr = this.parseExprSubscripts(refDestructuringErrors);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n while (this.type.postfix && !this.canInsertSemicolon()) {\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.operator = this.value;\n node$1.prefix = false;\n node$1.argument = expr;\n this.checkLVal(expr);\n this.next();\n expr = this.finishNode(node$1, \"UpdateExpression\");\n }\n }\n\n if (!sawUnary && this.eat(types.starstar))\n { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), \"**\", false) }\n else\n { return expr }\n};\n\n// Parse call, dot, and `[]`-subscript expressions.\n\npp$3.parseExprSubscripts = function(refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprAtom(refDestructuringErrors);\n var skipArrowSubscripts = expr.type === \"ArrowFunctionExpression\" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== \")\";\n if (this.checkExpressionErrors(refDestructuringErrors) || skipArrowSubscripts) { return expr }\n var result = this.parseSubscripts(expr, startPos, startLoc);\n if (refDestructuringErrors && result.type === \"MemberExpression\") {\n if (refDestructuringErrors.parenthesizedAssign >= result.start) { refDestructuringErrors.parenthesizedAssign = -1; }\n if (refDestructuringErrors.parenthesizedBind >= result.start) { refDestructuringErrors.parenthesizedBind = -1; }\n }\n return result\n};\n\npp$3.parseSubscripts = function(base, startPos, startLoc, noCalls) {\n var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === \"Identifier\" && base.name === \"async\" &&\n this.lastTokEnd === base.end && !this.canInsertSemicolon() && this.input.slice(base.start, base.end) === \"async\";\n while (true) {\n var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow);\n if (element === base || element.type === \"ArrowFunctionExpression\") { return element }\n base = element;\n }\n};\n\npp$3.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow) {\n var computed = this.eat(types.bracketL);\n if (computed || this.eat(types.dot)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.object = base;\n node.property = computed ? this.parseExpression() : this.parseIdent(this.options.allowReserved !== \"never\");\n node.computed = !!computed;\n if (computed) { this.expect(types.bracketR); }\n base = this.finishNode(node, \"MemberExpression\");\n } else if (!noCalls && this.eat(types.parenL)) {\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n var exprList = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8 && base.type !== \"Import\", false, refDestructuringErrors);\n if (maybeAsyncArrow && !this.canInsertSemicolon() && this.eat(types.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n if (this.awaitIdentPos > 0)\n { this.raise(this.awaitIdentPos, \"Cannot use 'await' as identifier inside an async function\"); }\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true)\n }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos;\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.callee = base;\n node$1.arguments = exprList;\n if (node$1.callee.type === \"Import\") {\n if (node$1.arguments.length !== 1) {\n this.raise(node$1.start, \"import() requires exactly one argument\");\n }\n\n var importArg = node$1.arguments[0];\n if (importArg && importArg.type === \"SpreadElement\") {\n this.raise(importArg.start, \"... is not allowed in import()\");\n }\n }\n base = this.finishNode(node$1, \"CallExpression\");\n } else if (this.type === types.backQuote) {\n var node$2 = this.startNodeAt(startPos, startLoc);\n node$2.tag = base;\n node$2.quasi = this.parseTemplate({isTagged: true});\n base = this.finishNode(node$2, \"TaggedTemplateExpression\");\n }\n return base\n};\n\n// Parse an atomic expression — either a single token that is an\n// expression, an expression started by a keyword like `function` or\n// `new`, or an expression wrapped in punctuation like `()`, `[]`,\n// or `{}`.\n\npp$3.parseExprAtom = function(refDestructuringErrors) {\n // If a division operator appears in an expression position, the\n // tokenizer got confused, and we force it to read a regexp instead.\n if (this.type === types.slash) { this.readRegexp(); }\n\n var node, canBeArrow = this.potentialArrowAt === this.start;\n switch (this.type) {\n case types._super:\n if (!this.allowSuper)\n { this.raise(this.start, \"'super' keyword outside a method\"); }\n node = this.startNode();\n this.next();\n if (this.type === types.parenL && !this.allowDirectSuper)\n { this.raise(node.start, \"super() call outside constructor of a subclass\"); }\n // The `super` keyword can appear at below:\n // SuperProperty:\n // super [ Expression ]\n // super . IdentifierName\n // SuperCall:\n // super Arguments\n if (this.type !== types.dot && this.type !== types.bracketL && this.type !== types.parenL)\n { this.unexpected(); }\n return this.finishNode(node, \"Super\")\n\n case types._this:\n node = this.startNode();\n this.next();\n return this.finishNode(node, \"ThisExpression\")\n\n case types.name:\n var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc;\n var id = this.parseIdent(false);\n if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === \"async\" && !this.canInsertSemicolon() && this.eat(types._function))\n { return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true) }\n if (canBeArrow && !this.canInsertSemicolon()) {\n if (this.eat(types.arrow))\n { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false) }\n if (this.options.ecmaVersion >= 8 && id.name === \"async\" && this.type === types.name && !containsEsc) {\n id = this.parseIdent(false);\n if (this.canInsertSemicolon() || !this.eat(types.arrow))\n { this.unexpected(); }\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true)\n }\n }\n return id\n\n case types.regexp:\n var value = this.value;\n node = this.parseLiteral(value.value);\n node.regex = {pattern: value.pattern, flags: value.flags};\n return node\n\n case types.num: case types.string:\n return this.parseLiteral(this.value)\n\n case types._null: case types._true: case types._false:\n node = this.startNode();\n node.value = this.type === types._null ? null : this.type === types._true;\n node.raw = this.type.keyword;\n this.next();\n return this.finishNode(node, \"Literal\")\n\n case types.parenL:\n var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow);\n if (refDestructuringErrors) {\n if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr))\n { refDestructuringErrors.parenthesizedAssign = start; }\n if (refDestructuringErrors.parenthesizedBind < 0)\n { refDestructuringErrors.parenthesizedBind = start; }\n }\n return expr\n\n case types.bracketL:\n node = this.startNode();\n this.next();\n node.elements = this.parseExprList(types.bracketR, true, true, refDestructuringErrors);\n return this.finishNode(node, \"ArrayExpression\")\n\n case types.braceL:\n return this.parseObj(false, refDestructuringErrors)\n\n case types._function:\n node = this.startNode();\n this.next();\n return this.parseFunction(node, 0)\n\n case types._class:\n return this.parseClass(this.startNode(), false)\n\n case types._new:\n return this.parseNew()\n\n case types.backQuote:\n return this.parseTemplate()\n\n case types._import:\n if (this.options.ecmaVersion > 10) {\n return this.parseDynamicImport()\n } else {\n return this.unexpected()\n }\n\n default:\n this.unexpected();\n }\n};\n\npp$3.parseDynamicImport = function() {\n var node = this.startNode();\n this.next();\n if (this.type !== types.parenL) {\n this.unexpected();\n }\n return this.finishNode(node, \"Import\")\n};\n\npp$3.parseLiteral = function(value) {\n var node = this.startNode();\n node.value = value;\n node.raw = this.input.slice(this.start, this.end);\n if (node.raw.charCodeAt(node.raw.length - 1) === 110) { node.bigint = node.raw.slice(0, -1); }\n this.next();\n return this.finishNode(node, \"Literal\")\n};\n\npp$3.parseParenExpression = function() {\n this.expect(types.parenL);\n var val = this.parseExpression();\n this.expect(types.parenR);\n return val\n};\n\npp$3.parseParenAndDistinguishExpression = function(canBeArrow) {\n var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8;\n if (this.options.ecmaVersion >= 6) {\n this.next();\n\n var innerStartPos = this.start, innerStartLoc = this.startLoc;\n var exprList = [], first = true, lastIsComma = false;\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart;\n this.yieldPos = 0;\n this.awaitPos = 0;\n // Do not save awaitIdentPos to allow checking awaits nested in parameters\n while (this.type !== types.parenR) {\n first ? first = false : this.expect(types.comma);\n if (allowTrailingComma && this.afterTrailingComma(types.parenR, true)) {\n lastIsComma = true;\n break\n } else if (this.type === types.ellipsis) {\n spreadStart = this.start;\n exprList.push(this.parseParenItem(this.parseRestBinding()));\n if (this.type === types.comma) { this.raise(this.start, \"Comma is not permitted after the rest element\"); }\n break\n } else {\n exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem));\n }\n }\n var innerEndPos = this.start, innerEndLoc = this.startLoc;\n this.expect(types.parenR);\n\n if (canBeArrow && !this.canInsertSemicolon() && this.eat(types.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n return this.parseParenArrowList(startPos, startLoc, exprList)\n }\n\n if (!exprList.length || lastIsComma) { this.unexpected(this.lastTokStart); }\n if (spreadStart) { this.unexpected(spreadStart); }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n\n if (exprList.length > 1) {\n val = this.startNodeAt(innerStartPos, innerStartLoc);\n val.expressions = exprList;\n this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc);\n } else {\n val = exprList[0];\n }\n } else {\n val = this.parseParenExpression();\n }\n\n if (this.options.preserveParens) {\n var par = this.startNodeAt(startPos, startLoc);\n par.expression = val;\n return this.finishNode(par, \"ParenthesizedExpression\")\n } else {\n return val\n }\n};\n\npp$3.parseParenItem = function(item) {\n return item\n};\n\npp$3.parseParenArrowList = function(startPos, startLoc, exprList) {\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList)\n};\n\n// New's precedence is slightly tricky. It must allow its argument to\n// be a `[]` or dot subscript expression, but not a call — at least,\n// not without wrapping it in parentheses. Thus, it uses the noCalls\n// argument to parseSubscripts to prevent it from consuming the\n// argument list.\n\nvar empty$1 = [];\n\npp$3.parseNew = function() {\n var node = this.startNode();\n var meta = this.parseIdent(true);\n if (this.options.ecmaVersion >= 6 && this.eat(types.dot)) {\n node.meta = meta;\n var containsEsc = this.containsEsc;\n node.property = this.parseIdent(true);\n if (node.property.name !== \"target\" || containsEsc)\n { this.raiseRecoverable(node.property.start, \"The only valid meta property for new is new.target\"); }\n if (!this.inNonArrowFunction())\n { this.raiseRecoverable(node.start, \"new.target can only be used in functions\"); }\n return this.finishNode(node, \"MetaProperty\")\n }\n var startPos = this.start, startLoc = this.startLoc;\n node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true);\n if (this.options.ecmaVersion > 10 && node.callee.type === \"Import\") {\n this.raise(node.callee.start, \"Cannot use new with import(...)\");\n }\n if (this.eat(types.parenL)) { node.arguments = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8 && node.callee.type !== \"Import\", false); }\n else { node.arguments = empty$1; }\n return this.finishNode(node, \"NewExpression\")\n};\n\n// Parse template expression.\n\npp$3.parseTemplateElement = function(ref) {\n var isTagged = ref.isTagged;\n\n var elem = this.startNode();\n if (this.type === types.invalidTemplate) {\n if (!isTagged) {\n this.raiseRecoverable(this.start, \"Bad escape sequence in untagged template literal\");\n }\n elem.value = {\n raw: this.value,\n cooked: null\n };\n } else {\n elem.value = {\n raw: this.input.slice(this.start, this.end).replace(/\\r\\n?/g, \"\\n\"),\n cooked: this.value\n };\n }\n this.next();\n elem.tail = this.type === types.backQuote;\n return this.finishNode(elem, \"TemplateElement\")\n};\n\npp$3.parseTemplate = function(ref) {\n if ( ref === void 0 ) ref = {};\n var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false;\n\n var node = this.startNode();\n this.next();\n node.expressions = [];\n var curElt = this.parseTemplateElement({isTagged: isTagged});\n node.quasis = [curElt];\n while (!curElt.tail) {\n if (this.type === types.eof) { this.raise(this.pos, \"Unterminated template literal\"); }\n this.expect(types.dollarBraceL);\n node.expressions.push(this.parseExpression());\n this.expect(types.braceR);\n node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged}));\n }\n this.next();\n return this.finishNode(node, \"TemplateLiteral\")\n};\n\npp$3.isAsyncProp = function(prop) {\n return !prop.computed && prop.key.type === \"Identifier\" && prop.key.name === \"async\" &&\n (this.type === types.name || this.type === types.num || this.type === types.string || this.type === types.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types.star)) &&\n !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n};\n\n// Parse an object literal or binding pattern.\n\npp$3.parseObj = function(isPattern, refDestructuringErrors) {\n var node = this.startNode(), first = true, propHash = {};\n node.properties = [];\n this.next();\n while (!this.eat(types.braceR)) {\n if (!first) {\n this.expect(types.comma);\n if (this.afterTrailingComma(types.braceR)) { break }\n } else { first = false; }\n\n var prop = this.parseProperty(isPattern, refDestructuringErrors);\n if (!isPattern) { this.checkPropClash(prop, propHash, refDestructuringErrors); }\n node.properties.push(prop);\n }\n return this.finishNode(node, isPattern ? \"ObjectPattern\" : \"ObjectExpression\")\n};\n\npp$3.parseProperty = function(isPattern, refDestructuringErrors) {\n var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc;\n if (this.options.ecmaVersion >= 9 && this.eat(types.ellipsis)) {\n if (isPattern) {\n prop.argument = this.parseIdent(false);\n if (this.type === types.comma) {\n this.raise(this.start, \"Comma is not permitted after the rest element\");\n }\n return this.finishNode(prop, \"RestElement\")\n }\n // To disallow parenthesized identifier via `this.toAssignable()`.\n if (this.type === types.parenL && refDestructuringErrors) {\n if (refDestructuringErrors.parenthesizedAssign < 0) {\n refDestructuringErrors.parenthesizedAssign = this.start;\n }\n if (refDestructuringErrors.parenthesizedBind < 0) {\n refDestructuringErrors.parenthesizedBind = this.start;\n }\n }\n // Parse argument.\n prop.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n // To disallow trailing comma via `this.toAssignable()`.\n if (this.type === types.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {\n refDestructuringErrors.trailingComma = this.start;\n }\n // Finish\n return this.finishNode(prop, \"SpreadElement\")\n }\n if (this.options.ecmaVersion >= 6) {\n prop.method = false;\n prop.shorthand = false;\n if (isPattern || refDestructuringErrors) {\n startPos = this.start;\n startLoc = this.startLoc;\n }\n if (!isPattern)\n { isGenerator = this.eat(types.star); }\n }\n var containsEsc = this.containsEsc;\n this.parsePropertyName(prop);\n if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {\n isAsync = true;\n isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star);\n this.parsePropertyName(prop, refDestructuringErrors);\n } else {\n isAsync = false;\n }\n this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc);\n return this.finishNode(prop, \"Property\")\n};\n\npp$3.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {\n if ((isGenerator || isAsync) && this.type === types.colon)\n { this.unexpected(); }\n\n if (this.eat(types.colon)) {\n prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors);\n prop.kind = \"init\";\n } else if (this.options.ecmaVersion >= 6 && this.type === types.parenL) {\n if (isPattern) { this.unexpected(); }\n prop.kind = \"init\";\n prop.method = true;\n prop.value = this.parseMethod(isGenerator, isAsync);\n } else if (!isPattern && !containsEsc &&\n this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === \"Identifier\" &&\n (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n (this.type !== types.comma && this.type !== types.braceR)) {\n if (isGenerator || isAsync) { this.unexpected(); }\n prop.kind = prop.key.name;\n this.parsePropertyName(prop);\n prop.value = this.parseMethod(false);\n var paramCount = prop.kind === \"get\" ? 0 : 1;\n if (prop.value.params.length !== paramCount) {\n var start = prop.value.start;\n if (prop.kind === \"get\")\n { this.raiseRecoverable(start, \"getter should have no params\"); }\n else\n { this.raiseRecoverable(start, \"setter should have exactly one param\"); }\n } else {\n if (prop.kind === \"set\" && prop.value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(prop.value.params[0].start, \"Setter cannot use rest params\"); }\n }\n } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === \"Identifier\") {\n if (isGenerator || isAsync) { this.unexpected(); }\n this.checkUnreserved(prop.key);\n if (prop.key.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = startPos; }\n prop.kind = \"init\";\n if (isPattern) {\n prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key);\n } else if (this.type === types.eq && refDestructuringErrors) {\n if (refDestructuringErrors.shorthandAssign < 0)\n { refDestructuringErrors.shorthandAssign = this.start; }\n prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key);\n } else {\n prop.value = prop.key;\n }\n prop.shorthand = true;\n } else { this.unexpected(); }\n};\n\npp$3.parsePropertyName = function(prop) {\n if (this.options.ecmaVersion >= 6) {\n if (this.eat(types.bracketL)) {\n prop.computed = true;\n prop.key = this.parseMaybeAssign();\n this.expect(types.bracketR);\n return prop.key\n } else {\n prop.computed = false;\n }\n }\n return prop.key = this.type === types.num || this.type === types.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== \"never\")\n};\n\n// Initialize empty function node.\n\npp$3.initFunction = function(node) {\n node.id = null;\n if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; }\n if (this.options.ecmaVersion >= 8) { node.async = false; }\n};\n\n// Parse object or class method.\n\npp$3.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {\n var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.initFunction(node);\n if (this.options.ecmaVersion >= 6)\n { node.generator = isGenerator; }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0));\n\n this.expect(types.parenL);\n node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n this.parseFunctionBody(node, false, true);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"FunctionExpression\")\n};\n\n// Parse arrow function expression with given parameters.\n\npp$3.parseArrowExpression = function(node, params, isAsync) {\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW);\n this.initFunction(node);\n if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n\n node.params = this.toAssignableList(params, true);\n this.parseFunctionBody(node, true, false);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"ArrowFunctionExpression\")\n};\n\n// Parse function body and check parameters.\n\npp$3.parseFunctionBody = function(node, isArrowFunction, isMethod) {\n var isExpression = isArrowFunction && this.type !== types.braceL;\n var oldStrict = this.strict, useStrict = false;\n\n if (isExpression) {\n node.body = this.parseMaybeAssign();\n node.expression = true;\n this.checkParams(node, false);\n } else {\n var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params);\n if (!oldStrict || nonSimple) {\n useStrict = this.strictDirective(this.end);\n // If this is a strict mode function, verify that argument names\n // are not repeated, and it does not try to bind the words `eval`\n // or `arguments`.\n if (useStrict && nonSimple)\n { this.raiseRecoverable(node.start, \"Illegal 'use strict' directive in function with non-simple parameter list\"); }\n }\n // Start a new scope with regard to labels and the `inFunction`\n // flag (restore them to their old value afterwards).\n var oldLabels = this.labels;\n this.labels = [];\n if (useStrict) { this.strict = true; }\n\n // Add the params to varDeclaredNames to ensure that an error is thrown\n // if a let/const declaration in the function clashes with one of the params.\n this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params));\n node.body = this.parseBlock(false);\n node.expression = false;\n this.adaptDirectivePrologue(node.body.body);\n this.labels = oldLabels;\n }\n this.exitScope();\n\n // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n if (this.strict && node.id) { this.checkLVal(node.id, BIND_OUTSIDE); }\n this.strict = oldStrict;\n};\n\npp$3.isSimpleParamList = function(params) {\n for (var i = 0, list = params; i < list.length; i += 1)\n {\n var param = list[i];\n\n if (param.type !== \"Identifier\") { return false\n } }\n return true\n};\n\n// Checks function params for various disallowed patterns such as using \"eval\"\n// or \"arguments\" and duplicate parameters.\n\npp$3.checkParams = function(node, allowDuplicates) {\n var nameHash = {};\n for (var i = 0, list = node.params; i < list.length; i += 1)\n {\n var param = list[i];\n\n this.checkLVal(param, BIND_VAR, allowDuplicates ? null : nameHash);\n }\n};\n\n// Parses a comma-separated list of expressions, and returns them as\n// an array. `close` is the token type that ends the list, and\n// `allowEmpty` can be turned on to allow subsequent commas with\n// nothing in between them to be parsed as `null` (which is needed\n// for array literals).\n\npp$3.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (!first) {\n this.expect(types.comma);\n if (allowTrailingComma && this.afterTrailingComma(close)) { break }\n } else { first = false; }\n\n var elt = (void 0);\n if (allowEmpty && this.type === types.comma)\n { elt = null; }\n else if (this.type === types.ellipsis) {\n elt = this.parseSpread(refDestructuringErrors);\n if (refDestructuringErrors && this.type === types.comma && refDestructuringErrors.trailingComma < 0)\n { refDestructuringErrors.trailingComma = this.start; }\n } else {\n elt = this.parseMaybeAssign(false, refDestructuringErrors);\n }\n elts.push(elt);\n }\n return elts\n};\n\npp$3.checkUnreserved = function(ref) {\n var start = ref.start;\n var end = ref.end;\n var name = ref.name;\n\n if (this.inGenerator && name === \"yield\")\n { this.raiseRecoverable(start, \"Cannot use 'yield' as identifier inside a generator\"); }\n if (this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use 'await' as identifier inside an async function\"); }\n if (this.keywords.test(name))\n { this.raise(start, (\"Unexpected keyword '\" + name + \"'\")); }\n if (this.options.ecmaVersion < 6 &&\n this.input.slice(start, end).indexOf(\"\\\\\") !== -1) { return }\n var re = this.strict ? this.reservedWordsStrict : this.reservedWords;\n if (re.test(name)) {\n if (!this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use keyword 'await' outside an async function\"); }\n this.raiseRecoverable(start, (\"The keyword '\" + name + \"' is reserved\"));\n }\n};\n\n// Parse the next token as an identifier. If `liberal` is true (used\n// when parsing properties), it will also convert keywords into\n// identifiers.\n\npp$3.parseIdent = function(liberal, isBinding) {\n var node = this.startNode();\n if (this.type === types.name) {\n node.name = this.value;\n } else if (this.type.keyword) {\n node.name = this.type.keyword;\n\n // To fix https://github.com/acornjs/acorn/issues/575\n // `class` and `function` keywords push new context into this.context.\n // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.\n // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword\n if ((node.name === \"class\" || node.name === \"function\") &&\n (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {\n this.context.pop();\n }\n } else {\n this.unexpected();\n }\n this.next();\n this.finishNode(node, \"Identifier\");\n if (!liberal) {\n this.checkUnreserved(node);\n if (node.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = node.start; }\n }\n return node\n};\n\n// Parses yield expression inside generator.\n\npp$3.parseYield = function(noIn) {\n if (!this.yieldPos) { this.yieldPos = this.start; }\n\n var node = this.startNode();\n this.next();\n if (this.type === types.semi || this.canInsertSemicolon() || (this.type !== types.star && !this.type.startsExpr)) {\n node.delegate = false;\n node.argument = null;\n } else {\n node.delegate = this.eat(types.star);\n node.argument = this.parseMaybeAssign(noIn);\n }\n return this.finishNode(node, \"YieldExpression\")\n};\n\npp$3.parseAwait = function() {\n if (!this.awaitPos) { this.awaitPos = this.start; }\n\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeUnary(null, true);\n return this.finishNode(node, \"AwaitExpression\")\n};\n\nvar pp$4 = Parser.prototype;\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\npp$4.raise = function(pos, message) {\n var loc = getLineInfo(this.input, pos);\n message += \" (\" + loc.line + \":\" + loc.column + \")\";\n var err = new SyntaxError(message);\n err.pos = pos; err.loc = loc; err.raisedAt = this.pos;\n throw err\n};\n\npp$4.raiseRecoverable = pp$4.raise;\n\npp$4.curPosition = function() {\n if (this.options.locations) {\n return new Position(this.curLine, this.pos - this.lineStart)\n }\n};\n\nvar pp$5 = Parser.prototype;\n\nvar Scope = function Scope(flags) {\n this.flags = flags;\n // A list of var-declared names in the current lexical scope\n this.var = [];\n // A list of lexically-declared names in the current lexical scope\n this.lexical = [];\n // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n this.functions = [];\n};\n\n// The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.\n\npp$5.enterScope = function(flags) {\n this.scopeStack.push(new Scope(flags));\n};\n\npp$5.exitScope = function() {\n this.scopeStack.pop();\n};\n\n// The spec says:\n// > At the top level of a function, or script, function declarations are\n// > treated like var declarations rather than like lexical declarations.\npp$5.treatFunctionsAsVarInScope = function(scope) {\n return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)\n};\n\npp$5.declareName = function(name, bindingType, pos) {\n var redeclared = false;\n if (bindingType === BIND_LEXICAL) {\n var scope = this.currentScope();\n redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1;\n scope.lexical.push(name);\n if (this.inModule && (scope.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n } else if (bindingType === BIND_SIMPLE_CATCH) {\n var scope$1 = this.currentScope();\n scope$1.lexical.push(name);\n } else if (bindingType === BIND_FUNCTION) {\n var scope$2 = this.currentScope();\n if (this.treatFunctionsAsVar)\n { redeclared = scope$2.lexical.indexOf(name) > -1; }\n else\n { redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1; }\n scope$2.functions.push(name);\n } else {\n for (var i = this.scopeStack.length - 1; i >= 0; --i) {\n var scope$3 = this.scopeStack[i];\n if (scope$3.lexical.indexOf(name) > -1 && !((scope$3.flags & SCOPE_SIMPLE_CATCH) && scope$3.lexical[0] === name) ||\n !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) {\n redeclared = true;\n break\n }\n scope$3.var.push(name);\n if (this.inModule && (scope$3.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n if (scope$3.flags & SCOPE_VAR) { break }\n }\n }\n if (redeclared) { this.raiseRecoverable(pos, (\"Identifier '\" + name + \"' has already been declared\")); }\n};\n\npp$5.checkLocalExport = function(id) {\n // scope.functions must be empty as Module code is always strict.\n if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n this.scopeStack[0].var.indexOf(id.name) === -1) {\n this.undefinedExports[id.name] = id;\n }\n};\n\npp$5.currentScope = function() {\n return this.scopeStack[this.scopeStack.length - 1]\n};\n\npp$5.currentVarScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & SCOPE_VAR) { return scope }\n }\n};\n\n// Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\npp$5.currentThisScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) { return scope }\n }\n};\n\nvar Node = function Node(parser, pos, loc) {\n this.type = \"\";\n this.start = pos;\n this.end = 0;\n if (parser.options.locations)\n { this.loc = new SourceLocation(parser, loc); }\n if (parser.options.directSourceFile)\n { this.sourceFile = parser.options.directSourceFile; }\n if (parser.options.ranges)\n { this.range = [pos, 0]; }\n};\n\n// Start an AST node, attaching a start offset.\n\nvar pp$6 = Parser.prototype;\n\npp$6.startNode = function() {\n return new Node(this, this.start, this.startLoc)\n};\n\npp$6.startNodeAt = function(pos, loc) {\n return new Node(this, pos, loc)\n};\n\n// Finish an AST node, adding `type` and `end` properties.\n\nfunction finishNodeAt(node, type, pos, loc) {\n node.type = type;\n node.end = pos;\n if (this.options.locations)\n { node.loc.end = loc; }\n if (this.options.ranges)\n { node.range[1] = pos; }\n return node\n}\n\npp$6.finishNode = function(node, type) {\n return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)\n};\n\n// Finish node at given position\n\npp$6.finishNodeAt = function(node, type, pos, loc) {\n return finishNodeAt.call(this, node, type, pos, loc)\n};\n\n// The algorithm used to determine whether a regexp can appear at a\n\nvar TokContext = function TokContext(token, isExpr, preserveSpace, override, generator) {\n this.token = token;\n this.isExpr = !!isExpr;\n this.preserveSpace = !!preserveSpace;\n this.override = override;\n this.generator = !!generator;\n};\n\nvar types$1 = {\n b_stat: new TokContext(\"{\", false),\n b_expr: new TokContext(\"{\", true),\n b_tmpl: new TokContext(\"${\", false),\n p_stat: new TokContext(\"(\", false),\n p_expr: new TokContext(\"(\", true),\n q_tmpl: new TokContext(\"`\", true, true, function (p) { return p.tryReadTemplateToken(); }),\n f_stat: new TokContext(\"function\", false),\n f_expr: new TokContext(\"function\", true),\n f_expr_gen: new TokContext(\"function\", true, false, null, true),\n f_gen: new TokContext(\"function\", false, false, null, true)\n};\n\nvar pp$7 = Parser.prototype;\n\npp$7.initialContext = function() {\n return [types$1.b_stat]\n};\n\npp$7.braceIsBlock = function(prevType) {\n var parent = this.curContext();\n if (parent === types$1.f_expr || parent === types$1.f_stat)\n { return true }\n if (prevType === types.colon && (parent === types$1.b_stat || parent === types$1.b_expr))\n { return !parent.isExpr }\n\n // The check for `tt.name && exprAllowed` detects whether we are\n // after a `yield` or `of` construct. See the `updateContext` for\n // `tt.name`.\n if (prevType === types._return || prevType === types.name && this.exprAllowed)\n { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }\n if (prevType === types._else || prevType === types.semi || prevType === types.eof || prevType === types.parenR || prevType === types.arrow)\n { return true }\n if (prevType === types.braceL)\n { return parent === types$1.b_stat }\n if (prevType === types._var || prevType === types._const || prevType === types.name)\n { return false }\n return !this.exprAllowed\n};\n\npp$7.inGeneratorContext = function() {\n for (var i = this.context.length - 1; i >= 1; i--) {\n var context = this.context[i];\n if (context.token === \"function\")\n { return context.generator }\n }\n return false\n};\n\npp$7.updateContext = function(prevType) {\n var update, type = this.type;\n if (type.keyword && prevType === types.dot)\n { this.exprAllowed = false; }\n else if (update = type.updateContext)\n { update.call(this, prevType); }\n else\n { this.exprAllowed = type.beforeExpr; }\n};\n\n// Token-specific context update code\n\ntypes.parenR.updateContext = types.braceR.updateContext = function() {\n if (this.context.length === 1) {\n this.exprAllowed = true;\n return\n }\n var out = this.context.pop();\n if (out === types$1.b_stat && this.curContext().token === \"function\") {\n out = this.context.pop();\n }\n this.exprAllowed = !out.isExpr;\n};\n\ntypes.braceL.updateContext = function(prevType) {\n this.context.push(this.braceIsBlock(prevType) ? types$1.b_stat : types$1.b_expr);\n this.exprAllowed = true;\n};\n\ntypes.dollarBraceL.updateContext = function() {\n this.context.push(types$1.b_tmpl);\n this.exprAllowed = true;\n};\n\ntypes.parenL.updateContext = function(prevType) {\n var statementParens = prevType === types._if || prevType === types._for || prevType === types._with || prevType === types._while;\n this.context.push(statementParens ? types$1.p_stat : types$1.p_expr);\n this.exprAllowed = true;\n};\n\ntypes.incDec.updateContext = function() {\n // tokExprAllowed stays unchanged\n};\n\ntypes._function.updateContext = types._class.updateContext = function(prevType) {\n if (prevType.beforeExpr && prevType !== types.semi && prevType !== types._else &&\n !(prevType === types._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&\n !((prevType === types.colon || prevType === types.braceL) && this.curContext() === types$1.b_stat))\n { this.context.push(types$1.f_expr); }\n else\n { this.context.push(types$1.f_stat); }\n this.exprAllowed = false;\n};\n\ntypes.backQuote.updateContext = function() {\n if (this.curContext() === types$1.q_tmpl)\n { this.context.pop(); }\n else\n { this.context.push(types$1.q_tmpl); }\n this.exprAllowed = false;\n};\n\ntypes.star.updateContext = function(prevType) {\n if (prevType === types._function) {\n var index = this.context.length - 1;\n if (this.context[index] === types$1.f_expr)\n { this.context[index] = types$1.f_expr_gen; }\n else\n { this.context[index] = types$1.f_gen; }\n }\n this.exprAllowed = true;\n};\n\ntypes.name.updateContext = function(prevType) {\n var allowed = false;\n if (this.options.ecmaVersion >= 6 && prevType !== types.dot) {\n if (this.value === \"of\" && !this.exprAllowed ||\n this.value === \"yield\" && this.inGeneratorContext())\n { allowed = true; }\n }\n this.exprAllowed = allowed;\n};\n\n// This file contains Unicode properties extracted from the ECMAScript\n// specification. The lists are extracted like so:\n// $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)\n\n// #table-binary-unicode-properties\nvar ecma9BinaryProperties = \"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\";\nvar ecma10BinaryProperties = ecma9BinaryProperties + \" Extended_Pictographic\";\nvar ecma11BinaryProperties = ecma10BinaryProperties;\nvar unicodeBinaryProperties = {\n 9: ecma9BinaryProperties,\n 10: ecma10BinaryProperties,\n 11: ecma11BinaryProperties\n};\n\n// #table-unicode-general-category-values\nvar unicodeGeneralCategoryValues = \"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\";\n\n// #table-unicode-script-values\nvar ecma9ScriptValues = \"Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\";\nvar ecma10ScriptValues = ecma9ScriptValues + \" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\";\nvar ecma11ScriptValues = ecma10ScriptValues + \" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho\";\nvar unicodeScriptValues = {\n 9: ecma9ScriptValues,\n 10: ecma10ScriptValues,\n 11: ecma11ScriptValues\n};\n\nvar data = {};\nfunction buildUnicodeData(ecmaVersion) {\n var d = data[ecmaVersion] = {\n binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + \" \" + unicodeGeneralCategoryValues),\n nonBinary: {\n General_Category: wordsRegexp(unicodeGeneralCategoryValues),\n Script: wordsRegexp(unicodeScriptValues[ecmaVersion])\n }\n };\n d.nonBinary.Script_Extensions = d.nonBinary.Script;\n\n d.nonBinary.gc = d.nonBinary.General_Category;\n d.nonBinary.sc = d.nonBinary.Script;\n d.nonBinary.scx = d.nonBinary.Script_Extensions;\n}\nbuildUnicodeData(9);\nbuildUnicodeData(10);\nbuildUnicodeData(11);\n\nvar pp$8 = Parser.prototype;\n\nvar RegExpValidationState = function RegExpValidationState(parser) {\n this.parser = parser;\n this.validFlags = \"gim\" + (parser.options.ecmaVersion >= 6 ? \"uy\" : \"\") + (parser.options.ecmaVersion >= 9 ? \"s\" : \"\");\n this.unicodeProperties = data[parser.options.ecmaVersion >= 11 ? 11 : parser.options.ecmaVersion];\n this.source = \"\";\n this.flags = \"\";\n this.start = 0;\n this.switchU = false;\n this.switchN = false;\n this.pos = 0;\n this.lastIntValue = 0;\n this.lastStringValue = \"\";\n this.lastAssertionIsQuantifiable = false;\n this.numCapturingParens = 0;\n this.maxBackReference = 0;\n this.groupNames = [];\n this.backReferenceNames = [];\n};\n\nRegExpValidationState.prototype.reset = function reset (start, pattern, flags) {\n var unicode = flags.indexOf(\"u\") !== -1;\n this.start = start | 0;\n this.source = pattern + \"\";\n this.flags = flags;\n this.switchU = unicode && this.parser.options.ecmaVersion >= 6;\n this.switchN = unicode && this.parser.options.ecmaVersion >= 9;\n};\n\nRegExpValidationState.prototype.raise = function raise (message) {\n this.parser.raiseRecoverable(this.start, (\"Invalid regular expression: /\" + (this.source) + \"/: \" + message));\n};\n\n// If u flag is given, this returns the code point at the index (it combines a surrogate pair).\n// Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).\nRegExpValidationState.prototype.at = function at (i) {\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return -1\n }\n var c = s.charCodeAt(i);\n if (!this.switchU || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n return c\n }\n var next = s.charCodeAt(i + 1);\n return next >= 0xDC00 && next <= 0xDFFF ? (c << 10) + next - 0x35FDC00 : c\n};\n\nRegExpValidationState.prototype.nextIndex = function nextIndex (i) {\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return l\n }\n var c = s.charCodeAt(i), next;\n if (!this.switchU || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l ||\n (next = s.charCodeAt(i + 1)) < 0xDC00 || next > 0xDFFF) {\n return i + 1\n }\n return i + 2\n};\n\nRegExpValidationState.prototype.current = function current () {\n return this.at(this.pos)\n};\n\nRegExpValidationState.prototype.lookahead = function lookahead () {\n return this.at(this.nextIndex(this.pos))\n};\n\nRegExpValidationState.prototype.advance = function advance () {\n this.pos = this.nextIndex(this.pos);\n};\n\nRegExpValidationState.prototype.eat = function eat (ch) {\n if (this.current() === ch) {\n this.advance();\n return true\n }\n return false\n};\n\nfunction codePointToString(ch) {\n if (ch <= 0xFFFF) { return String.fromCharCode(ch) }\n ch -= 0x10000;\n return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00)\n}\n\n/**\n * Validate the flags part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp$8.validateRegExpFlags = function(state) {\n var validFlags = state.validFlags;\n var flags = state.flags;\n\n for (var i = 0; i < flags.length; i++) {\n var flag = flags.charAt(i);\n if (validFlags.indexOf(flag) === -1) {\n this.raise(state.start, \"Invalid regular expression flag\");\n }\n if (flags.indexOf(flag, i + 1) > -1) {\n this.raise(state.start, \"Duplicate regular expression flag\");\n }\n }\n};\n\n/**\n * Validate the pattern part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp$8.validateRegExpPattern = function(state) {\n this.regexp_pattern(state);\n\n // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of\n // parsing contains a |GroupName|, reparse with the goal symbol\n // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*\n // exception if _P_ did not conform to the grammar, if any elements of _P_\n // were not matched by the parse, or if any Early Error conditions exist.\n if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) {\n state.switchN = true;\n this.regexp_pattern(state);\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\npp$8.regexp_pattern = function(state) {\n state.pos = 0;\n state.lastIntValue = 0;\n state.lastStringValue = \"\";\n state.lastAssertionIsQuantifiable = false;\n state.numCapturingParens = 0;\n state.maxBackReference = 0;\n state.groupNames.length = 0;\n state.backReferenceNames.length = 0;\n\n this.regexp_disjunction(state);\n\n if (state.pos !== state.source.length) {\n // Make the same messages as V8.\n if (state.eat(0x29 /* ) */)) {\n state.raise(\"Unmatched ')'\");\n }\n if (state.eat(0x5D /* [ */) || state.eat(0x7D /* } */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n }\n if (state.maxBackReference > state.numCapturingParens) {\n state.raise(\"Invalid escape\");\n }\n for (var i = 0, list = state.backReferenceNames; i < list.length; i += 1) {\n var name = list[i];\n\n if (state.groupNames.indexOf(name) === -1) {\n state.raise(\"Invalid named capture referenced\");\n }\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\npp$8.regexp_disjunction = function(state) {\n this.regexp_alternative(state);\n while (state.eat(0x7C /* | */)) {\n this.regexp_alternative(state);\n }\n\n // Make the same message as V8.\n if (this.regexp_eatQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n if (state.eat(0x7B /* { */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\npp$8.regexp_alternative = function(state) {\n while (state.pos < state.source.length && this.regexp_eatTerm(state))\n { }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term\npp$8.regexp_eatTerm = function(state) {\n if (this.regexp_eatAssertion(state)) {\n // Handle `QuantifiableAssertion Quantifier` alternative.\n // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion\n // is a QuantifiableAssertion.\n if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {\n // Make the same message as V8.\n if (state.switchU) {\n state.raise(\"Invalid quantifier\");\n }\n }\n return true\n }\n\n if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {\n this.regexp_eatQuantifier(state);\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion\npp$8.regexp_eatAssertion = function(state) {\n var start = state.pos;\n state.lastAssertionIsQuantifiable = false;\n\n // ^, $\n if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {\n return true\n }\n\n // \\b \\B\n if (state.eat(0x5C /* \\ */)) {\n if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {\n return true\n }\n state.pos = start;\n }\n\n // Lookahead / Lookbehind\n if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {\n var lookbehind = false;\n if (this.options.ecmaVersion >= 9) {\n lookbehind = state.eat(0x3C /* < */);\n }\n if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {\n this.regexp_disjunction(state);\n if (!state.eat(0x29 /* ) */)) {\n state.raise(\"Unterminated group\");\n }\n state.lastAssertionIsQuantifiable = !lookbehind;\n return true\n }\n }\n\n state.pos = start;\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\npp$8.regexp_eatQuantifier = function(state, noError) {\n if ( noError === void 0 ) noError = false;\n\n if (this.regexp_eatQuantifierPrefix(state, noError)) {\n state.eat(0x3F /* ? */);\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\npp$8.regexp_eatQuantifierPrefix = function(state, noError) {\n return (\n state.eat(0x2A /* * */) ||\n state.eat(0x2B /* + */) ||\n state.eat(0x3F /* ? */) ||\n this.regexp_eatBracedQuantifier(state, noError)\n )\n};\npp$8.regexp_eatBracedQuantifier = function(state, noError) {\n var start = state.pos;\n if (state.eat(0x7B /* { */)) {\n var min = 0, max = -1;\n if (this.regexp_eatDecimalDigits(state)) {\n min = state.lastIntValue;\n if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {\n max = state.lastIntValue;\n }\n if (state.eat(0x7D /* } */)) {\n // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term\n if (max !== -1 && max < min && !noError) {\n state.raise(\"numbers out of order in {} quantifier\");\n }\n return true\n }\n }\n if (state.switchU && !noError) {\n state.raise(\"Incomplete quantifier\");\n }\n state.pos = start;\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\npp$8.regexp_eatAtom = function(state) {\n return (\n this.regexp_eatPatternCharacters(state) ||\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state)\n )\n};\npp$8.regexp_eatReverseSolidusAtomEscape = function(state) {\n var start = state.pos;\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatAtomEscape(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$8.regexp_eatUncapturingGroup = function(state) {\n var start = state.pos;\n if (state.eat(0x28 /* ( */)) {\n if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) {\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n return true\n }\n state.raise(\"Unterminated group\");\n }\n state.pos = start;\n }\n return false\n};\npp$8.regexp_eatCapturingGroup = function(state) {\n if (state.eat(0x28 /* ( */)) {\n if (this.options.ecmaVersion >= 9) {\n this.regexp_groupSpecifier(state);\n } else if (state.current() === 0x3F /* ? */) {\n state.raise(\"Invalid group\");\n }\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n state.numCapturingParens += 1;\n return true\n }\n state.raise(\"Unterminated group\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom\npp$8.regexp_eatExtendedAtom = function(state) {\n return (\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state) ||\n this.regexp_eatInvalidBracedQuantifier(state) ||\n this.regexp_eatExtendedPatternCharacter(state)\n )\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier\npp$8.regexp_eatInvalidBracedQuantifier = function(state) {\n if (this.regexp_eatBracedQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\npp$8.regexp_eatSyntaxCharacter = function(state) {\n var ch = state.current();\n if (isSyntaxCharacter(ch)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n return false\n};\nfunction isSyntaxCharacter(ch) {\n return (\n ch === 0x24 /* $ */ ||\n ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ ||\n ch === 0x2E /* . */ ||\n ch === 0x3F /* ? */ ||\n ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ ||\n ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n// But eat eager.\npp$8.regexp_eatPatternCharacters = function(state) {\n var start = state.pos;\n var ch = 0;\n while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {\n state.advance();\n }\n return state.pos !== start\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter\npp$8.regexp_eatExtendedPatternCharacter = function(state) {\n var ch = state.current();\n if (\n ch !== -1 &&\n ch !== 0x24 /* $ */ &&\n !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) &&\n ch !== 0x2E /* . */ &&\n ch !== 0x3F /* ? */ &&\n ch !== 0x5B /* [ */ &&\n ch !== 0x5E /* ^ */ &&\n ch !== 0x7C /* | */\n ) {\n state.advance();\n return true\n }\n return false\n};\n\n// GroupSpecifier[U] ::\n// [empty]\n// `?` GroupName[?U]\npp$8.regexp_groupSpecifier = function(state) {\n if (state.eat(0x3F /* ? */)) {\n if (this.regexp_eatGroupName(state)) {\n if (state.groupNames.indexOf(state.lastStringValue) !== -1) {\n state.raise(\"Duplicate capture group name\");\n }\n state.groupNames.push(state.lastStringValue);\n return\n }\n state.raise(\"Invalid group\");\n }\n};\n\n// GroupName[U] ::\n// `<` RegExpIdentifierName[?U] `>`\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp$8.regexp_eatGroupName = function(state) {\n state.lastStringValue = \"\";\n if (state.eat(0x3C /* < */)) {\n if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {\n return true\n }\n state.raise(\"Invalid capture group name\");\n }\n return false\n};\n\n// RegExpIdentifierName[U] ::\n// RegExpIdentifierStart[?U]\n// RegExpIdentifierName[?U] RegExpIdentifierPart[?U]\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp$8.regexp_eatRegExpIdentifierName = function(state) {\n state.lastStringValue = \"\";\n if (this.regexp_eatRegExpIdentifierStart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n while (this.regexp_eatRegExpIdentifierPart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n }\n return true\n }\n return false\n};\n\n// RegExpIdentifierStart[U] ::\n// UnicodeIDStart\n// `$`\n// `_`\n// `\\` RegExpUnicodeEscapeSequence[?U]\npp$8.regexp_eatRegExpIdentifierStart = function(state) {\n var start = state.pos;\n var ch = state.current();\n state.advance();\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierStart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n};\nfunction isRegExpIdentifierStart(ch) {\n return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */\n}\n\n// RegExpIdentifierPart[U] ::\n// UnicodeIDContinue\n// `$`\n// `_`\n// `\\` RegExpUnicodeEscapeSequence[?U]\n// \n// \npp$8.regexp_eatRegExpIdentifierPart = function(state) {\n var start = state.pos;\n var ch = state.current();\n state.advance();\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierPart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n};\nfunction isRegExpIdentifierPart(ch) {\n return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* */ || ch === 0x200D /* */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape\npp$8.regexp_eatAtomEscape = function(state) {\n if (\n this.regexp_eatBackReference(state) ||\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state) ||\n (state.switchN && this.regexp_eatKGroupName(state))\n ) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n if (state.current() === 0x63 /* c */) {\n state.raise(\"Invalid unicode escape\");\n }\n state.raise(\"Invalid escape\");\n }\n return false\n};\npp$8.regexp_eatBackReference = function(state) {\n var start = state.pos;\n if (this.regexp_eatDecimalEscape(state)) {\n var n = state.lastIntValue;\n if (state.switchU) {\n // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape\n if (n > state.maxBackReference) {\n state.maxBackReference = n;\n }\n return true\n }\n if (n <= state.numCapturingParens) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$8.regexp_eatKGroupName = function(state) {\n if (state.eat(0x6B /* k */)) {\n if (this.regexp_eatGroupName(state)) {\n state.backReferenceNames.push(state.lastStringValue);\n return true\n }\n state.raise(\"Invalid named reference\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape\npp$8.regexp_eatCharacterEscape = function(state) {\n return (\n this.regexp_eatControlEscape(state) ||\n this.regexp_eatCControlLetter(state) ||\n this.regexp_eatZero(state) ||\n this.regexp_eatHexEscapeSequence(state) ||\n this.regexp_eatRegExpUnicodeEscapeSequence(state) ||\n (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) ||\n this.regexp_eatIdentityEscape(state)\n )\n};\npp$8.regexp_eatCControlLetter = function(state) {\n var start = state.pos;\n if (state.eat(0x63 /* c */)) {\n if (this.regexp_eatControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$8.regexp_eatZero = function(state) {\n if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {\n state.lastIntValue = 0;\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\npp$8.regexp_eatControlEscape = function(state) {\n var ch = state.current();\n if (ch === 0x74 /* t */) {\n state.lastIntValue = 0x09; /* \\t */\n state.advance();\n return true\n }\n if (ch === 0x6E /* n */) {\n state.lastIntValue = 0x0A; /* \\n */\n state.advance();\n return true\n }\n if (ch === 0x76 /* v */) {\n state.lastIntValue = 0x0B; /* \\v */\n state.advance();\n return true\n }\n if (ch === 0x66 /* f */) {\n state.lastIntValue = 0x0C; /* \\f */\n state.advance();\n return true\n }\n if (ch === 0x72 /* r */) {\n state.lastIntValue = 0x0D; /* \\r */\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\npp$8.regexp_eatControlLetter = function(state) {\n var ch = state.current();\n if (isControlLetter(ch)) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n};\nfunction isControlLetter(ch) {\n return (\n (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) ||\n (ch >= 0x61 /* a */ && ch <= 0x7A /* z */)\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\npp$8.regexp_eatRegExpUnicodeEscapeSequence = function(state) {\n var start = state.pos;\n\n if (state.eat(0x75 /* u */)) {\n if (this.regexp_eatFixedHexDigits(state, 4)) {\n var lead = state.lastIntValue;\n if (state.switchU && lead >= 0xD800 && lead <= 0xDBFF) {\n var leadSurrogateEnd = state.pos;\n if (state.eat(0x5C /* \\ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {\n var trail = state.lastIntValue;\n if (trail >= 0xDC00 && trail <= 0xDFFF) {\n state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;\n return true\n }\n }\n state.pos = leadSurrogateEnd;\n state.lastIntValue = lead;\n }\n return true\n }\n if (\n state.switchU &&\n state.eat(0x7B /* { */) &&\n this.regexp_eatHexDigits(state) &&\n state.eat(0x7D /* } */) &&\n isValidUnicode(state.lastIntValue)\n ) {\n return true\n }\n if (state.switchU) {\n state.raise(\"Invalid unicode escape\");\n }\n state.pos = start;\n }\n\n return false\n};\nfunction isValidUnicode(ch) {\n return ch >= 0 && ch <= 0x10FFFF\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape\npp$8.regexp_eatIdentityEscape = function(state) {\n if (state.switchU) {\n if (this.regexp_eatSyntaxCharacter(state)) {\n return true\n }\n if (state.eat(0x2F /* / */)) {\n state.lastIntValue = 0x2F; /* / */\n return true\n }\n return false\n }\n\n var ch = state.current();\n if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\npp$8.regexp_eatDecimalEscape = function(state) {\n state.lastIntValue = 0;\n var ch = state.current();\n if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {\n do {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */)\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\npp$8.regexp_eatCharacterClassEscape = function(state) {\n var ch = state.current();\n\n if (isCharacterClassEscape(ch)) {\n state.lastIntValue = -1;\n state.advance();\n return true\n }\n\n if (\n state.switchU &&\n this.options.ecmaVersion >= 9 &&\n (ch === 0x50 /* P */ || ch === 0x70 /* p */)\n ) {\n state.lastIntValue = -1;\n state.advance();\n if (\n state.eat(0x7B /* { */) &&\n this.regexp_eatUnicodePropertyValueExpression(state) &&\n state.eat(0x7D /* } */)\n ) {\n return true\n }\n state.raise(\"Invalid property name\");\n }\n\n return false\n};\nfunction isCharacterClassEscape(ch) {\n return (\n ch === 0x64 /* d */ ||\n ch === 0x44 /* D */ ||\n ch === 0x73 /* s */ ||\n ch === 0x53 /* S */ ||\n ch === 0x77 /* w */ ||\n ch === 0x57 /* W */\n )\n}\n\n// UnicodePropertyValueExpression ::\n// UnicodePropertyName `=` UnicodePropertyValue\n// LoneUnicodePropertyNameOrValue\npp$8.regexp_eatUnicodePropertyValueExpression = function(state) {\n var start = state.pos;\n\n // UnicodePropertyName `=` UnicodePropertyValue\n if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {\n var name = state.lastStringValue;\n if (this.regexp_eatUnicodePropertyValue(state)) {\n var value = state.lastStringValue;\n this.regexp_validateUnicodePropertyNameAndValue(state, name, value);\n return true\n }\n }\n state.pos = start;\n\n // LoneUnicodePropertyNameOrValue\n if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {\n var nameOrValue = state.lastStringValue;\n this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue);\n return true\n }\n return false\n};\npp$8.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {\n if (!has(state.unicodeProperties.nonBinary, name))\n { state.raise(\"Invalid property name\"); }\n if (!state.unicodeProperties.nonBinary[name].test(value))\n { state.raise(\"Invalid property value\"); }\n};\npp$8.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {\n if (!state.unicodeProperties.binary.test(nameOrValue))\n { state.raise(\"Invalid property name\"); }\n};\n\n// UnicodePropertyName ::\n// UnicodePropertyNameCharacters\npp$8.regexp_eatUnicodePropertyName = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyNameCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n};\nfunction isUnicodePropertyNameCharacter(ch) {\n return isControlLetter(ch) || ch === 0x5F /* _ */\n}\n\n// UnicodePropertyValue ::\n// UnicodePropertyValueCharacters\npp$8.regexp_eatUnicodePropertyValue = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyValueCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n};\nfunction isUnicodePropertyValueCharacter(ch) {\n return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch)\n}\n\n// LoneUnicodePropertyNameOrValue ::\n// UnicodePropertyValueCharacters\npp$8.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {\n return this.regexp_eatUnicodePropertyValue(state)\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\npp$8.regexp_eatCharacterClass = function(state) {\n if (state.eat(0x5B /* [ */)) {\n state.eat(0x5E /* ^ */);\n this.regexp_classRanges(state);\n if (state.eat(0x5D /* [ */)) {\n return true\n }\n // Unreachable since it threw \"unterminated regular expression\" error before.\n state.raise(\"Unterminated character class\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\npp$8.regexp_classRanges = function(state) {\n while (this.regexp_eatClassAtom(state)) {\n var left = state.lastIntValue;\n if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {\n var right = state.lastIntValue;\n if (state.switchU && (left === -1 || right === -1)) {\n state.raise(\"Invalid character class\");\n }\n if (left !== -1 && right !== -1 && left > right) {\n state.raise(\"Range out of order in character class\");\n }\n }\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\npp$8.regexp_eatClassAtom = function(state) {\n var start = state.pos;\n\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatClassEscape(state)) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n var ch$1 = state.current();\n if (ch$1 === 0x63 /* c */ || isOctalDigit(ch$1)) {\n state.raise(\"Invalid class escape\");\n }\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n\n var ch = state.current();\n if (ch !== 0x5D /* [ */) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape\npp$8.regexp_eatClassEscape = function(state) {\n var start = state.pos;\n\n if (state.eat(0x62 /* b */)) {\n state.lastIntValue = 0x08; /* */\n return true\n }\n\n if (state.switchU && state.eat(0x2D /* - */)) {\n state.lastIntValue = 0x2D; /* - */\n return true\n }\n\n if (!state.switchU && state.eat(0x63 /* c */)) {\n if (this.regexp_eatClassControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n\n return (\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state)\n )\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter\npp$8.regexp_eatClassControlLetter = function(state) {\n var ch = state.current();\n if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp$8.regexp_eatHexEscapeSequence = function(state) {\n var start = state.pos;\n if (state.eat(0x78 /* x */)) {\n if (this.regexp_eatFixedHexDigits(state, 2)) {\n return true\n }\n if (state.switchU) {\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\npp$8.regexp_eatDecimalDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isDecimalDigit(ch = state.current())) {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n }\n return state.pos !== start\n};\nfunction isDecimalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\npp$8.regexp_eatHexDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isHexDigit(ch = state.current())) {\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return state.pos !== start\n};\nfunction isHexDigit(ch) {\n return (\n (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) ||\n (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) ||\n (ch >= 0x61 /* a */ && ch <= 0x66 /* f */)\n )\n}\nfunction hexToInt(ch) {\n if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {\n return 10 + (ch - 0x41 /* A */)\n }\n if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {\n return 10 + (ch - 0x61 /* a */)\n }\n return ch - 0x30 /* 0 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence\n// Allows only 0-377(octal) i.e. 0-255(decimal).\npp$8.regexp_eatLegacyOctalEscapeSequence = function(state) {\n if (this.regexp_eatOctalDigit(state)) {\n var n1 = state.lastIntValue;\n if (this.regexp_eatOctalDigit(state)) {\n var n2 = state.lastIntValue;\n if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {\n state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue;\n } else {\n state.lastIntValue = n1 * 8 + n2;\n }\n } else {\n state.lastIntValue = n1;\n }\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\npp$8.regexp_eatOctalDigit = function(state) {\n var ch = state.current();\n if (isOctalDigit(ch)) {\n state.lastIntValue = ch - 0x30; /* 0 */\n state.advance();\n return true\n }\n state.lastIntValue = 0;\n return false\n};\nfunction isOctalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n// And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp$8.regexp_eatFixedHexDigits = function(state, length) {\n var start = state.pos;\n state.lastIntValue = 0;\n for (var i = 0; i < length; ++i) {\n var ch = state.current();\n if (!isHexDigit(ch)) {\n state.pos = start;\n return false\n }\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return true\n};\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nvar Token = function Token(p) {\n this.type = p.type;\n this.value = p.value;\n this.start = p.start;\n this.end = p.end;\n if (p.options.locations)\n { this.loc = new SourceLocation(p, p.startLoc, p.endLoc); }\n if (p.options.ranges)\n { this.range = [p.start, p.end]; }\n};\n\n// ## Tokenizer\n\nvar pp$9 = Parser.prototype;\n\n// Move to the next token\n\npp$9.next = function() {\n if (this.options.onToken)\n { this.options.onToken(new Token(this)); }\n\n this.lastTokEnd = this.end;\n this.lastTokStart = this.start;\n this.lastTokEndLoc = this.endLoc;\n this.lastTokStartLoc = this.startLoc;\n this.nextToken();\n};\n\npp$9.getToken = function() {\n this.next();\n return new Token(this)\n};\n\n// If we're in an ES6 environment, make parsers iterable\nif (typeof Symbol !== \"undefined\")\n { pp$9[Symbol.iterator] = function() {\n var this$1 = this;\n\n return {\n next: function () {\n var token = this$1.getToken();\n return {\n done: token.type === types.eof,\n value: token\n }\n }\n }\n }; }\n\n// Toggle strict mode. Re-reads the next number or string to please\n// pedantic tests (`\"use strict\"; 010;` should fail).\n\npp$9.curContext = function() {\n return this.context[this.context.length - 1]\n};\n\n// Read a single token, updating the parser object's token-related\n// properties.\n\npp$9.nextToken = function() {\n var curContext = this.curContext();\n if (!curContext || !curContext.preserveSpace) { this.skipSpace(); }\n\n this.start = this.pos;\n if (this.options.locations) { this.startLoc = this.curPosition(); }\n if (this.pos >= this.input.length) { return this.finishToken(types.eof) }\n\n if (curContext.override) { return curContext.override(this) }\n else { this.readToken(this.fullCharCodeAtPos()); }\n};\n\npp$9.readToken = function(code) {\n // Identifier or keyword. '\\uXXXX' sequences are allowed in\n // identifiers, so '\\' also dispatches to that.\n if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\\' */)\n { return this.readWord() }\n\n return this.getTokenFromCode(code)\n};\n\npp$9.fullCharCodeAtPos = function() {\n var code = this.input.charCodeAt(this.pos);\n if (code <= 0xd7ff || code >= 0xe000) { return code }\n var next = this.input.charCodeAt(this.pos + 1);\n return (code << 10) + next - 0x35fdc00\n};\n\npp$9.skipBlockComment = function() {\n var startLoc = this.options.onComment && this.curPosition();\n var start = this.pos, end = this.input.indexOf(\"*/\", this.pos += 2);\n if (end === -1) { this.raise(this.pos - 2, \"Unterminated comment\"); }\n this.pos = end + 2;\n if (this.options.locations) {\n lineBreakG.lastIndex = start;\n var match;\n while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) {\n ++this.curLine;\n this.lineStart = match.index + match[0].length;\n }\n }\n if (this.options.onComment)\n { this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,\n startLoc, this.curPosition()); }\n};\n\npp$9.skipLineComment = function(startSkip) {\n var start = this.pos;\n var startLoc = this.options.onComment && this.curPosition();\n var ch = this.input.charCodeAt(this.pos += startSkip);\n while (this.pos < this.input.length && !isNewLine(ch)) {\n ch = this.input.charCodeAt(++this.pos);\n }\n if (this.options.onComment)\n { this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,\n startLoc, this.curPosition()); }\n};\n\n// Called at the start of the parse and after every token. Skips\n// whitespace and comments, and.\n\npp$9.skipSpace = function() {\n loop: while (this.pos < this.input.length) {\n var ch = this.input.charCodeAt(this.pos);\n switch (ch) {\n case 32: case 160: // ' '\n ++this.pos;\n break\n case 13:\n if (this.input.charCodeAt(this.pos + 1) === 10) {\n ++this.pos;\n }\n case 10: case 8232: case 8233:\n ++this.pos;\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n break\n case 47: // '/'\n switch (this.input.charCodeAt(this.pos + 1)) {\n case 42: // '*'\n this.skipBlockComment();\n break\n case 47:\n this.skipLineComment(2);\n break\n default:\n break loop\n }\n break\n default:\n if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {\n ++this.pos;\n } else {\n break loop\n }\n }\n }\n};\n\n// Called at the end of every token. Sets `end`, `val`, and\n// maintains `context` and `exprAllowed`, and skips the space after\n// the token, so that the next one's `start` will point at the\n// right position.\n\npp$9.finishToken = function(type, val) {\n this.end = this.pos;\n if (this.options.locations) { this.endLoc = this.curPosition(); }\n var prevType = this.type;\n this.type = type;\n this.value = val;\n\n this.updateContext(prevType);\n};\n\n// ### Token reading\n\n// This is the function that is called to fetch the next token. It\n// is somewhat obscure, because it works in character codes rather\n// than characters, and because operator parsing has been inlined\n// into it.\n//\n// All in the name of speed.\n//\npp$9.readToken_dot = function() {\n var next = this.input.charCodeAt(this.pos + 1);\n if (next >= 48 && next <= 57) { return this.readNumber(true) }\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'\n this.pos += 3;\n return this.finishToken(types.ellipsis)\n } else {\n ++this.pos;\n return this.finishToken(types.dot)\n }\n};\n\npp$9.readToken_slash = function() { // '/'\n var next = this.input.charCodeAt(this.pos + 1);\n if (this.exprAllowed) { ++this.pos; return this.readRegexp() }\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(types.slash, 1)\n};\n\npp$9.readToken_mult_modulo_exp = function(code) { // '%*'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n var tokentype = code === 42 ? types.star : types.modulo;\n\n // exponentiation operator ** and **=\n if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {\n ++size;\n tokentype = types.starstar;\n next = this.input.charCodeAt(this.pos + 2);\n }\n\n if (next === 61) { return this.finishOp(types.assign, size + 1) }\n return this.finishOp(tokentype, size)\n};\n\npp$9.readToken_pipe_amp = function(code) { // '|&'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) { return this.finishOp(code === 124 ? types.logicalOR : types.logicalAND, 2) }\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(code === 124 ? types.bitwiseOR : types.bitwiseAND, 1)\n};\n\npp$9.readToken_caret = function() { // '^'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(types.bitwiseXOR, 1)\n};\n\npp$9.readToken_plus_min = function(code) { // '+-'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) {\n if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&\n (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {\n // A `-->` line comment\n this.skipLineComment(3);\n this.skipSpace();\n return this.nextToken()\n }\n return this.finishOp(types.incDec, 2)\n }\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(types.plusMin, 1)\n};\n\npp$9.readToken_lt_gt = function(code) { // '<>'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2;\n if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types.assign, size + 1) }\n return this.finishOp(types.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // `';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n // eslint-disable-next-line no-negated-condition\n if (typeof dirty.toString !== 'function') {\n throw typeErrorCreate('toString is not a function');\n } else {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n }\n\n /* Check we can run. Otherwise fall back or ignore */\n if (!DOMPurify.isSupported) {\n if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n if (typeof dirty === 'string') {\n return window.toStaticHTML(dirty);\n }\n\n if (_isNode(dirty)) {\n return window.toStaticHTML(dirty.outerHTML);\n }\n }\n\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) ; else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : emptyHTML;\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Fix IE's strange behavior with manipulated textNodes #89 */\n if (currentNode.nodeType === 3 && currentNode === oldNode) {\n continue;\n }\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n\n oldNode = currentNode;\n }\n\n oldNode = null;\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (RETURN_DOM_IMPORT) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$$1, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR$$1, ' ');\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n var lcTag = stringToLowerCase(tag);\n var lcName = stringToLowerCase(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n }\n\n var purify = createDOMPurify();\n\n return purify;\n\n}));\n//# sourceMappingURL=purify.js.map\n","'use strict';\n\nrequire('./index').polyfill();\n","/**\n * Code refactored from Mozilla Developer Network:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n */\n\n'use strict';\n\nfunction assign(target, firstSource) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert first argument to object');\n }\n\n var to = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i];\n if (nextSource === undefined || nextSource === null) {\n continue;\n }\n\n var keysArray = Object.keys(Object(nextSource));\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n return to;\n}\n\nfunction polyfill() {\n if (!Object.assign) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: assign\n });\n }\n}\n\nmodule.exports = {\n assign: assign,\n polyfill: polyfill\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n var errorListener;\n\n // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n }\n return {\n remove: emptyFunction\n };\n }\n },\n\n registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n'use strict';\n\nvar camelize = require('./camelize');\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n * > camelizeStyleName('background-color')\n * < \"backgroundColor\"\n * > camelizeStyleName('-moz-transition')\n * < \"MozTransition\"\n * > camelizeStyleName('-ms-transition')\n * < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isTextNode = require('./isTextNode');\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\n\nfunction focusNode(node) {\n // IE8 can throw \"Can't move focus to the control because it is invisible,\n // not enabled, or of a type that does not accept the focus.\" for all kinds of\n // reasons that are too expensive and fragile to test.\n try {\n node.focus();\n } catch (e) {}\n}\n\nmodule.exports = focusNode;","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n *\n * @param {?DOMDocument} doc Defaults to current document.\n * @return {?DOMElement}\n */\nfunction getActiveElement(doc) /*?DOMElement*/{\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n if (typeof doc === 'undefined') {\n return null;\n }\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\nmodule.exports = getActiveElement;","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _uppercasePattern = /([A-Z])/g;\n\n/**\n * Hyphenates a camelcased string, for example:\n *\n * > hyphenate('backgroundColor')\n * < \"background-color\"\n *\n * For CSS style names, use `hyphenateStyleName` instead which works properly\n * with all vendor prefixes, including `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenate(string) {\n return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nmodule.exports = hyphenate;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n'use strict';\n\nvar hyphenate = require('./hyphenate');\n\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}\n\nmodule.exports = hyphenateStyleName;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\nfunction isNode(object) {\n var doc = object ? object.ownerDocument || object : document;\n var defaultView = doc.defaultView || window;\n return !!(object && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar isNode = require('./isNode');\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\nfunction isTextNode(object) {\n return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","\"use strict\";\n\nif (global.AnalyserNode && !global.AnalyserNode.prototype.getFloatTimeDomainData) {\n var uint8 = new Uint8Array(2048);\n global.AnalyserNode.prototype.getFloatTimeDomainData = function(array) {\n this.getByteTimeDomainData(uint8);\n for (var i = 0, imax = array.length; i < imax; i++) {\n array[i] = (uint8[i] - 128) * 0.0078125;\n }\n };\n}\n","// loosely based on example code at https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia\n(function (root) {\n 'use strict';\n\n /**\n * Error thrown when any required feature is missing (Promises, navigator, getUserMedia)\n * @constructor\n */\n function NotSupportedError() {\n this.name = 'NotSupportedError';\n this.message = 'getUserMedia is not implemented in this browser';\n }\n NotSupportedError.prototype = Error.prototype;\n\n /**\n * Fake Promise instance that behaves like a Promise except that it always rejects with a NotSupportedError.\n * Used for situations where there is no global Promise constructor.\n *\n * The message will report that the getUserMedia API is not available.\n * This is technically true because every browser that supports getUserMedia also supports promises.\n **\n * @see http://caniuse.com/#feat=stream\n * @see http://caniuse.com/#feat=promises\n * @constructor\n */\n function FakePromise() {\n // make it chainable like a real promise\n this.then = function() {\n return this;\n };\n\n // but always reject with an error\n var err = new NotSupportedError();\n this.catch = function(cb) {\n setTimeout(function () {\n cb(err);\n });\n }\n }\n\n var isPromiseSupported = typeof Promise !== 'undefined';\n\n // checks for root.navigator to enable server-side rendering of things that depend on this\n // (will need to be updated on client, but at least doesn't throw this way)\n var navigatorExists = typeof navigator !== \"undefined\";\n // gump = mondern promise-based interface\n // gum = old callback-based interface\n var gump = navigatorExists && navigator.mediaDevices && navigator.mediaDevices.getUserMedia;\n var gum = navigatorExists && (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia);\n\n /**\n * Wrapper for navigator.mediaDevices.getUserMedia.\n * Always returns a Promise or Promise-like object, even in environments without a global Promise constructor\n *\n * @stream https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia\n *\n * @param {Object} constraints - must include one or both of audio/video along with optional details for video\n * @param {Boolean} [constraints.audio] - include audio data in the stream\n * @param {Boolean|Object} [constraints.video] - include video data in the stream. May be a boolean or an object with additional constraints, see\n * @returns {Promise} a promise that resolves to a MediaStream object\n */\n function getUserMedia(constraints) {\n // ensure that Promises are supported and we have a navigator object\n if (!isPromiseSupported) {\n return new FakePromise();\n }\n\n // Try the more modern, promise-based MediaDevices API first\n //https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia\n if(gump) {\n return navigator.mediaDevices.getUserMedia(constraints);\n }\n\n // fall back to the older method second, wrap it in a promise.\n return new Promise(function(resolve, reject) {\n // if navigator doesn't exist, then we can't use the getUserMedia API. (And probably aren't even in a browser.)\n // assuming it does, try getUserMedia and then all of the prefixed versions\n\n if (!gum) {\n return reject(new NotSupportedError());\n }\n gum.call(navigator, constraints, resolve, reject);\n });\n }\n\n getUserMedia.NotSupportedError = NotSupportedError;\n\n // eslint-disable-next-line no-implicit-coercion\n getUserMedia.isSupported = !!(isPromiseSupported && (gump || gum));\n\n // UMD, loosely based on https://github.com/umdjs/umd/blob/master/templates/returnExportsGlobal.js\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], function () {\n return getUserMedia;\n });\n } else if (typeof module === 'object' && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like enviroments that support module.exports,\n // like Node.\n module.exports = getUserMedia;\n } else {\n // Browser globals\n // polyfill the MediaDevices API if it does not exist.\n root.navigator || (root.navigator = {});\n root.navigator.mediaDevices || (root.navigator.mediaDevices = {});\n root.navigator.mediaDevices.getUserMedia || (root.navigator.mediaDevices.getUserMedia = getUserMedia);\n }\n}(this));\n","var win;\n\nif (typeof window !== \"undefined\") {\n win = window;\n} else if (typeof global !== \"undefined\") {\n win = global;\n} else if (typeof self !== \"undefined\"){\n win = self;\n} else {\n win = {};\n}\n\nmodule.exports = win;\n","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = getPrototypeOf && getPrototypeOf(Object);\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try { // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","function _cross(o, a, b) {\n return (a[0] - o[0]) * (b[1] - o[1]) - (a[1] - o[1]) * (b[0] - o[0]);\n}\n\nfunction _upperTangent(pointset) {\n var lower = [];\n for (var l = 0; l < pointset.length; l++) {\n while (lower.length >= 2 && (_cross(lower[lower.length - 2], lower[lower.length - 1], pointset[l]) <= 0)) {\n lower.pop();\n }\n lower.push(pointset[l]);\n }\n lower.pop();\n return lower;\n}\n\nfunction _lowerTangent(pointset) {\n var reversed = pointset.reverse(),\n upper = [];\n for (var u = 0; u < reversed.length; u++) {\n while (upper.length >= 2 && (_cross(upper[upper.length - 2], upper[upper.length - 1], reversed[u]) <= 0)) {\n upper.pop();\n }\n upper.push(reversed[u]);\n }\n upper.pop();\n return upper;\n}\n\n// pointset has to be sorted by X\nfunction convex(pointset) {\n var convex,\n upper = _upperTangent(pointset),\n lower = _lowerTangent(pointset);\n convex = lower.concat(upper);\n convex.push(pointset[0]); \n return convex; \n}\n\nmodule.exports = convex;\n","module.exports = {\n\n toXy: function(pointset, format) {\n if (format === undefined) {\n return pointset.slice();\n }\n return pointset.map(function(pt) {\n /*jslint evil: true */\n var _getXY = new Function('pt', 'return [pt' + format[0] + ',' + 'pt' + format[1] + '];');\n return _getXY(pt);\n });\n },\n\n fromXy: function(pointset, format) {\n if (format === undefined) {\n return pointset.slice();\n }\n return pointset.map(function(pt) {\n /*jslint evil: true */\n var _getObj = new Function('pt', 'var o = {}; o' + format[0] + '= pt[0]; o' + format[1] + '= pt[1]; return o;');\n return _getObj(pt);\n });\n }\n\n}","function Grid(points, cellSize) {\n this._cells = [];\n this._cellSize = cellSize;\n\n points.forEach(function(point) {\n var cellXY = this.point2CellXY(point),\n x = cellXY[0],\n y = cellXY[1];\n if (this._cells[x] === undefined) {\n this._cells[x] = [];\n }\n if (this._cells[x][y] === undefined) {\n this._cells[x][y] = [];\n }\n this._cells[x][y].push(point);\n }, this);\n}\n\nGrid.prototype = {\n cellPoints: function(x, y) { // (Number, Number) -> Array\n return (this._cells[x] !== undefined && this._cells[x][y] !== undefined) ? this._cells[x][y] : [];\n },\n\n rangePoints: function(bbox) { // (Array) -> Array\n var tlCellXY = this.point2CellXY([bbox[0], bbox[1]]),\n brCellXY = this.point2CellXY([bbox[2], bbox[3]]),\n points = [];\n\n for (var x = tlCellXY[0]; x <= brCellXY[0]; x++) {\n for (var y = tlCellXY[1]; y <= brCellXY[1]; y++) {\n points = points.concat(this.cellPoints(x, y));\n }\n }\n\n return points;\n },\n\n removePoint: function(point) { // (Array) -> Array\n var cellXY = this.point2CellXY(point),\n cell = this._cells[cellXY[0]][cellXY[1]],\n pointIdxInCell;\n \n for (var i = 0; i < cell.length; i++) {\n if (cell[i][0] === point[0] && cell[i][1] === point[1]) {\n pointIdxInCell = i;\n break;\n }\n }\n\n cell.splice(pointIdxInCell, 1);\n\n return cell;\n },\n\n point2CellXY: function(point) { // (Array) -> Array\n var x = parseInt(point[0] / this._cellSize),\n y = parseInt(point[1] / this._cellSize);\n return [x, y];\n },\n\n extendBbox: function(bbox, scaleFactor) { // (Array, Number) -> Array\n return [\n bbox[0] - (scaleFactor * this._cellSize),\n bbox[1] - (scaleFactor * this._cellSize),\n bbox[2] + (scaleFactor * this._cellSize),\n bbox[3] + (scaleFactor * this._cellSize)\n ];\n }\n};\n\nfunction grid(points, cellSize) {\n return new Grid(points, cellSize);\n}\n\nmodule.exports = grid;","/*\n (c) 2014-2016, Andrii Heonia\n Hull.js, a JavaScript library for concave hull generation by set of points.\n https://github.com/AndriiHeonia/hull\n*/\n\n'use strict';\n\nvar intersect = require('./intersect.js');\nvar grid = require('./grid.js');\nvar formatUtil = require('./format.js');\nvar convexHull = require('./convex.js');\n\nfunction _filterDuplicates(pointset) {\n return pointset.filter(function(el, idx, arr) {\n var prevEl = arr[idx - 1];\n return idx === 0 || !(prevEl[0] === el[0] && prevEl[1] === el[1]);\n });\n}\n\nfunction _sortByX(pointset) {\n return pointset.sort(function(a, b) {\n if (a[0] == b[0]) {\n return a[1] - b[1];\n } else {\n return a[0] - b[0];\n }\n });\n}\n\nfunction _sqLength(a, b) {\n return Math.pow(b[0] - a[0], 2) + Math.pow(b[1] - a[1], 2);\n}\n\nfunction _cos(o, a, b) {\n var aShifted = [a[0] - o[0], a[1] - o[1]],\n bShifted = [b[0] - o[0], b[1] - o[1]],\n sqALen = _sqLength(o, a),\n sqBLen = _sqLength(o, b),\n dot = aShifted[0] * bShifted[0] + aShifted[1] * bShifted[1];\n\n return dot / Math.sqrt(sqALen * sqBLen);\n}\n\nfunction _intersect(segment, pointset) {\n for (var i = 0; i < pointset.length - 1; i++) {\n var seg = [pointset[i], pointset[i + 1]];\n if (segment[0][0] === seg[0][0] && segment[0][1] === seg[0][1] ||\n segment[0][0] === seg[1][0] && segment[0][1] === seg[1][1]) {\n continue;\n }\n if (intersect(segment, seg)) {\n return true;\n }\n }\n return false;\n}\n\nfunction _occupiedArea(pointset) {\n var minX = Infinity,\n minY = Infinity,\n maxX = -Infinity,\n maxY = -Infinity;\n\n for (var i = pointset.length - 1; i >= 0; i--) {\n if (pointset[i][0] < minX) {\n minX = pointset[i][0];\n }\n if (pointset[i][1] < minY) {\n minY = pointset[i][1];\n }\n if (pointset[i][0] > maxX) {\n maxX = pointset[i][0];\n }\n if (pointset[i][1] > maxY) {\n maxY = pointset[i][1];\n }\n }\n\n return [\n maxX - minX, // width\n maxY - minY // height\n ];\n}\n\nfunction _bBoxAround(edge) {\n return [\n Math.min(edge[0][0], edge[1][0]), // left\n Math.min(edge[0][1], edge[1][1]), // top\n Math.max(edge[0][0], edge[1][0]), // right\n Math.max(edge[0][1], edge[1][1]) // bottom\n ];\n}\n\nfunction _midPoint(edge, innerPoints, convex) {\n var point = null,\n angle1Cos = MAX_CONCAVE_ANGLE_COS,\n angle2Cos = MAX_CONCAVE_ANGLE_COS,\n a1Cos, a2Cos;\n\n for (var i = 0; i < innerPoints.length; i++) {\n a1Cos = _cos(edge[0], edge[1], innerPoints[i]);\n a2Cos = _cos(edge[1], edge[0], innerPoints[i]);\n\n if (a1Cos > angle1Cos && a2Cos > angle2Cos &&\n !_intersect([edge[0], innerPoints[i]], convex) &&\n !_intersect([edge[1], innerPoints[i]], convex)) {\n\n angle1Cos = a1Cos;\n angle2Cos = a2Cos;\n point = innerPoints[i];\n }\n }\n\n return point;\n}\n\nfunction _concave(convex, maxSqEdgeLen, maxSearchArea, grid, edgeSkipList) {\n var edge,\n keyInSkipList,\n scaleFactor,\n midPoint,\n bBoxAround,\n bBoxWidth,\n bBoxHeight,\n midPointInserted = false;\n\n for (var i = 0; i < convex.length - 1; i++) {\n edge = [convex[i], convex[i + 1]];\n keyInSkipList = edge[0].join() + ',' + edge[1].join();\n\n if (_sqLength(edge[0], edge[1]) < maxSqEdgeLen ||\n edgeSkipList[keyInSkipList] === true) { continue; }\n\n scaleFactor = 0;\n bBoxAround = _bBoxAround(edge);\n do {\n bBoxAround = grid.extendBbox(bBoxAround, scaleFactor);\n bBoxWidth = bBoxAround[2] - bBoxAround[0];\n bBoxHeight = bBoxAround[3] - bBoxAround[1];\n\n midPoint = _midPoint(edge, grid.rangePoints(bBoxAround), convex); \n scaleFactor++;\n } while (midPoint === null && (maxSearchArea[0] > bBoxWidth || maxSearchArea[1] > bBoxHeight));\n\n if (bBoxWidth >= maxSearchArea[0] && bBoxHeight >= maxSearchArea[1]) {\n edgeSkipList[keyInSkipList] = true;\n }\n\n if (midPoint !== null) {\n convex.splice(i + 1, 0, midPoint);\n grid.removePoint(midPoint);\n midPointInserted = true;\n }\n }\n\n if (midPointInserted) {\n return _concave(convex, maxSqEdgeLen, maxSearchArea, grid, edgeSkipList);\n }\n\n return convex;\n}\n\nfunction hull(pointset, concavity, format) {\n var convex,\n concave,\n innerPoints,\n occupiedArea,\n maxSearchArea,\n cellSize,\n points,\n maxEdgeLen = concavity || 20;\n\n if (pointset.length < 4) {\n return pointset.slice();\n }\n\n points = _filterDuplicates(_sortByX(formatUtil.toXy(pointset, format)));\n\n occupiedArea = _occupiedArea(points);\n maxSearchArea = [\n occupiedArea[0] * MAX_SEARCH_BBOX_SIZE_PERCENT,\n occupiedArea[1] * MAX_SEARCH_BBOX_SIZE_PERCENT\n ];\n\n convex = convexHull(points);\n innerPoints = points.filter(function(pt) {\n return convex.indexOf(pt) < 0;\n });\n\n cellSize = Math.ceil(1 / (points.length / (occupiedArea[0] * occupiedArea[1])));\n\n concave = _concave(\n convex, Math.pow(maxEdgeLen, 2),\n maxSearchArea, grid(innerPoints, cellSize), {});\n \n return formatUtil.fromXy(concave, format);\n}\n\nvar MAX_CONCAVE_ANGLE_COS = Math.cos(90 / (180 / Math.PI)); // angle = 90 deg\nvar MAX_SEARCH_BBOX_SIZE_PERCENT = 0.6;\n\nmodule.exports = hull;","function ccw(x1, y1, x2, y2, x3, y3) { \n var cw = ((y3 - y1) * (x2 - x1)) - ((y2 - y1) * (x3 - x1));\n return cw > 0 ? true : cw < 0 ? false : true; // colinear\n}\n\nfunction intersect(seg1, seg2) {\n var x1 = seg1[0][0], y1 = seg1[0][1],\n x2 = seg1[1][0], y2 = seg1[1][1],\n x3 = seg2[0][0], y3 = seg2[0][1],\n x4 = seg2[1][0], y4 = seg2[1][1];\n\n return ccw(x1, y1, x3, y3, x4, y4) !== ccw(x2, y2, x3, y3, x4, y4) && ccw(x1, y1, x2, y2, x3, y3) !== ccw(x1, y1, x2, y2, x4, y4);\n}\n\nmodule.exports = intersect;","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","// Generated by CoffeeScript 1.8.0\n(function() {\n var CR, Control, Extend, L, LF, LV, LVT, Regional_Indicator, SpacingMark, T, UnicodeTrie, V, classTrie, codePointAt, fs, shouldBreak, _ref;\n\n _ref = require('./classes.json'), CR = _ref.CR, LF = _ref.LF, Control = _ref.Control, Extend = _ref.Extend, Regional_Indicator = _ref.Regional_Indicator, SpacingMark = _ref.SpacingMark, L = _ref.L, V = _ref.V, T = _ref.T, LV = _ref.LV, LVT = _ref.LVT;\n\n UnicodeTrie = require('unicode-trie');\n\n \n\n classTrie = new UnicodeTrie(Buffer(\"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\",\"base64\"));\n\n codePointAt = function(str, idx) {\n var code, hi, low;\n idx = idx || 0;\n code = str.charCodeAt(idx);\n if ((0xD800 <= code && code <= 0xDBFF)) {\n hi = code;\n low = str.charCodeAt(idx + 1);\n if ((0xDC00 <= low && low <= 0xDFFF)) {\n return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;\n }\n return hi;\n }\n if ((0xDC00 <= code && code <= 0xDFFF)) {\n hi = str.charCodeAt(idx - 1);\n low = code;\n if ((0xD800 <= hi && hi <= 0xDBFF)) {\n return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;\n }\n return low;\n }\n return code;\n };\n\n shouldBreak = function(previous, current) {\n if (previous === CR && current === LF) {\n return false;\n } else if (previous === Control || previous === CR || previous === LF) {\n return true;\n } else if (current === Control || current === CR || current === LF) {\n return true;\n } else if (previous === L && (current === L || current === V || current === LV || current === LVT)) {\n return false;\n } else if ((previous === LV || previous === V) && (current === V || current === T)) {\n return false;\n } else if ((previous === LVT || previous === T) && current === T) {\n return false;\n } else if (previous === Regional_Indicator && current === Regional_Indicator) {\n return false;\n } else if (current === Extend) {\n return false;\n } else if (current === SpacingMark) {\n return false;\n }\n return true;\n };\n\n exports.nextBreak = function(string, index) {\n var i, next, prev, _i, _ref1, _ref2, _ref3, _ref4;\n if (index == null) {\n index = 0;\n }\n if (index < 0) {\n return 0;\n }\n if (index >= string.length - 1) {\n return string.length;\n }\n prev = classTrie.get(codePointAt(string, index));\n for (i = _i = _ref1 = index + 1, _ref2 = string.length; _i < _ref2; i = _i += 1) {\n if ((0xd800 <= (_ref3 = string.charCodeAt(i - 1)) && _ref3 <= 0xdbff) && (0xdc00 <= (_ref4 = string.charCodeAt(i)) && _ref4 <= 0xdfff)) {\n continue;\n }\n next = classTrie.get(codePointAt(string, i));\n if (shouldBreak(prev, next)) {\n return i;\n }\n prev = next;\n }\n return string.length;\n };\n\n exports.previousBreak = function(string, index) {\n var i, next, prev, _i, _ref1, _ref2, _ref3;\n if (index == null) {\n index = string.length;\n }\n if (index > string.length) {\n return string.length;\n }\n if (index <= 1) {\n return 0;\n }\n index--;\n next = classTrie.get(codePointAt(string, index));\n for (i = _i = _ref1 = index - 1; _i >= 0; i = _i += -1) {\n if ((0xd800 <= (_ref2 = string.charCodeAt(i)) && _ref2 <= 0xdbff) && (0xdc00 <= (_ref3 = string.charCodeAt(i + 1)) && _ref3 <= 0xdfff)) {\n continue;\n }\n prev = classTrie.get(codePointAt(string, i));\n if (shouldBreak(prev, next)) {\n return i + 1;\n }\n next = prev;\n }\n return 0;\n };\n\n exports[\"break\"] = function(str) {\n var brk, index, res;\n res = [];\n index = 0;\n while ((brk = exports.nextBreak(str, index)) < str.length) {\n res.push(str.slice(index, brk));\n index = brk;\n }\n if (index < str.length) {\n res.push(str.slice(index));\n }\n return res;\n };\n\n exports.countBreaks = function(str) {\n var brk, count, index;\n count = 0;\n index = 0;\n while ((brk = exports.nextBreak(str, index)) < str.length) {\n index = brk;\n count++;\n }\n if (index < str.length) {\n count++;\n }\n return count;\n };\n\n}).call(this);\n","// Generated by CoffeeScript 1.7.1\n(function() {\n var AI, AL, BA, BK, CB, CI_BRK, CJ, CP_BRK, CR, DI_BRK, ID, IN_BRK, LF, LineBreaker, NL, NS, PR_BRK, SA, SG, SP, UnicodeTrie, WJ, XX, base64, characterClasses, classTrie, data, fs, pairTable, _ref, _ref1;\n\n UnicodeTrie = require('unicode-trie');\n\n \n\n base64 = require('base64-js');\n\n _ref = require('./classes'), BK = _ref.BK, CR = _ref.CR, LF = _ref.LF, NL = _ref.NL, CB = _ref.CB, BA = _ref.BA, SP = _ref.SP, WJ = _ref.WJ, SP = _ref.SP, BK = _ref.BK, LF = _ref.LF, NL = _ref.NL, AI = _ref.AI, AL = _ref.AL, SA = _ref.SA, SG = _ref.SG, XX = _ref.XX, CJ = _ref.CJ, ID = _ref.ID, NS = _ref.NS, characterClasses = _ref.characterClasses;\n\n _ref1 = require('./pairs'), DI_BRK = _ref1.DI_BRK, IN_BRK = _ref1.IN_BRK, CI_BRK = _ref1.CI_BRK, CP_BRK = _ref1.CP_BRK, PR_BRK = _ref1.PR_BRK, pairTable = _ref1.pairTable;\n\n data = base64.toByteArray(\"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\");\n\n classTrie = new UnicodeTrie(data);\n\n LineBreaker = (function() {\n var Break, mapClass, mapFirst;\n\n function LineBreaker(string) {\n this.string = string;\n this.pos = 0;\n this.lastPos = 0;\n this.curClass = null;\n this.nextClass = null;\n }\n\n LineBreaker.prototype.nextCodePoint = function() {\n var code, next;\n code = this.string.charCodeAt(this.pos++);\n next = this.string.charCodeAt(this.pos);\n if ((0xd800 <= code && code <= 0xdbff) && (0xdc00 <= next && next <= 0xdfff)) {\n this.pos++;\n return ((code - 0xd800) * 0x400) + (next - 0xdc00) + 0x10000;\n }\n return code;\n };\n\n mapClass = function(c) {\n switch (c) {\n case AI:\n return AL;\n case SA:\n case SG:\n case XX:\n return AL;\n case CJ:\n return NS;\n default:\n return c;\n }\n };\n\n mapFirst = function(c) {\n switch (c) {\n case LF:\n case NL:\n return BK;\n case CB:\n return BA;\n case SP:\n return WJ;\n default:\n return c;\n }\n };\n\n LineBreaker.prototype.nextCharClass = function(first) {\n if (first == null) {\n first = false;\n }\n return mapClass(classTrie.get(this.nextCodePoint()));\n };\n\n Break = (function() {\n function Break(position, required) {\n this.position = position;\n this.required = required != null ? required : false;\n }\n\n return Break;\n\n })();\n\n LineBreaker.prototype.nextBreak = function() {\n var cur, lastClass, shouldBreak;\n if (this.curClass == null) {\n this.curClass = mapFirst(this.nextCharClass());\n }\n while (this.pos < this.string.length) {\n this.lastPos = this.pos;\n lastClass = this.nextClass;\n this.nextClass = this.nextCharClass();\n if (this.curClass === BK || (this.curClass === CR && this.nextClass !== LF)) {\n this.curClass = mapFirst(mapClass(this.nextClass));\n return new Break(this.lastPos, true);\n }\n cur = (function() {\n switch (this.nextClass) {\n case SP:\n return this.curClass;\n case BK:\n case LF:\n case NL:\n return BK;\n case CR:\n return CR;\n case CB:\n return BA;\n }\n }).call(this);\n if (cur != null) {\n this.curClass = cur;\n if (this.nextClass === CB) {\n return new Break(this.lastPos);\n }\n continue;\n }\n shouldBreak = false;\n switch (pairTable[this.curClass][this.nextClass]) {\n case DI_BRK:\n shouldBreak = true;\n break;\n case IN_BRK:\n shouldBreak = lastClass === SP;\n break;\n case CI_BRK:\n shouldBreak = lastClass === SP;\n if (!shouldBreak) {\n continue;\n }\n break;\n case CP_BRK:\n if (lastClass !== SP) {\n continue;\n }\n }\n this.curClass = this.nextClass;\n if (shouldBreak) {\n return new Break(this.lastPos);\n }\n }\n if (this.pos >= this.string.length) {\n if (this.lastPos < this.string.length) {\n this.lastPos = this.string.length;\n return new Break(this.string.length);\n } else {\n return null;\n }\n }\n };\n\n return LineBreaker;\n\n })();\n\n module.exports = LineBreaker;\n\n}).call(this);\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.Immutable = factory());\n}(this, function () { 'use strict';var SLICE$0 = Array.prototype.slice;\n\n function createClass(ctor, superClass) {\n if (superClass) {\n ctor.prototype = Object.create(superClass.prototype);\n }\n ctor.prototype.constructor = ctor;\n }\n\n function Iterable(value) {\n return isIterable(value) ? value : Seq(value);\n }\n\n\n createClass(KeyedIterable, Iterable);\n function KeyedIterable(value) {\n return isKeyed(value) ? value : KeyedSeq(value);\n }\n\n\n createClass(IndexedIterable, Iterable);\n function IndexedIterable(value) {\n return isIndexed(value) ? value : IndexedSeq(value);\n }\n\n\n createClass(SetIterable, Iterable);\n function SetIterable(value) {\n return isIterable(value) && !isAssociative(value) ? value : SetSeq(value);\n }\n\n\n\n function isIterable(maybeIterable) {\n return !!(maybeIterable && maybeIterable[IS_ITERABLE_SENTINEL]);\n }\n\n function isKeyed(maybeKeyed) {\n return !!(maybeKeyed && maybeKeyed[IS_KEYED_SENTINEL]);\n }\n\n function isIndexed(maybeIndexed) {\n return !!(maybeIndexed && maybeIndexed[IS_INDEXED_SENTINEL]);\n }\n\n function isAssociative(maybeAssociative) {\n return isKeyed(maybeAssociative) || isIndexed(maybeAssociative);\n }\n\n function isOrdered(maybeOrdered) {\n return !!(maybeOrdered && maybeOrdered[IS_ORDERED_SENTINEL]);\n }\n\n Iterable.isIterable = isIterable;\n Iterable.isKeyed = isKeyed;\n Iterable.isIndexed = isIndexed;\n Iterable.isAssociative = isAssociative;\n Iterable.isOrdered = isOrdered;\n\n Iterable.Keyed = KeyedIterable;\n Iterable.Indexed = IndexedIterable;\n Iterable.Set = SetIterable;\n\n\n var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@';\n var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@';\n var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@';\n var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@';\n\n // Used for setting prototype methods that IE8 chokes on.\n var DELETE = 'delete';\n\n // Constants describing the size of trie nodes.\n var SHIFT = 5; // Resulted in best performance after ______?\n var SIZE = 1 << SHIFT;\n var MASK = SIZE - 1;\n\n // A consistent shared value representing \"not set\" which equals nothing other\n // than itself, and nothing that could be provided externally.\n var NOT_SET = {};\n\n // Boolean references, Rough equivalent of `bool &`.\n var CHANGE_LENGTH = { value: false };\n var DID_ALTER = { value: false };\n\n function MakeRef(ref) {\n ref.value = false;\n return ref;\n }\n\n function SetRef(ref) {\n ref && (ref.value = true);\n }\n\n // A function which returns a value representing an \"owner\" for transient writes\n // to tries. The return value will only ever equal itself, and will not equal\n // the return of any subsequent call of this function.\n function OwnerID() {}\n\n // http://jsperf.com/copy-array-inline\n function arrCopy(arr, offset) {\n offset = offset || 0;\n var len = Math.max(0, arr.length - offset);\n var newArr = new Array(len);\n for (var ii = 0; ii < len; ii++) {\n newArr[ii] = arr[ii + offset];\n }\n return newArr;\n }\n\n function ensureSize(iter) {\n if (iter.size === undefined) {\n iter.size = iter.__iterate(returnTrue);\n }\n return iter.size;\n }\n\n function wrapIndex(iter, index) {\n // This implements \"is array index\" which the ECMAString spec defines as:\n //\n // A String property name P is an array index if and only if\n // ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal\n // to 2^32−1.\n //\n // http://www.ecma-international.org/ecma-262/6.0/#sec-array-exotic-objects\n if (typeof index !== 'number') {\n var uint32Index = index >>> 0; // N >>> 0 is shorthand for ToUint32\n if ('' + uint32Index !== index || uint32Index === 4294967295) {\n return NaN;\n }\n index = uint32Index;\n }\n return index < 0 ? ensureSize(iter) + index : index;\n }\n\n function returnTrue() {\n return true;\n }\n\n function wholeSlice(begin, end, size) {\n return (begin === 0 || (size !== undefined && begin <= -size)) &&\n (end === undefined || (size !== undefined && end >= size));\n }\n\n function resolveBegin(begin, size) {\n return resolveIndex(begin, size, 0);\n }\n\n function resolveEnd(end, size) {\n return resolveIndex(end, size, size);\n }\n\n function resolveIndex(index, size, defaultIndex) {\n return index === undefined ?\n defaultIndex :\n index < 0 ?\n Math.max(0, size + index) :\n size === undefined ?\n index :\n Math.min(size, index);\n }\n\n /* global Symbol */\n\n var ITERATE_KEYS = 0;\n var ITERATE_VALUES = 1;\n var ITERATE_ENTRIES = 2;\n\n var REAL_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator';\n\n var ITERATOR_SYMBOL = REAL_ITERATOR_SYMBOL || FAUX_ITERATOR_SYMBOL;\n\n\n function Iterator(next) {\n this.next = next;\n }\n\n Iterator.prototype.toString = function() {\n return '[Iterator]';\n };\n\n\n Iterator.KEYS = ITERATE_KEYS;\n Iterator.VALUES = ITERATE_VALUES;\n Iterator.ENTRIES = ITERATE_ENTRIES;\n\n Iterator.prototype.inspect =\n Iterator.prototype.toSource = function () { return this.toString(); }\n Iterator.prototype[ITERATOR_SYMBOL] = function () {\n return this;\n };\n\n\n function iteratorValue(type, k, v, iteratorResult) {\n var value = type === 0 ? k : type === 1 ? v : [k, v];\n iteratorResult ? (iteratorResult.value = value) : (iteratorResult = {\n value: value, done: false\n });\n return iteratorResult;\n }\n\n function iteratorDone() {\n return { value: undefined, done: true };\n }\n\n function hasIterator(maybeIterable) {\n return !!getIteratorFn(maybeIterable);\n }\n\n function isIterator(maybeIterator) {\n return maybeIterator && typeof maybeIterator.next === 'function';\n }\n\n function getIterator(iterable) {\n var iteratorFn = getIteratorFn(iterable);\n return iteratorFn && iteratorFn.call(iterable);\n }\n\n function getIteratorFn(iterable) {\n var iteratorFn = iterable && (\n (REAL_ITERATOR_SYMBOL && iterable[REAL_ITERATOR_SYMBOL]) ||\n iterable[FAUX_ITERATOR_SYMBOL]\n );\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n function isArrayLike(value) {\n return value && typeof value.length === 'number';\n }\n\n createClass(Seq, Iterable);\n function Seq(value) {\n return value === null || value === undefined ? emptySequence() :\n isIterable(value) ? value.toSeq() : seqFromValue(value);\n }\n\n Seq.of = function(/*...values*/) {\n return Seq(arguments);\n };\n\n Seq.prototype.toSeq = function() {\n return this;\n };\n\n Seq.prototype.toString = function() {\n return this.__toString('Seq {', '}');\n };\n\n Seq.prototype.cacheResult = function() {\n if (!this._cache && this.__iterateUncached) {\n this._cache = this.entrySeq().toArray();\n this.size = this._cache.length;\n }\n return this;\n };\n\n // abstract __iterateUncached(fn, reverse)\n\n Seq.prototype.__iterate = function(fn, reverse) {\n return seqIterate(this, fn, reverse, true);\n };\n\n // abstract __iteratorUncached(type, reverse)\n\n Seq.prototype.__iterator = function(type, reverse) {\n return seqIterator(this, type, reverse, true);\n };\n\n\n\n createClass(KeyedSeq, Seq);\n function KeyedSeq(value) {\n return value === null || value === undefined ?\n emptySequence().toKeyedSeq() :\n isIterable(value) ?\n (isKeyed(value) ? value.toSeq() : value.fromEntrySeq()) :\n keyedSeqFromValue(value);\n }\n\n KeyedSeq.prototype.toKeyedSeq = function() {\n return this;\n };\n\n\n\n createClass(IndexedSeq, Seq);\n function IndexedSeq(value) {\n return value === null || value === undefined ? emptySequence() :\n !isIterable(value) ? indexedSeqFromValue(value) :\n isKeyed(value) ? value.entrySeq() : value.toIndexedSeq();\n }\n\n IndexedSeq.of = function(/*...values*/) {\n return IndexedSeq(arguments);\n };\n\n IndexedSeq.prototype.toIndexedSeq = function() {\n return this;\n };\n\n IndexedSeq.prototype.toString = function() {\n return this.__toString('Seq [', ']');\n };\n\n IndexedSeq.prototype.__iterate = function(fn, reverse) {\n return seqIterate(this, fn, reverse, false);\n };\n\n IndexedSeq.prototype.__iterator = function(type, reverse) {\n return seqIterator(this, type, reverse, false);\n };\n\n\n\n createClass(SetSeq, Seq);\n function SetSeq(value) {\n return (\n value === null || value === undefined ? emptySequence() :\n !isIterable(value) ? indexedSeqFromValue(value) :\n isKeyed(value) ? value.entrySeq() : value\n ).toSetSeq();\n }\n\n SetSeq.of = function(/*...values*/) {\n return SetSeq(arguments);\n };\n\n SetSeq.prototype.toSetSeq = function() {\n return this;\n };\n\n\n\n Seq.isSeq = isSeq;\n Seq.Keyed = KeyedSeq;\n Seq.Set = SetSeq;\n Seq.Indexed = IndexedSeq;\n\n var IS_SEQ_SENTINEL = '@@__IMMUTABLE_SEQ__@@';\n\n Seq.prototype[IS_SEQ_SENTINEL] = true;\n\n\n\n createClass(ArraySeq, IndexedSeq);\n function ArraySeq(array) {\n this._array = array;\n this.size = array.length;\n }\n\n ArraySeq.prototype.get = function(index, notSetValue) {\n return this.has(index) ? this._array[wrapIndex(this, index)] : notSetValue;\n };\n\n ArraySeq.prototype.__iterate = function(fn, reverse) {\n var array = this._array;\n var maxIndex = array.length - 1;\n for (var ii = 0; ii <= maxIndex; ii++) {\n if (fn(array[reverse ? maxIndex - ii : ii], ii, this) === false) {\n return ii + 1;\n }\n }\n return ii;\n };\n\n ArraySeq.prototype.__iterator = function(type, reverse) {\n var array = this._array;\n var maxIndex = array.length - 1;\n var ii = 0;\n return new Iterator(function() \n {return ii > maxIndex ?\n iteratorDone() :\n iteratorValue(type, ii, array[reverse ? maxIndex - ii++ : ii++])}\n );\n };\n\n\n\n createClass(ObjectSeq, KeyedSeq);\n function ObjectSeq(object) {\n var keys = Object.keys(object);\n this._object = object;\n this._keys = keys;\n this.size = keys.length;\n }\n\n ObjectSeq.prototype.get = function(key, notSetValue) {\n if (notSetValue !== undefined && !this.has(key)) {\n return notSetValue;\n }\n return this._object[key];\n };\n\n ObjectSeq.prototype.has = function(key) {\n return this._object.hasOwnProperty(key);\n };\n\n ObjectSeq.prototype.__iterate = function(fn, reverse) {\n var object = this._object;\n var keys = this._keys;\n var maxIndex = keys.length - 1;\n for (var ii = 0; ii <= maxIndex; ii++) {\n var key = keys[reverse ? maxIndex - ii : ii];\n if (fn(object[key], key, this) === false) {\n return ii + 1;\n }\n }\n return ii;\n };\n\n ObjectSeq.prototype.__iterator = function(type, reverse) {\n var object = this._object;\n var keys = this._keys;\n var maxIndex = keys.length - 1;\n var ii = 0;\n return new Iterator(function() {\n var key = keys[reverse ? maxIndex - ii : ii];\n return ii++ > maxIndex ?\n iteratorDone() :\n iteratorValue(type, key, object[key]);\n });\n };\n\n ObjectSeq.prototype[IS_ORDERED_SENTINEL] = true;\n\n\n createClass(IterableSeq, IndexedSeq);\n function IterableSeq(iterable) {\n this._iterable = iterable;\n this.size = iterable.length || iterable.size;\n }\n\n IterableSeq.prototype.__iterateUncached = function(fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterable = this._iterable;\n var iterator = getIterator(iterable);\n var iterations = 0;\n if (isIterator(iterator)) {\n var step;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n }\n return iterations;\n };\n\n IterableSeq.prototype.__iteratorUncached = function(type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterable = this._iterable;\n var iterator = getIterator(iterable);\n if (!isIterator(iterator)) {\n return new Iterator(iteratorDone);\n }\n var iterations = 0;\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step : iteratorValue(type, iterations++, step.value);\n });\n };\n\n\n\n createClass(IteratorSeq, IndexedSeq);\n function IteratorSeq(iterator) {\n this._iterator = iterator;\n this._iteratorCache = [];\n }\n\n IteratorSeq.prototype.__iterateUncached = function(fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterator = this._iterator;\n var cache = this._iteratorCache;\n var iterations = 0;\n while (iterations < cache.length) {\n if (fn(cache[iterations], iterations++, this) === false) {\n return iterations;\n }\n }\n var step;\n while (!(step = iterator.next()).done) {\n var val = step.value;\n cache[iterations] = val;\n if (fn(val, iterations++, this) === false) {\n break;\n }\n }\n return iterations;\n };\n\n IteratorSeq.prototype.__iteratorUncached = function(type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = this._iterator;\n var cache = this._iteratorCache;\n var iterations = 0;\n return new Iterator(function() {\n if (iterations >= cache.length) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n cache[iterations] = step.value;\n }\n return iteratorValue(type, iterations, cache[iterations++]);\n });\n };\n\n\n\n\n // # pragma Helper functions\n\n function isSeq(maybeSeq) {\n return !!(maybeSeq && maybeSeq[IS_SEQ_SENTINEL]);\n }\n\n var EMPTY_SEQ;\n\n function emptySequence() {\n return EMPTY_SEQ || (EMPTY_SEQ = new ArraySeq([]));\n }\n\n function keyedSeqFromValue(value) {\n var seq =\n Array.isArray(value) ? new ArraySeq(value).fromEntrySeq() :\n isIterator(value) ? new IteratorSeq(value).fromEntrySeq() :\n hasIterator(value) ? new IterableSeq(value).fromEntrySeq() :\n typeof value === 'object' ? new ObjectSeq(value) :\n undefined;\n if (!seq) {\n throw new TypeError(\n 'Expected Array or iterable object of [k, v] entries, '+\n 'or keyed object: ' + value\n );\n }\n return seq;\n }\n\n function indexedSeqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (!seq) {\n throw new TypeError(\n 'Expected Array or iterable object of values: ' + value\n );\n }\n return seq;\n }\n\n function seqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value) ||\n (typeof value === 'object' && new ObjectSeq(value));\n if (!seq) {\n throw new TypeError(\n 'Expected Array or iterable object of values, or keyed object: ' + value\n );\n }\n return seq;\n }\n\n function maybeIndexedSeqFromValue(value) {\n return (\n isArrayLike(value) ? new ArraySeq(value) :\n isIterator(value) ? new IteratorSeq(value) :\n hasIterator(value) ? new IterableSeq(value) :\n undefined\n );\n }\n\n function seqIterate(seq, fn, reverse, useKeys) {\n var cache = seq._cache;\n if (cache) {\n var maxIndex = cache.length - 1;\n for (var ii = 0; ii <= maxIndex; ii++) {\n var entry = cache[reverse ? maxIndex - ii : ii];\n if (fn(entry[1], useKeys ? entry[0] : ii, seq) === false) {\n return ii + 1;\n }\n }\n return ii;\n }\n return seq.__iterateUncached(fn, reverse);\n }\n\n function seqIterator(seq, type, reverse, useKeys) {\n var cache = seq._cache;\n if (cache) {\n var maxIndex = cache.length - 1;\n var ii = 0;\n return new Iterator(function() {\n var entry = cache[reverse ? maxIndex - ii : ii];\n return ii++ > maxIndex ?\n iteratorDone() :\n iteratorValue(type, useKeys ? entry[0] : ii - 1, entry[1]);\n });\n }\n return seq.__iteratorUncached(type, reverse);\n }\n\n function fromJS(json, converter) {\n return converter ?\n fromJSWith(converter, json, '', {'': json}) :\n fromJSDefault(json);\n }\n\n function fromJSWith(converter, json, key, parentJSON) {\n if (Array.isArray(json)) {\n return converter.call(parentJSON, key, IndexedSeq(json).map(function(v, k) {return fromJSWith(converter, v, k, json)}));\n }\n if (isPlainObj(json)) {\n return converter.call(parentJSON, key, KeyedSeq(json).map(function(v, k) {return fromJSWith(converter, v, k, json)}));\n }\n return json;\n }\n\n function fromJSDefault(json) {\n if (Array.isArray(json)) {\n return IndexedSeq(json).map(fromJSDefault).toList();\n }\n if (isPlainObj(json)) {\n return KeyedSeq(json).map(fromJSDefault).toMap();\n }\n return json;\n }\n\n function isPlainObj(value) {\n return value && (value.constructor === Object || value.constructor === undefined);\n }\n\n /**\n * An extension of the \"same-value\" algorithm as [described for use by ES6 Map\n * and Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Key_equality)\n *\n * NaN is considered the same as NaN, however -0 and 0 are considered the same\n * value, which is different from the algorithm described by\n * [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).\n *\n * This is extended further to allow Objects to describe the values they\n * represent, by way of `valueOf` or `equals` (and `hashCode`).\n *\n * Note: because of this extension, the key equality of Immutable.Map and the\n * value equality of Immutable.Set will differ from ES6 Map and Set.\n *\n * ### Defining custom values\n *\n * The easiest way to describe the value an object represents is by implementing\n * `valueOf`. For example, `Date` represents a value by returning a unix\n * timestamp for `valueOf`:\n *\n * var date1 = new Date(1234567890000); // Fri Feb 13 2009 ...\n * var date2 = new Date(1234567890000);\n * date1.valueOf(); // 1234567890000\n * assert( date1 !== date2 );\n * assert( Immutable.is( date1, date2 ) );\n *\n * Note: overriding `valueOf` may have other implications if you use this object\n * where JavaScript expects a primitive, such as implicit string coercion.\n *\n * For more complex types, especially collections, implementing `valueOf` may\n * not be performant. An alternative is to implement `equals` and `hashCode`.\n *\n * `equals` takes another object, presumably of similar type, and returns true\n * if the it is equal. Equality is symmetrical, so the same result should be\n * returned if this and the argument are flipped.\n *\n * assert( a.equals(b) === b.equals(a) );\n *\n * `hashCode` returns a 32bit integer number representing the object which will\n * be used to determine how to store the value object in a Map or Set. You must\n * provide both or neither methods, one must not exist without the other.\n *\n * Also, an important relationship between these methods must be upheld: if two\n * values are equal, they *must* return the same hashCode. If the values are not\n * equal, they might have the same hashCode; this is called a hash collision,\n * and while undesirable for performance reasons, it is acceptable.\n *\n * if (a.equals(b)) {\n * assert( a.hashCode() === b.hashCode() );\n * }\n *\n * All Immutable collections implement `equals` and `hashCode`.\n *\n */\n function is(valueA, valueB) {\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n if (typeof valueA.valueOf === 'function' &&\n typeof valueB.valueOf === 'function') {\n valueA = valueA.valueOf();\n valueB = valueB.valueOf();\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n }\n if (typeof valueA.equals === 'function' &&\n typeof valueB.equals === 'function' &&\n valueA.equals(valueB)) {\n return true;\n }\n return false;\n }\n\n function deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (\n !isIterable(b) ||\n a.size !== undefined && b.size !== undefined && a.size !== b.size ||\n a.__hash !== undefined && b.__hash !== undefined && a.__hash !== b.__hash ||\n isKeyed(a) !== isKeyed(b) ||\n isIndexed(a) !== isIndexed(b) ||\n isOrdered(a) !== isOrdered(b)\n ) {\n return false;\n }\n\n if (a.size === 0 && b.size === 0) {\n return true;\n }\n\n var notAssociative = !isAssociative(a);\n\n if (isOrdered(a)) {\n var entries = a.entries();\n return b.every(function(v, k) {\n var entry = entries.next().value;\n return entry && is(entry[1], v) && (notAssociative || is(entry[0], k));\n }) && entries.next().done;\n }\n\n var flipped = false;\n\n if (a.size === undefined) {\n if (b.size === undefined) {\n if (typeof a.cacheResult === 'function') {\n a.cacheResult();\n }\n } else {\n flipped = true;\n var _ = a;\n a = b;\n b = _;\n }\n }\n\n var allEqual = true;\n var bSize = b.__iterate(function(v, k) {\n if (notAssociative ? !a.has(v) :\n flipped ? !is(v, a.get(k, NOT_SET)) : !is(a.get(k, NOT_SET), v)) {\n allEqual = false;\n return false;\n }\n });\n\n return allEqual && a.size === bSize;\n }\n\n createClass(Repeat, IndexedSeq);\n\n function Repeat(value, times) {\n if (!(this instanceof Repeat)) {\n return new Repeat(value, times);\n }\n this._value = value;\n this.size = times === undefined ? Infinity : Math.max(0, times);\n if (this.size === 0) {\n if (EMPTY_REPEAT) {\n return EMPTY_REPEAT;\n }\n EMPTY_REPEAT = this;\n }\n }\n\n Repeat.prototype.toString = function() {\n if (this.size === 0) {\n return 'Repeat []';\n }\n return 'Repeat [ ' + this._value + ' ' + this.size + ' times ]';\n };\n\n Repeat.prototype.get = function(index, notSetValue) {\n return this.has(index) ? this._value : notSetValue;\n };\n\n Repeat.prototype.includes = function(searchValue) {\n return is(this._value, searchValue);\n };\n\n Repeat.prototype.slice = function(begin, end) {\n var size = this.size;\n return wholeSlice(begin, end, size) ? this :\n new Repeat(this._value, resolveEnd(end, size) - resolveBegin(begin, size));\n };\n\n Repeat.prototype.reverse = function() {\n return this;\n };\n\n Repeat.prototype.indexOf = function(searchValue) {\n if (is(this._value, searchValue)) {\n return 0;\n }\n return -1;\n };\n\n Repeat.prototype.lastIndexOf = function(searchValue) {\n if (is(this._value, searchValue)) {\n return this.size;\n }\n return -1;\n };\n\n Repeat.prototype.__iterate = function(fn, reverse) {\n for (var ii = 0; ii < this.size; ii++) {\n if (fn(this._value, ii, this) === false) {\n return ii + 1;\n }\n }\n return ii;\n };\n\n Repeat.prototype.__iterator = function(type, reverse) {var this$0 = this;\n var ii = 0;\n return new Iterator(function() \n {return ii < this$0.size ? iteratorValue(type, ii++, this$0._value) : iteratorDone()}\n );\n };\n\n Repeat.prototype.equals = function(other) {\n return other instanceof Repeat ?\n is(this._value, other._value) :\n deepEqual(other);\n };\n\n\n var EMPTY_REPEAT;\n\n function invariant(condition, error) {\n if (!condition) throw new Error(error);\n }\n\n createClass(Range, IndexedSeq);\n\n function Range(start, end, step) {\n if (!(this instanceof Range)) {\n return new Range(start, end, step);\n }\n invariant(step !== 0, 'Cannot step a Range by 0');\n start = start || 0;\n if (end === undefined) {\n end = Infinity;\n }\n step = step === undefined ? 1 : Math.abs(step);\n if (end < start) {\n step = -step;\n }\n this._start = start;\n this._end = end;\n this._step = step;\n this.size = Math.max(0, Math.ceil((end - start) / step - 1) + 1);\n if (this.size === 0) {\n if (EMPTY_RANGE) {\n return EMPTY_RANGE;\n }\n EMPTY_RANGE = this;\n }\n }\n\n Range.prototype.toString = function() {\n if (this.size === 0) {\n return 'Range []';\n }\n return 'Range [ ' +\n this._start + '...' + this._end +\n (this._step !== 1 ? ' by ' + this._step : '') +\n ' ]';\n };\n\n Range.prototype.get = function(index, notSetValue) {\n return this.has(index) ?\n this._start + wrapIndex(this, index) * this._step :\n notSetValue;\n };\n\n Range.prototype.includes = function(searchValue) {\n var possibleIndex = (searchValue - this._start) / this._step;\n return possibleIndex >= 0 &&\n possibleIndex < this.size &&\n possibleIndex === Math.floor(possibleIndex);\n };\n\n Range.prototype.slice = function(begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n begin = resolveBegin(begin, this.size);\n end = resolveEnd(end, this.size);\n if (end <= begin) {\n return new Range(0, 0);\n }\n return new Range(this.get(begin, this._end), this.get(end, this._end), this._step);\n };\n\n Range.prototype.indexOf = function(searchValue) {\n var offsetValue = searchValue - this._start;\n if (offsetValue % this._step === 0) {\n var index = offsetValue / this._step;\n if (index >= 0 && index < this.size) {\n return index\n }\n }\n return -1;\n };\n\n Range.prototype.lastIndexOf = function(searchValue) {\n return this.indexOf(searchValue);\n };\n\n Range.prototype.__iterate = function(fn, reverse) {\n var maxIndex = this.size - 1;\n var step = this._step;\n var value = reverse ? this._start + maxIndex * step : this._start;\n for (var ii = 0; ii <= maxIndex; ii++) {\n if (fn(value, ii, this) === false) {\n return ii + 1;\n }\n value += reverse ? -step : step;\n }\n return ii;\n };\n\n Range.prototype.__iterator = function(type, reverse) {\n var maxIndex = this.size - 1;\n var step = this._step;\n var value = reverse ? this._start + maxIndex * step : this._start;\n var ii = 0;\n return new Iterator(function() {\n var v = value;\n value += reverse ? -step : step;\n return ii > maxIndex ? iteratorDone() : iteratorValue(type, ii++, v);\n });\n };\n\n Range.prototype.equals = function(other) {\n return other instanceof Range ?\n this._start === other._start &&\n this._end === other._end &&\n this._step === other._step :\n deepEqual(this, other);\n };\n\n\n var EMPTY_RANGE;\n\n createClass(Collection, Iterable);\n function Collection() {\n throw TypeError('Abstract');\n }\n\n\n createClass(KeyedCollection, Collection);function KeyedCollection() {}\n\n createClass(IndexedCollection, Collection);function IndexedCollection() {}\n\n createClass(SetCollection, Collection);function SetCollection() {}\n\n\n Collection.Keyed = KeyedCollection;\n Collection.Indexed = IndexedCollection;\n Collection.Set = SetCollection;\n\n var imul =\n typeof Math.imul === 'function' && Math.imul(0xffffffff, 2) === -2 ?\n Math.imul :\n function imul(a, b) {\n a = a | 0; // int\n b = b | 0; // int\n var c = a & 0xffff;\n var d = b & 0xffff;\n // Shift by 0 fixes the sign on the high part.\n return (c * d) + ((((a >>> 16) * d + c * (b >>> 16)) << 16) >>> 0) | 0; // int\n };\n\n // v8 has an optimization for storing 31-bit signed numbers.\n // Values which have either 00 or 11 as the high order bits qualify.\n // This function drops the highest order bit in a signed number, maintaining\n // the sign bit.\n function smi(i32) {\n return ((i32 >>> 1) & 0x40000000) | (i32 & 0xBFFFFFFF);\n }\n\n function hash(o) {\n if (o === false || o === null || o === undefined) {\n return 0;\n }\n if (typeof o.valueOf === 'function') {\n o = o.valueOf();\n if (o === false || o === null || o === undefined) {\n return 0;\n }\n }\n if (o === true) {\n return 1;\n }\n var type = typeof o;\n if (type === 'number') {\n if (o !== o || o === Infinity) {\n return 0;\n }\n var h = o | 0;\n if (h !== o) {\n h ^= o * 0xFFFFFFFF;\n }\n while (o > 0xFFFFFFFF) {\n o /= 0xFFFFFFFF;\n h ^= o;\n }\n return smi(h);\n }\n if (type === 'string') {\n return o.length > STRING_HASH_CACHE_MIN_STRLEN ? cachedHashString(o) : hashString(o);\n }\n if (typeof o.hashCode === 'function') {\n return o.hashCode();\n }\n if (type === 'object') {\n return hashJSObj(o);\n }\n if (typeof o.toString === 'function') {\n return hashString(o.toString());\n }\n throw new Error('Value type ' + type + ' cannot be hashed.');\n }\n\n function cachedHashString(string) {\n var hash = stringHashCache[string];\n if (hash === undefined) {\n hash = hashString(string);\n if (STRING_HASH_CACHE_SIZE === STRING_HASH_CACHE_MAX_SIZE) {\n STRING_HASH_CACHE_SIZE = 0;\n stringHashCache = {};\n }\n STRING_HASH_CACHE_SIZE++;\n stringHashCache[string] = hash;\n }\n return hash;\n }\n\n // http://jsperf.com/hashing-strings\n function hashString(string) {\n // This is the hash from JVM\n // The hash code for a string is computed as\n // s[0] * 31 ^ (n - 1) + s[1] * 31 ^ (n - 2) + ... + s[n - 1],\n // where s[i] is the ith character of the string and n is the length of\n // the string. We \"mod\" the result to make it between 0 (inclusive) and 2^31\n // (exclusive) by dropping high bits.\n var hash = 0;\n for (var ii = 0; ii < string.length; ii++) {\n hash = 31 * hash + string.charCodeAt(ii) | 0;\n }\n return smi(hash);\n }\n\n function hashJSObj(obj) {\n var hash;\n if (usingWeakMap) {\n hash = weakMap.get(obj);\n if (hash !== undefined) {\n return hash;\n }\n }\n\n hash = obj[UID_HASH_KEY];\n if (hash !== undefined) {\n return hash;\n }\n\n if (!canDefineProperty) {\n hash = obj.propertyIsEnumerable && obj.propertyIsEnumerable[UID_HASH_KEY];\n if (hash !== undefined) {\n return hash;\n }\n\n hash = getIENodeHash(obj);\n if (hash !== undefined) {\n return hash;\n }\n }\n\n hash = ++objHashUID;\n if (objHashUID & 0x40000000) {\n objHashUID = 0;\n }\n\n if (usingWeakMap) {\n weakMap.set(obj, hash);\n } else if (isExtensible !== undefined && isExtensible(obj) === false) {\n throw new Error('Non-extensible objects are not allowed as keys.');\n } else if (canDefineProperty) {\n Object.defineProperty(obj, UID_HASH_KEY, {\n 'enumerable': false,\n 'configurable': false,\n 'writable': false,\n 'value': hash\n });\n } else if (obj.propertyIsEnumerable !== undefined &&\n obj.propertyIsEnumerable === obj.constructor.prototype.propertyIsEnumerable) {\n // Since we can't define a non-enumerable property on the object\n // we'll hijack one of the less-used non-enumerable properties to\n // save our hash on it. Since this is a function it will not show up in\n // `JSON.stringify` which is what we want.\n obj.propertyIsEnumerable = function() {\n return this.constructor.prototype.propertyIsEnumerable.apply(this, arguments);\n };\n obj.propertyIsEnumerable[UID_HASH_KEY] = hash;\n } else if (obj.nodeType !== undefined) {\n // At this point we couldn't get the IE `uniqueID` to use as a hash\n // and we couldn't use a non-enumerable property to exploit the\n // dontEnum bug so we simply add the `UID_HASH_KEY` on the node\n // itself.\n obj[UID_HASH_KEY] = hash;\n } else {\n throw new Error('Unable to set a non-enumerable property on object.');\n }\n\n return hash;\n }\n\n // Get references to ES5 object methods.\n var isExtensible = Object.isExtensible;\n\n // True if Object.defineProperty works as expected. IE8 fails this test.\n var canDefineProperty = (function() {\n try {\n Object.defineProperty({}, '@', {});\n return true;\n } catch (e) {\n return false;\n }\n }());\n\n // IE has a `uniqueID` property on DOM nodes. We can construct the hash from it\n // and avoid memory leaks from the IE cloneNode bug.\n function getIENodeHash(node) {\n if (node && node.nodeType > 0) {\n switch (node.nodeType) {\n case 1: // Element\n return node.uniqueID;\n case 9: // Document\n return node.documentElement && node.documentElement.uniqueID;\n }\n }\n }\n\n // If possible, use a WeakMap.\n var usingWeakMap = typeof WeakMap === 'function';\n var weakMap;\n if (usingWeakMap) {\n weakMap = new WeakMap();\n }\n\n var objHashUID = 0;\n\n var UID_HASH_KEY = '__immutablehash__';\n if (typeof Symbol === 'function') {\n UID_HASH_KEY = Symbol(UID_HASH_KEY);\n }\n\n var STRING_HASH_CACHE_MIN_STRLEN = 16;\n var STRING_HASH_CACHE_MAX_SIZE = 255;\n var STRING_HASH_CACHE_SIZE = 0;\n var stringHashCache = {};\n\n function assertNotInfinite(size) {\n invariant(\n size !== Infinity,\n 'Cannot perform this action with an infinite size.'\n );\n }\n\n createClass(Map, KeyedCollection);\n\n // @pragma Construction\n\n function Map(value) {\n return value === null || value === undefined ? emptyMap() :\n isMap(value) && !isOrdered(value) ? value :\n emptyMap().withMutations(function(map ) {\n var iter = KeyedIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v, k) {return map.set(k, v)});\n });\n }\n\n Map.of = function() {var keyValues = SLICE$0.call(arguments, 0);\n return emptyMap().withMutations(function(map ) {\n for (var i = 0; i < keyValues.length; i += 2) {\n if (i + 1 >= keyValues.length) {\n throw new Error('Missing value for key: ' + keyValues[i]);\n }\n map.set(keyValues[i], keyValues[i + 1]);\n }\n });\n };\n\n Map.prototype.toString = function() {\n return this.__toString('Map {', '}');\n };\n\n // @pragma Access\n\n Map.prototype.get = function(k, notSetValue) {\n return this._root ?\n this._root.get(0, undefined, k, notSetValue) :\n notSetValue;\n };\n\n // @pragma Modification\n\n Map.prototype.set = function(k, v) {\n return updateMap(this, k, v);\n };\n\n Map.prototype.setIn = function(keyPath, v) {\n return this.updateIn(keyPath, NOT_SET, function() {return v});\n };\n\n Map.prototype.remove = function(k) {\n return updateMap(this, k, NOT_SET);\n };\n\n Map.prototype.deleteIn = function(keyPath) {\n return this.updateIn(keyPath, function() {return NOT_SET});\n };\n\n Map.prototype.update = function(k, notSetValue, updater) {\n return arguments.length === 1 ?\n k(this) :\n this.updateIn([k], notSetValue, updater);\n };\n\n Map.prototype.updateIn = function(keyPath, notSetValue, updater) {\n if (!updater) {\n updater = notSetValue;\n notSetValue = undefined;\n }\n var updatedValue = updateInDeepMap(\n this,\n forceIterator(keyPath),\n notSetValue,\n updater\n );\n return updatedValue === NOT_SET ? undefined : updatedValue;\n };\n\n Map.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._root = null;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyMap();\n };\n\n // @pragma Composition\n\n Map.prototype.merge = function(/*...iters*/) {\n return mergeIntoMapWith(this, undefined, arguments);\n };\n\n Map.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoMapWith(this, merger, iters);\n };\n\n Map.prototype.mergeIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1);\n return this.updateIn(\n keyPath,\n emptyMap(),\n function(m ) {return typeof m.merge === 'function' ?\n m.merge.apply(m, iters) :\n iters[iters.length - 1]}\n );\n };\n\n Map.prototype.mergeDeep = function(/*...iters*/) {\n return mergeIntoMapWith(this, deepMerger, arguments);\n };\n\n Map.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoMapWith(this, deepMergerWith(merger), iters);\n };\n\n Map.prototype.mergeDeepIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1);\n return this.updateIn(\n keyPath,\n emptyMap(),\n function(m ) {return typeof m.mergeDeep === 'function' ?\n m.mergeDeep.apply(m, iters) :\n iters[iters.length - 1]}\n );\n };\n\n Map.prototype.sort = function(comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator));\n };\n\n Map.prototype.sortBy = function(mapper, comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator, mapper));\n };\n\n // @pragma Mutability\n\n Map.prototype.withMutations = function(fn) {\n var mutable = this.asMutable();\n fn(mutable);\n return mutable.wasAltered() ? mutable.__ensureOwner(this.__ownerID) : this;\n };\n\n Map.prototype.asMutable = function() {\n return this.__ownerID ? this : this.__ensureOwner(new OwnerID());\n };\n\n Map.prototype.asImmutable = function() {\n return this.__ensureOwner();\n };\n\n Map.prototype.wasAltered = function() {\n return this.__altered;\n };\n\n Map.prototype.__iterator = function(type, reverse) {\n return new MapIterator(this, type, reverse);\n };\n\n Map.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n var iterations = 0;\n this._root && this._root.iterate(function(entry ) {\n iterations++;\n return fn(entry[1], entry[0], this$0);\n }, reverse);\n return iterations;\n };\n\n Map.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeMap(this.size, this._root, ownerID, this.__hash);\n };\n\n\n function isMap(maybeMap) {\n return !!(maybeMap && maybeMap[IS_MAP_SENTINEL]);\n }\n\n Map.isMap = isMap;\n\n var IS_MAP_SENTINEL = '@@__IMMUTABLE_MAP__@@';\n\n var MapPrototype = Map.prototype;\n MapPrototype[IS_MAP_SENTINEL] = true;\n MapPrototype[DELETE] = MapPrototype.remove;\n MapPrototype.removeIn = MapPrototype.deleteIn;\n\n\n // #pragma Trie Nodes\n\n\n\n function ArrayMapNode(ownerID, entries) {\n this.ownerID = ownerID;\n this.entries = entries;\n }\n\n ArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n };\n\n ArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n\n var entries = this.entries;\n var idx = 0;\n for (var len = entries.length; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && entries.length === 1) {\n return; // undefined\n }\n\n if (!exists && !removed && entries.length >= MAX_ARRAY_MAP_SIZE) {\n return createNodes(ownerID, entries, key, value);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new ArrayMapNode(ownerID, newEntries);\n };\n\n\n\n\n function BitmapIndexedNode(ownerID, bitmap, nodes) {\n this.ownerID = ownerID;\n this.bitmap = bitmap;\n this.nodes = nodes;\n }\n\n BitmapIndexedNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var bit = (1 << ((shift === 0 ? keyHash : keyHash >>> shift) & MASK));\n var bitmap = this.bitmap;\n return (bitmap & bit) === 0 ? notSetValue :\n this.nodes[popCount(bitmap & (bit - 1))].get(shift + SHIFT, keyHash, key, notSetValue);\n };\n\n BitmapIndexedNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var keyHashFrag = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var bit = 1 << keyHashFrag;\n var bitmap = this.bitmap;\n var exists = (bitmap & bit) !== 0;\n\n if (!exists && value === NOT_SET) {\n return this;\n }\n\n var idx = popCount(bitmap & (bit - 1));\n var nodes = this.nodes;\n var node = exists ? nodes[idx] : undefined;\n var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter);\n\n if (newNode === node) {\n return this;\n }\n\n if (!exists && newNode && nodes.length >= MAX_BITMAP_INDEXED_SIZE) {\n return expandNodes(ownerID, nodes, bitmap, keyHashFrag, newNode);\n }\n\n if (exists && !newNode && nodes.length === 2 && isLeafNode(nodes[idx ^ 1])) {\n return nodes[idx ^ 1];\n }\n\n if (exists && newNode && nodes.length === 1 && isLeafNode(newNode)) {\n return newNode;\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newBitmap = exists ? newNode ? bitmap : bitmap ^ bit : bitmap | bit;\n var newNodes = exists ? newNode ?\n setIn(nodes, idx, newNode, isEditable) :\n spliceOut(nodes, idx, isEditable) :\n spliceIn(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.bitmap = newBitmap;\n this.nodes = newNodes;\n return this;\n }\n\n return new BitmapIndexedNode(ownerID, newBitmap, newNodes);\n };\n\n\n\n\n function HashArrayMapNode(ownerID, count, nodes) {\n this.ownerID = ownerID;\n this.count = count;\n this.nodes = nodes;\n }\n\n HashArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var node = this.nodes[idx];\n return node ? node.get(shift + SHIFT, keyHash, key, notSetValue) : notSetValue;\n };\n\n HashArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var removed = value === NOT_SET;\n var nodes = this.nodes;\n var node = nodes[idx];\n\n if (removed && !node) {\n return this;\n }\n\n var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter);\n if (newNode === node) {\n return this;\n }\n\n var newCount = this.count;\n if (!node) {\n newCount++;\n } else if (!newNode) {\n newCount--;\n if (newCount < MIN_HASH_ARRAY_MAP_SIZE) {\n return packNodes(ownerID, nodes, newCount, idx);\n }\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newNodes = setIn(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.count = newCount;\n this.nodes = newNodes;\n return this;\n }\n\n return new HashArrayMapNode(ownerID, newCount, newNodes);\n };\n\n\n\n\n function HashCollisionNode(ownerID, keyHash, entries) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entries = entries;\n }\n\n HashCollisionNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n };\n\n HashCollisionNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n\n var removed = value === NOT_SET;\n\n if (keyHash !== this.keyHash) {\n if (removed) {\n return this;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, keyHash, [key, value]);\n }\n\n var entries = this.entries;\n var idx = 0;\n for (var len = entries.length; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && len === 2) {\n return new ValueNode(ownerID, this.keyHash, entries[idx ^ 1]);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new HashCollisionNode(ownerID, this.keyHash, newEntries);\n };\n\n\n\n\n function ValueNode(ownerID, keyHash, entry) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entry = entry;\n }\n\n ValueNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n return is(key, this.entry[0]) ? this.entry[1] : notSetValue;\n };\n\n ValueNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n var keyMatch = is(key, this.entry[0]);\n if (keyMatch ? value === this.entry[1] : removed) {\n return this;\n }\n\n SetRef(didAlter);\n\n if (removed) {\n SetRef(didChangeSize);\n return; // undefined\n }\n\n if (keyMatch) {\n if (ownerID && ownerID === this.ownerID) {\n this.entry[1] = value;\n return this;\n }\n return new ValueNode(ownerID, this.keyHash, [key, value]);\n }\n\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, hash(key), [key, value]);\n };\n\n\n\n // #pragma Iterators\n\n ArrayMapNode.prototype.iterate =\n HashCollisionNode.prototype.iterate = function (fn, reverse) {\n var entries = this.entries;\n for (var ii = 0, maxIndex = entries.length - 1; ii <= maxIndex; ii++) {\n if (fn(entries[reverse ? maxIndex - ii : ii]) === false) {\n return false;\n }\n }\n }\n\n BitmapIndexedNode.prototype.iterate =\n HashArrayMapNode.prototype.iterate = function (fn, reverse) {\n var nodes = this.nodes;\n for (var ii = 0, maxIndex = nodes.length - 1; ii <= maxIndex; ii++) {\n var node = nodes[reverse ? maxIndex - ii : ii];\n if (node && node.iterate(fn, reverse) === false) {\n return false;\n }\n }\n }\n\n ValueNode.prototype.iterate = function (fn, reverse) {\n return fn(this.entry);\n }\n\n createClass(MapIterator, Iterator);\n\n function MapIterator(map, type, reverse) {\n this._type = type;\n this._reverse = reverse;\n this._stack = map._root && mapIteratorFrame(map._root);\n }\n\n MapIterator.prototype.next = function() {\n var type = this._type;\n var stack = this._stack;\n while (stack) {\n var node = stack.node;\n var index = stack.index++;\n var maxIndex;\n if (node.entry) {\n if (index === 0) {\n return mapIteratorValue(type, node.entry);\n }\n } else if (node.entries) {\n maxIndex = node.entries.length - 1;\n if (index <= maxIndex) {\n return mapIteratorValue(type, node.entries[this._reverse ? maxIndex - index : index]);\n }\n } else {\n maxIndex = node.nodes.length - 1;\n if (index <= maxIndex) {\n var subNode = node.nodes[this._reverse ? maxIndex - index : index];\n if (subNode) {\n if (subNode.entry) {\n return mapIteratorValue(type, subNode.entry);\n }\n stack = this._stack = mapIteratorFrame(subNode, stack);\n }\n continue;\n }\n }\n stack = this._stack = this._stack.__prev;\n }\n return iteratorDone();\n };\n\n\n function mapIteratorValue(type, entry) {\n return iteratorValue(type, entry[0], entry[1]);\n }\n\n function mapIteratorFrame(node, prev) {\n return {\n node: node,\n index: 0,\n __prev: prev\n };\n }\n\n function makeMap(size, root, ownerID, hash) {\n var map = Object.create(MapPrototype);\n map.size = size;\n map._root = root;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n }\n\n var EMPTY_MAP;\n function emptyMap() {\n return EMPTY_MAP || (EMPTY_MAP = makeMap(0));\n }\n\n function updateMap(map, k, v) {\n var newRoot;\n var newSize;\n if (!map._root) {\n if (v === NOT_SET) {\n return map;\n }\n newSize = 1;\n newRoot = new ArrayMapNode(map.__ownerID, [[k, v]]);\n } else {\n var didChangeSize = MakeRef(CHANGE_LENGTH);\n var didAlter = MakeRef(DID_ALTER);\n newRoot = updateNode(map._root, map.__ownerID, 0, undefined, k, v, didChangeSize, didAlter);\n if (!didAlter.value) {\n return map;\n }\n newSize = map.size + (didChangeSize.value ? v === NOT_SET ? -1 : 1 : 0);\n }\n if (map.__ownerID) {\n map.size = newSize;\n map._root = newRoot;\n map.__hash = undefined;\n map.__altered = true;\n return map;\n }\n return newRoot ? makeMap(newSize, newRoot) : emptyMap();\n }\n\n function updateNode(node, ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (!node) {\n if (value === NOT_SET) {\n return node;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return new ValueNode(ownerID, keyHash, [key, value]);\n }\n return node.update(ownerID, shift, keyHash, key, value, didChangeSize, didAlter);\n }\n\n function isLeafNode(node) {\n return node.constructor === ValueNode || node.constructor === HashCollisionNode;\n }\n\n function mergeIntoNode(node, ownerID, shift, keyHash, entry) {\n if (node.keyHash === keyHash) {\n return new HashCollisionNode(ownerID, keyHash, [node.entry, entry]);\n }\n\n var idx1 = (shift === 0 ? node.keyHash : node.keyHash >>> shift) & MASK;\n var idx2 = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n\n var newNode;\n var nodes = idx1 === idx2 ?\n [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)] :\n ((newNode = new ValueNode(ownerID, keyHash, entry)), idx1 < idx2 ? [node, newNode] : [newNode, node]);\n\n return new BitmapIndexedNode(ownerID, (1 << idx1) | (1 << idx2), nodes);\n }\n\n function createNodes(ownerID, entries, key, value) {\n if (!ownerID) {\n ownerID = new OwnerID();\n }\n var node = new ValueNode(ownerID, hash(key), [key, value]);\n for (var ii = 0; ii < entries.length; ii++) {\n var entry = entries[ii];\n node = node.update(ownerID, 0, undefined, entry[0], entry[1]);\n }\n return node;\n }\n\n function packNodes(ownerID, nodes, count, excluding) {\n var bitmap = 0;\n var packedII = 0;\n var packedNodes = new Array(count);\n for (var ii = 0, bit = 1, len = nodes.length; ii < len; ii++, bit <<= 1) {\n var node = nodes[ii];\n if (node !== undefined && ii !== excluding) {\n bitmap |= bit;\n packedNodes[packedII++] = node;\n }\n }\n return new BitmapIndexedNode(ownerID, bitmap, packedNodes);\n }\n\n function expandNodes(ownerID, nodes, bitmap, including, node) {\n var count = 0;\n var expandedNodes = new Array(SIZE);\n for (var ii = 0; bitmap !== 0; ii++, bitmap >>>= 1) {\n expandedNodes[ii] = bitmap & 1 ? nodes[count++] : undefined;\n }\n expandedNodes[including] = node;\n return new HashArrayMapNode(ownerID, count + 1, expandedNodes);\n }\n\n function mergeIntoMapWith(map, merger, iterables) {\n var iters = [];\n for (var ii = 0; ii < iterables.length; ii++) {\n var value = iterables[ii];\n var iter = KeyedIterable(value);\n if (!isIterable(value)) {\n iter = iter.map(function(v ) {return fromJS(v)});\n }\n iters.push(iter);\n }\n return mergeIntoCollectionWith(map, merger, iters);\n }\n\n function deepMerger(existing, value, key) {\n return existing && existing.mergeDeep && isIterable(value) ?\n existing.mergeDeep(value) :\n is(existing, value) ? existing : value;\n }\n\n function deepMergerWith(merger) {\n return function(existing, value, key) {\n if (existing && existing.mergeDeepWith && isIterable(value)) {\n return existing.mergeDeepWith(merger, value);\n }\n var nextValue = merger(existing, value, key);\n return is(existing, nextValue) ? existing : nextValue;\n };\n }\n\n function mergeIntoCollectionWith(collection, merger, iters) {\n iters = iters.filter(function(x ) {return x.size !== 0});\n if (iters.length === 0) {\n return collection;\n }\n if (collection.size === 0 && !collection.__ownerID && iters.length === 1) {\n return collection.constructor(iters[0]);\n }\n return collection.withMutations(function(collection ) {\n var mergeIntoMap = merger ?\n function(value, key) {\n collection.update(key, NOT_SET, function(existing )\n {return existing === NOT_SET ? value : merger(existing, value, key)}\n );\n } :\n function(value, key) {\n collection.set(key, value);\n }\n for (var ii = 0; ii < iters.length; ii++) {\n iters[ii].forEach(mergeIntoMap);\n }\n });\n }\n\n function updateInDeepMap(existing, keyPathIter, notSetValue, updater) {\n var isNotSet = existing === NOT_SET;\n var step = keyPathIter.next();\n if (step.done) {\n var existingValue = isNotSet ? notSetValue : existing;\n var newValue = updater(existingValue);\n return newValue === existingValue ? existing : newValue;\n }\n invariant(\n isNotSet || (existing && existing.set),\n 'invalid keyPath'\n );\n var key = step.value;\n var nextExisting = isNotSet ? NOT_SET : existing.get(key, NOT_SET);\n var nextUpdated = updateInDeepMap(\n nextExisting,\n keyPathIter,\n notSetValue,\n updater\n );\n return nextUpdated === nextExisting ? existing :\n nextUpdated === NOT_SET ? existing.remove(key) :\n (isNotSet ? emptyMap() : existing).set(key, nextUpdated);\n }\n\n function popCount(x) {\n x = x - ((x >> 1) & 0x55555555);\n x = (x & 0x33333333) + ((x >> 2) & 0x33333333);\n x = (x + (x >> 4)) & 0x0f0f0f0f;\n x = x + (x >> 8);\n x = x + (x >> 16);\n return x & 0x7f;\n }\n\n function setIn(array, idx, val, canEdit) {\n var newArray = canEdit ? array : arrCopy(array);\n newArray[idx] = val;\n return newArray;\n }\n\n function spliceIn(array, idx, val, canEdit) {\n var newLen = array.length + 1;\n if (canEdit && idx + 1 === newLen) {\n array[idx] = val;\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n newArray[ii] = val;\n after = -1;\n } else {\n newArray[ii] = array[ii + after];\n }\n }\n return newArray;\n }\n\n function spliceOut(array, idx, canEdit) {\n var newLen = array.length - 1;\n if (canEdit && idx === newLen) {\n array.pop();\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n after = 1;\n }\n newArray[ii] = array[ii + after];\n }\n return newArray;\n }\n\n var MAX_ARRAY_MAP_SIZE = SIZE / 4;\n var MAX_BITMAP_INDEXED_SIZE = SIZE / 2;\n var MIN_HASH_ARRAY_MAP_SIZE = SIZE / 4;\n\n createClass(List, IndexedCollection);\n\n // @pragma Construction\n\n function List(value) {\n var empty = emptyList();\n if (value === null || value === undefined) {\n return empty;\n }\n if (isList(value)) {\n return value;\n }\n var iter = IndexedIterable(value);\n var size = iter.size;\n if (size === 0) {\n return empty;\n }\n assertNotInfinite(size);\n if (size > 0 && size < SIZE) {\n return makeList(0, size, SHIFT, null, new VNode(iter.toArray()));\n }\n return empty.withMutations(function(list ) {\n list.setSize(size);\n iter.forEach(function(v, i) {return list.set(i, v)});\n });\n }\n\n List.of = function(/*...values*/) {\n return this(arguments);\n };\n\n List.prototype.toString = function() {\n return this.__toString('List [', ']');\n };\n\n // @pragma Access\n\n List.prototype.get = function(index, notSetValue) {\n index = wrapIndex(this, index);\n if (index >= 0 && index < this.size) {\n index += this._origin;\n var node = listNodeFor(this, index);\n return node && node.array[index & MASK];\n }\n return notSetValue;\n };\n\n // @pragma Modification\n\n List.prototype.set = function(index, value) {\n return updateList(this, index, value);\n };\n\n List.prototype.remove = function(index) {\n return !this.has(index) ? this :\n index === 0 ? this.shift() :\n index === this.size - 1 ? this.pop() :\n this.splice(index, 1);\n };\n\n List.prototype.insert = function(index, value) {\n return this.splice(index, 0, value);\n };\n\n List.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = this._origin = this._capacity = 0;\n this._level = SHIFT;\n this._root = this._tail = null;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyList();\n };\n\n List.prototype.push = function(/*...values*/) {\n var values = arguments;\n var oldSize = this.size;\n return this.withMutations(function(list ) {\n setListBounds(list, 0, oldSize + values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(oldSize + ii, values[ii]);\n }\n });\n };\n\n List.prototype.pop = function() {\n return setListBounds(this, 0, -1);\n };\n\n List.prototype.unshift = function(/*...values*/) {\n var values = arguments;\n return this.withMutations(function(list ) {\n setListBounds(list, -values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(ii, values[ii]);\n }\n });\n };\n\n List.prototype.shift = function() {\n return setListBounds(this, 1);\n };\n\n // @pragma Composition\n\n List.prototype.merge = function(/*...iters*/) {\n return mergeIntoListWith(this, undefined, arguments);\n };\n\n List.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoListWith(this, merger, iters);\n };\n\n List.prototype.mergeDeep = function(/*...iters*/) {\n return mergeIntoListWith(this, deepMerger, arguments);\n };\n\n List.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoListWith(this, deepMergerWith(merger), iters);\n };\n\n List.prototype.setSize = function(size) {\n return setListBounds(this, 0, size);\n };\n\n // @pragma Iteration\n\n List.prototype.slice = function(begin, end) {\n var size = this.size;\n if (wholeSlice(begin, end, size)) {\n return this;\n }\n return setListBounds(\n this,\n resolveBegin(begin, size),\n resolveEnd(end, size)\n );\n };\n\n List.prototype.__iterator = function(type, reverse) {\n var index = 0;\n var values = iterateList(this, reverse);\n return new Iterator(function() {\n var value = values();\n return value === DONE ?\n iteratorDone() :\n iteratorValue(type, index++, value);\n });\n };\n\n List.prototype.__iterate = function(fn, reverse) {\n var index = 0;\n var values = iterateList(this, reverse);\n var value;\n while ((value = values()) !== DONE) {\n if (fn(value, index++, this) === false) {\n break;\n }\n }\n return index;\n };\n\n List.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n this.__ownerID = ownerID;\n return this;\n }\n return makeList(this._origin, this._capacity, this._level, this._root, this._tail, ownerID, this.__hash);\n };\n\n\n function isList(maybeList) {\n return !!(maybeList && maybeList[IS_LIST_SENTINEL]);\n }\n\n List.isList = isList;\n\n var IS_LIST_SENTINEL = '@@__IMMUTABLE_LIST__@@';\n\n var ListPrototype = List.prototype;\n ListPrototype[IS_LIST_SENTINEL] = true;\n ListPrototype[DELETE] = ListPrototype.remove;\n ListPrototype.setIn = MapPrototype.setIn;\n ListPrototype.deleteIn =\n ListPrototype.removeIn = MapPrototype.removeIn;\n ListPrototype.update = MapPrototype.update;\n ListPrototype.updateIn = MapPrototype.updateIn;\n ListPrototype.mergeIn = MapPrototype.mergeIn;\n ListPrototype.mergeDeepIn = MapPrototype.mergeDeepIn;\n ListPrototype.withMutations = MapPrototype.withMutations;\n ListPrototype.asMutable = MapPrototype.asMutable;\n ListPrototype.asImmutable = MapPrototype.asImmutable;\n ListPrototype.wasAltered = MapPrototype.wasAltered;\n\n\n\n function VNode(array, ownerID) {\n this.array = array;\n this.ownerID = ownerID;\n }\n\n // TODO: seems like these methods are very similar\n\n VNode.prototype.removeBefore = function(ownerID, level, index) {\n if (index === level ? 1 << level : 0 || this.array.length === 0) {\n return this;\n }\n var originIndex = (index >>> level) & MASK;\n if (originIndex >= this.array.length) {\n return new VNode([], ownerID);\n }\n var removingFirst = originIndex === 0;\n var newChild;\n if (level > 0) {\n var oldChild = this.array[originIndex];\n newChild = oldChild && oldChild.removeBefore(ownerID, level - SHIFT, index);\n if (newChild === oldChild && removingFirst) {\n return this;\n }\n }\n if (removingFirst && !newChild) {\n return this;\n }\n var editable = editableVNode(this, ownerID);\n if (!removingFirst) {\n for (var ii = 0; ii < originIndex; ii++) {\n editable.array[ii] = undefined;\n }\n }\n if (newChild) {\n editable.array[originIndex] = newChild;\n }\n return editable;\n };\n\n VNode.prototype.removeAfter = function(ownerID, level, index) {\n if (index === (level ? 1 << level : 0) || this.array.length === 0) {\n return this;\n }\n var sizeIndex = ((index - 1) >>> level) & MASK;\n if (sizeIndex >= this.array.length) {\n return this;\n }\n\n var newChild;\n if (level > 0) {\n var oldChild = this.array[sizeIndex];\n newChild = oldChild && oldChild.removeAfter(ownerID, level - SHIFT, index);\n if (newChild === oldChild && sizeIndex === this.array.length - 1) {\n return this;\n }\n }\n\n var editable = editableVNode(this, ownerID);\n editable.array.splice(sizeIndex + 1);\n if (newChild) {\n editable.array[sizeIndex] = newChild;\n }\n return editable;\n };\n\n\n\n var DONE = {};\n\n function iterateList(list, reverse) {\n var left = list._origin;\n var right = list._capacity;\n var tailPos = getTailOffset(right);\n var tail = list._tail;\n\n return iterateNodeOrLeaf(list._root, list._level, 0);\n\n function iterateNodeOrLeaf(node, level, offset) {\n return level === 0 ?\n iterateLeaf(node, offset) :\n iterateNode(node, level, offset);\n }\n\n function iterateLeaf(node, offset) {\n var array = offset === tailPos ? tail && tail.array : node && node.array;\n var from = offset > left ? 0 : left - offset;\n var to = right - offset;\n if (to > SIZE) {\n to = SIZE;\n }\n return function() {\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n return array && array[idx];\n };\n }\n\n function iterateNode(node, level, offset) {\n var values;\n var array = node && node.array;\n var from = offset > left ? 0 : (left - offset) >> level;\n var to = ((right - offset) >> level) + 1;\n if (to > SIZE) {\n to = SIZE;\n }\n return function() {\n do {\n if (values) {\n var value = values();\n if (value !== DONE) {\n return value;\n }\n values = null;\n }\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n values = iterateNodeOrLeaf(\n array && array[idx], level - SHIFT, offset + (idx << level)\n );\n } while (true);\n };\n }\n }\n\n function makeList(origin, capacity, level, root, tail, ownerID, hash) {\n var list = Object.create(ListPrototype);\n list.size = capacity - origin;\n list._origin = origin;\n list._capacity = capacity;\n list._level = level;\n list._root = root;\n list._tail = tail;\n list.__ownerID = ownerID;\n list.__hash = hash;\n list.__altered = false;\n return list;\n }\n\n var EMPTY_LIST;\n function emptyList() {\n return EMPTY_LIST || (EMPTY_LIST = makeList(0, 0, SHIFT));\n }\n\n function updateList(list, index, value) {\n index = wrapIndex(list, index);\n\n if (index !== index) {\n return list;\n }\n\n if (index >= list.size || index < 0) {\n return list.withMutations(function(list ) {\n index < 0 ?\n setListBounds(list, index).set(0, value) :\n setListBounds(list, 0, index + 1).set(index, value)\n });\n }\n\n index += list._origin;\n\n var newTail = list._tail;\n var newRoot = list._root;\n var didAlter = MakeRef(DID_ALTER);\n if (index >= getTailOffset(list._capacity)) {\n newTail = updateVNode(newTail, list.__ownerID, 0, index, value, didAlter);\n } else {\n newRoot = updateVNode(newRoot, list.__ownerID, list._level, index, value, didAlter);\n }\n\n if (!didAlter.value) {\n return list;\n }\n\n if (list.__ownerID) {\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(list._origin, list._capacity, list._level, newRoot, newTail);\n }\n\n function updateVNode(node, ownerID, level, index, value, didAlter) {\n var idx = (index >>> level) & MASK;\n var nodeHas = node && idx < node.array.length;\n if (!nodeHas && value === undefined) {\n return node;\n }\n\n var newNode;\n\n if (level > 0) {\n var lowerNode = node && node.array[idx];\n var newLowerNode = updateVNode(lowerNode, ownerID, level - SHIFT, index, value, didAlter);\n if (newLowerNode === lowerNode) {\n return node;\n }\n newNode = editableVNode(node, ownerID);\n newNode.array[idx] = newLowerNode;\n return newNode;\n }\n\n if (nodeHas && node.array[idx] === value) {\n return node;\n }\n\n SetRef(didAlter);\n\n newNode = editableVNode(node, ownerID);\n if (value === undefined && idx === newNode.array.length - 1) {\n newNode.array.pop();\n } else {\n newNode.array[idx] = value;\n }\n return newNode;\n }\n\n function editableVNode(node, ownerID) {\n if (ownerID && node && ownerID === node.ownerID) {\n return node;\n }\n return new VNode(node ? node.array.slice() : [], ownerID);\n }\n\n function listNodeFor(list, rawIndex) {\n if (rawIndex >= getTailOffset(list._capacity)) {\n return list._tail;\n }\n if (rawIndex < 1 << (list._level + SHIFT)) {\n var node = list._root;\n var level = list._level;\n while (node && level > 0) {\n node = node.array[(rawIndex >>> level) & MASK];\n level -= SHIFT;\n }\n return node;\n }\n }\n\n function setListBounds(list, begin, end) {\n // Sanitize begin & end using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n if (begin !== undefined) {\n begin = begin | 0;\n }\n if (end !== undefined) {\n end = end | 0;\n }\n var owner = list.__ownerID || new OwnerID();\n var oldOrigin = list._origin;\n var oldCapacity = list._capacity;\n var newOrigin = oldOrigin + begin;\n var newCapacity = end === undefined ? oldCapacity : end < 0 ? oldCapacity + end : oldOrigin + end;\n if (newOrigin === oldOrigin && newCapacity === oldCapacity) {\n return list;\n }\n\n // If it's going to end after it starts, it's empty.\n if (newOrigin >= newCapacity) {\n return list.clear();\n }\n\n var newLevel = list._level;\n var newRoot = list._root;\n\n // New origin might need creating a higher root.\n var offsetShift = 0;\n while (newOrigin + offsetShift < 0) {\n newRoot = new VNode(newRoot && newRoot.array.length ? [undefined, newRoot] : [], owner);\n newLevel += SHIFT;\n offsetShift += 1 << newLevel;\n }\n if (offsetShift) {\n newOrigin += offsetShift;\n oldOrigin += offsetShift;\n newCapacity += offsetShift;\n oldCapacity += offsetShift;\n }\n\n var oldTailOffset = getTailOffset(oldCapacity);\n var newTailOffset = getTailOffset(newCapacity);\n\n // New size might need creating a higher root.\n while (newTailOffset >= 1 << (newLevel + SHIFT)) {\n newRoot = new VNode(newRoot && newRoot.array.length ? [newRoot] : [], owner);\n newLevel += SHIFT;\n }\n\n // Locate or create the new tail.\n var oldTail = list._tail;\n var newTail = newTailOffset < oldTailOffset ?\n listNodeFor(list, newCapacity - 1) :\n newTailOffset > oldTailOffset ? new VNode([], owner) : oldTail;\n\n // Merge Tail into tree.\n if (oldTail && newTailOffset > oldTailOffset && newOrigin < oldCapacity && oldTail.array.length) {\n newRoot = editableVNode(newRoot, owner);\n var node = newRoot;\n for (var level = newLevel; level > SHIFT; level -= SHIFT) {\n var idx = (oldTailOffset >>> level) & MASK;\n node = node.array[idx] = editableVNode(node.array[idx], owner);\n }\n node.array[(oldTailOffset >>> SHIFT) & MASK] = oldTail;\n }\n\n // If the size has been reduced, there's a chance the tail needs to be trimmed.\n if (newCapacity < oldCapacity) {\n newTail = newTail && newTail.removeAfter(owner, 0, newCapacity);\n }\n\n // If the new origin is within the tail, then we do not need a root.\n if (newOrigin >= newTailOffset) {\n newOrigin -= newTailOffset;\n newCapacity -= newTailOffset;\n newLevel = SHIFT;\n newRoot = null;\n newTail = newTail && newTail.removeBefore(owner, 0, newOrigin);\n\n // Otherwise, if the root has been trimmed, garbage collect.\n } else if (newOrigin > oldOrigin || newTailOffset < oldTailOffset) {\n offsetShift = 0;\n\n // Identify the new top root node of the subtree of the old root.\n while (newRoot) {\n var beginIndex = (newOrigin >>> newLevel) & MASK;\n if (beginIndex !== (newTailOffset >>> newLevel) & MASK) {\n break;\n }\n if (beginIndex) {\n offsetShift += (1 << newLevel) * beginIndex;\n }\n newLevel -= SHIFT;\n newRoot = newRoot.array[beginIndex];\n }\n\n // Trim the new sides of the new root.\n if (newRoot && newOrigin > oldOrigin) {\n newRoot = newRoot.removeBefore(owner, newLevel, newOrigin - offsetShift);\n }\n if (newRoot && newTailOffset < oldTailOffset) {\n newRoot = newRoot.removeAfter(owner, newLevel, newTailOffset - offsetShift);\n }\n if (offsetShift) {\n newOrigin -= offsetShift;\n newCapacity -= offsetShift;\n }\n }\n\n if (list.__ownerID) {\n list.size = newCapacity - newOrigin;\n list._origin = newOrigin;\n list._capacity = newCapacity;\n list._level = newLevel;\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(newOrigin, newCapacity, newLevel, newRoot, newTail);\n }\n\n function mergeIntoListWith(list, merger, iterables) {\n var iters = [];\n var maxSize = 0;\n for (var ii = 0; ii < iterables.length; ii++) {\n var value = iterables[ii];\n var iter = IndexedIterable(value);\n if (iter.size > maxSize) {\n maxSize = iter.size;\n }\n if (!isIterable(value)) {\n iter = iter.map(function(v ) {return fromJS(v)});\n }\n iters.push(iter);\n }\n if (maxSize > list.size) {\n list = list.setSize(maxSize);\n }\n return mergeIntoCollectionWith(list, merger, iters);\n }\n\n function getTailOffset(size) {\n return size < SIZE ? 0 : (((size - 1) >>> SHIFT) << SHIFT);\n }\n\n createClass(OrderedMap, Map);\n\n // @pragma Construction\n\n function OrderedMap(value) {\n return value === null || value === undefined ? emptyOrderedMap() :\n isOrderedMap(value) ? value :\n emptyOrderedMap().withMutations(function(map ) {\n var iter = KeyedIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v, k) {return map.set(k, v)});\n });\n }\n\n OrderedMap.of = function(/*...values*/) {\n return this(arguments);\n };\n\n OrderedMap.prototype.toString = function() {\n return this.__toString('OrderedMap {', '}');\n };\n\n // @pragma Access\n\n OrderedMap.prototype.get = function(k, notSetValue) {\n var index = this._map.get(k);\n return index !== undefined ? this._list.get(index)[1] : notSetValue;\n };\n\n // @pragma Modification\n\n OrderedMap.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._map.clear();\n this._list.clear();\n return this;\n }\n return emptyOrderedMap();\n };\n\n OrderedMap.prototype.set = function(k, v) {\n return updateOrderedMap(this, k, v);\n };\n\n OrderedMap.prototype.remove = function(k) {\n return updateOrderedMap(this, k, NOT_SET);\n };\n\n OrderedMap.prototype.wasAltered = function() {\n return this._map.wasAltered() || this._list.wasAltered();\n };\n\n OrderedMap.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._list.__iterate(\n function(entry ) {return entry && fn(entry[1], entry[0], this$0)},\n reverse\n );\n };\n\n OrderedMap.prototype.__iterator = function(type, reverse) {\n return this._list.fromEntrySeq().__iterator(type, reverse);\n };\n\n OrderedMap.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n var newList = this._list.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n this._list = newList;\n return this;\n }\n return makeOrderedMap(newMap, newList, ownerID, this.__hash);\n };\n\n\n function isOrderedMap(maybeOrderedMap) {\n return isMap(maybeOrderedMap) && isOrdered(maybeOrderedMap);\n }\n\n OrderedMap.isOrderedMap = isOrderedMap;\n\n OrderedMap.prototype[IS_ORDERED_SENTINEL] = true;\n OrderedMap.prototype[DELETE] = OrderedMap.prototype.remove;\n\n\n\n function makeOrderedMap(map, list, ownerID, hash) {\n var omap = Object.create(OrderedMap.prototype);\n omap.size = map ? map.size : 0;\n omap._map = map;\n omap._list = list;\n omap.__ownerID = ownerID;\n omap.__hash = hash;\n return omap;\n }\n\n var EMPTY_ORDERED_MAP;\n function emptyOrderedMap() {\n return EMPTY_ORDERED_MAP || (EMPTY_ORDERED_MAP = makeOrderedMap(emptyMap(), emptyList()));\n }\n\n function updateOrderedMap(omap, k, v) {\n var map = omap._map;\n var list = omap._list;\n var i = map.get(k);\n var has = i !== undefined;\n var newMap;\n var newList;\n if (v === NOT_SET) { // removed\n if (!has) {\n return omap;\n }\n if (list.size >= SIZE && list.size >= map.size * 2) {\n newList = list.filter(function(entry, idx) {return entry !== undefined && i !== idx});\n newMap = newList.toKeyedSeq().map(function(entry ) {return entry[0]}).flip().toMap();\n if (omap.__ownerID) {\n newMap.__ownerID = newList.__ownerID = omap.__ownerID;\n }\n } else {\n newMap = map.remove(k);\n newList = i === list.size - 1 ? list.pop() : list.set(i, undefined);\n }\n } else {\n if (has) {\n if (v === list.get(i)[1]) {\n return omap;\n }\n newMap = map;\n newList = list.set(i, [k, v]);\n } else {\n newMap = map.set(k, list.size);\n newList = list.set(list.size, [k, v]);\n }\n }\n if (omap.__ownerID) {\n omap.size = newMap.size;\n omap._map = newMap;\n omap._list = newList;\n omap.__hash = undefined;\n return omap;\n }\n return makeOrderedMap(newMap, newList);\n }\n\n createClass(ToKeyedSequence, KeyedSeq);\n function ToKeyedSequence(indexed, useKeys) {\n this._iter = indexed;\n this._useKeys = useKeys;\n this.size = indexed.size;\n }\n\n ToKeyedSequence.prototype.get = function(key, notSetValue) {\n return this._iter.get(key, notSetValue);\n };\n\n ToKeyedSequence.prototype.has = function(key) {\n return this._iter.has(key);\n };\n\n ToKeyedSequence.prototype.valueSeq = function() {\n return this._iter.valueSeq();\n };\n\n ToKeyedSequence.prototype.reverse = function() {var this$0 = this;\n var reversedSequence = reverseFactory(this, true);\n if (!this._useKeys) {\n reversedSequence.valueSeq = function() {return this$0._iter.toSeq().reverse()};\n }\n return reversedSequence;\n };\n\n ToKeyedSequence.prototype.map = function(mapper, context) {var this$0 = this;\n var mappedSequence = mapFactory(this, mapper, context);\n if (!this._useKeys) {\n mappedSequence.valueSeq = function() {return this$0._iter.toSeq().map(mapper, context)};\n }\n return mappedSequence;\n };\n\n ToKeyedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n var ii;\n return this._iter.__iterate(\n this._useKeys ?\n function(v, k) {return fn(v, k, this$0)} :\n ((ii = reverse ? resolveSize(this) : 0),\n function(v ) {return fn(v, reverse ? --ii : ii++, this$0)}),\n reverse\n );\n };\n\n ToKeyedSequence.prototype.__iterator = function(type, reverse) {\n if (this._useKeys) {\n return this._iter.__iterator(type, reverse);\n }\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n var ii = reverse ? resolveSize(this) : 0;\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step :\n iteratorValue(type, reverse ? --ii : ii++, step.value, step);\n });\n };\n\n ToKeyedSequence.prototype[IS_ORDERED_SENTINEL] = true;\n\n\n createClass(ToIndexedSequence, IndexedSeq);\n function ToIndexedSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n ToIndexedSequence.prototype.includes = function(value) {\n return this._iter.includes(value);\n };\n\n ToIndexedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n var iterations = 0;\n return this._iter.__iterate(function(v ) {return fn(v, iterations++, this$0)}, reverse);\n };\n\n ToIndexedSequence.prototype.__iterator = function(type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n var iterations = 0;\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step :\n iteratorValue(type, iterations++, step.value, step)\n });\n };\n\n\n\n createClass(ToSetSequence, SetSeq);\n function ToSetSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n ToSetSequence.prototype.has = function(key) {\n return this._iter.includes(key);\n };\n\n ToSetSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._iter.__iterate(function(v ) {return fn(v, v, this$0)}, reverse);\n };\n\n ToSetSequence.prototype.__iterator = function(type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step :\n iteratorValue(type, step.value, step.value, step);\n });\n };\n\n\n\n createClass(FromEntriesSequence, KeyedSeq);\n function FromEntriesSequence(entries) {\n this._iter = entries;\n this.size = entries.size;\n }\n\n FromEntriesSequence.prototype.entrySeq = function() {\n return this._iter.toSeq();\n };\n\n FromEntriesSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._iter.__iterate(function(entry ) {\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedIterable = isIterable(entry);\n return fn(\n indexedIterable ? entry.get(1) : entry[1],\n indexedIterable ? entry.get(0) : entry[0],\n this$0\n );\n }\n }, reverse);\n };\n\n FromEntriesSequence.prototype.__iterator = function(type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function() {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedIterable = isIterable(entry);\n return iteratorValue(\n type,\n indexedIterable ? entry.get(0) : entry[0],\n indexedIterable ? entry.get(1) : entry[1],\n step\n );\n }\n }\n });\n };\n\n\n ToIndexedSequence.prototype.cacheResult =\n ToKeyedSequence.prototype.cacheResult =\n ToSetSequence.prototype.cacheResult =\n FromEntriesSequence.prototype.cacheResult =\n cacheResultThrough;\n\n\n function flipFactory(iterable) {\n var flipSequence = makeSequence(iterable);\n flipSequence._iter = iterable;\n flipSequence.size = iterable.size;\n flipSequence.flip = function() {return iterable};\n flipSequence.reverse = function () {\n var reversedSequence = iterable.reverse.apply(this); // super.reverse()\n reversedSequence.flip = function() {return iterable.reverse()};\n return reversedSequence;\n };\n flipSequence.has = function(key ) {return iterable.includes(key)};\n flipSequence.includes = function(key ) {return iterable.has(key)};\n flipSequence.cacheResult = cacheResultThrough;\n flipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n return iterable.__iterate(function(v, k) {return fn(k, v, this$0) !== false}, reverse);\n }\n flipSequence.__iteratorUncached = function(type, reverse) {\n if (type === ITERATE_ENTRIES) {\n var iterator = iterable.__iterator(type, reverse);\n return new Iterator(function() {\n var step = iterator.next();\n if (!step.done) {\n var k = step.value[0];\n step.value[0] = step.value[1];\n step.value[1] = k;\n }\n return step;\n });\n }\n return iterable.__iterator(\n type === ITERATE_VALUES ? ITERATE_KEYS : ITERATE_VALUES,\n reverse\n );\n }\n return flipSequence;\n }\n\n\n function mapFactory(iterable, mapper, context) {\n var mappedSequence = makeSequence(iterable);\n mappedSequence.size = iterable.size;\n mappedSequence.has = function(key ) {return iterable.has(key)};\n mappedSequence.get = function(key, notSetValue) {\n var v = iterable.get(key, NOT_SET);\n return v === NOT_SET ?\n notSetValue :\n mapper.call(context, v, key, iterable);\n };\n mappedSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n return iterable.__iterate(\n function(v, k, c) {return fn(mapper.call(context, v, k, c), k, this$0) !== false},\n reverse\n );\n }\n mappedSequence.__iteratorUncached = function (type, reverse) {\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n return new Iterator(function() {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n return iteratorValue(\n type,\n key,\n mapper.call(context, entry[1], key, iterable),\n step\n );\n });\n }\n return mappedSequence;\n }\n\n\n function reverseFactory(iterable, useKeys) {\n var reversedSequence = makeSequence(iterable);\n reversedSequence._iter = iterable;\n reversedSequence.size = iterable.size;\n reversedSequence.reverse = function() {return iterable};\n if (iterable.flip) {\n reversedSequence.flip = function () {\n var flipSequence = flipFactory(iterable);\n flipSequence.reverse = function() {return iterable.flip()};\n return flipSequence;\n };\n }\n reversedSequence.get = function(key, notSetValue) \n {return iterable.get(useKeys ? key : -1 - key, notSetValue)};\n reversedSequence.has = function(key )\n {return iterable.has(useKeys ? key : -1 - key)};\n reversedSequence.includes = function(value ) {return iterable.includes(value)};\n reversedSequence.cacheResult = cacheResultThrough;\n reversedSequence.__iterate = function (fn, reverse) {var this$0 = this;\n return iterable.__iterate(function(v, k) {return fn(v, k, this$0)}, !reverse);\n };\n reversedSequence.__iterator =\n function(type, reverse) {return iterable.__iterator(type, !reverse)};\n return reversedSequence;\n }\n\n\n function filterFactory(iterable, predicate, context, useKeys) {\n var filterSequence = makeSequence(iterable);\n if (useKeys) {\n filterSequence.has = function(key ) {\n var v = iterable.get(key, NOT_SET);\n return v !== NOT_SET && !!predicate.call(context, v, key, iterable);\n };\n filterSequence.get = function(key, notSetValue) {\n var v = iterable.get(key, NOT_SET);\n return v !== NOT_SET && predicate.call(context, v, key, iterable) ?\n v : notSetValue;\n };\n }\n filterSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n var iterations = 0;\n iterable.__iterate(function(v, k, c) {\n if (predicate.call(context, v, k, c)) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$0);\n }\n }, reverse);\n return iterations;\n };\n filterSequence.__iteratorUncached = function (type, reverse) {\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n var iterations = 0;\n return new Iterator(function() {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n var value = entry[1];\n if (predicate.call(context, value, key, iterable)) {\n return iteratorValue(type, useKeys ? key : iterations++, value, step);\n }\n }\n });\n }\n return filterSequence;\n }\n\n\n function countByFactory(iterable, grouper, context) {\n var groups = Map().asMutable();\n iterable.__iterate(function(v, k) {\n groups.update(\n grouper.call(context, v, k, iterable),\n 0,\n function(a ) {return a + 1}\n );\n });\n return groups.asImmutable();\n }\n\n\n function groupByFactory(iterable, grouper, context) {\n var isKeyedIter = isKeyed(iterable);\n var groups = (isOrdered(iterable) ? OrderedMap() : Map()).asMutable();\n iterable.__iterate(function(v, k) {\n groups.update(\n grouper.call(context, v, k, iterable),\n function(a ) {return (a = a || [], a.push(isKeyedIter ? [k, v] : v), a)}\n );\n });\n var coerce = iterableClass(iterable);\n return groups.map(function(arr ) {return reify(iterable, coerce(arr))});\n }\n\n\n function sliceFactory(iterable, begin, end, useKeys) {\n var originalSize = iterable.size;\n\n // Sanitize begin & end using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n if (begin !== undefined) {\n begin = begin | 0;\n }\n if (end !== undefined) {\n if (end === Infinity) {\n end = originalSize;\n } else {\n end = end | 0;\n }\n }\n\n if (wholeSlice(begin, end, originalSize)) {\n return iterable;\n }\n\n var resolvedBegin = resolveBegin(begin, originalSize);\n var resolvedEnd = resolveEnd(end, originalSize);\n\n // begin or end will be NaN if they were provided as negative numbers and\n // this iterable's size is unknown. In that case, cache first so there is\n // a known size and these do not resolve to NaN.\n if (resolvedBegin !== resolvedBegin || resolvedEnd !== resolvedEnd) {\n return sliceFactory(iterable.toSeq().cacheResult(), begin, end, useKeys);\n }\n\n // Note: resolvedEnd is undefined when the original sequence's length is\n // unknown and this slice did not supply an end and should contain all\n // elements after resolvedBegin.\n // In that case, resolvedSize will be NaN and sliceSize will remain undefined.\n var resolvedSize = resolvedEnd - resolvedBegin;\n var sliceSize;\n if (resolvedSize === resolvedSize) {\n sliceSize = resolvedSize < 0 ? 0 : resolvedSize;\n }\n\n var sliceSeq = makeSequence(iterable);\n\n // If iterable.size is undefined, the size of the realized sliceSeq is\n // unknown at this point unless the number of items to slice is 0\n sliceSeq.size = sliceSize === 0 ? sliceSize : iterable.size && sliceSize || undefined;\n\n if (!useKeys && isSeq(iterable) && sliceSize >= 0) {\n sliceSeq.get = function (index, notSetValue) {\n index = wrapIndex(this, index);\n return index >= 0 && index < sliceSize ?\n iterable.get(index + resolvedBegin, notSetValue) :\n notSetValue;\n }\n }\n\n sliceSeq.__iterateUncached = function(fn, reverse) {var this$0 = this;\n if (sliceSize === 0) {\n return 0;\n }\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var skipped = 0;\n var isSkipping = true;\n var iterations = 0;\n iterable.__iterate(function(v, k) {\n if (!(isSkipping && (isSkipping = skipped++ < resolvedBegin))) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$0) !== false &&\n iterations !== sliceSize;\n }\n });\n return iterations;\n };\n\n sliceSeq.__iteratorUncached = function(type, reverse) {\n if (sliceSize !== 0 && reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n // Don't bother instantiating parent iterator if taking 0.\n var iterator = sliceSize !== 0 && iterable.__iterator(type, reverse);\n var skipped = 0;\n var iterations = 0;\n return new Iterator(function() {\n while (skipped++ < resolvedBegin) {\n iterator.next();\n }\n if (++iterations > sliceSize) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (useKeys || type === ITERATE_VALUES) {\n return step;\n } else if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations - 1, undefined, step);\n } else {\n return iteratorValue(type, iterations - 1, step.value[1], step);\n }\n });\n }\n\n return sliceSeq;\n }\n\n\n function takeWhileFactory(iterable, predicate, context) {\n var takeSequence = makeSequence(iterable);\n takeSequence.__iterateUncached = function(fn, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterations = 0;\n iterable.__iterate(function(v, k, c) \n {return predicate.call(context, v, k, c) && ++iterations && fn(v, k, this$0)}\n );\n return iterations;\n };\n takeSequence.__iteratorUncached = function(type, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n var iterating = true;\n return new Iterator(function() {\n if (!iterating) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var k = entry[0];\n var v = entry[1];\n if (!predicate.call(context, v, k, this$0)) {\n iterating = false;\n return iteratorDone();\n }\n return type === ITERATE_ENTRIES ? step :\n iteratorValue(type, k, v, step);\n });\n };\n return takeSequence;\n }\n\n\n function skipWhileFactory(iterable, predicate, context, useKeys) {\n var skipSequence = makeSequence(iterable);\n skipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var isSkipping = true;\n var iterations = 0;\n iterable.__iterate(function(v, k, c) {\n if (!(isSkipping && (isSkipping = predicate.call(context, v, k, c)))) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$0);\n }\n });\n return iterations;\n };\n skipSequence.__iteratorUncached = function(type, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n var skipping = true;\n var iterations = 0;\n return new Iterator(function() {\n var step, k, v;\n do {\n step = iterator.next();\n if (step.done) {\n if (useKeys || type === ITERATE_VALUES) {\n return step;\n } else if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations++, undefined, step);\n } else {\n return iteratorValue(type, iterations++, step.value[1], step);\n }\n }\n var entry = step.value;\n k = entry[0];\n v = entry[1];\n skipping && (skipping = predicate.call(context, v, k, this$0));\n } while (skipping);\n return type === ITERATE_ENTRIES ? step :\n iteratorValue(type, k, v, step);\n });\n };\n return skipSequence;\n }\n\n\n function concatFactory(iterable, values) {\n var isKeyedIterable = isKeyed(iterable);\n var iters = [iterable].concat(values).map(function(v ) {\n if (!isIterable(v)) {\n v = isKeyedIterable ?\n keyedSeqFromValue(v) :\n indexedSeqFromValue(Array.isArray(v) ? v : [v]);\n } else if (isKeyedIterable) {\n v = KeyedIterable(v);\n }\n return v;\n }).filter(function(v ) {return v.size !== 0});\n\n if (iters.length === 0) {\n return iterable;\n }\n\n if (iters.length === 1) {\n var singleton = iters[0];\n if (singleton === iterable ||\n isKeyedIterable && isKeyed(singleton) ||\n isIndexed(iterable) && isIndexed(singleton)) {\n return singleton;\n }\n }\n\n var concatSeq = new ArraySeq(iters);\n if (isKeyedIterable) {\n concatSeq = concatSeq.toKeyedSeq();\n } else if (!isIndexed(iterable)) {\n concatSeq = concatSeq.toSetSeq();\n }\n concatSeq = concatSeq.flatten(true);\n concatSeq.size = iters.reduce(\n function(sum, seq) {\n if (sum !== undefined) {\n var size = seq.size;\n if (size !== undefined) {\n return sum + size;\n }\n }\n },\n 0\n );\n return concatSeq;\n }\n\n\n function flattenFactory(iterable, depth, useKeys) {\n var flatSequence = makeSequence(iterable);\n flatSequence.__iterateUncached = function(fn, reverse) {\n var iterations = 0;\n var stopped = false;\n function flatDeep(iter, currentDepth) {var this$0 = this;\n iter.__iterate(function(v, k) {\n if ((!depth || currentDepth < depth) && isIterable(v)) {\n flatDeep(v, currentDepth + 1);\n } else if (fn(v, useKeys ? k : iterations++, this$0) === false) {\n stopped = true;\n }\n return !stopped;\n }, reverse);\n }\n flatDeep(iterable, 0);\n return iterations;\n }\n flatSequence.__iteratorUncached = function(type, reverse) {\n var iterator = iterable.__iterator(type, reverse);\n var stack = [];\n var iterations = 0;\n return new Iterator(function() {\n while (iterator) {\n var step = iterator.next();\n if (step.done !== false) {\n iterator = stack.pop();\n continue;\n }\n var v = step.value;\n if (type === ITERATE_ENTRIES) {\n v = v[1];\n }\n if ((!depth || stack.length < depth) && isIterable(v)) {\n stack.push(iterator);\n iterator = v.__iterator(type, reverse);\n } else {\n return useKeys ? step : iteratorValue(type, iterations++, v, step);\n }\n }\n return iteratorDone();\n });\n }\n return flatSequence;\n }\n\n\n function flatMapFactory(iterable, mapper, context) {\n var coerce = iterableClass(iterable);\n return iterable.toSeq().map(\n function(v, k) {return coerce(mapper.call(context, v, k, iterable))}\n ).flatten(true);\n }\n\n\n function interposeFactory(iterable, separator) {\n var interposedSequence = makeSequence(iterable);\n interposedSequence.size = iterable.size && iterable.size * 2 -1;\n interposedSequence.__iterateUncached = function(fn, reverse) {var this$0 = this;\n var iterations = 0;\n iterable.__iterate(function(v, k) \n {return (!iterations || fn(separator, iterations++, this$0) !== false) &&\n fn(v, iterations++, this$0) !== false},\n reverse\n );\n return iterations;\n };\n interposedSequence.__iteratorUncached = function(type, reverse) {\n var iterator = iterable.__iterator(ITERATE_VALUES, reverse);\n var iterations = 0;\n var step;\n return new Iterator(function() {\n if (!step || iterations % 2) {\n step = iterator.next();\n if (step.done) {\n return step;\n }\n }\n return iterations % 2 ?\n iteratorValue(type, iterations++, separator) :\n iteratorValue(type, iterations++, step.value, step);\n });\n };\n return interposedSequence;\n }\n\n\n function sortFactory(iterable, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n var isKeyedIterable = isKeyed(iterable);\n var index = 0;\n var entries = iterable.toSeq().map(\n function(v, k) {return [k, v, index++, mapper ? mapper(v, k, iterable) : v]}\n ).toArray();\n entries.sort(function(a, b) {return comparator(a[3], b[3]) || a[2] - b[2]}).forEach(\n isKeyedIterable ?\n function(v, i) { entries[i].length = 2; } :\n function(v, i) { entries[i] = v[1]; }\n );\n return isKeyedIterable ? KeyedSeq(entries) :\n isIndexed(iterable) ? IndexedSeq(entries) :\n SetSeq(entries);\n }\n\n\n function maxFactory(iterable, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n if (mapper) {\n var entry = iterable.toSeq()\n .map(function(v, k) {return [v, mapper(v, k, iterable)]})\n .reduce(function(a, b) {return maxCompare(comparator, a[1], b[1]) ? b : a});\n return entry && entry[0];\n } else {\n return iterable.reduce(function(a, b) {return maxCompare(comparator, a, b) ? b : a});\n }\n }\n\n function maxCompare(comparator, a, b) {\n var comp = comparator(b, a);\n // b is considered the new max if the comparator declares them equal, but\n // they are not equal and b is in fact a nullish value.\n return (comp === 0 && b !== a && (b === undefined || b === null || b !== b)) || comp > 0;\n }\n\n\n function zipWithFactory(keyIter, zipper, iters) {\n var zipSequence = makeSequence(keyIter);\n zipSequence.size = new ArraySeq(iters).map(function(i ) {return i.size}).min();\n // Note: this a generic base implementation of __iterate in terms of\n // __iterator which may be more generically useful in the future.\n zipSequence.__iterate = function(fn, reverse) {\n /* generic:\n var iterator = this.__iterator(ITERATE_ENTRIES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n iterations++;\n if (fn(step.value[1], step.value[0], this) === false) {\n break;\n }\n }\n return iterations;\n */\n // indexed:\n var iterator = this.__iterator(ITERATE_VALUES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n return iterations;\n };\n zipSequence.__iteratorUncached = function(type, reverse) {\n var iterators = iters.map(function(i )\n {return (i = Iterable(i), getIterator(reverse ? i.reverse() : i))}\n );\n var iterations = 0;\n var isDone = false;\n return new Iterator(function() {\n var steps;\n if (!isDone) {\n steps = iterators.map(function(i ) {return i.next()});\n isDone = steps.some(function(s ) {return s.done});\n }\n if (isDone) {\n return iteratorDone();\n }\n return iteratorValue(\n type,\n iterations++,\n zipper.apply(null, steps.map(function(s ) {return s.value}))\n );\n });\n };\n return zipSequence\n }\n\n\n // #pragma Helper Functions\n\n function reify(iter, seq) {\n return isSeq(iter) ? seq : iter.constructor(seq);\n }\n\n function validateEntry(entry) {\n if (entry !== Object(entry)) {\n throw new TypeError('Expected [K, V] tuple: ' + entry);\n }\n }\n\n function resolveSize(iter) {\n assertNotInfinite(iter.size);\n return ensureSize(iter);\n }\n\n function iterableClass(iterable) {\n return isKeyed(iterable) ? KeyedIterable :\n isIndexed(iterable) ? IndexedIterable :\n SetIterable;\n }\n\n function makeSequence(iterable) {\n return Object.create(\n (\n isKeyed(iterable) ? KeyedSeq :\n isIndexed(iterable) ? IndexedSeq :\n SetSeq\n ).prototype\n );\n }\n\n function cacheResultThrough() {\n if (this._iter.cacheResult) {\n this._iter.cacheResult();\n this.size = this._iter.size;\n return this;\n } else {\n return Seq.prototype.cacheResult.call(this);\n }\n }\n\n function defaultComparator(a, b) {\n return a > b ? 1 : a < b ? -1 : 0;\n }\n\n function forceIterator(keyPath) {\n var iter = getIterator(keyPath);\n if (!iter) {\n // Array might not be iterable in this environment, so we need a fallback\n // to our wrapped type.\n if (!isArrayLike(keyPath)) {\n throw new TypeError('Expected iterable or array-like: ' + keyPath);\n }\n iter = getIterator(Iterable(keyPath));\n }\n return iter;\n }\n\n createClass(Record, KeyedCollection);\n\n function Record(defaultValues, name) {\n var hasInitialized;\n\n var RecordType = function Record(values) {\n if (values instanceof RecordType) {\n return values;\n }\n if (!(this instanceof RecordType)) {\n return new RecordType(values);\n }\n if (!hasInitialized) {\n hasInitialized = true;\n var keys = Object.keys(defaultValues);\n setProps(RecordTypePrototype, keys);\n RecordTypePrototype.size = keys.length;\n RecordTypePrototype._name = name;\n RecordTypePrototype._keys = keys;\n RecordTypePrototype._defaultValues = defaultValues;\n }\n this._map = Map(values);\n };\n\n var RecordTypePrototype = RecordType.prototype = Object.create(RecordPrototype);\n RecordTypePrototype.constructor = RecordType;\n\n return RecordType;\n }\n\n Record.prototype.toString = function() {\n return this.__toString(recordName(this) + ' {', '}');\n };\n\n // @pragma Access\n\n Record.prototype.has = function(k) {\n return this._defaultValues.hasOwnProperty(k);\n };\n\n Record.prototype.get = function(k, notSetValue) {\n if (!this.has(k)) {\n return notSetValue;\n }\n var defaultVal = this._defaultValues[k];\n return this._map ? this._map.get(k, defaultVal) : defaultVal;\n };\n\n // @pragma Modification\n\n Record.prototype.clear = function() {\n if (this.__ownerID) {\n this._map && this._map.clear();\n return this;\n }\n var RecordType = this.constructor;\n return RecordType._empty || (RecordType._empty = makeRecord(this, emptyMap()));\n };\n\n Record.prototype.set = function(k, v) {\n if (!this.has(k)) {\n throw new Error('Cannot set unknown key \"' + k + '\" on ' + recordName(this));\n }\n if (this._map && !this._map.has(k)) {\n var defaultVal = this._defaultValues[k];\n if (v === defaultVal) {\n return this;\n }\n }\n var newMap = this._map && this._map.set(k, v);\n if (this.__ownerID || newMap === this._map) {\n return this;\n }\n return makeRecord(this, newMap);\n };\n\n Record.prototype.remove = function(k) {\n if (!this.has(k)) {\n return this;\n }\n var newMap = this._map && this._map.remove(k);\n if (this.__ownerID || newMap === this._map) {\n return this;\n }\n return makeRecord(this, newMap);\n };\n\n Record.prototype.wasAltered = function() {\n return this._map.wasAltered();\n };\n\n Record.prototype.__iterator = function(type, reverse) {var this$0 = this;\n return KeyedIterable(this._defaultValues).map(function(_, k) {return this$0.get(k)}).__iterator(type, reverse);\n };\n\n Record.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return KeyedIterable(this._defaultValues).map(function(_, k) {return this$0.get(k)}).__iterate(fn, reverse);\n };\n\n Record.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map && this._map.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n return makeRecord(this, newMap, ownerID);\n };\n\n\n var RecordPrototype = Record.prototype;\n RecordPrototype[DELETE] = RecordPrototype.remove;\n RecordPrototype.deleteIn =\n RecordPrototype.removeIn = MapPrototype.removeIn;\n RecordPrototype.merge = MapPrototype.merge;\n RecordPrototype.mergeWith = MapPrototype.mergeWith;\n RecordPrototype.mergeIn = MapPrototype.mergeIn;\n RecordPrototype.mergeDeep = MapPrototype.mergeDeep;\n RecordPrototype.mergeDeepWith = MapPrototype.mergeDeepWith;\n RecordPrototype.mergeDeepIn = MapPrototype.mergeDeepIn;\n RecordPrototype.setIn = MapPrototype.setIn;\n RecordPrototype.update = MapPrototype.update;\n RecordPrototype.updateIn = MapPrototype.updateIn;\n RecordPrototype.withMutations = MapPrototype.withMutations;\n RecordPrototype.asMutable = MapPrototype.asMutable;\n RecordPrototype.asImmutable = MapPrototype.asImmutable;\n\n\n function makeRecord(likeRecord, map, ownerID) {\n var record = Object.create(Object.getPrototypeOf(likeRecord));\n record._map = map;\n record.__ownerID = ownerID;\n return record;\n }\n\n function recordName(record) {\n return record._name || record.constructor.name || 'Record';\n }\n\n function setProps(prototype, names) {\n try {\n names.forEach(setProp.bind(undefined, prototype));\n } catch (error) {\n // Object.defineProperty failed. Probably IE8.\n }\n }\n\n function setProp(prototype, name) {\n Object.defineProperty(prototype, name, {\n get: function() {\n return this.get(name);\n },\n set: function(value) {\n invariant(this.__ownerID, 'Cannot set on an immutable record.');\n this.set(name, value);\n }\n });\n }\n\n createClass(Set, SetCollection);\n\n // @pragma Construction\n\n function Set(value) {\n return value === null || value === undefined ? emptySet() :\n isSet(value) && !isOrdered(value) ? value :\n emptySet().withMutations(function(set ) {\n var iter = SetIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v ) {return set.add(v)});\n });\n }\n\n Set.of = function(/*...values*/) {\n return this(arguments);\n };\n\n Set.fromKeys = function(value) {\n return this(KeyedIterable(value).keySeq());\n };\n\n Set.prototype.toString = function() {\n return this.__toString('Set {', '}');\n };\n\n // @pragma Access\n\n Set.prototype.has = function(value) {\n return this._map.has(value);\n };\n\n // @pragma Modification\n\n Set.prototype.add = function(value) {\n return updateSet(this, this._map.set(value, true));\n };\n\n Set.prototype.remove = function(value) {\n return updateSet(this, this._map.remove(value));\n };\n\n Set.prototype.clear = function() {\n return updateSet(this, this._map.clear());\n };\n\n // @pragma Composition\n\n Set.prototype.union = function() {var iters = SLICE$0.call(arguments, 0);\n iters = iters.filter(function(x ) {return x.size !== 0});\n if (iters.length === 0) {\n return this;\n }\n if (this.size === 0 && !this.__ownerID && iters.length === 1) {\n return this.constructor(iters[0]);\n }\n return this.withMutations(function(set ) {\n for (var ii = 0; ii < iters.length; ii++) {\n SetIterable(iters[ii]).forEach(function(value ) {return set.add(value)});\n }\n });\n };\n\n Set.prototype.intersect = function() {var iters = SLICE$0.call(arguments, 0);\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function(iter ) {return SetIterable(iter)});\n var originalSet = this;\n return this.withMutations(function(set ) {\n originalSet.forEach(function(value ) {\n if (!iters.every(function(iter ) {return iter.includes(value)})) {\n set.remove(value);\n }\n });\n });\n };\n\n Set.prototype.subtract = function() {var iters = SLICE$0.call(arguments, 0);\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function(iter ) {return SetIterable(iter)});\n var originalSet = this;\n return this.withMutations(function(set ) {\n originalSet.forEach(function(value ) {\n if (iters.some(function(iter ) {return iter.includes(value)})) {\n set.remove(value);\n }\n });\n });\n };\n\n Set.prototype.merge = function() {\n return this.union.apply(this, arguments);\n };\n\n Set.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return this.union.apply(this, iters);\n };\n\n Set.prototype.sort = function(comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator));\n };\n\n Set.prototype.sortBy = function(mapper, comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator, mapper));\n };\n\n Set.prototype.wasAltered = function() {\n return this._map.wasAltered();\n };\n\n Set.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._map.__iterate(function(_, k) {return fn(k, k, this$0)}, reverse);\n };\n\n Set.prototype.__iterator = function(type, reverse) {\n return this._map.map(function(_, k) {return k}).__iterator(type, reverse);\n };\n\n Set.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n return this.__make(newMap, ownerID);\n };\n\n\n function isSet(maybeSet) {\n return !!(maybeSet && maybeSet[IS_SET_SENTINEL]);\n }\n\n Set.isSet = isSet;\n\n var IS_SET_SENTINEL = '@@__IMMUTABLE_SET__@@';\n\n var SetPrototype = Set.prototype;\n SetPrototype[IS_SET_SENTINEL] = true;\n SetPrototype[DELETE] = SetPrototype.remove;\n SetPrototype.mergeDeep = SetPrototype.merge;\n SetPrototype.mergeDeepWith = SetPrototype.mergeWith;\n SetPrototype.withMutations = MapPrototype.withMutations;\n SetPrototype.asMutable = MapPrototype.asMutable;\n SetPrototype.asImmutable = MapPrototype.asImmutable;\n\n SetPrototype.__empty = emptySet;\n SetPrototype.__make = makeSet;\n\n function updateSet(set, newMap) {\n if (set.__ownerID) {\n set.size = newMap.size;\n set._map = newMap;\n return set;\n }\n return newMap === set._map ? set :\n newMap.size === 0 ? set.__empty() :\n set.__make(newMap);\n }\n\n function makeSet(map, ownerID) {\n var set = Object.create(SetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n }\n\n var EMPTY_SET;\n function emptySet() {\n return EMPTY_SET || (EMPTY_SET = makeSet(emptyMap()));\n }\n\n createClass(OrderedSet, Set);\n\n // @pragma Construction\n\n function OrderedSet(value) {\n return value === null || value === undefined ? emptyOrderedSet() :\n isOrderedSet(value) ? value :\n emptyOrderedSet().withMutations(function(set ) {\n var iter = SetIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v ) {return set.add(v)});\n });\n }\n\n OrderedSet.of = function(/*...values*/) {\n return this(arguments);\n };\n\n OrderedSet.fromKeys = function(value) {\n return this(KeyedIterable(value).keySeq());\n };\n\n OrderedSet.prototype.toString = function() {\n return this.__toString('OrderedSet {', '}');\n };\n\n\n function isOrderedSet(maybeOrderedSet) {\n return isSet(maybeOrderedSet) && isOrdered(maybeOrderedSet);\n }\n\n OrderedSet.isOrderedSet = isOrderedSet;\n\n var OrderedSetPrototype = OrderedSet.prototype;\n OrderedSetPrototype[IS_ORDERED_SENTINEL] = true;\n\n OrderedSetPrototype.__empty = emptyOrderedSet;\n OrderedSetPrototype.__make = makeOrderedSet;\n\n function makeOrderedSet(map, ownerID) {\n var set = Object.create(OrderedSetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n }\n\n var EMPTY_ORDERED_SET;\n function emptyOrderedSet() {\n return EMPTY_ORDERED_SET || (EMPTY_ORDERED_SET = makeOrderedSet(emptyOrderedMap()));\n }\n\n createClass(Stack, IndexedCollection);\n\n // @pragma Construction\n\n function Stack(value) {\n return value === null || value === undefined ? emptyStack() :\n isStack(value) ? value :\n emptyStack().unshiftAll(value);\n }\n\n Stack.of = function(/*...values*/) {\n return this(arguments);\n };\n\n Stack.prototype.toString = function() {\n return this.__toString('Stack [', ']');\n };\n\n // @pragma Access\n\n Stack.prototype.get = function(index, notSetValue) {\n var head = this._head;\n index = wrapIndex(this, index);\n while (head && index--) {\n head = head.next;\n }\n return head ? head.value : notSetValue;\n };\n\n Stack.prototype.peek = function() {\n return this._head && this._head.value;\n };\n\n // @pragma Modification\n\n Stack.prototype.push = function(/*...values*/) {\n if (arguments.length === 0) {\n return this;\n }\n var newSize = this.size + arguments.length;\n var head = this._head;\n for (var ii = arguments.length - 1; ii >= 0; ii--) {\n head = {\n value: arguments[ii],\n next: head\n };\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pushAll = function(iter) {\n iter = IndexedIterable(iter);\n if (iter.size === 0) {\n return this;\n }\n assertNotInfinite(iter.size);\n var newSize = this.size;\n var head = this._head;\n iter.reverse().forEach(function(value ) {\n newSize++;\n head = {\n value: value,\n next: head\n };\n });\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pop = function() {\n return this.slice(1);\n };\n\n Stack.prototype.unshift = function(/*...values*/) {\n return this.push.apply(this, arguments);\n };\n\n Stack.prototype.unshiftAll = function(iter) {\n return this.pushAll(iter);\n };\n\n Stack.prototype.shift = function() {\n return this.pop.apply(this, arguments);\n };\n\n Stack.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._head = undefined;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyStack();\n };\n\n Stack.prototype.slice = function(begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n var resolvedBegin = resolveBegin(begin, this.size);\n var resolvedEnd = resolveEnd(end, this.size);\n if (resolvedEnd !== this.size) {\n // super.slice(begin, end);\n return IndexedCollection.prototype.slice.call(this, begin, end);\n }\n var newSize = this.size - resolvedBegin;\n var head = this._head;\n while (resolvedBegin--) {\n head = head.next;\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n // @pragma Mutability\n\n Stack.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeStack(this.size, this._head, ownerID, this.__hash);\n };\n\n // @pragma Iteration\n\n Stack.prototype.__iterate = function(fn, reverse) {\n if (reverse) {\n return this.reverse().__iterate(fn);\n }\n var iterations = 0;\n var node = this._head;\n while (node) {\n if (fn(node.value, iterations++, this) === false) {\n break;\n }\n node = node.next;\n }\n return iterations;\n };\n\n Stack.prototype.__iterator = function(type, reverse) {\n if (reverse) {\n return this.reverse().__iterator(type);\n }\n var iterations = 0;\n var node = this._head;\n return new Iterator(function() {\n if (node) {\n var value = node.value;\n node = node.next;\n return iteratorValue(type, iterations++, value);\n }\n return iteratorDone();\n });\n };\n\n\n function isStack(maybeStack) {\n return !!(maybeStack && maybeStack[IS_STACK_SENTINEL]);\n }\n\n Stack.isStack = isStack;\n\n var IS_STACK_SENTINEL = '@@__IMMUTABLE_STACK__@@';\n\n var StackPrototype = Stack.prototype;\n StackPrototype[IS_STACK_SENTINEL] = true;\n StackPrototype.withMutations = MapPrototype.withMutations;\n StackPrototype.asMutable = MapPrototype.asMutable;\n StackPrototype.asImmutable = MapPrototype.asImmutable;\n StackPrototype.wasAltered = MapPrototype.wasAltered;\n\n\n function makeStack(size, head, ownerID, hash) {\n var map = Object.create(StackPrototype);\n map.size = size;\n map._head = head;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n }\n\n var EMPTY_STACK;\n function emptyStack() {\n return EMPTY_STACK || (EMPTY_STACK = makeStack(0));\n }\n\n /**\n * Contributes additional methods to a constructor\n */\n function mixin(ctor, methods) {\n var keyCopier = function(key ) { ctor.prototype[key] = methods[key]; };\n Object.keys(methods).forEach(keyCopier);\n Object.getOwnPropertySymbols &&\n Object.getOwnPropertySymbols(methods).forEach(keyCopier);\n return ctor;\n }\n\n Iterable.Iterator = Iterator;\n\n mixin(Iterable, {\n\n // ### Conversion to other types\n\n toArray: function() {\n assertNotInfinite(this.size);\n var array = new Array(this.size || 0);\n this.valueSeq().__iterate(function(v, i) { array[i] = v; });\n return array;\n },\n\n toIndexedSeq: function() {\n return new ToIndexedSequence(this);\n },\n\n toJS: function() {\n return this.toSeq().map(\n function(value ) {return value && typeof value.toJS === 'function' ? value.toJS() : value}\n ).__toJS();\n },\n\n toJSON: function() {\n return this.toSeq().map(\n function(value ) {return value && typeof value.toJSON === 'function' ? value.toJSON() : value}\n ).__toJS();\n },\n\n toKeyedSeq: function() {\n return new ToKeyedSequence(this, true);\n },\n\n toMap: function() {\n // Use Late Binding here to solve the circular dependency.\n return Map(this.toKeyedSeq());\n },\n\n toObject: function() {\n assertNotInfinite(this.size);\n var object = {};\n this.__iterate(function(v, k) { object[k] = v; });\n return object;\n },\n\n toOrderedMap: function() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedMap(this.toKeyedSeq());\n },\n\n toOrderedSet: function() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedSet(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSet: function() {\n // Use Late Binding here to solve the circular dependency.\n return Set(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSetSeq: function() {\n return new ToSetSequence(this);\n },\n\n toSeq: function() {\n return isIndexed(this) ? this.toIndexedSeq() :\n isKeyed(this) ? this.toKeyedSeq() :\n this.toSetSeq();\n },\n\n toStack: function() {\n // Use Late Binding here to solve the circular dependency.\n return Stack(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toList: function() {\n // Use Late Binding here to solve the circular dependency.\n return List(isKeyed(this) ? this.valueSeq() : this);\n },\n\n\n // ### Common JavaScript methods and properties\n\n toString: function() {\n return '[Iterable]';\n },\n\n __toString: function(head, tail) {\n if (this.size === 0) {\n return head + tail;\n }\n return head + ' ' + this.toSeq().map(this.__toStringMapper).join(', ') + ' ' + tail;\n },\n\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n concat: function() {var values = SLICE$0.call(arguments, 0);\n return reify(this, concatFactory(this, values));\n },\n\n includes: function(searchValue) {\n return this.some(function(value ) {return is(value, searchValue)});\n },\n\n entries: function() {\n return this.__iterator(ITERATE_ENTRIES);\n },\n\n every: function(predicate, context) {\n assertNotInfinite(this.size);\n var returnValue = true;\n this.__iterate(function(v, k, c) {\n if (!predicate.call(context, v, k, c)) {\n returnValue = false;\n return false;\n }\n });\n return returnValue;\n },\n\n filter: function(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, true));\n },\n\n find: function(predicate, context, notSetValue) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[1] : notSetValue;\n },\n\n forEach: function(sideEffect, context) {\n assertNotInfinite(this.size);\n return this.__iterate(context ? sideEffect.bind(context) : sideEffect);\n },\n\n join: function(separator) {\n assertNotInfinite(this.size);\n separator = separator !== undefined ? '' + separator : ',';\n var joined = '';\n var isFirst = true;\n this.__iterate(function(v ) {\n isFirst ? (isFirst = false) : (joined += separator);\n joined += v !== null && v !== undefined ? v.toString() : '';\n });\n return joined;\n },\n\n keys: function() {\n return this.__iterator(ITERATE_KEYS);\n },\n\n map: function(mapper, context) {\n return reify(this, mapFactory(this, mapper, context));\n },\n\n reduce: function(reducer, initialReduction, context) {\n assertNotInfinite(this.size);\n var reduction;\n var useFirst;\n if (arguments.length < 2) {\n useFirst = true;\n } else {\n reduction = initialReduction;\n }\n this.__iterate(function(v, k, c) {\n if (useFirst) {\n useFirst = false;\n reduction = v;\n } else {\n reduction = reducer.call(context, reduction, v, k, c);\n }\n });\n return reduction;\n },\n\n reduceRight: function(reducer, initialReduction, context) {\n var reversed = this.toKeyedSeq().reverse();\n return reversed.reduce.apply(reversed, arguments);\n },\n\n reverse: function() {\n return reify(this, reverseFactory(this, true));\n },\n\n slice: function(begin, end) {\n return reify(this, sliceFactory(this, begin, end, true));\n },\n\n some: function(predicate, context) {\n return !this.every(not(predicate), context);\n },\n\n sort: function(comparator) {\n return reify(this, sortFactory(this, comparator));\n },\n\n values: function() {\n return this.__iterator(ITERATE_VALUES);\n },\n\n\n // ### More sequential methods\n\n butLast: function() {\n return this.slice(0, -1);\n },\n\n isEmpty: function() {\n return this.size !== undefined ? this.size === 0 : !this.some(function() {return true});\n },\n\n count: function(predicate, context) {\n return ensureSize(\n predicate ? this.toSeq().filter(predicate, context) : this\n );\n },\n\n countBy: function(grouper, context) {\n return countByFactory(this, grouper, context);\n },\n\n equals: function(other) {\n return deepEqual(this, other);\n },\n\n entrySeq: function() {\n var iterable = this;\n if (iterable._cache) {\n // We cache as an entries array, so we can just return the cache!\n return new ArraySeq(iterable._cache);\n }\n var entriesSequence = iterable.toSeq().map(entryMapper).toIndexedSeq();\n entriesSequence.fromEntrySeq = function() {return iterable.toSeq()};\n return entriesSequence;\n },\n\n filterNot: function(predicate, context) {\n return this.filter(not(predicate), context);\n },\n\n findEntry: function(predicate, context, notSetValue) {\n var found = notSetValue;\n this.__iterate(function(v, k, c) {\n if (predicate.call(context, v, k, c)) {\n found = [k, v];\n return false;\n }\n });\n return found;\n },\n\n findKey: function(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry && entry[0];\n },\n\n findLast: function(predicate, context, notSetValue) {\n return this.toKeyedSeq().reverse().find(predicate, context, notSetValue);\n },\n\n findLastEntry: function(predicate, context, notSetValue) {\n return this.toKeyedSeq().reverse().findEntry(predicate, context, notSetValue);\n },\n\n findLastKey: function(predicate, context) {\n return this.toKeyedSeq().reverse().findKey(predicate, context);\n },\n\n first: function() {\n return this.find(returnTrue);\n },\n\n flatMap: function(mapper, context) {\n return reify(this, flatMapFactory(this, mapper, context));\n },\n\n flatten: function(depth) {\n return reify(this, flattenFactory(this, depth, true));\n },\n\n fromEntrySeq: function() {\n return new FromEntriesSequence(this);\n },\n\n get: function(searchKey, notSetValue) {\n return this.find(function(_, key) {return is(key, searchKey)}, undefined, notSetValue);\n },\n\n getIn: function(searchKeyPath, notSetValue) {\n var nested = this;\n // Note: in an ES6 environment, we would prefer:\n // for (var key of searchKeyPath) {\n var iter = forceIterator(searchKeyPath);\n var step;\n while (!(step = iter.next()).done) {\n var key = step.value;\n nested = nested && nested.get ? nested.get(key, NOT_SET) : NOT_SET;\n if (nested === NOT_SET) {\n return notSetValue;\n }\n }\n return nested;\n },\n\n groupBy: function(grouper, context) {\n return groupByFactory(this, grouper, context);\n },\n\n has: function(searchKey) {\n return this.get(searchKey, NOT_SET) !== NOT_SET;\n },\n\n hasIn: function(searchKeyPath) {\n return this.getIn(searchKeyPath, NOT_SET) !== NOT_SET;\n },\n\n isSubset: function(iter) {\n iter = typeof iter.includes === 'function' ? iter : Iterable(iter);\n return this.every(function(value ) {return iter.includes(value)});\n },\n\n isSuperset: function(iter) {\n iter = typeof iter.isSubset === 'function' ? iter : Iterable(iter);\n return iter.isSubset(this);\n },\n\n keyOf: function(searchValue) {\n return this.findKey(function(value ) {return is(value, searchValue)});\n },\n\n keySeq: function() {\n return this.toSeq().map(keyMapper).toIndexedSeq();\n },\n\n last: function() {\n return this.toSeq().reverse().first();\n },\n\n lastKeyOf: function(searchValue) {\n return this.toKeyedSeq().reverse().keyOf(searchValue);\n },\n\n max: function(comparator) {\n return maxFactory(this, comparator);\n },\n\n maxBy: function(mapper, comparator) {\n return maxFactory(this, comparator, mapper);\n },\n\n min: function(comparator) {\n return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator);\n },\n\n minBy: function(mapper, comparator) {\n return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator, mapper);\n },\n\n rest: function() {\n return this.slice(1);\n },\n\n skip: function(amount) {\n return this.slice(Math.max(0, amount));\n },\n\n skipLast: function(amount) {\n return reify(this, this.toSeq().reverse().skip(amount).reverse());\n },\n\n skipWhile: function(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, true));\n },\n\n skipUntil: function(predicate, context) {\n return this.skipWhile(not(predicate), context);\n },\n\n sortBy: function(mapper, comparator) {\n return reify(this, sortFactory(this, comparator, mapper));\n },\n\n take: function(amount) {\n return this.slice(0, Math.max(0, amount));\n },\n\n takeLast: function(amount) {\n return reify(this, this.toSeq().reverse().take(amount).reverse());\n },\n\n takeWhile: function(predicate, context) {\n return reify(this, takeWhileFactory(this, predicate, context));\n },\n\n takeUntil: function(predicate, context) {\n return this.takeWhile(not(predicate), context);\n },\n\n valueSeq: function() {\n return this.toIndexedSeq();\n },\n\n\n // ### Hashable Object\n\n hashCode: function() {\n return this.__hash || (this.__hash = hashIterable(this));\n }\n\n\n // ### Internal\n\n // abstract __iterate(fn, reverse)\n\n // abstract __iterator(type, reverse)\n });\n\n // var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@';\n // var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@';\n // var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@';\n // var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@';\n\n var IterablePrototype = Iterable.prototype;\n IterablePrototype[IS_ITERABLE_SENTINEL] = true;\n IterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.values;\n IterablePrototype.__toJS = IterablePrototype.toArray;\n IterablePrototype.__toStringMapper = quoteString;\n IterablePrototype.inspect =\n IterablePrototype.toSource = function() { return this.toString(); };\n IterablePrototype.chain = IterablePrototype.flatMap;\n IterablePrototype.contains = IterablePrototype.includes;\n\n mixin(KeyedIterable, {\n\n // ### More sequential methods\n\n flip: function() {\n return reify(this, flipFactory(this));\n },\n\n mapEntries: function(mapper, context) {var this$0 = this;\n var iterations = 0;\n return reify(this,\n this.toSeq().map(\n function(v, k) {return mapper.call(context, [k, v], iterations++, this$0)}\n ).fromEntrySeq()\n );\n },\n\n mapKeys: function(mapper, context) {var this$0 = this;\n return reify(this,\n this.toSeq().flip().map(\n function(k, v) {return mapper.call(context, k, v, this$0)}\n ).flip()\n );\n }\n\n });\n\n var KeyedIterablePrototype = KeyedIterable.prototype;\n KeyedIterablePrototype[IS_KEYED_SENTINEL] = true;\n KeyedIterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.entries;\n KeyedIterablePrototype.__toJS = IterablePrototype.toObject;\n KeyedIterablePrototype.__toStringMapper = function(v, k) {return JSON.stringify(k) + ': ' + quoteString(v)};\n\n\n\n mixin(IndexedIterable, {\n\n // ### Conversion to other types\n\n toKeyedSeq: function() {\n return new ToKeyedSequence(this, false);\n },\n\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n filter: function(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, false));\n },\n\n findIndex: function(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n indexOf: function(searchValue) {\n var key = this.keyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n lastIndexOf: function(searchValue) {\n var key = this.lastKeyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n reverse: function() {\n return reify(this, reverseFactory(this, false));\n },\n\n slice: function(begin, end) {\n return reify(this, sliceFactory(this, begin, end, false));\n },\n\n splice: function(index, removeNum /*, ...values*/) {\n var numArgs = arguments.length;\n removeNum = Math.max(removeNum | 0, 0);\n if (numArgs === 0 || (numArgs === 2 && !removeNum)) {\n return this;\n }\n // If index is negative, it should resolve relative to the size of the\n // collection. However size may be expensive to compute if not cached, so\n // only call count() if the number is in fact negative.\n index = resolveBegin(index, index < 0 ? this.count() : this.size);\n var spliced = this.slice(0, index);\n return reify(\n this,\n numArgs === 1 ?\n spliced :\n spliced.concat(arrCopy(arguments, 2), this.slice(index + removeNum))\n );\n },\n\n\n // ### More collection methods\n\n findLastIndex: function(predicate, context) {\n var entry = this.findLastEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n first: function() {\n return this.get(0);\n },\n\n flatten: function(depth) {\n return reify(this, flattenFactory(this, depth, false));\n },\n\n get: function(index, notSetValue) {\n index = wrapIndex(this, index);\n return (index < 0 || (this.size === Infinity ||\n (this.size !== undefined && index > this.size))) ?\n notSetValue :\n this.find(function(_, key) {return key === index}, undefined, notSetValue);\n },\n\n has: function(index) {\n index = wrapIndex(this, index);\n return index >= 0 && (this.size !== undefined ?\n this.size === Infinity || index < this.size :\n this.indexOf(index) !== -1\n );\n },\n\n interpose: function(separator) {\n return reify(this, interposeFactory(this, separator));\n },\n\n interleave: function(/*...iterables*/) {\n var iterables = [this].concat(arrCopy(arguments));\n var zipped = zipWithFactory(this.toSeq(), IndexedSeq.of, iterables);\n var interleaved = zipped.flatten(true);\n if (zipped.size) {\n interleaved.size = zipped.size * iterables.length;\n }\n return reify(this, interleaved);\n },\n\n keySeq: function() {\n return Range(0, this.size);\n },\n\n last: function() {\n return this.get(-1);\n },\n\n skipWhile: function(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, false));\n },\n\n zip: function(/*, ...iterables */) {\n var iterables = [this].concat(arrCopy(arguments));\n return reify(this, zipWithFactory(this, defaultZipper, iterables));\n },\n\n zipWith: function(zipper/*, ...iterables */) {\n var iterables = arrCopy(arguments);\n iterables[0] = this;\n return reify(this, zipWithFactory(this, zipper, iterables));\n }\n\n });\n\n IndexedIterable.prototype[IS_INDEXED_SENTINEL] = true;\n IndexedIterable.prototype[IS_ORDERED_SENTINEL] = true;\n\n\n\n mixin(SetIterable, {\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n get: function(value, notSetValue) {\n return this.has(value) ? value : notSetValue;\n },\n\n includes: function(value) {\n return this.has(value);\n },\n\n\n // ### More sequential methods\n\n keySeq: function() {\n return this.valueSeq();\n }\n\n });\n\n SetIterable.prototype.has = IterablePrototype.includes;\n SetIterable.prototype.contains = SetIterable.prototype.includes;\n\n\n // Mixin subclasses\n\n mixin(KeyedSeq, KeyedIterable.prototype);\n mixin(IndexedSeq, IndexedIterable.prototype);\n mixin(SetSeq, SetIterable.prototype);\n\n mixin(KeyedCollection, KeyedIterable.prototype);\n mixin(IndexedCollection, IndexedIterable.prototype);\n mixin(SetCollection, SetIterable.prototype);\n\n\n // #pragma Helper functions\n\n function keyMapper(v, k) {\n return k;\n }\n\n function entryMapper(v, k) {\n return [k, v];\n }\n\n function not(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n }\n }\n\n function neg(predicate) {\n return function() {\n return -predicate.apply(this, arguments);\n }\n }\n\n function quoteString(value) {\n return typeof value === 'string' ? JSON.stringify(value) : String(value);\n }\n\n function defaultZipper() {\n return arrCopy(arguments);\n }\n\n function defaultNegComparator(a, b) {\n return a < b ? 1 : a > b ? -1 : 0;\n }\n\n function hashIterable(iterable) {\n if (iterable.size === Infinity) {\n return 0;\n }\n var ordered = isOrdered(iterable);\n var keyed = isKeyed(iterable);\n var h = ordered ? 1 : 0;\n var size = iterable.__iterate(\n keyed ?\n ordered ?\n function(v, k) { h = 31 * h + hashMerge(hash(v), hash(k)) | 0; } :\n function(v, k) { h = h + hashMerge(hash(v), hash(k)) | 0; } :\n ordered ?\n function(v ) { h = 31 * h + hash(v) | 0; } :\n function(v ) { h = h + hash(v) | 0; }\n );\n return murmurHashOfSize(size, h);\n }\n\n function murmurHashOfSize(size, h) {\n h = imul(h, 0xCC9E2D51);\n h = imul(h << 15 | h >>> -15, 0x1B873593);\n h = imul(h << 13 | h >>> -13, 5);\n h = (h + 0xE6546B64 | 0) ^ size;\n h = imul(h ^ h >>> 16, 0x85EBCA6B);\n h = imul(h ^ h >>> 13, 0xC2B2AE35);\n h = smi(h ^ h >>> 16);\n return h;\n }\n\n function hashMerge(a, b) {\n return a ^ b + 0x9E3779B9 + (a << 6) + (a >> 2) | 0; // int\n }\n\n var Immutable = {\n\n Iterable: Iterable,\n\n Seq: Seq,\n Collection: Collection,\n Map: Map,\n OrderedMap: OrderedMap,\n List: List,\n Stack: Stack,\n Set: Set,\n OrderedSet: OrderedSet,\n\n Record: Record,\n Range: Range,\n Repeat: Repeat,\n\n is: is,\n fromJS: fromJS\n\n };\n\n return Immutable;\n\n}));","/*** IMPORTS FROM imports-loader ***/\nvar Blockly = require(\"../shim/blocks_compressed_vertical\");\nvar goog = require(\"../shim/blockly_compressed_vertical.goog\");\n\n/**\n * @license\n * Visual Blocks Language\n *\n * Copyright 2012 Google Inc.\n * https://developers.google.com/blockly/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview English strings.\n * @author ascii@media.mit.edu (Andrew Sliwinski)\n *\n * After modifying this file, run `npm run translate` from the root directory\n * to regenerate `./msg/json/en.json`.\n * IMPORTANT:\n * All message strings must use single quotes for the scripts to work properly\n */\n'use strict';\n\ngoog.provide('Blockly.Msg.en');\n\ngoog.require('Blockly.Msg');\n\n// Control blocks\nBlockly.Msg.CONTROL_FOREVER = 'forever';\nBlockly.Msg.CONTROL_REPEAT = 'repeat %1';\nBlockly.Msg.CONTROL_IF = 'if %1 then';\nBlockly.Msg.CONTROL_ELSE = 'else';\nBlockly.Msg.CONTROL_STOP = 'stop';\nBlockly.Msg.CONTROL_STOP_ALL = 'all';\nBlockly.Msg.CONTROL_STOP_THIS = 'this script';\nBlockly.Msg.CONTROL_STOP_OTHER = 'other scripts in sprite';\nBlockly.Msg.CONTROL_WAIT = 'wait %1 seconds';\nBlockly.Msg.CONTROL_WAITUNTIL = 'wait until %1';\nBlockly.Msg.CONTROL_REPEATUNTIL = 'repeat until %1';\nBlockly.Msg.CONTROL_WHILE = 'while %1';\nBlockly.Msg.CONTROL_FOREACH = 'for each %1 in %2';\nBlockly.Msg.CONTROL_STARTASCLONE = 'when I start as a clone';\nBlockly.Msg.CONTROL_CREATECLONEOF = 'create clone of %1';\nBlockly.Msg.CONTROL_CREATECLONEOF_MYSELF = 'myself';\nBlockly.Msg.CONTROL_DELETETHISCLONE = 'delete this clone';\nBlockly.Msg.CONTROL_COUNTER = 'counter';\nBlockly.Msg.CONTROL_INCRCOUNTER = 'increment counter';\nBlockly.Msg.CONTROL_CLEARCOUNTER = 'clear counter';\nBlockly.Msg.CONTROL_ALLATONCE = 'all at once';\n\n// Data blocks\nBlockly.Msg.DATA_SETVARIABLETO = 'set %1 to %2';\nBlockly.Msg.DATA_CHANGEVARIABLEBY = 'change %1 by %2';\nBlockly.Msg.DATA_SHOWVARIABLE = 'show variable %1';\nBlockly.Msg.DATA_HIDEVARIABLE = 'hide variable %1';\nBlockly.Msg.DATA_ADDTOLIST = 'add %1 to %2';\nBlockly.Msg.DATA_DELETEOFLIST = 'delete %1 of %2';\nBlockly.Msg.DATA_DELETEALLOFLIST = 'delete all of %1';\nBlockly.Msg.DATA_INSERTATLIST = 'insert %1 at %2 of %3';\nBlockly.Msg.DATA_REPLACEITEMOFLIST = 'replace item %1 of %2 with %3';\nBlockly.Msg.DATA_ITEMOFLIST = 'item %1 of %2';\nBlockly.Msg.DATA_ITEMNUMOFLIST = 'item # of %1 in %2';\nBlockly.Msg.DATA_LENGTHOFLIST = 'length of %1';\nBlockly.Msg.DATA_LISTCONTAINSITEM = '%1 contains %2?';\nBlockly.Msg.DATA_SHOWLIST = 'show list %1';\nBlockly.Msg.DATA_HIDELIST = 'hide list %1';\nBlockly.Msg.DATA_INDEX_ALL = 'all';\nBlockly.Msg.DATA_INDEX_LAST = 'last';\nBlockly.Msg.DATA_INDEX_RANDOM = 'random';\n\n// Event blocks\nBlockly.Msg.EVENT_WHENFLAGCLICKED = 'when %1 clicked';\nBlockly.Msg.EVENT_WHENTHISSPRITECLICKED = 'when this sprite clicked';\nBlockly.Msg.EVENT_WHENSTAGECLICKED = 'when stage clicked';\nBlockly.Msg.EVENT_WHENTOUCHINGOBJECT = 'when this sprite touches %1';\nBlockly.Msg.EVENT_WHENBROADCASTRECEIVED = 'when I receive %1';\nBlockly.Msg.EVENT_WHENBACKDROPSWITCHESTO = 'when backdrop switches to %1';\nBlockly.Msg.EVENT_WHENGREATERTHAN = 'when %1 > %2';\nBlockly.Msg.EVENT_WHENGREATERTHAN_TIMER = 'timer';\nBlockly.Msg.EVENT_WHENGREATERTHAN_LOUDNESS = 'loudness';\nBlockly.Msg.EVENT_BROADCAST = 'broadcast %1';\nBlockly.Msg.EVENT_BROADCASTANDWAIT = 'broadcast %1 and wait';\nBlockly.Msg.EVENT_WHENKEYPRESSED = 'when %1 key pressed';\nBlockly.Msg.EVENT_WHENKEYPRESSED_SPACE = 'space';\nBlockly.Msg.EVENT_WHENKEYPRESSED_LEFT = 'left arrow';\nBlockly.Msg.EVENT_WHENKEYPRESSED_RIGHT = 'right arrow';\nBlockly.Msg.EVENT_WHENKEYPRESSED_DOWN = 'down arrow';\nBlockly.Msg.EVENT_WHENKEYPRESSED_UP = 'up arrow';\nBlockly.Msg.EVENT_WHENKEYPRESSED_ANY = 'any';\n\n// Looks blocks\nBlockly.Msg.LOOKS_SAYFORSECS = 'say %1 for %2 seconds';\nBlockly.Msg.LOOKS_SAY = 'say %1';\nBlockly.Msg.LOOKS_HELLO = 'Hello!';\nBlockly.Msg.LOOKS_THINKFORSECS = 'think %1 for %2 seconds';\nBlockly.Msg.LOOKS_THINK = 'think %1';\nBlockly.Msg.LOOKS_HMM = 'Hmm...';\nBlockly.Msg.LOOKS_SHOW = 'show';\nBlockly.Msg.LOOKS_HIDE = 'hide';\nBlockly.Msg.LOOKS_HIDEALLSPRITES = 'hide all sprites';\nBlockly.Msg.LOOKS_EFFECT_COLOR = 'color';\nBlockly.Msg.LOOKS_EFFECT_FISHEYE = 'fisheye';\nBlockly.Msg.LOOKS_EFFECT_WHIRL = 'whirl';\nBlockly.Msg.LOOKS_EFFECT_PIXELATE = 'pixelate';\nBlockly.Msg.LOOKS_EFFECT_MOSAIC = 'mosaic';\nBlockly.Msg.LOOKS_EFFECT_BRIGHTNESS = 'brightness';\nBlockly.Msg.LOOKS_EFFECT_GHOST = 'ghost';\nBlockly.Msg.LOOKS_CHANGEEFFECTBY = 'change %1 effect by %2';\nBlockly.Msg.LOOKS_SETEFFECTTO = 'set %1 effect to %2';\nBlockly.Msg.LOOKS_CLEARGRAPHICEFFECTS = 'clear graphic effects';\nBlockly.Msg.LOOKS_CHANGESIZEBY = 'change size by %1';\nBlockly.Msg.LOOKS_SETSIZETO = 'set size to %1 %';\nBlockly.Msg.LOOKS_SIZE = 'size';\nBlockly.Msg.LOOKS_CHANGESTRETCHBY = 'change stretch by %1';\nBlockly.Msg.LOOKS_SETSTRETCHTO = 'set stretch to %1 %';\nBlockly.Msg.LOOKS_SWITCHCOSTUMETO = 'switch costume to %1';\nBlockly.Msg.LOOKS_NEXTCOSTUME = 'next costume';\nBlockly.Msg.LOOKS_SWITCHBACKDROPTO = 'switch backdrop to %1';\nBlockly.Msg.LOOKS_GOTOFRONTBACK = 'go to %1 layer';\nBlockly.Msg.LOOKS_GOTOFRONTBACK_FRONT = 'front';\nBlockly.Msg.LOOKS_GOTOFRONTBACK_BACK = 'back';\nBlockly.Msg.LOOKS_GOFORWARDBACKWARDLAYERS = 'go %1 %2 layers';\nBlockly.Msg.LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD = 'forward';\nBlockly.Msg.LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD = 'backward';\nBlockly.Msg.LOOKS_BACKDROPNUMBERNAME = 'backdrop %1';\nBlockly.Msg.LOOKS_COSTUMENUMBERNAME = 'costume %1';\nBlockly.Msg.LOOKS_NUMBERNAME_NUMBER = 'number';\nBlockly.Msg.LOOKS_NUMBERNAME_NAME = 'name';\nBlockly.Msg.LOOKS_SWITCHBACKDROPTOANDWAIT = 'switch backdrop to %1 and wait';\nBlockly.Msg.LOOKS_NEXTBACKDROP_BLOCK = 'next backdrop';\nBlockly.Msg.LOOKS_NEXTBACKDROP = 'next backdrop';\nBlockly.Msg.LOOKS_PREVIOUSBACKDROP = 'previous backdrop';\nBlockly.Msg.LOOKS_RANDOMBACKDROP = 'random backdrop';\n\n// Motion blocks\nBlockly.Msg.MOTION_MOVESTEPS = 'move %1 steps';\nBlockly.Msg.MOTION_TURNLEFT = 'turn %1 %2 degrees';\nBlockly.Msg.MOTION_TURNRIGHT = 'turn %1 %2 degrees';\nBlockly.Msg.MOTION_POINTINDIRECTION = 'point in direction %1';\nBlockly.Msg.MOTION_POINTTOWARDS = 'point towards %1';\nBlockly.Msg.MOTION_POINTTOWARDS_POINTER = 'mouse-pointer';\nBlockly.Msg.MOTION_POINTTOWARDS_RANDOM = 'random direction';\nBlockly.Msg.MOTION_GOTO = 'go to %1';\nBlockly.Msg.MOTION_GOTO_POINTER = 'mouse-pointer';\nBlockly.Msg.MOTION_GOTO_RANDOM = 'random position';\nBlockly.Msg.MOTION_GOTOXY = 'go to x: %1 y: %2';\nBlockly.Msg.MOTION_GLIDESECSTOXY = 'glide %1 secs to x: %2 y: %3';\nBlockly.Msg.MOTION_GLIDETO = 'glide %1 secs to %2';\nBlockly.Msg.MOTION_GLIDETO_POINTER = 'mouse-pointer';\nBlockly.Msg.MOTION_GLIDETO_RANDOM = 'random position';\nBlockly.Msg.MOTION_CHANGEXBY = 'change x by %1';\nBlockly.Msg.MOTION_SETX = 'set x to %1';\nBlockly.Msg.MOTION_CHANGEYBY = 'change y by %1';\nBlockly.Msg.MOTION_SETY = 'set y to %1';\nBlockly.Msg.MOTION_IFONEDGEBOUNCE = 'if on edge, bounce';\nBlockly.Msg.MOTION_SETROTATIONSTYLE = 'set rotation style %1';\nBlockly.Msg.MOTION_SETROTATIONSTYLE_LEFTRIGHT = 'left-right';\nBlockly.Msg.MOTION_SETROTATIONSTYLE_DONTROTATE = 'don\\'t rotate';\nBlockly.Msg.MOTION_SETROTATIONSTYLE_ALLAROUND = 'all around';\nBlockly.Msg.MOTION_XPOSITION = 'x position';\nBlockly.Msg.MOTION_YPOSITION = 'y position';\nBlockly.Msg.MOTION_DIRECTION = 'direction';\nBlockly.Msg.MOTION_SCROLLRIGHT = 'scroll right %1';\nBlockly.Msg.MOTION_SCROLLUP = 'scroll up %1';\nBlockly.Msg.MOTION_ALIGNSCENE = 'align scene %1';\nBlockly.Msg.MOTION_ALIGNSCENE_BOTTOMLEFT = 'bottom-left';\nBlockly.Msg.MOTION_ALIGNSCENE_BOTTOMRIGHT = 'bottom-right';\nBlockly.Msg.MOTION_ALIGNSCENE_MIDDLE = 'middle';\nBlockly.Msg.MOTION_ALIGNSCENE_TOPLEFT = 'top-left';\nBlockly.Msg.MOTION_ALIGNSCENE_TOPRIGHT = 'top-right';\nBlockly.Msg.MOTION_XSCROLL = 'x scroll';\nBlockly.Msg.MOTION_YSCROLL = 'y scroll';\nBlockly.Msg.MOTION_STAGE_SELECTED = 'Stage selected: no motion blocks';\n\n// Operators blocks\nBlockly.Msg.OPERATORS_ADD = '%1 + %2';\nBlockly.Msg.OPERATORS_SUBTRACT = '%1 - %2';\nBlockly.Msg.OPERATORS_MULTIPLY = '%1 * %2';\nBlockly.Msg.OPERATORS_DIVIDE = '%1 / %2';\nBlockly.Msg.OPERATORS_RANDOM = 'pick random %1 to %2';\nBlockly.Msg.OPERATORS_GT = '%1 > %2';\nBlockly.Msg.OPERATORS_LT = '%1 < %2';\nBlockly.Msg.OPERATORS_EQUALS = '%1 = %2';\nBlockly.Msg.OPERATORS_AND = '%1 and %2';\nBlockly.Msg.OPERATORS_OR = '%1 or %2';\nBlockly.Msg.OPERATORS_NOT = 'not %1';\nBlockly.Msg.OPERATORS_JOIN = 'join %1 %2';\nBlockly.Msg.OPERATORS_JOIN_APPLE = 'apple';\nBlockly.Msg.OPERATORS_JOIN_BANANA = 'banana';\nBlockly.Msg.OPERATORS_LETTEROF = 'letter %1 of %2';\nBlockly.Msg.OPERATORS_LETTEROF_APPLE = 'a';\nBlockly.Msg.OPERATORS_LENGTH = 'length of %1';\nBlockly.Msg.OPERATORS_CONTAINS = '%1 contains %2?';\nBlockly.Msg.OPERATORS_MOD = '%1 mod %2';\nBlockly.Msg.OPERATORS_ROUND = 'round %1';\nBlockly.Msg.OPERATORS_MATHOP = '%1 of %2';\nBlockly.Msg.OPERATORS_MATHOP_ABS = 'abs';\nBlockly.Msg.OPERATORS_MATHOP_FLOOR = 'floor';\nBlockly.Msg.OPERATORS_MATHOP_CEILING = 'ceiling';\nBlockly.Msg.OPERATORS_MATHOP_SQRT = 'sqrt';\nBlockly.Msg.OPERATORS_MATHOP_SIN = 'sin';\nBlockly.Msg.OPERATORS_MATHOP_COS = 'cos';\nBlockly.Msg.OPERATORS_MATHOP_TAN = 'tan';\nBlockly.Msg.OPERATORS_MATHOP_ASIN = 'asin';\nBlockly.Msg.OPERATORS_MATHOP_ACOS = 'acos';\nBlockly.Msg.OPERATORS_MATHOP_ATAN = 'atan';\nBlockly.Msg.OPERATORS_MATHOP_LN = 'ln';\nBlockly.Msg.OPERATORS_MATHOP_LOG = 'log';\nBlockly.Msg.OPERATORS_MATHOP_EEXP = 'e ^';\nBlockly.Msg.OPERATORS_MATHOP_10EXP = '10 ^';\n\n// Procedures blocks\nBlockly.Msg.PROCEDURES_DEFINITION = 'define %1';\n\n// Sensing blocks\nBlockly.Msg.SENSING_TOUCHINGOBJECT = 'touching %1?';\nBlockly.Msg.SENSING_TOUCHINGOBJECT_POINTER = 'mouse-pointer';\nBlockly.Msg.SENSING_TOUCHINGOBJECT_EDGE = 'edge';\nBlockly.Msg.SENSING_TOUCHINGCOLOR = 'touching color %1?';\nBlockly.Msg.SENSING_COLORISTOUCHINGCOLOR = 'color %1 is touching %2?';\nBlockly.Msg.SENSING_DISTANCETO = 'distance to %1';\nBlockly.Msg.SENSING_DISTANCETO_POINTER = 'mouse-pointer';\nBlockly.Msg.SENSING_ASKANDWAIT = 'ask %1 and wait';\nBlockly.Msg.SENSING_ASK_TEXT = 'What\\'s your name?';\nBlockly.Msg.SENSING_ANSWER = 'answer';\nBlockly.Msg.SENSING_KEYPRESSED = 'key %1 pressed?';\nBlockly.Msg.SENSING_MOUSEDOWN = 'mouse down?';\nBlockly.Msg.SENSING_MOUSEX = 'mouse x';\nBlockly.Msg.SENSING_MOUSEY = 'mouse y';\nBlockly.Msg.SENSING_SETDRAGMODE = 'set drag mode %1';\nBlockly.Msg.SENSING_SETDRAGMODE_DRAGGABLE = 'draggable';\nBlockly.Msg.SENSING_SETDRAGMODE_NOTDRAGGABLE = 'not draggable';\nBlockly.Msg.SENSING_LOUDNESS = 'loudness';\nBlockly.Msg.SENSING_LOUD = 'loud?';\nBlockly.Msg.SENSING_TIMER = 'timer';\nBlockly.Msg.SENSING_RESETTIMER = 'reset timer';\nBlockly.Msg.SENSING_OF = '%1 of %2';\nBlockly.Msg.SENSING_OF_XPOSITION = 'x position';\nBlockly.Msg.SENSING_OF_YPOSITION = 'y position';\nBlockly.Msg.SENSING_OF_DIRECTION = 'direction';\nBlockly.Msg.SENSING_OF_COSTUMENUMBER = 'costume #';\nBlockly.Msg.SENSING_OF_COSTUMENAME = 'costume name';\nBlockly.Msg.SENSING_OF_SIZE = 'size';\nBlockly.Msg.SENSING_OF_VOLUME = 'volume';\nBlockly.Msg.SENSING_OF_BACKDROPNUMBER = 'backdrop #';\nBlockly.Msg.SENSING_OF_BACKDROPNAME = 'backdrop name';\nBlockly.Msg.SENSING_OF_STAGE = 'Stage';\nBlockly.Msg.SENSING_CURRENT = 'current %1';\nBlockly.Msg.SENSING_CURRENT_YEAR = 'year';\nBlockly.Msg.SENSING_CURRENT_MONTH = 'month';\nBlockly.Msg.SENSING_CURRENT_DATE = 'date';\nBlockly.Msg.SENSING_CURRENT_DAYOFWEEK = 'day of week';\nBlockly.Msg.SENSING_CURRENT_HOUR = 'hour';\nBlockly.Msg.SENSING_CURRENT_MINUTE = 'minute';\nBlockly.Msg.SENSING_CURRENT_SECOND = 'second';\nBlockly.Msg.SENSING_DAYSSINCE2000 = 'days since 2000';\nBlockly.Msg.SENSING_USERNAME = 'username';\nBlockly.Msg.SENSING_USERID = 'user id';\n\n// Sound blocks\nBlockly.Msg.SOUND_PLAY = 'start sound %1';\nBlockly.Msg.SOUND_PLAYUNTILDONE = 'play sound %1 until done';\nBlockly.Msg.SOUND_STOPALLSOUNDS = 'stop all sounds';\nBlockly.Msg.SOUND_SETEFFECTO = 'set %1 effect to %2';\nBlockly.Msg.SOUND_CHANGEEFFECTBY = 'change %1 effect by %2';\nBlockly.Msg.SOUND_CLEAREFFECTS = 'clear sound effects';\nBlockly.Msg.SOUND_EFFECTS_PITCH = 'pitch';\nBlockly.Msg.SOUND_EFFECTS_PAN = 'pan left/right';\nBlockly.Msg.SOUND_CHANGEVOLUMEBY = 'change volume by %1';\nBlockly.Msg.SOUND_SETVOLUMETO = 'set volume to %1%';\nBlockly.Msg.SOUND_VOLUME = 'volume';\nBlockly.Msg.SOUND_RECORD = 'record...';\n\n// Category labels\nBlockly.Msg.CATEGORY_MOTION = 'Motion';\nBlockly.Msg.CATEGORY_LOOKS = 'Looks';\nBlockly.Msg.CATEGORY_SOUND = 'Sound';\nBlockly.Msg.CATEGORY_EVENTS = 'Events';\nBlockly.Msg.CATEGORY_CONTROL = 'Control';\nBlockly.Msg.CATEGORY_SENSING = 'Sensing';\nBlockly.Msg.CATEGORY_OPERATORS = 'Operators';\nBlockly.Msg.CATEGORY_VARIABLES = 'Variables';\nBlockly.Msg.CATEGORY_MYBLOCKS = 'My Blocks';\n\n// Context menus\nBlockly.Msg.DUPLICATE = 'Duplicate';\nBlockly.Msg.DELETE = 'Delete';\nBlockly.Msg.ADD_COMMENT = 'Add Comment';\nBlockly.Msg.REMOVE_COMMENT = 'Remove Comment';\nBlockly.Msg.DELETE_BLOCK = 'Delete Block';\nBlockly.Msg.DELETE_X_BLOCKS = 'Delete %1 Blocks';\nBlockly.Msg.DELETE_ALL_BLOCKS = 'Delete all %1 blocks?';\nBlockly.Msg.CLEAN_UP = 'Clean up Blocks';\nBlockly.Msg.HELP = 'Help';\nBlockly.Msg.UNDO = 'Undo';\nBlockly.Msg.REDO = 'Redo';\nBlockly.Msg.EDIT_PROCEDURE = 'Edit';\nBlockly.Msg.SHOW_PROCEDURE_DEFINITION = 'Go to definition';\nBlockly.Msg.WORKSPACE_COMMENT_DEFAULT_TEXT = 'Say something...';\n\n// Color\nBlockly.Msg.COLOUR_HUE_LABEL = 'Color';\nBlockly.Msg.COLOUR_SATURATION_LABEL = 'Saturation';\nBlockly.Msg.COLOUR_BRIGHTNESS_LABEL = 'Brightness';\n\n// Variables\n// @todo Remove these once fully managed by Scratch VM / Scratch GUI\nBlockly.Msg.CHANGE_VALUE_TITLE = 'Change value:';\nBlockly.Msg.RENAME_VARIABLE = 'Rename variable';\nBlockly.Msg.RENAME_VARIABLE_TITLE = 'Rename all \"%1\" variables to:';\nBlockly.Msg.RENAME_VARIABLE_MODAL_TITLE = 'Rename Variable';\nBlockly.Msg.NEW_VARIABLE = 'Make a Variable';\nBlockly.Msg.NEW_VARIABLE_TITLE = 'New variable name:';\nBlockly.Msg.VARIABLE_MODAL_TITLE = 'New Variable';\nBlockly.Msg.VARIABLE_ALREADY_EXISTS = 'A variable named \"%1\" already exists.';\nBlockly.Msg.VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE = 'A variable named \"%1\" already exists for another variable of type \"%2\".';\nBlockly.Msg.DELETE_VARIABLE_CONFIRMATION = 'Delete %1 uses of the \"%2\" variable?';\nBlockly.Msg.CANNOT_DELETE_VARIABLE_PROCEDURE = 'Can\\'t delete the variable \"%1\" because it\\'s part of the definition of the function \"%2\"';\nBlockly.Msg.DELETE_VARIABLE = 'Delete the \"%1\" variable';\n\n// Custom Procedures\n// @todo Remove these once fully managed by Scratch VM / Scratch GUI\nBlockly.Msg.NEW_PROCEDURE = 'Make a Block';\nBlockly.Msg.PROCEDURE_ALREADY_EXISTS = 'A procedure named \"%1\" already exists.';\nBlockly.Msg.PROCEDURE_DEFAULT_NAME = 'block name';\n\n// Lists\n// @todo Remove these once fully managed by Scratch VM / Scratch GUI\nBlockly.Msg.NEW_LIST = 'Make a List';\nBlockly.Msg.NEW_LIST_TITLE = 'New list name:';\nBlockly.Msg.LIST_MODAL_TITLE = 'New List';\nBlockly.Msg.LIST_ALREADY_EXISTS = 'A list named \"%1\" already exists.';\nBlockly.Msg.RENAME_LIST_TITLE = 'Rename all \"%1\" lists to:';\nBlockly.Msg.RENAME_LIST_MODAL_TITLE = 'Rename List';\nBlockly.Msg.DEFAULT_LIST_ITEM = 'thing';\nBlockly.Msg.DELETE_LIST = 'Delete the \"%1\" list';\nBlockly.Msg.RENAME_LIST = 'Rename list';\n\n// Broadcast Messages\n// @todo Remove these once fully managed by Scratch VM / Scratch GUI\nBlockly.Msg.NEW_BROADCAST_MESSAGE = 'New message';\nBlockly.Msg.NEW_BROADCAST_MESSAGE_TITLE = 'New message name:';\nBlockly.Msg.BROADCAST_MODAL_TITLE = 'New Message';\nBlockly.Msg.DEFAULT_BROADCAST_MESSAGE_NAME = 'message1';\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = Blockly;\n","/*** IMPORTS FROM imports-loader ***/\nvar Blockly = require(\"../shim/blocks_compressed_vertical-blockly_compressed_vertical-messages\");\nvar goog = require(\"../shim/blockly_compressed_vertical.goog\");\n\n// This file was automatically generated. Do not modify.\n\n'use strict';\n\ngoog.provide('Blockly.ScratchMsgs.allLocales');\n\ngoog.require('Blockly.ScratchMsgs');\n\n\nBlockly.ScratchMsgs.locales[\"ab\"] =\n{\n \"CONTROL_FOREVER\": \"инагӡалатәуп\",\n \"CONTROL_REPEAT\": \"инагӡалатәуп %1 - нтә\",\n \"CONTROL_IF\": \"%1 акәзар\",\n \"CONTROL_ELSE\": \"акәымзар\",\n \"CONTROL_STOP\": \"иаанкылатәуп\",\n \"CONTROL_STOP_ALL\": \"зегьы\",\n \"CONTROL_STOP_THIS\": \"ари апрограмма\",\n \"CONTROL_STOP_OTHER\": \"анагӡаҩ егьырҭ ипрограммақәа\",\n \"CONTROL_WAIT\": \"иԥштәуп %1 секундк\",\n \"CONTROL_WAITUNTIL\": \"иԥштәуп %1 -нӡа\",\n \"CONTROL_REPEATUNTIL\": \"инагӡалатәуп %1 акәымзар\",\n \"CONTROL_WHILE\": \"%1 иашанаҵ\",\n \"CONTROL_FOREACH\": \"рыцԥхьаӡа %1 рзы %2 аҟны\",\n \"CONTROL_STARTASCLONE\": \"сара аклон ҳасабла саналаго\",\n \"CONTROL_CREATECLONEOF\": \"иаԥҵатәуп аклон %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"сара исеиԥшу\",\n \"CONTROL_DELETETHISCLONE\": \"ианыхтәуп ари аклон\",\n \"CONTROL_COUNTER\": \"аԥхьаӡага\",\n \"CONTROL_INCRCOUNTER\": \"аԥхьаӡага иазырҳатәуп\",\n \"CONTROL_CLEARCOUNTER\": \"ирыцқьатәуп аԥхьаӡага\",\n \"CONTROL_ALLATONCE\": \"зегьы иаразнак\",\n \"DATA_SETVARIABLETO\": \"%1 иаҭатәуп %2 \",\n \"DATA_CHANGEVARIABLEBY\": \"иԥсахтәуп %1 %2 ала\",\n \"DATA_SHOWVARIABLE\": \"иаарԥштәуп аҽеиҭак %1\",\n \"DATA_HIDEVARIABLE\": \"иҵәахтәуп аҽеиҭак %1\",\n \"DATA_ADDTOLIST\": \"иацҵатәуп %1 %2 ахь \",\n \"DATA_DELETEOFLIST\": \"ианыхтәуп %1 %2 аҟынтәи \",\n \"DATA_DELETEALLOFLIST\": \"ианыхтәуп зегьы %1 \",\n \"DATA_INSERTATLIST\": \"%3 аҟны ибжьаргылатәуп %1 %2 аҭыԥан \",\n \"DATA_REPLACEITEMOFLIST\": \"%2 аҟны иԥсахтәуп аелемент %1 %3 ала \",\n \"DATA_ITEMOFLIST\": \"аелемент %1 %2 аҟны\",\n \"DATA_ITEMNUMOFLIST\": \"апункт # %1 аҟынтәи %2 аҟны\",\n \"DATA_LENGTHOFLIST\": \"%1 аура\",\n \"DATA_LISTCONTAINSITEM\": \"%1 иаҵанакуама %2?\",\n \"DATA_SHOWLIST\": \"иаарԥштәуп ахьӡынҵа %1\",\n \"DATA_HIDELIST\": \"иҵәахтәуп ахьӡынҵа %1\",\n \"DATA_INDEX_ALL\": \"зегьы\",\n \"DATA_INDEX_LAST\": \"аҵыхәтәантәи\",\n \"DATA_INDEX_RANDOM\": \"иарбанзаалакь\",\n \"EVENT_WHENFLAGCLICKED\": \"%1 ҳанақәыӷәӷәалакь\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"анагӡаҩ ҳаниқәыӷәӷәалакь\",\n \"EVENT_WHENSTAGECLICKED\": \"асцена ҳанақәыӷәӷәалакь\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"ари анагӡаҩ %1 данадкьысло\",\n \"EVENT_WHENBROADCASTRECEIVED\": \" %1 аус арура\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"аҿаԥшыра %1 ала аҽанаԥсахуа \",\n \"EVENT_WHENGREATERTHAN\": \"%1 > %2 акәзар\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"аамҭарбага\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"абжьы адура\",\n \"EVENT_BROADCAST\": \"идәықәҵатәуп %1 \",\n \"EVENT_BROADCASTANDWAIT\": \"идәықәҵатәуп %1 нас иԥштәуп\",\n \"EVENT_WHENKEYPRESSED\": \"аклавиша %1 ҳанақәыӷәӷәалакь\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"абжьажьга\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"ахыц арӷьарахь\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"ахыц армарахь\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"ахыц алада\",\n \"EVENT_WHENKEYPRESSED_UP\": \"ахыц аҩада\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"иарбанзаалакь\",\n \"LOOKS_SAYFORSECS\": \"иҳәалатәуп %1 %2 секундк \",\n \"LOOKS_SAY\": \"иҳәатәуп %1 \",\n \"LOOKS_HELLO\": \"Салам!\",\n \"LOOKS_THINKFORSECS\": \"ахәыцра %1 %2 секундк \",\n \"LOOKS_THINK\": \"ахәыцра %1 \",\n \"LOOKS_HMM\": \"М-м-м...\",\n \"LOOKS_SHOW\": \"ацәырҵра\",\n \"LOOKS_HIDE\": \"аҽыҵәахра\",\n \"LOOKS_HIDEALLSPRITES\": \"иҵәахтәуп анагӡаҩцәа зегьы\",\n \"LOOKS_EFFECT_COLOR\": \"аԥштәы\",\n \"LOOKS_EFFECT_FISHEYE\": \"аԥсыӡ аблақәа\",\n \"LOOKS_EFFECT_WHIRL\": \"акьаҳәхара\",\n \"LOOKS_EFFECT_PIXELATE\": \"апиксельқәа рыԥсахра\",\n \"LOOKS_EFFECT_MOSAIC\": \"амозаика\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"ажжара\",\n \"LOOKS_EFFECT_GHOST\": \"алаԥшҵашәара\",\n \"LOOKS_CHANGEEFFECTBY\": \"иԥсахтәуп аеффект %1 %2 ала \",\n \"LOOKS_SETEFFECTTO\": \"иқәыргылатәуп аеффект %1 %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"иқәгатәуп аграфикатә еффектқәа\",\n \"LOOKS_CHANGESIZEBY\": \"иԥсахтәуп ашәагаа %1 ала\",\n \"LOOKS_SETSIZETO\": \"иқәыргылатәуп ашәагаа %1 % \",\n \"LOOKS_SIZE\": \"ашәагаа\",\n \"LOOKS_CHANGESTRETCHBY\": \"иԥсахтәуп арххара %1 ала \",\n \"LOOKS_SETSTRETCHTO\": \"иқыргылатәуп арххара %1\",\n \"LOOKS_SWITCHCOSTUMETO\": \"иԥсахтәуп акостиум %1 ала\",\n \"LOOKS_NEXTCOSTUME\": \"анаҩстәи акостиум\",\n \"LOOKS_SWITCHBACKDROPTO\": \"иԥсахтәуп аҿаԥшыра %1 ала\",\n \"LOOKS_GOTOFRONTBACK\": \"ииастәуп %1 аҿыгҳара ахь \",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"аԥхьаҟатәи\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"ашьҭахьҟатәи\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"ииастәуп %1 %2 ҿыгҳарак \",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"ԥхьаҟа\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"шьҭахьҟа\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"аҿаԥшыра %1 \",\n \"LOOKS_COSTUMENUMBERNAME\": \"акостиум %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"аномер\",\n \"LOOKS_NUMBERNAME_NAME\": \"ахьӡ\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"иԥсахтәуп аҿаԥшыра %1 ала нас иԥштәуп \",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"анаҩстәи аҿаԥшыра\",\n \"LOOKS_NEXTBACKDROP\": \"анаҩстәи аҿаԥшыра\",\n \"LOOKS_PREVIOUSBACKDROP\": \"аԥхьатәи аҿаԥшыра\",\n \"LOOKS_RANDOMBACKDROP\": \"иарбанзаалакь аҿаԥшыра\",\n \"MOTION_MOVESTEPS\": \"ицатәуп %1 шьаҿак\",\n \"MOTION_TURNLEFT\": \"иргьежьтәуп %1 %2 градус рыла \",\n \"MOTION_TURNRIGHT\": \"иргьежьтәуп %1 %2 градус рыла \",\n \"MOTION_POINTINDIRECTION\": \"инарҳәтәуп %1 ахь\",\n \"MOTION_POINTTOWARDS\": \"%1 ахь инаҳәтәуп\",\n \"MOTION_POINTTOWARDS_POINTER\": \"аҳәынаԥ арбага\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"машәыршақәтәи ахырхарҭа\",\n \"MOTION_GOTO\": \"ииастәуп %1 ахь\",\n \"MOTION_GOTO_POINTER\": \"аҳәынаԥ арбага\",\n \"MOTION_GOTO_RANDOM\": \"иарбанзаалакь апозициа\",\n \"MOTION_GOTOXY\": \"ииастәуп x: %1 y: %2 ахь \",\n \"MOTION_GLIDESECSTOXY\": \"иқәҵәраатәуп x: %2 y: %3 ахь %1 секундк \",\n \"MOTION_GLIDETO\": \"иқәҵәраатәуп %2 ахь %1 секундк \",\n \"MOTION_GLIDETO_POINTER\": \"аҳәынаԥ арбага\",\n \"MOTION_GLIDETO_RANDOM\": \"иарбанзаалакь апозициа\",\n \"MOTION_CHANGEXBY\": \"иԥсахтәуп x %1 ала \",\n \"MOTION_SETX\": \"иқәыргылатәуп x %1 аҟны \",\n \"MOTION_CHANGEYBY\": \"иԥсахтәуп y %1 ала \",\n \"MOTION_SETY\": \"иқәыргылатәуп y %1 аҟны \",\n \"MOTION_IFONEDGEBOUNCE\": \"акьыԥшь акәзар, иадԥатәуп\",\n \"MOTION_SETROTATIONSTYLE\": \"иқәыргылатәуп аргьежьра астиль %1 \",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"армарахь-арӷьарахь\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"иргьежьтәӡам\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"иргьежьтәуп\",\n \"MOTION_XPOSITION\": \"x аҭыԥ\",\n \"MOTION_YPOSITION\": \"y аҭыԥ\",\n \"MOTION_DIRECTION\": \"ахырхарҭа\",\n \"MOTION_SCROLLRIGHT\": \"иҭарҵәитәуп арӷьарахь %1\",\n \"MOTION_SCROLLUP\": \"иҭарҵәитәуп хыхь %1\",\n \"MOTION_ALIGNSCENE\": \"еиҟаратәтәуп асцена %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"ҵаҟа-армарахьтәи\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"ҵаҟа-арӷьарахьтәи\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"агәҭа\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"хыхьтәи-армарахьтәи\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"хыхьтәи-арӷьарахьтәи\",\n \"MOTION_XSCROLL\": \"горизонталла аҭаргьежьра\",\n \"MOTION_YSCROLL\": \"вертикалла аҭаргьежьра\",\n \"MOTION_STAGE_SELECTED\": \"Асцена алхуп: иҟам аиҭаҵратә блокқәа\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"иарбанзаалакь %1 -и %2 -и рыбжьара \",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 - еи %2 - еи\",\n \"OPERATORS_OR\": \"%1 ма %2\",\n \"OPERATORS_NOT\": \"%1 акәӡам\",\n \"OPERATORS_JOIN\": \"еиԥшьтәуп %1 %2 \",\n \"OPERATORS_JOIN_APPLE\": \"аҵәа\",\n \"OPERATORS_JOIN_BANANA\": \"абанан\",\n \"OPERATORS_LETTEROF\": \"асимвол %1 %2 аҟны\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"%1 аура\",\n \"OPERATORS_CONTAINS\": \"%1 иаҵанакуама %2?\",\n \"OPERATORS_MOD\": \"%1 mod %2\",\n \"OPERATORS_ROUND\": \"ихаргьежьтәуп %1 \",\n \"OPERATORS_MATHOP\": \"%1 %2\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"еиҵоу еибгоу\",\n \"OPERATORS_MATHOP_CEILING\": \"еиҳау еибгоу\",\n \"OPERATORS_MATHOP_SQRT\": \"sqrt\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"еиҿкаатәуп %1\",\n \"SENSING_TOUCHINGOBJECT\": \"иадкьыслома %1? \",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"аҳәынаԥ арбага\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"аҵкарқәа\",\n \"SENSING_TOUCHINGCOLOR\": \"иадкьыслома аԥштәы %1? \",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"аԥштәы %1 иадкьыслома %2? \",\n \"SENSING_DISTANCETO\": \"%1 аҟынӡа ибжьоу\",\n \"SENSING_DISTANCETO_POINTER\": \"аҳәынаԥ арбага\",\n \"SENSING_ASKANDWAIT\": \"иазҵаатәуп %1 нас иԥштәуп \",\n \"SENSING_ASK_TEXT\": \"Иухьӡуи уара?\",\n \"SENSING_ANSWER\": \"аҭак\",\n \"SENSING_KEYPRESSED\": \"аклавиша %1 иақәыӷәӷәома? \",\n \"SENSING_MOUSEDOWN\": \"аҳәынаԥ иақәыӷәӷәома?\",\n \"SENSING_MOUSEX\": \"аҳәынаԥ x ала\",\n \"SENSING_MOUSEY\": \"аҳәынаԥ y ала\",\n \"SENSING_SETDRAGMODE\": \"анаскьагара ауама %1 \",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"ааи\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"мап\",\n \"SENSING_LOUDNESS\": \"абжьы адура\",\n \"SENSING_LOUD\": \"абжьы дуума?\",\n \"SENSING_TIMER\": \"аамҭарбага\",\n \"SENSING_RESETTIMER\": \"аамҭарбага ҿыц адәықәҵара\",\n \"SENSING_OF\": \"%1 %2 аҟынтәи\",\n \"SENSING_OF_XPOSITION\": \"x аҭыԥ\",\n \"SENSING_OF_YPOSITION\": \"y аҭыԥ\",\n \"SENSING_OF_DIRECTION\": \"ахырхарҭа\",\n \"SENSING_OF_COSTUMENUMBER\": \"акостиум №\",\n \"SENSING_OF_COSTUMENAME\": \"акостиум ахьӡ\",\n \"SENSING_OF_SIZE\": \"ашәагаа\",\n \"SENSING_OF_VOLUME\": \"абжьы адура\",\n \"SENSING_OF_BACKDROPNUMBER\": \"аҿаԥшыра №\",\n \"SENSING_OF_BACKDROPNAME\": \"аҿаԥшыра ахьӡ\",\n \"SENSING_OF_STAGE\": \"Асцена\",\n \"SENSING_CURRENT\": \"уажәтәи %1 \",\n \"SENSING_CURRENT_YEAR\": \"ашықәс\",\n \"SENSING_CURRENT_MONTH\": \"амза\",\n \"SENSING_CURRENT_DATE\": \"арыцхә\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"амчыбжь амш\",\n \"SENSING_CURRENT_HOUR\": \"асааҭ\",\n \"SENSING_CURRENT_MINUTE\": \"аминуҭ\",\n \"SENSING_CURRENT_SECOND\": \"асекунд\",\n \"SENSING_DAYSSINCE2000\": \"амшқәа 01.01.2000 инаркны \",\n \"SENSING_USERNAME\": \"алахәылаҩ ихьӡ\",\n \"SENSING_USERID\": \"Алахәылаҩ ID\",\n \"SOUND_PLAY\": \"иргатәуп абжьы %1 \",\n \"SOUND_PLAYUNTILDONE\": \"иргатәуп абжьы %1 инҵәаанӡа \",\n \"SOUND_STOPALLSOUNDS\": \"иаанкылатәуп абжьқәа зегьы\",\n \"SOUND_SETEFFECTO\": \"иқәыргылатәуп аеффект %1 %2 аҟны \",\n \"SOUND_CHANGEEFFECTBY\": \"иԥсахтәуп %1 аеффект %2 ала \",\n \"SOUND_CLEAREFFECTS\": \"иқәгатәуп абжьы аеффектқәа\",\n \"SOUND_EFFECTS_PITCH\": \"атемп\",\n \"SOUND_EFFECTS_PAN\": \"апанорама армарахь/арӷьарахь\",\n \"SOUND_CHANGEVOLUMEBY\": \"иԥсахтәуп абжьы %1 ала \",\n \"SOUND_SETVOLUMETO\": \"иқәыргылатәуп абжьы адура %1%\",\n \"SOUND_VOLUME\": \"абжьы адура\",\n \"SOUND_RECORD\": \"аҭаҩра...\",\n \"CATEGORY_MOTION\": \"Аиҭаҵра\",\n \"CATEGORY_LOOKS\": \"Аԥшра-асахьа\",\n \"CATEGORY_SOUND\": \"Абжьы\",\n \"CATEGORY_EVENTS\": \"Ахҭысқәа\",\n \"CATEGORY_CONTROL\": \"Аконтроль\",\n \"CATEGORY_SENSING\": \"Асенсорқәа\",\n \"CATEGORY_OPERATORS\": \"Аоператорқәа\",\n \"CATEGORY_VARIABLES\": \"Аҽеиҭакқәа\",\n \"CATEGORY_MYBLOCKS\": \"Сара сблокқәа\",\n \"DUPLICATE\": \"Адубликат\",\n \"DELETE\": \"Ианыхтәуп\",\n \"ADD_COMMENT\": \"Иацҵатәуп акомментари\",\n \"REMOVE_COMMENT\": \"Ианыхтәуп акомментари\",\n \"DELETE_BLOCK\": \"Ианыхтәуп аблок\",\n \"DELETE_X_BLOCKS\": \"Ианыхтәуп %1 блокк \",\n \"DELETE_ALL_BLOCKS\": \"Ианыхтәума аблокқәа %1 зегьы?\",\n \"CLEAN_UP\": \"Ирыцқьатәуп аблокқәа\",\n \"HELP\": \"Ацхыраара\",\n \"UNDO\": \"Иаҟәыхтәуп\",\n \"REDO\": \"Ирхынҳәтәуп\",\n \"EDIT_PROCEDURE\": \"Ариашара\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Ииастәуп аиқәыршәарахь\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Иҳәатәуп џьара акы...\",\n \"COLOUR_HUE_LABEL\": \"Аԥштәы\",\n \"COLOUR_SATURATION_LABEL\": \"Аԥштәылгазаара\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Ажжара\",\n \"CHANGE_VALUE_TITLE\": \"Иԥсахтәуп аҵакы:\",\n \"RENAME_VARIABLE\": \"Аҽеиҭак ахьӡ ԥсахтәуп\",\n \"RENAME_VARIABLE_TITLE\": \"Аҽеиҭакқәа \\\"%1\\\" зегь рыхьӡ ԥсахтәуп аҟны:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Аҽеиҭак ахьӡ ԥсахтәуп\",\n \"NEW_VARIABLE\": \"Иаԥҵатәуп аҽеиҭак\",\n \"NEW_VARIABLE_TITLE\": \"Аҽеиҭак ахьӡ ҿыц:\",\n \"VARIABLE_MODAL_TITLE\": \"Аҽеиҭак ҿыц\",\n \"VARIABLE_ALREADY_EXISTS\": \"Аҽеиҭак ахьӡ \\\"%1\\\" змоу ыҟоуп.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Аҽеиҭак ахьӡ \\\"%1\\\" змоу ыҟоуп аҽеиҭакқәа ртип \\\"%2\\\" аҟны. \",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Ианыхтәума алахәрақәа %1 аҽеиҭак \\\"%2\\\" азы?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Иауам аҽеиҭак \\\"%1\\\" аныхра, избанзар иара афункциа \\\"%2\\\" ашьқәыргылара иахәҭакуп \",\n \"DELETE_VARIABLE\": \"Ианыхтәуп аҽеиҭак \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Иаԥҵатәуп аблок\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Апроцедура ахьӡ \\\"%1\\\" змоу ыҟоуп.\",\n \"PROCEDURE_DEFAULT_NAME\": \"аблок ахьӡ\",\n \"NEW_LIST\": \"Ахьӡынҵа аԥҵара\",\n \"NEW_LIST_TITLE\": \"Ахьӡынҵа ахьӡ ҿыц:\",\n \"LIST_MODAL_TITLE\": \"Ахьӡынҵа ҿыц\",\n \"LIST_ALREADY_EXISTS\": \"Ахьӡынҵа ахьӡ \\\"%1\\\" змоу ыҟоуп.\",\n \"RENAME_LIST_TITLE\": \"Ахьӡынҵақәа \\\"%1\\\" зегьы рыхьӡ ԥсахтәуп аҟны:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Ахьӡынҵа ахьӡ ԥсахтәуп\",\n \"DEFAULT_LIST_ITEM\": \"џьара акы\",\n \"DELETE_LIST\": \"Ианыхтәуп ахьӡынҵа \\\"%1\\\"\",\n \"RENAME_LIST\": \"Ахьӡынҵа ахьӡ ԥсахтәуп\",\n \"NEW_BROADCAST_MESSAGE\": \"Ацҳамҭа ҿыц\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Ацҳамҭа ҿыц ахьӡ:\",\n \"BROADCAST_MODAL_TITLE\": \"Ацҳамҭа ҿыц\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"ацҳамҭа1\"\n};\n\nBlockly.ScratchMsgs.locales[\"ar\"] =\n{\n \"CONTROL_FOREVER\": \"كرِّر باستمرار\",\n \"CONTROL_REPEAT\": \"كرِّر %1 مرة\",\n \"CONTROL_IF\": \"إذا %1\",\n \"CONTROL_ELSE\": \"وإلا\",\n \"CONTROL_STOP\": \"أوقف\",\n \"CONTROL_STOP_ALL\": \"الكل\",\n \"CONTROL_STOP_THIS\": \"المقطع البرمجي الحالي\",\n \"CONTROL_STOP_OTHER\": \"المقاطع الأخرى في الكائن\",\n \"CONTROL_WAIT\": \"انتظر %1 ثانية\",\n \"CONTROL_WAITUNTIL\": \"انتظر حتى %1\",\n \"CONTROL_REPEATUNTIL\": \"كرِّر حتى %1\",\n \"CONTROL_WHILE\": \"طالما %1\",\n \"CONTROL_FOREACH\": \"من أجل %1 من %2\",\n \"CONTROL_STARTASCLONE\": \"عندما تبدأ نسخة مني\",\n \"CONTROL_CREATECLONEOF\": \"أنشئ نسخة من %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"نفسي\",\n \"CONTROL_DELETETHISCLONE\": \"احذف هذه النسخة\",\n \"CONTROL_COUNTER\": \"عداد\",\n \"CONTROL_INCRCOUNTER\": \"زد العداد\",\n \"CONTROL_CLEARCOUNTER\": \"صفِّر العداد\",\n \"CONTROL_ALLATONCE\": \"الكل مرة واحدة\",\n \"DATA_SETVARIABLETO\": \"اجعل %1 مساويًا %2\",\n \"DATA_CHANGEVARIABLEBY\": \"غيِّر %1 بمقدار %2\",\n \"DATA_SHOWVARIABLE\": \"أظهر المتغير %1\",\n \"DATA_HIDEVARIABLE\": \"أخفِ المتغير %1\",\n \"DATA_ADDTOLIST\": \"أضف %1 إلى %2\",\n \"DATA_DELETEOFLIST\": \"احذف %1 من %2\",\n \"DATA_DELETEALLOFLIST\": \"احذف كل العناصر في %1\",\n \"DATA_INSERTATLIST\": \"أدرج %1 في الموقع %2 من %3\",\n \"DATA_REPLACEITEMOFLIST\": \"استبدل %3 بالعنصر %1 من %2\",\n \"DATA_ITEMOFLIST\": \"العنصر %1 من %2\",\n \"DATA_ITEMNUMOFLIST\": \"رقم العنصر ذي القيمة %1 في %2\",\n \"DATA_LENGTHOFLIST\": \"طول %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 تحتوي %2؟\",\n \"DATA_SHOWLIST\": \"أظهر اللائحة %1\",\n \"DATA_HIDELIST\": \"أخفِ اللائحة %1\",\n \"DATA_INDEX_ALL\": \"الكل\",\n \"DATA_INDEX_LAST\": \"الأخير\",\n \"DATA_INDEX_RANDOM\": \"عشوائي\",\n \"EVENT_WHENFLAGCLICKED\": \"عند نقر %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"عند نقر هذا الكائن\",\n \"EVENT_WHENSTAGECLICKED\": \"عند نقر المنصة\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"عندما يلامس هذا الكائن %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"عندما أتلقى %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"عندما تتبدل الخلفية إلى %1\",\n \"EVENT_WHENGREATERTHAN\": \"عندما %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"المؤقت\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"الضجيج\",\n \"EVENT_BROADCAST\": \"بث %1\",\n \"EVENT_BROADCASTANDWAIT\": \"بث %1 وانتظر\",\n \"EVENT_WHENKEYPRESSED\": \"عند ضغط مفتاح %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"المسافة\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"السهم الأيسر\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"السهم الأيمن\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"السهم السفلي\",\n \"EVENT_WHENKEYPRESSED_UP\": \"السهم العلوي\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"أي مفتاح\",\n \"LOOKS_SAYFORSECS\": \"قل %1 لمدة %2 ثانية\",\n \"LOOKS_SAY\": \"قل %1\",\n \"LOOKS_HELLO\": \"السلام عليكم!\",\n \"LOOKS_THINKFORSECS\": \"فكِّر %1 لمدة %2 ثانية\",\n \"LOOKS_THINK\": \"فكِّر %1\",\n \"LOOKS_HMM\": \"هممم...\",\n \"LOOKS_SHOW\": \"اظهر\",\n \"LOOKS_HIDE\": \"اختفِ\",\n \"LOOKS_HIDEALLSPRITES\": \"أخفِ كل الكائنات\",\n \"LOOKS_EFFECT_COLOR\": \"اللون\",\n \"LOOKS_EFFECT_FISHEYE\": \"عين السمكة\",\n \"LOOKS_EFFECT_WHIRL\": \"الدوامة\",\n \"LOOKS_EFFECT_PIXELATE\": \"البكسلة\",\n \"LOOKS_EFFECT_MOSAIC\": \"الموزاييك\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"شدة الإضاءة\",\n \"LOOKS_EFFECT_GHOST\": \"الشبح\",\n \"LOOKS_CHANGEEFFECTBY\": \"غيِّر مؤثر %1 بمقدار %2\",\n \"LOOKS_SETEFFECTTO\": \"اجعل مؤثر %1 مساويًا %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"أزل المؤثرات الرسومية\",\n \"LOOKS_CHANGESIZEBY\": \"غيِّر الحجم بمقدار %1\",\n \"LOOKS_SETSIZETO\": \"اجعل الحجم مساويًا %1 ٪\",\n \"LOOKS_SIZE\": \"الحجم\",\n \"LOOKS_CHANGESTRETCHBY\": \"غيِّر المط بمقدار %1\",\n \"LOOKS_SETSTRETCHTO\": \"اجعل المط مساويًا %1 ٪\",\n \"LOOKS_SWITCHCOSTUMETO\": \"غيِّر المظهر إلى %1\",\n \"LOOKS_NEXTCOSTUME\": \"المظهر التالي\",\n \"LOOKS_SWITCHBACKDROPTO\": \"غيِّر الخلفية إلى %1\",\n \"LOOKS_GOTOFRONTBACK\": \"انتقل إلى الطبقة %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"الأولى\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"الأخيرة\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"انتقل إلى %1 %2 طبقة\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"الأمام\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"الخلف\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"%1 الخلفية\",\n \"LOOKS_COSTUMENUMBERNAME\": \"%1 المظهر\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"رقم\",\n \"LOOKS_NUMBERNAME_NAME\": \"اسم\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"غيِّر الخلفية إلى %1 وانتظر\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"الخلفية التالية\",\n \"LOOKS_NEXTBACKDROP\": \"الخلفية التالية\",\n \"LOOKS_PREVIOUSBACKDROP\": \"الخلفية السابقة\",\n \"LOOKS_RANDOMBACKDROP\": \"خلفية عشوائية\",\n \"MOTION_MOVESTEPS\": \"تحرك %1 خطوة\",\n \"MOTION_TURNLEFT\": \"استدر %1 %2 درجة\",\n \"MOTION_TURNRIGHT\": \"استدر %1 %2 درجة\",\n \"MOTION_POINTINDIRECTION\": \"اتجه نحو الاتجاه %1\",\n \"MOTION_POINTTOWARDS\": \"اتجه نحو %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"مؤشر الفأرة\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"اتجاه عشوائي\",\n \"MOTION_GOTO\": \"اذهب إلى %1\",\n \"MOTION_GOTO_POINTER\": \"مؤشر الفأرة\",\n \"MOTION_GOTO_RANDOM\": \"موضع عشوائي\",\n \"MOTION_GOTOXY\": \"اذهب إلى الموضع س: %1 ص: %2\",\n \"MOTION_GLIDESECSTOXY\": \"انزلق خلال %1 ثانية إلى الموضع س: %2 ص: %3\",\n \"MOTION_GLIDETO\": \"انزلق خلال %1 ثانية إلى %2\",\n \"MOTION_GLIDETO_POINTER\": \"مؤشر الفأرة\",\n \"MOTION_GLIDETO_RANDOM\": \"موضع عشوائي\",\n \"MOTION_CHANGEXBY\": \"غيِّر الموضع س بمقدار %1\",\n \"MOTION_SETX\": \"اجعل الموضع س مساويًا %1\",\n \"MOTION_CHANGEYBY\": \"غيِّر الموضع ص بمقدار %1\",\n \"MOTION_SETY\": \"اجعل الموضع ص مساويًا %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"ارتد إذا كنت عند الحافة\",\n \"MOTION_SETROTATIONSTYLE\": \"اجعل نمط الدوران %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"يمين - يسار\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"لا دوران\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"في جميع الاتجاهات\",\n \"MOTION_XPOSITION\": \"الموضع س\",\n \"MOTION_YPOSITION\": \"الموضع ص\",\n \"MOTION_DIRECTION\": \"الاتجاه\",\n \"MOTION_SCROLLRIGHT\": \"انزلق يمينًا %1\",\n \"MOTION_SCROLLUP\": \"انزلق للأعلى %1\",\n \"MOTION_ALIGNSCENE\": \"حاذِ المشهد %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"أسفل اليسار\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"أسفل اليمين\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"المنتصف\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"أعلى اليسار\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"أعلى اليمين\",\n \"MOTION_XSCROLL\": \"تمرير على محور س\",\n \"MOTION_YSCROLL\": \"تمرير على محور ص\",\n \"MOTION_STAGE_SELECTED\": \"المنصة محددة: لا توجد لبنات للحركة\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 × %2\",\n \"OPERATORS_DIVIDE\": \"%1 ÷ %2\",\n \"OPERATORS_RANDOM\": \"عدد عشوائي بين %1 و %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 و %2\",\n \"OPERATORS_OR\": \"%1 أو %2\",\n \"OPERATORS_NOT\": \"ليس %1\",\n \"OPERATORS_JOIN\": \"اربط %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"تفاحة\",\n \"OPERATORS_JOIN_BANANA\": \"موزة\",\n \"OPERATORS_LETTEROF\": \"الحرف %1 من %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"ت\",\n \"OPERATORS_LENGTH\": \"طول %1\",\n \"OPERATORS_CONTAINS\": \"%1 تحتوي %2؟\",\n \"OPERATORS_MOD\": \" باقي قسمة %1 على %2\",\n \"OPERATORS_ROUND\": \"تقريب %1\",\n \"OPERATORS_MATHOP\": \"%1 للقيمة %2\",\n \"OPERATORS_MATHOP_ABS\": \"القيمة المطلقة\",\n \"OPERATORS_MATHOP_FLOOR\": \"الجزء الصحيح \",\n \"OPERATORS_MATHOP_CEILING\": \"السقف\",\n \"OPERATORS_MATHOP_SQRT\": \"الجذر التربيعي\",\n \"OPERATORS_MATHOP_SIN\": \"الجيب (sin)\",\n \"OPERATORS_MATHOP_COS\": \"جيب التمام (cos)\",\n \"OPERATORS_MATHOP_TAN\": \"الظل (tan)\",\n \"OPERATORS_MATHOP_ASIN\": \"الجيب العكسي (asin)\",\n \"OPERATORS_MATHOP_ACOS\": \"جيب التمام العكسي (acos)\",\n \"OPERATORS_MATHOP_ATAN\": \"الظل العكسي (atan)\",\n \"OPERATORS_MATHOP_LN\": \"اللوغارتم الطبيعي\",\n \"OPERATORS_MATHOP_LOG\": \"اللوغارتم العشري\",\n \"OPERATORS_MATHOP_EEXP\": \"هـ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10^\",\n \"PROCEDURES_DEFINITION\": \"عرِّف %1\",\n \"SENSING_TOUCHINGOBJECT\": \"ملامس لـ %1؟\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"مؤشر الفأرة\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"الحافة\",\n \"SENSING_TOUCHINGCOLOR\": \"ملامس للون %1؟\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"اللون %1 ملامس للون %2؟\",\n \"SENSING_DISTANCETO\": \"المسافة إلى %1\",\n \"SENSING_DISTANCETO_POINTER\": \"مؤشر الفأرة\",\n \"SENSING_ASKANDWAIT\": \"اسأل %1 وانتظر\",\n \"SENSING_ASK_TEXT\": \"ما اسمك؟\",\n \"SENSING_ANSWER\": \"الإجابة\",\n \"SENSING_KEYPRESSED\": \"مفتاح %1 مضغوط؟\",\n \"SENSING_MOUSEDOWN\": \"زر الفأرة مضغوط؟\",\n \"SENSING_MOUSEX\": \"الموضع س للفأرة\",\n \"SENSING_MOUSEY\": \"الموضع ص للفأرة\",\n \"SENSING_SETDRAGMODE\": \"اجعل وضع السحب %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"قابلًا للسحب\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"غير قابل للسحب\",\n \"SENSING_LOUDNESS\": \"الضجيج\",\n \"SENSING_LOUD\": \"الصوت مرتفع؟\",\n \"SENSING_TIMER\": \"المؤقت\",\n \"SENSING_RESETTIMER\": \"صفِّر المؤقت\",\n \"SENSING_OF\": \"%1 الخاص بـ %2\",\n \"SENSING_OF_XPOSITION\": \"الموضع س\",\n \"SENSING_OF_YPOSITION\": \"الموضع ص\",\n \"SENSING_OF_DIRECTION\": \"الاتجاه\",\n \"SENSING_OF_COSTUMENUMBER\": \"رقم المظهر\",\n \"SENSING_OF_COSTUMENAME\": \"اسم المظهر\",\n \"SENSING_OF_SIZE\": \"الحجم\",\n \"SENSING_OF_VOLUME\": \"شدة الصوت\",\n \"SENSING_OF_BACKDROPNUMBER\": \"رقم الخلفية\",\n \"SENSING_OF_BACKDROPNAME\": \"اسم الخلفية\",\n \"SENSING_OF_STAGE\": \"المنصة\",\n \"SENSING_CURRENT\": \"%1 الآن\",\n \"SENSING_CURRENT_YEAR\": \"السنة\",\n \"SENSING_CURRENT_MONTH\": \"الشهر\",\n \"SENSING_CURRENT_DATE\": \"تاريخ اليوم\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"يوم الأسبوع\",\n \"SENSING_CURRENT_HOUR\": \"الساعة\",\n \"SENSING_CURRENT_MINUTE\": \"الدقيقة\",\n \"SENSING_CURRENT_SECOND\": \"الثانية\",\n \"SENSING_DAYSSINCE2000\": \"الأيام منذ عام 2000\",\n \"SENSING_USERNAME\": \"اسم المستخدم\",\n \"SENSING_USERID\": \"رقم المستخدم\",\n \"SOUND_PLAY\": \"ابدأ الصوت %1\",\n \"SOUND_PLAYUNTILDONE\": \"شغِّل الصوت %1 وانتظر انتهاءه\",\n \"SOUND_STOPALLSOUNDS\": \"أوقف كل الأصوات\",\n \"SOUND_SETEFFECTO\": \"اجعل مؤثر %1 مساويًا %2\",\n \"SOUND_CHANGEEFFECTBY\": \"غيِّر مؤثر %1 بمقدار %2\",\n \"SOUND_CLEAREFFECTS\": \"أزل المؤثرات الصوتية\",\n \"SOUND_EFFECTS_PITCH\": \"طبقة الصوت\",\n \"SOUND_EFFECTS_PAN\": \"توزيع الصوت يسار/يمين\",\n \"SOUND_CHANGEVOLUMEBY\": \"غيِّر شدة الصوت بمقدار %1\",\n \"SOUND_SETVOLUMETO\": \"اجعل شدّة الصوت مساويةً %1%\",\n \"SOUND_VOLUME\": \"شدة الصوت\",\n \"SOUND_RECORD\": \"سجِّل...\",\n \"CATEGORY_MOTION\": \"الحركة\",\n \"CATEGORY_LOOKS\": \"المظاهر\",\n \"CATEGORY_SOUND\": \"الصوت\",\n \"CATEGORY_EVENTS\": \"الأحداث\",\n \"CATEGORY_CONTROL\": \"التحكم\",\n \"CATEGORY_SENSING\": \"التحسس\",\n \"CATEGORY_OPERATORS\": \"العمليات\",\n \"CATEGORY_VARIABLES\": \"المتغيرات\",\n \"CATEGORY_MYBLOCKS\": \"لبناتي\",\n \"DUPLICATE\": \"مضاعفة\",\n \"DELETE\": \"حذف\",\n \"ADD_COMMENT\": \"إضافة تعليق\",\n \"REMOVE_COMMENT\": \"حذف التعليق\",\n \"DELETE_BLOCK\": \"حذف اللبنة\",\n \"DELETE_X_BLOCKS\": \"حذف اللبنات الـ%1\",\n \"DELETE_ALL_BLOCKS\": \"حذف اللبنات الـ%1 كلها؟\",\n \"CLEAN_UP\": \"ترتيب اللبنات\",\n \"HELP\": \"مساعدة\",\n \"UNDO\": \"تراجع\",\n \"REDO\": \"إعادة\",\n \"EDIT_PROCEDURE\": \"تعديل\",\n \"SHOW_PROCEDURE_DEFINITION\": \"اذهب إلى التعريف\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"قل شيئًا...\",\n \"COLOUR_HUE_LABEL\": \"اللون\",\n \"COLOUR_SATURATION_LABEL\": \"الإشباع\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"السطوع\",\n \"CHANGE_VALUE_TITLE\": \"غيِّر القيمة:\",\n \"RENAME_VARIABLE\": \"إعادة تسمية المتغير\",\n \"RENAME_VARIABLE_TITLE\": \"إعادة تسمية جميع المتغيرات \\\"%1\\\" إلى:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"إعادة تسمية المتغير\",\n \"NEW_VARIABLE\": \"إنشاء متغير\",\n \"NEW_VARIABLE_TITLE\": \"اسم المتغير الجديد:\",\n \"VARIABLE_MODAL_TITLE\": \"متغير جديد\",\n \"VARIABLE_ALREADY_EXISTS\": \"يوجد مسبقًا متغير بالاسم \\\"%1\\\".\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"اسم المتغير \\\"%1\\\" مستخدم مسبقًا في متغير آخر من النوع \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"احذف الاستخدامات الـ%1 للمتغير \\\"%2\\\"؟\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"لا يمكن حذف المتغير \\\"%1\\\" لأنه جزء من تعريف الدالة \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"حذف المتغير \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"إنشاء لبنة\",\n \"PROCEDURE_ALREADY_EXISTS\": \"يوجد مسبقًا إجراء بالاسم \\\"%1\\\".\",\n \"PROCEDURE_DEFAULT_NAME\": \"اسم اللبنة\",\n \"NEW_LIST\": \"إنشاء لائحة\",\n \"NEW_LIST_TITLE\": \"اسم اللائحة الجديدة:\",\n \"LIST_MODAL_TITLE\": \"لائحة جديدة\",\n \"LIST_ALREADY_EXISTS\": \"توجد مسبقًا لائحة بالاسم \\\"%1\\\".\",\n \"RENAME_LIST_TITLE\": \"إعادة تسمية جميع اللوائح \\\"%1\\\" إلى:\",\n \"RENAME_LIST_MODAL_TITLE\": \"إعادة تسمية اللائحة\",\n \"DEFAULT_LIST_ITEM\": \"غرض\",\n \"DELETE_LIST\": \"حذف اللائحة \\\"%1\\\"\",\n \"RENAME_LIST\": \"إعادة تسمية اللائحة\",\n \"NEW_BROADCAST_MESSAGE\": \"رسالة جديدة\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"اسم الرسالة الجديدة:\",\n \"BROADCAST_MODAL_TITLE\": \"رسالة جديدة\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"الرسالة 1\"\n};\n\nBlockly.ScratchMsgs.locales[\"am\"] =\n{\n \"CONTROL_FOREVER\": \"ለዘላለም\",\n \"CONTROL_REPEAT\": \"%1ን ድገም\",\n \"CONTROL_IF\": \"%1 ከሆነ\",\n \"CONTROL_ELSE\": \"ካልሆነ\",\n \"CONTROL_STOP\": \"አቁም\",\n \"CONTROL_STOP_ALL\": \"ሁሉም\",\n \"CONTROL_STOP_THIS\": \"ይሄ ስክሪፕት\",\n \"CONTROL_STOP_OTHER\": \"ሌሎች በስፕራይት ላይ ያሉ ስክሪፕቶች\",\n \"CONTROL_WAIT\": \"ጠብቅ ለ%1 ሰከንድ\",\n \"CONTROL_WAITUNTIL\": \"ጠብቅ እስከ %1\",\n \"CONTROL_REPEATUNTIL\": \"ድገም እስከ %1\",\n \"CONTROL_WHILE\": \"%1 ያለ\",\n \"CONTROL_FOREACH\": \"ለያንዳንድ %1 በ%2 ውስጥ\",\n \"CONTROL_STARTASCLONE\": \"እንደ አምሳያ ስጀምር\",\n \"CONTROL_CREATECLONEOF\": \"የ%1 አምሳያ ፍጠር\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"ራሴ\",\n \"CONTROL_DELETETHISCLONE\": \"ይህንን አምሳያ አጥፋ\",\n \"CONTROL_COUNTER\": \"ቆጣሪ\",\n \"CONTROL_INCRCOUNTER\": \"ቆጣሪውን ጨምር\",\n \"CONTROL_CLEARCOUNTER\": \"ቆጣሪውን አጽዳ\",\n \"CONTROL_ALLATONCE\": \"ሁሉም በአንድ ግዜ\",\n \"DATA_SETVARIABLETO\": \"%1 ወደ %2 ለውጥ\",\n \"DATA_CHANGEVARIABLEBY\": \"%1 በ%2 ቀይር\",\n \"DATA_SHOWVARIABLE\": \"%1ን ተለዋዋጭ አሳይ\",\n \"DATA_HIDEVARIABLE\": \"%1ን ተለዋዋጭ ደብቅ\",\n \"DATA_ADDTOLIST\": \"%1 ጨምር በ%2\",\n \"DATA_DELETEOFLIST\": \"%1 ሰርዝ ከ%2\",\n \"DATA_DELETEALLOFLIST\": \"%1 ሁሉ ሰርዝ\",\n \"DATA_INSERTATLIST\": \"%1 አስገባ በ%2 ላይ %3 ውስጥ\",\n \"DATA_REPLACEITEMOFLIST\": \"%1 ከ%2 ቀይር ወደ %3\",\n \"DATA_ITEMOFLIST\": \"%1 ከ%2\",\n \"DATA_ITEMNUMOFLIST\": \"item # of %1 in %2\",\n \"DATA_LENGTHOFLIST\": \"%1 ርዝመት\",\n \"DATA_LISTCONTAINSITEM\": \"%2 %1 አለበት?\",\n \"DATA_SHOWLIST\": \"%1ን ዝርዝር አሳይ\",\n \"DATA_HIDELIST\": \"%1ን ዝርዝር ደብቅ\",\n \"DATA_INDEX_ALL\": \"ሁሉም\",\n \"DATA_INDEX_LAST\": \"መጨረሻ\",\n \"DATA_INDEX_RANDOM\": \"የማይታወቅ\",\n \"EVENT_WHENFLAGCLICKED\": \"%1 ጠቅ ሲደረግ\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"ይህ ስፕራይት ሲነካ\",\n \"EVENT_WHENSTAGECLICKED\": \"መድረኩ ጠቅ ሲደረግ\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"ይህ ስፕራይት %1ን ሲነካ\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"%1ን ስቀበል\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"የጀርባ ምስል ወደ %1 ሲቀየር\",\n \"EVENT_WHENGREATERTHAN\": \"%1 > %2 ሲሆን\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"የጊዜ ቆጣሪ\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"ጮክታ\",\n \"EVENT_BROADCAST\": \"%1ን አሰራጭ\",\n \"EVENT_BROADCASTANDWAIT\": \"%1ን አሰራጭና ጠብቅ\",\n \"EVENT_WHENKEYPRESSED\": \"%1ን ቁልፍ ጫን ሲደረግ\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"ቦታ\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"ወደ ግራ ጠቋሚ ቀስት\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"የቀኝ አቅጣጫ ጠቋሚ ቀስት\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"ወደታች ጠቋሚ ቀስት\",\n \"EVENT_WHENKEYPRESSED_UP\": \"ወደ ላይ አቅጣጫ ጠቋሚ ቀስት\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"የቱም\",\n \"LOOKS_SAYFORSECS\": \"%1ን በል ለ%2 ሰከንድ\",\n \"LOOKS_SAY\": \"%1ን በል\",\n \"LOOKS_HELLO\": \"ሰላም!\",\n \"LOOKS_THINKFORSECS\": \"%1ን አስብ ለ%2 ሰከንድ\",\n \"LOOKS_THINK\": \"%1ን አስብ\",\n \"LOOKS_HMM\": \"እ...\",\n \"LOOKS_SHOW\": \"አሳይ\",\n \"LOOKS_HIDE\": \"ደብቅ\",\n \"LOOKS_HIDEALLSPRITES\": \"ሁሉም ስፕራይቶች ደብቅ\",\n \"LOOKS_EFFECT_COLOR\": \"ቀለም\",\n \"LOOKS_EFFECT_FISHEYE\": \"fisheye\",\n \"LOOKS_EFFECT_WHIRL\": \"መሽከርከር\",\n \"LOOKS_EFFECT_PIXELATE\": \"ፒክሰሌት\",\n \"LOOKS_EFFECT_MOSAIC\": \"ሞዚያክ\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"የብርሀን መጠን\",\n \"LOOKS_EFFECT_GHOST\": \"መንፈስ\",\n \"LOOKS_CHANGEEFFECTBY\": \"%1ን ተጽኖ በ%2 ለውጥ\",\n \"LOOKS_SETEFFECTTO\": \"%1ን ተጽኖ ወደ %2 ለውጥ\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"የምስል ማስዋብያዎቹን አጥፋ\",\n \"LOOKS_CHANGESIZEBY\": \"ልክን ቀይር በ%1\",\n \"LOOKS_SETSIZETO\": \"ልክን ወደ %1 ቀይር\",\n \"LOOKS_SIZE\": \"መጠን\",\n \"LOOKS_CHANGESTRETCHBY\": \"ዝርጋት በ%1 ቀይር\",\n \"LOOKS_SETSTRETCHTO\": \"ዝርጋት ወደ %1 ቀይር\",\n \"LOOKS_SWITCHCOSTUMETO\": \"ልብስ ወደ %1 ለውጥ\",\n \"LOOKS_NEXTCOSTUME\": \"ቀጣይ አልባስ\",\n \"LOOKS_SWITCHBACKDROPTO\": \"የጀርባ ምስል ወደ %1 ለውጥ\",\n \"LOOKS_GOTOFRONTBACK\": \"ወደ %1 ተደራቢ ሂድ\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"ፊት\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"ኋላ\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"ወደ %1ና %2 ተደራቢዎች ሂድ\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"ወደፊት\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"ወደኋላ\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"የጀርባ ምስል %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"ልብስ %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"ቁጥር\",\n \"LOOKS_NUMBERNAME_NAME\": \"ስም\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"የጀርባ ምስል ወደ %1 ለውጥና ጠብቅ\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"ቀጣይ የጀርባ ምስል\",\n \"LOOKS_NEXTBACKDROP\": \"ቀጣይ የጀርባ ምስል\",\n \"LOOKS_PREVIOUSBACKDROP\": \"ቀድሞ የነበረው የጀርባ ምስል\",\n \"LOOKS_RANDOMBACKDROP\": \"ራንደም የጀርባ ምስል\",\n \"MOTION_MOVESTEPS\": \"%1 እርምጃዎች ተንቀሳቀስ\",\n \"MOTION_TURNLEFT\": \"ዙር %1 %2 ድግሪዎች\",\n \"MOTION_TURNRIGHT\": \"ዙር %1 %2 ድግሪዎች\",\n \"MOTION_POINTINDIRECTION\": \"ወደ %1 አቅጣጫ ደግን\",\n \"MOTION_POINTTOWARDS\": \"ወደ %1 ደግን\",\n \"MOTION_POINTTOWARDS_POINTER\": \"የማውሱ መጠቆሚያ\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"random direction\",\n \"MOTION_GOTO\": \"ወደ %1 ሂድ\",\n \"MOTION_GOTO_POINTER\": \"የማውሱ መጠቆሚያ\",\n \"MOTION_GOTO_RANDOM\": \"የማይታወቅ ቦታ\",\n \"MOTION_GOTOXY\": \"ወደ x: %1 y: %2 ሂድ\",\n \"MOTION_GLIDESECSTOXY\": \"ተንሸራተት %1 ሰከንድ ወደ x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"ተንሸራተት %1 ሰከንድ ወደ %2\",\n \"MOTION_GLIDETO_POINTER\": \"የማውሱ መጠቆሚያ\",\n \"MOTION_GLIDETO_RANDOM\": \"የማይታወቅ ቦታ\",\n \"MOTION_CHANGEXBY\": \"xን ቀይር በ%1\",\n \"MOTION_SETX\": \"xን ወደ %1 ለውጥ\",\n \"MOTION_CHANGEYBY\": \"yን ቀይር በ%1\",\n \"MOTION_SETY\": \"yን ወደ %1 ለውጥ\",\n \"MOTION_IFONEDGEBOUNCE\": \"ጠርዝ ላይ ነጥረህ ተመለስ\",\n \"MOTION_SETROTATIONSTYLE\": \"የዙር ዘዴ ወደ %1 ለውጥ\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"ግራ-ቀኝ\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"አትሽከርከር\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"በአካባቢው በሙሉ\",\n \"MOTION_XPOSITION\": \"x ቦታ\",\n \"MOTION_YPOSITION\": \"y ቦታ\",\n \"MOTION_DIRECTION\": \"አቅጣጫ\",\n \"MOTION_SCROLLRIGHT\": \"ሸብልል %1 ወደ ቀኝ\",\n \"MOTION_SCROLLUP\": \"ሸብልል %1 ወደ ላይ\",\n \"MOTION_ALIGNSCENE\": \"%1ን ሥፍራ ገባበር \",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"ታች-ግራ\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"ታች-ቀኝ\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"መሃከል\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"ላይ-ግራ\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"ላይ-ቀኝ\",\n \"MOTION_XSCROLL\": \"xን ሸብልል\",\n \"MOTION_YSCROLL\": \"yን ሸብልል\",\n \"MOTION_STAGE_SELECTED\": \"መድረክ ተመርጧል፡ ተንቀሳቃሽ ጥምሮች የሉም\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"%1 እስከ %2 በራንደም ምረጥ\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1ና %2\",\n \"OPERATORS_OR\": \"%1 ወይስ %2\",\n \"OPERATORS_NOT\": \"%1 አይደለም\",\n \"OPERATORS_JOIN\": \"%1 %2 አገናኝ\",\n \"OPERATORS_JOIN_APPLE\": \"ፖም\",\n \"OPERATORS_JOIN_BANANA\": \"ሙዝ\",\n \"OPERATORS_LETTEROF\": \"ፊደል %1 ከ%2\",\n \"OPERATORS_LETTEROF_APPLE\": \"አንድ\",\n \"OPERATORS_LENGTH\": \"%1 ርዝመት\",\n \"OPERATORS_CONTAINS\": \"%2 %1 አለበት?\",\n \"OPERATORS_MOD\": \"%1 ሞዱሎ %2\",\n \"OPERATORS_ROUND\": \"%1ን አጠጋጋ\",\n \"OPERATORS_MATHOP\": \"%1 ከ%2\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"መሬት\",\n \"OPERATORS_MATHOP_CEILING\": \"ጣራ\",\n \"OPERATORS_MATHOP_SQRT\": \"sqrt\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ውስጥ\",\n \"OPERATORS_MATHOP_LOG\": \"ግባ\",\n \"OPERATORS_MATHOP_EEXP\": \"e^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"%1ን ደንግግ\",\n \"SENSING_TOUCHINGOBJECT\": \"%1ን የነካ ነው?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"የማውሱ መጠቆሚያ\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"ዳር\",\n \"SENSING_TOUCHINGCOLOR\": \"%1ን ቀለም የነካ ነው?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"%1 ቀለም %2ን የነካ ነው?\",\n \"SENSING_DISTANCETO\": \"ርቀት እስከ %1\",\n \"SENSING_DISTANCETO_POINTER\": \"የማውሱ መጠቆሚያ\",\n \"SENSING_ASKANDWAIT\": \"%1 ጠይቅና ጠብቅ\",\n \"SENSING_ASK_TEXT\": \"ስምህ ማን ነው?\",\n \"SENSING_ANSWER\": \"መልስ\",\n \"SENSING_KEYPRESSED\": \"ቁልፍ %1 ጫን ተብሏል?\",\n \"SENSING_MOUSEDOWN\": \"መዳፊት ወደታች?\",\n \"SENSING_MOUSEX\": \"መዳፊት x\",\n \"SENSING_MOUSEY\": \"መዳፊት y\",\n \"SENSING_SETDRAGMODE\": \"የጉትት ሞድ ወደ %1 ለውጥ\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"ይጎተታል\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"አይጎተትም\",\n \"SENSING_LOUDNESS\": \"ጮክታ\",\n \"SENSING_LOUD\": \"ጮክ ነው?\",\n \"SENSING_TIMER\": \"የጊዜ ቆጣሪ\",\n \"SENSING_RESETTIMER\": \"ጊዜ ቆጣሪውን ከዜሮ ጀምር\",\n \"SENSING_OF\": \"%1 ከ%2\",\n \"SENSING_OF_XPOSITION\": \"x ቦታ\",\n \"SENSING_OF_YPOSITION\": \"y ቦታ\",\n \"SENSING_OF_DIRECTION\": \"አቅጣጫ\",\n \"SENSING_OF_COSTUMENUMBER\": \"ልብስ ቁጥር\",\n \"SENSING_OF_COSTUMENAME\": \"የአልባሳት ስም\",\n \"SENSING_OF_SIZE\": \"መጠን\",\n \"SENSING_OF_VOLUME\": \"የድምጽ መጠን\",\n \"SENSING_OF_BACKDROPNUMBER\": \"የጀርባ ምስል #\",\n \"SENSING_OF_BACKDROPNAME\": \"የጀርባ ምስል ስም\",\n \"SENSING_OF_STAGE\": \"መድረክ\",\n \"SENSING_CURRENT\": \"ያሁኑ %1\",\n \"SENSING_CURRENT_YEAR\": \"አመት\",\n \"SENSING_CURRENT_MONTH\": \"ወር\",\n \"SENSING_CURRENT_DATE\": \"ቀን\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"የሳምንቱ ቀን\",\n \"SENSING_CURRENT_HOUR\": \"ሰዓት\",\n \"SENSING_CURRENT_MINUTE\": \"ደቂቃ\",\n \"SENSING_CURRENT_SECOND\": \"ሁለተኛ\",\n \"SENSING_DAYSSINCE2000\": \"ከ2000 ጀምሮ ያሉ ቀናት\",\n \"SENSING_USERNAME\": \"የተጠቃሚ ስም\",\n \"SENSING_USERID\": \"የተጠቃሚ መታወቂያ\",\n \"SOUND_PLAY\": \"%1ን ድምጽ ጀምር\",\n \"SOUND_PLAYUNTILDONE\": \"%1ን ድምጽ ተጫወት እስከሚያልቅ\",\n \"SOUND_STOPALLSOUNDS\": \"ሁሉንም ድምጾች አቁም\",\n \"SOUND_SETEFFECTO\": \"%1ን ተጽኖ ወደ %2 ለውጥ\",\n \"SOUND_CHANGEEFFECTBY\": \"%1ን ተጽኖ በ%2 ለውጥ\",\n \"SOUND_CLEAREFFECTS\": \"የድምጽ ተጽኖዎች አጽዳ\",\n \"SOUND_EFFECTS_PITCH\": \"ፒች\",\n \"SOUND_EFFECTS_PAN\": \"ሸብልል ወደ ግራ/ቀኝ\",\n \"SOUND_CHANGEVOLUMEBY\": \"ድምጽ ቀይር በ%1\",\n \"SOUND_SETVOLUMETO\": \"ድምጽ ወደ %1% ለውጥ\",\n \"SOUND_VOLUME\": \"የድምጽ መጠን\",\n \"SOUND_RECORD\": \"record...\",\n \"CATEGORY_MOTION\": \"እንቅስቃሴ\",\n \"CATEGORY_LOOKS\": \"ገጽታ\",\n \"CATEGORY_SOUND\": \"ድምጽ\",\n \"CATEGORY_EVENTS\": \"ክስተት\",\n \"CATEGORY_CONTROL\": \"ቁጥጥር\",\n \"CATEGORY_SENSING\": \"ስሜት\",\n \"CATEGORY_OPERATORS\": \"ስሌቶች\",\n \"CATEGORY_VARIABLES\": \"ተለዋዋጮች\",\n \"CATEGORY_MYBLOCKS\": \"የኔ ጥምሮች\",\n \"DUPLICATE\": \"ቅጂ አድርገህ ገልብጥ\",\n \"DELETE\": \"አጥፋ\",\n \"ADD_COMMENT\": \"አስተያየት ጨምር\",\n \"REMOVE_COMMENT\": \"አስተያየት አውጣ\",\n \"DELETE_BLOCK\": \"ጥምር ሰርዝ\",\n \"DELETE_X_BLOCKS\": \"%1 ጥምሮች ሰርዝ\",\n \"DELETE_ALL_BLOCKS\": \"ሁሉም %1 ጥምሮች ሰርዝ?\",\n \"CLEAN_UP\": \"ጥምሮች አጽዳ\",\n \"HELP\": \"እርዳታ\",\n \"UNDO\": \"መልስ\",\n \"REDO\": \"ድጋሜ አድርግ\",\n \"EDIT_PROCEDURE\": \"ቀይር\",\n \"SHOW_PROCEDURE_DEFINITION\": \"ወደ ትርጓሜ ሂድ\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"አንድ ነገር በል...\",\n \"COLOUR_HUE_LABEL\": \"ቀለም\",\n \"COLOUR_SATURATION_LABEL\": \"ርኬት\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"ብሩህነት\",\n \"CHANGE_VALUE_TITLE\": \"እሴት ቀይር\",\n \"RENAME_VARIABLE\": \"ተለዋዋጭ ደግመህ ሰይም\",\n \"RENAME_VARIABLE_TITLE\": \"ሁሉም \\\"%1\\\" ተለዋዋጮች ደግመህ ሰይም ወደ፡\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"ተለዋዋጭ ደግመህ ሰይም\",\n \"NEW_VARIABLE\": \"ተለዋጭ ፍጠር\",\n \"NEW_VARIABLE_TITLE\": \"አዲስ ተለዋዋጭ ስም\",\n \"VARIABLE_MODAL_TITLE\": \"አዲስ ተለዋዋጭ\",\n \"VARIABLE_ALREADY_EXISTS\": \"የተሰየመ ተለዋዋጭ \\\"%1\\\" አስቀድሞ አለ\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"አንድ ተለዋዋጭ \\\"%1\\\" የተሰየመ አስቀድሞ ይኖራል ለሌ ተለዋዋጭ በ\\\"%2\\\" ዓይነት.\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"የ%1 ጥቅሞች በ%2 ተለዋዋጭ ይሰረዙ?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"%1ን ተለዋዋጭ መሰረዝ አይቻልም የ%2ን ተግባር አባል ስለሆነ\",\n \"DELETE_VARIABLE\": \"%1ን ተለዋዋጭ ይሰረዝ?\",\n \"NEW_PROCEDURE\": \"ጡብ ፍጠር\",\n \"PROCEDURE_ALREADY_EXISTS\": \"አንድ \\\"%1\\\" የተሰየመ ተግባር አስቀድሞ አለ\",\n \"PROCEDURE_DEFAULT_NAME\": \"የጥምር ስም\",\n \"NEW_LIST\": \"ዝርዝር ፍጠር\",\n \"NEW_LIST_TITLE\": \"አዲስ ዝርዝር ስም\",\n \"LIST_MODAL_TITLE\": \"አዲስ ዝርዝር\",\n \"LIST_ALREADY_EXISTS\": \"አንድ \\\"%1\\\" የተሰየመ ዝርዝር አስቀድሞ አለ\",\n \"RENAME_LIST_TITLE\": \"ሁሉም \\\"%1\\\" ዝርዝሮች ደግሞ ይሰየሙ ወደ፡ \",\n \"RENAME_LIST_MODAL_TITLE\": \"ዝርዝር ደግመህ ሰይም\",\n \"DEFAULT_LIST_ITEM\": \"ነገር\",\n \"DELETE_LIST\": \"Delete the \\\"%1\\\" list\",\n \"RENAME_LIST\": \"Rename list\",\n \"NEW_BROADCAST_MESSAGE\": \"አዲስ መልዕክት\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"አዲስ የመልዕክት ስም፡\",\n \"BROADCAST_MODAL_TITLE\": \"አዲስ መልእክት\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"መልእክት1\"\n};\n\nBlockly.ScratchMsgs.locales[\"az\"] =\n{\n \"CONTROL_FOREVER\": \"həmişə\",\n \"CONTROL_REPEAT\": \"təkrarla %1 dəfə\",\n \"CONTROL_IF\": \"əgər %1, onda\",\n \"CONTROL_ELSE\": \"əks halda\",\n \"CONTROL_STOP\": \"dayandır\",\n \"CONTROL_STOP_ALL\": \"hamısı\",\n \"CONTROL_STOP_THIS\": \"bu skript\",\n \"CONTROL_STOP_OTHER\": \"spraytın digər skriptləri\",\n \"CONTROL_WAIT\": \"%1 saniyə gözlə\",\n \"CONTROL_WAITUNTIL\": \"%1 qədər gözlə\",\n \"CONTROL_REPEATUNTIL\": \"təkrarla nə qədər ki, %1 deyil\",\n \"CONTROL_WHILE\": \"təkrarla nə qədər ki, %1 \",\n \"CONTROL_FOREACH\": \"hər bir %1 üçün %2 -də\",\n \"CONTROL_STARTASCLONE\": \"mən klon kimi başlayanda\",\n \"CONTROL_CREATECLONEOF\": \"%1 klonunu yarat\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"özümün\",\n \"CONTROL_DELETETHISCLONE\": \"bu klonu sil\",\n \"CONTROL_COUNTER\": \"sayğac\",\n \"CONTROL_INCRCOUNTER\": \"sayğacın göstəricisini artır\",\n \"CONTROL_CLEARCOUNTER\": \"sayğacı təmizlə\",\n \"CONTROL_ALLATONCE\": \"hamısı birlikdə\",\n \"DATA_SETVARIABLETO\": \"%1 təyin et: %2\",\n \"DATA_CHANGEVARIABLEBY\": \"%1 -i %2 qədər dəyiş\",\n \"DATA_SHOWVARIABLE\": \"%1 dəyişənini göstər\",\n \"DATA_HIDEVARIABLE\": \"%1 dəyişənini gizlət\",\n \"DATA_ADDTOLIST\": \"%1 -i %2 siyahısına əlavə et\",\n \"DATA_DELETEOFLIST\": \"%1 elementini %2 siyahısından sil\",\n \"DATA_DELETEALLOFLIST\": \"%1 siyahısının bütün elementlərini sil\",\n \"DATA_INSERTATLIST\": \"%1 elementini %2 mövqeyində %3 siyahısına daxil et\",\n \"DATA_REPLACEITEMOFLIST\": \"%1 elementini %2 siyahısında %3 ilə əvəz et\",\n \"DATA_ITEMOFLIST\": \"%1 elementi %2 siyahısından\",\n \"DATA_ITEMNUMOFLIST\": \"item # of %1 in %2\",\n \"DATA_LENGTHOFLIST\": \"%1 siyahısının uzunluğu\",\n \"DATA_LISTCONTAINSITEM\": \"%1 tərkibində %2 var?\",\n \"DATA_SHOWLIST\": \"%1 siyahısını göstər\",\n \"DATA_HIDELIST\": \"%1 siyahısını gizlət\",\n \"DATA_INDEX_ALL\": \"bütün\",\n \"DATA_INDEX_LAST\": \"son\",\n \"DATA_INDEX_RANDOM\": \"təsadüfi\",\n \"EVENT_WHENFLAGCLICKED\": \"%1 kliklənəndə\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"sprayt kliklənəndə\",\n \"EVENT_WHENSTAGECLICKED\": \"səhnə kliklənəndə\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"sprayt %1 toxunanda\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"mən %1 qəbul edəndə\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"fon %1 fonuna dəyişdiriləndə\",\n \"EVENT_WHENGREATERTHAN\": \"%1 > %2 olduqda\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"taymer\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"səs ucalığı\",\n \"EVENT_BROADCAST\": \"%1 ötür\",\n \"EVENT_BROADCASTANDWAIT\": \"%1 ötür və gözlə\",\n \"EVENT_WHENKEYPRESSED\": \"%1 düyməsinə basdıqda\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"boşluq\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"sol ox\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"sağ ox\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"aşağı ox\",\n \"EVENT_WHENKEYPRESSED_UP\": \"yuxarı ox\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"hər hansı\",\n \"LOOKS_SAYFORSECS\": \"%1 de %2 saniyə\",\n \"LOOKS_SAY\": \"%1 de\",\n \"LOOKS_HELLO\": \"Salam!\",\n \"LOOKS_THINKFORSECS\": \"%1 düşün %2 saniyə\",\n \"LOOKS_THINK\": \"%1 düşün\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"görün\",\n \"LOOKS_HIDE\": \"gizlən\",\n \"LOOKS_HIDEALLSPRITES\": \"bütün spraytları gizlət\",\n \"LOOKS_EFFECT_COLOR\": \"rəng\",\n \"LOOKS_EFFECT_FISHEYE\": \"qabarma\",\n \"LOOKS_EFFECT_WHIRL\": \"burulma\",\n \"LOOKS_EFFECT_PIXELATE\": \"piksel\",\n \"LOOKS_EFFECT_MOSAIC\": \"mozaika\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"parlaqlıq\",\n \"LOOKS_EFFECT_GHOST\": \"ruh\",\n \"LOOKS_CHANGEEFFECTBY\": \"%1 effektini %2 qədər dəyiş\",\n \"LOOKS_SETEFFECTTO\": \"%1 effektini %2 təyin et\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"qrafik effektləri sil\",\n \"LOOKS_CHANGESIZEBY\": \"ölçünü %1 qədər dəyiş\",\n \"LOOKS_SETSIZETO\": \"ölçünü %1 % təyin et\",\n \"LOOKS_SIZE\": \"ölçü\",\n \"LOOKS_CHANGESTRETCHBY\": \"uzunluğu %1 qədər dəyiş\",\n \"LOOKS_SETSTRETCHTO\": \"uzunluğu %1 % təyin et\",\n \"LOOKS_SWITCHCOSTUMETO\": \"%1 libasına dəyiş\",\n \"LOOKS_NEXTCOSTUME\": \"növbəti libas\",\n \"LOOKS_SWITCHBACKDROPTO\": \"%1 fonuna dəyiş\",\n \"LOOKS_GOTOFRONTBACK\": \"%1 fonuna keç\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"ön\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"arxa\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"%1 %2 fonuna keç\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"irəli\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"geri\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"%1 fonu\",\n \"LOOKS_COSTUMENUMBERNAME\": \"%1 libası\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"rəqəm\",\n \"LOOKS_NUMBERNAME_NAME\": \"ad\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"fonu %1 fonuna dəyiş və gözlə\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"növbəti fon\",\n \"LOOKS_NEXTBACKDROP\": \"növbəti fon\",\n \"LOOKS_PREVIOUSBACKDROP\": \"əvvəlki fon\",\n \"LOOKS_RANDOMBACKDROP\": \"təsadüfi fon\",\n \"MOTION_MOVESTEPS\": \"%1 addım at\",\n \"MOTION_TURNLEFT\": \"dön %1 %2 dərəcə\",\n \"MOTION_TURNRIGHT\": \"dön %1 %2 dərəcə\",\n \"MOTION_POINTINDIRECTION\": \"%1 istiqamətində dön\",\n \"MOTION_POINTTOWARDS\": \"%1 tərəfinə dön\",\n \"MOTION_POINTTOWARDS_POINTER\": \"siçanın göstəricisi\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"random direction\",\n \"MOTION_GOTO\": \"keç: %1\",\n \"MOTION_GOTO_POINTER\": \"siçanın göstəricisi\",\n \"MOTION_GOTO_RANDOM\": \"təsadüfi mövqe\",\n \"MOTION_GOTOXY\": \"keç: x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"%1 saniyə x: %2 y: %3 nöqtəsinə üz\",\n \"MOTION_GLIDETO\": \"%1 saniyə %2 tərəfə üz\",\n \"MOTION_GLIDETO_POINTER\": \"siçanın göstəricisi\",\n \"MOTION_GLIDETO_RANDOM\": \"təsadüfi mövqe\",\n \"MOTION_CHANGEXBY\": \"x-i %1 qədər dəyiş\",\n \"MOTION_SETX\": \"x-i %1 təyin et\",\n \"MOTION_CHANGEYBY\": \"y-i %1 qədər dəyiş\",\n \"MOTION_SETY\": \"y-i %1 təyin et\",\n \"MOTION_IFONEDGEBOUNCE\": \"kənara çatdınsa, geri çəkil\",\n \"MOTION_SETROTATIONSTYLE\": \"dönmə istiqamətini %1 təyin et\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"sol-sağ\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"dönməmək\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"hər tərəfə\",\n \"MOTION_XPOSITION\": \"x mövqeyi\",\n \"MOTION_YPOSITION\": \"y mövqeyi\",\n \"MOTION_DIRECTION\": \"istiqamət\",\n \"MOTION_SCROLLRIGHT\": \"sağa doğru %1 qədər sürüş\",\n \"MOTION_SCROLLUP\": \"yuxarı doğru %1 qədər sürüş\",\n \"MOTION_ALIGNSCENE\": \"%1 istiqamətdən səhnəni düzləndir\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"aşağı-sol\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"aşağı-sağ\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"orta\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"yuxarı-sol\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"yuxarı-sağ\",\n \"MOTION_XSCROLL\": \"x oxu üzrə sürüşdür\",\n \"MOTION_YSCROLL\": \"y oxu üzrə sürüşdür\",\n \"MOTION_STAGE_SELECTED\": \"Səhnə seçilmişdir: Hərəkət blokları yoxdur\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"%1 və %2 arasında təsadüfi seç\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 və %2\",\n \"OPERATORS_OR\": \"%1 və ya %2\",\n \"OPERATORS_NOT\": \"%1 deyil \",\n \"OPERATORS_JOIN\": \"birləşdir: %1 və %2\",\n \"OPERATORS_JOIN_APPLE\": \"alma\",\n \"OPERATORS_JOIN_BANANA\": \"banan\",\n \"OPERATORS_LETTEROF\": \"hərf %1 %2-də\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"%1 sözünün uzunluğu\",\n \"OPERATORS_CONTAINS\": \"%1 sözünün tərkibində %2 hərfi var?\",\n \"OPERATORS_MOD\": \"%1 ədədinin %2 ədədinə bölünməsindən qalıq\",\n \"OPERATORS_ROUND\": \"%1 yuvarlaqlaşdır\",\n \"OPERATORS_MATHOP\": \"%1 %2\",\n \"OPERATORS_MATHOP_ABS\": \"modul\",\n \"OPERATORS_MATHOP_FLOOR\": \"aşağı yuvarlaqlaşdır\",\n \"OPERATORS_MATHOP_CEILING\": \"yuxarı yuvarlaqlaşdır\",\n \"OPERATORS_MATHOP_SQRT\": \"kvadrat kök\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tg\",\n \"OPERATORS_MATHOP_ASIN\": \"arcsin\",\n \"OPERATORS_MATHOP_ACOS\": \"arccos\",\n \"OPERATORS_MATHOP_ATAN\": \"arctg\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"%1 təyin et\",\n \"SENSING_TOUCHINGOBJECT\": \"%1 toxunur?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"siçanın göstəricisi\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"kənar\",\n \"SENSING_TOUCHINGCOLOR\": \"%1 rənginə toxunur?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"%1 rəngi %2 rənginə toxunur?\",\n \"SENSING_DISTANCETO\": \"%1 qədər məsafə\",\n \"SENSING_DISTANCETO_POINTER\": \"siçanın göstəricisi\",\n \"SENSING_ASKANDWAIT\": \"%1 soruş və gözlə\",\n \"SENSING_ASK_TEXT\": \"Sənin adın nədir?\",\n \"SENSING_ANSWER\": \"cavab\",\n \"SENSING_KEYPRESSED\": \"%1 düyməsi basılıb?\",\n \"SENSING_MOUSEDOWN\": \"siçanın düyməsi basılıb?\",\n \"SENSING_MOUSEX\": \"siçanın göstəricisinin x koordinatı\",\n \"SENSING_MOUSEY\": \"siçanın göstəricisinin y koordinatı\",\n \"SENSING_SETDRAGMODE\": \"%1 daşıma rejimi təyin et\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"daşınabilən\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"daşınabilməyən\",\n \"SENSING_LOUDNESS\": \"səs ucalığı\",\n \"SENSING_LOUD\": \"ucadır?\",\n \"SENSING_TIMER\": \"taymer\",\n \"SENSING_RESETTIMER\": \"taymeri yenidən başlat\",\n \"SENSING_OF\": \"%1 %2-in\",\n \"SENSING_OF_XPOSITION\": \"x mövqeyi\",\n \"SENSING_OF_YPOSITION\": \"y mövqeyi\",\n \"SENSING_OF_DIRECTION\": \"istiqamət\",\n \"SENSING_OF_COSTUMENUMBER\": \"libas #\",\n \"SENSING_OF_COSTUMENAME\": \"libasın adı\",\n \"SENSING_OF_SIZE\": \"ölçü\",\n \"SENSING_OF_VOLUME\": \"səsin yüksəkliyi\",\n \"SENSING_OF_BACKDROPNUMBER\": \"fon #\",\n \"SENSING_OF_BACKDROPNAME\": \"fonun adı\",\n \"SENSING_OF_STAGE\": \"Səhnə\",\n \"SENSING_CURRENT\": \"cari %1\",\n \"SENSING_CURRENT_YEAR\": \"il\",\n \"SENSING_CURRENT_MONTH\": \"ay\",\n \"SENSING_CURRENT_DATE\": \"tarix\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"həftənin günü\",\n \"SENSING_CURRENT_HOUR\": \"saat\",\n \"SENSING_CURRENT_MINUTE\": \"dəqiqə\",\n \"SENSING_CURRENT_SECOND\": \"saniyə\",\n \"SENSING_DAYSSINCE2000\": \"01.01.2000 tarixindən ötən günlərin sayı\",\n \"SENSING_USERNAME\": \"istifadəçinin adı\",\n \"SENSING_USERID\": \"istifadəçi adı\",\n \"SOUND_PLAY\": \"%1 səsini ifa et\",\n \"SOUND_PLAYUNTILDONE\": \"%1 səsini sona qədər ifa et\",\n \"SOUND_STOPALLSOUNDS\": \"bütün səsləri dayandır\",\n \"SOUND_SETEFFECTO\": \"%1 effektini %2 təyin et\",\n \"SOUND_CHANGEEFFECTBY\": \"%1 effektini %2 qədər dəyiş\",\n \"SOUND_CLEAREFFECTS\": \"səs effektlərini təmizlə\",\n \"SOUND_EFFECTS_PITCH\": \"kökləmək\",\n \"SOUND_EFFECTS_PAN\": \"tas sol/sağ\",\n \"SOUND_CHANGEVOLUMEBY\": \"səs ucalığını %1 qədər dəyiş\",\n \"SOUND_SETVOLUMETO\": \"səs ucalığını %1% təyin et\",\n \"SOUND_VOLUME\": \"səsin yüksəkliyi\",\n \"SOUND_RECORD\": \"record...\",\n \"CATEGORY_MOTION\": \"Hərəkət\",\n \"CATEGORY_LOOKS\": \"Görünüş\",\n \"CATEGORY_SOUND\": \"Səs\",\n \"CATEGORY_EVENTS\": \"Hadisələr\",\n \"CATEGORY_CONTROL\": \"İdarəetmə\",\n \"CATEGORY_SENSING\": \"Sensorlar\",\n \"CATEGORY_OPERATORS\": \"Operatorlar\",\n \"CATEGORY_VARIABLES\": \"Dəyişənlər\",\n \"CATEGORY_MYBLOCKS\": \"Mənim Bloklarım\",\n \"DUPLICATE\": \"Dublikatın yarat\",\n \"DELETE\": \"Sil\",\n \"ADD_COMMENT\": \"Şərh əlavə et\",\n \"REMOVE_COMMENT\": \"Şərhi sil\",\n \"DELETE_BLOCK\": \"Bloku sil\",\n \"DELETE_X_BLOCKS\": \"%1 bloklarını sil\",\n \"DELETE_ALL_BLOCKS\": \"bütün %1 bloklarını sil\",\n \"CLEAN_UP\": \"Blokları sil\",\n \"HELP\": \"Yardım\",\n \"UNDO\": \"Ləğv et\",\n \"REDO\": \"Yenidən\",\n \"EDIT_PROCEDURE\": \"Düzəliş et\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Tərifə get\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Nəsə de ...\",\n \"COLOUR_HUE_LABEL\": \"Rəng\",\n \"COLOUR_SATURATION_LABEL\": \"Dolğunluq\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Parlaqlıq\",\n \"CHANGE_VALUE_TITLE\": \"Qiyməti dəyiş\",\n \"RENAME_VARIABLE\": \"Dəyişənin adını dəyiş\",\n \"RENAME_VARIABLE_TITLE\": \"Bütün \\\"%1\\\" dəyişənlərinin adını dəyiş:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Dəyişənin adını dəyiş\",\n \"NEW_VARIABLE\": \"Dəyişən yarat\",\n \"NEW_VARIABLE_TITLE\": \"Yeni dəyişənin adı:\",\n \"VARIABLE_MODAL_TITLE\": \"Yeni Dəyişən\",\n \"VARIABLE_ALREADY_EXISTS\": \"\\\"%1\\\" adlı dəyişən artıq mövcuddur.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"\\\"%1\\\" adlı dəyişən digər \\\"%2\\\" növ dəyişən üçün artıq mövcuddur.\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"%1 silinsin \\\"%2\\\" dəyişənini istifadə edən?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"\\\"%1\\\" dəyişəni silinə bilmir, çünki \\\"%2\\\" funksiyasındakı tərifin bir hissəsidir\",\n \"DELETE_VARIABLE\": \"\\\"%1\\\" dəyişənini sil\",\n \"NEW_PROCEDURE\": \"Blok yarat\",\n \"PROCEDURE_ALREADY_EXISTS\": \"\\\"%1\\\" adlı prosedur artıq mövcuddur.\",\n \"PROCEDURE_DEFAULT_NAME\": \"blokun adı\",\n \"NEW_LIST\": \"Siyahı yarat\",\n \"NEW_LIST_TITLE\": \"Yeni siyahının adı:\",\n \"LIST_MODAL_TITLE\": \"Yeni siyahı\",\n \"LIST_ALREADY_EXISTS\": \"\\\"%1\\\" adlı siyahı artıq mövcuddur.\",\n \"RENAME_LIST_TITLE\": \"Bütün \\\"%1\\\" siyahılarının adını dəyiş:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Siyahının adını dəyiş\",\n \"DEFAULT_LIST_ITEM\": \"əşya\",\n \"DELETE_LIST\": \"Delete the \\\"%1\\\" list\",\n \"RENAME_LIST\": \"Rename list\",\n \"NEW_BROADCAST_MESSAGE\": \"Yeni ismarıc\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Yeni ismarıcın adı:\",\n \"BROADCAST_MODAL_TITLE\": \"Yeni ismarıc\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"ismarıc 1\"\n};\n\nBlockly.ScratchMsgs.locales[\"id\"] =\n{\n \"CONTROL_FOREVER\": \"selamanya\",\n \"CONTROL_REPEAT\": \"ulangi %1 kali\",\n \"CONTROL_IF\": \"jika %1 maka\",\n \"CONTROL_ELSE\": \"jika tidak\",\n \"CONTROL_STOP\": \"berhenti\",\n \"CONTROL_STOP_ALL\": \"semua\",\n \"CONTROL_STOP_THIS\": \"skrip ini\",\n \"CONTROL_STOP_OTHER\": \"skrip lain di sprite ini\",\n \"CONTROL_WAIT\": \"tunggu %1 detik\",\n \"CONTROL_WAITUNTIL\": \"tunggu sampai %1\",\n \"CONTROL_REPEATUNTIL\": \"ulangi sampai %1\",\n \"CONTROL_WHILE\": \"selama %1\",\n \"CONTROL_FOREACH\": \"untuk setiap %1 dalam %2\",\n \"CONTROL_STARTASCLONE\": \"ketika aku mulai sebagai clone\",\n \"CONTROL_CREATECLONEOF\": \"buat clone dari %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"diriku\",\n \"CONTROL_DELETETHISCLONE\": \"hapus clone ini\",\n \"CONTROL_COUNTER\": \"hitungan\",\n \"CONTROL_INCRCOUNTER\": \"tingkatkan hitungan\",\n \"CONTROL_CLEARCOUNTER\": \"bersihkan hitungan\",\n \"CONTROL_ALLATONCE\": \"semuanya sekaligus\",\n \"DATA_SETVARIABLETO\": \"atur %1 ke %2\",\n \"DATA_CHANGEVARIABLEBY\": \"ubah %1 sebesar %2\",\n \"DATA_SHOWVARIABLE\": \"tampilkan variabel %1\",\n \"DATA_HIDEVARIABLE\": \"sembunyikan variabel %1\",\n \"DATA_ADDTOLIST\": \"tambahkan %1 ke %2\",\n \"DATA_DELETEOFLIST\": \"hapus %1 dari %2\",\n \"DATA_DELETEALLOFLIST\": \"hapus semua dari %1\",\n \"DATA_INSERTATLIST\": \"sisipkan %1 pada %2 dari %3\",\n \"DATA_REPLACEITEMOFLIST\": \"ganti benda %1 dari %2 dengan %3\",\n \"DATA_ITEMOFLIST\": \"benda %1 dari %2\",\n \"DATA_ITEMNUMOFLIST\": \"benda # dari %1 di %2\",\n \"DATA_LENGTHOFLIST\": \"panjang dari %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 berisi %2?\",\n \"DATA_SHOWLIST\": \"tampilkan daftar %1\",\n \"DATA_HIDELIST\": \"sembunyikan daftar %1\",\n \"DATA_INDEX_ALL\": \"semua\",\n \"DATA_INDEX_LAST\": \"terakhir\",\n \"DATA_INDEX_RANDOM\": \"sembarang\",\n \"EVENT_WHENFLAGCLICKED\": \"ketika %1 diklik\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"ketika sprite ini diklik\",\n \"EVENT_WHENSTAGECLICKED\": \"ketika panggung diklik\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"ketika sprite ini menyentuh %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"ketika aku menerima %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"ketika latar menjadi %1\",\n \"EVENT_WHENGREATERTHAN\": \"ketika %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"pengatur waktu\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"kenyaringan\",\n \"EVENT_BROADCAST\": \"siarkan %1\",\n \"EVENT_BROADCASTANDWAIT\": \"siarkan %1 dan tunggu\",\n \"EVENT_WHENKEYPRESSED\": \"ketika tombol %1 ditekan\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"spasi\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"panah kiri\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"panah kanan\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"panah bawah\",\n \"EVENT_WHENKEYPRESSED_UP\": \"panah atas\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"manapun\",\n \"LOOKS_SAYFORSECS\": \"katakan %1 selama %2 detik\",\n \"LOOKS_SAY\": \"katakan %1\",\n \"LOOKS_HELLO\": \"Halo!\",\n \"LOOKS_THINKFORSECS\": \"pikirkan %1 selama %2 detik\",\n \"LOOKS_THINK\": \"pikirkan %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"tampilkan\",\n \"LOOKS_HIDE\": \"sembunyikan\",\n \"LOOKS_HIDEALLSPRITES\": \"sembunyikan semua sprite\",\n \"LOOKS_EFFECT_COLOR\": \"warna\",\n \"LOOKS_EFFECT_FISHEYE\": \"mata ikan\",\n \"LOOKS_EFFECT_WHIRL\": \"pusaran\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixelasi\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaik\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"kecerahan\",\n \"LOOKS_EFFECT_GHOST\": \"bayangan\",\n \"LOOKS_CHANGEEFFECTBY\": \"ubah efek %1 sebesar %2\",\n \"LOOKS_SETEFFECTTO\": \"atur efek %1 ke %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"hapus semua efek grafis\",\n \"LOOKS_CHANGESIZEBY\": \"ubah ukuran sebesar %1\",\n \"LOOKS_SETSIZETO\": \"atur ukuran ke %1 %\",\n \"LOOKS_SIZE\": \"ukuran\",\n \"LOOKS_CHANGESTRETCHBY\": \"ubah rentangan sebesar %1\",\n \"LOOKS_SETSTRETCHTO\": \"atur rentangan ke %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"ganti kostum ke %1\",\n \"LOOKS_NEXTCOSTUME\": \"kostum berikutnya\",\n \"LOOKS_SWITCHBACKDROPTO\": \"ganti latar ke %1\",\n \"LOOKS_GOTOFRONTBACK\": \"pergi ke lapisan %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"depan\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"belakang\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"pergi %1 %2 lapisan\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"maju\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"mundur\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"latar %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"kostum %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"angka\",\n \"LOOKS_NUMBERNAME_NAME\": \"nama\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"ganti latar ke %1 dan tunggu\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"latar berikutnya\",\n \"LOOKS_NEXTBACKDROP\": \"latar berikutnya\",\n \"LOOKS_PREVIOUSBACKDROP\": \"latar sebelumnya\",\n \"LOOKS_RANDOMBACKDROP\": \"latar sembarang\",\n \"MOTION_MOVESTEPS\": \"gerak %1 langkah\",\n \"MOTION_TURNLEFT\": \"putar %1 %2 derajat\",\n \"MOTION_TURNRIGHT\": \"putar %1 %2 derajat\",\n \"MOTION_POINTINDIRECTION\": \"mengarah ke arah %1\",\n \"MOTION_POINTTOWARDS\": \"mengarah ke %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"penunjuk tetikus\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"arah sembarang\",\n \"MOTION_GOTO\": \"pergi ke %1\",\n \"MOTION_GOTO_POINTER\": \"penunjuk tetikus\",\n \"MOTION_GOTO_RANDOM\": \"posisi sembarang\",\n \"MOTION_GOTOXY\": \"pergi ke x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"meluncur %1 detik ke x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"meluncur %1 detik ke %2\",\n \"MOTION_GLIDETO_POINTER\": \"penunjuk tetikus\",\n \"MOTION_GLIDETO_RANDOM\": \"posisi sembarang\",\n \"MOTION_CHANGEXBY\": \"ubah x sebesar %1\",\n \"MOTION_SETX\": \"atur x ke %1\",\n \"MOTION_CHANGEYBY\": \"ubah y sebesar %1\",\n \"MOTION_SETY\": \"atur y ke %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"jika di pinggir, pantulkan\",\n \"MOTION_SETROTATIONSTYLE\": \"atur gaya rotasi %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"kiri-kanan\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"jangan berputar\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"seluruh\",\n \"MOTION_XPOSITION\": \"posisi x\",\n \"MOTION_YPOSITION\": \"posisi y\",\n \"MOTION_DIRECTION\": \"arah\",\n \"MOTION_SCROLLRIGHT\": \"gulir ke kanan %1\",\n \"MOTION_SCROLLUP\": \"gulir ke atas %1\",\n \"MOTION_ALIGNSCENE\": \"luruskan pemandangan %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"kiri-bawah\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"kanan-bawah\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"tengah\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"kiri-atas\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"kanan-atas\",\n \"MOTION_XSCROLL\": \"guliran x\",\n \"MOTION_YSCROLL\": \"guliran y\",\n \"MOTION_STAGE_SELECTED\": \"Panggung terpilih: tidak ada balok gerakan\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"pilih acak dari %1 hingga %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 dan %2\",\n \"OPERATORS_OR\": \"%1 atau %2\",\n \"OPERATORS_NOT\": \"tidak %1\",\n \"OPERATORS_JOIN\": \"gabungkan %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"apel\",\n \"OPERATORS_JOIN_BANANA\": \"pisang\",\n \"OPERATORS_LETTEROF\": \"huruf %1 dari %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"panjang dari %1\",\n \"OPERATORS_CONTAINS\": \"%1 berisi %2?\",\n \"OPERATORS_MOD\": \"%1 mod %2\",\n \"OPERATORS_ROUND\": \"bulatkan %1\",\n \"OPERATORS_MATHOP\": \"%1 dari %2\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"floor\",\n \"OPERATORS_MATHOP_CEILING\": \"ceil\",\n \"OPERATORS_MATHOP_SQRT\": \"akar kuadrat\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"artikan %1\",\n \"SENSING_TOUCHINGOBJECT\": \"menyentuh %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"penunjuk tetikus\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"pinggir\",\n \"SENSING_TOUCHINGCOLOR\": \"menyentuh warna %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"warna %1 menyentuh %2?\",\n \"SENSING_DISTANCETO\": \"jarak dari %1\",\n \"SENSING_DISTANCETO_POINTER\": \"penunujuk tetikus\",\n \"SENSING_ASKANDWAIT\": \"tanya %1 dan tunggu\",\n \"SENSING_ASK_TEXT\": \"Apa namamu?\",\n \"SENSING_ANSWER\": \"jawaban\",\n \"SENSING_KEYPRESSED\": \"tombol %1 ditekan?\",\n \"SENSING_MOUSEDOWN\": \"tetikus ditekan?\",\n \"SENSING_MOUSEX\": \"x tetikus\",\n \"SENSING_MOUSEY\": \"y tetikus\",\n \"SENSING_SETDRAGMODE\": \"atur mode seret %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"dapat diseret\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"tidak dapat diseret\",\n \"SENSING_LOUDNESS\": \"kenyaringan\",\n \"SENSING_LOUD\": \"nyaring?\",\n \"SENSING_TIMER\": \"pengatur waktu\",\n \"SENSING_RESETTIMER\": \"atur ulang pengatur waktu\",\n \"SENSING_OF\": \"%1 dari %2\",\n \"SENSING_OF_XPOSITION\": \"posisi x\",\n \"SENSING_OF_YPOSITION\": \"posisi y\",\n \"SENSING_OF_DIRECTION\": \"arah\",\n \"SENSING_OF_COSTUMENUMBER\": \"kostum #\",\n \"SENSING_OF_COSTUMENAME\": \"nama kostum\",\n \"SENSING_OF_SIZE\": \"ukuran\",\n \"SENSING_OF_VOLUME\": \"volume\",\n \"SENSING_OF_BACKDROPNUMBER\": \"latar #\",\n \"SENSING_OF_BACKDROPNAME\": \"nama latar\",\n \"SENSING_OF_STAGE\": \"Panggung\",\n \"SENSING_CURRENT\": \"%1 saat ini\",\n \"SENSING_CURRENT_YEAR\": \"tahun\",\n \"SENSING_CURRENT_MONTH\": \"bulan\",\n \"SENSING_CURRENT_DATE\": \"tanggal\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"nama hari\",\n \"SENSING_CURRENT_HOUR\": \"jam\",\n \"SENSING_CURRENT_MINUTE\": \"menit\",\n \"SENSING_CURRENT_SECOND\": \"detik\",\n \"SENSING_DAYSSINCE2000\": \"hari-hari sejak 2000\",\n \"SENSING_USERNAME\": \"nama pengguna\",\n \"SENSING_USERID\": \"id pengguna\",\n \"SOUND_PLAY\": \"mulai suara %1\",\n \"SOUND_PLAYUNTILDONE\": \"mainkan suara %1 sampai selesai\",\n \"SOUND_STOPALLSOUNDS\": \"hentikan semua suara\",\n \"SOUND_SETEFFECTO\": \"atur efek %1 ke %2\",\n \"SOUND_CHANGEEFFECTBY\": \"ubah efek %1 sebesar %2\",\n \"SOUND_CLEAREFFECTS\": \"hapus semua efek suara\",\n \"SOUND_EFFECTS_PITCH\": \"nada\",\n \"SOUND_EFFECTS_PAN\": \"pan kiri/kanan\",\n \"SOUND_CHANGEVOLUMEBY\": \"ubah volume sebesar %1\",\n \"SOUND_SETVOLUMETO\": \"atur volume ke %1%\",\n \"SOUND_VOLUME\": \"volume\",\n \"SOUND_RECORD\": \"rekam...\",\n \"CATEGORY_MOTION\": \"Gerakan\",\n \"CATEGORY_LOOKS\": \"Tampilan\",\n \"CATEGORY_SOUND\": \"Suara\",\n \"CATEGORY_EVENTS\": \"Kejadian\",\n \"CATEGORY_CONTROL\": \"Kontrol\",\n \"CATEGORY_SENSING\": \"Sensor\",\n \"CATEGORY_OPERATORS\": \"Operator\",\n \"CATEGORY_VARIABLES\": \"Variabel\",\n \"CATEGORY_MYBLOCKS\": \"Balok Saya\",\n \"DUPLICATE\": \"Gandakan\",\n \"DELETE\": \"Hapus\",\n \"ADD_COMMENT\": \"Tambahkan Komentar\",\n \"REMOVE_COMMENT\": \"Hapus Komentar\",\n \"DELETE_BLOCK\": \"Hapus Balok\",\n \"DELETE_X_BLOCKS\": \"Hapus %1 Balok\",\n \"DELETE_ALL_BLOCKS\": \"Hapus semua %1 balok?\",\n \"CLEAN_UP\": \"Bersihkan Balok-Balok\",\n \"HELP\": \"Bantuan\",\n \"UNDO\": \"Batalkan\",\n \"REDO\": \"Ulangi\",\n \"EDIT_PROCEDURE\": \"Sunting\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Pergi ke pengartian\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Katakan sesuatu...\",\n \"COLOUR_HUE_LABEL\": \"Warna\",\n \"COLOUR_SATURATION_LABEL\": \"Saturasi\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Keterangan\",\n \"CHANGE_VALUE_TITLE\": \"Ubah nilai:\",\n \"RENAME_VARIABLE\": \"Namakan ulang variabel\",\n \"RENAME_VARIABLE_TITLE\": \"Namakan ulang semua variabel \\\"%1\\\" ke:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Namakan Ulang Variabel\",\n \"NEW_VARIABLE\": \"Buat sebuah Variabel\",\n \"NEW_VARIABLE_TITLE\": \"Nama variabel baru:\",\n \"VARIABLE_MODAL_TITLE\": \"Variabel Baru\",\n \"VARIABLE_ALREADY_EXISTS\": \"Sebuah variabel bernama \\\"%1\\\" sudah ada.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Sebuah variabel bernama \\\"%1\\\" sudah ada untuk variabel lain berjenis \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Hapus penggunaan %1 dari variabel \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Tidak bisa menghapus variabel \\\"%1\\\" karena bagian dari pengartian fungsi \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Hapus variabel \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Buat sebuah Balok\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Sebuah prosedur bernama \\\"%1\\\" sudah ada\",\n \"PROCEDURE_DEFAULT_NAME\": \"nama balok\",\n \"NEW_LIST\": \"Buat sebuah Daftar\",\n \"NEW_LIST_TITLE\": \"Nama daftar baru:\",\n \"LIST_MODAL_TITLE\": \"Daftar Baru\",\n \"LIST_ALREADY_EXISTS\": \"Sebuah daftar bernama \\\"%1\\\" sudah ada.\",\n \"RENAME_LIST_TITLE\": \"Namakan ulang semua daftar \\\"%1\\\" ke:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Namakan Ulang Daftar:\",\n \"DEFAULT_LIST_ITEM\": \"benda\",\n \"DELETE_LIST\": \"Hapus daftar \\\"%1\\\"\",\n \"RENAME_LIST\": \"Namakan ulang daftar\",\n \"NEW_BROADCAST_MESSAGE\": \"Pesan baru\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Nama pesan baru:\",\n \"BROADCAST_MODAL_TITLE\": \"Pesan Baru\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"pesan1\"\n};\n\nBlockly.ScratchMsgs.locales[\"be\"] =\n{\n \"CONTROL_FOREVER\": \"заўжды\",\n \"CONTROL_REPEAT\": \"паўтарыць %1\",\n \"CONTROL_IF\": \"калі %1 , то\",\n \"CONTROL_ELSE\": \"інакш\",\n \"CONTROL_STOP\": \"стоп\",\n \"CONTROL_STOP_ALL\": \"усе\",\n \"CONTROL_STOP_THIS\": \"гэты скрыпт\",\n \"CONTROL_STOP_OTHER\": \"іншыя скрыпты спрайта\",\n \"CONTROL_WAIT\": \"чакаць %1 секунд\",\n \"CONTROL_WAITUNTIL\": \"чакаць да %1\",\n \"CONTROL_REPEATUNTIL\": \"паўтараць, пакуль не %1\",\n \"CONTROL_WHILE\": \"пакуль %1\",\n \"CONTROL_FOREACH\": \"для кожнага %1 у %2\",\n \"CONTROL_STARTASCLONE\": \"калі я пачынаю як клон\",\n \"CONTROL_CREATECLONEOF\": \"стварыць клона %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"сябе\",\n \"CONTROL_DELETETHISCLONE\": \"выдаліць гэтага клона\",\n \"CONTROL_COUNTER\": \"лічыльнік\",\n \"CONTROL_INCRCOUNTER\": \"павялічыць лічыльнік\",\n \"CONTROL_CLEARCOUNTER\": \"ачысціць лічыльнік\",\n \"CONTROL_ALLATONCE\": \"усё адразу\",\n \"DATA_SETVARIABLETO\": \"устанавіць %1 у %2\",\n \"DATA_CHANGEVARIABLEBY\": \"змяніць %1 на %2\",\n \"DATA_SHOWVARIABLE\": \"паказаць зменную %1\",\n \"DATA_HIDEVARIABLE\": \"схаваць зменную %1\",\n \"DATA_ADDTOLIST\": \"дадаць %1 да %2\",\n \"DATA_DELETEOFLIST\": \"выдаліць %1 з %2\",\n \"DATA_DELETEALLOFLIST\": \"выдаліць усё з %1\",\n \"DATA_INSERTATLIST\": \"уставіць %1 у %2 з %3\",\n \"DATA_REPLACEITEMOFLIST\": \"замяніць элемент %1 у %2 на %3\",\n \"DATA_ITEMOFLIST\": \"элемент %1 з %2\",\n \"DATA_ITEMNUMOFLIST\": \"элемент # з %1 у %2\",\n \"DATA_LENGTHOFLIST\": \"даўжыня %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 змяшчае %2?\",\n \"DATA_SHOWLIST\": \"паказаць спіс %1\",\n \"DATA_HIDELIST\": \"схаваць спіс %1\",\n \"DATA_INDEX_ALL\": \"усе\",\n \"DATA_INDEX_LAST\": \"апошні\",\n \"DATA_INDEX_RANDOM\": \"выпадковы\",\n \"EVENT_WHENFLAGCLICKED\": \"калі %1 націснуты\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"калі спрайт націснуты\",\n \"EVENT_WHENSTAGECLICKED\": \"калі клікнуць па сцэне\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"калі спрайт кранаецца %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"калі я атрымаю %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"калі фон змяняецца на %1\",\n \"EVENT_WHENGREATERTHAN\": \"калі %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"таймер\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"гучнасць\",\n \"EVENT_BROADCAST\": \"разаслаць %1\",\n \"EVENT_BROADCASTANDWAIT\": \"разаслаць %1 і чакаць\",\n \"EVENT_WHENKEYPRESSED\": \"калі клавіша %1 націснутая\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"прабел\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"стрэлка налева\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"стрэлка направа\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"стрэлка ўніз\",\n \"EVENT_WHENKEYPRESSED_UP\": \"стрэлка ўверх\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"любы\",\n \"LOOKS_SAYFORSECS\": \"казаць %1 на працягу %2 секунд\",\n \"LOOKS_SAY\": \"сказаць %1\",\n \"LOOKS_HELLO\": \"Вітаю!\",\n \"LOOKS_THINKFORSECS\": \"думаць %1 %2 секунд\",\n \"LOOKS_THINK\": \"думаць %1\",\n \"LOOKS_HMM\": \"Хм...\",\n \"LOOKS_SHOW\": \"паказацца\",\n \"LOOKS_HIDE\": \"схавацца\",\n \"LOOKS_HIDEALLSPRITES\": \"схаваць усе спрайты\",\n \"LOOKS_EFFECT_COLOR\": \"колер\",\n \"LOOKS_EFFECT_FISHEYE\": \"рыбіна вока\",\n \"LOOKS_EFFECT_WHIRL\": \"вір\",\n \"LOOKS_EFFECT_PIXELATE\": \"буйныя пікселі\",\n \"LOOKS_EFFECT_MOSAIC\": \"мазаіка\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"яркасць\",\n \"LOOKS_EFFECT_GHOST\": \"прывід\",\n \"LOOKS_CHANGEEFFECTBY\": \"змяніць %1 эфект на %2\",\n \"LOOKS_SETEFFECTTO\": \"устанавіць эфект %1 у значэнне %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"прыбраць графічныя эфекты\",\n \"LOOKS_CHANGESIZEBY\": \"змяніць памер на %1\",\n \"LOOKS_SETSIZETO\": \"устанавіць памер %1 %\",\n \"LOOKS_SIZE\": \"памер\",\n \"LOOKS_CHANGESTRETCHBY\": \"змяніць расцягванне на %1\",\n \"LOOKS_SETSTRETCHTO\": \"устанавіць расцягванне %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"змяніць касцюм на %1\",\n \"LOOKS_NEXTCOSTUME\": \"наступны касцюм\",\n \"LOOKS_SWITCHBACKDROPTO\": \"змяніць фон на %1\",\n \"LOOKS_GOTOFRONTBACK\": \"перайсці ў %1 слой\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"пярэдні\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"назад\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"перайсці %1 на %2 слоя\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"наперад\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"назад\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"фон %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"касцюм %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"нумар\",\n \"LOOKS_NUMBERNAME_NAME\": \"імя\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"змяніць фон на %1 і чакаць\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"наступны фон\",\n \"LOOKS_NEXTBACKDROP\": \"наступны фон\",\n \"LOOKS_PREVIOUSBACKDROP\": \"папярэдні фон\",\n \"LOOKS_RANDOMBACKDROP\": \"выпадковы фон\",\n \"MOTION_MOVESTEPS\": \"рухацца %1 крокаў\",\n \"MOTION_TURNLEFT\": \"павярнуць %1 %2 градусаў\",\n \"MOTION_TURNRIGHT\": \"павярнуць %1 %2 градусаў\",\n \"MOTION_POINTINDIRECTION\": \"павярнуць у кірунку %1\",\n \"MOTION_POINTTOWARDS\": \"павярнуцца да %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"указальнік мышы\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"выпадковы кірунак\",\n \"MOTION_GOTO\": \"перайсці ў %1\",\n \"MOTION_GOTO_POINTER\": \"указальнік мышы\",\n \"MOTION_GOTO_RANDOM\": \"выпадковая пазіцыя\",\n \"MOTION_GOTOXY\": \"перайсці ў x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"плысці %1 секунд да x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"плысці %1 секунд да %2\",\n \"MOTION_GLIDETO_POINTER\": \"указальнік мышы\",\n \"MOTION_GLIDETO_RANDOM\": \"выпадковая пазіцыя\",\n \"MOTION_CHANGEXBY\": \"змяніць X на %1\",\n \"MOTION_SETX\": \"устанавіць X у %1\",\n \"MOTION_CHANGEYBY\": \"змяніць Y на %1\",\n \"MOTION_SETY\": \"устанавіць Y у %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"калі скраю, адштурхнуцца\",\n \"MOTION_SETROTATIONSTYLE\": \"стыль вярчэння %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"налева-направа\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"не круціць\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"навокал\",\n \"MOTION_XPOSITION\": \"пазіцыя X\",\n \"MOTION_YPOSITION\": \"пазіцыя Y\",\n \"MOTION_DIRECTION\": \"кірунак\",\n \"MOTION_SCROLLRIGHT\": \"пракруціць направа %1\",\n \"MOTION_SCROLLUP\": \"пракруціць уверх %1\",\n \"MOTION_ALIGNSCENE\": \"выраўнаваць сцэну %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"ніжні левы\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"ніжні правы\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"сярэдзіна\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"верхні левы\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"верхні правы\",\n \"MOTION_XSCROLL\": \"X пракрутка\",\n \"MOTION_YSCROLL\": \"Y пракрутка\",\n \"MOTION_STAGE_SELECTED\": \"Абрана сцэна: няма блокаў руху\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"выдаць выпадковы лік ад %1 да %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 і %2\",\n \"OPERATORS_OR\": \"%1 ці %2\",\n \"OPERATORS_NOT\": \"не %1\",\n \"OPERATORS_JOIN\": \"аб'яднаць %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"яблык\",\n \"OPERATORS_JOIN_BANANA\": \"банан\",\n \"OPERATORS_LETTEROF\": \"літара %1 у %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"а\",\n \"OPERATORS_LENGTH\": \"даўжыня %1\",\n \"OPERATORS_CONTAINS\": \"%1 змяшчае %2?\",\n \"OPERATORS_MOD\": \"астача ад дзялення %1 на %2\",\n \"OPERATORS_ROUND\": \"акругліць %1\",\n \"OPERATORS_MATHOP\": \"%1 з %2\",\n \"OPERATORS_MATHOP_ABS\": \"модуль\",\n \"OPERATORS_MATHOP_FLOOR\": \"меншае цэлае\",\n \"OPERATORS_MATHOP_CEILING\": \"ліміт\",\n \"OPERATORS_MATHOP_SQRT\": \"квадратны корань\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"вызначыць %1\",\n \"SENSING_TOUCHINGOBJECT\": \"кранаецца %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"указальнік мышы\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"мяжа\",\n \"SENSING_TOUCHINGCOLOR\": \"дакранаецца да колеру %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"колер %1 кранаецца %2?\",\n \"SENSING_DISTANCETO\": \"адлегласць да %1\",\n \"SENSING_DISTANCETO_POINTER\": \"указальнік мышы\",\n \"SENSING_ASKANDWAIT\": \"спытаць %1 і чакаць\",\n \"SENSING_ASK_TEXT\": \"Як цябе клічуць?\",\n \"SENSING_ANSWER\": \"адказ\",\n \"SENSING_KEYPRESSED\": \"клавіша %1 націснутая?\",\n \"SENSING_MOUSEDOWN\": \"мышка націснутая?\",\n \"SENSING_MOUSEX\": \"мышка па X\",\n \"SENSING_MOUSEY\": \"мышка па Y\",\n \"SENSING_SETDRAGMODE\": \"перацягваць %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"можна\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"нельга\",\n \"SENSING_LOUDNESS\": \"гучнасць\",\n \"SENSING_LOUD\": \"гучна?\",\n \"SENSING_TIMER\": \"таймер\",\n \"SENSING_RESETTIMER\": \"перазапусціць таймер\",\n \"SENSING_OF\": \"%1 з %2\",\n \"SENSING_OF_XPOSITION\": \"пазіцыя X\",\n \"SENSING_OF_YPOSITION\": \"пазіцыя Y\",\n \"SENSING_OF_DIRECTION\": \"кірунак\",\n \"SENSING_OF_COSTUMENUMBER\": \"касцюм #\",\n \"SENSING_OF_COSTUMENAME\": \"імя касцюма\",\n \"SENSING_OF_SIZE\": \"памер\",\n \"SENSING_OF_VOLUME\": \"гучнасць\",\n \"SENSING_OF_BACKDROPNUMBER\": \"фон #\",\n \"SENSING_OF_BACKDROPNAME\": \"імя фону\",\n \"SENSING_OF_STAGE\": \"Сцэна\",\n \"SENSING_CURRENT\": \"бягучы %1\",\n \"SENSING_CURRENT_YEAR\": \"год\",\n \"SENSING_CURRENT_MONTH\": \"месяц\",\n \"SENSING_CURRENT_DATE\": \"дата\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"дзень тыдня\",\n \"SENSING_CURRENT_HOUR\": \"гадзіна\",\n \"SENSING_CURRENT_MINUTE\": \"хвіліна\",\n \"SENSING_CURRENT_SECOND\": \"секунда\",\n \"SENSING_DAYSSINCE2000\": \"дзён ад 2000\",\n \"SENSING_USERNAME\": \"імя карыстальніка\",\n \"SENSING_USERID\": \"id ўдзельніка\",\n \"SOUND_PLAY\": \"уключыць гук %1\",\n \"SOUND_PLAYUNTILDONE\": \"іграць гук %1 да канца\",\n \"SOUND_STOPALLSOUNDS\": \"спыніць усе гукі\",\n \"SOUND_SETEFFECTO\": \"устанавіць эфект %1 у значэнне %2\",\n \"SOUND_CHANGEEFFECTBY\": \"змяніць %1 эфект на %2\",\n \"SOUND_CLEAREFFECTS\": \"прыбраць гукавыя эфекты\",\n \"SOUND_EFFECTS_PITCH\": \"вышыня гуку\",\n \"SOUND_EFFECTS_PAN\": \"рух налева/направа\",\n \"SOUND_CHANGEVOLUMEBY\": \"змяніць гучнасць на %1\",\n \"SOUND_SETVOLUMETO\": \"устанавіць гучнасць %1%\",\n \"SOUND_VOLUME\": \"гучнасць\",\n \"SOUND_RECORD\": \"запіс...\",\n \"CATEGORY_MOTION\": \"Рух\",\n \"CATEGORY_LOOKS\": \"Выгляд\",\n \"CATEGORY_SOUND\": \"Гук\",\n \"CATEGORY_EVENTS\": \"Падзеі\",\n \"CATEGORY_CONTROL\": \"Кіраванне\",\n \"CATEGORY_SENSING\": \"Сэнсары\",\n \"CATEGORY_OPERATORS\": \"Аператары\",\n \"CATEGORY_VARIABLES\": \"Зменныя\",\n \"CATEGORY_MYBLOCKS\": \"Уласныя блокі\",\n \"DUPLICATE\": \"Падвоіць\",\n \"DELETE\": \"Выдаліць\",\n \"ADD_COMMENT\": \"Дадаць каментарый\",\n \"REMOVE_COMMENT\": \"Выдаліць каментарый\",\n \"DELETE_BLOCK\": \"Выдаліць блок\",\n \"DELETE_X_BLOCKS\": \"Выдаліць %1 блокаў\",\n \"DELETE_ALL_BLOCKS\": \"Выдаліць усе %1 блокі?\",\n \"CLEAN_UP\": \"Ачысціць блокі\",\n \"HELP\": \"Даведка\",\n \"UNDO\": \"Адмяніць\",\n \"REDO\": \"Вярнуць\",\n \"EDIT_PROCEDURE\": \"Змяніць\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Перайсці да вызначэння\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Скажы што-небудзь..\",\n \"COLOUR_HUE_LABEL\": \"Колер\",\n \"COLOUR_SATURATION_LABEL\": \"Насычанасць\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Яркасць\",\n \"CHANGE_VALUE_TITLE\": \"Змяніць значэнне:\",\n \"RENAME_VARIABLE\": \"Змяніць імя зменнай\",\n \"RENAME_VARIABLE_TITLE\": \"Змяніць імёны \\\"%1\\\" зменных на:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Змяніць імя зменнай\",\n \"NEW_VARIABLE\": \"Стварыць зменную\",\n \"NEW_VARIABLE_TITLE\": \"Новае імя зменнай:\",\n \"VARIABLE_MODAL_TITLE\": \"Новая зменная\",\n \"VARIABLE_ALREADY_EXISTS\": \"Зменная з імем \\\"%1\\\" ужо існуе.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Зменная з імем \\\"%1\\\" ужо існуе для іншай зменнай тыпу \\\"%2\\\"\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Выдаліць %1 выкарыстанняў \\\"%2\\\" зменнай?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Нельга выдаліць зменную \\\"%1\\\", бо яна частка функцыі \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Выдаліць зменную \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Стварыць блок\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Працэдура з імем \\\"%1\\\" ужо існуе.\",\n \"PROCEDURE_DEFAULT_NAME\": \"назва блока\",\n \"NEW_LIST\": \"Стварыць спіс\",\n \"NEW_LIST_TITLE\": \"Новае імя спіса:\",\n \"LIST_MODAL_TITLE\": \"Новы cпіс\",\n \"LIST_ALREADY_EXISTS\": \"Спіс з імем \\\"%1\\\" ужо існуе.\",\n \"RENAME_LIST_TITLE\": \"Змяніць імёны \\\"%1\\\" спісаў на:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Змяніць імя cпіса\",\n \"DEFAULT_LIST_ITEM\": \"рэч\",\n \"DELETE_LIST\": \"Выдаліць спіс \\\"%1\\\"\",\n \"RENAME_LIST\": \"Змяніць імя спіса\",\n \"NEW_BROADCAST_MESSAGE\": \"Новае паведамленне\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Новае імя паведамлення:\",\n \"BROADCAST_MODAL_TITLE\": \"Новае паведамленне\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"паведамленне1\"\n};\n\nBlockly.ScratchMsgs.locales[\"bg\"] =\n{\n \"CONTROL_FOREVER\": \"forever\",\n \"CONTROL_REPEAT\": \"повтори %1\",\n \"CONTROL_IF\": \"ако %1 тогава\",\n \"CONTROL_ELSE\": \"иначе\",\n \"CONTROL_STOP\": \"stop\",\n \"CONTROL_STOP_ALL\": \"всички\",\n \"CONTROL_STOP_THIS\": \"този скрипт\",\n \"CONTROL_STOP_OTHER\": \"другите скриптове на спрайта\",\n \"CONTROL_WAIT\": \"изчакай %1 сек\",\n \"CONTROL_WAITUNTIL\": \"чакай докато %1\",\n \"CONTROL_REPEATUNTIL\": \"repeat until %1\",\n \"CONTROL_WHILE\": \"while %1\",\n \"CONTROL_FOREACH\": \"for each %1 in %2\",\n \"CONTROL_STARTASCLONE\": \"when I start as a clone\",\n \"CONTROL_CREATECLONEOF\": \"create clone of %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"себе си\",\n \"CONTROL_DELETETHISCLONE\": \"delete this clone\",\n \"CONTROL_COUNTER\": \"брояч\",\n \"CONTROL_INCRCOUNTER\": \"нарастващ брояч\",\n \"CONTROL_CLEARCOUNTER\": \"clear counter\",\n \"CONTROL_ALLATONCE\": \"all at once\",\n \"DATA_SETVARIABLETO\": \"set %1 to %2\",\n \"DATA_CHANGEVARIABLEBY\": \"change %1 by %2\",\n \"DATA_SHOWVARIABLE\": \"show variable %1\",\n \"DATA_HIDEVARIABLE\": \"hide variable %1\",\n \"DATA_ADDTOLIST\": \"add %1 to %2\",\n \"DATA_DELETEOFLIST\": \"изтрий %1 от %2\",\n \"DATA_DELETEALLOFLIST\": \"изтрий всичко от %1\",\n \"DATA_INSERTATLIST\": \"insert %1 at %2 of %3\",\n \"DATA_REPLACEITEMOFLIST\": \"replace item %1 of %2 with %3\",\n \"DATA_ITEMOFLIST\": \"елемент %1 от %2\",\n \"DATA_ITEMNUMOFLIST\": \"item # of %1 in %2\",\n \"DATA_LENGTHOFLIST\": \"големина на %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 съдържа %2?\",\n \"DATA_SHOWLIST\": \"покажи списък %1\",\n \"DATA_HIDELIST\": \"скрий списък %1\",\n \"DATA_INDEX_ALL\": \"всички\",\n \"DATA_INDEX_LAST\": \"последен\",\n \"DATA_INDEX_RANDOM\": \"random\",\n \"EVENT_WHENFLAGCLICKED\": \"when %1 clicked\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"when this sprite clicked\",\n \"EVENT_WHENSTAGECLICKED\": \"when stage clicked\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"when this sprite touches %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"when I receive %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"when backdrop switches to %1\",\n \"EVENT_WHENGREATERTHAN\": \"когато %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"таймер\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"ниво на звука\",\n \"EVENT_BROADCAST\": \"разпространи %1\",\n \"EVENT_BROADCASTANDWAIT\": \"разпространи %1 и чакай\",\n \"EVENT_WHENKEYPRESSED\": \"когато е натиснат клавиш %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"интервал\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"лява стрелка\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"дясна стрелка\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"стрелка надолу\",\n \"EVENT_WHENKEYPRESSED_UP\": \"стрелка нагоре\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"който и да е\",\n \"LOOKS_SAYFORSECS\": \"кажи %1 за %2 сек\",\n \"LOOKS_SAY\": \"кажи %1\",\n \"LOOKS_HELLO\": \"Здравей!\",\n \"LOOKS_THINKFORSECS\": \"мисли %1 за %2 сек\",\n \"LOOKS_THINK\": \"мисли %1\",\n \"LOOKS_HMM\": \"Хъмм...\",\n \"LOOKS_SHOW\": \"покажи се\",\n \"LOOKS_HIDE\": \"скрий се\",\n \"LOOKS_HIDEALLSPRITES\": \"скрий всички спрайтове\",\n \"LOOKS_EFFECT_COLOR\": \"цвят\",\n \"LOOKS_EFFECT_FISHEYE\": \"fisheye\",\n \"LOOKS_EFFECT_WHIRL\": \"whirl\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixelate\",\n \"LOOKS_EFFECT_MOSAIC\": \"мозайка\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"яркост\",\n \"LOOKS_EFFECT_GHOST\": \"ghost\",\n \"LOOKS_CHANGEEFFECTBY\": \"промени ефект %1 с %2\",\n \"LOOKS_SETEFFECTTO\": \"направи %1 ефект на %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"премахни графичните ефекти\",\n \"LOOKS_CHANGESIZEBY\": \"промени размера с %1\",\n \"LOOKS_SETSIZETO\": \"set size to %1 %\",\n \"LOOKS_SIZE\": \"размер\",\n \"LOOKS_CHANGESTRETCHBY\": \"change stretch by %1\",\n \"LOOKS_SETSTRETCHTO\": \"set stretch to %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"switch costume to %1\",\n \"LOOKS_NEXTCOSTUME\": \"следващ костюм\",\n \"LOOKS_SWITCHBACKDROPTO\": \"смени декора с %1\",\n \"LOOKS_GOTOFRONTBACK\": \"go to %1 layer\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"front\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"back\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"премини %1 с %2 слой/я\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"forward\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"backward\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"декор %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"костюм %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"number\",\n \"LOOKS_NUMBERNAME_NAME\": \"name\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"смени декора с %1 и чакай\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"следващ декор\",\n \"LOOKS_NEXTBACKDROP\": \"следващ декор\",\n \"LOOKS_PREVIOUSBACKDROP\": \"предишен декор\",\n \"LOOKS_RANDOMBACKDROP\": \"случаен декор\",\n \"MOTION_MOVESTEPS\": \"премести се с %1 стъпки\",\n \"MOTION_TURNLEFT\": \"завърти се с %1 %2 градуса\",\n \"MOTION_TURNRIGHT\": \"ззавърти се с %1 %2 градуса\",\n \"MOTION_POINTINDIRECTION\": \"обърни се в посока %1\",\n \"MOTION_POINTTOWARDS\": \"обърни се към %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"показалец на мишката\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"случайна посока\",\n \"MOTION_GOTO\": \"отиди до %1\",\n \"MOTION_GOTO_POINTER\": \"показалец на мишката\",\n \"MOTION_GOTO_RANDOM\": \"случайна позиция\",\n \"MOTION_GOTOXY\": \"отиди до x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"пропълзи за %1 сек до x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"пропълзи за %1 сек до %2\",\n \"MOTION_GLIDETO_POINTER\": \"показалец на мишката\",\n \"MOTION_GLIDETO_RANDOM\": \"случайна позиция\",\n \"MOTION_CHANGEXBY\": \"промени х с %1\",\n \"MOTION_SETX\": \"направи x равно на %1\",\n \"MOTION_CHANGEYBY\": \"промени y с %1\",\n \"MOTION_SETY\": \"направи y равно на %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"ако докосваш ръба, отблъсни се\",\n \"MOTION_SETROTATIONSTYLE\": \"избери начин на въртене %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"наляво-надясно\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"без въртене\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"във всички посоки\",\n \"MOTION_XPOSITION\": \"x позиция\",\n \"MOTION_YPOSITION\": \"y позиция\",\n \"MOTION_DIRECTION\": \"посока\",\n \"MOTION_SCROLLRIGHT\": \"превърти надясно %1\",\n \"MOTION_SCROLLUP\": \"превърти нагоре %1\",\n \"MOTION_ALIGNSCENE\": \"подравни %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"долу-ляво\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"долу-дясно\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"по средата\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"горе-ляво\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"горе-дясно\",\n \"MOTION_XSCROLL\": \"хоризонтално превъртане\",\n \"MOTION_YSCROLL\": \"вертикално превъртане\",\n \"MOTION_STAGE_SELECTED\": \"Избрана е сцената: няма блокове за движение\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"избери случайно от %1 до %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 и %2\",\n \"OPERATORS_OR\": \"%1 или %2\",\n \"OPERATORS_NOT\": \"не %1\",\n \"OPERATORS_JOIN\": \"съедини %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"ябълка\",\n \"OPERATORS_JOIN_BANANA\": \"банан\",\n \"OPERATORS_LETTEROF\": \"буква %1 от %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"а\",\n \"OPERATORS_LENGTH\": \"дължина на %1\",\n \"OPERATORS_CONTAINS\": \"%1 съдържа %2?\",\n \"OPERATORS_MOD\": \"%1 mod %2\",\n \"OPERATORS_ROUND\": \"закръгли %1\",\n \"OPERATORS_MATHOP\": \"%1 от %2\",\n \"OPERATORS_MATHOP_ABS\": \"абсолютна стойност\",\n \"OPERATORS_MATHOP_FLOOR\": \"floor\",\n \"OPERATORS_MATHOP_CEILING\": \"ceiling\",\n \"OPERATORS_MATHOP_SQRT\": \"квадратен корен\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"дефинирай %1\",\n \"SENSING_TOUCHINGOBJECT\": \"допира ли %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"показалец на мишката\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"ръб\",\n \"SENSING_TOUCHINGCOLOR\": \"допира ли цвят %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"цвят %1 допира ли %2?\",\n \"SENSING_DISTANCETO\": \"разстояние до %1\",\n \"SENSING_DISTANCETO_POINTER\": \"показалец на мишката\",\n \"SENSING_ASKANDWAIT\": \"питай %1 и чакай\",\n \"SENSING_ASK_TEXT\": \"Какво е твоето име?\",\n \"SENSING_ANSWER\": \"отговор\",\n \"SENSING_KEYPRESSED\": \"клавиш %1 натиснат?\",\n \"SENSING_MOUSEDOWN\": \"mouse down?\",\n \"SENSING_MOUSEX\": \"мишка x\",\n \"SENSING_MOUSEY\": \"мишка y\",\n \"SENSING_SETDRAGMODE\": \"режим на теглене %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"теглене разрешено\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"теглене забранено\",\n \"SENSING_LOUDNESS\": \"сила на звука\",\n \"SENSING_LOUD\": \"шумно ли е?\",\n \"SENSING_TIMER\": \"таймер\",\n \"SENSING_RESETTIMER\": \"нулирай таймера\",\n \"SENSING_OF\": \"%1 от %2\",\n \"SENSING_OF_XPOSITION\": \"x позиция\",\n \"SENSING_OF_YPOSITION\": \"y позиция\",\n \"SENSING_OF_DIRECTION\": \"посока\",\n \"SENSING_OF_COSTUMENUMBER\": \"костюм #\",\n \"SENSING_OF_COSTUMENAME\": \"име на костюм\",\n \"SENSING_OF_SIZE\": \"размер\",\n \"SENSING_OF_VOLUME\": \"сила на звука\",\n \"SENSING_OF_BACKDROPNUMBER\": \"декор #\",\n \"SENSING_OF_BACKDROPNAME\": \"име на декор\",\n \"SENSING_OF_STAGE\": \"Сцена\",\n \"SENSING_CURRENT\": \"текущ/а %1\",\n \"SENSING_CURRENT_YEAR\": \"година\",\n \"SENSING_CURRENT_MONTH\": \"месец\",\n \"SENSING_CURRENT_DATE\": \"дата\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"ден от седмицата\",\n \"SENSING_CURRENT_HOUR\": \"час\",\n \"SENSING_CURRENT_MINUTE\": \"минута\",\n \"SENSING_CURRENT_SECOND\": \"секунда\",\n \"SENSING_DAYSSINCE2000\": \"дни след 2000 година\",\n \"SENSING_USERNAME\": \"потребителско име\",\n \"SENSING_USERID\": \"user id\",\n \"SOUND_PLAY\": \"пусни звук %1\",\n \"SOUND_PLAYUNTILDONE\": \"пусни звук %1 докато свърши\",\n \"SOUND_STOPALLSOUNDS\": \"stop all sounds\",\n \"SOUND_SETEFFECTO\": \"set %1 effect to %2\",\n \"SOUND_CHANGEEFFECTBY\": \"change %1 effect by %2\",\n \"SOUND_CLEAREFFECTS\": \"clear sound effects\",\n \"SOUND_EFFECTS_PITCH\": \"промяна на тона\",\n \"SOUND_EFFECTS_PAN\": \"ляво/дясно\",\n \"SOUND_CHANGEVOLUMEBY\": \"промени силата на звука с %1\",\n \"SOUND_SETVOLUMETO\": \"set volume to %1%\",\n \"SOUND_VOLUME\": \"сила на звука\",\n \"SOUND_RECORD\": \"запис...\",\n \"CATEGORY_MOTION\": \"Движение\",\n \"CATEGORY_LOOKS\": \"Външност\",\n \"CATEGORY_SOUND\": \"Звук\",\n \"CATEGORY_EVENTS\": \"Събития\",\n \"CATEGORY_CONTROL\": \"Контрол\",\n \"CATEGORY_SENSING\": \"Сетива\",\n \"CATEGORY_OPERATORS\": \"Оператори\",\n \"CATEGORY_VARIABLES\": \"Променливи\",\n \"CATEGORY_MYBLOCKS\": \"Моите Блокове\",\n \"DUPLICATE\": \"Дублиране\",\n \"DELETE\": \"Изтриване\",\n \"ADD_COMMENT\": \"Добави Коментар\",\n \"REMOVE_COMMENT\": \"Премахни Коментар\",\n \"DELETE_BLOCK\": \"Изтрий Блок\",\n \"DELETE_X_BLOCKS\": \"Изтрий %1 блока\",\n \"DELETE_ALL_BLOCKS\": \"Изтрий всички %1 блокове\",\n \"CLEAN_UP\": \"Изтрий блоковете\",\n \"HELP\": \"Помощ\",\n \"UNDO\": \"Отмяна\",\n \"REDO\": \"Повтаряне\",\n \"EDIT_PROCEDURE\": \"Редактиране\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Покажи дефиницията\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Кажи нещо...\",\n \"COLOUR_HUE_LABEL\": \"Цвят\",\n \"COLOUR_SATURATION_LABEL\": \"Наситеност\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Яркост\",\n \"CHANGE_VALUE_TITLE\": \"Промени стойността:\",\n \"RENAME_VARIABLE\": \"Преименувай променлива\",\n \"RENAME_VARIABLE_TITLE\": \"Преименувай всички \\\"%1\\\" променливи на:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Преименувай Променлива\",\n \"NEW_VARIABLE\": \"Създаване на Променлива\",\n \"NEW_VARIABLE_TITLE\": \"Име на новата променлива:\",\n \"VARIABLE_MODAL_TITLE\": \"Нова променлива\",\n \"VARIABLE_ALREADY_EXISTS\": \"Променлива \\\"%1\\\" вече съществува.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Променлива \\\"%1\\\" вече съществува за друга променлива от тип \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Delete %1 uses of the \\\"%2\\\" variable?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Не може да се изтрие променливата \\\"%1\\\", защото участва в дефиницията на функцията \\\"%2\\\".\",\n \"DELETE_VARIABLE\": \"Изтрий променливата \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Създаване на блок\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Процедура \\\"%1\\\" вече съществува.\",\n \"PROCEDURE_DEFAULT_NAME\": \"име на блок\",\n \"NEW_LIST\": \"Създаване на списък\",\n \"NEW_LIST_TITLE\": \"Име на новия списък:\",\n \"LIST_MODAL_TITLE\": \"Нов списък\",\n \"LIST_ALREADY_EXISTS\": \"Списък \\\"%1\\\" вече съществува.\",\n \"RENAME_LIST_TITLE\": \"Преименувай всички \\\"%1\\\" списъци на:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Преименувай списък\",\n \"DEFAULT_LIST_ITEM\": \"thing\",\n \"DELETE_LIST\": \"Изтрий списъкът \\\"%1\\\"\",\n \"RENAME_LIST\": \"Преименувай списък\",\n \"NEW_BROADCAST_MESSAGE\": \"Ново съобщение\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Име на новото съобщение:\",\n \"BROADCAST_MODAL_TITLE\": \"Ново съобщение\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"съобщение1\"\n};\n\nBlockly.ScratchMsgs.locales[\"ca\"] =\n{\n \"CONTROL_FOREVER\": \"per sempre\",\n \"CONTROL_REPEAT\": \"repeteix %1\",\n \"CONTROL_IF\": \"si %1 llavors\",\n \"CONTROL_ELSE\": \"si no\",\n \"CONTROL_STOP\": \"atura\",\n \"CONTROL_STOP_ALL\": \"tot\",\n \"CONTROL_STOP_THIS\": \"aquest programa\",\n \"CONTROL_STOP_OTHER\": \"altres programes del personatge\",\n \"CONTROL_WAIT\": \"espera %1 segons\",\n \"CONTROL_WAITUNTIL\": \"espera fins %1\",\n \"CONTROL_REPEATUNTIL\": \"repeteix fins %1\",\n \"CONTROL_WHILE\": \"mentre %1\",\n \"CONTROL_FOREACH\": \"per cada %1 a %2\",\n \"CONTROL_STARTASCLONE\": \"quan una còpia meva comenci\",\n \"CONTROL_CREATECLONEOF\": \"crea una còpia de %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"jo mateix\",\n \"CONTROL_DELETETHISCLONE\": \"esborra aquesta còpia\",\n \"CONTROL_COUNTER\": \"comptador\",\n \"CONTROL_INCRCOUNTER\": \"augmenta comptador\",\n \"CONTROL_CLEARCOUNTER\": \"posa a zero el comptador\",\n \"CONTROL_ALLATONCE\": \"tot d'una vegada\",\n \"DATA_SETVARIABLETO\": \"assigna a %1 el valor %2\",\n \"DATA_CHANGEVARIABLEBY\": \"augmenta %1 en %2\",\n \"DATA_SHOWVARIABLE\": \"mostra la variable %1\",\n \"DATA_HIDEVARIABLE\": \"amaga la variable %1\",\n \"DATA_ADDTOLIST\": \"afegeix %1 a %2\",\n \"DATA_DELETEOFLIST\": \"esborra l'element %1 de %2\",\n \"DATA_DELETEALLOFLIST\": \"esborra-ho tot de %1\",\n \"DATA_INSERTATLIST\": \"afegeix %1 a la posició %2 de %3\",\n \"DATA_REPLACEITEMOFLIST\": \"canvia l'element %1 de %2 per %3\",\n \"DATA_ITEMOFLIST\": \"element %1 de %2\",\n \"DATA_ITEMNUMOFLIST\": \"element # de %1 en %2\",\n \"DATA_LENGTHOFLIST\": \"llargada de %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 conté %2?\",\n \"DATA_SHOWLIST\": \"mostra la llista %1\",\n \"DATA_HIDELIST\": \"amaga la llista %1\",\n \"DATA_INDEX_ALL\": \"tot\",\n \"DATA_INDEX_LAST\": \"darrer\",\n \"DATA_INDEX_RANDOM\": \"aleatori\",\n \"EVENT_WHENFLAGCLICKED\": \"quan la %1 es cliqui\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"quan es cliqui aquest personatge\",\n \"EVENT_WHENSTAGECLICKED\": \"quan es cliqui l'escenari\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"quan aquest objecte toqui %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"quan rebi %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"quan l'escenari canviï al fons %1\",\n \"EVENT_WHENGREATERTHAN\": \"quan %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"cronòmetre\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"volum del so\",\n \"EVENT_BROADCAST\": \"envia a tots %1\",\n \"EVENT_BROADCASTANDWAIT\": \"envia a tots %1 i espera\",\n \"EVENT_WHENKEYPRESSED\": \"quan la tecla %1 es premi\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"espai\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"fletxa esquerra\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"fletxa dreta\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"fletxa avall\",\n \"EVENT_WHENKEYPRESSED_UP\": \"fletxa amunt\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"qualsevol\",\n \"LOOKS_SAYFORSECS\": \"digues %1 durant %2 segons\",\n \"LOOKS_SAY\": \"digues %1\",\n \"LOOKS_HELLO\": \"Hola!\",\n \"LOOKS_THINKFORSECS\": \"pensa %1 durant %2 segons\",\n \"LOOKS_THINK\": \"pensa %1\",\n \"LOOKS_HMM\": \"Mmm...\",\n \"LOOKS_SHOW\": \"mostra't\",\n \"LOOKS_HIDE\": \"amaga't\",\n \"LOOKS_HIDEALLSPRITES\": \"amaga tots els personatges\",\n \"LOOKS_EFFECT_COLOR\": \"color\",\n \"LOOKS_EFFECT_FISHEYE\": \"ull de peix\",\n \"LOOKS_EFFECT_WHIRL\": \"remolí\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixelar\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaic\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"brillantor\",\n \"LOOKS_EFFECT_GHOST\": \"transparència\",\n \"LOOKS_CHANGEEFFECTBY\": \"augmenta l'efecte %1 en %2\",\n \"LOOKS_SETEFFECTTO\": \"fixa l'efecte %1 a %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"treu els efectes gràfics\",\n \"LOOKS_CHANGESIZEBY\": \"augmenta %1 la mida\",\n \"LOOKS_SETSIZETO\": \"fixa la mida a %1 %\",\n \"LOOKS_SIZE\": \"mida\",\n \"LOOKS_CHANGESTRETCHBY\": \"augmenta %1 l'estirament\",\n \"LOOKS_SETSTRETCHTO\": \"fixa l'estirament a %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"canvia el vestit a %1\",\n \"LOOKS_NEXTCOSTUME\": \"següent vestit\",\n \"LOOKS_SWITCHBACKDROPTO\": \"canvia el fons a %1\",\n \"LOOKS_GOTOFRONTBACK\": \"vés a la capa %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"front\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"darrere\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"vés %1 %2 capes\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"endavant\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"enrere\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"fons %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"vestit %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"número\",\n \"LOOKS_NUMBERNAME_NAME\": \"nom\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"canvia el fons a %1 i espera\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"següent fons de pantalla\",\n \"LOOKS_NEXTBACKDROP\": \"següent fons de pantalla\",\n \"LOOKS_PREVIOUSBACKDROP\": \"fons anterior\",\n \"LOOKS_RANDOMBACKDROP\": \"fons a l'atzar\",\n \"MOTION_MOVESTEPS\": \"mou-te %1 passos\",\n \"MOTION_TURNLEFT\": \"gira %1 %2 graus\",\n \"MOTION_TURNRIGHT\": \"gira %1 %2 graus\",\n \"MOTION_POINTINDIRECTION\": \"apunta en direcció %1\",\n \"MOTION_POINTTOWARDS\": \"apunta cap a %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"punter del ratolí\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"direcció aleatòria\",\n \"MOTION_GOTO\": \"vés a %1\",\n \"MOTION_GOTO_POINTER\": \"punter del ratolí\",\n \"MOTION_GOTO_RANDOM\": \"posició aleatòria\",\n \"MOTION_GOTOXY\": \"vés a x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"llisca en %1 segons fins a x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"llisca en %1 segons fins a %2\",\n \"MOTION_GLIDETO_POINTER\": \"punter del ratolí\",\n \"MOTION_GLIDETO_RANDOM\": \"posició aleatòria\",\n \"MOTION_CHANGEXBY\": \"suma %1 a x\",\n \"MOTION_SETX\": \"assigna el valor %1 a x\",\n \"MOTION_CHANGEYBY\": \"suma %1 a y\",\n \"MOTION_SETY\": \"assigna el valor %1 a y\",\n \"MOTION_IFONEDGEBOUNCE\": \"rebota en tocar una vora\",\n \"MOTION_SETROTATIONSTYLE\": \"fixa el tipus de rotació %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"esquerra-dreta\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"no giris\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"al voltant\",\n \"MOTION_XPOSITION\": \"posició x\",\n \"MOTION_YPOSITION\": \"posició y\",\n \"MOTION_DIRECTION\": \"direcció\",\n \"MOTION_SCROLLRIGHT\": \"desplaça a la dreta %1\",\n \"MOTION_SCROLLUP\": \"desplaça amunt %1\",\n \"MOTION_ALIGNSCENE\": \"alinea escena %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"Baix a l'esquerra\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"Baix a la dreta\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"mig\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"a dalt a l'esquerra\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"a dalt a la dreta\",\n \"MOTION_XSCROLL\": \"desplaçament x\",\n \"MOTION_YSCROLL\": \"desplaçament y\",\n \"MOTION_STAGE_SELECTED\": \"Escenari seleccionat: sense blocs de moviment\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"nombre a l'atzar entre %1 i %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 i %2\",\n \"OPERATORS_OR\": \"%1 o %2\",\n \"OPERATORS_NOT\": \"no %1\",\n \"OPERATORS_JOIN\": \"uneix %1 i %2\",\n \"OPERATORS_JOIN_APPLE\": \"poma\",\n \"OPERATORS_JOIN_BANANA\": \"plàtan\",\n \"OPERATORS_LETTEROF\": \"lletra %1 de %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"llargada de %1\",\n \"OPERATORS_CONTAINS\": \"%1 conté %2?\",\n \"OPERATORS_MOD\": \"residu de dividir %1 entre %2\",\n \"OPERATORS_ROUND\": \"arrodoneix %1\",\n \"OPERATORS_MATHOP\": \"%1 de %2\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"part sencera\",\n \"OPERATORS_MATHOP_CEILING\": \"sostre\",\n \"OPERATORS_MATHOP_SQRT\": \"arrel quadrada\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"defineix %1\",\n \"SENSING_TOUCHINGOBJECT\": \"tocant %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"punter del ratolí\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"vora\",\n \"SENSING_TOUCHINGCOLOR\": \"tocant el color %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"color %1 sobre %2?\",\n \"SENSING_DISTANCETO\": \"distància a %1\",\n \"SENSING_DISTANCETO_POINTER\": \"punter del ratolí\",\n \"SENSING_ASKANDWAIT\": \"pregunta %1 i espera\",\n \"SENSING_ASK_TEXT\": \"Com et dius?\",\n \"SENSING_ANSWER\": \"resposta\",\n \"SENSING_KEYPRESSED\": \"tecla %1 premuda?\",\n \"SENSING_MOUSEDOWN\": \"ratolí clicat?\",\n \"SENSING_MOUSEX\": \"ratolí x\",\n \"SENSING_MOUSEY\": \"ratolí y\",\n \"SENSING_SETDRAGMODE\": \"fixa el mode d'arrossegament %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"arrossegable\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"no arrossegable\",\n \"SENSING_LOUDNESS\": \"volum del so\",\n \"SENSING_LOUD\": \"so fort?\",\n \"SENSING_TIMER\": \"cronòmetre\",\n \"SENSING_RESETTIMER\": \"reinicia el cronòmetre\",\n \"SENSING_OF\": \"%1 de %2\",\n \"SENSING_OF_XPOSITION\": \"posició x\",\n \"SENSING_OF_YPOSITION\": \"posició y\",\n \"SENSING_OF_DIRECTION\": \"direcció\",\n \"SENSING_OF_COSTUMENUMBER\": \"vestit nr\",\n \"SENSING_OF_COSTUMENAME\": \"nom del vestit\",\n \"SENSING_OF_SIZE\": \"mida\",\n \"SENSING_OF_VOLUME\": \"volum\",\n \"SENSING_OF_BACKDROPNUMBER\": \"fons nr\",\n \"SENSING_OF_BACKDROPNAME\": \"nom del fons\",\n \"SENSING_OF_STAGE\": \"Escenari\",\n \"SENSING_CURRENT\": \"actual %1\",\n \"SENSING_CURRENT_YEAR\": \"any\",\n \"SENSING_CURRENT_MONTH\": \"mes\",\n \"SENSING_CURRENT_DATE\": \"data\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"dia de la setmana\",\n \"SENSING_CURRENT_HOUR\": \"hora\",\n \"SENSING_CURRENT_MINUTE\": \"minut\",\n \"SENSING_CURRENT_SECOND\": \"segon\",\n \"SENSING_DAYSSINCE2000\": \"dies des del 2000\",\n \"SENSING_USERNAME\": \"nom d'usuari\",\n \"SENSING_USERID\": \"ID d'usuari\",\n \"SOUND_PLAY\": \"inicia el so %1\",\n \"SOUND_PLAYUNTILDONE\": \"toca el so %1 fins que acabi\",\n \"SOUND_STOPALLSOUNDS\": \"atura tots els sons\",\n \"SOUND_SETEFFECTO\": \"fixa l'efecte %1 a %2\",\n \"SOUND_CHANGEEFFECTBY\": \"augmenta l'efecte %1 en %2\",\n \"SOUND_CLEAREFFECTS\": \"treu els efectes sonors\",\n \"SOUND_EFFECTS_PITCH\": \"pitch\",\n \"SOUND_EFFECTS_PAN\": \"pan esquerra/dreta\",\n \"SOUND_CHANGEVOLUMEBY\": \"puja %1 el volum\",\n \"SOUND_SETVOLUMETO\": \"fixa el volum a %1%\",\n \"SOUND_VOLUME\": \"volum\",\n \"SOUND_RECORD\": \"enregistra...\",\n \"CATEGORY_MOTION\": \"Moviment\",\n \"CATEGORY_LOOKS\": \"Aspecte\",\n \"CATEGORY_SOUND\": \"So\",\n \"CATEGORY_EVENTS\": \"Esdeveniments\",\n \"CATEGORY_CONTROL\": \"Control\",\n \"CATEGORY_SENSING\": \"Sensors\",\n \"CATEGORY_OPERATORS\": \"Operadors\",\n \"CATEGORY_VARIABLES\": \"Variables\",\n \"CATEGORY_MYBLOCKS\": \"Els meus blocs\",\n \"DUPLICATE\": \"Duplica\",\n \"DELETE\": \"Elimina\",\n \"ADD_COMMENT\": \"Afegeix un comentari\",\n \"REMOVE_COMMENT\": \"Elimina el comentari\",\n \"DELETE_BLOCK\": \"Esborra el bloc\",\n \"DELETE_X_BLOCKS\": \"Esborra %1 blocs\",\n \"DELETE_ALL_BLOCKS\": \"Eliminar tots els blocs %1 ?\",\n \"CLEAN_UP\": \"Neteja els blocs\",\n \"HELP\": \"Ajuda\",\n \"UNDO\": \"Desfés\",\n \"REDO\": \"Torna-hi\",\n \"EDIT_PROCEDURE\": \"Edita\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Vés a la definició\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Digues alguna cosa...\",\n \"COLOUR_HUE_LABEL\": \"Color\",\n \"COLOUR_SATURATION_LABEL\": \"Saturació\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"brillantor\",\n \"CHANGE_VALUE_TITLE\": \"Canvia el valor:\",\n \"RENAME_VARIABLE\": \"Canvia el nom de la variable\",\n \"RENAME_VARIABLE_TITLE\": \"Canvia totes les variables \\\"%1\\\" a:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Canvia el nom de la variable\",\n \"NEW_VARIABLE\": \"Crea una variable\",\n \"NEW_VARIABLE_TITLE\": \"Nou nom per a la variable:\",\n \"VARIABLE_MODAL_TITLE\": \"Nova Variable\",\n \"VARIABLE_ALREADY_EXISTS\": \"Ja existeix una variable amb el nom \\\"%1\\\".\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Ja existeix una variable anomenada \\\"%1\\\" per una altra variable de tipus \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Eliminar els %1 usos de la variable \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"No es pot eliminar la variable \\\"%1\\\" perquè forma part de la definició de la funció \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Elimina la variable \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Crea un bloc\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Ja existeix un procediment anomenat \\\"%1\\\".\",\n \"PROCEDURE_DEFAULT_NAME\": \"nom del bloc\",\n \"NEW_LIST\": \"Crea una llista\",\n \"NEW_LIST_TITLE\": \"Nou nom per a la llista:\",\n \"LIST_MODAL_TITLE\": \"Nova Llista\",\n \"LIST_ALREADY_EXISTS\": \"Ja existeix una llista anomenada \\\"%1\\\".\",\n \"RENAME_LIST_TITLE\": \"Canvia totes les llistes a \\\"%1\\\":\",\n \"RENAME_LIST_MODAL_TITLE\": \"Canvia el nom de la llista\",\n \"DEFAULT_LIST_ITEM\": \"cosa\",\n \"DELETE_LIST\": \"Elimina la llista \\\"%1\\\"\",\n \"RENAME_LIST\": \"Canvia el nom de la llista\",\n \"NEW_BROADCAST_MESSAGE\": \"Nou missatge\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Nou nom per al missatge:\",\n \"BROADCAST_MODAL_TITLE\": \"Missatge nou\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"missatge1\"\n};\n\nBlockly.ScratchMsgs.locales[\"cs\"] =\n{\n \"CONTROL_FOREVER\": \"opakuj stále\",\n \"CONTROL_REPEAT\": \"opakuj %1 krát\",\n \"CONTROL_IF\": \"když %1 tak\",\n \"CONTROL_ELSE\": \"jinak\",\n \"CONTROL_STOP\": \"zastav\",\n \"CONTROL_STOP_ALL\": \"všechno\",\n \"CONTROL_STOP_THIS\": \"tento scénář\",\n \"CONTROL_STOP_OTHER\": \"jiné scénáře postavy\",\n \"CONTROL_WAIT\": \"čekej %1 sekund\",\n \"CONTROL_WAITUNTIL\": \"čekej dokud nenastane %1\",\n \"CONTROL_REPEATUNTIL\": \"opakuj dokud nenastane %1\",\n \"CONTROL_WHILE\": \"opakuj dokud platí %1\",\n \"CONTROL_FOREACH\": \"pro každé %1 z %2\",\n \"CONTROL_STARTASCLONE\": \"když startuje můj klon\",\n \"CONTROL_CREATECLONEOF\": \"klonuj %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"sebe\",\n \"CONTROL_DELETETHISCLONE\": \"zruš tento klon\",\n \"CONTROL_COUNTER\": \"čítač\",\n \"CONTROL_INCRCOUNTER\": \"zvyš čítač\",\n \"CONTROL_CLEARCOUNTER\": \"vynuluj čítač\",\n \"CONTROL_ALLATONCE\": \"vše najednou\",\n \"DATA_SETVARIABLETO\": \"nastav %1 na %2\",\n \"DATA_CHANGEVARIABLEBY\": \"změň %1 o %2\",\n \"DATA_SHOWVARIABLE\": \"ukaž proměnnou %1\",\n \"DATA_HIDEVARIABLE\": \"skryj proměnnou %1\",\n \"DATA_ADDTOLIST\": \"přidej %1 k %2\",\n \"DATA_DELETEOFLIST\": \"smaž %1 z %2\",\n \"DATA_DELETEALLOFLIST\": \"smaž všechno z %1\",\n \"DATA_INSERTATLIST\": \"vlož %1 na %2 v %3\",\n \"DATA_REPLACEITEMOFLIST\": \"nahraď %1 v %2 hodnotou %3\",\n \"DATA_ITEMOFLIST\": \"prvek %1 z %2\",\n \"DATA_ITEMNUMOFLIST\": \"pořadí %1 ve %2\",\n \"DATA_LENGTHOFLIST\": \"délka %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 obsahuje %2\",\n \"DATA_SHOWLIST\": \"ukaž seznam %1\",\n \"DATA_HIDELIST\": \"skryj seznam %1\",\n \"DATA_INDEX_ALL\": \"všechno\",\n \"DATA_INDEX_LAST\": \"poslední\",\n \"DATA_INDEX_RANDOM\": \"náhodně\",\n \"EVENT_WHENFLAGCLICKED\": \"po kliknutí na %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"po kliknutí na mě\",\n \"EVENT_WHENSTAGECLICKED\": \"po kliknutí na scénu\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"po doteku %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"po obdržení zprávy %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"po změně pozadí na %1\",\n \"EVENT_WHENGREATERTHAN\": \"když %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"stopky\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"hlasitost\",\n \"EVENT_BROADCAST\": \"vyšli zprávu %1\",\n \"EVENT_BROADCASTANDWAIT\": \"vyšli zprávu %1 a čekej\",\n \"EVENT_WHENKEYPRESSED\": \"po stisku klávesy %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"mezerník\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"šipka vlevo\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"šipka vpravo\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"šipka dolů\",\n \"EVENT_WHENKEYPRESSED_UP\": \"šipka nahoru\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"libovolná\",\n \"LOOKS_SAYFORSECS\": \"bublina %1 %2 sekund\",\n \"LOOKS_SAY\": \"bublina %1\",\n \"LOOKS_HELLO\": \"Ahoj!\",\n \"LOOKS_THINKFORSECS\": \"myšlenka %1 %2 sekund\",\n \"LOOKS_THINK\": \"myšlenka %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"ukaž se\",\n \"LOOKS_HIDE\": \"skryj se\",\n \"LOOKS_HIDEALLSPRITES\": \"skryj všechny postavy\",\n \"LOOKS_EFFECT_COLOR\": \"barva\",\n \"LOOKS_EFFECT_FISHEYE\": \"rybí oko\",\n \"LOOKS_EFFECT_WHIRL\": \"víření\",\n \"LOOKS_EFFECT_PIXELATE\": \"kostičkování\",\n \"LOOKS_EFFECT_MOSAIC\": \"mozaika\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"jas\",\n \"LOOKS_EFFECT_GHOST\": \"průhlednost\",\n \"LOOKS_CHANGEEFFECTBY\": \"změň efekt %1 o %2\",\n \"LOOKS_SETEFFECTTO\": \"nastav efekt %1 na %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"zruš grafické efekty\",\n \"LOOKS_CHANGESIZEBY\": \"změň velikost o %1\",\n \"LOOKS_SETSIZETO\": \"nastav velikost na %1 %\",\n \"LOOKS_SIZE\": \"velikost\",\n \"LOOKS_CHANGESTRETCHBY\": \"změň roztažení o %1\",\n \"LOOKS_SETSTRETCHTO\": \"nastav roztažení na %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"změň kostým na %1\",\n \"LOOKS_NEXTCOSTUME\": \"další kostým\",\n \"LOOKS_SWITCHBACKDROPTO\": \"přepni pozadí na %1\",\n \"LOOKS_GOTOFRONTBACK\": \"přejdi na vrstvu %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"popředí\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"pozadí\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"jdi %1 o %2\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"dopředu\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"dozadu\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"pozadí %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"kostým %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"číslo\",\n \"LOOKS_NUMBERNAME_NAME\": \"název\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"změň pozadí na %1\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"další pozadí\",\n \"LOOKS_NEXTBACKDROP\": \"další pozadí\",\n \"LOOKS_PREVIOUSBACKDROP\": \"předchozí pozadí\",\n \"LOOKS_RANDOMBACKDROP\": \"náhodné pozadí\",\n \"MOTION_MOVESTEPS\": \"dopředu o %1 kroků\",\n \"MOTION_TURNLEFT\": \"otoč se %1 o %2 stupňů\",\n \"MOTION_TURNRIGHT\": \"otoč se %1 o %2 stupňů\",\n \"MOTION_POINTINDIRECTION\": \"nastav směr %1\",\n \"MOTION_POINTTOWARDS\": \"nastav směr k %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"ukazateli myši\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"náhodný směr\",\n \"MOTION_GOTO\": \"skoč na %1\",\n \"MOTION_GOTO_POINTER\": \"ukazatel myši\",\n \"MOTION_GOTO_RANDOM\": \"náhodná pozice\",\n \"MOTION_GOTOXY\": \"skoč na x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"klouzej %1 sekund na x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"klouzej %1 sekund na %2\",\n \"MOTION_GLIDETO_POINTER\": \"ukazatel myši\",\n \"MOTION_GLIDETO_RANDOM\": \"náhodná pozice\",\n \"MOTION_CHANGEXBY\": \"změň x o %1\",\n \"MOTION_SETX\": \"nastav x na %1\",\n \"MOTION_CHANGEYBY\": \"změň y o %1\",\n \"MOTION_SETY\": \"nastav y na %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"když narazíš na okraj, odraz se\",\n \"MOTION_SETROTATIONSTYLE\": \"nastav otáčení %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"vlevo-vpravo\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"neotáčet\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"dokola\",\n \"MOTION_XPOSITION\": \"x\",\n \"MOTION_YPOSITION\": \"y\",\n \"MOTION_DIRECTION\": \"směr\",\n \"MOTION_SCROLLRIGHT\": \"posuň se doprava %1\",\n \"MOTION_SCROLLUP\": \"posuň se nahoru %1\",\n \"MOTION_ALIGNSCENE\": \"zarovnej scénu %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"vlevo dole\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"vpravo dole\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"prostřední\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"vlevo nahoře\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"vpravo nahoře\",\n \"MOTION_XSCROLL\": \"x přesouvání\",\n \"MOTION_YSCROLL\": \"y přesouvání\",\n \"MOTION_STAGE_SELECTED\": \"Scéna je zvolena: nemá bloky pohybu\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"náhodné číslo od %1 do %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 a %2\",\n \"OPERATORS_OR\": \"%1 nebo %2\",\n \"OPERATORS_NOT\": \"ne %1\",\n \"OPERATORS_JOIN\": \"spoj %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"jablko\",\n \"OPERATORS_JOIN_BANANA\": \"banán\",\n \"OPERATORS_LETTEROF\": \"písmeno %1 z %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"délka %1\",\n \"OPERATORS_CONTAINS\": \"%1 obsahuje %2?\",\n \"OPERATORS_MOD\": \"zbytek %1 děleno %2\",\n \"OPERATORS_ROUND\": \"zaokrouhli %1\",\n \"OPERATORS_MATHOP\": \"%1 %2\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"zaokr. dolů\",\n \"OPERATORS_MATHOP_CEILING\": \"zaokr. nahoru\",\n \"OPERATORS_MATHOP_SQRT\": \"odmocnina\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tg\",\n \"OPERATORS_MATHOP_ASIN\": \"arcsin\",\n \"OPERATORS_MATHOP_ACOS\": \"arccos\",\n \"OPERATORS_MATHOP_ATAN\": \"arctg\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"scénář pro %1\",\n \"SENSING_TOUCHINGOBJECT\": \"dotýkáš se %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"ukazatele myši\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"okraje\",\n \"SENSING_TOUCHINGCOLOR\": \"dotýkáš se barvy %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"barvou %1 se dotýkáš %2?\",\n \"SENSING_DISTANCETO\": \"vzdálenost k %1\",\n \"SENSING_DISTANCETO_POINTER\": \"ukazateli myši\",\n \"SENSING_ASKANDWAIT\": \"otázka %1\",\n \"SENSING_ASK_TEXT\": \"Jak se jmenuješ?\",\n \"SENSING_ANSWER\": \"odpověď\",\n \"SENSING_KEYPRESSED\": \"klávesa %1 stisknuta?\",\n \"SENSING_MOUSEDOWN\": \"myš stisknuta?\",\n \"SENSING_MOUSEX\": \"x myši\",\n \"SENSING_MOUSEY\": \"y myši\",\n \"SENSING_SETDRAGMODE\": \"povoleno přesouvat %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"ano\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"ne\",\n \"SENSING_LOUDNESS\": \"hlasitost\",\n \"SENSING_LOUD\": \"hlasité?\",\n \"SENSING_TIMER\": \"stopky\",\n \"SENSING_RESETTIMER\": \"vynuluj stopky\",\n \"SENSING_OF\": \"%1 z %2\",\n \"SENSING_OF_XPOSITION\": \"x\",\n \"SENSING_OF_YPOSITION\": \"y\",\n \"SENSING_OF_DIRECTION\": \"směr\",\n \"SENSING_OF_COSTUMENUMBER\": \"číslo kostýmu\",\n \"SENSING_OF_COSTUMENAME\": \"název kostýmu\",\n \"SENSING_OF_SIZE\": \"velikost\",\n \"SENSING_OF_VOLUME\": \"hlasitost\",\n \"SENSING_OF_BACKDROPNUMBER\": \"číslo pozadí\",\n \"SENSING_OF_BACKDROPNAME\": \"název pozadí\",\n \"SENSING_OF_STAGE\": \"Scéna\",\n \"SENSING_CURRENT\": \"aktuální %1\",\n \"SENSING_CURRENT_YEAR\": \"rok\",\n \"SENSING_CURRENT_MONTH\": \"měsíc\",\n \"SENSING_CURRENT_DATE\": \"den v měsíci\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"den týdne\",\n \"SENSING_CURRENT_HOUR\": \"hodina\",\n \"SENSING_CURRENT_MINUTE\": \"minuta\",\n \"SENSING_CURRENT_SECOND\": \"sekunda\",\n \"SENSING_DAYSSINCE2000\": \"dnů od r. 2000\",\n \"SENSING_USERNAME\": \"jméno uživatele\",\n \"SENSING_USERID\": \"ID uživatele\",\n \"SOUND_PLAY\": \"začni hrát zvuk %1\",\n \"SOUND_PLAYUNTILDONE\": \"přehraj zvuk %1 až do konce\",\n \"SOUND_STOPALLSOUNDS\": \"zastav všechny zvuky\",\n \"SOUND_SETEFFECTO\": \"nastav efekt %1 na %2\",\n \"SOUND_CHANGEEFFECTBY\": \"změň efekt %1 o %2\",\n \"SOUND_CLEAREFFECTS\": \"zruš zvukové efekty\",\n \"SOUND_EFFECTS_PITCH\": \"poloha\",\n \"SOUND_EFFECTS_PAN\": \"stereo vlevo/vpravo\",\n \"SOUND_CHANGEVOLUMEBY\": \"změň hlasitost o %1\",\n \"SOUND_SETVOLUMETO\": \"nastav hlasitost na %1%\",\n \"SOUND_VOLUME\": \"hlasitost\",\n \"SOUND_RECORD\": \"záznam ...\",\n \"CATEGORY_MOTION\": \"Pohyb\",\n \"CATEGORY_LOOKS\": \"Vzhled\",\n \"CATEGORY_SOUND\": \"Zvuk\",\n \"CATEGORY_EVENTS\": \"Události\",\n \"CATEGORY_CONTROL\": \"Ovládání\",\n \"CATEGORY_SENSING\": \"Vnímání\",\n \"CATEGORY_OPERATORS\": \"Operátory\",\n \"CATEGORY_VARIABLES\": \"Proměnné\",\n \"CATEGORY_MYBLOCKS\": \"Moje bloky\",\n \"DUPLICATE\": \"Kopírovat\",\n \"DELETE\": \"Odstranit\",\n \"ADD_COMMENT\": \"Přidat poznámku\",\n \"REMOVE_COMMENT\": \"Odstranit poznámku\",\n \"DELETE_BLOCK\": \"Smaž blok\",\n \"DELETE_X_BLOCKS\": \"Smazat %1 bloků\",\n \"DELETE_ALL_BLOCKS\": \"Smazat všech %1 bloků?\",\n \"CLEAN_UP\": \"Ukliď bloky\",\n \"HELP\": \"Pomoc\",\n \"UNDO\": \"Vrátit\",\n \"REDO\": \"Znovu provést\",\n \"EDIT_PROCEDURE\": \"Upravit\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Jdi ke scénáři\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Řekni něco ...\",\n \"COLOUR_HUE_LABEL\": \"Barva\",\n \"COLOUR_SATURATION_LABEL\": \"Sytost\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Jas\",\n \"CHANGE_VALUE_TITLE\": \"Změň hodnotu:\",\n \"RENAME_VARIABLE\": \"Přejmenovat proměnnou\",\n \"RENAME_VARIABLE_TITLE\": \"Přejmenuj všech \\\"%1\\\" proměnných na:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Přejmenovat proměnnou\",\n \"NEW_VARIABLE\": \"Vytvoř proměnnou\",\n \"NEW_VARIABLE_TITLE\": \"Nové jméno proměnné:\",\n \"VARIABLE_MODAL_TITLE\": \"Nová proměnná\",\n \"VARIABLE_ALREADY_EXISTS\": \"Proměnná pojmenovaná \\\"%1\\\" již existuje.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Proměnná téhož jména \\\"%1\\\" již existuje jako jiná proměnná typu \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Smazat %1 výskytů proměnné \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Nelze smazat proměnnou \\\"%1\\\", protože je součástí scénáře funkce \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Smaž proměnnou \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Vytvořit blok\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Scénář se jménem \\\"%1\\\" již existuje.\",\n \"PROCEDURE_DEFAULT_NAME\": \"název bloku\",\n \"NEW_LIST\": \"Vytvoř seznam\",\n \"NEW_LIST_TITLE\": \"Nový název seznamu:\",\n \"LIST_MODAL_TITLE\": \"Nový seznam\",\n \"LIST_ALREADY_EXISTS\": \"Seznam \\\"%1\\\" již existuje.\",\n \"RENAME_LIST_TITLE\": \"Přejmenuj všech \\\"%1\\\" seznamů na:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Přejmenuj seznam\",\n \"DEFAULT_LIST_ITEM\": \"věc\",\n \"DELETE_LIST\": \"Smaž seznam \\\"%1\\\"\",\n \"RENAME_LIST\": \"Přejmenuj seznam\",\n \"NEW_BROADCAST_MESSAGE\": \"Nová zpráva\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Nový název zprávy:\",\n \"BROADCAST_MODAL_TITLE\": \"Nová zpráva\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"zpráva1\"\n};\n\nBlockly.ScratchMsgs.locales[\"cy\"] =\n{\n \"CONTROL_FOREVER\": \"am byth\",\n \"CONTROL_REPEAT\": \"ailadrodd %1\",\n \"CONTROL_IF\": \"os %1 yna\",\n \"CONTROL_ELSE\": \"fel arall\",\n \"CONTROL_STOP\": \"aros\",\n \"CONTROL_STOP_ALL\": \"y cyfan\",\n \"CONTROL_STOP_THIS\": \"y sgript hon\",\n \"CONTROL_STOP_OTHER\": \"sgriptiau eraill yn y ciplun\",\n \"CONTROL_WAIT\": \"aros %1 eiliad\",\n \"CONTROL_WAITUNTIL\": \"aros hyd at %1\",\n \"CONTROL_REPEATUNTIL\": \"ailadrodd hyd at %1\",\n \"CONTROL_WHILE\": \"tra bo %1\",\n \"CONTROL_FOREACH\": \"am bob %1 yn %2\",\n \"CONTROL_STARTASCLONE\": \"pan rwy'n dechrau fel clôn\",\n \"CONTROL_CREATECLONEOF\": \"creu clôn o %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"fi fy hun\",\n \"CONTROL_DELETETHISCLONE\": \"dileu y clôn hwn\",\n \"CONTROL_COUNTER\": \"rhifydd\",\n \"CONTROL_INCRCOUNTER\": \"rhifydd cynyddiad\",\n \"CONTROL_CLEARCOUNTER\": \"clirio'r rhifydd\",\n \"CONTROL_ALLATONCE\": \"pob un ar unwaith\",\n \"DATA_SETVARIABLETO\": \"gosod %1 i %2\",\n \"DATA_CHANGEVARIABLEBY\": \"newid %1 gan %2\",\n \"DATA_SHOWVARIABLE\": \"dangos newidyn %1\",\n \"DATA_HIDEVARIABLE\": \"cuddio newidyn %1\",\n \"DATA_ADDTOLIST\": \"ychwanegu %1 i %2\",\n \"DATA_DELETEOFLIST\": \"dileu %1 o %2\",\n \"DATA_DELETEALLOFLIST\": \"Dileu pob un o'r %1\",\n \"DATA_INSERTATLIST\": \"mewnosod %1 yn %2 o %3\",\n \"DATA_REPLACEITEMOFLIST\": \"amnewid eitem %1 o %2 gyda %3\",\n \"DATA_ITEMOFLIST\": \"eitem %1 o %2\",\n \"DATA_ITEMNUMOFLIST\": \"eitem # %1 yn %2\",\n \"DATA_LENGTHOFLIST\": \"hyd %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 yn cynnwys %2?\",\n \"DATA_SHOWLIST\": \"dangos rhestr %1\",\n \"DATA_HIDELIST\": \"cuddio rhestr %1\",\n \"DATA_INDEX_ALL\": \"y cyfan\",\n \"DATA_INDEX_LAST\": \"olaf\",\n \"DATA_INDEX_RANDOM\": \"ar hap\",\n \"EVENT_WHENFLAGCLICKED\": \"pan fydd %1 wedi ei glicio\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"pan gaiff y ciplun yma ei glicio\",\n \"EVENT_WHENSTAGECLICKED\": \"pan fydd llwyfan wedi ei glicio\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"pan fydd y corlun yn cyffwrdd %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"pan rwy'n derbyn %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"pan fydd cefndir yn newid i %1\",\n \"EVENT_WHENGREATERTHAN\": \"pan %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"amserydd\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"cryfder sain\",\n \"EVENT_BROADCAST\": \"darlledu %1\",\n \"EVENT_BROADCASTANDWAIT\": \"darlledu %1 ac aros\",\n \"EVENT_WHENKEYPRESSED\": \"pan fo bysell %1 wedi ei wasgu\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"bwlch\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"saeth chwith\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"saeth de\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"saeth i lawr\",\n \"EVENT_WHENKEYPRESSED_UP\": \"saeth i fyny\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"unrhyw\",\n \"LOOKS_SAYFORSECS\": \"dweud %1 am %2 eiliad\",\n \"LOOKS_SAY\": \"dweud %1\",\n \"LOOKS_HELLO\": \"Helo!\",\n \"LOOKS_THINKFORSECS\": \"meddwl %1 am %2 eiliad\",\n \"LOOKS_THINK\": \"meddwl %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"dangos\",\n \"LOOKS_HIDE\": \"cuddio\",\n \"LOOKS_HIDEALLSPRITES\": \"cuddio pob ciplun\",\n \"LOOKS_EFFECT_COLOR\": \"lliw\",\n \"LOOKS_EFFECT_FISHEYE\": \"llygad pysgodyn\",\n \"LOOKS_EFFECT_WHIRL\": \"chwyrliad\",\n \"LOOKS_EFFECT_PIXELATE\": \"picseleiddio\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaig\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"disgleirdeb\",\n \"LOOKS_EFFECT_GHOST\": \"ysbryd\",\n \"LOOKS_CHANGEEFFECTBY\": \"newid effaith %1 gan %2\",\n \"LOOKS_SETEFFECTTO\": \"gosod effaith %1 effaith i %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"clirio effeithiau graffeg\",\n \"LOOKS_CHANGESIZEBY\": \"newid maint gan %1\",\n \"LOOKS_SETSIZETO\": \"gosod maint i %1 %\",\n \"LOOKS_SIZE\": \"maint\",\n \"LOOKS_CHANGESTRETCHBY\": \"newid yr ymestyn gan %1\",\n \"LOOKS_SETSTRETCHTO\": \"gosod ymestyniad gan %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"newid gwisg i %1\",\n \"LOOKS_NEXTCOSTUME\": \"gwisg nesaf\",\n \"LOOKS_SWITCHBACKDROPTO\": \"newid cefndir i %1\",\n \"LOOKS_GOTOFRONTBACK\": \"mynd i haen %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"blaen\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"cefn\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"mynd i haenau %1 %2\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"ymlaen\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"nôl\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"cefnlen %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"gwisg %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"rhif\",\n \"LOOKS_NUMBERNAME_NAME\": \"enw\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"newid cefnlen i %1 ac aros\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"cefnlen nesaf\",\n \"LOOKS_NEXTBACKDROP\": \"cefnlen nesaf\",\n \"LOOKS_PREVIOUSBACKDROP\": \"cefnlen flaenorol\",\n \"LOOKS_RANDOMBACKDROP\": \"cefnlen ar hap\",\n \"MOTION_MOVESTEPS\": \"symud %1 cam\",\n \"MOTION_TURNLEFT\": \"troi %1 %2 gradd\",\n \"MOTION_TURNRIGHT\": \"troi %1 %2 gradd\",\n \"MOTION_POINTINDIRECTION\": \"pwyntio i gyfeiriad %1\",\n \"MOTION_POINTTOWARDS\": \"pwyntio tuag at %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"pwyntydd llygoden\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"cyfeiriad ar hap\",\n \"MOTION_GOTO\": \"mynd i %1\",\n \"MOTION_GOTO_POINTER\": \"pwyntydd llygoden\",\n \"MOTION_GOTO_RANDOM\": \"safle ar hap\",\n \"MOTION_GOTOXY\": \"mynd i x:%1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"llithro %1 eiliad i x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"llithro %1 eiliad i %2\",\n \"MOTION_GLIDETO_POINTER\": \"pwyntydd llygoden\",\n \"MOTION_GLIDETO_RANDOM\": \"safle ar hap\",\n \"MOTION_CHANGEXBY\": \"newid x gan %1\",\n \"MOTION_SETX\": \"gosod x i %1\",\n \"MOTION_CHANGEYBY\": \"newid y gan %1\",\n \"MOTION_SETY\": \"gosod y i %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"os ar ymyl, bowndio\",\n \"MOTION_SETROTATIONSTYLE\": \"gosod steil cylchdroi %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"chwith-dde\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"peidio troi\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"o amgylch\",\n \"MOTION_XPOSITION\": \"safle x\",\n \"MOTION_YPOSITION\": \"safle y\",\n \"MOTION_DIRECTION\": \"cyfeiriad\",\n \"MOTION_SCROLLRIGHT\": \"sgrolio i'r dde %1\",\n \"MOTION_SCROLLUP\": \"sgrolio i fyny %1\",\n \"MOTION_ALIGNSCENE\": \"alinio golygfa %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"gwaelod chwith\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"gwaelod de\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"canol\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"brig chwith\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"brig de\",\n \"MOTION_XSCROLL\": \"sgrolio x\",\n \"MOTION_YSCROLL\": \"sgrolio y\",\n \"MOTION_STAGE_SELECTED\": \"Llwyfan wedi ei ddewis: dim blociau symud\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"dewis ar hap %1 i %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 a %2\",\n \"OPERATORS_OR\": \"%1 neu %2\",\n \"OPERATORS_NOT\": \"nid %1\",\n \"OPERATORS_JOIN\": \"uno %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"afal\",\n \"OPERATORS_JOIN_BANANA\": \"banana\",\n \"OPERATORS_LETTEROF\": \"llythyren %1 o %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"hyd %1\",\n \"OPERATORS_CONTAINS\": \"%1 yn cynnwys %2?\",\n \"OPERATORS_MOD\": \"%1 mod %2\",\n \"OPERATORS_ROUND\": \"talgrynnu %1\",\n \"OPERATORS_MATHOP\": \"%1 o %2\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"llawr\",\n \"OPERATORS_MATHOP_CEILING\": \"nenfwd\",\n \"OPERATORS_MATHOP_SQRT\": \"ail isradd\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"Yn\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"diffinio %1\",\n \"SENSING_TOUCHINGOBJECT\": \"cyffwrdd %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"pwyntydd llygoden\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"ymyl\",\n \"SENSING_TOUCHINGCOLOR\": \"cyffwrdd lliw %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"lliw %1 yn cyffwrdd %2?\",\n \"SENSING_DISTANCETO\": \"pellter i %1\",\n \"SENSING_DISTANCETO_POINTER\": \"pwyntydd llygoden\",\n \"SENSING_ASKANDWAIT\": \"gofyn %1 ac aros\",\n \"SENSING_ASK_TEXT\": \"Beth yw eich enw?\",\n \"SENSING_ANSWER\": \"ateb\",\n \"SENSING_KEYPRESSED\": \"bysell %1 wedi ei phwyso?\",\n \"SENSING_MOUSEDOWN\": \"llygoden i lawr?\",\n \"SENSING_MOUSEX\": \"llygoden x\",\n \"SENSING_MOUSEY\": \"llygoden y\",\n \"SENSING_SETDRAGMODE\": \"gosod y modd llusgo %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"llusgadwy\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"anllusgadwy\",\n \"SENSING_LOUDNESS\": \"cryfder sain\",\n \"SENSING_LOUD\": \"sain gref?\",\n \"SENSING_TIMER\": \"amserydd\",\n \"SENSING_RESETTIMER\": \"ailosod amserydd\",\n \"SENSING_OF\": \"%1 o %2\",\n \"SENSING_OF_XPOSITION\": \"safle x\",\n \"SENSING_OF_YPOSITION\": \"safle y\",\n \"SENSING_OF_DIRECTION\": \"cyfeiriad\",\n \"SENSING_OF_COSTUMENUMBER\": \"gwisg #\",\n \"SENSING_OF_COSTUMENAME\": \"enw'r wisg\",\n \"SENSING_OF_SIZE\": \"maint\",\n \"SENSING_OF_VOLUME\": \"lefel sain\",\n \"SENSING_OF_BACKDROPNUMBER\": \"cefnlen #\",\n \"SENSING_OF_BACKDROPNAME\": \"enw cefnlen\",\n \"SENSING_OF_STAGE\": \"Llwyfan\",\n \"SENSING_CURRENT\": \"cyfredol %1\",\n \"SENSING_CURRENT_YEAR\": \"blwyddyn\",\n \"SENSING_CURRENT_MONTH\": \"mis\",\n \"SENSING_CURRENT_DATE\": \"dyddiad\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"diwrnod o'r wythnos\",\n \"SENSING_CURRENT_HOUR\": \"awr\",\n \"SENSING_CURRENT_MINUTE\": \"munud\",\n \"SENSING_CURRENT_SECOND\": \"eiliad\",\n \"SENSING_DAYSSINCE2000\": \"dyddiau ers 2000\",\n \"SENSING_USERNAME\": \"enw defnyddiwr\",\n \"SENSING_USERID\": \"id defnyddiwr\",\n \"SOUND_PLAY\": \"cychwyn sain %1\",\n \"SOUND_PLAYUNTILDONE\": \"chwarae sain %1 tan y diwedd\",\n \"SOUND_STOPALLSOUNDS\": \"atal pob sain\",\n \"SOUND_SETEFFECTO\": \"gosod effaith %1 effaith i %2\",\n \"SOUND_CHANGEEFFECTBY\": \"newid effaith %1 gan %2\",\n \"SOUND_CLEAREFFECTS\": \"clirio effeithiau sain\",\n \"SOUND_EFFECTS_PITCH\": \"traw\",\n \"SOUND_EFFECTS_PAN\": \"troi chwith/de\",\n \"SOUND_CHANGEVOLUMEBY\": \"newid uchder sain gan %1\",\n \"SOUND_SETVOLUMETO\": \"gosod lefel sain i %1%\",\n \"SOUND_VOLUME\": \"lefel sain\",\n \"SOUND_RECORD\": \"recordio...\",\n \"CATEGORY_MOTION\": \"Symudiad\",\n \"CATEGORY_LOOKS\": \"Edrychiad\",\n \"CATEGORY_SOUND\": \"Sain\",\n \"CATEGORY_EVENTS\": \"Digwyddiadau\",\n \"CATEGORY_CONTROL\": \"Rheoli\",\n \"CATEGORY_SENSING\": \"Synhwyro\",\n \"CATEGORY_OPERATORS\": \"Gweithredwyr\",\n \"CATEGORY_VARIABLES\": \"Newidynnau\",\n \"CATEGORY_MYBLOCKS\": \"Fy Mlociau\",\n \"DUPLICATE\": \"Dyblygu\",\n \"DELETE\": \"Dileu\",\n \"ADD_COMMENT\": \"Ychwanegu Sylw\",\n \"REMOVE_COMMENT\": \"Tynnu Sylw\",\n \"DELETE_BLOCK\": \"Dileu Bloc\",\n \"DELETE_X_BLOCKS\": \"Dileu %1 Bloc\",\n \"DELETE_ALL_BLOCKS\": \"Dileu pob un o'r %1 bloc?\",\n \"CLEAN_UP\": \"Glanhau'r Blociau\",\n \"HELP\": \"Cymorth\",\n \"UNDO\": \"Dadwneud\",\n \"REDO\": \"Ailwneud\",\n \"EDIT_PROCEDURE\": \"Golygu\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Mynd i'r diffiniad\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Dwedwch rywbeth...\",\n \"COLOUR_HUE_LABEL\": \"Lliw\",\n \"COLOUR_SATURATION_LABEL\": \"Dirlawnder\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Disgleirdeb\",\n \"CHANGE_VALUE_TITLE\": \"Newid gwerth:\",\n \"RENAME_VARIABLE\": \"Ailenwi newidyn\",\n \"RENAME_VARIABLE_TITLE\": \"Ailenwi pob newidyn \\\"%1\\\" i:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Ailenwi Newidyn\",\n \"NEW_VARIABLE\": \"Creu Newidyn\",\n \"NEW_VARIABLE_TITLE\": \"Enw newidyn newydd:\",\n \"VARIABLE_MODAL_TITLE\": \"Newidyn Newydd\",\n \"VARIABLE_ALREADY_EXISTS\": \"Mae newidyn o'r enw \\\"%1\\\" yn bodoli eisoes.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Mae newidyn o'r enw \\\"%1\\\" yn bodoli eisoes ar gyfer math arall o newidyn \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Dileu'r defnydd %1 o'r newidyn \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Methu dileu newidyn \\\"%1\\\" gan ei fod yn rhan o ddiffiniad swyddogaeth \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Dileu newidyn \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Creu Bloc\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Mae trefn o'r enw \\\"%1\\\" yn bodoli eisoes.\",\n \"PROCEDURE_DEFAULT_NAME\": \"enw bloc\",\n \"NEW_LIST\": \"Gwneud Rhestr\",\n \"NEW_LIST_TITLE\": \"Enw rhestr newydd:\",\n \"LIST_MODAL_TITLE\": \"Rhestr Newydd\",\n \"LIST_ALREADY_EXISTS\": \"Mae rhestr o'r enw \\\"%1\\\" yn bodoli eisoes.\",\n \"RENAME_LIST_TITLE\": \"Ailenwi pob rhestr \\\"%1\\\" i:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Ailenwi Rhestr\",\n \"DEFAULT_LIST_ITEM\": \"peth\",\n \"DELETE_LIST\": \"Dileu'r rhestr \\\"%1\\\" \",\n \"RENAME_LIST\": \"Ailenwi rhestr\",\n \"NEW_BROADCAST_MESSAGE\": \"Neges newydd\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Enw neges newydd:\",\n \"BROADCAST_MODAL_TITLE\": \"Neges Newydd\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"neges1\"\n};\n\nBlockly.ScratchMsgs.locales[\"da\"] =\n{\n \"CONTROL_FOREVER\": \"for evigt\",\n \"CONTROL_REPEAT\": \"gentag %1 gange\",\n \"CONTROL_IF\": \"hvis %1 så\",\n \"CONTROL_ELSE\": \"ellers\",\n \"CONTROL_STOP\": \"stop\",\n \"CONTROL_STOP_ALL\": \"alle\",\n \"CONTROL_STOP_THIS\": \"dette script\",\n \"CONTROL_STOP_OTHER\": \"andre scripts i sprite\",\n \"CONTROL_WAIT\": \"vent %1 sekunder\",\n \"CONTROL_WAITUNTIL\": \"vent indtil %1\",\n \"CONTROL_REPEATUNTIL\": \"gentag indtil %1\",\n \"CONTROL_WHILE\": \"mens %1\",\n \"CONTROL_FOREACH\": \"for hver %1 i %2\",\n \"CONTROL_STARTASCLONE\": \"når jeg starter som klon\",\n \"CONTROL_CREATECLONEOF\": \"opret en klon af %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"mig selv\",\n \"CONTROL_DELETETHISCLONE\": \"slet denne klon\",\n \"CONTROL_COUNTER\": \"tæller\",\n \"CONTROL_INCRCOUNTER\": \"tæl tæller op\",\n \"CONTROL_CLEARCOUNTER\": \"nulstil tæller\",\n \"CONTROL_ALLATONCE\": \"alle på en gang\",\n \"DATA_SETVARIABLETO\": \"sæt %1 til %2\",\n \"DATA_CHANGEVARIABLEBY\": \"ændre %1 med %2\",\n \"DATA_SHOWVARIABLE\": \"vis variabel %1\",\n \"DATA_HIDEVARIABLE\": \"skjul variabel %1\",\n \"DATA_ADDTOLIST\": \"tilføj %1 til %2\",\n \"DATA_DELETEOFLIST\": \"slet %1 af %2\",\n \"DATA_DELETEALLOFLIST\": \"slet alle %1\",\n \"DATA_INSERTATLIST\": \"indsæt %1 ved %2 af %3\",\n \"DATA_REPLACEITEMOFLIST\": \"erstat nummer %1 af %2 med %3\",\n \"DATA_ITEMOFLIST\": \"nummer %1 af %2\",\n \"DATA_ITEMNUMOFLIST\": \"nummer # af %1 i %2\",\n \"DATA_LENGTHOFLIST\": \"længden af %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 indeholder %2?\",\n \"DATA_SHOWLIST\": \"vis liste %1\",\n \"DATA_HIDELIST\": \"skjul liste %1\",\n \"DATA_INDEX_ALL\": \"alle\",\n \"DATA_INDEX_LAST\": \"sidste\",\n \"DATA_INDEX_RANDOM\": \"tilfældig\",\n \"EVENT_WHENFLAGCLICKED\": \"når der klikkes på %1 \",\n \"EVENT_WHENTHISSPRITECLICKED\": \"når denne sprite klikkes\",\n \"EVENT_WHENSTAGECLICKED\": \"når scene er valgt\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"når denne sprite berører %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"når jeg modtager %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"når baggrund skifter til %1\",\n \"EVENT_WHENGREATERTHAN\": \"når %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"stopur\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"lydstyrke\",\n \"EVENT_BROADCAST\": \"send %1\",\n \"EVENT_BROADCASTANDWAIT\": \"send %1 og vent\",\n \"EVENT_WHENKEYPRESSED\": \"når du trykker på %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"mellemrum\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"venstre pil\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"højre pil\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"pil nedad\",\n \"EVENT_WHENKEYPRESSED_UP\": \"pil opad\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"vilkårlig\",\n \"LOOKS_SAYFORSECS\": \"sig %1 i %2 sekunder\",\n \"LOOKS_SAY\": \"sig %1\",\n \"LOOKS_HELLO\": \"Hej!\",\n \"LOOKS_THINKFORSECS\": \"tænk %1 i %2 sekunder\",\n \"LOOKS_THINK\": \"tænk %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"vis\",\n \"LOOKS_HIDE\": \"skjul\",\n \"LOOKS_HIDEALLSPRITES\": \"skjul alle sprites\",\n \"LOOKS_EFFECT_COLOR\": \"farve\",\n \"LOOKS_EFFECT_FISHEYE\": \"fiskeøje\",\n \"LOOKS_EFFECT_WHIRL\": \"vrid\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixeler\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaik\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"lysstyrke\",\n \"LOOKS_EFFECT_GHOST\": \"spøgelse\",\n \"LOOKS_CHANGEEFFECTBY\": \"ændre effekt %1 med %2\",\n \"LOOKS_SETEFFECTTO\": \"sæt effekt %1 til %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"fjern grafiske effekter\",\n \"LOOKS_CHANGESIZEBY\": \"ændre størrelse med %1\",\n \"LOOKS_SETSIZETO\": \"sæt størrelse til %1 %\",\n \"LOOKS_SIZE\": \"størrelse\",\n \"LOOKS_CHANGESTRETCHBY\": \"ændre stræk med %1\",\n \"LOOKS_SETSTRETCHTO\": \"sæt stræk til %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"skift kostume til %1\",\n \"LOOKS_NEXTCOSTUME\": \"næste kostume\",\n \"LOOKS_SWITCHBACKDROPTO\": \"skift baggrund til %1\",\n \"LOOKS_GOTOFRONTBACK\": \"gå til %1 lag\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"forreste\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"bagerste\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"gå %2 lag %1\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"frem\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"tilbage\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"baggrund %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"kostume %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"nummer\",\n \"LOOKS_NUMBERNAME_NAME\": \"navn\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"skift baggrund til %1 og vent\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"næste baggrund\",\n \"LOOKS_NEXTBACKDROP\": \"næste baggrund\",\n \"LOOKS_PREVIOUSBACKDROP\": \"forrige baggrund\",\n \"LOOKS_RANDOMBACKDROP\": \"tilfældig baggrund\",\n \"MOTION_MOVESTEPS\": \"gå %1 trin\",\n \"MOTION_TURNLEFT\": \"drej %1 %2 grader\",\n \"MOTION_TURNRIGHT\": \"drej %1 %2 grader\",\n \"MOTION_POINTINDIRECTION\": \"peg i retning %1\",\n \"MOTION_POINTTOWARDS\": \"peg mod %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"musepil\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"tilfældig retning\",\n \"MOTION_GOTO\": \"gå til %1\",\n \"MOTION_GOTO_POINTER\": \"musepil\",\n \"MOTION_GOTO_RANDOM\": \"tilfældig position\",\n \"MOTION_GOTOXY\": \"gå til x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"glid %1 sekunder til x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"glid %1 sekunder til %2\",\n \"MOTION_GLIDETO_POINTER\": \"musepil\",\n \"MOTION_GLIDETO_RANDOM\": \"tilfældig position\",\n \"MOTION_CHANGEXBY\": \"ændre x med %1\",\n \"MOTION_SETX\": \"sæt x til %1\",\n \"MOTION_CHANGEYBY\": \"ændre y med %1\",\n \"MOTION_SETY\": \"sæt y til %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"hop tilbage ved kanten\",\n \"MOTION_SETROTATIONSTYLE\": \"sæt rotationsstil til %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"venstre-højre\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"drej ikke\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"alle retninger\",\n \"MOTION_XPOSITION\": \"x position\",\n \"MOTION_YPOSITION\": \"y position\",\n \"MOTION_DIRECTION\": \"retning\",\n \"MOTION_SCROLLRIGHT\": \"rul mod højre %1\",\n \"MOTION_SCROLLUP\": \"rul op %1\",\n \"MOTION_ALIGNSCENE\": \"tilpas scene %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"nederst-til-venstre\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"nederst-til-højre\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"midten\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"øverst-til-venstre\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"øverst-til-højre\",\n \"MOTION_XSCROLL\": \"x rul\",\n \"MOTION_YSCROLL\": \"y rul\",\n \"MOTION_STAGE_SELECTED\": \"scene valgt: ingen bevægelses brikker\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"vælg tilfældigt mellem %1 og %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 og %2\",\n \"OPERATORS_OR\": \"%1 eller %2\",\n \"OPERATORS_NOT\": \"ikke %1\",\n \"OPERATORS_JOIN\": \"%1 tilkobles %2\",\n \"OPERATORS_JOIN_APPLE\": \"æble\",\n \"OPERATORS_JOIN_BANANA\": \"banan\",\n \"OPERATORS_LETTEROF\": \"bogstav %1 af %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"længden af %1\",\n \"OPERATORS_CONTAINS\": \"%1 indeholder %2?\",\n \"OPERATORS_MOD\": \"%1 modulo %2\",\n \"OPERATORS_ROUND\": \"afrund %1\",\n \"OPERATORS_MATHOP\": \"%1 af %2\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"rund ned\",\n \"OPERATORS_MATHOP_CEILING\": \"rund op\",\n \"OPERATORS_MATHOP_SQRT\": \"kvrod\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"definer %1\",\n \"SENSING_TOUCHINGOBJECT\": \"berører %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"musepil\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"kant\",\n \"SENSING_TOUCHINGCOLOR\": \"berører farven %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"berører %1 farven %2?\",\n \"SENSING_DISTANCETO\": \"afstand til %1\",\n \"SENSING_DISTANCETO_POINTER\": \"musepil\",\n \"SENSING_ASKANDWAIT\": \"bed om %1 og vent\",\n \"SENSING_ASK_TEXT\": \"Hvad er dit navn?\",\n \"SENSING_ANSWER\": \"svar\",\n \"SENSING_KEYPRESSED\": \"trykket på tasten %1?\",\n \"SENSING_MOUSEDOWN\": \"trykket på musen?\",\n \"SENSING_MOUSEX\": \"musens x-position\",\n \"SENSING_MOUSEY\": \"musens y-position\",\n \"SENSING_SETDRAGMODE\": \"sæt flytbarhed til %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"kan flyttes\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"kan ikke flyttes\",\n \"SENSING_LOUDNESS\": \"lydstyrke\",\n \"SENSING_LOUD\": \"højt?\",\n \"SENSING_TIMER\": \"stopur\",\n \"SENSING_RESETTIMER\": \"nulstil stopur\",\n \"SENSING_OF\": \"%1 af %2\",\n \"SENSING_OF_XPOSITION\": \"x position\",\n \"SENSING_OF_YPOSITION\": \"y position\",\n \"SENSING_OF_DIRECTION\": \"retning\",\n \"SENSING_OF_COSTUMENUMBER\": \"kostume #\",\n \"SENSING_OF_COSTUMENAME\": \"navn på kostume\",\n \"SENSING_OF_SIZE\": \"størrelse\",\n \"SENSING_OF_VOLUME\": \"lydstyrke\",\n \"SENSING_OF_BACKDROPNUMBER\": \"baggrund #\",\n \"SENSING_OF_BACKDROPNAME\": \"navn på baggrund\",\n \"SENSING_OF_STAGE\": \"Scene\",\n \"SENSING_CURRENT\": \"nuværende %1\",\n \"SENSING_CURRENT_YEAR\": \"år\",\n \"SENSING_CURRENT_MONTH\": \"måned\",\n \"SENSING_CURRENT_DATE\": \"dato\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"ugedag\",\n \"SENSING_CURRENT_HOUR\": \"time\",\n \"SENSING_CURRENT_MINUTE\": \"minut\",\n \"SENSING_CURRENT_SECOND\": \"sekund\",\n \"SENSING_DAYSSINCE2000\": \"dage siden 2000\",\n \"SENSING_USERNAME\": \"brugernavn\",\n \"SENSING_USERID\": \"bruger id\",\n \"SOUND_PLAY\": \"spil lyden %1\",\n \"SOUND_PLAYUNTILDONE\": \"spil lyden %1 indtil færdig\",\n \"SOUND_STOPALLSOUNDS\": \"stop al lyd\",\n \"SOUND_SETEFFECTO\": \"sæt effekt %1 til %2\",\n \"SOUND_CHANGEEFFECTBY\": \"ændre effekt %1 med %2\",\n \"SOUND_CLEAREFFECTS\": \"fjern lydeffekter\",\n \"SOUND_EFFECTS_PITCH\": \"tonehøjde\",\n \"SOUND_EFFECTS_PAN\": \"balance venstre/højre\",\n \"SOUND_CHANGEVOLUMEBY\": \"ændre lydstyrke med %1\",\n \"SOUND_SETVOLUMETO\": \"sæt lydstyrke til %1%\",\n \"SOUND_VOLUME\": \"lydstyrke\",\n \"SOUND_RECORD\": \"optag...\",\n \"CATEGORY_MOTION\": \"Bevægelse\",\n \"CATEGORY_LOOKS\": \"Udseende\",\n \"CATEGORY_SOUND\": \"Lyd\",\n \"CATEGORY_EVENTS\": \"Hændelser\",\n \"CATEGORY_CONTROL\": \"Kontrol\",\n \"CATEGORY_SENSING\": \"Registrering\",\n \"CATEGORY_OPERATORS\": \"Operatorer\",\n \"CATEGORY_VARIABLES\": \"Variabler\",\n \"CATEGORY_MYBLOCKS\": \"Mine brikker\",\n \"DUPLICATE\": \"Kopiér\",\n \"DELETE\": \"Slet\",\n \"ADD_COMMENT\": \"Tilføj kommentar\",\n \"REMOVE_COMMENT\": \"Slet kommentar\",\n \"DELETE_BLOCK\": \"Slet brik\",\n \"DELETE_X_BLOCKS\": \"Slet %1 brikker\",\n \"DELETE_ALL_BLOCKS\": \"Slet alle %1 brikker?\",\n \"CLEAN_UP\": \"Ryd brikkerne op\",\n \"HELP\": \"Hjælp\",\n \"UNDO\": \"Fortryd\",\n \"REDO\": \"Gør om\",\n \"EDIT_PROCEDURE\": \"Redigér\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Gå til forklaring\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Sig noget...\",\n \"COLOUR_HUE_LABEL\": \"Farve\",\n \"COLOUR_SATURATION_LABEL\": \"Farvemætning\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Lysstyrke\",\n \"CHANGE_VALUE_TITLE\": \"Ændre værdien:\",\n \"RENAME_VARIABLE\": \"Omdøb variabel\",\n \"RENAME_VARIABLE_TITLE\": \"Omdøb alle \\\"%1\\\" variabler til:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Omdøb variabel\",\n \"NEW_VARIABLE\": \"Lav en variabel\",\n \"NEW_VARIABLE_TITLE\": \"Navn på ny variabel:\",\n \"VARIABLE_MODAL_TITLE\": \"Ny variabel\",\n \"VARIABLE_ALREADY_EXISTS\": \"Der eksisterer allerede en variabel med navnet '%1'.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Der eksisterer allerede en variabel med navnet \\\"%1\\\" for en anden variabel af typen \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Slet %1 brugen af denne \\\"%2\\\" variabel?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Kan ikke slette variablen \\\"%1\\\" fordi at den er en del af forklaringen til funktionen \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Slet \\\"%1\\\" variablen\",\n \"NEW_PROCEDURE\": \"Lav en brik\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Der eksisterer allerede en procedure med navnet \\\"%1\\\".\",\n \"PROCEDURE_DEFAULT_NAME\": \"brikkens navn\",\n \"NEW_LIST\": \"Lav en liste\",\n \"NEW_LIST_TITLE\": \"Navn på ny liste:\",\n \"LIST_MODAL_TITLE\": \"Ny liste\",\n \"LIST_ALREADY_EXISTS\": \"Der eksisterer allerede en liste med navnet \\\"%1\\\".\",\n \"RENAME_LIST_TITLE\": \"Omdøb alle \\\"%1\\\" lister til:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Omdøb liste\",\n \"DEFAULT_LIST_ITEM\": \"ting\",\n \"DELETE_LIST\": \"Slet \\\"%1\\\" listen\",\n \"RENAME_LIST\": \"Omdøb liste\",\n \"NEW_BROADCAST_MESSAGE\": \"Ny besked\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Navn på ny besked:\",\n \"BROADCAST_MODAL_TITLE\": \"Ny besked\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"besked1\"\n};\n\nBlockly.ScratchMsgs.locales[\"de\"] =\n{\n \"CONTROL_FOREVER\": \"wiederhole fortlaufend\",\n \"CONTROL_REPEAT\": \"wiederhole %1 mal\",\n \"CONTROL_IF\": \"falls %1, dann\",\n \"CONTROL_ELSE\": \"sonst\",\n \"CONTROL_STOP\": \"stoppe\",\n \"CONTROL_STOP_ALL\": \"alles\",\n \"CONTROL_STOP_THIS\": \"dieses Skript\",\n \"CONTROL_STOP_OTHER\": \"andere Skripte der Figur\",\n \"CONTROL_WAIT\": \"warte %1 Sekunden\",\n \"CONTROL_WAITUNTIL\": \"warte bis %1\",\n \"CONTROL_REPEATUNTIL\": \"wiederhole bis %1\",\n \"CONTROL_WHILE\": \"wiederhole solange %1\",\n \"CONTROL_FOREACH\": \"wiederhole für jedes %1 in %2\",\n \"CONTROL_STARTASCLONE\": \"Wenn ich als Klon entstehe\",\n \"CONTROL_CREATECLONEOF\": \"erzeuge Klon von %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"mir selbst\",\n \"CONTROL_DELETETHISCLONE\": \"lösche diesen Klon\",\n \"CONTROL_COUNTER\": \"Zähler\",\n \"CONTROL_INCRCOUNTER\": \"erhöhe Zähler\",\n \"CONTROL_CLEARCOUNTER\": \"lösche Zähler\",\n \"CONTROL_ALLATONCE\": \"Alle gleichzeitig\",\n \"DATA_SETVARIABLETO\": \"setze %1 auf %2\",\n \"DATA_CHANGEVARIABLEBY\": \"ändere %1 um %2\",\n \"DATA_SHOWVARIABLE\": \"zeige Variable %1\",\n \"DATA_HIDEVARIABLE\": \"verstecke Variable %1\",\n \"DATA_ADDTOLIST\": \"füge %1 zu %2 hinzu\",\n \"DATA_DELETEOFLIST\": \"lösche %1 aus %2\",\n \"DATA_DELETEALLOFLIST\": \"lösche alles aus %1\",\n \"DATA_INSERTATLIST\": \"füge %1 bei %2 in %3 ein\",\n \"DATA_REPLACEITEMOFLIST\": \"ersetze Element %1 von %2 durch %3\",\n \"DATA_ITEMOFLIST\": \"Element %1 von %2\",\n \"DATA_ITEMNUMOFLIST\": \"Nummer von %1 in %2\",\n \"DATA_LENGTHOFLIST\": \"Länge von %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 enthält %2?\",\n \"DATA_SHOWLIST\": \"zeige Liste %1\",\n \"DATA_HIDELIST\": \"verstecke Liste %1\",\n \"DATA_INDEX_ALL\": \"alles\",\n \"DATA_INDEX_LAST\": \"letztes\",\n \"DATA_INDEX_RANDOM\": \"zufälliges\",\n \"EVENT_WHENFLAGCLICKED\": \"Wenn %1 angeklickt wird\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"Wenn diese Figur angeklickt wird\",\n \"EVENT_WHENSTAGECLICKED\": \"Wenn die Bühne angeklickt wird\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"Wenn diese Figur %1 berührt\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"Wenn ich %1 empfange\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"Wenn das Bühnenbild zu %1 wechselt\",\n \"EVENT_WHENGREATERTHAN\": \"Wenn %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"Stoppuhr\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"Lautstärke\",\n \"EVENT_BROADCAST\": \"sende %1 an alle\",\n \"EVENT_BROADCASTANDWAIT\": \"sende %1 an alle und warte\",\n \"EVENT_WHENKEYPRESSED\": \"Wenn Taste %1 gedrückt wird\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"Leertaste\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"Pfeil nach links\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"Pfeil nach rechts\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"Pfeil nach unten\",\n \"EVENT_WHENKEYPRESSED_UP\": \"Pfeil nach oben\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"beliebiges\",\n \"LOOKS_SAYFORSECS\": \"sage %1 für %2 Sekunden\",\n \"LOOKS_SAY\": \"sage %1\",\n \"LOOKS_HELLO\": \"Hallo!\",\n \"LOOKS_THINKFORSECS\": \"denke %1 für %2 Sekunden\",\n \"LOOKS_THINK\": \"denke %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"zeige dich\",\n \"LOOKS_HIDE\": \"verstecke dich\",\n \"LOOKS_HIDEALLSPRITES\": \"Alle Figuren verbergen\",\n \"LOOKS_EFFECT_COLOR\": \"Farbe\",\n \"LOOKS_EFFECT_FISHEYE\": \"Fischauge\",\n \"LOOKS_EFFECT_WHIRL\": \"Wirbel\",\n \"LOOKS_EFFECT_PIXELATE\": \"Pixel\",\n \"LOOKS_EFFECT_MOSAIC\": \"Mosaik\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"Helligkeit\",\n \"LOOKS_EFFECT_GHOST\": \"Durchsichtigkeit\",\n \"LOOKS_CHANGEEFFECTBY\": \"ändere Effekt %1 um %2\",\n \"LOOKS_SETEFFECTTO\": \"setze Effekt %1 auf %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"schalte Grafikeffekte aus\",\n \"LOOKS_CHANGESIZEBY\": \"ändere Größe um %1\",\n \"LOOKS_SETSIZETO\": \"setze Größe auf %1\",\n \"LOOKS_SIZE\": \"Größe\",\n \"LOOKS_CHANGESTRETCHBY\": \"ändere Dehnung um %1\",\n \"LOOKS_SETSTRETCHTO\": \"setze Dehnung auf %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"wechsle zu Kostüm %1\",\n \"LOOKS_NEXTCOSTUME\": \"wechsle zum nächsten Kostüm\",\n \"LOOKS_SWITCHBACKDROPTO\": \"wechsle zu Bühnenbild %1\",\n \"LOOKS_GOTOFRONTBACK\": \"gehe zu %1 Ebene\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"vorderster\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"hinterster\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"gehe %2 Ebenen %1\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"nach vorne\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"nach hinten\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"Bühnenbild %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"Kostüm %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"Nummer\",\n \"LOOKS_NUMBERNAME_NAME\": \"Name\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"wechsle zu Bühnenbild %1 und warte\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"wechsle zum nächsten Bühnenbild\",\n \"LOOKS_NEXTBACKDROP\": \"nächstes Bühnenbild\",\n \"LOOKS_PREVIOUSBACKDROP\": \"vorheriges Bühnenbild\",\n \"LOOKS_RANDOMBACKDROP\": \"zufälliges Bühnenbild\",\n \"MOTION_MOVESTEPS\": \"gehe %1 er Schritt\",\n \"MOTION_TURNLEFT\": \"drehe dich %1 um %2 Grad\",\n \"MOTION_TURNRIGHT\": \"drehe dich %1 um %2 Grad\",\n \"MOTION_POINTINDIRECTION\": \"setze Richtung auf %1 Grad\",\n \"MOTION_POINTTOWARDS\": \"drehe dich zu %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"Mauszeiger\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"Zufallsrichtung\",\n \"MOTION_GOTO\": \"gehe zu %1\",\n \"MOTION_GOTO_POINTER\": \"Mauszeiger\",\n \"MOTION_GOTO_RANDOM\": \"Zufallsposition\",\n \"MOTION_GOTOXY\": \"gehe zu x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"gleite in %1 Sek. zu x:%2 y:%3\",\n \"MOTION_GLIDETO\": \"gleite in %1 Sek. zu %2\",\n \"MOTION_GLIDETO_POINTER\": \"Mauszeiger\",\n \"MOTION_GLIDETO_RANDOM\": \"Zufallsposition\",\n \"MOTION_CHANGEXBY\": \"ändere x um %1\",\n \"MOTION_SETX\": \"setze x auf %1\",\n \"MOTION_CHANGEYBY\": \"ändere y um %1\",\n \"MOTION_SETY\": \"setze y auf %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"pralle vom Rand ab\",\n \"MOTION_SETROTATIONSTYLE\": \"setze Drehtyp auf %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"links-rechts\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"nicht drehen\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"rundherum\",\n \"MOTION_XPOSITION\": \"x-Position\",\n \"MOTION_YPOSITION\": \"y-Position\",\n \"MOTION_DIRECTION\": \"Richtung\",\n \"MOTION_SCROLLRIGHT\": \"%1 nach rechts bewegen\",\n \"MOTION_SCROLLUP\": \"%1 nach oben bewegen\",\n \"MOTION_ALIGNSCENE\": \"Szene ausrichten %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"unten links\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"unten rechts\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"Mitte\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"oben links\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"oben rechts\",\n \"MOTION_XSCROLL\": \"x-Bewegung\",\n \"MOTION_YSCROLL\": \"y-Bewegung\",\n \"MOTION_STAGE_SELECTED\": \"Bühne ausgewählt: keine Bewegungsblöcke\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"Zufallszahl von %1 bis %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 und %2\",\n \"OPERATORS_OR\": \"%1 oder %2\",\n \"OPERATORS_NOT\": \"nicht %1\",\n \"OPERATORS_JOIN\": \"verbinde %1 und %2\",\n \"OPERATORS_JOIN_APPLE\": \"Apfel\",\n \"OPERATORS_JOIN_BANANA\": \"Banane\",\n \"OPERATORS_LETTEROF\": \"Zeichen %1 von %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"Länge von %1\",\n \"OPERATORS_CONTAINS\": \"%1 enthält %2?\",\n \"OPERATORS_MOD\": \"%1 mod %2\",\n \"OPERATORS_ROUND\": \"%1 gerundet\",\n \"OPERATORS_MATHOP\": \"%1 von %2\",\n \"OPERATORS_MATHOP_ABS\": \"Betrag\",\n \"OPERATORS_MATHOP_FLOOR\": \"abrunden\",\n \"OPERATORS_MATHOP_CEILING\": \"aufrunden\",\n \"OPERATORS_MATHOP_SQRT\": \"Wurzel\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e^\",\n \"OPERATORS_MATHOP_10EXP\": \"10^\",\n \"PROCEDURES_DEFINITION\": \"Definiere %1\",\n \"SENSING_TOUCHINGOBJECT\": \"wird %1 berührt?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"Mauszeiger\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"Rand\",\n \"SENSING_TOUCHINGCOLOR\": \"wird Farbe %1 berührt?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"Farbe %1 berührt %2?\",\n \"SENSING_DISTANCETO\": \"Entfernung von %1\",\n \"SENSING_DISTANCETO_POINTER\": \"Mauszeiger\",\n \"SENSING_ASKANDWAIT\": \"frage %1 und warte\",\n \"SENSING_ASK_TEXT\": \"Wie heißt du?\",\n \"SENSING_ANSWER\": \"Antwort\",\n \"SENSING_KEYPRESSED\": \"Taste %1 gedrückt?\",\n \"SENSING_MOUSEDOWN\": \"Maustaste gedrückt?\",\n \"SENSING_MOUSEX\": \"Maus x-Position\",\n \"SENSING_MOUSEY\": \"Maus y-Position\",\n \"SENSING_SETDRAGMODE\": \"setze Ziehbarkeit auf %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"ziehbar\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"nicht ziehbar\",\n \"SENSING_LOUDNESS\": \"Lautstärke\",\n \"SENSING_LOUD\": \"laut?\",\n \"SENSING_TIMER\": \"Stoppuhr\",\n \"SENSING_RESETTIMER\": \"setze Stoppuhr zurück\",\n \"SENSING_OF\": \"%1 von %2\",\n \"SENSING_OF_XPOSITION\": \"x-Position\",\n \"SENSING_OF_YPOSITION\": \"y-Position\",\n \"SENSING_OF_DIRECTION\": \"Richtung\",\n \"SENSING_OF_COSTUMENUMBER\": \"Kostümnummer\",\n \"SENSING_OF_COSTUMENAME\": \"Kostümname\",\n \"SENSING_OF_SIZE\": \"Größe\",\n \"SENSING_OF_VOLUME\": \"Lautstärke\",\n \"SENSING_OF_BACKDROPNUMBER\": \"Bühnenbildnummer\",\n \"SENSING_OF_BACKDROPNAME\": \"Bühnenbildname\",\n \"SENSING_OF_STAGE\": \"Bühne\",\n \"SENSING_CURRENT\": \"%1 im Moment\",\n \"SENSING_CURRENT_YEAR\": \"Jahr\",\n \"SENSING_CURRENT_MONTH\": \"Monat\",\n \"SENSING_CURRENT_DATE\": \"Datum\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"Wochentag\",\n \"SENSING_CURRENT_HOUR\": \"Stunde\",\n \"SENSING_CURRENT_MINUTE\": \"Minute\",\n \"SENSING_CURRENT_SECOND\": \"Sekunde\",\n \"SENSING_DAYSSINCE2000\": \"Tage seit 2000\",\n \"SENSING_USERNAME\": \"Benutzername\",\n \"SENSING_USERID\": \"Benutzer-ID\",\n \"SOUND_PLAY\": \"spiele Klang %1\",\n \"SOUND_PLAYUNTILDONE\": \"spiele Klang %1 ganz\",\n \"SOUND_STOPALLSOUNDS\": \"stoppe alle Klänge\",\n \"SOUND_SETEFFECTO\": \"setze Effekt %1 auf %2\",\n \"SOUND_CHANGEEFFECTBY\": \"ändere Effekt %1 um %2\",\n \"SOUND_CLEAREFFECTS\": \"schalte Klangeffekte aus\",\n \"SOUND_EFFECTS_PITCH\": \"Höhe\",\n \"SOUND_EFFECTS_PAN\": \"Aussteuern links/rechts\",\n \"SOUND_CHANGEVOLUMEBY\": \"ändere Lautstärke um %1\",\n \"SOUND_SETVOLUMETO\": \"setze Lautstärke auf %1%\",\n \"SOUND_VOLUME\": \"Lautstärke\",\n \"SOUND_RECORD\": \"zeichne auf...\",\n \"CATEGORY_MOTION\": \"Bewegung\",\n \"CATEGORY_LOOKS\": \"Aussehen\",\n \"CATEGORY_SOUND\": \"Klang\",\n \"CATEGORY_EVENTS\": \"Ereignisse\",\n \"CATEGORY_CONTROL\": \"Steuerung\",\n \"CATEGORY_SENSING\": \"Fühlen\",\n \"CATEGORY_OPERATORS\": \"Operatoren\",\n \"CATEGORY_VARIABLES\": \"Variablen\",\n \"CATEGORY_MYBLOCKS\": \"Meine Blöcke\",\n \"DUPLICATE\": \"Duplizieren\",\n \"DELETE\": \"Löschen\",\n \"ADD_COMMENT\": \"Kommentar hinzufügen\",\n \"REMOVE_COMMENT\": \"Kommentar entfernen\",\n \"DELETE_BLOCK\": \"Lösche Block\",\n \"DELETE_X_BLOCKS\": \"Lösche %1 Blöcke\",\n \"DELETE_ALL_BLOCKS\": \"Alle %1 Blöcke löschen?\",\n \"CLEAN_UP\": \"Blöcke aufräumen\",\n \"HELP\": \"Hilfe\",\n \"UNDO\": \"Rückgängig\",\n \"REDO\": \"Wiederherstellen\",\n \"EDIT_PROCEDURE\": \"Bearbeiten\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Gehe zur Definition\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Sag etwas...\",\n \"COLOUR_HUE_LABEL\": \"Farbe\",\n \"COLOUR_SATURATION_LABEL\": \"Sättigung\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Helligkeit\",\n \"CHANGE_VALUE_TITLE\": \"Ändere Wert\",\n \"RENAME_VARIABLE\": \"Benenne die Variable um\",\n \"RENAME_VARIABLE_TITLE\": \"Benenne alle Variablen mit Namen \\\"%1\\\" um in:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Variable umbenennen\",\n \"NEW_VARIABLE\": \"Neue Variable\",\n \"NEW_VARIABLE_TITLE\": \"Neue Variable Name:\",\n \"VARIABLE_MODAL_TITLE\": \"Neue Variable\",\n \"VARIABLE_ALREADY_EXISTS\": \"Eine Variable \\\"%1\\\" existiert bereits.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Eine Variable mit dem Namen \\\"%1\\\" existiert bereits als Variable des Typs \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Entferne alle %1 Nutzungen der Variable \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Die Variable \\\"%1\\\" kann nicht gelöscht werden, weil sie Teil der Definition der Funktion \\\"%2\\\" ist.\",\n \"DELETE_VARIABLE\": \"Lösche die Variable \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Neuer Block\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Eine Prozedur mit dem Namen \\\"%1\\\" existiert bereits.\",\n \"PROCEDURE_DEFAULT_NAME\": \"Blockname\",\n \"NEW_LIST\": \"Neue Liste\",\n \"NEW_LIST_TITLE\": \"Neuer Listen Name:\",\n \"LIST_MODAL_TITLE\": \"Neue Liste\",\n \"LIST_ALREADY_EXISTS\": \"Eine Liste mit dem Namen \\\"%1\\\" existiert bereits\",\n \"RENAME_LIST_TITLE\": \"Benenne alle Listen mit Namen \\\"%1\\\" um in:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Liste umbenennen\",\n \"DEFAULT_LIST_ITEM\": \"Ding\",\n \"DELETE_LIST\": \"Lösche die Liste \\\"%1\\\"\",\n \"RENAME_LIST\": \"Benenne die Liste um\",\n \"NEW_BROADCAST_MESSAGE\": \"Neue Nachricht\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Neue Nachricht name:\",\n \"BROADCAST_MODAL_TITLE\": \"Neue Nachricht\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"Nachricht1\"\n};\n\nBlockly.ScratchMsgs.locales[\"et\"] =\n{\n \"CONTROL_FOREVER\": \"korda lõputult\",\n \"CONTROL_REPEAT\": \"korda %1 korda\",\n \"CONTROL_IF\": \"kui %1 siis\",\n \"CONTROL_ELSE\": \"muidu\",\n \"CONTROL_STOP\": \"stopp\",\n \"CONTROL_STOP_ALL\": \"kõik\",\n \"CONTROL_STOP_THIS\": \"see skript\",\n \"CONTROL_STOP_OTHER\": \"teised spraidi skriptid\",\n \"CONTROL_WAIT\": \"oota %1 sek\",\n \"CONTROL_WAITUNTIL\": \"oota kuni %1\",\n \"CONTROL_REPEATUNTIL\": \"korda kuni %1\",\n \"CONTROL_WHILE\": \"kui %1\",\n \"CONTROL_FOREACH\": \"iga %1 jaoks %2-s\",\n \"CONTROL_STARTASCLONE\": \"kui alustan kloonina\",\n \"CONTROL_CREATECLONEOF\": \"klooni %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"ennast\",\n \"CONTROL_DELETETHISCLONE\": \"eemalda see kloon\",\n \"CONTROL_COUNTER\": \"loendur\",\n \"CONTROL_INCRCOUNTER\": \"suurenda loendurit\",\n \"CONTROL_CLEARCOUNTER\": \"nulli loendur\",\n \"CONTROL_ALLATONCE\": \"kõik korraga\",\n \"DATA_SETVARIABLETO\": \"võta %1 = %2\",\n \"DATA_CHANGEVARIABLEBY\": \"muuda %1 %2 võrra\",\n \"DATA_SHOWVARIABLE\": \"näita muutujat %1\",\n \"DATA_HIDEVARIABLE\": \"peida muutuja %1\",\n \"DATA_ADDTOLIST\": \"lisa %1 loendisse %2\",\n \"DATA_DELETEOFLIST\": \"eemalda %1 loendist %2\",\n \"DATA_DELETEALLOFLIST\": \"eemalda kõik loendist %1\",\n \"DATA_INSERTATLIST\": \"sisesta %1 kohale %2 loendis %3\",\n \"DATA_REPLACEITEMOFLIST\": \"asenda väärtus %1 loendis %2 %3 -ga\",\n \"DATA_ITEMOFLIST\": \"%1 loendis %2\",\n \"DATA_ITEMNUMOFLIST\": \"%1 jrk nr loendis %2\",\n \"DATA_LENGTHOFLIST\": \"%1 pikkus\",\n \"DATA_LISTCONTAINSITEM\": \"%1 sisaldab %2?\",\n \"DATA_SHOWLIST\": \"näita loendit %1\",\n \"DATA_HIDELIST\": \"peida loend %1\",\n \"DATA_INDEX_ALL\": \"kõik\",\n \"DATA_INDEX_LAST\": \"viimane\",\n \"DATA_INDEX_RANDOM\": \"juhuslik\",\n \"EVENT_WHENFLAGCLICKED\": \"kui klõpsata %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"kui spraiti klõpsata\",\n \"EVENT_WHENSTAGECLICKED\": \"kui lava klõpsata\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"kui sprait puudutab %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"kui saan teate %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"kui taustaks saab %1\",\n \"EVENT_WHENGREATERTHAN\": \"kui %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"taimer\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"valjus\",\n \"EVENT_BROADCAST\": \"teata %1\",\n \"EVENT_BROADCASTANDWAIT\": \"teata %1 ja oota\",\n \"EVENT_WHENKEYPRESSED\": \"kui klõpsata klahvi %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"tühik\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"nool vasakule\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"nool paremale\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"nool alla\",\n \"EVENT_WHENKEYPRESSED_UP\": \"nool üles\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"mõni\",\n \"LOOKS_SAYFORSECS\": \"ütle %1 %2 sek\",\n \"LOOKS_SAY\": \"ütle %1\",\n \"LOOKS_HELLO\": \"Tere!\",\n \"LOOKS_THINKFORSECS\": \"mõtle %1 %2 sek\",\n \"LOOKS_THINK\": \"mõtle %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"näita\",\n \"LOOKS_HIDE\": \"peida\",\n \"LOOKS_HIDEALLSPRITES\": \"peida kõik spraidid\",\n \"LOOKS_EFFECT_COLOR\": \"värv\",\n \"LOOKS_EFFECT_FISHEYE\": \"kalasilm\",\n \"LOOKS_EFFECT_WHIRL\": \"pööris\",\n \"LOOKS_EFFECT_PIXELATE\": \"pikseldus\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaiik\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"heledus\",\n \"LOOKS_EFFECT_GHOST\": \"kummitus\",\n \"LOOKS_CHANGEEFFECTBY\": \"muuda efekti %1 %2 võrra\",\n \"LOOKS_SETEFFECTTO\": \"pane %1 efekt %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"tühista graafikaefektid\",\n \"LOOKS_CHANGESIZEBY\": \"muuda suurust %1 võrra\",\n \"LOOKS_SETSIZETO\": \"võta suuruseks %1 %\",\n \"LOOKS_SIZE\": \"suurus\",\n \"LOOKS_CHANGESTRETCHBY\": \"muuda ulatust %1 võrra\",\n \"LOOKS_SETSTRETCHTO\": \"võta ulatuseks %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"võta kostüüm %1\",\n \"LOOKS_NEXTCOSTUME\": \"järgmine kostüüm\",\n \"LOOKS_SWITCHBACKDROPTO\": \"võta taust %1\",\n \"LOOKS_GOTOFRONTBACK\": \"mine kihile %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"esiplaan\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"tagaplaan\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"mine %1 %2 kihti\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"ettepoole\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"tahapoole\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"tausta %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"kostüümi %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"number\",\n \"LOOKS_NUMBERNAME_NAME\": \"nimi\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"võta taust %1 ja oota\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"järgmine taust\",\n \"LOOKS_NEXTBACKDROP\": \"järgmine taust\",\n \"LOOKS_PREVIOUSBACKDROP\": \"eelmine taust\",\n \"LOOKS_RANDOMBACKDROP\": \"juhuslik taust\",\n \"MOTION_MOVESTEPS\": \"liigu %1 punkti\",\n \"MOTION_TURNLEFT\": \"pööra %1 %2 kraadi\",\n \"MOTION_TURNRIGHT\": \"pööra %1 %2 kraadi\",\n \"MOTION_POINTINDIRECTION\": \"osuta suunas %1\",\n \"MOTION_POINTTOWARDS\": \"osuta %1-le\",\n \"MOTION_POINTTOWARDS_POINTER\": \"hiirekursor\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"juhusuund\",\n \"MOTION_GOTO\": \"mine %1\",\n \"MOTION_GOTO_POINTER\": \"hiirekursor\",\n \"MOTION_GOTO_RANDOM\": \"juhuslik asukoht\",\n \"MOTION_GOTOXY\": \"mine x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"liugle %1 sekundiga x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"liugle %1 sekundiga %2\",\n \"MOTION_GLIDETO_POINTER\": \"hiirekursor\",\n \"MOTION_GLIDETO_RANDOM\": \"juhuslik asukoht\",\n \"MOTION_CHANGEXBY\": \"muuda x %1 võrra\",\n \"MOTION_SETX\": \"võta x %1\",\n \"MOTION_CHANGEYBY\": \"muuda y %1 võrra\",\n \"MOTION_SETY\": \"võta y %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"kui äärel, põrka\",\n \"MOTION_SETROTATIONSTYLE\": \"määra pööramisstiil %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"vasak-parem\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"ei pöördu\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"suvaline\",\n \"MOTION_XPOSITION\": \"x\",\n \"MOTION_YPOSITION\": \"y\",\n \"MOTION_DIRECTION\": \"suund\",\n \"MOTION_SCROLLRIGHT\": \"keri paremale %1\",\n \"MOTION_SCROLLUP\": \"keri üles %1\",\n \"MOTION_ALIGNSCENE\": \"joonda stseen %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"alla vasakule\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"alla paremale\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"keskele\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"üles vasakule\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"üles paremale\",\n \"MOTION_XSCROLL\": \"x kerimine\",\n \"MOTION_YSCROLL\": \"y kerimine\",\n \"MOTION_STAGE_SELECTED\": \"Valitud on Lava: liikumiskäsud puuduvad\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"juhuarv %1 kuni %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 ja %2\",\n \"OPERATORS_OR\": \"%1 või %2\",\n \"OPERATORS_NOT\": \"mitte %1\",\n \"OPERATORS_JOIN\": \"%1 & %2\",\n \"OPERATORS_JOIN_APPLE\": \"õun\",\n \"OPERATORS_JOIN_BANANA\": \"banaan\",\n \"OPERATORS_LETTEROF\": \"märk %1 sõnas %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"õ\",\n \"OPERATORS_LENGTH\": \"%1 pikkus\",\n \"OPERATORS_CONTAINS\": \"%1 sisaldab %2?\",\n \"OPERATORS_MOD\": \"%1 mod %2\",\n \"OPERATORS_ROUND\": \"ümarda %1\",\n \"OPERATORS_MATHOP\": \"%2 %1\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"floor\",\n \"OPERATORS_MATHOP_CEILING\": \"ceiling\",\n \"OPERATORS_MATHOP_SQRT\": \"sqrt\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"defineeri %1\",\n \"SENSING_TOUCHINGOBJECT\": \"puudutab %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"hiirekursor\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"serv\",\n \"SENSING_TOUCHINGCOLOR\": \"puudutab värvi %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"värv %1 puudutab värvi %2?\",\n \"SENSING_DISTANCETO\": \"kaugus %1-st\",\n \"SENSING_DISTANCETO_POINTER\": \"hiirekursor\",\n \"SENSING_ASKANDWAIT\": \"küsi %1 ja oota\",\n \"SENSING_ASK_TEXT\": \"Mis Su nimi on?\",\n \"SENSING_ANSWER\": \"vastus\",\n \"SENSING_KEYPRESSED\": \"klahv %1 all?\",\n \"SENSING_MOUSEDOWN\": \"hiir all?\",\n \"SENSING_MOUSEX\": \"hiire x\",\n \"SENSING_MOUSEY\": \"hiire y\",\n \"SENSING_SETDRAGMODE\": \"võta lohistatavus = %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"lohistatav\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"pole lohistatav\",\n \"SENSING_LOUDNESS\": \"valjus\",\n \"SENSING_LOUD\": \"väga vali?\",\n \"SENSING_TIMER\": \"taimer\",\n \"SENSING_RESETTIMER\": \"nulli taimer\",\n \"SENSING_OF\": \"%2 %1\",\n \"SENSING_OF_XPOSITION\": \"x\",\n \"SENSING_OF_YPOSITION\": \"y\",\n \"SENSING_OF_DIRECTION\": \"suund\",\n \"SENSING_OF_COSTUMENUMBER\": \"kostüümi nr\",\n \"SENSING_OF_COSTUMENAME\": \"kostüümi nimi\",\n \"SENSING_OF_SIZE\": \"suurus\",\n \"SENSING_OF_VOLUME\": \"helitugevus\",\n \"SENSING_OF_BACKDROPNUMBER\": \"tausta nr\",\n \"SENSING_OF_BACKDROPNAME\": \"tausta nimi\",\n \"SENSING_OF_STAGE\": \"Lava\",\n \"SENSING_CURRENT\": \"hetke %1\",\n \"SENSING_CURRENT_YEAR\": \"aasta\",\n \"SENSING_CURRENT_MONTH\": \"kuu\",\n \"SENSING_CURRENT_DATE\": \"kuupäev\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"nädalapäev\",\n \"SENSING_CURRENT_HOUR\": \"tunnid\",\n \"SENSING_CURRENT_MINUTE\": \"minutid\",\n \"SENSING_CURRENT_SECOND\": \"sekundid\",\n \"SENSING_DAYSSINCE2000\": \"päevi alates 2000\",\n \"SENSING_USERNAME\": \"kasutajanimi\",\n \"SENSING_USERID\": \"kasutaja ID\",\n \"SOUND_PLAY\": \"alusta heli %1\",\n \"SOUND_PLAYUNTILDONE\": \"mängi heli %1 kuni lõpuni\",\n \"SOUND_STOPALLSOUNDS\": \"peata kõik helid\",\n \"SOUND_SETEFFECTO\": \"pane %1 efekt %2\",\n \"SOUND_CHANGEEFFECTBY\": \"muuda efekti %1 %2 võrra\",\n \"SOUND_CLEAREFFECTS\": \"vaigista heliefektid\",\n \"SOUND_EFFECTS_PITCH\": \"helikõrgus\",\n \"SOUND_EFFECTS_PAN\": \"heli vasakul/paremal\",\n \"SOUND_CHANGEVOLUMEBY\": \"muuda helitugevust %1 võrra\",\n \"SOUND_SETVOLUMETO\": \"võta helitugevuseks %1%\",\n \"SOUND_VOLUME\": \"helitugevus\",\n \"SOUND_RECORD\": \"salvesta...\",\n \"CATEGORY_MOTION\": \"Liikumine\",\n \"CATEGORY_LOOKS\": \"Välimus\",\n \"CATEGORY_SOUND\": \"Helid\",\n \"CATEGORY_EVENTS\": \"Sündmused\",\n \"CATEGORY_CONTROL\": \"Juhtimine\",\n \"CATEGORY_SENSING\": \"Andurid\",\n \"CATEGORY_OPERATORS\": \"Tehted\",\n \"CATEGORY_VARIABLES\": \"Muutujad\",\n \"CATEGORY_MYBLOCKS\": \"Minu Plokid\",\n \"DUPLICATE\": \"Paljunda\",\n \"DELETE\": \"Kustuta\",\n \"ADD_COMMENT\": \"Lisa kommentaar\",\n \"REMOVE_COMMENT\": \"Eemalda kommentaar\",\n \"DELETE_BLOCK\": \"Eemalda plokk\",\n \"DELETE_X_BLOCKS\": \"Eemalda %1 plokki\",\n \"DELETE_ALL_BLOCKS\": \"Eemalda kõik %1 plokki?\",\n \"CLEAN_UP\": \"Korrasta plokid\",\n \"HELP\": \"Abi\",\n \"UNDO\": \"Võta tagasi\",\n \"REDO\": \"Tee uuesti\",\n \"EDIT_PROCEDURE\": \"Redigeeri\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Mine definitsiooni juurde\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Ütle midagi\",\n \"COLOUR_HUE_LABEL\": \"Värv\",\n \"COLOUR_SATURATION_LABEL\": \"Küllastus\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Heledus\",\n \"CHANGE_VALUE_TITLE\": \"Muuda väärtust:\",\n \"RENAME_VARIABLE\": \"Muuda muutuja nime\",\n \"RENAME_VARIABLE_TITLE\": \"Nimeta kõik \\\"%1\\\" muutujad nimega:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Muuda muutuja nime\",\n \"NEW_VARIABLE\": \"Loo muutuja\",\n \"NEW_VARIABLE_TITLE\": \"Uue muutuja nimi:\",\n \"VARIABLE_MODAL_TITLE\": \"Uus muutuja\",\n \"VARIABLE_ALREADY_EXISTS\": \"Muutuja nimega \\\"%1\\\" on juba olemas.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Muutuja nimi \\\"%1\\\" on juba kasutusel \\\"%2\\\" tüüpi muutujal.\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Eemaldada %1 muutuja \\\"%2\\\" kasutamist?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Muutujat \\\"%1\\\" ei saa eemaldada, sest see on osa funktsiooni \\\"%2\\\" definitsioonist.\",\n \"DELETE_VARIABLE\": \"Eemalda muutuja \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Loo Plokk\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Protseduur nimega \\\"%1\\\" on juba olemas.\",\n \"PROCEDURE_DEFAULT_NAME\": \"ploki nimi\",\n \"NEW_LIST\": \"Loo Loend\",\n \"NEW_LIST_TITLE\": \"Uue loendi nimi:\",\n \"LIST_MODAL_TITLE\": \"Uus loend\",\n \"LIST_ALREADY_EXISTS\": \"Loend nimega \\\"%1\\\" on juba olemas.\",\n \"RENAME_LIST_TITLE\": \"Nimeta kõik \\\"%1\\\" loendid nimega:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Muuda loendi nime\",\n \"DEFAULT_LIST_ITEM\": \"asi\",\n \"DELETE_LIST\": \"Eemalda loend \\\"%1\\\"\",\n \"RENAME_LIST\": \"Muuda loendi nime\",\n \"NEW_BROADCAST_MESSAGE\": \"Uus teade\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Uue teate nimi:\",\n \"BROADCAST_MODAL_TITLE\": \"Uus teade\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"teade1\"\n};\n\nBlockly.ScratchMsgs.locales[\"el\"] =\n{\n \"CONTROL_FOREVER\": \"για πάντα\",\n \"CONTROL_REPEAT\": \"επανάλαβε %1\",\n \"CONTROL_IF\": \"εάν %1 τότε\",\n \"CONTROL_ELSE\": \"αλλιώς\",\n \"CONTROL_STOP\": \"σταμάτησε\",\n \"CONTROL_STOP_ALL\": \"όλα\",\n \"CONTROL_STOP_THIS\": \"αυτό το σενάριο\",\n \"CONTROL_STOP_OTHER\": \"άλλα σενάρια σε αυτό το αντικείμενο\",\n \"CONTROL_WAIT\": \"περίμενε %1 δευτερόλεπτα\",\n \"CONTROL_WAITUNTIL\": \"περίμενε ώσπου %1\",\n \"CONTROL_REPEATUNTIL\": \"επανάλαβε ώσπου %1\",\n \"CONTROL_WHILE\": \"όσο %1\",\n \"CONTROL_FOREACH\": \"για κάθε %1 στο %2\",\n \"CONTROL_STARTASCLONE\": \"όταν ξεκινήσω ως κλώνος\",\n \"CONTROL_CREATECLONEOF\": \"δημιούργησε κλώνο του %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"εαυτού μου\",\n \"CONTROL_DELETETHISCLONE\": \"διάγραψε αυτόν τον κλώνο\",\n \"CONTROL_COUNTER\": \"μετρητής\",\n \"CONTROL_INCRCOUNTER\": \"αύξηση μετρητή\",\n \"CONTROL_CLEARCOUNTER\": \"καθαρισμός μετρητή\",\n \"CONTROL_ALLATONCE\": \"μονομιάς\",\n \"DATA_SETVARIABLETO\": \"όρισε %1 σε %2\",\n \"DATA_CHANGEVARIABLEBY\": \"άλλαξε %1 κατά %2\",\n \"DATA_SHOWVARIABLE\": \"εμφάνισε μεταβλητή %1\",\n \"DATA_HIDEVARIABLE\": \"απόκρυψε μεταβλητή %1\",\n \"DATA_ADDTOLIST\": \"πρόσθεσε %1 στη λίστα %2\",\n \"DATA_DELETEOFLIST\": \"διάγραψε %1 από λίστα %2\",\n \"DATA_DELETEALLOFLIST\": \"διαγραφή όλων από λίστα %1\",\n \"DATA_INSERTATLIST\": \"βάλε %1 στη θέση %2 λίστας %3\",\n \"DATA_REPLACEITEMOFLIST\": \"αντικατάστησε στοιχείο %1 λίστας %2 με %3\",\n \"DATA_ITEMOFLIST\": \"στοιχείο %1 λίστας %2\",\n \"DATA_ITEMNUMOFLIST\": \"# στοιχείου %1 σε %2\",\n \"DATA_LENGTHOFLIST\": \"μήκος λίστας %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 περιέχει %2;\",\n \"DATA_SHOWLIST\": \"εμφάνισε λίστα %1\",\n \"DATA_HIDELIST\": \"απόκρυψε λίστα %1\",\n \"DATA_INDEX_ALL\": \"όλα\",\n \"DATA_INDEX_LAST\": \"τελευταίο\",\n \"DATA_INDEX_RANDOM\": \"τυχαίο\",\n \"EVENT_WHENFLAGCLICKED\": \"όταν γίνει κλικ σε %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"όταν γίνει κλικ σε αυτό το αντικείμενο\",\n \"EVENT_WHENSTAGECLICKED\": \"όταν γίνει κλικ στη σκηνή\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"όταν αυτό το αντικείμενο αγγίξει το %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"όταν λάβω %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"όταν το υπόβαθρο αλλάξει σε %1\",\n \"EVENT_WHENGREATERTHAN\": \"όταν %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"χρονομέτρο\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"ένταση\",\n \"EVENT_BROADCAST\": \"μετάδωσε %1\",\n \"EVENT_BROADCASTANDWAIT\": \"μετάδωσε %1 και περίμενε\",\n \"EVENT_WHENKEYPRESSED\": \"όταν πατηθεί πλήκτρο %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"διάστημα\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"αριστερό βέλος\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"δεξί βέλος\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"κάτω βέλος\",\n \"EVENT_WHENKEYPRESSED_UP\": \"πάνω βέλος\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"οποιοδήποτε\",\n \"LOOKS_SAYFORSECS\": \"πες %1 για %2 δευτερόλεπτα\",\n \"LOOKS_SAY\": \"πες %1\",\n \"LOOKS_HELLO\": \"Γεια!\",\n \"LOOKS_THINKFORSECS\": \"σκέψου %1 για %2 δευτερόλεπτα\",\n \"LOOKS_THINK\": \"σκέψου %1\",\n \"LOOKS_HMM\": \"Χμμ...\",\n \"LOOKS_SHOW\": \"εμφανίσου\",\n \"LOOKS_HIDE\": \"εξαφανίσου\",\n \"LOOKS_HIDEALLSPRITES\": \"απόκρυψη όλων των αντικειμένων\",\n \"LOOKS_EFFECT_COLOR\": \"χρώματος\",\n \"LOOKS_EFFECT_FISHEYE\": \"κυρτότητας\",\n \"LOOKS_EFFECT_WHIRL\": \"δίνης\",\n \"LOOKS_EFFECT_PIXELATE\": \"εικονοστοιχειοποίησης\",\n \"LOOKS_EFFECT_MOSAIC\": \"ψηφιδωτού\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"φωτεινότητας\",\n \"LOOKS_EFFECT_GHOST\": \"φαντάσματος\",\n \"LOOKS_CHANGEEFFECTBY\": \"άλλαξε εφέ %1 κατά %2\",\n \"LOOKS_SETEFFECTTO\": \"όρισε εφέ %1 σε %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"επανάφερε εφέ γραφικών\",\n \"LOOKS_CHANGESIZEBY\": \"άλλαξε μέγεθος κατά %1\",\n \"LOOKS_SETSIZETO\": \"όρισε μέγεθος σε %1 %\",\n \"LOOKS_SIZE\": \"μέγεθος\",\n \"LOOKS_CHANGESTRETCHBY\": \"άλλαξε τέντωμα κατά %1\",\n \"LOOKS_SETSTRETCHTO\": \"όρισε τέντωμα σε %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"άλλαξε ενδυμασία σε %1\",\n \"LOOKS_NEXTCOSTUME\": \"επόμενη ενδυμασία\",\n \"LOOKS_SWITCHBACKDROPTO\": \"άλλαξε υπόβαθρο σε %1\",\n \"LOOKS_GOTOFRONTBACK\": \"πήγαινε σε επίπεδο %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"προσκήνιο\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"υπόβαθρο\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"πήγαινε %1 %2 επίπεδα\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"μπροστά\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"πίσω\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"υπόβαθρο %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"ενδυμασία %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"νούμερο\",\n \"LOOKS_NUMBERNAME_NAME\": \"όνομα\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"άλλαξε υπόβαθρο σε %1 και περίμενε\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"επόμενο υπόβαθρο\",\n \"LOOKS_NEXTBACKDROP\": \"επόμενο υπόβαθρο\",\n \"LOOKS_PREVIOUSBACKDROP\": \"προηγούμενο υπόβαθρο\",\n \"LOOKS_RANDOMBACKDROP\": \"τυχαίο υπόβαθρο\",\n \"MOTION_MOVESTEPS\": \"κινήσου %1 βήματα\",\n \"MOTION_TURNLEFT\": \"στρίψε %1 %2 μοίρες\",\n \"MOTION_TURNRIGHT\": \"στρίψε %1 %2 μοίρες\",\n \"MOTION_POINTINDIRECTION\": \"δείξε προς κατεύθυνση %1\",\n \"MOTION_POINTTOWARDS\": \"δείξε προς %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"δείκτη ποντικιού\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"τυχαία κατεύθυνση\",\n \"MOTION_GOTO\": \"πήγαινε σε %1\",\n \"MOTION_GOTO_POINTER\": \"δείκτη ποντικιού\",\n \"MOTION_GOTO_RANDOM\": \"τυχαία θέση\",\n \"MOTION_GOTOXY\": \"πήγαινε σε θέση x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"ολίσθησε για %1 δευτ. στη θέση x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"ολίσθησε για %1 δευτ. στη θέση %2\",\n \"MOTION_GLIDETO_POINTER\": \"δείκτη ποντικιού\",\n \"MOTION_GLIDETO_RANDOM\": \"τυχαία θέση\",\n \"MOTION_CHANGEXBY\": \"άλλαξε x κατά %1\",\n \"MOTION_SETX\": \"όρισε x σε %1\",\n \"MOTION_CHANGEYBY\": \"άλλαξε y κατά %1\",\n \"MOTION_SETY\": \"όρισε y σε %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"εάν σε όριο, αναπήδησε\",\n \"MOTION_SETROTATIONSTYLE\": \"όρισε τρόπο περιστροφής %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"αριστερά-δεξιά\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"μην περιστρέψεις\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"τριγύρω\",\n \"MOTION_XPOSITION\": \"θέση x\",\n \"MOTION_YPOSITION\": \"θέση y\",\n \"MOTION_DIRECTION\": \"κατεύθυνση\",\n \"MOTION_SCROLLRIGHT\": \"κύλιση δεξιά %1\",\n \"MOTION_SCROLLUP\": \"κύλιση πάνω %1\",\n \"MOTION_ALIGNSCENE\": \"ευθυγράμμιση σκηνής %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"κάτω-αριστερά\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"κάτω-δεξιά\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"μέση\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"πάνω-αριστερά\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"πάνω-δεξιά\",\n \"MOTION_XSCROLL\": \"κύλιση x\",\n \"MOTION_YSCROLL\": \"κύλιση y\",\n \"MOTION_STAGE_SELECTED\": \"Σκηνή επιλεγμένη: χωρίς εντολές κίνησης\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"επίλεξε τυχαίο %1 εώς %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 και %2\",\n \"OPERATORS_OR\": \"%1 ή %2\",\n \"OPERATORS_NOT\": \"όχι %1\",\n \"OPERATORS_JOIN\": \"ένωσε %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"μήλο\",\n \"OPERATORS_JOIN_BANANA\": \"μπανάνα\",\n \"OPERATORS_LETTEROF\": \"γράμμα %1 του %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"ο\",\n \"OPERATORS_LENGTH\": \"μήκος του %1\",\n \"OPERATORS_CONTAINS\": \"%1 περιλαμβάνει %2;\",\n \"OPERATORS_MOD\": \"ακέρ. υπόλ. %1 δια %2\",\n \"OPERATORS_ROUND\": \"στρογγυλ. %1\",\n \"OPERATORS_MATHOP\": \"%1 %2\",\n \"OPERATORS_MATHOP_ABS\": \"απόλυτο\",\n \"OPERATORS_MATHOP_FLOOR\": \"στρογγυλ. κάτω\",\n \"OPERATORS_MATHOP_CEILING\": \"στρογγυλ. άνω\",\n \"OPERATORS_MATHOP_SQRT\": \"τετρ. ρίζα\",\n \"OPERATORS_MATHOP_SIN\": \"ημ\",\n \"OPERATORS_MATHOP_COS\": \"συν\",\n \"OPERATORS_MATHOP_TAN\": \"εφ\",\n \"OPERATORS_MATHOP_ASIN\": \"τοξημ\",\n \"OPERATORS_MATHOP_ACOS\": \"τοξσυν\",\n \"OPERATORS_MATHOP_ATAN\": \"τοξεφ\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"ορισμός %1\",\n \"SENSING_TOUCHINGOBJECT\": \"αγγίζει %1;\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"δείκτη ποντικιού\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"όριο\",\n \"SENSING_TOUCHINGCOLOR\": \"αγγίζει χρώμα %1;\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"χρώμα %1 αγγίζει χρώμα %2;\",\n \"SENSING_DISTANCETO\": \"απόσταση έως %1\",\n \"SENSING_DISTANCETO_POINTER\": \"δείκτη ποντικιού\",\n \"SENSING_ASKANDWAIT\": \"ρώτησε %1 και περίμενε\",\n \"SENSING_ASK_TEXT\": \"Πώς σε λένε;\",\n \"SENSING_ANSWER\": \"απάντηση\",\n \"SENSING_KEYPRESSED\": \"πατήθηκε πλήκτρο %1;\",\n \"SENSING_MOUSEDOWN\": \"πατήθηκε πλήκτρο ποντικιού;\",\n \"SENSING_MOUSEX\": \"x ποντικιού\",\n \"SENSING_MOUSEY\": \"y ποντικιού\",\n \"SENSING_SETDRAGMODE\": \"όρισε τρόπο συρσίματος %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"συρόμενο\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"μη συρόμενο\",\n \"SENSING_LOUDNESS\": \"ένταση\",\n \"SENSING_LOUD\": \"δυνατά;\",\n \"SENSING_TIMER\": \"χρονόμετρο\",\n \"SENSING_RESETTIMER\": \"μηδένισε χρονόμετρο\",\n \"SENSING_OF\": \"%1 από %2\",\n \"SENSING_OF_XPOSITION\": \"θέση x\",\n \"SENSING_OF_YPOSITION\": \"θέση y\",\n \"SENSING_OF_DIRECTION\": \"κατεύθυνση\",\n \"SENSING_OF_COSTUMENUMBER\": \"# ενδυμασίας\",\n \"SENSING_OF_COSTUMENAME\": \"όνομα ενδυμασίας\",\n \"SENSING_OF_SIZE\": \"μέγεθος\",\n \"SENSING_OF_VOLUME\": \"ένταση\",\n \"SENSING_OF_BACKDROPNUMBER\": \"# υποβάθρου\",\n \"SENSING_OF_BACKDROPNAME\": \"όνομα υποβάθρου\",\n \"SENSING_OF_STAGE\": \"Σκηνή\",\n \"SENSING_CURRENT\": \"τρέχων %1\",\n \"SENSING_CURRENT_YEAR\": \"έτος\",\n \"SENSING_CURRENT_MONTH\": \"μήνας\",\n \"SENSING_CURRENT_DATE\": \"ημερομηνία\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"μέρα της εβδομάδας\",\n \"SENSING_CURRENT_HOUR\": \"ώρα\",\n \"SENSING_CURRENT_MINUTE\": \"λεπτό\",\n \"SENSING_CURRENT_SECOND\": \"δευτερόλεπτο\",\n \"SENSING_DAYSSINCE2000\": \"ημέρες από το 2000\",\n \"SENSING_USERNAME\": \"όνομα χρήστη\",\n \"SENSING_USERID\": \"αναγνωριστικό χρήστη\",\n \"SOUND_PLAY\": \"παίξε τον ήχο %1\",\n \"SOUND_PLAYUNTILDONE\": \"παίξε ήχο %1 μέχρι τέλους\",\n \"SOUND_STOPALLSOUNDS\": \"σταμάτησε όλους τους ήχους\",\n \"SOUND_SETEFFECTO\": \"όρισε εφέ %1 σε %2\",\n \"SOUND_CHANGEEFFECTBY\": \"άλλαξε εφέ %1 κατά %2\",\n \"SOUND_CLEAREFFECTS\": \"καθάρισε ηχητικά εφέ\",\n \"SOUND_EFFECTS_PITCH\": \"τόνος\",\n \"SOUND_EFFECTS_PAN\": \"μετατόπιση αριστερά/δεξιά\",\n \"SOUND_CHANGEVOLUMEBY\": \"άλλαξε ένταση κατά %1\",\n \"SOUND_SETVOLUMETO\": \"όρισε ένταση σε %1%\",\n \"SOUND_VOLUME\": \"ένταση\",\n \"SOUND_RECORD\": \"εγγραφή...\",\n \"CATEGORY_MOTION\": \"Κίνηση\",\n \"CATEGORY_LOOKS\": \"Όψεις\",\n \"CATEGORY_SOUND\": \"Ήχος\",\n \"CATEGORY_EVENTS\": \"Συμβάντα\",\n \"CATEGORY_CONTROL\": \"Έλεγχος\",\n \"CATEGORY_SENSING\": \"Αισθητήρες\",\n \"CATEGORY_OPERATORS\": \"Τελεστές\",\n \"CATEGORY_VARIABLES\": \"Μεταβλητές\",\n \"CATEGORY_MYBLOCKS\": \"Οι Εντολές μου\",\n \"DUPLICATE\": \"Διπλασιασμός\",\n \"DELETE\": \"Διαγραφή\",\n \"ADD_COMMENT\": \"Προσθήκη σχολίου\",\n \"REMOVE_COMMENT\": \"Αφαίρεση σχολίου\",\n \"DELETE_BLOCK\": \"Διαγραφή Εντολής\",\n \"DELETE_X_BLOCKS\": \"Διαγραφή %1 Εντολών\",\n \"DELETE_ALL_BLOCKS\": \"Διαγραφή όλων των %1 εντολών;\",\n \"CLEAN_UP\": \"Τακτοποίησε Εντολές\",\n \"HELP\": \"Βοήθεια\",\n \"UNDO\": \"Αναίρεση\",\n \"REDO\": \"Επανάληψη\",\n \"EDIT_PROCEDURE\": \"Επεξεργασία\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Μετάβαση σε ορισμό\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Πες κάτι...\",\n \"COLOUR_HUE_LABEL\": \"Χρώμα\",\n \"COLOUR_SATURATION_LABEL\": \"Κορεσμός\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Φωτεινότητα\",\n \"CHANGE_VALUE_TITLE\": \"Αλλαγή τιμής:\",\n \"RENAME_VARIABLE\": \"Μετονομασία μεταβλητής\",\n \"RENAME_VARIABLE_TITLE\": \"Μετονομασία όλων των \\\"%1\\\" μεταβλητών σε:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Μετονομασία Μεταβλητής\",\n \"NEW_VARIABLE\": \"Δημιουργία Μεταβλητής\",\n \"NEW_VARIABLE_TITLE\": \"Όνομα νέας μεταβλητής:\",\n \"VARIABLE_MODAL_TITLE\": \"Νέα Μεταβλητή\",\n \"VARIABLE_ALREADY_EXISTS\": \"Υπάρχει ήδη μια μεταβλητή με όνομα \\\"%1\\\".\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Υπάρχει ήδη μια μεταβλητή με όνομα \\\"%1\\\" για μια άλλη μεταβλητή τύπου \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Διαγραφή %1 χρήσεων της μεταβλητής \\\"%2\\\";\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Η μεταβλητή \\\"%1\\\" δεν μπορεί να διαγραφεί γιατί είναι μέρος του ορισμού της λειτουργίας \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Διαγραφή της μεταβλητής \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Δημιουργία Εντολής\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Υπάρχει ήδη μια διαδικασία με όνομα \\\"%1\\\".\",\n \"PROCEDURE_DEFAULT_NAME\": \"όνομα εντολής\",\n \"NEW_LIST\": \"Δημιουργία Λίστας\",\n \"NEW_LIST_TITLE\": \"Όνομα νέας λίστας:\",\n \"LIST_MODAL_TITLE\": \"Νέα Λίστα\",\n \"LIST_ALREADY_EXISTS\": \"Υπάρχει ήδη μια λίστα με όνομα \\\"%1\\\".\",\n \"RENAME_LIST_TITLE\": \"Μετονόμασε όλες τις λίστες \\\"%1\\\" σε:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Μετονομασία Λίστας\",\n \"DEFAULT_LIST_ITEM\": \"πράγμα\",\n \"DELETE_LIST\": \"Διάγραψε τη λίστα \\\"%1\\\"\",\n \"RENAME_LIST\": \"Μετονομασία λίστας\",\n \"NEW_BROADCAST_MESSAGE\": \"Νέο μήνυμα\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Όνομα νέου μηνύματος:\",\n \"BROADCAST_MODAL_TITLE\": \"Νέο μήνυμα\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"μήνυμα1\"\n};\n\nBlockly.ScratchMsgs.locales[\"en\"] =\n{\n \"CONTROL_FOREVER\": \"forever\",\n \"CONTROL_REPEAT\": \"repeat %1\",\n \"CONTROL_IF\": \"if %1 then\",\n \"CONTROL_ELSE\": \"else\",\n \"CONTROL_STOP\": \"stop\",\n \"CONTROL_STOP_ALL\": \"all\",\n \"CONTROL_STOP_THIS\": \"this script\",\n \"CONTROL_STOP_OTHER\": \"other scripts in sprite\",\n \"CONTROL_WAIT\": \"wait %1 seconds\",\n \"CONTROL_WAITUNTIL\": \"wait until %1\",\n \"CONTROL_REPEATUNTIL\": \"repeat until %1\",\n \"CONTROL_WHILE\": \"while %1\",\n \"CONTROL_FOREACH\": \"for each %1 in %2\",\n \"CONTROL_STARTASCLONE\": \"when I start as a clone\",\n \"CONTROL_CREATECLONEOF\": \"create clone of %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"myself\",\n \"CONTROL_DELETETHISCLONE\": \"delete this clone\",\n \"CONTROL_COUNTER\": \"counter\",\n \"CONTROL_INCRCOUNTER\": \"increment counter\",\n \"CONTROL_CLEARCOUNTER\": \"clear counter\",\n \"CONTROL_ALLATONCE\": \"all at once\",\n \"DATA_SETVARIABLETO\": \"set %1 to %2\",\n \"DATA_CHANGEVARIABLEBY\": \"change %1 by %2\",\n \"DATA_SHOWVARIABLE\": \"show variable %1\",\n \"DATA_HIDEVARIABLE\": \"hide variable %1\",\n \"DATA_ADDTOLIST\": \"add %1 to %2\",\n \"DATA_DELETEOFLIST\": \"delete %1 of %2\",\n \"DATA_DELETEALLOFLIST\": \"delete all of %1\",\n \"DATA_INSERTATLIST\": \"insert %1 at %2 of %3\",\n \"DATA_REPLACEITEMOFLIST\": \"replace item %1 of %2 with %3\",\n \"DATA_ITEMOFLIST\": \"item %1 of %2\",\n \"DATA_ITEMNUMOFLIST\": \"item # of %1 in %2\",\n \"DATA_LENGTHOFLIST\": \"length of %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 contains %2?\",\n \"DATA_SHOWLIST\": \"show list %1\",\n \"DATA_HIDELIST\": \"hide list %1\",\n \"DATA_INDEX_ALL\": \"all\",\n \"DATA_INDEX_LAST\": \"last\",\n \"DATA_INDEX_RANDOM\": \"random\",\n \"EVENT_WHENFLAGCLICKED\": \"when %1 clicked\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"when this sprite clicked\",\n \"EVENT_WHENSTAGECLICKED\": \"when stage clicked\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"when this sprite touches %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"when I receive %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"when backdrop switches to %1\",\n \"EVENT_WHENGREATERTHAN\": \"when %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"timer\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"loudness\",\n \"EVENT_BROADCAST\": \"broadcast %1\",\n \"EVENT_BROADCASTANDWAIT\": \"broadcast %1 and wait\",\n \"EVENT_WHENKEYPRESSED\": \"when %1 key pressed\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"space\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"left arrow\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"right arrow\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"down arrow\",\n \"EVENT_WHENKEYPRESSED_UP\": \"up arrow\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"any\",\n \"LOOKS_SAYFORSECS\": \"say %1 for %2 seconds\",\n \"LOOKS_SAY\": \"say %1\",\n \"LOOKS_HELLO\": \"Hello!\",\n \"LOOKS_THINKFORSECS\": \"think %1 for %2 seconds\",\n \"LOOKS_THINK\": \"think %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"show\",\n \"LOOKS_HIDE\": \"hide\",\n \"LOOKS_HIDEALLSPRITES\": \"hide all sprites\",\n \"LOOKS_EFFECT_COLOR\": \"color\",\n \"LOOKS_EFFECT_FISHEYE\": \"fisheye\",\n \"LOOKS_EFFECT_WHIRL\": \"whirl\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixelate\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaic\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"brightness\",\n \"LOOKS_EFFECT_GHOST\": \"ghost\",\n \"LOOKS_CHANGEEFFECTBY\": \"change %1 effect by %2\",\n \"LOOKS_SETEFFECTTO\": \"set %1 effect to %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"clear graphic effects\",\n \"LOOKS_CHANGESIZEBY\": \"change size by %1\",\n \"LOOKS_SETSIZETO\": \"set size to %1 %\",\n \"LOOKS_SIZE\": \"size\",\n \"LOOKS_CHANGESTRETCHBY\": \"change stretch by %1\",\n \"LOOKS_SETSTRETCHTO\": \"set stretch to %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"switch costume to %1\",\n \"LOOKS_NEXTCOSTUME\": \"next costume\",\n \"LOOKS_SWITCHBACKDROPTO\": \"switch backdrop to %1\",\n \"LOOKS_GOTOFRONTBACK\": \"go to %1 layer\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"front\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"back\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"go %1 %2 layers\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"forward\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"backward\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"backdrop %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"costume %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"number\",\n \"LOOKS_NUMBERNAME_NAME\": \"name\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"switch backdrop to %1 and wait\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"next backdrop\",\n \"LOOKS_NEXTBACKDROP\": \"next backdrop\",\n \"LOOKS_PREVIOUSBACKDROP\": \"previous backdrop\",\n \"LOOKS_RANDOMBACKDROP\": \"random backdrop\",\n \"MOTION_MOVESTEPS\": \"move %1 steps\",\n \"MOTION_TURNLEFT\": \"turn %1 %2 degrees\",\n \"MOTION_TURNRIGHT\": \"turn %1 %2 degrees\",\n \"MOTION_POINTINDIRECTION\": \"point in direction %1\",\n \"MOTION_POINTTOWARDS\": \"point towards %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"mouse-pointer\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"random direction\",\n \"MOTION_GOTO\": \"go to %1\",\n \"MOTION_GOTO_POINTER\": \"mouse-pointer\",\n \"MOTION_GOTO_RANDOM\": \"random position\",\n \"MOTION_GOTOXY\": \"go to x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"glide %1 secs to x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"glide %1 secs to %2\",\n \"MOTION_GLIDETO_POINTER\": \"mouse-pointer\",\n \"MOTION_GLIDETO_RANDOM\": \"random position\",\n \"MOTION_CHANGEXBY\": \"change x by %1\",\n \"MOTION_SETX\": \"set x to %1\",\n \"MOTION_CHANGEYBY\": \"change y by %1\",\n \"MOTION_SETY\": \"set y to %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"if on edge, bounce\",\n \"MOTION_SETROTATIONSTYLE\": \"set rotation style %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"left-right\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"don't rotate\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"all around\",\n \"MOTION_XPOSITION\": \"x position\",\n \"MOTION_YPOSITION\": \"y position\",\n \"MOTION_DIRECTION\": \"direction\",\n \"MOTION_SCROLLRIGHT\": \"scroll right %1\",\n \"MOTION_SCROLLUP\": \"scroll up %1\",\n \"MOTION_ALIGNSCENE\": \"align scene %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"bottom-left\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"bottom-right\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"middle\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"top-left\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"top-right\",\n \"MOTION_XSCROLL\": \"x scroll\",\n \"MOTION_YSCROLL\": \"y scroll\",\n \"MOTION_STAGE_SELECTED\": \"Stage selected: no motion blocks\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"pick random %1 to %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 and %2\",\n \"OPERATORS_OR\": \"%1 or %2\",\n \"OPERATORS_NOT\": \"not %1\",\n \"OPERATORS_JOIN\": \"join %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"apple\",\n \"OPERATORS_JOIN_BANANA\": \"banana\",\n \"OPERATORS_LETTEROF\": \"letter %1 of %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"length of %1\",\n \"OPERATORS_CONTAINS\": \"%1 contains %2?\",\n \"OPERATORS_MOD\": \"%1 mod %2\",\n \"OPERATORS_ROUND\": \"round %1\",\n \"OPERATORS_MATHOP\": \"%1 of %2\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"floor\",\n \"OPERATORS_MATHOP_CEILING\": \"ceiling\",\n \"OPERATORS_MATHOP_SQRT\": \"sqrt\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"define %1\",\n \"SENSING_TOUCHINGOBJECT\": \"touching %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"mouse-pointer\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"edge\",\n \"SENSING_TOUCHINGCOLOR\": \"touching color %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"color %1 is touching %2?\",\n \"SENSING_DISTANCETO\": \"distance to %1\",\n \"SENSING_DISTANCETO_POINTER\": \"mouse-pointer\",\n \"SENSING_ASKANDWAIT\": \"ask %1 and wait\",\n \"SENSING_ASK_TEXT\": \"What's your name?\",\n \"SENSING_ANSWER\": \"answer\",\n \"SENSING_KEYPRESSED\": \"key %1 pressed?\",\n \"SENSING_MOUSEDOWN\": \"mouse down?\",\n \"SENSING_MOUSEX\": \"mouse x\",\n \"SENSING_MOUSEY\": \"mouse y\",\n \"SENSING_SETDRAGMODE\": \"set drag mode %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"draggable\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"not draggable\",\n \"SENSING_LOUDNESS\": \"loudness\",\n \"SENSING_LOUD\": \"loud?\",\n \"SENSING_TIMER\": \"timer\",\n \"SENSING_RESETTIMER\": \"reset timer\",\n \"SENSING_OF\": \"%1 of %2\",\n \"SENSING_OF_XPOSITION\": \"x position\",\n \"SENSING_OF_YPOSITION\": \"y position\",\n \"SENSING_OF_DIRECTION\": \"direction\",\n \"SENSING_OF_COSTUMENUMBER\": \"costume #\",\n \"SENSING_OF_COSTUMENAME\": \"costume name\",\n \"SENSING_OF_SIZE\": \"size\",\n \"SENSING_OF_VOLUME\": \"volume\",\n \"SENSING_OF_BACKDROPNUMBER\": \"backdrop #\",\n \"SENSING_OF_BACKDROPNAME\": \"backdrop name\",\n \"SENSING_OF_STAGE\": \"Stage\",\n \"SENSING_CURRENT\": \"current %1\",\n \"SENSING_CURRENT_YEAR\": \"year\",\n \"SENSING_CURRENT_MONTH\": \"month\",\n \"SENSING_CURRENT_DATE\": \"date\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"day of week\",\n \"SENSING_CURRENT_HOUR\": \"hour\",\n \"SENSING_CURRENT_MINUTE\": \"minute\",\n \"SENSING_CURRENT_SECOND\": \"second\",\n \"SENSING_DAYSSINCE2000\": \"days since 2000\",\n \"SENSING_USERNAME\": \"username\",\n \"SENSING_USERID\": \"user id\",\n \"SOUND_PLAY\": \"start sound %1\",\n \"SOUND_PLAYUNTILDONE\": \"play sound %1 until done\",\n \"SOUND_STOPALLSOUNDS\": \"stop all sounds\",\n \"SOUND_SETEFFECTO\": \"set %1 effect to %2\",\n \"SOUND_CHANGEEFFECTBY\": \"change %1 effect by %2\",\n \"SOUND_CLEAREFFECTS\": \"clear sound effects\",\n \"SOUND_EFFECTS_PITCH\": \"pitch\",\n \"SOUND_EFFECTS_PAN\": \"pan left/right\",\n \"SOUND_CHANGEVOLUMEBY\": \"change volume by %1\",\n \"SOUND_SETVOLUMETO\": \"set volume to %1%\",\n \"SOUND_VOLUME\": \"volume\",\n \"SOUND_RECORD\": \"record...\",\n \"CATEGORY_MOTION\": \"Motion\",\n \"CATEGORY_LOOKS\": \"Looks\",\n \"CATEGORY_SOUND\": \"Sound\",\n \"CATEGORY_EVENTS\": \"Events\",\n \"CATEGORY_CONTROL\": \"Control\",\n \"CATEGORY_SENSING\": \"Sensing\",\n \"CATEGORY_OPERATORS\": \"Operators\",\n \"CATEGORY_VARIABLES\": \"Variables\",\n \"CATEGORY_MYBLOCKS\": \"My Blocks\",\n \"DUPLICATE\": \"Duplicate\",\n \"DELETE\": \"Delete\",\n \"ADD_COMMENT\": \"Add Comment\",\n \"REMOVE_COMMENT\": \"Remove Comment\",\n \"DELETE_BLOCK\": \"Delete Block\",\n \"DELETE_X_BLOCKS\": \"Delete %1 Blocks\",\n \"DELETE_ALL_BLOCKS\": \"Delete all %1 blocks?\",\n \"CLEAN_UP\": \"Clean up Blocks\",\n \"HELP\": \"Help\",\n \"UNDO\": \"Undo\",\n \"REDO\": \"Redo\",\n \"EDIT_PROCEDURE\": \"Edit\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Go to definition\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Say something...\",\n \"COLOUR_HUE_LABEL\": \"Color\",\n \"COLOUR_SATURATION_LABEL\": \"Saturation\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Brightness\",\n \"CHANGE_VALUE_TITLE\": \"Change value:\",\n \"RENAME_VARIABLE\": \"Rename variable\",\n \"RENAME_VARIABLE_TITLE\": \"Rename all \\\"%1\\\" variables to:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Rename Variable\",\n \"NEW_VARIABLE\": \"Make a Variable\",\n \"NEW_VARIABLE_TITLE\": \"New variable name:\",\n \"VARIABLE_MODAL_TITLE\": \"New Variable\",\n \"VARIABLE_ALREADY_EXISTS\": \"A variable named \\\"%1\\\" already exists.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"A variable named \\\"%1\\\" already exists for another variable of type \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Delete %1 uses of the \\\"%2\\\" variable?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Can't delete the variable \\\"%1\\\" because it's part of the definition of the function \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Delete the \\\"%1\\\" variable\",\n \"NEW_PROCEDURE\": \"Make a Block\",\n \"PROCEDURE_ALREADY_EXISTS\": \"A procedure named \\\"%1\\\" already exists.\",\n \"PROCEDURE_DEFAULT_NAME\": \"block name\",\n \"NEW_LIST\": \"Make a List\",\n \"NEW_LIST_TITLE\": \"New list name:\",\n \"LIST_MODAL_TITLE\": \"New List\",\n \"LIST_ALREADY_EXISTS\": \"A list named \\\"%1\\\" already exists.\",\n \"RENAME_LIST_TITLE\": \"Rename all \\\"%1\\\" lists to:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Rename List\",\n \"DEFAULT_LIST_ITEM\": \"thing\",\n \"DELETE_LIST\": \"Delete the \\\"%1\\\" list\",\n \"RENAME_LIST\": \"Rename list\",\n \"NEW_BROADCAST_MESSAGE\": \"New message\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"New message name:\",\n \"BROADCAST_MODAL_TITLE\": \"New Message\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"message1\"\n};\n\nBlockly.ScratchMsgs.locales[\"es\"] =\n{\n \"CONTROL_FOREVER\": \"por siempre\",\n \"CONTROL_REPEAT\": \"repetir %1\",\n \"CONTROL_IF\": \"si %1 entonces\",\n \"CONTROL_ELSE\": \"si no\",\n \"CONTROL_STOP\": \"detener\",\n \"CONTROL_STOP_ALL\": \"todos\",\n \"CONTROL_STOP_THIS\": \"este programa\",\n \"CONTROL_STOP_OTHER\": \"otros programas en el objeto\",\n \"CONTROL_WAIT\": \"esperar %1 segundos\",\n \"CONTROL_WAITUNTIL\": \"esperar hasta que %1\",\n \"CONTROL_REPEATUNTIL\": \"repetir hasta que %1\",\n \"CONTROL_WHILE\": \"mientras %1\",\n \"CONTROL_FOREACH\": \"para cada %1 de %2\",\n \"CONTROL_STARTASCLONE\": \"al comenzar como clon\",\n \"CONTROL_CREATECLONEOF\": \"crear clon de %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"mí mismo\",\n \"CONTROL_DELETETHISCLONE\": \"eliminar este clon\",\n \"CONTROL_COUNTER\": \"contador\",\n \"CONTROL_INCRCOUNTER\": \"incrementar contador\",\n \"CONTROL_CLEARCOUNTER\": \"borrar contador\",\n \"CONTROL_ALLATONCE\": \"todo de una vez\",\n \"DATA_SETVARIABLETO\": \"dar a %1 el valor %2\",\n \"DATA_CHANGEVARIABLEBY\": \"sumar a %1 %2\",\n \"DATA_SHOWVARIABLE\": \"mostrar variable %1\",\n \"DATA_HIDEVARIABLE\": \"esconder variable %1\",\n \"DATA_ADDTOLIST\": \"añadir %1 a %2\",\n \"DATA_DELETEOFLIST\": \"eliminar %1 de %2\",\n \"DATA_DELETEALLOFLIST\": \"eliminar todos de %1\",\n \"DATA_INSERTATLIST\": \"insertar %1 en %2 de %3\",\n \"DATA_REPLACEITEMOFLIST\": \"reemplazar elemento %1 de %2 con %3\",\n \"DATA_ITEMOFLIST\": \"elemento %1 de %2\",\n \"DATA_ITEMNUMOFLIST\": \"# de elemento de %1 en %2\",\n \"DATA_LENGTHOFLIST\": \"longitud de %1\",\n \"DATA_LISTCONTAINSITEM\": \"¿%2 está en %1?\",\n \"DATA_SHOWLIST\": \"mostrar lista %1\",\n \"DATA_HIDELIST\": \"esconder lista %1\",\n \"DATA_INDEX_ALL\": \"todos\",\n \"DATA_INDEX_LAST\": \"último\",\n \"DATA_INDEX_RANDOM\": \"aleatorio\",\n \"EVENT_WHENFLAGCLICKED\": \"al hacer clic en %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"al hacer clic en este objeto\",\n \"EVENT_WHENSTAGECLICKED\": \"al hacer clic en el escenario\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"cuando el objeto toque %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"al recibir %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"cuando el fondo cambie a %1\",\n \"EVENT_WHENGREATERTHAN\": \"cuando %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"cronómetro\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"volumen del sonido\",\n \"EVENT_BROADCAST\": \"enviar %1\",\n \"EVENT_BROADCASTANDWAIT\": \"enviar %1 y esperar\",\n \"EVENT_WHENKEYPRESSED\": \"al presionar tecla %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"espacio\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"flecha izquierda\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"flecha derecha\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"flecha abajo\",\n \"EVENT_WHENKEYPRESSED_UP\": \"flecha arriba\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"cualquiera\",\n \"LOOKS_SAYFORSECS\": \"decir %1 durante %2 segundos\",\n \"LOOKS_SAY\": \"decir %1\",\n \"LOOKS_HELLO\": \"¡Hola!\",\n \"LOOKS_THINKFORSECS\": \"pensar %1 durante %2 segundos\",\n \"LOOKS_THINK\": \"pensar %1\",\n \"LOOKS_HMM\": \"Umm...\",\n \"LOOKS_SHOW\": \"mostrar\",\n \"LOOKS_HIDE\": \"esconder\",\n \"LOOKS_HIDEALLSPRITES\": \"esconder todos los objetos\",\n \"LOOKS_EFFECT_COLOR\": \"color\",\n \"LOOKS_EFFECT_FISHEYE\": \"ojo de pez\",\n \"LOOKS_EFFECT_WHIRL\": \"remolino\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixelar\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaico\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"brillo\",\n \"LOOKS_EFFECT_GHOST\": \"desvanecer\",\n \"LOOKS_CHANGEEFFECTBY\": \"sumar al efecto %1 %2\",\n \"LOOKS_SETEFFECTTO\": \"dar al efecto %1 el valor %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"quitar efectos gráficos\",\n \"LOOKS_CHANGESIZEBY\": \"cambiar tamaño por %1\",\n \"LOOKS_SETSIZETO\": \"fijar tamaño al %1 %\",\n \"LOOKS_SIZE\": \"tamaño\",\n \"LOOKS_CHANGESTRETCHBY\": \"sumar al estiramiento %1\",\n \"LOOKS_SETSTRETCHTO\": \"fijar estiramiento al %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"cambiar disfraz a %1\",\n \"LOOKS_NEXTCOSTUME\": \"siguiente disfraz\",\n \"LOOKS_SWITCHBACKDROPTO\": \"cambiar fondo a %1\",\n \"LOOKS_GOTOFRONTBACK\": \"ir a capa %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"delantera\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"trasera\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"ir %2 capas hacia %1\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"delante\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"atrás\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"%1 de fondo\",\n \"LOOKS_COSTUMENUMBERNAME\": \"%1 de disfraz\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"número\",\n \"LOOKS_NUMBERNAME_NAME\": \"nombre\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"cambiar fondo a %1 y esperar\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"siguiente fondo\",\n \"LOOKS_NEXTBACKDROP\": \"siguiente fondo\",\n \"LOOKS_PREVIOUSBACKDROP\": \"fondo anterior\",\n \"LOOKS_RANDOMBACKDROP\": \"fondo aleatorio\",\n \"MOTION_MOVESTEPS\": \"mover %1 pasos\",\n \"MOTION_TURNLEFT\": \"girar %1 %2 grados\",\n \"MOTION_TURNRIGHT\": \"girar %1 %2 grados\",\n \"MOTION_POINTINDIRECTION\": \"apuntar en dirección %1\",\n \"MOTION_POINTTOWARDS\": \"apuntar hacia %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"puntero del ratón\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"dirección aleatoria\",\n \"MOTION_GOTO\": \"ir a %1\",\n \"MOTION_GOTO_POINTER\": \"puntero del ratón\",\n \"MOTION_GOTO_RANDOM\": \"posición aleatoria\",\n \"MOTION_GOTOXY\": \"ir a x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"deslizar en %1 segs a x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"deslizar en %1 segs a %2\",\n \"MOTION_GLIDETO_POINTER\": \"puntero del ratón\",\n \"MOTION_GLIDETO_RANDOM\": \"posición aleatoria\",\n \"MOTION_CHANGEXBY\": \"sumar a x %1\",\n \"MOTION_SETX\": \"dar a x el valor %1\",\n \"MOTION_CHANGEYBY\": \"sumar a y %1\",\n \"MOTION_SETY\": \"dar a y el valor %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"si toca un borde, rebotar\",\n \"MOTION_SETROTATIONSTYLE\": \"fijar estilo de rotación a %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"izquierda-derecha\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"no rotar\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"en todas direcciones\",\n \"MOTION_XPOSITION\": \"posición en x\",\n \"MOTION_YPOSITION\": \"posición en y\",\n \"MOTION_DIRECTION\": \"dirección\",\n \"MOTION_SCROLLRIGHT\": \"desplazar a la derecha %1\",\n \"MOTION_SCROLLUP\": \"desplazar arriba %1\",\n \"MOTION_ALIGNSCENE\": \"alinear escena %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"abajo a la izquierda\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"abajo a la derecha\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"al centro\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"arriba a la izquierda\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"arriba a la derecha\",\n \"MOTION_XSCROLL\": \"desplazamiento en x\",\n \"MOTION_YSCROLL\": \"desplazamiento en y\",\n \"MOTION_STAGE_SELECTED\": \"Escenario seleccionado: no hay bloques de movimiento\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"número aleatorio entre %1 y %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 y %2\",\n \"OPERATORS_OR\": \"%1 o %2\",\n \"OPERATORS_NOT\": \"no %1\",\n \"OPERATORS_JOIN\": \"unir %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"manzana\",\n \"OPERATORS_JOIN_BANANA\": \"plátano\",\n \"OPERATORS_LETTEROF\": \"letra %1 de %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"longitud de %1\",\n \"OPERATORS_CONTAINS\": \"¿%2 está en %1?\",\n \"OPERATORS_MOD\": \"%1 módulo %2\",\n \"OPERATORS_ROUND\": \"redondear %1\",\n \"OPERATORS_MATHOP\": \"%1 de %2\",\n \"OPERATORS_MATHOP_ABS\": \"valor absoluto\",\n \"OPERATORS_MATHOP_FLOOR\": \"suelo\",\n \"OPERATORS_MATHOP_CEILING\": \"techo\",\n \"OPERATORS_MATHOP_SQRT\": \"raíz cuadrada\",\n \"OPERATORS_MATHOP_SIN\": \"sen\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"arcsen\",\n \"OPERATORS_MATHOP_ACOS\": \"arccos\",\n \"OPERATORS_MATHOP_ATAN\": \"arctan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"definir %1\",\n \"SENSING_TOUCHINGOBJECT\": \"¿tocando %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"puntero del ratón\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"borde\",\n \"SENSING_TOUCHINGCOLOR\": \"¿tocando el color %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"¿color %1 tocando %2?\",\n \"SENSING_DISTANCETO\": \"distancia a %1\",\n \"SENSING_DISTANCETO_POINTER\": \"puntero del ratón\",\n \"SENSING_ASKANDWAIT\": \"preguntar %1 y esperar\",\n \"SENSING_ASK_TEXT\": \"¿Cómo te llamas?\",\n \"SENSING_ANSWER\": \"respuesta\",\n \"SENSING_KEYPRESSED\": \"¿tecla %1 presionada?\",\n \"SENSING_MOUSEDOWN\": \"¿ratón presionado?\",\n \"SENSING_MOUSEX\": \"posición x del ratón\",\n \"SENSING_MOUSEY\": \"posición y del ratón\",\n \"SENSING_SETDRAGMODE\": \"fijar modo de arrastre a %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"arrastrable\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"no arrastrable\",\n \"SENSING_LOUDNESS\": \"volumen del sonido\",\n \"SENSING_LOUD\": \"¿ruidoso?\",\n \"SENSING_TIMER\": \"cronómetro\",\n \"SENSING_RESETTIMER\": \"reiniciar cronómetro\",\n \"SENSING_OF\": \"%1 de %2\",\n \"SENSING_OF_XPOSITION\": \"posición en x\",\n \"SENSING_OF_YPOSITION\": \"posición en y\",\n \"SENSING_OF_DIRECTION\": \"dirección\",\n \"SENSING_OF_COSTUMENUMBER\": \"# de disfraz\",\n \"SENSING_OF_COSTUMENAME\": \"nombre de disfraz\",\n \"SENSING_OF_SIZE\": \"tamaño\",\n \"SENSING_OF_VOLUME\": \"volumen\",\n \"SENSING_OF_BACKDROPNUMBER\": \"# de fondo\",\n \"SENSING_OF_BACKDROPNAME\": \"nombre de fondo\",\n \"SENSING_OF_STAGE\": \"Escenario\",\n \"SENSING_CURRENT\": \"%1 actual\",\n \"SENSING_CURRENT_YEAR\": \"año\",\n \"SENSING_CURRENT_MONTH\": \"mes\",\n \"SENSING_CURRENT_DATE\": \"día\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"día de la semana\",\n \"SENSING_CURRENT_HOUR\": \"hora\",\n \"SENSING_CURRENT_MINUTE\": \"minuto\",\n \"SENSING_CURRENT_SECOND\": \"segundo\",\n \"SENSING_DAYSSINCE2000\": \"días desde el 2000\",\n \"SENSING_USERNAME\": \"nombre de usuario\",\n \"SENSING_USERID\": \"id de usuario\",\n \"SOUND_PLAY\": \"iniciar sonido %1\",\n \"SOUND_PLAYUNTILDONE\": \"tocar sonido %1 hasta que termine\",\n \"SOUND_STOPALLSOUNDS\": \"detener todos los sonidos\",\n \"SOUND_SETEFFECTO\": \"dar al efecto %1 el valor %2\",\n \"SOUND_CHANGEEFFECTBY\": \"sumar al efecto %1 %2\",\n \"SOUND_CLEAREFFECTS\": \"quitar efectos de sonido\",\n \"SOUND_EFFECTS_PITCH\": \"altura\",\n \"SOUND_EFFECTS_PAN\": \"balance izquierda/derecha\",\n \"SOUND_CHANGEVOLUMEBY\": \"cambiar volumen por %1\",\n \"SOUND_SETVOLUMETO\": \"fijar volumen al %1%\",\n \"SOUND_VOLUME\": \"volumen\",\n \"SOUND_RECORD\": \"grabar...\",\n \"CATEGORY_MOTION\": \"Movimiento\",\n \"CATEGORY_LOOKS\": \"Apariencia\",\n \"CATEGORY_SOUND\": \"Sonido\",\n \"CATEGORY_EVENTS\": \"Eventos\",\n \"CATEGORY_CONTROL\": \"Control\",\n \"CATEGORY_SENSING\": \"Sensores\",\n \"CATEGORY_OPERATORS\": \"Operadores\",\n \"CATEGORY_VARIABLES\": \"Variables\",\n \"CATEGORY_MYBLOCKS\": \"Mis bloques\",\n \"DUPLICATE\": \"Duplicar\",\n \"DELETE\": \"Eliminar\",\n \"ADD_COMMENT\": \"Añadir comentario\",\n \"REMOVE_COMMENT\": \"Eliminar comentario\",\n \"DELETE_BLOCK\": \"Eliminar bloque\",\n \"DELETE_X_BLOCKS\": \"Eliminar %1 bloques\",\n \"DELETE_ALL_BLOCKS\": \"¿Eliminar los %1 bloques?\",\n \"CLEAN_UP\": \"Ordenar bloques\",\n \"HELP\": \"Ayuda\",\n \"UNDO\": \"Deshacer\",\n \"REDO\": \"Rehacer\",\n \"EDIT_PROCEDURE\": \"Editar\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Ir a definición\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Di algo...\",\n \"COLOUR_HUE_LABEL\": \"Color\",\n \"COLOUR_SATURATION_LABEL\": \"Saturación\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Brillo\",\n \"CHANGE_VALUE_TITLE\": \"Cambiar valor:\",\n \"RENAME_VARIABLE\": \"Renombrar variable\",\n \"RENAME_VARIABLE_TITLE\": \"Renombrar todas las variables \\\"%1\\\" a:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Renombrar variable\",\n \"NEW_VARIABLE\": \"Crear una variable\",\n \"NEW_VARIABLE_TITLE\": \"Nombre de la variable:\",\n \"VARIABLE_MODAL_TITLE\": \"Nueva variable\",\n \"VARIABLE_ALREADY_EXISTS\": \"Ya existe una variable llamada \\\"%1\\\".\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Ya existe una variable llamada \\\"%1\\\" para otra variable de tipo \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"¿Eliminar %1 usos de la variable \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"No se puede eliminar la variable \\\"%1\\\" porque es parte de la definición de la función \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Eliminar la variable \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Crear un bloque\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Ya existe un procedimiento llamado \\\"%1\\\".\",\n \"PROCEDURE_DEFAULT_NAME\": \"nombre del bloque\",\n \"NEW_LIST\": \"Crear una lista\",\n \"NEW_LIST_TITLE\": \"Nombre de la lista:\",\n \"LIST_MODAL_TITLE\": \"Nueva lista\",\n \"LIST_ALREADY_EXISTS\": \"Ya existe una lista llamada \\\"%1\\\".\",\n \"RENAME_LIST_TITLE\": \"Renombrar todas las listas \\\"%1\\\" a:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Renombrar lista\",\n \"DEFAULT_LIST_ITEM\": \"cosa\",\n \"DELETE_LIST\": \"Eliminar la lista \\\"%1\\\"\",\n \"RENAME_LIST\": \"Renombrar lista\",\n \"NEW_BROADCAST_MESSAGE\": \"Nuevo mensaje\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Nombre del mensaje:\",\n \"BROADCAST_MODAL_TITLE\": \"Nuevo Mensaje\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"mensaje1\"\n};\n\nBlockly.ScratchMsgs.locales[\"es-419\"] =\n{\n \"CONTROL_FOREVER\": \"por siempre\",\n \"CONTROL_REPEAT\": \"repetir %1\",\n \"CONTROL_IF\": \"si %1 entonces\",\n \"CONTROL_ELSE\": \"si no\",\n \"CONTROL_STOP\": \"detener\",\n \"CONTROL_STOP_ALL\": \"todos\",\n \"CONTROL_STOP_THIS\": \"este programa\",\n \"CONTROL_STOP_OTHER\": \"otros programas en el objeto\",\n \"CONTROL_WAIT\": \"esperar %1 segundos\",\n \"CONTROL_WAITUNTIL\": \"esperar hasta que %1\",\n \"CONTROL_REPEATUNTIL\": \"repetir hasta que %1\",\n \"CONTROL_WHILE\": \"mientras %1\",\n \"CONTROL_FOREACH\": \"para cada %1 en %2\",\n \"CONTROL_STARTASCLONE\": \"al comenzar como clon\",\n \"CONTROL_CREATECLONEOF\": \"crear clon de %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"mí mismo\",\n \"CONTROL_DELETETHISCLONE\": \"eliminar este clon\",\n \"CONTROL_COUNTER\": \"contador\",\n \"CONTROL_INCRCOUNTER\": \"incrementar contador\",\n \"CONTROL_CLEARCOUNTER\": \"borrar contador\",\n \"CONTROL_ALLATONCE\": \"todos a la vez\",\n \"DATA_SETVARIABLETO\": \"establecer %1 a %2\",\n \"DATA_CHANGEVARIABLEBY\": \"cambiar %1 en %2\",\n \"DATA_SHOWVARIABLE\": \"mostrar variable %1\",\n \"DATA_HIDEVARIABLE\": \"ocultar variable %1\",\n \"DATA_ADDTOLIST\": \"añadir %1 a %2\",\n \"DATA_DELETEOFLIST\": \"eliminar %1 de %2\",\n \"DATA_DELETEALLOFLIST\": \"Eliminar todos de %1\",\n \"DATA_INSERTATLIST\": \"insertar %1 en %2 de %3\",\n \"DATA_REPLACEITEMOFLIST\": \"reemplazar elemento %1 de %2 con %3\",\n \"DATA_ITEMOFLIST\": \"elemento %1 de %2\",\n \"DATA_ITEMNUMOFLIST\": \"elemento # %1 en %2 \",\n \"DATA_LENGTHOFLIST\": \"longitud de %1\",\n \"DATA_LISTCONTAINSITEM\": \"¿%1 contiene %2?\",\n \"DATA_SHOWLIST\": \"mostrar lista %1\",\n \"DATA_HIDELIST\": \"esconder lista %1\",\n \"DATA_INDEX_ALL\": \"todos\",\n \"DATA_INDEX_LAST\": \"último\",\n \"DATA_INDEX_RANDOM\": \"al azar\",\n \"EVENT_WHENFLAGCLICKED\": \"al presionar %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"al hacer clic en este objeto\",\n \"EVENT_WHENSTAGECLICKED\": \"al hacer clic en el escenario\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"cuando este objeto toque %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"al recibir %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"cuando el fondo cambie a %1\",\n \"EVENT_WHENGREATERTHAN\": \"cuando %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"cronómetro\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"volumen del sonido\",\n \"EVENT_BROADCAST\": \"enviar %1\",\n \"EVENT_BROADCASTANDWAIT\": \"enviar %1 y esperar\",\n \"EVENT_WHENKEYPRESSED\": \"al presionar la tecla %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"espacio\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"flecha izquierda\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"flecha derecha\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"flecha abajo\",\n \"EVENT_WHENKEYPRESSED_UP\": \"flecha arriba\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"cualquiera\",\n \"LOOKS_SAYFORSECS\": \"decir %1 por %2 segundos\",\n \"LOOKS_SAY\": \"decir %1\",\n \"LOOKS_HELLO\": \"¡Hola!\",\n \"LOOKS_THINKFORSECS\": \"pensar %1 por %2 segundos\",\n \"LOOKS_THINK\": \"pensar %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"mostrar\",\n \"LOOKS_HIDE\": \"ocultar\",\n \"LOOKS_HIDEALLSPRITES\": \"esconder todos los objetos\",\n \"LOOKS_EFFECT_COLOR\": \"color\",\n \"LOOKS_EFFECT_FISHEYE\": \"ojo de pez\",\n \"LOOKS_EFFECT_WHIRL\": \"remolino\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixelar\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaico\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"brillo\",\n \"LOOKS_EFFECT_GHOST\": \"desvanecer\",\n \"LOOKS_CHANGEEFFECTBY\": \"cambiar el efecto %1 en %2\",\n \"LOOKS_SETEFFECTTO\": \"fijar efecto %1 a %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"quitar efectos gráficos\",\n \"LOOKS_CHANGESIZEBY\": \"cambiar tamaño en %1\",\n \"LOOKS_SETSIZETO\": \"fijar tamaño a %1 %\",\n \"LOOKS_SIZE\": \"tamaño\",\n \"LOOKS_CHANGESTRETCHBY\": \"cambiar estiramiento en %1\",\n \"LOOKS_SETSTRETCHTO\": \"fijar estiramiento a %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"cambiar disfraz a %1\",\n \"LOOKS_NEXTCOSTUME\": \"siguiente disfraz\",\n \"LOOKS_SWITCHBACKDROPTO\": \"cambiar fondo a %1\",\n \"LOOKS_GOTOFRONTBACK\": \"ir a la capa %1 \",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"del frente\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"de atrás\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"ir %2 capas hacia %1\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"adelante\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"atrás\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"fondo %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"disfraz %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"número\",\n \"LOOKS_NUMBERNAME_NAME\": \"nombre\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"cambiar fondo a %1 y esperar\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"fondo siguiente\",\n \"LOOKS_NEXTBACKDROP\": \"fondo siguiente\",\n \"LOOKS_PREVIOUSBACKDROP\": \"fondo anterior\",\n \"LOOKS_RANDOMBACKDROP\": \"fondo aleatorio\",\n \"MOTION_MOVESTEPS\": \"mover %1 pasos\",\n \"MOTION_TURNLEFT\": \"girar %1 %2 grados\",\n \"MOTION_TURNRIGHT\": \"girar %1 %2 grados\",\n \"MOTION_POINTINDIRECTION\": \"apuntar en dirección %1\",\n \"MOTION_POINTTOWARDS\": \"apuntar hacia %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"puntero del ratón\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"dirección aleatoria\",\n \"MOTION_GOTO\": \"ir a %1\",\n \"MOTION_GOTO_POINTER\": \"puntero del ratón\",\n \"MOTION_GOTO_RANDOM\": \"posición aleatoria\",\n \"MOTION_GOTOXY\": \"ir a x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"deslizar en %1 segs a x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"deslizar en %1 segs a %2\",\n \"MOTION_GLIDETO_POINTER\": \"puntero del ratón\",\n \"MOTION_GLIDETO_RANDOM\": \"posición aleatoria\",\n \"MOTION_CHANGEXBY\": \"cambiar x en %1\",\n \"MOTION_SETX\": \"fijar x a %1\",\n \"MOTION_CHANGEYBY\": \"cambiar y en %1\",\n \"MOTION_SETY\": \"fijar y a %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"rebotar si toca un borde\",\n \"MOTION_SETROTATIONSTYLE\": \"fijar estilo de rotación: %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"izquierda-derecha\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"no rotar\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"en todas las direcciones\",\n \"MOTION_XPOSITION\": \"posición en x\",\n \"MOTION_YPOSITION\": \"posición en y\",\n \"MOTION_DIRECTION\": \"dirección\",\n \"MOTION_SCROLLRIGHT\": \"deslizar a la derecha %1\",\n \"MOTION_SCROLLUP\": \"deslizar hacia arriba %1\",\n \"MOTION_ALIGNSCENE\": \"alinear escena %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"abajo a la izquierda\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"abajo a la derecha\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"mitad\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"arriba a la izquierda\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"arriba a la derecha\",\n \"MOTION_XSCROLL\": \"deslizar x\",\n \"MOTION_YSCROLL\": \"deslizar y\",\n \"MOTION_STAGE_SELECTED\": \"Escenario seleccionado: no existen bloques de movimiento\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"número al azar entre %1 y %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 y %2\",\n \"OPERATORS_OR\": \"%1 o %2\",\n \"OPERATORS_NOT\": \"no %1\",\n \"OPERATORS_JOIN\": \"unir %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"manzana\",\n \"OPERATORS_JOIN_BANANA\": \"banana\",\n \"OPERATORS_LETTEROF\": \"letra %1 de %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"longitud de %1\",\n \"OPERATORS_CONTAINS\": \"%1 contiene %2?\",\n \"OPERATORS_MOD\": \"%1 mód %2\",\n \"OPERATORS_ROUND\": \"redondear %1\",\n \"OPERATORS_MATHOP\": \"%1 de %2\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"piso\",\n \"OPERATORS_MATHOP_CEILING\": \"techo\",\n \"OPERATORS_MATHOP_SQRT\": \"raíz cuadrada\",\n \"OPERATORS_MATHOP_SIN\": \"seno\",\n \"OPERATORS_MATHOP_COS\": \"coseno\",\n \"OPERATORS_MATHOP_TAN\": \"tangente\",\n \"OPERATORS_MATHOP_ASIN\": \"arcoseno\",\n \"OPERATORS_MATHOP_ACOS\": \"arcocoseno\",\n \"OPERATORS_MATHOP_ATAN\": \"arcotangente\",\n \"OPERATORS_MATHOP_LN\": \"logaritmo natural\",\n \"OPERATORS_MATHOP_LOG\": \"logaritmo en base 10\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"definir %1\",\n \"SENSING_TOUCHINGOBJECT\": \"¿tocando %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"el puntero del ratón\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"el borde\",\n \"SENSING_TOUCHINGCOLOR\": \"¿tocando el color %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"¿color %1 está tocando %2?\",\n \"SENSING_DISTANCETO\": \"distancia a %1\",\n \"SENSING_DISTANCETO_POINTER\": \"el puntero del ratón\",\n \"SENSING_ASKANDWAIT\": \"preguntar %1 y esperar\",\n \"SENSING_ASK_TEXT\": \"¿Cómo te llamas?\",\n \"SENSING_ANSWER\": \"respuesta\",\n \"SENSING_KEYPRESSED\": \"¿tecla %1 presionada?\",\n \"SENSING_MOUSEDOWN\": \"¿ratón presionado?\",\n \"SENSING_MOUSEX\": \"posición x del ratón\",\n \"SENSING_MOUSEY\": \"posición y del ratón\",\n \"SENSING_SETDRAGMODE\": \"fijar modo de arrastre a %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"arrastrable\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"no arrastrable\",\n \"SENSING_LOUDNESS\": \"volumen del sonido\",\n \"SENSING_LOUD\": \"¿fuerte?\",\n \"SENSING_TIMER\": \"cronómetro\",\n \"SENSING_RESETTIMER\": \"reiniciar cronómetro\",\n \"SENSING_OF\": \"%1 de %2\",\n \"SENSING_OF_XPOSITION\": \"posición en x\",\n \"SENSING_OF_YPOSITION\": \"posición en y\",\n \"SENSING_OF_DIRECTION\": \"dirección\",\n \"SENSING_OF_COSTUMENUMBER\": \"# de disfraz\",\n \"SENSING_OF_COSTUMENAME\": \"nombre del disfraz\",\n \"SENSING_OF_SIZE\": \"tamaño\",\n \"SENSING_OF_VOLUME\": \"volumen\",\n \"SENSING_OF_BACKDROPNUMBER\": \"# de fondo\",\n \"SENSING_OF_BACKDROPNAME\": \"nombre de fondo\",\n \"SENSING_OF_STAGE\": \"Escenario\",\n \"SENSING_CURRENT\": \"%1 actual\",\n \"SENSING_CURRENT_YEAR\": \"año\",\n \"SENSING_CURRENT_MONTH\": \"mes\",\n \"SENSING_CURRENT_DATE\": \"fecha\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"día de la semana\",\n \"SENSING_CURRENT_HOUR\": \"hora\",\n \"SENSING_CURRENT_MINUTE\": \"minuto\",\n \"SENSING_CURRENT_SECOND\": \"segundo\",\n \"SENSING_DAYSSINCE2000\": \"días desde el 2000\",\n \"SENSING_USERNAME\": \"nombre de usuario\",\n \"SENSING_USERID\": \"identificación de usuario\",\n \"SOUND_PLAY\": \"tocar sonido %1\",\n \"SOUND_PLAYUNTILDONE\": \"tocar sonido %1 hasta terminar\",\n \"SOUND_STOPALLSOUNDS\": \"detener todos los sonidos\",\n \"SOUND_SETEFFECTO\": \"fijar efecto %1 a %2\",\n \"SOUND_CHANGEEFFECTBY\": \"cambiar efecto %1 en %2\",\n \"SOUND_CLEAREFFECTS\": \"borrar efectos de sonido\",\n \"SOUND_EFFECTS_PITCH\": \"altura\",\n \"SOUND_EFFECTS_PAN\": \"paneo izquierda/derecha\",\n \"SOUND_CHANGEVOLUMEBY\": \"cambiar volumen en %1\",\n \"SOUND_SETVOLUMETO\": \"fijar volumen a %1%\",\n \"SOUND_VOLUME\": \"volumen\",\n \"SOUND_RECORD\": \"grabar...\",\n \"CATEGORY_MOTION\": \"Movimiento\",\n \"CATEGORY_LOOKS\": \"Apariencia\",\n \"CATEGORY_SOUND\": \"Sonido\",\n \"CATEGORY_EVENTS\": \"Eventos\",\n \"CATEGORY_CONTROL\": \"Control\",\n \"CATEGORY_SENSING\": \"Sensores\",\n \"CATEGORY_OPERATORS\": \"Operadores\",\n \"CATEGORY_VARIABLES\": \"Variables\",\n \"CATEGORY_MYBLOCKS\": \"Mis Bloques\",\n \"DUPLICATE\": \"Duplicar\",\n \"DELETE\": \"Eliminar\",\n \"ADD_COMMENT\": \"Agregar comentario\",\n \"REMOVE_COMMENT\": \"Eliminar comentario\",\n \"DELETE_BLOCK\": \"Eliminar bloque\",\n \"DELETE_X_BLOCKS\": \"Eliminar %1 bloques\",\n \"DELETE_ALL_BLOCKS\": \"¿Eliminar todos los bloques %1?\",\n \"CLEAN_UP\": \"Limpiar bloques\",\n \"HELP\": \"Ayuda\",\n \"UNDO\": \"Deshacer\",\n \"REDO\": \"Rehacer\",\n \"EDIT_PROCEDURE\": \"Editar\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Ir a la definición\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Decir algo...\",\n \"COLOUR_HUE_LABEL\": \"Color\",\n \"COLOUR_SATURATION_LABEL\": \"Saturación\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Brillo\",\n \"CHANGE_VALUE_TITLE\": \"Cambiar valor:\",\n \"RENAME_VARIABLE\": \"Renombrar variable\",\n \"RENAME_VARIABLE_TITLE\": \"Renombrar todas las variables \\\"%1\\\" a:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Renombrar variable\",\n \"NEW_VARIABLE\": \"Crear una variable\",\n \"NEW_VARIABLE_TITLE\": \"Nuevo nombre de variable:\",\n \"VARIABLE_MODAL_TITLE\": \"Variable nueva\",\n \"VARIABLE_ALREADY_EXISTS\": \"Ya existe una variable llamada \\\"%1\\\".\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Ya existe una variable llamada \\\"%1\\\" para otra variable de tipo \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"¿Eliminar %1 usos de la variable \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"No se puede eliminar la variable \\\"%1\\\" porque es parte de la definición de la función \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Eliminar la variable \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Crear un bloque\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Ya existe un procedimiento llamado \\\"%1\\\".\",\n \"PROCEDURE_DEFAULT_NAME\": \"nombre del bloque\",\n \"NEW_LIST\": \"Crear una lista\",\n \"NEW_LIST_TITLE\": \"Nombre para nueva lista:\",\n \"LIST_MODAL_TITLE\": \"Lista nueva\",\n \"LIST_ALREADY_EXISTS\": \"Ya existe una lista llamada \\\"%1\\\".\",\n \"RENAME_LIST_TITLE\": \"Renombrar todas las listas \\\"%1\\\" a:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Renombrar lista\",\n \"DEFAULT_LIST_ITEM\": \"cosa\",\n \"DELETE_LIST\": \"Eliminar la lista \\\"%1\\\"\",\n \"RENAME_LIST\": \"Renombrar lista\",\n \"NEW_BROADCAST_MESSAGE\": \"Nuevo mensaje\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Nombre para el nuevo mensaje:\",\n \"BROADCAST_MODAL_TITLE\": \"Nuevo Mensaje\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"mensaje1\"\n};\n\nBlockly.ScratchMsgs.locales[\"eu\"] =\n{\n \"CONTROL_FOREVER\": \"etengabe\",\n \"CONTROL_REPEAT\": \"errepikatu %1 aldiz\",\n \"CONTROL_IF\": \"baldin %1 orduan\",\n \"CONTROL_ELSE\": \"bestela\",\n \"CONTROL_STOP\": \"gelditu\",\n \"CONTROL_STOP_ALL\": \"dena\",\n \"CONTROL_STOP_THIS\": \"script hau\",\n \"CONTROL_STOP_OTHER\": \"pertsonaiaren beste script batzuk\",\n \"CONTROL_WAIT\": \"itxaron %1 segundo\",\n \"CONTROL_WAITUNTIL\": \"itxaron %1 arte \",\n \"CONTROL_REPEATUNTIL\": \"errepikatu %1 arte\",\n \"CONTROL_WHILE\": \"%1 den bitartean\",\n \"CONTROL_FOREACH\": \"%2 ko %1 bakoitzeko \",\n \"CONTROL_STARTASCLONE\": \"klon moduan hasten naizenean\",\n \"CONTROL_CREATECLONEOF\": \"sortu %1 ren klona\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"nire burua\",\n \"CONTROL_DELETETHISCLONE\": \"ezabatu klon hau \",\n \"CONTROL_COUNTER\": \"kontagailua\",\n \"CONTROL_INCRCOUNTER\": \"gehitu kontagailuan\",\n \"CONTROL_CLEARCOUNTER\": \"berrabiarazi kontagailua \",\n \"CONTROL_ALLATONCE\": \"denak batera\",\n \"DATA_SETVARIABLETO\": \"ezarri %1: %2 \",\n \"DATA_CHANGEVARIABLEBY\": \"aldatu %1 %2 unitate\",\n \"DATA_SHOWVARIABLE\": \"erakutsi %1 aldagaia \",\n \"DATA_HIDEVARIABLE\": \"ezkutatu %1 aldagaia\",\n \"DATA_ADDTOLIST\": \"batu %1 %2 ri\",\n \"DATA_DELETEOFLIST\": \"ezabatu %1 %2 tik\",\n \"DATA_DELETEALLOFLIST\": \"ezabatu %1-ko guztia\",\n \"DATA_INSERTATLIST\": \"txertatu %1 %3 -ren %2 -an\",\n \"DATA_REPLACEITEMOFLIST\": \"aldatu %2 -ko %1 elementua %3 -rekin \",\n \"DATA_ITEMOFLIST\": \"%2 tik %1. elementua\",\n \"DATA_ITEMNUMOFLIST\": \"%1 tik #. elementua %2 n\",\n \"DATA_LENGTHOFLIST\": \"%1 ren luzera\",\n \"DATA_LISTCONTAINSITEM\": \"%1 k bere baitan al du %2?\",\n \"DATA_SHOWLIST\": \"erakutsi %1 zerrenda\",\n \"DATA_HIDELIST\": \"ezkutatu %1 zerrenda\",\n \"DATA_INDEX_ALL\": \"dena\",\n \"DATA_INDEX_LAST\": \"azkena\",\n \"DATA_INDEX_RANDOM\": \"ausazkoa\",\n \"EVENT_WHENFLAGCLICKED\": \"%1 klik egitean\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"pertsonai honetan klik egitean\",\n \"EVENT_WHENSTAGECLICKED\": \"Eszenan klik egitean\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"pertsonai honek %1 ukitzen duenean\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"%1 jasotzean\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"atzeko oihala %1 ra aldatzen denean\",\n \"EVENT_WHENGREATERTHAN\": \"%1 > %2 bada\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"kronometroa\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"ozentasuna\",\n \"EVENT_BROADCAST\": \"bidali %1 guztiei\",\n \"EVENT_BROADCASTANDWAIT\": \"bidali %1 guztiei eta itxaron\",\n \"EVENT_WHENKEYPRESSED\": \"%1 tekla sakatzean\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"zuriunea\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"ezkerrera gezia\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"eskuinera gezia\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"behera gezia\",\n \"EVENT_WHENKEYPRESSED_UP\": \"gora gezia\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"edozein\",\n \"LOOKS_SAYFORSECS\": \"esan %1 %2 segundoz\",\n \"LOOKS_SAY\": \"esan %1\",\n \"LOOKS_HELLO\": \"Kaixo!\",\n \"LOOKS_THINKFORSECS\": \"pentsatu %1 %2 segundoz\",\n \"LOOKS_THINK\": \"pentsatu %1\",\n \"LOOKS_HMM\": \"Mmm...\",\n \"LOOKS_SHOW\": \"erakutsi\",\n \"LOOKS_HIDE\": \"ezkutatu\",\n \"LOOKS_HIDEALLSPRITES\": \"ezkutatu pertsonai guztiak \",\n \"LOOKS_EFFECT_COLOR\": \"kolorea\",\n \"LOOKS_EFFECT_FISHEYE\": \"arrain-begia\",\n \"LOOKS_EFFECT_WHIRL\": \"zurrunbiloa\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixelatu\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaikoa\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"distira\",\n \"LOOKS_EFFECT_GHOST\": \"mamua\",\n \"LOOKS_CHANGEEFFECTBY\": \"aldatu %1 efektua %2 unitate\",\n \"LOOKS_SETEFFECTTO\": \"ezarri %1 efektua %2 ri \",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"kendu efektu grafikoak \",\n \"LOOKS_CHANGESIZEBY\": \"aldatu tamaina %1 unitate\",\n \"LOOKS_SETSIZETO\": \"ezarri tamaina: % %1\",\n \"LOOKS_SIZE\": \"tamaina\",\n \"LOOKS_CHANGESTRETCHBY\": \"aldatu luzaketa %1 unitate\",\n \"LOOKS_SETSTRETCHTO\": \"ezarri luzera: % %1\",\n \"LOOKS_SWITCHCOSTUMETO\": \"aldatu tankera %1 ra \",\n \"LOOKS_NEXTCOSTUME\": \"hurrengo tankera\",\n \"LOOKS_SWITCHBACKDROPTO\": \"aldatu atzeko oihala %1 ra \",\n \"LOOKS_GOTOFRONTBACK\": \"joan %1 geruzara \",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"aurrealdeko\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"atzealdeko\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"joan %1 geruza %2\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"aurrealdera\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"atzealdera\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"%1 atzeko oihala\",\n \"LOOKS_COSTUMENUMBERNAME\": \"%1 tankera\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"zenbakia\",\n \"LOOKS_NUMBERNAME_NAME\": \"izena\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"aldatu atzeko oihala %1 ra eta itxaron\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"hurrengo atzeko oihala\",\n \"LOOKS_NEXTBACKDROP\": \"hurrengo atzeko oihala\",\n \"LOOKS_PREVIOUSBACKDROP\": \"aurreko atzeko oihala\",\n \"LOOKS_RANDOMBACKDROP\": \"ausazko atzeko oihala\",\n \"MOTION_MOVESTEPS\": \"mugitu %1 pausu \",\n \"MOTION_TURNLEFT\": \"biratu %1 %2 gradu\",\n \"MOTION_TURNRIGHT\": \"biratu %1 %2 gradu\",\n \"MOTION_POINTINDIRECTION\": \"apuntatu norabidea: %1\",\n \"MOTION_POINTTOWARDS\": \"jarri hona begira: %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"saguaren erakuslea\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"ausazko norabidea\",\n \"MOTION_GOTO\": \"joan hona %1\",\n \"MOTION_GOTO_POINTER\": \"saguaren erakuslea\",\n \"MOTION_GOTO_RANDOM\": \"ausazko kokapena\",\n \"MOTION_GOTOXY\": \"joan x: %1 y: %2 kokapenera \",\n \"MOTION_GLIDESECSTOXY\": \"Irristatu %1 segundotan hona x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"Irristatu %1 segundotan hona: %2\",\n \"MOTION_GLIDETO_POINTER\": \"saguaren erakuslea\",\n \"MOTION_GLIDETO_RANDOM\": \"ausazko kokapena\",\n \"MOTION_CHANGEXBY\": \"aldatu x %1 unitate\",\n \"MOTION_SETX\": \"ezarri x: %1\",\n \"MOTION_CHANGEYBY\": \"aldatu y %1 unitate\",\n \"MOTION_SETY\": \"ezarri y: %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"errebotatu ertza ukitzean \",\n \"MOTION_SETROTATIONSTYLE\": \"ezarri biraketa modua: %1 \",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"ezker-eskuin\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"ez biratu\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"norabide guztietara\",\n \"MOTION_XPOSITION\": \"x kokapena\",\n \"MOTION_YPOSITION\": \"y kokapena\",\n \"MOTION_DIRECTION\": \"norabidea\",\n \"MOTION_SCROLLRIGHT\": \"korritu eskuinera %1\",\n \"MOTION_SCROLLUP\": \"korritu gora %1\",\n \"MOTION_ALIGNSCENE\": \"lerrokatu %1 eszena\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"behean ezkerrean\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"behean eskuinean\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"erdian\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"goian ezkerrean\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"goian eskuinean\",\n \"MOTION_XSCROLL\": \"korritu x\",\n \"MOTION_YSCROLL\": \"korritu y\",\n \"MOTION_STAGE_SELECTED\": \"Hautatutako eszena: ez dago mugimendurako blokerik\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"%1 eta %2 arteko ausazko balioa\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 eta %2\",\n \"OPERATORS_OR\": \"%1 edo %2\",\n \"OPERATORS_NOT\": \"%1 ez\",\n \"OPERATORS_JOIN\": \"elkartu %1 %2 rekin\",\n \"OPERATORS_JOIN_APPLE\": \"sagarra\",\n \"OPERATORS_JOIN_BANANA\": \"banana\",\n \"OPERATORS_LETTEROF\": \"%1. letra %2 tik\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"%1 ren luzera\",\n \"OPERATORS_CONTAINS\": \"%1(e)k bere baitan al du %2?\",\n \"OPERATORS_MOD\": \"%1 modulu %2\",\n \"OPERATORS_ROUND\": \"biribildu %1\",\n \"OPERATORS_MATHOP\": \" %2 tik %1\",\n \"OPERATORS_MATHOP_ABS\": \"balio absolutu\",\n \"OPERATORS_MATHOP_FLOOR\": \"zoru-funtzioa\",\n \"OPERATORS_MATHOP_CEILING\": \"sabai-funtzioa\",\n \"OPERATORS_MATHOP_SQRT\": \"erro karratua\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"definitu %1\",\n \"SENSING_TOUCHINGOBJECT\": \"%1 ukitzen?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"saguaren erakuslea\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"ertza\",\n \"SENSING_TOUCHINGCOLOR\": \"%1 kolorea ukitzen?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"%1 koloreak %2 ukitzen du?\",\n \"SENSING_DISTANCETO\": \"%1 rako distantzia\",\n \"SENSING_DISTANCETO_POINTER\": \"saguaren erakuslea\",\n \"SENSING_ASKANDWAIT\": \"galdetu %1 eta itxaron\",\n \"SENSING_ASK_TEXT\": \"Nola duzu izena?\",\n \"SENSING_ANSWER\": \"erantzuna\",\n \"SENSING_KEYPRESSED\": \"%1 tekla sakatuta?\",\n \"SENSING_MOUSEDOWN\": \"sagua sakatuta?\",\n \"SENSING_MOUSEX\": \"saguaren x\",\n \"SENSING_MOUSEY\": \"saguaren y\",\n \"SENSING_SETDRAGMODE\": \"ezarri arrastea %1 moduan\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"arrastagarria\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"arrastaezina\",\n \"SENSING_LOUDNESS\": \"ozentasuna\",\n \"SENSING_LOUD\": \"ozen?\",\n \"SENSING_TIMER\": \"kronometroa\",\n \"SENSING_RESETTIMER\": \"berrabiarazi kronometroa\",\n \"SENSING_OF\": \"%2 tik %1\",\n \"SENSING_OF_XPOSITION\": \"x kokapena\",\n \"SENSING_OF_YPOSITION\": \"y kokapena\",\n \"SENSING_OF_DIRECTION\": \"norabidea\",\n \"SENSING_OF_COSTUMENUMBER\": \"# tankera\",\n \"SENSING_OF_COSTUMENAME\": \"tankeraren izena\",\n \"SENSING_OF_SIZE\": \"tamaina\",\n \"SENSING_OF_VOLUME\": \"bolumena\",\n \"SENSING_OF_BACKDROPNUMBER\": \"# atzeko oihala\",\n \"SENSING_OF_BACKDROPNAME\": \"atzeko oihalaren izena\",\n \"SENSING_OF_STAGE\": \"Eszena\",\n \"SENSING_CURRENT\": \"oraingo %1\",\n \"SENSING_CURRENT_YEAR\": \"urtea\",\n \"SENSING_CURRENT_MONTH\": \"hilabetea\",\n \"SENSING_CURRENT_DATE\": \"data\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"asteko eguna\",\n \"SENSING_CURRENT_HOUR\": \"ordua\",\n \"SENSING_CURRENT_MINUTE\": \"minutua\",\n \"SENSING_CURRENT_SECOND\": \"segundoa\",\n \"SENSING_DAYSSINCE2000\": \"2000tik geroztiko egunak\",\n \"SENSING_USERNAME\": \"erabiltzaile-izena\",\n \"SENSING_USERID\": \"erabiltzaile-id\",\n \"SOUND_PLAY\": \"hasi %1 soinua\",\n \"SOUND_PLAYUNTILDONE\": \"jo %1 soinua amaitu arte\",\n \"SOUND_STOPALLSOUNDS\": \"gelditu soinu guztiak\",\n \"SOUND_SETEFFECTO\": \"ezarri %1 efektua: %2\",\n \"SOUND_CHANGEEFFECTBY\": \"aldatu %1 efektua %2 unitate\",\n \"SOUND_CLEAREFFECTS\": \"kendu soinu-efektuak\",\n \"SOUND_EFFECTS_PITCH\": \"tonua\",\n \"SOUND_EFFECTS_PAN\": \"ezker/eskuin balantzea\",\n \"SOUND_CHANGEVOLUMEBY\": \"aldatu bolumena %1 unitate\",\n \"SOUND_SETVOLUMETO\": \"ezarri bolumena: %1%\",\n \"SOUND_VOLUME\": \"bolumena\",\n \"SOUND_RECORD\": \"grabatu...\",\n \"CATEGORY_MOTION\": \"Mugimendua\",\n \"CATEGORY_LOOKS\": \"Itxura\",\n \"CATEGORY_SOUND\": \"Soinua\",\n \"CATEGORY_EVENTS\": \"Gertaerak\",\n \"CATEGORY_CONTROL\": \"Kontrola\",\n \"CATEGORY_SENSING\": \"Sentsoreak\",\n \"CATEGORY_OPERATORS\": \"Eragileak\",\n \"CATEGORY_VARIABLES\": \"Aldagaiak\",\n \"CATEGORY_MYBLOCKS\": \"Nire blokeak\",\n \"DUPLICATE\": \"Bikoiztu\",\n \"DELETE\": \"Ezabatu\",\n \"ADD_COMMENT\": \"Gehitu iruzkina\",\n \"REMOVE_COMMENT\": \"Kendu iruzkina\",\n \"DELETE_BLOCK\": \"Ezabatu blokea\",\n \"DELETE_X_BLOCKS\": \"Ezabatu %1 bloke\",\n \"DELETE_ALL_BLOCKS\": \"Ezabatu %1 blokeak?\",\n \"CLEAN_UP\": \"Kendu blokeak\",\n \"HELP\": \"Laguntza\",\n \"UNDO\": \"Desegin\",\n \"REDO\": \"Berregin\",\n \"EDIT_PROCEDURE\": \"Editatu\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Joan definiziora\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Esan zerbait...\",\n \"COLOUR_HUE_LABEL\": \"Kolorea\",\n \"COLOUR_SATURATION_LABEL\": \"Asetasuna\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Distira\",\n \"CHANGE_VALUE_TITLE\": \"Aldatu balioa:\",\n \"RENAME_VARIABLE\": \"Aldatu izena aldagaiari\",\n \"RENAME_VARIABLE_TITLE\": \"Aldatu izenak \\\"%1\\\" aldagaiei honela:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Aldatu izena aldagaiari\",\n \"NEW_VARIABLE\": \"Sortu aldagai bat\",\n \"NEW_VARIABLE_TITLE\": \"Aldagai berriaren izena:\",\n \"VARIABLE_MODAL_TITLE\": \"Aldagai berria\",\n \"VARIABLE_ALREADY_EXISTS\": \"\\\"%1\\\" izeneko aldagaia badago lehendik.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"\\\"%2\\\" motako beste aldagai batek badu lehendik \\\"%1\\\" izena.\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Ezabatu \\\"%2\\\" aldagaiaren %1 erabilerak?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Ezin da \\\"%1\\\" aldagaia ezabatu \\\"%2\\\" funtzioaren definizioan parte hartzen duelako.\",\n \"DELETE_VARIABLE\": \"Ezabatu \\\"%1\\\" aldagaia\",\n \"NEW_PROCEDURE\": \"Sortu bloke bat\",\n \"PROCEDURE_ALREADY_EXISTS\": \"\\\"%1\\\" izeneko prozedura badago lehendik.\",\n \"PROCEDURE_DEFAULT_NAME\": \"blokearen izena\",\n \"NEW_LIST\": \"Sortu zerrenda bat\",\n \"NEW_LIST_TITLE\": \"Zerrenda berriaren izena:\",\n \"LIST_MODAL_TITLE\": \"Zerrenda berria\",\n \"LIST_ALREADY_EXISTS\": \"\\\"%1\\\" izeneko zerrenda badago lehendik.\",\n \"RENAME_LIST_TITLE\": \"Aldatu izenak \\\"%1\\\" zerrendei honela:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Aldatu izena zerrendari\",\n \"DEFAULT_LIST_ITEM\": \"gauza\",\n \"DELETE_LIST\": \"Ezabatu \\\"%1\\\" zerrenda\",\n \"RENAME_LIST\": \"Aldatu izena zerrendari\",\n \"NEW_BROADCAST_MESSAGE\": \"Mezu berria\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Mezu berriaren izena:\",\n \"BROADCAST_MODAL_TITLE\": \"Mezu berria\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"mezua1\"\n};\n\nBlockly.ScratchMsgs.locales[\"fa\"] =\n{\n \"CONTROL_FOREVER\": \"برای همیشه\",\n \"CONTROL_REPEAT\": \" %1 بار تکرار کن\",\n \"CONTROL_IF\": \"اگر %1 آن‌گاه\",\n \"CONTROL_ELSE\": \"وگرنه\",\n \"CONTROL_STOP\": \"توقف\",\n \"CONTROL_STOP_ALL\": \"همه\",\n \"CONTROL_STOP_THIS\": \"این دستور\",\n \"CONTROL_STOP_OTHER\": \"سایر دستور‌های این شکلک\",\n \"CONTROL_WAIT\": \"%1 ثانیه صبر کن\",\n \"CONTROL_WAITUNTIL\": \"صبر کن تا اینکه %1\",\n \"CONTROL_REPEATUNTIL\": \"تکرار کن تا اینکه %1\",\n \"CONTROL_WHILE\": \"هنگامی‌که %1 \",\n \"CONTROL_FOREACH\": \"برای هر %1 در %2\",\n \"CONTROL_STARTASCLONE\": \"وقتی‌که به‌عنوان یک مشابه شروع کردم\",\n \"CONTROL_CREATECLONEOF\": \"مشابه %1 را بساز\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"خودم\",\n \"CONTROL_DELETETHISCLONE\": \"این مشابه را حذف کن\",\n \"CONTROL_COUNTER\": \"شمارنده\",\n \"CONTROL_INCRCOUNTER\": \"افزایش شمارنده\",\n \"CONTROL_CLEARCOUNTER\": \"شمارنده را پاک کن\",\n \"CONTROL_ALLATONCE\": \"همه در یک‌بار \",\n \"DATA_SETVARIABLETO\": \"مقدار %1 را %2 قرار بده\",\n \"DATA_CHANGEVARIABLEBY\": \"%1 را به میزان %2 تغییر بده\",\n \"DATA_SHOWVARIABLE\": \"متغیر %1 را نشان بده\",\n \"DATA_HIDEVARIABLE\": \"متغیر %1 را پنهان کن\",\n \"DATA_ADDTOLIST\": \" %1 را به %2 اضافه کن\",\n \"DATA_DELETEOFLIST\": \"ردیف %1 را از %2 حذف کن\",\n \"DATA_DELETEALLOFLIST\": \"همه‌ی ردیف‌های %1 را حذف کن\",\n \"DATA_INSERTATLIST\": \"%1 را در ردیف %2 از %3 درج کن\",\n \"DATA_REPLACEITEMOFLIST\": \"ردیف %1 از %2 را با %3 جایگزین کن\",\n \"DATA_ITEMOFLIST\": \"ردیف %1 از %2\",\n \"DATA_ITEMNUMOFLIST\": \"# ردیف %1 در %2\",\n \"DATA_LENGTHOFLIST\": \"طول %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 شامل عنصر %2 است؟\",\n \"DATA_SHOWLIST\": \"لیست %1 را نمایش بده\",\n \"DATA_HIDELIST\": \"لیست %1 را پنهان کن\",\n \"DATA_INDEX_ALL\": \"همه\",\n \"DATA_INDEX_LAST\": \"آخرین\",\n \"DATA_INDEX_RANDOM\": \"تصادفی\",\n \"EVENT_WHENFLAGCLICKED\": \"وقتی‌که %1 کلیک شد\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"وقتی‌که این شکلک کلیک شد\",\n \"EVENT_WHENSTAGECLICKED\": \"وقتی‌که صحنه کلیک شد\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"وقتی‌که این شکلک %1 را لمس کرد\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"وقتی‌که %1 را دریافت کردم\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"وقتی‌که پس‌زمینه به %1 تغییر کرد\",\n \"EVENT_WHENGREATERTHAN\": \"وقتی‌که %1 > %2 شد\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"زمان سنج\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"بلندی صدا\",\n \"EVENT_BROADCAST\": \"%1 را منتشر کن\",\n \"EVENT_BROADCASTANDWAIT\": \"%1 را منتشر کن و صبر کن\",\n \"EVENT_WHENKEYPRESSED\": \"وقتی‌که کلید %1 فشرده شد\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"فاصله\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"جهت چپ\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"جهت راست\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"جهت پایین\",\n \"EVENT_WHENKEYPRESSED_UP\": \"جهت بالا\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"هر\",\n \"LOOKS_SAYFORSECS\": \"بگو %1 به مدت %2 ثانیه\",\n \"LOOKS_SAY\": \"بگو %1\",\n \"LOOKS_HELLO\": \"سلام\",\n \"LOOKS_THINKFORSECS\": \"فکر کن به %1 به مدت %2 ثانیه\",\n \"LOOKS_THINK\": \"فکر کن به %1\",\n \"LOOKS_HMM\": \"اوهومم\",\n \"LOOKS_SHOW\": \"ظاهر شو\",\n \"LOOKS_HIDE\": \"پنهان شو\",\n \"LOOKS_HIDEALLSPRITES\": \"همه‌ی شکلک‌ها را پنهان کن\",\n \"LOOKS_EFFECT_COLOR\": \"رنگ\",\n \"LOOKS_EFFECT_FISHEYE\": \"چشم ماهی\",\n \"LOOKS_EFFECT_WHIRL\": \"چرخش گردابی\",\n \"LOOKS_EFFECT_PIXELATE\": \"پیکسل بندی\",\n \"LOOKS_EFFECT_MOSAIC\": \"موزاييک بندی\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"روشنایی\",\n \"LOOKS_EFFECT_GHOST\": \"روح\",\n \"LOOKS_CHANGEEFFECTBY\": \"جلوه‌ی %1 را به میزان %2 تغییر بده\",\n \"LOOKS_SETEFFECTTO\": \"جلوه‌ی %1 را %2 قرار بده\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"جلوه‌های گرافیکی را پاک کن\",\n \"LOOKS_CHANGESIZEBY\": \"اندازه را به میزان %1 تغییر بده\",\n \"LOOKS_SETSIZETO\": \"اندازه را % %1 قرار بده\",\n \"LOOKS_SIZE\": \"اندازه\",\n \"LOOKS_CHANGESTRETCHBY\": \"کشیدگی را به میزان %1 تغییر بده\",\n \"LOOKS_SETSTRETCHTO\": \"کشیدگی را %1 % قرار بده\",\n \"LOOKS_SWITCHCOSTUMETO\": \"تعویض حالت به %1\",\n \"LOOKS_NEXTCOSTUME\": \"حالت بعدی\",\n \"LOOKS_SWITCHBACKDROPTO\": \"تعویض پس‌زمینه به %1\",\n \"LOOKS_GOTOFRONTBACK\": \"به لایه‌ی %1 برو\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"جلو\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"عقب\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"%2 لایه %1 برو\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"به جلو\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"به عقب\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"پس‌زمینه‌ی %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"حالت %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"شماره\",\n \"LOOKS_NUMBERNAME_NAME\": \"نام\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"پس‌زمینه را به %1 تغییر بده و صبر کن\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"پس‌زمینه‌ی بعدی\",\n \"LOOKS_NEXTBACKDROP\": \"پس‌زمینه‌ی بعدی\",\n \"LOOKS_PREVIOUSBACKDROP\": \"پس‌زمینه‌ی قبلی\",\n \"LOOKS_RANDOMBACKDROP\": \"پس‌زمینه‌ی تصادفی\",\n \"MOTION_MOVESTEPS\": \"%1 گام حرکت کن\",\n \"MOTION_TURNLEFT\": \"%2 درجه %1 بچرخ\",\n \"MOTION_TURNRIGHT\": \"%2 درجه %1 بچرخ\",\n \"MOTION_POINTINDIRECTION\": \"در جهت %1 قرار بگیر\",\n \"MOTION_POINTTOWARDS\": \"به سمت %1 قرار بگیر\",\n \"MOTION_POINTTOWARDS_POINTER\": \"اشاره گر ماوس\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"جهت تصافی\",\n \"MOTION_GOTO\": \"به %1 برو\",\n \"MOTION_GOTO_POINTER\": \"اشاره گر ماوس\",\n \"MOTION_GOTO_RANDOM\": \"مکان تصادفی\",\n \"MOTION_GOTOXY\": \"به x: %1 و y: %2 برو\",\n \"MOTION_GLIDESECSTOXY\": \"به x: %2 و y: %3 در مدت %1 ثانیه سر بخور\",\n \"MOTION_GLIDETO\": \"به %2 در مدت %1 ثانیه سر بخور\",\n \"MOTION_GLIDETO_POINTER\": \"اشاره گر ماوس\",\n \"MOTION_GLIDETO_RANDOM\": \"مکان تصادفی\",\n \"MOTION_CHANGEXBY\": \"x را به میزان %1 تغییر بده\",\n \"MOTION_SETX\": \"x را %1 قرار بده\",\n \"MOTION_CHANGEYBY\": \"y را به میزان %1 تغییر بده\",\n \"MOTION_SETY\": \"y را %1 قرار بده\",\n \"MOTION_IFONEDGEBOUNCE\": \"اگر روی لبه قرار گرفتی، برگرد\",\n \"MOTION_SETROTATIONSTYLE\": \"حالت چرخش را %1 قرار بده\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"چپ-راست\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"بدون چرخش\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"همه طرف\",\n \"MOTION_XPOSITION\": \"مکان x\",\n \"MOTION_YPOSITION\": \"مکان y\",\n \"MOTION_DIRECTION\": \"جهت\",\n \"MOTION_SCROLLRIGHT\": \"%1 به راست پیمایش کن\",\n \"MOTION_SCROLLUP\": \"%1 به بالا پیمایش کن\",\n \"MOTION_ALIGNSCENE\": \"تراز کردن صحنه %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"پایین - چپ\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"پایین - راست\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"وسط\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"بالا - چپ\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"بالا - راست\",\n \"MOTION_XSCROLL\": \"پیمایش x\",\n \"MOTION_YSCROLL\": \"پیمایش y\",\n \"MOTION_STAGE_SELECTED\": \"صحنه‌ انتخاب شده است: بدون قطعه‌های حرکت\",\n \"OPERATORS_ADD\": \"%2 + %1\",\n \"OPERATORS_SUBTRACT\": \"%2 - %1\",\n \"OPERATORS_MULTIPLY\": \"%2 * %1\",\n \"OPERATORS_DIVIDE\": \"%2 / %1\",\n \"OPERATORS_RANDOM\": \"انتخاب تصادفی از %1 تا %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 و %2\",\n \"OPERATORS_OR\": \"%1 یا %2\",\n \"OPERATORS_NOT\": \"%1 نباشد\",\n \"OPERATORS_JOIN\": \"چسباندن %1 به %2\",\n \"OPERATORS_JOIN_APPLE\": \"سیب\",\n \"OPERATORS_JOIN_BANANA\": \"موز\",\n \"OPERATORS_LETTEROF\": \"حرف %1 ام از %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"یک\",\n \"OPERATORS_LENGTH\": \"طول %1\",\n \"OPERATORS_CONTAINS\": \"%1 شامل %2 است؟\",\n \"OPERATORS_MOD\": \"باقیمانده‌ی تقسیم %1 به %2\",\n \"OPERATORS_ROUND\": \"%1 را گرد کن\",\n \"OPERATORS_MATHOP\": \"%1 از %2\",\n \"OPERATORS_MATHOP_ABS\": \"قدر مطلق\",\n \"OPERATORS_MATHOP_FLOOR\": \"کف\",\n \"OPERATORS_MATHOP_CEILING\": \"سقف\",\n \"OPERATORS_MATHOP_SQRT\": \"جذر\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"تعریف %1\",\n \"SENSING_TOUCHINGOBJECT\": \"%1 را لمس می‌کند؟\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"اشاره گر ماوس\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"لبه\",\n \"SENSING_TOUCHINGCOLOR\": \"رنگ %1 را لمس می‌کند؟\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"رنگ %1 ، %2 را لمس می‌کند؟\",\n \"SENSING_DISTANCETO\": \"فاصله تا %1\",\n \"SENSING_DISTANCETO_POINTER\": \"اشاره گر ماوس\",\n \"SENSING_ASKANDWAIT\": \"بپرس %1 و صبر کن\",\n \"SENSING_ASK_TEXT\": \"اسم شما چیه؟\",\n \"SENSING_ANSWER\": \"پاسخ\",\n \"SENSING_KEYPRESSED\": \"کلید %1 فشرده شده؟\",\n \"SENSING_MOUSEDOWN\": \"دکمه‌ی ماوس پایین نگه داشته شده؟\",\n \"SENSING_MOUSEX\": \"مکان x ماوس\",\n \"SENSING_MOUSEY\": \"مکان y ماوس\",\n \"SENSING_SETDRAGMODE\": \"امکان کشیده شدن را در حالت %1 قرار بده\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"قابل کشیدن\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"غیر قابل کشیدن\",\n \"SENSING_LOUDNESS\": \"بلندی صدا\",\n \"SENSING_LOUD\": \"صدا بلند است؟\",\n \"SENSING_TIMER\": \"زمان سنج\",\n \"SENSING_RESETTIMER\": \"تنظیم مجدد زمان سنج\",\n \"SENSING_OF\": \"%1 از %2\",\n \"SENSING_OF_XPOSITION\": \"مکان x\",\n \"SENSING_OF_YPOSITION\": \"مکان y\",\n \"SENSING_OF_DIRECTION\": \"جهت\",\n \"SENSING_OF_COSTUMENUMBER\": \"حالت #\",\n \"SENSING_OF_COSTUMENAME\": \"نام حالت\",\n \"SENSING_OF_SIZE\": \"اندازه\",\n \"SENSING_OF_VOLUME\": \"درجه‌ی صدا\",\n \"SENSING_OF_BACKDROPNUMBER\": \"پس‌زمینه #\",\n \"SENSING_OF_BACKDROPNAME\": \"نام پس‌زمینه\",\n \"SENSING_OF_STAGE\": \"صحنه\",\n \"SENSING_CURRENT\": \"%1 فعلی\",\n \"SENSING_CURRENT_YEAR\": \"سال\",\n \"SENSING_CURRENT_MONTH\": \"ماه\",\n \"SENSING_CURRENT_DATE\": \"تاریخ\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"روز هفته\",\n \"SENSING_CURRENT_HOUR\": \"ساعت\",\n \"SENSING_CURRENT_MINUTE\": \"دقیقه\",\n \"SENSING_CURRENT_SECOND\": \"ثانیه\",\n \"SENSING_DAYSSINCE2000\": \"تعداد روز‌ها از سال ۲۰۰۰ میلادی\",\n \"SENSING_USERNAME\": \"نام کاربری\",\n \"SENSING_USERID\": \"شناسه‌ی کاربر\",\n \"SOUND_PLAY\": \"شروع صدای %1\",\n \"SOUND_PLAYUNTILDONE\": \"پخش صدای %1 تا وقتی که تمام شود\",\n \"SOUND_STOPALLSOUNDS\": \"همه‌ی صدا‌ها را متوقف کن\",\n \"SOUND_SETEFFECTO\": \"جلوه‌ی %1 را %2 قرار بده\",\n \"SOUND_CHANGEEFFECTBY\": \"جلوه‌ی %1 را به میزان %2 تغییر بده\",\n \"SOUND_CLEAREFFECTS\": \"جلوه‌های صدا را پاک کن\",\n \"SOUND_EFFECTS_PITCH\": \"گام \",\n \"SOUND_EFFECTS_PAN\": \"قاب چپ/راست\",\n \"SOUND_CHANGEVOLUMEBY\": \"درجه‌ی صدا را به میزان %1 تغییر بده\",\n \"SOUND_SETVOLUMETO\": \"درجه‌ی صدا را %1% قرار بده\",\n \"SOUND_VOLUME\": \"درجه‌ی صدا\",\n \"SOUND_RECORD\": \"ضبط کردن...\",\n \"CATEGORY_MOTION\": \"حرکت\",\n \"CATEGORY_LOOKS\": \"ظاهر‌\",\n \"CATEGORY_SOUND\": \"صدا\",\n \"CATEGORY_EVENTS\": \"رویدادها\",\n \"CATEGORY_CONTROL\": \"کنترل\",\n \"CATEGORY_SENSING\": \"حس کردن\",\n \"CATEGORY_OPERATORS\": \"عملگرها\",\n \"CATEGORY_VARIABLES\": \"متغیرها\",\n \"CATEGORY_MYBLOCKS\": \"قطعه‌های من\",\n \"DUPLICATE\": \"تکثیر کردن\",\n \"DELETE\": \"حذف\",\n \"ADD_COMMENT\": \"افزودن توضیح\",\n \"REMOVE_COMMENT\": \"حذف توضیح\",\n \"DELETE_BLOCK\": \"حذف قطعه\",\n \"DELETE_X_BLOCKS\": \"حذف هر %1 قطعه‌\",\n \"DELETE_ALL_BLOCKS\": \"همه‌ی %1 قطعه حذف شوند؟\",\n \"CLEAN_UP\": \"مرتب کردن قطعه‌ها\",\n \"HELP\": \"راهنما\",\n \"UNDO\": \"لغو کردن\",\n \"REDO\": \"دوباره انجام دادن\",\n \"EDIT_PROCEDURE\": \"ویرایش\",\n \"SHOW_PROCEDURE_DEFINITION\": \"به محل تعریف شده برو\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"چیزی بگو...\",\n \"COLOUR_HUE_LABEL\": \"رنگ\",\n \"COLOUR_SATURATION_LABEL\": \"خلوص رنگ\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"روشنایی\",\n \"CHANGE_VALUE_TITLE\": \"تغییر مقدار:\",\n \"RENAME_VARIABLE\": \"تغییر نام متغیر\",\n \"RENAME_VARIABLE_TITLE\": \"تغییر نام همه‌‌‌ی متغیر‌های \\\"%1\\\" به:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"تغییر نام متغیر\",\n \"NEW_VARIABLE\": \"ایجاد یک متغیر\",\n \"NEW_VARIABLE_TITLE\": \"نام متغیر جدید:\",\n \"VARIABLE_MODAL_TITLE\": \"متغیر جدید\",\n \"VARIABLE_ALREADY_EXISTS\": \"متغیری با نام \\\"%1\\\" هم‌اکنون وجود دارد.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"هم‌اکنون نام \\\"%1\\\" برای متغیر دیگری از نوع %2 وجود دارد\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"ِآیا هر %1 موردی که از متغیر \\\"%2\\\" استفاده شده است، حذف شود؟\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"امکان حذف متغیر \\\"%1\\\" نیست. زیرا جزئی از تعریف تابع \\\"%2\\\" است\",\n \"DELETE_VARIABLE\": \"حذف متغیر \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"ایجاد یک قطعه\",\n \"PROCEDURE_ALREADY_EXISTS\": \"هم اکنون روالی به اسم \\\"%1\\\" وجود دارد.\",\n \"PROCEDURE_DEFAULT_NAME\": \"نام قطعه\",\n \"NEW_LIST\": \"ایجاد لیست\",\n \"NEW_LIST_TITLE\": \"نام لیست جدید:\",\n \"LIST_MODAL_TITLE\": \"لیست جدید\",\n \"LIST_ALREADY_EXISTS\": \"هم اکنون لیستی به نام \\\"%1\\\" وجود دارد.\",\n \"RENAME_LIST_TITLE\": \"تغییر نام همه‌ی لیست‌های \\\"%1\\\" به:\",\n \"RENAME_LIST_MODAL_TITLE\": \"تغییر نام لیست\",\n \"DEFAULT_LIST_ITEM\": \"چیز\",\n \"DELETE_LIST\": \"حذف لیست «%1»\",\n \"RENAME_LIST\": \"تغییر نام لیست\",\n \"NEW_BROADCAST_MESSAGE\": \"پیام جدید\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"نام پیام جدید:\",\n \"BROADCAST_MODAL_TITLE\": \"پیام جدید\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"پیام ۱\"\n};\n\nBlockly.ScratchMsgs.locales[\"fr\"] =\n{\n \"CONTROL_FOREVER\": \"répéter indéfiniment\",\n \"CONTROL_REPEAT\": \"répéter %1 fois\",\n \"CONTROL_IF\": \"si %1 alors\",\n \"CONTROL_ELSE\": \"sinon\",\n \"CONTROL_STOP\": \"stop\",\n \"CONTROL_STOP_ALL\": \"tout\",\n \"CONTROL_STOP_THIS\": \"ce script\",\n \"CONTROL_STOP_OTHER\": \"autres scripts dans sprite\",\n \"CONTROL_WAIT\": \"attendre %1 secondes\",\n \"CONTROL_WAITUNTIL\": \"attendre jusqu'à ce que %1\",\n \"CONTROL_REPEATUNTIL\": \"répéter jusqu'à ce que %1\",\n \"CONTROL_WHILE\": \"tant que %1\",\n \"CONTROL_FOREACH\": \"pour chaque %1 dans %2\",\n \"CONTROL_STARTASCLONE\": \"quand je commence comme un clone\",\n \"CONTROL_CREATECLONEOF\": \"créer un clone de %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"moi-même\",\n \"CONTROL_DELETETHISCLONE\": \"supprimer ce clone\",\n \"CONTROL_COUNTER\": \"compteur\",\n \"CONTROL_INCRCOUNTER\": \"incrémenter le compteur\",\n \"CONTROL_CLEARCOUNTER\": \"effacer le compteur\",\n \"CONTROL_ALLATONCE\": \"tous en même temps\",\n \"DATA_SETVARIABLETO\": \"mettre %1 à %2\",\n \"DATA_CHANGEVARIABLEBY\": \"ajouter %2 à %1\",\n \"DATA_SHOWVARIABLE\": \"montrer la variable %1\",\n \"DATA_HIDEVARIABLE\": \"cacher la variable %1\",\n \"DATA_ADDTOLIST\": \"ajouter %1 à %2\",\n \"DATA_DELETEOFLIST\": \"supprimer l'élément %1 de %2\",\n \"DATA_DELETEALLOFLIST\": \"supprimer tous les éléments de la liste %1\",\n \"DATA_INSERTATLIST\": \"insérer %1 en position %2 de %3\",\n \"DATA_REPLACEITEMOFLIST\": \"remplacer l'élément %1 de la liste %2 par %3\",\n \"DATA_ITEMOFLIST\": \"élément %1 de %2\",\n \"DATA_ITEMNUMOFLIST\": \"élément no %1 dans %2\",\n \"DATA_LENGTHOFLIST\": \"longueur de %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 contient %2 ?\",\n \"DATA_SHOWLIST\": \"montrer la liste %1\",\n \"DATA_HIDELIST\": \"cacher la liste %1\",\n \"DATA_INDEX_ALL\": \"tout\",\n \"DATA_INDEX_LAST\": \"dernier\",\n \"DATA_INDEX_RANDOM\": \"au hasard\",\n \"EVENT_WHENFLAGCLICKED\": \"quand %1 est cliqué\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"quand ce sprite est cliqué\",\n \"EVENT_WHENSTAGECLICKED\": \"quand la scène est cliquée\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"quand ce sprite touche %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"quand je reçois %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"quand l'arrière-plan bascule sur %1\",\n \"EVENT_WHENGREATERTHAN\": \"quand le %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"chronomètre\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"volume sonore\",\n \"EVENT_BROADCAST\": \"envoyer à tous %1\",\n \"EVENT_BROADCASTANDWAIT\": \"envoyer à tous %1 et attendre\",\n \"EVENT_WHENKEYPRESSED\": \"quand la touche %1 est pressée\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"espace\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"flèche gauche\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"flèche droite\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"flèche bas\",\n \"EVENT_WHENKEYPRESSED_UP\": \"flèche haut\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"n'importe laquelle\",\n \"LOOKS_SAYFORSECS\": \"dire %1 pendant %2 secondes\",\n \"LOOKS_SAY\": \"dire %1\",\n \"LOOKS_HELLO\": \"Bonjour!\",\n \"LOOKS_THINKFORSECS\": \"penser à %1 pendant %2 secondes\",\n \"LOOKS_THINK\": \"penser à %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"montrer\",\n \"LOOKS_HIDE\": \"cacher\",\n \"LOOKS_HIDEALLSPRITES\": \"cacher tous les sprites\",\n \"LOOKS_EFFECT_COLOR\": \"couleur\",\n \"LOOKS_EFFECT_FISHEYE\": \"œil de poisson\",\n \"LOOKS_EFFECT_WHIRL\": \"tournoyer\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixeliser\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaïque\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"luminosité\",\n \"LOOKS_EFFECT_GHOST\": \"fantôme\",\n \"LOOKS_CHANGEEFFECTBY\": \"ajouter %2 à l'effet %1\",\n \"LOOKS_SETEFFECTTO\": \"mettre l'effet %1 à %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"annuler les effets graphiques\",\n \"LOOKS_CHANGESIZEBY\": \"ajouter %1 à la taille\",\n \"LOOKS_SETSIZETO\": \"mettre la taille à %1 % de la taille initiale\",\n \"LOOKS_SIZE\": \"taille\",\n \"LOOKS_CHANGESTRETCHBY\": \"ajouter %1 à l'étirement\",\n \"LOOKS_SETSTRETCHTO\": \"mettre l'étirement à %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"basculer sur le costume %1\",\n \"LOOKS_NEXTCOSTUME\": \"costume suivant\",\n \"LOOKS_SWITCHBACKDROPTO\": \"basculer sur l'arrière-plan %1\",\n \"LOOKS_GOTOFRONTBACK\": \"aller à l'%1 plan\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"avant\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"arrière\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"déplacer de %2 plans vers l'%1\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"avant\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"arrière\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"%1 de l'arrière-plan\",\n \"LOOKS_COSTUMENUMBERNAME\": \"%1 du costume\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"numéro\",\n \"LOOKS_NUMBERNAME_NAME\": \"nom\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"basculer sur l'arrière-plan %1 et attendre\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"arrière-plan suivant\",\n \"LOOKS_NEXTBACKDROP\": \"arrière-plan suivant\",\n \"LOOKS_PREVIOUSBACKDROP\": \"arrière-plan précédent\",\n \"LOOKS_RANDOMBACKDROP\": \"arrière-plan aléatoire\",\n \"MOTION_MOVESTEPS\": \"avancer de %1 pas\",\n \"MOTION_TURNLEFT\": \"tourner %1 de %2 degrés\",\n \"MOTION_TURNRIGHT\": \"tourner %1 de %2 degrés\",\n \"MOTION_POINTINDIRECTION\": \"s'orienter à %1\",\n \"MOTION_POINTTOWARDS\": \"s'orienter vers %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"pointeur de souris\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"direction aléatoire\",\n \"MOTION_GOTO\": \"aller à %1\",\n \"MOTION_GOTO_POINTER\": \"pointeur de souris\",\n \"MOTION_GOTO_RANDOM\": \"position aléatoire\",\n \"MOTION_GOTOXY\": \"aller à x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"glisser en %1 secondes à x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"glisser en %1 secondes à %2\",\n \"MOTION_GLIDETO_POINTER\": \"pointeur de souris\",\n \"MOTION_GLIDETO_RANDOM\": \"position aléatoire\",\n \"MOTION_CHANGEXBY\": \"ajouter %1 à x\",\n \"MOTION_SETX\": \"mettre x à %1\",\n \"MOTION_CHANGEYBY\": \"ajouter %1 à y\",\n \"MOTION_SETY\": \"mettre y à %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"rebondir si le bord est atteint\",\n \"MOTION_SETROTATIONSTYLE\": \"fixer le sens de rotation %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"gauche-droite\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"ne tourne pas\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"à 360°\",\n \"MOTION_XPOSITION\": \"abscisse x\",\n \"MOTION_YPOSITION\": \"ordonnée y\",\n \"MOTION_DIRECTION\": \"direction\",\n \"MOTION_SCROLLRIGHT\": \"défiler à droite de %1\",\n \"MOTION_SCROLLUP\": \"défiler en haut de %1\",\n \"MOTION_ALIGNSCENE\": \"aligner la scène %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"bas-gauche\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"bas-droite\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"milieu\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"haut-gauche\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"haut-droite\",\n \"MOTION_XSCROLL\": \"défilement x\",\n \"MOTION_YSCROLL\": \"défilement y\",\n \"MOTION_STAGE_SELECTED\": \"Scène sélectionnée: pas de blocs de mouvement\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"nombre aléatoire entre %1 et %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 et %2\",\n \"OPERATORS_OR\": \"%1 ou %2\",\n \"OPERATORS_NOT\": \"non %1\",\n \"OPERATORS_JOIN\": \"regrouper %1 et %2\",\n \"OPERATORS_JOIN_APPLE\": \"pomme\",\n \"OPERATORS_JOIN_BANANA\": \"banane\",\n \"OPERATORS_LETTEROF\": \"lettre %1 de %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"p\",\n \"OPERATORS_LENGTH\": \"longueur de %1\",\n \"OPERATORS_CONTAINS\": \"%1 contient %2 ?\",\n \"OPERATORS_MOD\": \"%1 modulo %2\",\n \"OPERATORS_ROUND\": \"arrondi de %1\",\n \"OPERATORS_MATHOP\": \"%1 de %2\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"plancher\",\n \"OPERATORS_MATHOP_CEILING\": \"plafond\",\n \"OPERATORS_MATHOP_SQRT\": \"racine\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e^\",\n \"OPERATORS_MATHOP_10EXP\": \"10^\",\n \"PROCEDURES_DEFINITION\": \"définir %1\",\n \"SENSING_TOUCHINGOBJECT\": \"touche le %1 ?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"pointeur de souris\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"bord\",\n \"SENSING_TOUCHINGCOLOR\": \"couleur %1 touchée ?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"couleur %1 touche %2 ?\",\n \"SENSING_DISTANCETO\": \"distance de %1\",\n \"SENSING_DISTANCETO_POINTER\": \"pointeur de souris\",\n \"SENSING_ASKANDWAIT\": \"demander %1 et attendre\",\n \"SENSING_ASK_TEXT\": \"Quel est ton nom?\",\n \"SENSING_ANSWER\": \"réponse\",\n \"SENSING_KEYPRESSED\": \"touche %1 pressée ?\",\n \"SENSING_MOUSEDOWN\": \"souris pressée ?\",\n \"SENSING_MOUSEX\": \"souris x\",\n \"SENSING_MOUSEY\": \"souris y\",\n \"SENSING_SETDRAGMODE\": \"mettre mode de glissement à %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"glissable\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"non glissable\",\n \"SENSING_LOUDNESS\": \"volume sonore\",\n \"SENSING_LOUD\": \"fort ?\",\n \"SENSING_TIMER\": \"chronomètre\",\n \"SENSING_RESETTIMER\": \"réinitialiser le chronomètre\",\n \"SENSING_OF\": \"%1 de %2\",\n \"SENSING_OF_XPOSITION\": \"abscisse x\",\n \"SENSING_OF_YPOSITION\": \"ordonnée y\",\n \"SENSING_OF_DIRECTION\": \"direction\",\n \"SENSING_OF_COSTUMENUMBER\": \"numéro de costume\",\n \"SENSING_OF_COSTUMENAME\": \"nom du costume\",\n \"SENSING_OF_SIZE\": \"taille\",\n \"SENSING_OF_VOLUME\": \"volume\",\n \"SENSING_OF_BACKDROPNUMBER\": \"numéro de l'arrière-plan\",\n \"SENSING_OF_BACKDROPNAME\": \"nom de l'arrière-plan\",\n \"SENSING_OF_STAGE\": \"la scène\",\n \"SENSING_CURRENT\": \"%1 actuelle\",\n \"SENSING_CURRENT_YEAR\": \"année\",\n \"SENSING_CURRENT_MONTH\": \"mois\",\n \"SENSING_CURRENT_DATE\": \"date\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"jour de la semaine\",\n \"SENSING_CURRENT_HOUR\": \"heure\",\n \"SENSING_CURRENT_MINUTE\": \"minute\",\n \"SENSING_CURRENT_SECOND\": \"seconde\",\n \"SENSING_DAYSSINCE2000\": \"jours depuis 2000\",\n \"SENSING_USERNAME\": \"nom d'utilisateur\",\n \"SENSING_USERID\": \"id de l'utilisateur\",\n \"SOUND_PLAY\": \"jouer le son %1\",\n \"SOUND_PLAYUNTILDONE\": \"jouer le son %1 jusqu'au bout\",\n \"SOUND_STOPALLSOUNDS\": \"arrêter tous les sons\",\n \"SOUND_SETEFFECTO\": \"mettre l'effet %1 à %2\",\n \"SOUND_CHANGEEFFECTBY\": \"ajouter %2 à l'effet %1\",\n \"SOUND_CLEAREFFECTS\": \"annuler tous les effets sonores\",\n \"SOUND_EFFECTS_PITCH\": \"hauteur\",\n \"SOUND_EFFECTS_PAN\": \"stéréo gauche/droite\",\n \"SOUND_CHANGEVOLUMEBY\": \"ajouter %1 au volume\",\n \"SOUND_SETVOLUMETO\": \"mettre le volume à %1%\",\n \"SOUND_VOLUME\": \"volume\",\n \"SOUND_RECORD\": \"enregistrer...\",\n \"CATEGORY_MOTION\": \"Mouvement\",\n \"CATEGORY_LOOKS\": \"Apparence\",\n \"CATEGORY_SOUND\": \"Son\",\n \"CATEGORY_EVENTS\": \"Événements\",\n \"CATEGORY_CONTROL\": \"Contrôle\",\n \"CATEGORY_SENSING\": \"Capteurs\",\n \"CATEGORY_OPERATORS\": \"Opérateurs\",\n \"CATEGORY_VARIABLES\": \"Variables\",\n \"CATEGORY_MYBLOCKS\": \"Mes Blocs\",\n \"DUPLICATE\": \"Dupliquer\",\n \"DELETE\": \"Supprimer\",\n \"ADD_COMMENT\": \"Ajouter un commentaire\",\n \"REMOVE_COMMENT\": \"Retirer le commentaire\",\n \"DELETE_BLOCK\": \"Supprimer le bloc\",\n \"DELETE_X_BLOCKS\": \"Supprimer %1 blocs\",\n \"DELETE_ALL_BLOCKS\": \"Supprimer tous les %1 blocs ?\",\n \"CLEAN_UP\": \"Nettoyer les blocs\",\n \"HELP\": \"Aide\",\n \"UNDO\": \"Restaurer\",\n \"REDO\": \"Refaire\",\n \"EDIT_PROCEDURE\": \"Modifier\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Aller à la définition\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Dire quelque chose...\",\n \"COLOUR_HUE_LABEL\": \"Couleur\",\n \"COLOUR_SATURATION_LABEL\": \"Saturation\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Luminosité\",\n \"CHANGE_VALUE_TITLE\": \"Changer la valeur:\",\n \"RENAME_VARIABLE\": \"Renommer la variable\",\n \"RENAME_VARIABLE_TITLE\": \"Renommer toutes les variables \\\"%1\\\" en:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Renommer la variable\",\n \"NEW_VARIABLE\": \"Créer une variable\",\n \"NEW_VARIABLE_TITLE\": \"Nouveau nom de la variable\",\n \"VARIABLE_MODAL_TITLE\": \"Nouvelle variable\",\n \"VARIABLE_ALREADY_EXISTS\": \"Une variable nommé \\\"%1\\\" existe déjà.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Une variable nommée \\\"%1\\\" existe déjà pour une autre variable de type \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Supprimer %1 utilisations de la variable \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Impossible de supprimer la variable \\\"%1\\\" car elle fait partie de la définition de la fonction \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Supprimer la variable \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Créer un bloc\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Une procédure nommée \\\"%1\\\" existe déjà.\",\n \"PROCEDURE_DEFAULT_NAME\": \"nom du bloc\",\n \"NEW_LIST\": \"Créer une liste\",\n \"NEW_LIST_TITLE\": \"Nom de la nouvelle liste:\",\n \"LIST_MODAL_TITLE\": \"Nouvelle liste\",\n \"LIST_ALREADY_EXISTS\": \"Une liste nommée \\\"%1\\\" existe déjà.\",\n \"RENAME_LIST_TITLE\": \"Renommer toutes les listes \\\"%1\\\" en:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Renommer la liste\",\n \"DEFAULT_LIST_ITEM\": \"chose\",\n \"DELETE_LIST\": \"Supprimer la liste \\\"%1\\\"\",\n \"RENAME_LIST\": \"Renommer la liste\",\n \"NEW_BROADCAST_MESSAGE\": \"Nouveau message\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Nom du nouveau message:\",\n \"BROADCAST_MODAL_TITLE\": \"Nouveau message\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"message1\"\n};\n\nBlockly.ScratchMsgs.locales[\"ga\"] =\n{\n \"CONTROL_FOREVER\": \"go deo\",\n \"CONTROL_REPEAT\": \"déan %1 uair\",\n \"CONTROL_IF\": \"más %1 ansin\",\n \"CONTROL_ELSE\": \"seachas sin\",\n \"CONTROL_STOP\": \"stop\",\n \"CONTROL_STOP_ALL\": \"uile\",\n \"CONTROL_STOP_THIS\": \"an script seo\",\n \"CONTROL_STOP_OTHER\": \"scripteanna eile sa sprid\",\n \"CONTROL_WAIT\": \"fan %1 soicind\",\n \"CONTROL_WAITUNTIL\": \"fan go %1\",\n \"CONTROL_REPEATUNTIL\": \"athdhéan go %1\",\n \"CONTROL_WHILE\": \"chomh fada is %1\",\n \"CONTROL_FOREACH\": \"do gach %1 i %2\",\n \"CONTROL_STARTASCLONE\": \"nuair a thosaím mar chóip\",\n \"CONTROL_CREATECLONEOF\": \"cruthaigh cóip de %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"mise féin\",\n \"CONTROL_DELETETHISCLONE\": \"scrios an chóip seo\",\n \"CONTROL_COUNTER\": \"áiritheoir\",\n \"CONTROL_INCRCOUNTER\": \"incrimintigh an t-áiritheoir\",\n \"CONTROL_CLEARCOUNTER\": \"glan an t-áiritheoir\",\n \"CONTROL_ALLATONCE\": \"d'aon iarraidh\",\n \"DATA_SETVARIABLETO\": \"socraigh %1: %2\",\n \"DATA_CHANGEVARIABLEBY\": \"athraigh %1 de %2\",\n \"DATA_SHOWVARIABLE\": \"taispeáin athróg %1\",\n \"DATA_HIDEVARIABLE\": \"folaigh athróg %1\",\n \"DATA_ADDTOLIST\": \"cuir %1 le %2\",\n \"DATA_DELETEOFLIST\": \"scrios %1 as %2\",\n \"DATA_DELETEALLOFLIST\": \"scrios na %1 rud go léir\",\n \"DATA_INSERTATLIST\": \"ionsáigh %1 ag %2 i %3\",\n \"DATA_REPLACEITEMOFLIST\": \"cuir %3 in áit mír %1 i %2\",\n \"DATA_ITEMOFLIST\": \"mír %1 as %2\",\n \"DATA_ITEMNUMOFLIST\": \"mír # as %1 in %2\",\n \"DATA_LENGTHOFLIST\": \"fad %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 agus %2 ann?\",\n \"DATA_SHOWLIST\": \"taispeáin liosta %1\",\n \"DATA_HIDELIST\": \"folaigh liosta %1\",\n \"DATA_INDEX_ALL\": \"uile\",\n \"DATA_INDEX_LAST\": \"deireanach\",\n \"DATA_INDEX_RANDOM\": \"randamach\",\n \"EVENT_WHENFLAGCLICKED\": \"nuair a chliceáiltear %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"nuair a chliceáiltear an sprid seo\",\n \"EVENT_WHENSTAGECLICKED\": \"nuair a chliceáiltear an stáitse\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"nuair a theagmhaíonn an sprid seo le %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"nuair a fhaighim %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"nuair a chuirtear %1 suas\",\n \"EVENT_WHENGREATERTHAN\": \"nuair atá %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"amadóir\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"treise\",\n \"EVENT_BROADCAST\": \"craol %1\",\n \"EVENT_BROADCASTANDWAIT\": \"craol %1 agus fan\",\n \"EVENT_WHENKEYPRESSED\": \"nuair a bhrúitear eochair %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"spás\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"saighead chlé\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"saighead dheas\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"saighead síos\",\n \"EVENT_WHENKEYPRESSED_UP\": \"saighead suas\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"ceann ar bith\",\n \"LOOKS_SAYFORSECS\": \"abair %1 ar feadh %2 soicind\",\n \"LOOKS_SAY\": \"abair %1\",\n \"LOOKS_HELLO\": \"Dia dhuit!\",\n \"LOOKS_THINKFORSECS\": \"smaoinigh %1 ar feadh %2 soicind\",\n \"LOOKS_THINK\": \"smaoinigh %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"taispeáin\",\n \"LOOKS_HIDE\": \"folaigh\",\n \"LOOKS_HIDEALLSPRITES\": \"folaigh gach sprid\",\n \"LOOKS_EFFECT_COLOR\": \"dath\",\n \"LOOKS_EFFECT_FISHEYE\": \"súil an éisc\",\n \"LOOKS_EFFECT_WHIRL\": \"rothlú\",\n \"LOOKS_EFFECT_PIXELATE\": \"picteilíniú\",\n \"LOOKS_EFFECT_MOSAIC\": \"mósáic\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"gile\",\n \"LOOKS_EFFECT_GHOST\": \"taibhse\",\n \"LOOKS_CHANGEEFFECTBY\": \"athraigh maisíocht %1 de %2\",\n \"LOOKS_SETEFFECTTO\": \"socraigh maisíocht %1: %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"glan na maisíochtaí grafaice\",\n \"LOOKS_CHANGESIZEBY\": \"athraigh an mhéid de %1\",\n \"LOOKS_SETSIZETO\": \"socraigh an mhéid: %1 %\",\n \"LOOKS_SIZE\": \"méid\",\n \"LOOKS_CHANGESTRETCHBY\": \"athraigh an síneadh de %1\",\n \"LOOKS_SETSTRETCHTO\": \"socraigh an síneadh: %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"athraigh an chulaith go %1\",\n \"LOOKS_NEXTCOSTUME\": \"an chéad chulaith eile\",\n \"LOOKS_SWITCHBACKDROPTO\": \"athraigh an cúlra go %1\",\n \"LOOKS_GOTOFRONTBACK\": \"téigh go dtí an tsraith %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"thosaigh\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"dheiridh\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"téigh %1 %2 sraith\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"ar aghaidh\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"ar gcúl\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"cúlra %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"culaith %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"uimhir\",\n \"LOOKS_NUMBERNAME_NAME\": \"ainm\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"athraigh an cúlra go %1 agus fan\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"an chéad chúlra eile\",\n \"LOOKS_NEXTBACKDROP\": \"an chéad chúlra eile\",\n \"LOOKS_PREVIOUSBACKDROP\": \"cúlra roimhe seo\",\n \"LOOKS_RANDOMBACKDROP\": \"cúlra randamach\",\n \"MOTION_MOVESTEPS\": \"bog %1 coiscéim\",\n \"MOTION_TURNLEFT\": \"rothlaigh %1 %2 céim\",\n \"MOTION_TURNRIGHT\": \"rothlaigh %1 %2 céim\",\n \"MOTION_POINTINDIRECTION\": \"tabhair aghaidh ar %1\",\n \"MOTION_POINTTOWARDS\": \"tabhair aghaidh i dtreo %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"pointeoir-luiche\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"treo randamach\",\n \"MOTION_GOTO\": \"téigh go %1\",\n \"MOTION_GOTO_POINTER\": \"pointeoir-luiche\",\n \"MOTION_GOTO_RANDOM\": \"ionad randamach\",\n \"MOTION_GOTOXY\": \"téigh go x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"sleamhnaigh %1 soicind go x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"sleamhnaigh %1 soicind go %2\",\n \"MOTION_GLIDETO_POINTER\": \"pointeoir-luiche\",\n \"MOTION_GLIDETO_RANDOM\": \"ionad randamach\",\n \"MOTION_CHANGEXBY\": \"athraigh x de %1\",\n \"MOTION_SETX\": \"socraigh x: %1\",\n \"MOTION_CHANGEYBY\": \"athraigh y de %1\",\n \"MOTION_SETY\": \"socraigh y: %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"más ar an imeall, preab\",\n \"MOTION_SETROTATIONSTYLE\": \"socraigh an stíl rothlaithe: %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"clé-deas\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"ná rothlaigh\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"timpeall ar fad\",\n \"MOTION_XPOSITION\": \"ionad x\",\n \"MOTION_YPOSITION\": \"ionad y\",\n \"MOTION_DIRECTION\": \"treo\",\n \"MOTION_SCROLLRIGHT\": \"scrollaigh ar dheis %1\",\n \"MOTION_SCROLLUP\": \"scrollaigh suas %1\",\n \"MOTION_ALIGNSCENE\": \"ailínigh radharc %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"bun ar chlé\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"bun ar dheis\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"lár\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"barr ar chlé\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"barr ar dheis\",\n \"MOTION_XSCROLL\": \"scrollaigh x\",\n \"MOTION_YSCROLL\": \"scrollaigh y\",\n \"MOTION_STAGE_SELECTED\": \"Stáitse roghnaithe: gan bloic gluaiseachta\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"uimhir randamach idir %1 agus %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 agus %2\",\n \"OPERATORS_OR\": \"%1 nó %2\",\n \"OPERATORS_NOT\": \"séanadh %1\",\n \"OPERATORS_JOIN\": \"ceangail %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"úll\",\n \"OPERATORS_JOIN_BANANA\": \"banana\",\n \"OPERATORS_LETTEROF\": \"litir %1 de %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"ú\",\n \"OPERATORS_LENGTH\": \"fad %1\",\n \"OPERATORS_CONTAINS\": \"%1 agus %2 ann?\",\n \"OPERATORS_MOD\": \"%1 mod %2\",\n \"OPERATORS_ROUND\": \"slánaigh %1\",\n \"OPERATORS_MATHOP\": \"%1 as %2\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"urlár\",\n \"OPERATORS_MATHOP_CEILING\": \"síleáil\",\n \"OPERATORS_MATHOP_SQRT\": \"sqrt\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"sainmhínigh %1\",\n \"SENSING_TOUCHINGOBJECT\": \"i dteagmháil le %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"pointeoir-luiche\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"ciumhais\",\n \"SENSING_TOUCHINGCOLOR\": \"i dteagmháil le dath %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"dath %1 i dteagmháil le %2?\",\n \"SENSING_DISTANCETO\": \"fad go dtí %1\",\n \"SENSING_DISTANCETO_POINTER\": \"pointeoir-luiche\",\n \"SENSING_ASKANDWAIT\": \"fiafraigh %1 agus fan\",\n \"SENSING_ASK_TEXT\": \"Cén t-ainm atá ort?\",\n \"SENSING_ANSWER\": \"freagra\",\n \"SENSING_KEYPRESSED\": \"eochair %1 brúite?\",\n \"SENSING_MOUSEDOWN\": \"luchóg síos?\",\n \"SENSING_MOUSEX\": \"luchóg x\",\n \"SENSING_MOUSEY\": \"luchóg y\",\n \"SENSING_SETDRAGMODE\": \"socraigh mód tarraingthe: %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"intarraingthe\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"dotharraingthe\",\n \"SENSING_LOUDNESS\": \"treise\",\n \"SENSING_LOUD\": \"os ard?\",\n \"SENSING_TIMER\": \"amadóir\",\n \"SENSING_RESETTIMER\": \"athshocraigh an t-amadóir\",\n \"SENSING_OF\": \"%1 as %2\",\n \"SENSING_OF_XPOSITION\": \"ionad x\",\n \"SENSING_OF_YPOSITION\": \"ionad y\",\n \"SENSING_OF_DIRECTION\": \"treo\",\n \"SENSING_OF_COSTUMENUMBER\": \"culaith #\",\n \"SENSING_OF_COSTUMENAME\": \"ainm na culaithe\",\n \"SENSING_OF_SIZE\": \"méid\",\n \"SENSING_OF_VOLUME\": \"airde\",\n \"SENSING_OF_BACKDROPNUMBER\": \"cúlra #\",\n \"SENSING_OF_BACKDROPNAME\": \"ainm an chúlra\",\n \"SENSING_OF_STAGE\": \"Stáitse\",\n \"SENSING_CURRENT\": \"%1 reatha\",\n \"SENSING_CURRENT_YEAR\": \"bliain\",\n \"SENSING_CURRENT_MONTH\": \"mí\",\n \"SENSING_CURRENT_DATE\": \"dáta\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"lá den tseachtain\",\n \"SENSING_CURRENT_HOUR\": \"uair\",\n \"SENSING_CURRENT_MINUTE\": \"nóiméad\",\n \"SENSING_CURRENT_SECOND\": \"soicind\",\n \"SENSING_DAYSSINCE2000\": \"laethanta ó 2000\",\n \"SENSING_USERNAME\": \"ainm úsáideora\",\n \"SENSING_USERID\": \"aitheantas úsáideora\",\n \"SOUND_PLAY\": \"seinn fuaim %1\",\n \"SOUND_PLAYUNTILDONE\": \"seinn fuaim %1 go dtí a deireadh\",\n \"SOUND_STOPALLSOUNDS\": \"stop gach fuaim\",\n \"SOUND_SETEFFECTO\": \"socraigh maisíocht %1: %2\",\n \"SOUND_CHANGEEFFECTBY\": \"athraigh maisíocht %1 de %2\",\n \"SOUND_CLEAREFFECTS\": \"glan na maisíochtaí fuaime\",\n \"SOUND_EFFECTS_PITCH\": \"tuinairde\",\n \"SOUND_EFFECTS_PAN\": \"peanáil ar chlé/ar dheis\",\n \"SOUND_CHANGEVOLUMEBY\": \"athraigh airde na fuaime de %1\",\n \"SOUND_SETVOLUMETO\": \"socraigh airde na fuaime: %1%\",\n \"SOUND_VOLUME\": \"airde\",\n \"SOUND_RECORD\": \"taifead...\",\n \"CATEGORY_MOTION\": \"Gluaiseacht\",\n \"CATEGORY_LOOKS\": \"Cuma\",\n \"CATEGORY_SOUND\": \"Fuaim\",\n \"CATEGORY_EVENTS\": \"Teagmhais\",\n \"CATEGORY_CONTROL\": \"Rialú\",\n \"CATEGORY_SENSING\": \"Brath\",\n \"CATEGORY_OPERATORS\": \"Oibreoirí\",\n \"CATEGORY_VARIABLES\": \"Athróga\",\n \"CATEGORY_MYBLOCKS\": \"Mo Chuid Blocanna\",\n \"DUPLICATE\": \"Cóipeáil\",\n \"DELETE\": \"Scrios\",\n \"ADD_COMMENT\": \"Cuir Nóta Tráchta Leis\",\n \"REMOVE_COMMENT\": \"Bain an Nóta Tráchta\",\n \"DELETE_BLOCK\": \"Scrios an Bloc\",\n \"DELETE_X_BLOCKS\": \"Scrios %1 Bloc\",\n \"DELETE_ALL_BLOCKS\": \"Scrios na %1 bloc go léir?\",\n \"CLEAN_UP\": \"Glan na Blocanna\",\n \"HELP\": \"Cabhair\",\n \"UNDO\": \"Cealaigh\",\n \"REDO\": \"Athdhéan\",\n \"EDIT_PROCEDURE\": \"Eagar\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Taispeáin an sainmhíniú\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Abair rud éigin...\",\n \"COLOUR_HUE_LABEL\": \"Dath\",\n \"COLOUR_SATURATION_LABEL\": \"Sáithiú\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Gile\",\n \"CHANGE_VALUE_TITLE\": \"Athraigh an luach:\",\n \"RENAME_VARIABLE\": \"Cuir ainm nua ar an athróg\",\n \"RENAME_VARIABLE_TITLE\": \"Cuir ainm nua ar gach athróg \\\"%1\\\":\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Cuir Ainm Nua ar an Athróg\",\n \"NEW_VARIABLE\": \"Cruthaigh Athróg\",\n \"NEW_VARIABLE_TITLE\": \"Ainm na hathróige nua:\",\n \"VARIABLE_MODAL_TITLE\": \"Athróg Nua\",\n \"VARIABLE_ALREADY_EXISTS\": \"Tá athróg darb ainm \\\"%1\\\" ann cheana.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Tá athróg darb ainm \\\"%1\\\" ann cheana, athróg eile de chineál \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Scrios %1 cóip den athróg \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Ní féidir athróg \\\"%1\\\" a scriosadh toisc gur cuid den sainmhíniú ar fheidhm \\\"%2\\\" í.\",\n \"DELETE_VARIABLE\": \"Scrios an athróg \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Cruthaigh Bloc\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Tá feidhm darb ainm \\\"%1\\\" ann cheana.\",\n \"PROCEDURE_DEFAULT_NAME\": \"ainm an bhloic\",\n \"NEW_LIST\": \"Cruthaigh Liosta\",\n \"NEW_LIST_TITLE\": \"Ainm an liosta nua:\",\n \"LIST_MODAL_TITLE\": \"Liosta Nua\",\n \"LIST_ALREADY_EXISTS\": \"Tá liosta darb ainm \\\"%1\\\" ann cheana.\",\n \"RENAME_LIST_TITLE\": \"Cuir ainm nua ar gach liosta \\\"%1\\\":\",\n \"RENAME_LIST_MODAL_TITLE\": \"Cuir ainm nua ar an liosta\",\n \"DEFAULT_LIST_ITEM\": \"rud\",\n \"DELETE_LIST\": \"Scrios liosta \\\"%1\\\"\",\n \"RENAME_LIST\": \"Cuir ainm nua ar an liosta\",\n \"NEW_BROADCAST_MESSAGE\": \"Teachtaireacht nua\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Ainm na teachtaireachta nua:\",\n \"BROADCAST_MODAL_TITLE\": \"Teachtaireacht Nua\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"teachtaireacht1\"\n};\n\nBlockly.ScratchMsgs.locales[\"gd\"] =\n{\n \"CONTROL_FOREVER\": \"gu buan\",\n \"CONTROL_REPEAT\": \"dèan seo %1 turas\",\n \"CONTROL_IF\": \"ma tha %1 a-rèiste\",\n \"CONTROL_ELSE\": \"air neo\",\n \"CONTROL_STOP\": \"cuir stad air\",\n \"CONTROL_STOP_ALL\": \"na h-uile\",\n \"CONTROL_STOP_THIS\": \"an sgriobt seo\",\n \"CONTROL_STOP_OTHER\": \"sgriobtaichean eile na sprìde\",\n \"CONTROL_WAIT\": \"fan fad %1 diog\",\n \"CONTROL_WAITUNTIL\": \"fan gus am bi %1\",\n \"CONTROL_REPEATUNTIL\": \"dèan a-rithist e gus am bi %1\",\n \"CONTROL_WHILE\": \"fhad ’s a tha %1\",\n \"CONTROL_FOREACH\": \"airson gach %1 air %2\",\n \"CONTROL_STARTASCLONE\": \"nuair a thèid thu nad chlòn\",\n \"CONTROL_CREATECLONEOF\": \"cruthaich clòn %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"dhut fhèin\",\n \"CONTROL_DELETETHISCLONE\": \"sguab às an clòn seo\",\n \"CONTROL_COUNTER\": \"cunntair\",\n \"CONTROL_INCRCOUNTER\": \"cunntair ioncramaide\",\n \"CONTROL_CLEARCOUNTER\": \"falamhaich an cunntair\",\n \"CONTROL_ALLATONCE\": \"a h-uile gin aig an aon àm\",\n \"DATA_SETVARIABLETO\": \"suidhich %1 air %2\",\n \"DATA_CHANGEVARIABLEBY\": \"atharraich %1 le %2\",\n \"DATA_SHOWVARIABLE\": \"seall an caochladair %1\",\n \"DATA_HIDEVARIABLE\": \"falaich an caochladair %1\",\n \"DATA_ADDTOLIST\": \"cuir %1 ri %2\",\n \"DATA_DELETEOFLIST\": \"sguab às %1 de %2\",\n \"DATA_DELETEALLOFLIST\": \"sguab às na h-uile gin de %1\",\n \"DATA_INSERTATLIST\": \"cuir %1 ris aig %2 de %3\",\n \"DATA_REPLACEITEMOFLIST\": \"cuir %3 an àite nì %1 de %2\",\n \"DATA_ITEMOFLIST\": \"nì %1 de %2\",\n \"DATA_ITEMNUMOFLIST\": \"àireamh an nì %1 air %2\",\n \"DATA_LENGTHOFLIST\": \"an fhaide aig %1\",\n \"DATA_LISTCONTAINSITEM\": \"%2 am broinn %1\",\n \"DATA_SHOWLIST\": \"seall an liosta %1\",\n \"DATA_HIDELIST\": \"falaich an liosta %1\",\n \"DATA_INDEX_ALL\": \"na h-uile\",\n \"DATA_INDEX_LAST\": \"am fear mu dheireadh\",\n \"DATA_INDEX_RANDOM\": \"tuaireamach\",\n \"EVENT_WHENFLAGCLICKED\": \"le briogadh air %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"le briogadh air an sprìd seo\",\n \"EVENT_WHENSTAGECLICKED\": \"le briogadh air an àrd-ùrlar\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"nuair a bhios an sprìd a’ beantainn ri %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"nuair a gheibh thu %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"nuair a thèid an cùlaibh na %1\",\n \"EVENT_WHENGREATERTHAN\": \"nuair a thèid %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"an tìmear\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"àirde na fuaime\",\n \"EVENT_BROADCAST\": \"craol %1\",\n \"EVENT_BROADCASTANDWAIT\": \"craol %1 is fan\",\n \"EVENT_WHENKEYPRESSED\": \"le brùthadh air iuchair %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"spàis\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"saighde gu clì\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"saighde gu deas\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"saighde sìos\",\n \"EVENT_WHENKEYPRESSED_UP\": \"saighde suas\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"sam bith\",\n \"LOOKS_SAYFORSECS\": \"can %1 fad %2 diog\",\n \"LOOKS_SAY\": \"can %1\",\n \"LOOKS_HELLO\": \"Shin thu!\",\n \"LOOKS_THINKFORSECS\": \"smaoinich %1 fad %2 diog\",\n \"LOOKS_THINK\": \"smaoinich %1\",\n \"LOOKS_HMM\": \"An-dà…\",\n \"LOOKS_SHOW\": \"seall\",\n \"LOOKS_HIDE\": \"falaich\",\n \"LOOKS_HIDEALLSPRITES\": \"cuir gach sprìd am falach\",\n \"LOOKS_EFFECT_COLOR\": \"datha\",\n \"LOOKS_EFFECT_FISHEYE\": \"sùil èisg\",\n \"LOOKS_EFFECT_WHIRL\": \"cuairteige\",\n \"LOOKS_EFFECT_PIXELATE\": \"phiogsailean\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosàig\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"soilleireachd\",\n \"LOOKS_EFFECT_GHOST\": \"taibhse\",\n \"LOOKS_CHANGEEFFECTBY\": \"atharraich èifeachd %1 le %2\",\n \"LOOKS_SETEFFECTTO\": \"cuir èifeachd %1 de %2 ort\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"falamhaich na h-èifeachdan\",\n \"LOOKS_CHANGESIZEBY\": \"atharraich do mheud le %1\",\n \"LOOKS_SETSIZETO\": \"suidhich do mheud air %1 %\",\n \"LOOKS_SIZE\": \"meud\",\n \"LOOKS_CHANGESTRETCHBY\": \"atharraich an sìneadh le %1\",\n \"LOOKS_SETSTRETCHTO\": \"suidhich an sìneadh air %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"cuir dreach %1 ort\",\n \"LOOKS_NEXTCOSTUME\": \"an t-ath-dhreach\",\n \"LOOKS_SWITCHBACKDROPTO\": \"cuir %1 air a’ chùlaibh\",\n \"LOOKS_GOTOFRONTBACK\": \"rach gu breath %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"an fhìor-bheulaibh\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"an fhìor-chùlaibh\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"rach %2 breath %1\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"an comhair a’ bheòil\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"an comhair a’ chùil\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"%1 a’ chùlaibh\",\n \"LOOKS_COSTUMENUMBERNAME\": \"%1 an dreacha\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"àireamh\",\n \"LOOKS_NUMBERNAME_NAME\": \"ainm\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"cuir %1 air a’ chùlaibh is fan\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"an t-ath-chùlaibh\",\n \"LOOKS_NEXTBACKDROP\": \"an t-ath-chùlaibh\",\n \"LOOKS_PREVIOUSBACKDROP\": \"a’ chùlaibh roimhe\",\n \"LOOKS_RANDOMBACKDROP\": \"cùlaibh air thuaiream\",\n \"MOTION_MOVESTEPS\": \"gluais le %1 ceum\",\n \"MOTION_TURNLEFT\": \"cuairtich %1 le %2 ceum\",\n \"MOTION_TURNRIGHT\": \"cuairtich %1 le %2 ceum\",\n \"MOTION_POINTINDIRECTION\": \"cuir d’ aghaidh ri %1\",\n \"MOTION_POINTTOWARDS\": \"cuir d’ aghaidh an comhair %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"tomhaire na luchaige\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"tuaireamach\",\n \"MOTION_GOTO\": \"rach gu %1\",\n \"MOTION_GOTO_POINTER\": \"tomhaire na luchaige\",\n \"MOTION_GOTO_RANDOM\": \"ionad air thuaiream\",\n \"MOTION_GOTOXY\": \"rach gu x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"gluais fad %1 diog gu x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"gluais fad %1 diog gu %2\",\n \"MOTION_GLIDETO_POINTER\": \"tomhaire na luchaige\",\n \"MOTION_GLIDETO_RANDOM\": \"ionad air thuaiream\",\n \"MOTION_CHANGEXBY\": \"atharraich x le %1\",\n \"MOTION_SETX\": \"suidhich x air %1\",\n \"MOTION_CHANGEYBY\": \"atharraich y le %1\",\n \"MOTION_SETY\": \"suidhich y air %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"ma tha thu ris an oir, boc\",\n \"MOTION_SETROTATIONSTYLE\": \"suidhich stoidhle na cuairte air %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"clì is deas\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"gun chuairteachadh\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"cuairt shlàn\",\n \"MOTION_XPOSITION\": \"ionad x\",\n \"MOTION_YPOSITION\": \"ionad y\",\n \"MOTION_DIRECTION\": \"comhair\",\n \"MOTION_SCROLLRIGHT\": \"sgrolaich gu deas le %1\",\n \"MOTION_SCROLLUP\": \"sgrolaich suas le %1\",\n \"MOTION_ALIGNSCENE\": \"co-thaobhaich an sealladh dhan %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"taobh clì aig a’ bhonn\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"taobh deas aig a’ bhonn\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"mheadhan\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"taobh clì aig a’ bhàrr\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"taobh deas aig a’ bhàrr\",\n \"MOTION_XSCROLL\": \"sgroladh x\",\n \"MOTION_YSCROLL\": \"sgroladh y\",\n \"MOTION_STAGE_SELECTED\": \"Chan eil bloca gluasaid an-seo on a thagh thu àrd-ùrlar\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 × %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"luach tuaireamach eadar %1 is %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 agus %2\",\n \"OPERATORS_OR\": \"%1 no %2\",\n \"OPERATORS_NOT\": \"e fallsa gu bheil %1\",\n \"OPERATORS_JOIN\": \"ceangail %1 ri %2\",\n \"OPERATORS_JOIN_APPLE\": \"eòrna\",\n \"OPERATORS_JOIN_BANANA\": \"seagal\",\n \"OPERATORS_LETTEROF\": \"litir %1 de %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"an fhaide aig %1\",\n \"OPERATORS_CONTAINS\": \"%2 am broinn %1\",\n \"OPERATORS_MOD\": \"%1 mòidealas %2\",\n \"OPERATORS_ROUND\": \"cuairtich %1\",\n \"OPERATORS_MATHOP\": \"%1 aig %2\",\n \"OPERATORS_MATHOP_ABS\": \"an luach absaloideach\",\n \"OPERATORS_MATHOP_FLOOR\": \"an cuairteachadh sìos\",\n \"OPERATORS_MATHOP_CEILING\": \"an cuairteachadh suas\",\n \"OPERATORS_MATHOP_SQRT\": \"am freumh ceàrnagach\",\n \"OPERATORS_MATHOP_SIN\": \"an sìneas\",\n \"OPERATORS_MATHOP_COS\": \"an co-shìneas\",\n \"OPERATORS_MATHOP_TAN\": \"am beantan\",\n \"OPERATORS_MATHOP_ASIN\": \"an t-àrc-shìneas\",\n \"OPERATORS_MATHOP_ACOS\": \"an t-àrc-cho-shìneas\",\n \"OPERATORS_MATHOP_ATAN\": \"an t-àrc-bheantan\",\n \"OPERATORS_MATHOP_LN\": \"an log-àireamh nàdarra\",\n \"OPERATORS_MATHOP_LOG\": \"an log-àireamh\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"mìnich %1\",\n \"SENSING_TOUCHINGOBJECT\": \"%1 a’ beantainn riut\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"tomhaire na luchaige\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"an oir\",\n \"SENSING_TOUCHINGCOLOR\": \"an dath %1 a’ beantainn riut\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"an dath %1 a’ beantainn ri %2\",\n \"SENSING_DISTANCETO\": \"an t-astar gu %1\",\n \"SENSING_DISTANCETO_POINTER\": \"tomhaire na luchaige\",\n \"SENSING_ASKANDWAIT\": \"faighnich %1 is fan\",\n \"SENSING_ASK_TEXT\": \"Dè an t-ainm a th’ort?\",\n \"SENSING_ANSWER\": \"freagairt\",\n \"SENSING_KEYPRESSED\": \"iuchair %1 ga brùthadh\",\n \"SENSING_MOUSEDOWN\": \"an luchag ga briogadh\",\n \"SENSING_MOUSEX\": \"x na luchaige\",\n \"SENSING_MOUSEY\": \"y na luchaige\",\n \"SENSING_SETDRAGMODE\": \"suidhich %1 a shlaodadh\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"gun gabh\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"nach gabh\",\n \"SENSING_LOUDNESS\": \"àirde na fuaime\",\n \"SENSING_LOUD\": \"an fhuaim air\",\n \"SENSING_TIMER\": \"an tìmear\",\n \"SENSING_RESETTIMER\": \"ath-shuidhich an tìmear\",\n \"SENSING_OF\": \"%1 aig %2\",\n \"SENSING_OF_XPOSITION\": \"ionad x\",\n \"SENSING_OF_YPOSITION\": \"ionad y\",\n \"SENSING_OF_DIRECTION\": \"comhair\",\n \"SENSING_OF_COSTUMENUMBER\": \"àireamh an dreacha\",\n \"SENSING_OF_COSTUMENAME\": \"ainm an dreacha\",\n \"SENSING_OF_SIZE\": \"meud\",\n \"SENSING_OF_VOLUME\": \"àirde na fuaime\",\n \"SENSING_OF_BACKDROPNUMBER\": \"àireamh a’ chùlaibh\",\n \"SENSING_OF_BACKDROPNAME\": \"ainm a’ chùlaibh\",\n \"SENSING_OF_STAGE\": \"Àrd-ùrlar\",\n \"SENSING_CURRENT\": \"%1 làithreach\",\n \"SENSING_CURRENT_YEAR\": \"am bliadhna\",\n \"SENSING_CURRENT_MONTH\": \"am mìos\",\n \"SENSING_CURRENT_DATE\": \"an ceann-là\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"latha na seachdaine\",\n \"SENSING_CURRENT_HOUR\": \"an uair\",\n \"SENSING_CURRENT_MINUTE\": \"a’ mhionaid\",\n \"SENSING_CURRENT_SECOND\": \"an diog\",\n \"SENSING_DAYSSINCE2000\": \"làithean o 2000 a-mach\",\n \"SENSING_USERNAME\": \"ainm-cleachdaiche\",\n \"SENSING_USERID\": \"ID a’ chleachdaiche\",\n \"SOUND_PLAY\": \"tòisich air fuaim %1 a chluich\",\n \"SOUND_PLAYUNTILDONE\": \"cluich fuaim %1 gu lèir\",\n \"SOUND_STOPALLSOUNDS\": \"cuir stad air a h-uile fuaim\",\n \"SOUND_SETEFFECTO\": \"cuir èifeachd %1 de %2 ort\",\n \"SOUND_CHANGEEFFECTBY\": \"atharraich èifeachd %1 le %2\",\n \"SOUND_CLEAREFFECTS\": \"falamhaich èifeachdan na fuaime\",\n \"SOUND_EFFECTS_PITCH\": \"gleusa\",\n \"SOUND_EFFECTS_PAN\": \"panachaidh gu clì/deas\",\n \"SOUND_CHANGEVOLUMEBY\": \"atharraich àirde na fuaime le %1\",\n \"SOUND_SETVOLUMETO\": \"suidhich àirde na fuaime air %1%\",\n \"SOUND_VOLUME\": \"àirde na fuaime\",\n \"SOUND_RECORD\": \"clàraich...\",\n \"CATEGORY_MOTION\": \"Gluasad\",\n \"CATEGORY_LOOKS\": \"Coltas\",\n \"CATEGORY_SOUND\": \"Fuaim\",\n \"CATEGORY_EVENTS\": \"Tachartas\",\n \"CATEGORY_CONTROL\": \"Smachd\",\n \"CATEGORY_SENSING\": \"Mothachadh\",\n \"CATEGORY_OPERATORS\": \"Gnìomharaiche\",\n \"CATEGORY_VARIABLES\": \"Caochladairean\",\n \"CATEGORY_MYBLOCKS\": \"Bloca agamsa\",\n \"DUPLICATE\": \"Dùblaich\",\n \"DELETE\": \"Sguab às\",\n \"ADD_COMMENT\": \"Cuir beachd ris\",\n \"REMOVE_COMMENT\": \"Thoir am beachd air falbh\",\n \"DELETE_BLOCK\": \"Sguab às am bloca\",\n \"DELETE_X_BLOCKS\": \"Sguab às %1 bloca(ichean)\",\n \"DELETE_ALL_BLOCKS\": \"A bheil thu airson na %1 bloca(ichean) uile a sguabadh às?\",\n \"CLEAN_UP\": \"Sgioblaich na blocaichean\",\n \"HELP\": \"Cobhair\",\n \"UNDO\": \"Neo-dhèan\",\n \"REDO\": \"Ath-dhèan\",\n \"EDIT_PROCEDURE\": \"Deasaich\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Rach dhan mhìneachadh\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Can rudeigin…\",\n \"COLOUR_HUE_LABEL\": \"Dath\",\n \"COLOUR_SATURATION_LABEL\": \"Sàthachd\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Soilleireachd\",\n \"CHANGE_VALUE_TITLE\": \"Atharraich an luach:\",\n \"RENAME_VARIABLE\": \"Thoir ainm ùr air a’ chaochladair\",\n \"RENAME_VARIABLE_TITLE\": \"Thoir ainm ùr air gach caochladair “%1”:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Thoir ainm ùr air a’ chaochladair\",\n \"NEW_VARIABLE\": \"Cruthaich caochladair\",\n \"NEW_VARIABLE_TITLE\": \"Ainm ùr a’ chaochladair:\",\n \"VARIABLE_MODAL_TITLE\": \"Caochladair ùr\",\n \"VARIABLE_ALREADY_EXISTS\": \"Tha caochladair air a bheil “%1” ann mu thràth.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Tha caochladair air a bheil “%1” ann mu thràth airson caochladair eile dhen t-seòrsa “%2”.\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"A bheil thu airson a sguabadh às dha %1 chleachdadh/cleachdaidhean dhen chaochladair “%2”?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Chan urrainn dhuinn an caochladair “%1” a sguabadh às on a e am broinn mìneachadh an fhoincsein “%2”\",\n \"DELETE_VARIABLE\": \"Sguab às dha “%1”\",\n \"NEW_PROCEDURE\": \"Cruthaich bloca\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Tha modh air a bheil “%1” ann mu thràth.\",\n \"PROCEDURE_DEFAULT_NAME\": \"ainm a’ bhloca\",\n \"NEW_LIST\": \"Cruthaich liosta\",\n \"NEW_LIST_TITLE\": \"Ainm na liosta ùire:\",\n \"LIST_MODAL_TITLE\": \"Liosta ùr\",\n \"LIST_ALREADY_EXISTS\": \"Tha liosta air a bheil “%1” ann mu thràth.\",\n \"RENAME_LIST_TITLE\": \"Thoir ainm ùr air gach liosta “%1”:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Thoir ainm ùr air an liosta\",\n \"DEFAULT_LIST_ITEM\": \"nì\",\n \"DELETE_LIST\": \"Sguab às dhan liosta “%1”\",\n \"RENAME_LIST\": \"Thoir ainm ùr air an liosta\",\n \"NEW_BROADCAST_MESSAGE\": \"Teachdaireachd ùr\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Ainm na teachdaireachd ùire:\",\n \"BROADCAST_MODAL_TITLE\": \"teachdaireachd ùr\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"teachdaireachd1\"\n};\n\nBlockly.ScratchMsgs.locales[\"gl\"] =\n{\n \"CONTROL_FOREVER\": \"para sempre\",\n \"CONTROL_REPEAT\": \"repetir %1\",\n \"CONTROL_IF\": \"se %1 entón\",\n \"CONTROL_ELSE\": \"se non\",\n \"CONTROL_STOP\": \"parar.\",\n \"CONTROL_STOP_ALL\": \"todos\",\n \"CONTROL_STOP_THIS\": \"este programa\",\n \"CONTROL_STOP_OTHER\": \"outros programas na figura\",\n \"CONTROL_WAIT\": \"agardar %1 segundos\",\n \"CONTROL_WAITUNTIL\": \"agardar até %1\",\n \"CONTROL_REPEATUNTIL\": \"repetir até %1\",\n \"CONTROL_WHILE\": \"mentres %1\",\n \"CONTROL_FOREACH\": \"para cada %1 en %2\",\n \"CONTROL_STARTASCLONE\": \"Ao comezar como clon\",\n \"CONTROL_CREATECLONEOF\": \"crear un clon de %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"min mesmo\",\n \"CONTROL_DELETETHISCLONE\": \"eliminar este clon.\",\n \"CONTROL_COUNTER\": \"contador\",\n \"CONTROL_INCRCOUNTER\": \"incrementar o contador\",\n \"CONTROL_CLEARCOUNTER\": \"limpar o contador\",\n \"CONTROL_ALLATONCE\": \"todo de vez\",\n \"DATA_SETVARIABLETO\": \"asignar %2 a %1\",\n \"DATA_CHANGEVARIABLEBY\": \"sumarlle %2 a %1\",\n \"DATA_SHOWVARIABLE\": \"amosar a variábel %1\",\n \"DATA_HIDEVARIABLE\": \"agochar a variábel %1\",\n \"DATA_ADDTOLIST\": \"engadir %1 a %2\",\n \"DATA_DELETEOFLIST\": \"eliminar %1 de %2\",\n \"DATA_DELETEALLOFLIST\": \"eliminar todo o contido de %1\",\n \"DATA_INSERTATLIST\": \"inserir %1 na posición %2 de %3\",\n \"DATA_REPLACEITEMOFLIST\": \"substituír o elemento %1 de %2 por %3\",\n \"DATA_ITEMOFLIST\": \"elemento %1 de %2\",\n \"DATA_ITEMNUMOFLIST\": \"posición de %2 que contén %1\",\n \"DATA_LENGTHOFLIST\": \"lonxitude de %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 contén %2\",\n \"DATA_SHOWLIST\": \"amosar a lista %1\",\n \"DATA_HIDELIST\": \"agochar a lista %1\",\n \"DATA_INDEX_ALL\": \"todos\",\n \"DATA_INDEX_LAST\": \"último\",\n \"DATA_INDEX_RANDOM\": \"ao chou\",\n \"EVENT_WHENFLAGCLICKED\": \"Ao premer en %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"Ao premer nesta figura\",\n \"EVENT_WHENSTAGECLICKED\": \"Ao premer no escenario\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"Cando esta figura toque %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"Ao recibir %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"Ao mudar o fondo a %1\",\n \"EVENT_WHENGREATERTHAN\": \"Cando %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"cronómetro\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"volume do micrófono\",\n \"EVENT_BROADCAST\": \"emitir %1\",\n \"EVENT_BROADCASTANDWAIT\": \"emitir %1 e agardar\",\n \"EVENT_WHENKEYPRESSED\": \"Ao premer a tecla %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"espazo\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"frecha esquerda\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"frecha dereita\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"frecha abaixo\",\n \"EVENT_WHENKEYPRESSED_UP\": \"frecha arriba\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"calquera\",\n \"LOOKS_SAYFORSECS\": \"dicir %1 durante %2 segundos\",\n \"LOOKS_SAY\": \"dicir %1\",\n \"LOOKS_HELLO\": \"Ola!\",\n \"LOOKS_THINKFORSECS\": \"pensar %1 durante %2 segundos\",\n \"LOOKS_THINK\": \"pensar %1\",\n \"LOOKS_HMM\": \"Mmm...\",\n \"LOOKS_SHOW\": \"amosarse\",\n \"LOOKS_HIDE\": \"agocharse\",\n \"LOOKS_HIDEALLSPRITES\": \"agochar todas as figuras\",\n \"LOOKS_EFFECT_COLOR\": \"cor\",\n \"LOOKS_EFFECT_FISHEYE\": \"ollo de peixe\",\n \"LOOKS_EFFECT_WHIRL\": \"remuiño\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixelar\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaico\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"luminosidade\",\n \"LOOKS_EFFECT_GHOST\": \"desaparecer\",\n \"LOOKS_CHANGEEFFECTBY\": \"sumar %2 ao efecto %1\",\n \"LOOKS_SETEFFECTTO\": \"aplicar o efecto %1 co valor %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"limpar os efectos gráficos\",\n \"LOOKS_CHANGESIZEBY\": \"sumar %1 ao tamaño\",\n \"LOOKS_SETSIZETO\": \"pór o tamaño ao %1 %\",\n \"LOOKS_SIZE\": \"tamaño\",\n \"LOOKS_CHANGESTRETCHBY\": \"sumar %1 ao estiramento\",\n \"LOOKS_SETSTRETCHTO\": \"pór o estiramento no %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"mudar vestimenta a %1\",\n \"LOOKS_NEXTCOSTUME\": \"vestimenta seguinte\",\n \"LOOKS_SWITCHBACKDROPTO\": \"mudar fondo a %1\",\n \"LOOKS_GOTOFRONTBACK\": \"ir para a capa %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"por diante\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"por detrás\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"ir %1 %2 capas\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"adiante\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"atrás\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"fondo %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"vestimenta %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"número\",\n \"LOOKS_NUMBERNAME_NAME\": \"nome\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"mudar fondo a %1 e agardar\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"fondo seguinte\",\n \"LOOKS_NEXTBACKDROP\": \"fondo seguinte\",\n \"LOOKS_PREVIOUSBACKDROP\": \"fondo anterior\",\n \"LOOKS_RANDOMBACKDROP\": \"fondo de pantalla aleatorio\",\n \"MOTION_MOVESTEPS\": \"mover %1 pasos\",\n \"MOTION_TURNLEFT\": \"xirar %1 %2 graos\",\n \"MOTION_TURNRIGHT\": \"xirar %1 %2 graos\",\n \"MOTION_POINTINDIRECTION\": \"apuntar na dirección %1\",\n \"MOTION_POINTTOWARDS\": \"apuntar cara a %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"punteiro do rato\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"dirección aleatoria\",\n \"MOTION_GOTO\": \"ir para %1\",\n \"MOTION_GOTO_POINTER\": \"punteiro do rato\",\n \"MOTION_GOTO_RANDOM\": \"posición aleatoria\",\n \"MOTION_GOTOXY\": \"ir para X: %1 Y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"esvarar durante %1 seg a X: %2 Y: %3\",\n \"MOTION_GLIDETO\": \"esvarar durante %1 seg a %2\",\n \"MOTION_GLIDETO_POINTER\": \"punteiro do rato\",\n \"MOTION_GLIDETO_RANDOM\": \"posición aleatoria\",\n \"MOTION_CHANGEXBY\": \"sumar %1 a X\",\n \"MOTION_SETX\": \"asignar a X o valor %1\",\n \"MOTION_CHANGEYBY\": \"sumar %1 a Y\",\n \"MOTION_SETY\": \"asignar a Y o valor %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"se toca un bordo, rebotar\",\n \"MOTION_SETROTATIONSTYLE\": \"usar o estilo de rotación %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"esquerda-dereita\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"non rotar\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"en todas as direccións\",\n \"MOTION_XPOSITION\": \"posición en X\",\n \"MOTION_YPOSITION\": \"posición en Y\",\n \"MOTION_DIRECTION\": \"dirección\",\n \"MOTION_SCROLLRIGHT\": \"desprazamento dereita %1\",\n \"MOTION_SCROLLUP\": \"desprazamento arriba %1\",\n \"MOTION_ALIGNSCENE\": \"aliñar a escena %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"abaixo esquerda\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"abaixo dereita\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"medio\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"arriba esquerda\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"arriba dereita\",\n \"MOTION_XSCROLL\": \"desprazamento x\",\n \"MOTION_YSCROLL\": \"desprazamento Y\",\n \"MOTION_STAGE_SELECTED\": \"Escenario seleccionado: sen bloques de movemento\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 – %2\",\n \"OPERATORS_MULTIPLY\": \"%1 × %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"número ao chou entre %1 e %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 e %2\",\n \"OPERATORS_OR\": \"%1 ou %2\",\n \"OPERATORS_NOT\": \"non %1\",\n \"OPERATORS_JOIN\": \"concatenar %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"mazá\",\n \"OPERATORS_JOIN_BANANA\": \"banana\",\n \"OPERATORS_LETTEROF\": \"letra %1 de %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"lonxitude de %1\",\n \"OPERATORS_CONTAINS\": \"%1 contén %2\",\n \"OPERATORS_MOD\": \"%1 módulo %2\",\n \"OPERATORS_ROUND\": \"arredondar %1\",\n \"OPERATORS_MATHOP\": \"%1 de %2\",\n \"OPERATORS_MATHOP_ABS\": \"valor absoluto\",\n \"OPERATORS_MATHOP_FLOOR\": \"chan\",\n \"OPERATORS_MATHOP_CEILING\": \"teito\",\n \"OPERATORS_MATHOP_SQRT\": \"raíz cadrada\",\n \"OPERATORS_MATHOP_SIN\": \"seno\",\n \"OPERATORS_MATHOP_COS\": \"coseno\",\n \"OPERATORS_MATHOP_TAN\": \"tanxente\",\n \"OPERATORS_MATHOP_ASIN\": \"arco seno\",\n \"OPERATORS_MATHOP_ACOS\": \"arco coseno\",\n \"OPERATORS_MATHOP_ATAN\": \"arco tanxente\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"definir %1\",\n \"SENSING_TOUCHINGOBJECT\": \"toca %1\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"punteiro do rato\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"bordo\",\n \"SENSING_TOUCHINGCOLOR\": \"toca na cor %1\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"a cor %1 toca %2\",\n \"SENSING_DISTANCETO\": \"distancia a %1\",\n \"SENSING_DISTANCETO_POINTER\": \"punteiro do rato\",\n \"SENSING_ASKANDWAIT\": \"preguntar %1 e agardar\",\n \"SENSING_ASK_TEXT\": \"Como te chamas?\",\n \"SENSING_ANSWER\": \"resposta\",\n \"SENSING_KEYPRESSED\": \"a tecla %1 está premida\",\n \"SENSING_MOUSEDOWN\": \"o rato está premido\",\n \"SENSING_MOUSEX\": \"posición en X do rato\",\n \"SENSING_MOUSEY\": \"posición en Y do rato\",\n \"SENSING_SETDRAGMODE\": \"usar o modo de arrastre %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"arrastrábel\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"non arrastrábel\",\n \"SENSING_LOUDNESS\": \"volume no micrófono\",\n \"SENSING_LOUD\": \"forte?\",\n \"SENSING_TIMER\": \"cronómetro\",\n \"SENSING_RESETTIMER\": \"reiniciar o cronómetro\",\n \"SENSING_OF\": \"%1 de %2\",\n \"SENSING_OF_XPOSITION\": \"posición en X\",\n \"SENSING_OF_YPOSITION\": \"posición en Y\",\n \"SENSING_OF_DIRECTION\": \"dirección\",\n \"SENSING_OF_COSTUMENUMBER\": \"vestimenta n.º\",\n \"SENSING_OF_COSTUMENAME\": \"nome da vestimenta\",\n \"SENSING_OF_SIZE\": \"tamaño\",\n \"SENSING_OF_VOLUME\": \"volume\",\n \"SENSING_OF_BACKDROPNUMBER\": \"fondo n.º\",\n \"SENSING_OF_BACKDROPNAME\": \"nome do fondo\",\n \"SENSING_OF_STAGE\": \"Escenario\",\n \"SENSING_CURRENT\": \"%1 actual\",\n \"SENSING_CURRENT_YEAR\": \"ano\",\n \"SENSING_CURRENT_MONTH\": \"mes\",\n \"SENSING_CURRENT_DATE\": \"data\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"día da semana\",\n \"SENSING_CURRENT_HOUR\": \"hora\",\n \"SENSING_CURRENT_MINUTE\": \"minuto\",\n \"SENSING_CURRENT_SECOND\": \"segundo\",\n \"SENSING_DAYSSINCE2000\": \"días desde o 2000\",\n \"SENSING_USERNAME\": \"nome de usuario\",\n \"SENSING_USERID\": \"identificador de usuario\",\n \"SOUND_PLAY\": \"iniciar son %1\",\n \"SOUND_PLAYUNTILDONE\": \"reproducir %1 até rematar\",\n \"SOUND_STOPALLSOUNDS\": \"deter todos os sons\",\n \"SOUND_SETEFFECTO\": \"aplicar o efecto %1 como %2\",\n \"SOUND_CHANGEEFFECTBY\": \"sumar ao efecto %1 o valor %2\",\n \"SOUND_CLEAREFFECTS\": \"limpar os efectos de son\",\n \"SOUND_EFFECTS_PITCH\": \"ton\",\n \"SOUND_EFFECTS_PAN\": \"canle esquerda/dereita\",\n \"SOUND_CHANGEVOLUMEBY\": \"subir o volume en %1\",\n \"SOUND_SETVOLUMETO\": \"pór o volume no %1%\",\n \"SOUND_VOLUME\": \"volume\",\n \"SOUND_RECORD\": \"gravar...\",\n \"CATEGORY_MOTION\": \"Movemento\",\n \"CATEGORY_LOOKS\": \"Aparencia\",\n \"CATEGORY_SOUND\": \"Son\",\n \"CATEGORY_EVENTS\": \"Eventos\",\n \"CATEGORY_CONTROL\": \"Control\",\n \"CATEGORY_SENSING\": \"Sensores\",\n \"CATEGORY_OPERATORS\": \"Operadores\",\n \"CATEGORY_VARIABLES\": \"Variábeis\",\n \"CATEGORY_MYBLOCKS\": \"Os meus bloques\",\n \"DUPLICATE\": \"Duplicar\",\n \"DELETE\": \"Eliminar\",\n \"ADD_COMMENT\": \"Engadir comentario\",\n \"REMOVE_COMMENT\": \"Retirar comentario\",\n \"DELETE_BLOCK\": \"Eliminar bloque\",\n \"DELETE_X_BLOCKS\": \"Eliminar %1 bloques\",\n \"DELETE_ALL_BLOCKS\": \"Eliminar os %1 bloques?\",\n \"CLEAN_UP\": \"Limpar bloques\",\n \"HELP\": \"Axuda\",\n \"UNDO\": \"Desfacer\",\n \"REDO\": \"Refacer\",\n \"EDIT_PROCEDURE\": \"Editar\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Ir á definición\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Di algo...\",\n \"COLOUR_HUE_LABEL\": \"Cor\",\n \"COLOUR_SATURATION_LABEL\": \"Saturación\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Luminosidade\",\n \"CHANGE_VALUE_TITLE\": \"Cambiar valor:\",\n \"RENAME_VARIABLE\": \"Renomear variábel\",\n \"RENAME_VARIABLE_TITLE\": \"Renomear as variábeis «%1» como:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Renomear variábel\",\n \"NEW_VARIABLE\": \"Crear unha variábel\",\n \"NEW_VARIABLE_TITLE\": \"Nome da nova variábel:\",\n \"VARIABLE_MODAL_TITLE\": \"Nova variábel\",\n \"VARIABLE_ALREADY_EXISTS\": \"Xa existe unha variábel chamada «%1».\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Xa existe unha variábel chamada «%1» para outra variábel de tipo «%2».\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Eliminar %1 usos da variábel «%2»?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Non é posíbel eliminar a variábel «%1» porque é parte da definición da función «%2».\",\n \"DELETE_VARIABLE\": \"Eliminar a variábel «%1»\",\n \"NEW_PROCEDURE\": \"Crear un bloque\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Xa existe un procedemento chamado «%1».\",\n \"PROCEDURE_DEFAULT_NAME\": \"nome do bloque\",\n \"NEW_LIST\": \"Crear unha lista\",\n \"NEW_LIST_TITLE\": \"Nome da nova lista:\",\n \"LIST_MODAL_TITLE\": \"Nova lista\",\n \"LIST_ALREADY_EXISTS\": \"Xa existe unha lista chamada «%1».\",\n \"RENAME_LIST_TITLE\": \"Renomear as listas «%1» como:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Renomear lista\",\n \"DEFAULT_LIST_ITEM\": \"cousa\",\n \"DELETE_LIST\": \"Eliminar a lista «%1»\",\n \"RENAME_LIST\": \"Renomear lista\",\n \"NEW_BROADCAST_MESSAGE\": \"Nova mensaxe\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Nome da nova mensaxe:\",\n \"BROADCAST_MODAL_TITLE\": \"Mensaxe nova\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"mensaxe1\"\n};\n\nBlockly.ScratchMsgs.locales[\"ko\"] =\n{\n \"CONTROL_FOREVER\": \"무한 반복하기\",\n \"CONTROL_REPEAT\": \"%1 번 반복하기\",\n \"CONTROL_IF\": \"만약 %1 (이)라면\",\n \"CONTROL_ELSE\": \"아니면\",\n \"CONTROL_STOP\": \"멈추기\",\n \"CONTROL_STOP_ALL\": \"모두\",\n \"CONTROL_STOP_THIS\": \"이 스크립트\",\n \"CONTROL_STOP_OTHER\": \"이 스프라이트에 있는 다른 스크립트\",\n \"CONTROL_WAIT\": \"%1 초 기다리기\",\n \"CONTROL_WAITUNTIL\": \"%1 까지 기다리기\",\n \"CONTROL_REPEATUNTIL\": \"%1 까지 반복하기\",\n \"CONTROL_WHILE\": \"%1 동안 반복하기\",\n \"CONTROL_FOREACH\": \"%1 변수로 %2 번 반복하기\",\n \"CONTROL_STARTASCLONE\": \"복제되었을 때\",\n \"CONTROL_CREATECLONEOF\": \"%1 복제하기\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"나 자신\",\n \"CONTROL_DELETETHISCLONE\": \"이 복제본 삭제하기\",\n \"CONTROL_COUNTER\": \"카운터\",\n \"CONTROL_INCRCOUNTER\": \"카운터 증가하기\",\n \"CONTROL_CLEARCOUNTER\": \"카운터 초기화\",\n \"CONTROL_ALLATONCE\": \"한 번에 실행하기\",\n \"DATA_SETVARIABLETO\": \"%1 을(를) %2 로 정하기\",\n \"DATA_CHANGEVARIABLEBY\": \"%1 을(를) %2 만큼 바꾸기\",\n \"DATA_SHOWVARIABLE\": \"%1 변수 보이기\",\n \"DATA_HIDEVARIABLE\": \"%1 변수 숨기기\",\n \"DATA_ADDTOLIST\": \"%1 을(를) %2 에 추가하기\",\n \"DATA_DELETEOFLIST\": \"%1 번째 항목을 %2 에서 삭제하기\",\n \"DATA_DELETEALLOFLIST\": \"%1 의 항목을 모두 삭제하기 \",\n \"DATA_INSERTATLIST\": \"%1 을(를) %3 리스트의 %2 번째에 넣기\",\n \"DATA_REPLACEITEMOFLIST\": \"%2 리스트의 %1 번째 항목을 %3 으로 바꾸기\",\n \"DATA_ITEMOFLIST\": \"%2 리스트의 %1 번째 항목\",\n \"DATA_ITEMNUMOFLIST\": \"%2 리스트에서 %1 항목의 위치\",\n \"DATA_LENGTHOFLIST\": \"%1 의 길이\",\n \"DATA_LISTCONTAINSITEM\": \"%1 이(가) %2 을(를) 포함하는가?\",\n \"DATA_SHOWLIST\": \"%1 리스트 보이기\",\n \"DATA_HIDELIST\": \"%1 리스트 숨기기\",\n \"DATA_INDEX_ALL\": \"모두\",\n \"DATA_INDEX_LAST\": \"마지막\",\n \"DATA_INDEX_RANDOM\": \"무작위\",\n \"EVENT_WHENFLAGCLICKED\": \"%1 클릭했을 때\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"이 스프라이트를 클릭했을 때\",\n \"EVENT_WHENSTAGECLICKED\": \"무대를 클릭했을 때\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"이 스프라이트가 %1 에 닿을 때\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"%1 신호를 받았을 때\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"배경이 %1 (으)로 바뀌었을 때\",\n \"EVENT_WHENGREATERTHAN\": \"%1 > %2 일 때\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"타이머\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"음량\",\n \"EVENT_BROADCAST\": \"%1 신호 보내기\",\n \"EVENT_BROADCASTANDWAIT\": \"%1 신호 보내고 기다리기\",\n \"EVENT_WHENKEYPRESSED\": \"%1 키를 눌렀을 때\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"스페이스\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"왼쪽 화살표\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"오른쪽 화살표\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"아래쪽 화살표\",\n \"EVENT_WHENKEYPRESSED_UP\": \"위쪽 화살표\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"아무\",\n \"LOOKS_SAYFORSECS\": \"%1 을(를) %2 초 동안 말하기\",\n \"LOOKS_SAY\": \"%1 말하기\",\n \"LOOKS_HELLO\": \"안녕!\",\n \"LOOKS_THINKFORSECS\": \"%1 을(를) %2 초 동안 생각하기\",\n \"LOOKS_THINK\": \"%1 생각하기\",\n \"LOOKS_HMM\": \"음...\",\n \"LOOKS_SHOW\": \"보이기\",\n \"LOOKS_HIDE\": \"숨기기\",\n \"LOOKS_HIDEALLSPRITES\": \"모든 스프라이트 숨기기\",\n \"LOOKS_EFFECT_COLOR\": \"색깔\",\n \"LOOKS_EFFECT_FISHEYE\": \"어안 렌즈\",\n \"LOOKS_EFFECT_WHIRL\": \"소용돌이\",\n \"LOOKS_EFFECT_PIXELATE\": \"픽셀화\",\n \"LOOKS_EFFECT_MOSAIC\": \"모자이크\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"밝기\",\n \"LOOKS_EFFECT_GHOST\": \"투명도\",\n \"LOOKS_CHANGEEFFECTBY\": \"%1 효과를 %2 만큼 바꾸기\",\n \"LOOKS_SETEFFECTTO\": \"%1 효과를 %2 (으)로 정하기\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"그래픽 효과 지우기\",\n \"LOOKS_CHANGESIZEBY\": \"크기를 %1 만큼 바꾸기\",\n \"LOOKS_SETSIZETO\": \"크기를 %1 %로 정하기\",\n \"LOOKS_SIZE\": \"크기\",\n \"LOOKS_CHANGESTRETCHBY\": \"너비를 %1 만큼 바꾸기\",\n \"LOOKS_SETSTRETCHTO\": \"너비를 %1 %로 정하기\",\n \"LOOKS_SWITCHCOSTUMETO\": \"모양을 %1 (으)로 바꾸기\",\n \"LOOKS_NEXTCOSTUME\": \"다음 모양으로 바꾸기\",\n \"LOOKS_SWITCHBACKDROPTO\": \"배경을 %1 (으)로 바꾸기\",\n \"LOOKS_GOTOFRONTBACK\": \"%1 으로 순서 바꾸기\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"맨 앞쪽\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"맨 뒤쪽\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"%1 %2 단계 보내기\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"앞으로\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"뒤로\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"배경 %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"모양 %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"번호\",\n \"LOOKS_NUMBERNAME_NAME\": \"이름\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"배경을 %1 (으)로 바꾸고 기다리기\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"다음 배경으로 바꾸기\",\n \"LOOKS_NEXTBACKDROP\": \"다음 배경\",\n \"LOOKS_PREVIOUSBACKDROP\": \"이전 배경\",\n \"LOOKS_RANDOMBACKDROP\": \"무작위 배경\",\n \"MOTION_MOVESTEPS\": \"%1 만큼 움직이기\",\n \"MOTION_TURNLEFT\": \"%1 방향으로 %2 도 회전하기\",\n \"MOTION_TURNRIGHT\": \"%1 방향으로 %2 도 회전하기\",\n \"MOTION_POINTINDIRECTION\": \"%1 도 방향 보기\",\n \"MOTION_POINTTOWARDS\": \"%1 쪽 보기\",\n \"MOTION_POINTTOWARDS_POINTER\": \"마우스 포인터\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"무작위 방향\",\n \"MOTION_GOTO\": \"%1 (으)로 이동하기\",\n \"MOTION_GOTO_POINTER\": \"마우스 포인터\",\n \"MOTION_GOTO_RANDOM\": \"무작위 위치\",\n \"MOTION_GOTOXY\": \"x: %1 y: %2 (으)로 이동하기\",\n \"MOTION_GLIDESECSTOXY\": \"%1 초 동안 x: %2 y: %3 (으)로 이동하기\",\n \"MOTION_GLIDETO\": \"%1 초 동안 %2 (으)로 이동하기\",\n \"MOTION_GLIDETO_POINTER\": \"마우스 포인터\",\n \"MOTION_GLIDETO_RANDOM\": \"무작위 위치\",\n \"MOTION_CHANGEXBY\": \"x 좌표를 %1 만큼 바꾸기\",\n \"MOTION_SETX\": \"x 좌표를 %1 (으)로 정하기\",\n \"MOTION_CHANGEYBY\": \"y 좌표를 %1 만큼 바꾸기\",\n \"MOTION_SETY\": \"y 좌표를 %1 (으)로 정하기\",\n \"MOTION_IFONEDGEBOUNCE\": \"벽에 닿으면 튕기기\",\n \"MOTION_SETROTATIONSTYLE\": \"회전 방식을 %1 (으)로 정하기\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"왼쪽-오른쪽\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"회전하지 않기\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"회전하기\",\n \"MOTION_XPOSITION\": \"x 좌표\",\n \"MOTION_YPOSITION\": \"y 좌표\",\n \"MOTION_DIRECTION\": \"방향\",\n \"MOTION_SCROLLRIGHT\": \"오른쪽으로 %1 만큼 스크롤하기\",\n \"MOTION_SCROLLUP\": \"위쪽으로 %1 만큼 스크롤하기\",\n \"MOTION_ALIGNSCENE\": \"화면을 %1 로 정렬하기\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"왼쪽 아래\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"오른쪽 아래\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"가운데\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"왼쪽 위\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"오른쪽 위\",\n \"MOTION_XSCROLL\": \"x 스크롤\",\n \"MOTION_YSCROLL\": \"y 스크롤\",\n \"MOTION_STAGE_SELECTED\": \"무대 선택됨: 동작 블록 없음\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 × %2\",\n \"OPERATORS_DIVIDE\": \"%1 ÷ %2\",\n \"OPERATORS_RANDOM\": \"%1 부터 %2 사이의 난수\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 그리고 %2\",\n \"OPERATORS_OR\": \"%1 또는 %2\",\n \"OPERATORS_NOT\": \"%1 이(가) 아니다\",\n \"OPERATORS_JOIN\": \"%1 와(과) %2 결합하기\",\n \"OPERATORS_JOIN_APPLE\": \"가위\",\n \"OPERATORS_JOIN_BANANA\": \"나무\",\n \"OPERATORS_LETTEROF\": \"%2 의 %1 번째 글자\",\n \"OPERATORS_LETTEROF_APPLE\": \"가\",\n \"OPERATORS_LENGTH\": \"%1 의 길이\",\n \"OPERATORS_CONTAINS\": \"%1 이(가) %2 을(를) 포함하는가?\",\n \"OPERATORS_MOD\": \"%1 나누기 %2 의 나머지\",\n \"OPERATORS_ROUND\": \"%1 의 반올림\",\n \"OPERATORS_MATHOP\": \"%1 ( %2 )\",\n \"OPERATORS_MATHOP_ABS\": \"절댓값\",\n \"OPERATORS_MATHOP_FLOOR\": \"버림\",\n \"OPERATORS_MATHOP_CEILING\": \"올림\",\n \"OPERATORS_MATHOP_SQRT\": \"제곱근\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"%1 정의하기\",\n \"SENSING_TOUCHINGOBJECT\": \"%1 에 닿았는가?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"마우스 포인터\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"벽\",\n \"SENSING_TOUCHINGCOLOR\": \"%1 색에 닿았는가?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"%1 색이 %2 색에 닿았는가?\",\n \"SENSING_DISTANCETO\": \"%1 까지의 거리\",\n \"SENSING_DISTANCETO_POINTER\": \"마우스 포인터\",\n \"SENSING_ASKANDWAIT\": \"%1 라고 묻고 기다리기\",\n \"SENSING_ASK_TEXT\": \"너 이름이 뭐니?\",\n \"SENSING_ANSWER\": \"대답\",\n \"SENSING_KEYPRESSED\": \"%1 키를 눌렸는가?\",\n \"SENSING_MOUSEDOWN\": \"마우스를 클릭했는가?\",\n \"SENSING_MOUSEX\": \"마우스의 x좌표\",\n \"SENSING_MOUSEY\": \"마우스의 y좌표\",\n \"SENSING_SETDRAGMODE\": \"드래그 모드를 %1 상태로 정하기\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"드래그 할 수 있는\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"드래그 할 수 없는\",\n \"SENSING_LOUDNESS\": \"음량\",\n \"SENSING_LOUD\": \"소리가 큰가?\",\n \"SENSING_TIMER\": \"타이머\",\n \"SENSING_RESETTIMER\": \"타이머 초기화\",\n \"SENSING_OF\": \"%2 의 %1\",\n \"SENSING_OF_XPOSITION\": \"x좌표\",\n \"SENSING_OF_YPOSITION\": \"y좌표\",\n \"SENSING_OF_DIRECTION\": \"방향\",\n \"SENSING_OF_COSTUMENUMBER\": \"모양 번호\",\n \"SENSING_OF_COSTUMENAME\": \"모양 이름\",\n \"SENSING_OF_SIZE\": \"크기\",\n \"SENSING_OF_VOLUME\": \"음량\",\n \"SENSING_OF_BACKDROPNUMBER\": \"배경 번호\",\n \"SENSING_OF_BACKDROPNAME\": \"배경 이름\",\n \"SENSING_OF_STAGE\": \"무대\",\n \"SENSING_CURRENT\": \"현재 %1\",\n \"SENSING_CURRENT_YEAR\": \"년\",\n \"SENSING_CURRENT_MONTH\": \"월\",\n \"SENSING_CURRENT_DATE\": \"일\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"요일\",\n \"SENSING_CURRENT_HOUR\": \"시\",\n \"SENSING_CURRENT_MINUTE\": \"분\",\n \"SENSING_CURRENT_SECOND\": \"초\",\n \"SENSING_DAYSSINCE2000\": \"2000년 이후 현재까지 날짜 수\",\n \"SENSING_USERNAME\": \"사용자 이름\",\n \"SENSING_USERID\": \"사용자 번호\",\n \"SOUND_PLAY\": \"%1 재생하기\",\n \"SOUND_PLAYUNTILDONE\": \"%1 끝까지 재생하기\",\n \"SOUND_STOPALLSOUNDS\": \"모든 소리 끄기\",\n \"SOUND_SETEFFECTO\": \"%1 효과를 %2 로 정하기\",\n \"SOUND_CHANGEEFFECTBY\": \"%1 효과를 %2 만큼 바꾸기\",\n \"SOUND_CLEAREFFECTS\": \"소리 효과 지우기\",\n \"SOUND_EFFECTS_PITCH\": \"음 높이\",\n \"SOUND_EFFECTS_PAN\": \"음향 위치 왼쪽/오른쪽\",\n \"SOUND_CHANGEVOLUMEBY\": \"음량을 %1 만큼 바꾸기\",\n \"SOUND_SETVOLUMETO\": \"음량을 %1% 로 정하기\",\n \"SOUND_VOLUME\": \"음량\",\n \"SOUND_RECORD\": \"녹음하기...\",\n \"CATEGORY_MOTION\": \"동작\",\n \"CATEGORY_LOOKS\": \"형태\",\n \"CATEGORY_SOUND\": \"소리\",\n \"CATEGORY_EVENTS\": \"이벤트\",\n \"CATEGORY_CONTROL\": \"제어\",\n \"CATEGORY_SENSING\": \"감지\",\n \"CATEGORY_OPERATORS\": \"연산\",\n \"CATEGORY_VARIABLES\": \"변수\",\n \"CATEGORY_MYBLOCKS\": \"나만의 블록\",\n \"DUPLICATE\": \"복사하기\",\n \"DELETE\": \"삭제하기\",\n \"ADD_COMMENT\": \"주석 넣기\",\n \"REMOVE_COMMENT\": \"주석 지우기\",\n \"DELETE_BLOCK\": \"블록 삭제하기\",\n \"DELETE_X_BLOCKS\": \"블록 %1개 삭제하기\",\n \"DELETE_ALL_BLOCKS\": \" %1개의 블록을 모두 삭제할까요?\",\n \"CLEAN_UP\": \"블록 정리하기\",\n \"HELP\": \"도움말\",\n \"UNDO\": \"되돌리기\",\n \"REDO\": \"재시도\",\n \"EDIT_PROCEDURE\": \"편집\",\n \"SHOW_PROCEDURE_DEFINITION\": \"정의로 이동하기\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"무엇이든 말하여 봅시다.\",\n \"COLOUR_HUE_LABEL\": \"색상\",\n \"COLOUR_SATURATION_LABEL\": \"채도\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"명도\",\n \"CHANGE_VALUE_TITLE\": \"값 바꾸기:\",\n \"RENAME_VARIABLE\": \"변수 이름 바꾸기\",\n \"RENAME_VARIABLE_TITLE\": \"\\\"%1\\\" 변수 이름을 모두 다음으로 수정하기:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"변수 이름 바꾸기\",\n \"NEW_VARIABLE\": \"변수 만들기\",\n \"NEW_VARIABLE_TITLE\": \"새로운 변수 이름:\",\n \"VARIABLE_MODAL_TITLE\": \"새로운 변수\",\n \"VARIABLE_ALREADY_EXISTS\": \"\\\"%1\\\" 변수 이름은 이미 존재합니다.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"\\\"%1\\\" 변수 이름은 이미 \\\"%2\\\" 형태의 다른 변수로 존재합니다.\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"\\\"%2\\\" 변수가 사용된 %1곳을 삭제할까요?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"\\\"%2\\\" 함수의 정의 중 일부분이기 때문에 \\\"%1\\\" 변수를 삭제할 수 없습니다.\",\n \"DELETE_VARIABLE\": \"\\\"%1\\\" 변수 삭제하기\",\n \"NEW_PROCEDURE\": \"블록 만들기\",\n \"PROCEDURE_ALREADY_EXISTS\": \"\\\"%1\\\" 함수 이름은 이미 존재합니다.\",\n \"PROCEDURE_DEFAULT_NAME\": \"블록 이름\",\n \"NEW_LIST\": \"리스트 만들기\",\n \"NEW_LIST_TITLE\": \"새로운 리스트 이름:\",\n \"LIST_MODAL_TITLE\": \"새로운 리스트\",\n \"LIST_ALREADY_EXISTS\": \"\\\"%1\\\" 리스트 이름은 이미 존재합니다.\",\n \"RENAME_LIST_TITLE\": \"\\\"%1\\\" 리스트 이름을 모두 다음으로 수정하기: \",\n \"RENAME_LIST_MODAL_TITLE\": \"리스트 이름 바꾸기\",\n \"DEFAULT_LIST_ITEM\": \"항목\",\n \"DELETE_LIST\": \"\\\"%1\\\" 리스트 삭제하기\",\n \"RENAME_LIST\": \"리스트 이름 바꾸기\",\n \"NEW_BROADCAST_MESSAGE\": \"새로운 메시지\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"새로운 메시지 이름:\",\n \"BROADCAST_MODAL_TITLE\": \"새로운 메시지\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"메시지1\"\n};\n\nBlockly.ScratchMsgs.locales[\"he\"] =\n{\n \"CONTROL_FOREVER\": \"לעולמים\",\n \"CONTROL_REPEAT\": \"חזור %1 פעמים\",\n \"CONTROL_IF\": \"אם %1 אז\",\n \"CONTROL_ELSE\": \"אחרת\",\n \"CONTROL_STOP\": \"עצור\",\n \"CONTROL_STOP_ALL\": \"הכל\",\n \"CONTROL_STOP_THIS\": \"תסריט זה\",\n \"CONTROL_STOP_OTHER\": \"תסריטים אחרים בדמות\",\n \"CONTROL_WAIT\": \"חכה %1 שניות\",\n \"CONTROL_WAITUNTIL\": \"חכה עד ש %1\",\n \"CONTROL_REPEATUNTIL\": \"חזור עד ש %1\",\n \"CONTROL_WHILE\": \"כל עוד %1\",\n \"CONTROL_FOREACH\": \"עבור כל %1 ב %2\",\n \"CONTROL_STARTASCLONE\": \"כאשר מופעל ככפיל\",\n \"CONTROL_CREATECLONEOF\": \"צור כפיל של %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"עצמי\",\n \"CONTROL_DELETETHISCLONE\": \"מחק כפיל זה\",\n \"CONTROL_COUNTER\": \"מונה\",\n \"CONTROL_INCRCOUNTER\": \"הגדל מונה\",\n \"CONTROL_CLEARCOUNTER\": \"אפס מונה\",\n \"CONTROL_ALLATONCE\": \"הכל בבת אחת\",\n \"DATA_SETVARIABLETO\": \"קבע %1 ל %2\",\n \"DATA_CHANGEVARIABLEBY\": \"שנה %1 ב %2\",\n \"DATA_SHOWVARIABLE\": \"הצג משתנה %1\",\n \"DATA_HIDEVARIABLE\": \"הסתר משתנה %1\",\n \"DATA_ADDTOLIST\": \"הוסף %1 ל %2\",\n \"DATA_DELETEOFLIST\": \"מחק פריט %1 מתוך %2\",\n \"DATA_DELETEALLOFLIST\": \"מחק הכל מ%1\",\n \"DATA_INSERTATLIST\": \"הכנס %1 במקום %2 של %3\",\n \"DATA_REPLACEITEMOFLIST\": \"קבע פריט %1 של %2 ל %3\",\n \"DATA_ITEMOFLIST\": \"פריט %1 של %2\",\n \"DATA_ITEMNUMOFLIST\": \"# פריט של %1 ב- %2\",\n \"DATA_LENGTHOFLIST\": \"האורך של %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 מכיל %2 ?\",\n \"DATA_SHOWLIST\": \"הצג רשימה %1\",\n \"DATA_HIDELIST\": \"הסתר רשימה %1\",\n \"DATA_INDEX_ALL\": \"הכל\",\n \"DATA_INDEX_LAST\": \"אחרון\",\n \"DATA_INDEX_RANDOM\": \"אקראי\",\n \"EVENT_WHENFLAGCLICKED\": \"כאשר לוחצים על %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"כאשר לוחצים על דמות זו\",\n \"EVENT_WHENSTAGECLICKED\": \"כאשר לוחצים על הבמה\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"כאשר דמות זו נוגעת ב %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"כאשר מתקבל מסר %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"כאשר הרקע משתנה ל %1\",\n \"EVENT_WHENGREATERTHAN\": \"כאשר %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"שעון עצר\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"עוצמת קול\",\n \"EVENT_BROADCAST\": \"שדר מסר %1\",\n \"EVENT_BROADCASTANDWAIT\": \"שדר מסר %1 וחכה\",\n \"EVENT_WHENKEYPRESSED\": \"כאשר נלחץ מקש %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"רווח\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"חץ שמאלי\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"חץ ימני\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"חץ מטה\",\n \"EVENT_WHENKEYPRESSED_UP\": \"חץ מעלה\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"כל\",\n \"LOOKS_SAYFORSECS\": \"אמור %1 למשך %2 שניות\",\n \"LOOKS_SAY\": \"אמור %1\",\n \"LOOKS_HELLO\": \"שלום!\",\n \"LOOKS_THINKFORSECS\": \"חשוב %1 למשך %2 שניות\",\n \"LOOKS_THINK\": \"חשוב %1\",\n \"LOOKS_HMM\": \"הממ...\",\n \"LOOKS_SHOW\": \"הצג\",\n \"LOOKS_HIDE\": \"הסתר\",\n \"LOOKS_HIDEALLSPRITES\": \"הסתר את כל הדמויות\",\n \"LOOKS_EFFECT_COLOR\": \"צבע\",\n \"LOOKS_EFFECT_FISHEYE\": \"עין דג\",\n \"LOOKS_EFFECT_WHIRL\": \"סחרור\",\n \"LOOKS_EFFECT_PIXELATE\": \"פיקסלים\",\n \"LOOKS_EFFECT_MOSAIC\": \"פסיפס\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"בהירות\",\n \"LOOKS_EFFECT_GHOST\": \"רוח רפאים\",\n \"LOOKS_CHANGEEFFECTBY\": \"שנה אפקט %1 ב %2\",\n \"LOOKS_SETEFFECTTO\": \"קבע אפקט %1 ל %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"נקה אפקטים\",\n \"LOOKS_CHANGESIZEBY\": \"שנה גודל ב %1\",\n \"LOOKS_SETSIZETO\": \"קבע גודל ל %1 %\",\n \"LOOKS_SIZE\": \"גודל\",\n \"LOOKS_CHANGESTRETCHBY\": \"שנה מתיחה ב %1\",\n \"LOOKS_SETSTRETCHTO\": \"קבע מתיחה ל %1\",\n \"LOOKS_SWITCHCOSTUMETO\": \"קבע תלבושת ל %1\",\n \"LOOKS_NEXTCOSTUME\": \"התלבושת הבאה\",\n \"LOOKS_SWITCHBACKDROPTO\": \"קבע רקע ל %1\",\n \"LOOKS_GOTOFRONTBACK\": \"העבר לשכבה ה %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"קדמית\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"אחורית\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"העבר %2 שכבות %1\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"קדימה\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"אחורה\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"%1 רקע\",\n \"LOOKS_COSTUMENUMBERNAME\": \"%1 תלבושת\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"מספר\",\n \"LOOKS_NUMBERNAME_NAME\": \"שם\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"החלף רקע ל %1 וחכה\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"הרקע הבא\",\n \"LOOKS_NEXTBACKDROP\": \"הרקע הבא\",\n \"LOOKS_PREVIOUSBACKDROP\": \"הרקע הקודם\",\n \"LOOKS_RANDOMBACKDROP\": \"רקע אקראי\",\n \"MOTION_MOVESTEPS\": \"זוז %1 צעדים\",\n \"MOTION_TURNLEFT\": \"הסתובב %1 %2 מעלות\",\n \"MOTION_TURNRIGHT\": \"הסתובב %1 %2 מעלות\",\n \"MOTION_POINTINDIRECTION\": \"פנה לכיוון %1\",\n \"MOTION_POINTTOWARDS\": \"פנה לכיוון של %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"מצביע העכבר\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"כיוון אקראי\",\n \"MOTION_GOTO\": \"קפוץ אל %1\",\n \"MOTION_GOTO_POINTER\": \"מצביע העכבר\",\n \"MOTION_GOTO_RANDOM\": \"מיקום אקראי\",\n \"MOTION_GOTOXY\": \"קפוץ אל x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"גלוש %1 שניות ל x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"גלוש %1 שניות ל %2\",\n \"MOTION_GLIDETO_POINTER\": \"סמן העכבר\",\n \"MOTION_GLIDETO_RANDOM\": \"מיקום אקראי\",\n \"MOTION_CHANGEXBY\": \"שנה את ערך x ב %1\",\n \"MOTION_SETX\": \"קבע את ערך x ל %1\",\n \"MOTION_CHANGEYBY\": \"שנה את ערך y ב %1\",\n \"MOTION_SETY\": \"קבע את ערך y ל %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"בנגיעה במסגרת שנה כיוון\",\n \"MOTION_SETROTATIONSTYLE\": \"קבע אופן סיבוב %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"שמאל-ימין\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"בטל סיבוב\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"מסביב\",\n \"MOTION_XPOSITION\": \"מיקום על ציר x\",\n \"MOTION_YPOSITION\": \"מיקום על ציר Y\",\n \"MOTION_DIRECTION\": \"כיוון\",\n \"MOTION_SCROLLRIGHT\": \"גלול ימינה %1\",\n \"MOTION_SCROLLUP\": \"גלול למעלה %1\",\n \"MOTION_ALIGNSCENE\": \"ישר סצנה %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"למטה־משמאל\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"למטה־מימין\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"אמצעי\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"למעלה־משמאל\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"למעלה־מימין\",\n \"MOTION_XSCROLL\": \"גלילה בציר x\",\n \"MOTION_YSCROLL\": \"גלילה בציר y\",\n \"MOTION_STAGE_SELECTED\": \"נבחרה במה: אין לבנים לתנועה\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%2 - %1\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%2 / %1\",\n \"OPERATORS_RANDOM\": \"בחר מספר אקראי בין %1 ל %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 וגם %2\",\n \"OPERATORS_OR\": \"%1 או %2\",\n \"OPERATORS_NOT\": \"לא %1\",\n \"OPERATORS_JOIN\": \"חבר %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"תפוח\",\n \"OPERATORS_JOIN_BANANA\": \"בננה\",\n \"OPERATORS_LETTEROF\": \"אות %1 של %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"ת\",\n \"OPERATORS_LENGTH\": \"האורך של %1\",\n \"OPERATORS_CONTAINS\": \"%1 מכיל %2 ?\",\n \"OPERATORS_MOD\": \"%1 מודולו %2\",\n \"OPERATORS_ROUND\": \"עגל %1\",\n \"OPERATORS_MATHOP\": \"%1 של %2\",\n \"OPERATORS_MATHOP_ABS\": \"ערך מוחלט\",\n \"OPERATORS_MATHOP_FLOOR\": \"עיגול למטה\",\n \"OPERATORS_MATHOP_CEILING\": \"עיגול למעלה\",\n \"OPERATORS_MATHOP_SQRT\": \"שורש ריבועי\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"‏e בחזקה\",\n \"OPERATORS_MATHOP_10EXP\": \"‏10 בחזקה\",\n \"PROCEDURES_DEFINITION\": \"הגדר %1\",\n \"SENSING_TOUCHINGOBJECT\": \"נוגע ב %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"סמן העכבר\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"קצה\",\n \"SENSING_TOUCHINGCOLOR\": \"נוגע בצבע %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"צבע %1 נוגע בצבע %2?\",\n \"SENSING_DISTANCETO\": \"מרחק אל %1\",\n \"SENSING_DISTANCETO_POINTER\": \"סמן העכבר\",\n \"SENSING_ASKANDWAIT\": \"שאל %1 והמתן\",\n \"SENSING_ASK_TEXT\": \"מה השם שלך?\",\n \"SENSING_ANSWER\": \"תשובה\",\n \"SENSING_KEYPRESSED\": \"מקש %1 נלחץ?\",\n \"SENSING_MOUSEDOWN\": \"עכבר נלחץ?\",\n \"SENSING_MOUSEX\": \"מיקום עכבר בציר x\",\n \"SENSING_MOUSEY\": \"מיקום עכבר בציר y\",\n \"SENSING_SETDRAGMODE\": \"קבע מצב גרירה ל %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"ניתן לגרירה\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"לא ניתן לגרירה\",\n \"SENSING_LOUDNESS\": \"עוצמת קול\",\n \"SENSING_LOUD\": \"עוצמת קול?\",\n \"SENSING_TIMER\": \"שעון עצר\",\n \"SENSING_RESETTIMER\": \"אפס מונה\",\n \"SENSING_OF\": \"%1 של %2\",\n \"SENSING_OF_XPOSITION\": \"מיקום על ציר x\",\n \"SENSING_OF_YPOSITION\": \"מיקום על ציר y\",\n \"SENSING_OF_DIRECTION\": \"כיוון\",\n \"SENSING_OF_COSTUMENUMBER\": \"# תלבושת\",\n \"SENSING_OF_COSTUMENAME\": \"שם תלבושת\",\n \"SENSING_OF_SIZE\": \"גודל\",\n \"SENSING_OF_VOLUME\": \"עוצמת קול\",\n \"SENSING_OF_BACKDROPNUMBER\": \"# רקע\",\n \"SENSING_OF_BACKDROPNAME\": \"שם רקע\",\n \"SENSING_OF_STAGE\": \"במה\",\n \"SENSING_CURRENT\": \"%1 נוכחית\",\n \"SENSING_CURRENT_YEAR\": \"שנה\",\n \"SENSING_CURRENT_MONTH\": \"חודש\",\n \"SENSING_CURRENT_DATE\": \"תאריך\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"יום בשבוע\",\n \"SENSING_CURRENT_HOUR\": \"שעה\",\n \"SENSING_CURRENT_MINUTE\": \"דקה\",\n \"SENSING_CURRENT_SECOND\": \"שניה\",\n \"SENSING_DAYSSINCE2000\": \"ימים מאז 2000\",\n \"SENSING_USERNAME\": \"שם משתמש\",\n \"SENSING_USERID\": \"זהות המשתמש\",\n \"SOUND_PLAY\": \"נגן צליל %1\",\n \"SOUND_PLAYUNTILDONE\": \"נגן צליל %1 עד לסיום\",\n \"SOUND_STOPALLSOUNDS\": \"הפסק את כל הצלילים\",\n \"SOUND_SETEFFECTO\": \"קבע אפקט %1 ל %2\",\n \"SOUND_CHANGEEFFECTBY\": \"שנה אפקט %1 ב %2\",\n \"SOUND_CLEAREFFECTS\": \"נקה אפקטים קוליים\",\n \"SOUND_EFFECTS_PITCH\": \"גובה צליל\",\n \"SOUND_EFFECTS_PAN\": \"ערוץ שמע שמאלי/ימני\",\n \"SOUND_CHANGEVOLUMEBY\": \"שנה עוצמת קול ב %1\",\n \"SOUND_SETVOLUMETO\": \"קבע עוצמת קול ל %1%\",\n \"SOUND_VOLUME\": \"עוצמת קול\",\n \"SOUND_RECORD\": \"הקלט...\",\n \"CATEGORY_MOTION\": \"תנועה\",\n \"CATEGORY_LOOKS\": \"מראה\",\n \"CATEGORY_SOUND\": \"צלילים\",\n \"CATEGORY_EVENTS\": \"אירועים\",\n \"CATEGORY_CONTROL\": \"בקרה\",\n \"CATEGORY_SENSING\": \"חיישנים\",\n \"CATEGORY_OPERATORS\": \"מפעילים\",\n \"CATEGORY_VARIABLES\": \"משתנים\",\n \"CATEGORY_MYBLOCKS\": \"הלבנים שלי\",\n \"DUPLICATE\": \"שכפל\",\n \"DELETE\": \"מחק\",\n \"ADD_COMMENT\": \"הוספת תגובה\",\n \"REMOVE_COMMENT\": \"מחק תגובה\",\n \"DELETE_BLOCK\": \"מחק לבנה\",\n \"DELETE_X_BLOCKS\": \"מחק %1 לבנים \",\n \"DELETE_ALL_BLOCKS\": \"למחוק את כל הלבנים של %1?\",\n \"CLEAN_UP\": \"נקה לבנים\",\n \"HELP\": \"עזרה\",\n \"UNDO\": \"בטל\",\n \"REDO\": \"בצע שוב\",\n \"EDIT_PROCEDURE\": \"ערוך\",\n \"SHOW_PROCEDURE_DEFINITION\": \"עבור להגדרה\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"כתבו משהו...\",\n \"COLOUR_HUE_LABEL\": \"צבע\",\n \"COLOUR_SATURATION_LABEL\": \"רווי צבע\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"בהירות\",\n \"CHANGE_VALUE_TITLE\": \"שנה ערך:\",\n \"RENAME_VARIABLE\": \"שנה שם משתנה\",\n \"RENAME_VARIABLE_TITLE\": \"שנה שמם של כל המשתנים \\\"%1\\\" ל:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"שנה שם משתנה\",\n \"NEW_VARIABLE\": \"צור משתנה\",\n \"NEW_VARIABLE_TITLE\": \"שם המשתנה החדש\",\n \"VARIABLE_MODAL_TITLE\": \"משתנה חדש\",\n \"VARIABLE_ALREADY_EXISTS\": \"משתנה בשם \\\"%1\\\" כבר קיים\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"משתנה בשם \\\"%1\\\" כבר קיים למשתנה אחר %2\\\"\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"האם למחוק את %1 השימושים של המשתנה %2 ?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"לא ניתן למחוק את המשתנה \\\"%1\\\" מפני שזה חלק מהגדרת הפונקציה \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"מחק את המשתנה \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"צור לבנה\",\n \"PROCEDURE_ALREADY_EXISTS\": \"פרוצדורה בשם \\\"%1\\\" כבר קיימת\",\n \"PROCEDURE_DEFAULT_NAME\": \"שם הלבנה\",\n \"NEW_LIST\": \"צור רשימה\",\n \"NEW_LIST_TITLE\": \"שם הרשימה\",\n \"LIST_MODAL_TITLE\": \"רשימה חדשה\",\n \"LIST_ALREADY_EXISTS\": \"רשימה בשם \\\"%1\\\" כבר קיימת\",\n \"RENAME_LIST_TITLE\": \"שנה את שם כל רשימות ־\\\"%1\\\" ל:\",\n \"RENAME_LIST_MODAL_TITLE\": \"שנה שם רשימה\",\n \"DEFAULT_LIST_ITEM\": \"דבר\",\n \"DELETE_LIST\": \"מחק את הרשימה %1\",\n \"RENAME_LIST\": \"תן שם חדש לרשימה\",\n \"NEW_BROADCAST_MESSAGE\": \"מסר חדש\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"צור מסר חדש\",\n \"BROADCAST_MODAL_TITLE\": \"מסר חדש\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"מסר 1\"\n};\n\nBlockly.ScratchMsgs.locales[\"hr\"] =\n{\n \"CONTROL_FOREVER\": \"ponavljaj\",\n \"CONTROL_REPEAT\": \"ponovi %1\",\n \"CONTROL_IF\": \"ako %1 onda\",\n \"CONTROL_ELSE\": \"inače\",\n \"CONTROL_STOP\": \"zaustavi\",\n \"CONTROL_STOP_ALL\": \"sve\",\n \"CONTROL_STOP_THIS\": \"ovaj program\",\n \"CONTROL_STOP_OTHER\": \"druge programe lika\",\n \"CONTROL_WAIT\": \"čekaj %1 sekundi\",\n \"CONTROL_WAITUNTIL\": \"čekaj do %1\",\n \"CONTROL_REPEATUNTIL\": \"ponavljaj dok nije %1\",\n \"CONTROL_WHILE\": \"dok je %1\",\n \"CONTROL_FOREACH\": \"za svaki %1 u %2\",\n \"CONTROL_STARTASCLONE\": \"kada krećem kao klon\",\n \"CONTROL_CREATECLONEOF\": \"kloniraj %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"ja\",\n \"CONTROL_DELETETHISCLONE\": \"izbriši klona\",\n \"CONTROL_COUNTER\": \"brojač\",\n \"CONTROL_INCRCOUNTER\": \"uvečaj brojač\",\n \"CONTROL_CLEARCOUNTER\": \"obriši brojač\",\n \"CONTROL_ALLATONCE\": \"sve odjednom\",\n \"DATA_SETVARIABLETO\": \"postavi %1 na %2\",\n \"DATA_CHANGEVARIABLEBY\": \"promijeni %1 za %2\",\n \"DATA_SHOWVARIABLE\": \"prikaži varijablu %1\",\n \"DATA_HIDEVARIABLE\": \"sakrij varijablu %1\",\n \"DATA_ADDTOLIST\": \"dodaj %1 u %2\",\n \"DATA_DELETEOFLIST\": \"izbriši %1 iz %2\",\n \"DATA_DELETEALLOFLIST\": \"izbriši sve %1\",\n \"DATA_INSERTATLIST\": \"umetni %1 na %2 u %3\",\n \"DATA_REPLACEITEMOFLIST\": \"zamijeni %1 na %2 s %3\",\n \"DATA_ITEMOFLIST\": \"element %1 od %2\",\n \"DATA_ITEMNUMOFLIST\": \"element # od %1 u %2\",\n \"DATA_LENGTHOFLIST\": \"dužina %1\",\n \"DATA_LISTCONTAINSITEM\": \"Sadrži li %1 %2?\",\n \"DATA_SHOWLIST\": \"prikaži listu %1\",\n \"DATA_HIDELIST\": \"sakrij listu %1\",\n \"DATA_INDEX_ALL\": \"sve\",\n \"DATA_INDEX_LAST\": \"posljednje\",\n \"DATA_INDEX_RANDOM\": \"nasumično\",\n \"EVENT_WHENFLAGCLICKED\": \"Kada je kliknuta %1 \",\n \"EVENT_WHENTHISSPRITECLICKED\": \"Kada je lik kliknut\",\n \"EVENT_WHENSTAGECLICKED\": \"kada je kliknuto na pozadinu\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"kada lik dodiruje %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"kada primim %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"kada se pozadina promijeni u %1\",\n \"EVENT_WHENGREATERTHAN\": \"kada je %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"štoperica\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"glasnoća\",\n \"EVENT_BROADCAST\": \"pošalji %1\",\n \"EVENT_BROADCASTANDWAIT\": \"pošalji %1 i čekaj\",\n \"EVENT_WHENKEYPRESSED\": \"kada je tipka %1 pritisnuta\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"razmaknica\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"strelica lijevo\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"strelica desno\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"strelica dolje\",\n \"EVENT_WHENKEYPRESSED_UP\": \"strelica gore\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"bilo koja\",\n \"LOOKS_SAYFORSECS\": \"govori %1 %2 sekundi\",\n \"LOOKS_SAY\": \"reci %1\",\n \"LOOKS_HELLO\": \"Bok!\",\n \"LOOKS_THINKFORSECS\": \"razmišljaj %1 %2 sekundi\",\n \"LOOKS_THINK\": \"misli %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"prikaži\",\n \"LOOKS_HIDE\": \"sakrij\",\n \"LOOKS_HIDEALLSPRITES\": \"sakrij sve likove\",\n \"LOOKS_EFFECT_COLOR\": \"boja\",\n \"LOOKS_EFFECT_FISHEYE\": \"riblje oko\",\n \"LOOKS_EFFECT_WHIRL\": \"vrtlog\",\n \"LOOKS_EFFECT_PIXELATE\": \"pozrnati\",\n \"LOOKS_EFFECT_MOSAIC\": \"mozaik\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"osvjetljenje\",\n \"LOOKS_EFFECT_GHOST\": \"duh\",\n \"LOOKS_CHANGEEFFECTBY\": \"promijeni efekt %1 za %2\",\n \"LOOKS_SETEFFECTTO\": \"promijeni efekt %1 na %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"ukloni grafičke efekte\",\n \"LOOKS_CHANGESIZEBY\": \"promijeni veličinu za %1\",\n \"LOOKS_SETSIZETO\": \"postavi veličinu na %1 %\",\n \"LOOKS_SIZE\": \"veličina\",\n \"LOOKS_CHANGESTRETCHBY\": \"promijeni uvećanje za %1\",\n \"LOOKS_SETSTRETCHTO\": \"postavi uvećanje na %1\",\n \"LOOKS_SWITCHCOSTUMETO\": \"promijeni kostim u %1\",\n \"LOOKS_NEXTCOSTUME\": \"sljedeći kostim\",\n \"LOOKS_SWITCHBACKDROPTO\": \"promijeni pozadinu na %1\",\n \"LOOKS_GOTOFRONTBACK\": \"idi na sloj %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"prednji\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"stražnji\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"idi %1 %2 sloja\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"naprijed\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"natrag\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"pozadina %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"kostim %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"broj\",\n \"LOOKS_NUMBERNAME_NAME\": \"ime\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"promijeni pozadinu u %1 i čekaj\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"sljedeća pozadina\",\n \"LOOKS_NEXTBACKDROP\": \"sljedeća pozadina\",\n \"LOOKS_PREVIOUSBACKDROP\": \"prethodna pozadina\",\n \"LOOKS_RANDOMBACKDROP\": \"nasumična pozadina\",\n \"MOTION_MOVESTEPS\": \"idi %1 koraka\",\n \"MOTION_TURNLEFT\": \"skreni %1 %2 stupnjeva\",\n \"MOTION_TURNRIGHT\": \"skreni %1 %2 stupnjeva\",\n \"MOTION_POINTINDIRECTION\": \"okreni se u smjeru %1\",\n \"MOTION_POINTTOWARDS\": \"okreni se prema %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"pokazivač miša\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"nasumičan smjer\",\n \"MOTION_GOTO\": \"idi do %1\",\n \"MOTION_GOTO_POINTER\": \"pokazivač miša\",\n \"MOTION_GOTO_RANDOM\": \"nasumična pozicija\",\n \"MOTION_GOTOXY\": \"idi na x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"klizi %1 sekundi do x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"klizi %1 sekundi do %2\",\n \"MOTION_GLIDETO_POINTER\": \"pokazivač miša\",\n \"MOTION_GLIDETO_RANDOM\": \"nasumična pozicija\",\n \"MOTION_CHANGEXBY\": \"promijeni x za %1\",\n \"MOTION_SETX\": \"postavi x na %1\",\n \"MOTION_CHANGEYBY\": \"promijeni y za %1\",\n \"MOTION_SETY\": \"postavi y na %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"ako si na rubu, okreni se\",\n \"MOTION_SETROTATIONSTYLE\": \"postavi stil rotacije %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"lijevo-desno\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"ne rotiraj\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"sve unaokolo\",\n \"MOTION_XPOSITION\": \"x položaj\",\n \"MOTION_YPOSITION\": \"y položaj\",\n \"MOTION_DIRECTION\": \"smjer\",\n \"MOTION_SCROLLRIGHT\": \"zrcali desno %1\",\n \"MOTION_SCROLLUP\": \"zrcali gore %1\",\n \"MOTION_ALIGNSCENE\": \"poravnanje scene %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"dolje-lijevo\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"dolje-desno\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"sredina\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"gore-lijevo\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"gore-desno\",\n \"MOTION_XSCROLL\": \"x klizanje\",\n \"MOTION_YSCROLL\": \"y klizanje\",\n \"MOTION_STAGE_SELECTED\": \"Pozornica je izabrana: nema blokova za kretanje\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"slučajan broj od %1 do %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 i %2\",\n \"OPERATORS_OR\": \"%1 ili %2\",\n \"OPERATORS_NOT\": \"nije %1\",\n \"OPERATORS_JOIN\": \"spoji %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"jabuka\",\n \"OPERATORS_JOIN_BANANA\": \"banana\",\n \"OPERATORS_LETTEROF\": \"slovo %1 od %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"dužina %1\",\n \"OPERATORS_CONTAINS\": \"%1 sadrži %2\",\n \"OPERATORS_MOD\": \"%1 mod %2\",\n \"OPERATORS_ROUND\": \"zaokruži %1\",\n \"OPERATORS_MATHOP\": \"%1 od %2\",\n \"OPERATORS_MATHOP_ABS\": \"apsolutno\",\n \"OPERATORS_MATHOP_FLOOR\": \"donja vrijednost\",\n \"OPERATORS_MATHOP_CEILING\": \"gornja vrijednost\",\n \"OPERATORS_MATHOP_SQRT\": \"korijen\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"definiraj %1\",\n \"SENSING_TOUCHINGOBJECT\": \"dodiruje %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"pokazivač miša\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"rub\",\n \"SENSING_TOUCHINGCOLOR\": \"dodiruje boju %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"boja %1 dodiruje %2?\",\n \"SENSING_DISTANCETO\": \"udaljenost do %1\",\n \"SENSING_DISTANCETO_POINTER\": \"pokazivač miša\",\n \"SENSING_ASKANDWAIT\": \"pitaj %1 i čekaj\",\n \"SENSING_ASK_TEXT\": \"Kako se zoveš?\",\n \"SENSING_ANSWER\": \"odgovor\",\n \"SENSING_KEYPRESSED\": \"tipka %1 pritisnuta?\",\n \"SENSING_MOUSEDOWN\": \"miš pritisnut?\",\n \"SENSING_MOUSEX\": \"miš x\",\n \"SENSING_MOUSEY\": \"miš y\",\n \"SENSING_SETDRAGMODE\": \"postavi način povlačenja na %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"moguće povlačenje\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"bez povlačenja\",\n \"SENSING_LOUDNESS\": \"glasnoća\",\n \"SENSING_LOUD\": \"glasno?\",\n \"SENSING_TIMER\": \"štoperica\",\n \"SENSING_RESETTIMER\": \"poništi štopericu\",\n \"SENSING_OF\": \"%1 od %2\",\n \"SENSING_OF_XPOSITION\": \"x položaj\",\n \"SENSING_OF_YPOSITION\": \"y položaj\",\n \"SENSING_OF_DIRECTION\": \"smjer\",\n \"SENSING_OF_COSTUMENUMBER\": \"kostim #\",\n \"SENSING_OF_COSTUMENAME\": \"naziv kostima\",\n \"SENSING_OF_SIZE\": \"veličina\",\n \"SENSING_OF_VOLUME\": \"jačina zvuka\",\n \"SENSING_OF_BACKDROPNUMBER\": \"pozadina #\",\n \"SENSING_OF_BACKDROPNAME\": \"naziv pozadine\",\n \"SENSING_OF_STAGE\": \"Pozornica\",\n \"SENSING_CURRENT\": \"trenutna %1\",\n \"SENSING_CURRENT_YEAR\": \"godina\",\n \"SENSING_CURRENT_MONTH\": \"mjesec\",\n \"SENSING_CURRENT_DATE\": \"dan\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"dan u tjednu\",\n \"SENSING_CURRENT_HOUR\": \"sat\",\n \"SENSING_CURRENT_MINUTE\": \"minuta\",\n \"SENSING_CURRENT_SECOND\": \"sekunda\",\n \"SENSING_DAYSSINCE2000\": \"dana od 2000\",\n \"SENSING_USERNAME\": \"nadimak\",\n \"SENSING_USERID\": \"korisnički id\",\n \"SOUND_PLAY\": \"sviraj zvuk %1\",\n \"SOUND_PLAYUNTILDONE\": \"sviraj zvuk %1 do kraja\",\n \"SOUND_STOPALLSOUNDS\": \"zaustavi sve zvukove\",\n \"SOUND_SETEFFECTO\": \"promijeni efekt %1 na %2\",\n \"SOUND_CHANGEEFFECTBY\": \"promijeni efekt %1 za %2\",\n \"SOUND_CLEAREFFECTS\": \"očisti sve efekte zvuka\",\n \"SOUND_EFFECTS_PITCH\": \"visina tona\",\n \"SOUND_EFFECTS_PAN\": \"kretanje lijevo/desno\",\n \"SOUND_CHANGEVOLUMEBY\": \"promijeni glasnoću za %1\",\n \"SOUND_SETVOLUMETO\": \"postavi glasnoću na %1%\",\n \"SOUND_VOLUME\": \"glasnoća\",\n \"SOUND_RECORD\": \"snimaj...\",\n \"CATEGORY_MOTION\": \"Kretanje\",\n \"CATEGORY_LOOKS\": \"Izgled\",\n \"CATEGORY_SOUND\": \"Zvuk\",\n \"CATEGORY_EVENTS\": \"Događaji\",\n \"CATEGORY_CONTROL\": \"Upravljanje\",\n \"CATEGORY_SENSING\": \"Očitanja\",\n \"CATEGORY_OPERATORS\": \"Operacije\",\n \"CATEGORY_VARIABLES\": \"Varijable\",\n \"CATEGORY_MYBLOCKS\": \"Moji Blokovi\",\n \"DUPLICATE\": \"Dupliciraj\",\n \"DELETE\": \"Izbriši\",\n \"ADD_COMMENT\": \"Dodaj komentar\",\n \"REMOVE_COMMENT\": \"Ukloni komentar\",\n \"DELETE_BLOCK\": \"Izbriši blok\",\n \"DELETE_X_BLOCKS\": \"Izbriši %1 blokove\",\n \"DELETE_ALL_BLOCKS\": \"Izbriši sve %1 blokove?\",\n \"CLEAN_UP\": \"Očisti blokove\",\n \"HELP\": \"Pomoć\",\n \"UNDO\": \"Poništi\",\n \"REDO\": \"Ponovi\",\n \"EDIT_PROCEDURE\": \"Uredi\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Idi do definicije\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Reci nešto...\",\n \"COLOUR_HUE_LABEL\": \"Boja\",\n \"COLOUR_SATURATION_LABEL\": \"Saturacija\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Osvjetljenje\",\n \"CHANGE_VALUE_TITLE\": \"Promijeni vrijednost:\",\n \"RENAME_VARIABLE\": \"Preimenuj varijablu\",\n \"RENAME_VARIABLE_TITLE\": \"Preimenuj sve \\\"%1\\\" varijable u:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Preimenuj varijablu\",\n \"NEW_VARIABLE\": \"Napravi varijablu\",\n \"NEW_VARIABLE_TITLE\": \"Ime varijable:\",\n \"VARIABLE_MODAL_TITLE\": \"Nova varijabla\",\n \"VARIABLE_ALREADY_EXISTS\": \"Varijabla \\\"%1\\\" već postoji.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Varijabla \\\"%1\\\" već postoji kod druge varijable tipa \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Izbriši \\\"%1\\\" upotrebu varijable \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Ne mogu izbrisati varijablu \\\"%1\\\" jer je dio definicije funkcije \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Izbriši varijablu \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Napravi blok\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Procedura \\\"%1\\\" već postoji.\",\n \"PROCEDURE_DEFAULT_NAME\": \"ime bloka\",\n \"NEW_LIST\": \"Napravi listu\",\n \"NEW_LIST_TITLE\": \"Novo ime lliste:\",\n \"LIST_MODAL_TITLE\": \"Nova lista\",\n \"LIST_ALREADY_EXISTS\": \"Lista imena \\\"%1\\\" već postoji.\",\n \"RENAME_LIST_TITLE\": \"Preimenuj sve \\\"%1\\\" liste u:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Preimenuj listu\",\n \"DEFAULT_LIST_ITEM\": \"stvar\",\n \"DELETE_LIST\": \"Izbriši listu \\\"%1\\\"\",\n \"RENAME_LIST\": \"Preimenuj listu\",\n \"NEW_BROADCAST_MESSAGE\": \"Nova poruka\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Naziv nove poruke:\",\n \"BROADCAST_MODAL_TITLE\": \"Nova poruka\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"poruka1\"\n};\n\nBlockly.ScratchMsgs.locales[\"zu\"] =\n{\n \"CONTROL_FOREVER\": \"makwenzeke njalo \",\n \"CONTROL_REPEAT\": \"phinda %1 \",\n \"CONTROL_IF\": \"uma %1 bese\",\n \"CONTROL_ELSE\": \" noma \",\n \"CONTROL_STOP\": \"ima\",\n \"CONTROL_STOP_ALL\": \"yonke\",\n \"CONTROL_STOP_THIS\": \"lo mbhalo\",\n \"CONTROL_STOP_OTHER\": \"eminye imibhalo kumlingisi\",\n \"CONTROL_WAIT\": \"linda %1 umzuzuwana\",\n \"CONTROL_WAITUNTIL\": \"akalinde kuze kube %1 \",\n \"CONTROL_REPEATUNTIL\": \"phinda kuze %1 \",\n \"CONTROL_WHILE\": \"ngenkathi %1\",\n \"CONTROL_FOREACH\": \"ngokunye %1 ngokunye %2\",\n \"CONTROL_STARTASCLONE\": \"Uma ngiqala njengo mfanekiso \",\n \"CONTROL_CREATECLONEOF\": \" Akha okufanayo %1 \",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"mina\",\n \"CONTROL_DELETETHISCLONE\": \" Susa umfanekiso \",\n \"CONTROL_COUNTER\": \"isibali \",\n \"CONTROL_INCRCOUNTER\": \"Khuphula isibali \",\n \"CONTROL_CLEARCOUNTER\": \"susa isibali \",\n \"CONTROL_ALLATONCE\": \"konke ngesikhathi esisodwa \",\n \"DATA_SETVARIABLETO\": \"lungisa %1 ukuze %2\",\n \"DATA_CHANGEVARIABLEBY\": \"shintsha %1 ngokuthi %2 / \",\n \"DATA_SHOWVARIABLE\": \" khombisa ivariable %1 \",\n \"DATA_HIDEVARIABLE\": \"cashisa ivariable %1\",\n \"DATA_ADDTOLIST\": \"engeza %1 kuya %2\",\n \"DATA_DELETEOFLIST\": \" susa %1 ka %2 \",\n \"DATA_DELETEALLOFLIST\": \"susa konke %1\",\n \"DATA_INSERTATLIST\": \"faka %1 ku %2 ka %3\",\n \"DATA_REPLACEITEMOFLIST\": \"buyisela into %1 ye %2 nge %3\",\n \"DATA_ITEMOFLIST\": \"into %1 ye %2\",\n \"DATA_ITEMNUMOFLIST\": \"into # yaku %1 ku %2\",\n \"DATA_LENGTHOFLIST\": \"ubude be %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 Kuphathelene %2 \",\n \"DATA_SHOWLIST\": \"khombisa le-list %1 \",\n \"DATA_HIDELIST\": \"cashisa le-list %1 \",\n \"DATA_INDEX_ALL\": \"zonke \",\n \"DATA_INDEX_LAST\": \"eyokugcina\",\n \"DATA_INDEX_RANDOM\": \"ngaphandle kokucabanga\",\n \"EVENT_WHENFLAGCLICKED\": \"uma %1 liciphiziwe \",\n \"EVENT_WHENTHISSPRITECLICKED\": \"Uma lomlingisi eciphiziwe \",\n \"EVENT_WHENSTAGECLICKED\": \"uma Indawo iciphiziwe\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"uma lomlingisi ethinta %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \" uma ngikuthola %1 \",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"uma indawo ishintshela ku %1\",\n \"EVENT_WHENGREATERTHAN\": \"uma %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"isikhathi esibekiwe \",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"ubukhulu bomsindo\",\n \"EVENT_BROADCAST\": \"sakaza %1\",\n \"EVENT_BROADCASTANDWAIT\": \"sakaza %1 futhi linda\",\n \"EVENT_WHENKEYPRESSED\": \"uma sekucindezelwe ukhiye %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"isikhala\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"umcibisholo kwesobunxele\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"umcibilisholo kwesokudla\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"umcibisholo ophansi\",\n \"EVENT_WHENKEYPRESSED_UP\": \"umcibilisholo phezulu\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"noma ikuphi\",\n \"LOOKS_SAYFORSECS\": \"isho %1 ukuthi %2 imizuzwana \",\n \"LOOKS_SAY\": \"isho %1\",\n \"LOOKS_HELLO\": \"Sawubona!\",\n \"LOOKS_THINKFORSECS\": \"Cabanga %1 Ukuthi %2 Imizuzwana \",\n \"LOOKS_THINK\": \"cabanga %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"khombisa\",\n \"LOOKS_HIDE\": \"cashisa\",\n \"LOOKS_HIDEALLSPRITES\": \"cashisa bonke abalingisi\",\n \"LOOKS_EFFECT_COLOR\": \"umbala\",\n \"LOOKS_EFFECT_FISHEYE\": \"ihlo likafishi\",\n \"LOOKS_EFFECT_WHIRL\": \"phenduka\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixelate\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaic\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"ukukhanya\",\n \"LOOKS_EFFECT_GHOST\": \"isipoki\",\n \"LOOKS_CHANGEEFFECTBY\": \"shintsha %1 umthelela ngokuthi %2\",\n \"LOOKS_SETEFFECTTO\": \"lungisa %1 umthelela uwuyise %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"susa amagrafikhi athintekayo \",\n \"LOOKS_CHANGESIZEBY\": \"shintsha usayizi ngokuthi %1\",\n \"LOOKS_SETSIZETO\": \"Lungisa usayizi ubuyise ku %1 \",\n \"LOOKS_SIZE\": \"Isisindo / Ubukhulu \",\n \"LOOKS_CHANGESTRETCHBY\": \"shinthsa ukunwebeka ngo %1\",\n \"LOOKS_SETSTRETCHTO\": \"lungisa ukunwebeka ku %1\",\n \"LOOKS_SWITCHCOSTUMETO\": \"shintsha impahla ukuze %1\",\n \"LOOKS_NEXTCOSTUME\": \"impahla elandelayo\",\n \"LOOKS_SWITCHBACKDROPTO\": \"shintsha indawo uyise kwi %1\",\n \"LOOKS_GOTOFRONTBACK\": \"hamba ku %1 ngokwahlukana\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"phambili\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"emuva\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"buyela %1 %2 ngokwahlukana\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"phambili \",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"emumva \",\n \"LOOKS_BACKDROPNUMBERNAME\": \"indawo1 %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"impahla %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"inombolo\",\n \"LOOKS_NUMBERNAME_NAME\": \"igama\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \" Shitsha indawo %1 ulinde \",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"indawo elandelayo \",\n \"LOOKS_NEXTBACKDROP\": \"indawo elandelayo\",\n \"LOOKS_PREVIOUSBACKDROP\": \"indawo edlule\",\n \"LOOKS_RANDOMBACKDROP\": \"Iyanoma ikuphi ndawo \",\n \"MOTION_MOVESTEPS\": \"Nyakaza%1 Izitephu \",\n \"MOTION_TURNLEFT\": \"Phendula %1 %2 ibanga \",\n \"MOTION_TURNRIGHT\": \" Phendula %1 %2 ibanga \",\n \"MOTION_POINTINDIRECTION\": \"khomba kulendlela %1\",\n \"MOTION_POINTTOWARDS\": \"khomba ubhekise %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"mouse-pointer \",\n \"MOTION_POINTTOWARDS_RANDOM\": \"inkomba engalindelekile / Noma iyiphi indlela \",\n \"MOTION_GOTO\": \"hamba uyeku %1 \",\n \"MOTION_GOTO_POINTER\": \"mouse-pointer\",\n \"MOTION_GOTO_RANDOM\": \"Noma iyiphi indawo \",\n \"MOTION_GOTOXY\": \"hamba uyeku x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"ukushibilika %1 umzuzuwana kwi x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"ukushibilika %1 umzuzuwana kwi %2\",\n \"MOTION_GLIDETO_POINTER\": \"mouse-pointer \",\n \"MOTION_GLIDETO_RANDOM\": \"noma iyiphi indawo\",\n \"MOTION_CHANGEXBY\": \"shintsha u-x ngokuthi %1\",\n \"MOTION_SETX\": \"lungisa u-x ukuze %1\",\n \"MOTION_CHANGEYBY\": \"shintsha u-y ngokuthi %1\",\n \"MOTION_SETY\": \"lungisa u-y ukuze %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"uma isenigcupheni, gxuma\",\n \"MOTION_SETROTATIONSTYLE\": \"lungisa isitayela sokujika %1 \",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"kwesobunxele-kwesokudla \",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"ungaphenduki\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"yonke indawo \",\n \"MOTION_XPOSITION\": \"indawo ka- x \",\n \"MOTION_YPOSITION\": \"indawo ka-y\",\n \"MOTION_DIRECTION\": \"indlela\",\n \"MOTION_SCROLLRIGHT\": \"sikrolla kwesokudla %1 \",\n \"MOTION_SCROLLUP\": \"sikrola phezulu %1 \",\n \"MOTION_ALIGNSCENE\": \"qondanisa inkundla %1 \",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"ngakwesobunxele-ngezansi\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"ngakwesokudla-ngezansi \",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"phakathi \",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"kwesobunxele-phezulu \",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"kwesokudla-phezulu \",\n \"MOTION_XSCROLL\": \"x sikrola \",\n \"MOTION_YSCROLL\": \"y sikrola \",\n \"MOTION_STAGE_SELECTED\": \"Ukhethile indawo: ayinawo amabhulokisi okunyakaza \",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"khetha noma ikuphi %1 kuya %2 \",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 futhi %2\",\n \"OPERATORS_OR\": \"%1 noma %2\",\n \"OPERATORS_NOT\": \"akunjalo %1\",\n \"OPERATORS_JOIN\": \"hlanganisa %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"aphula\",\n \"OPERATORS_JOIN_BANANA\": \"bhanana \",\n \"OPERATORS_LETTEROF\": \"usonhlamvu %1 ka %2 \",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"ubude be %1\",\n \"OPERATORS_CONTAINS\": \"%1 okuphethwe %2?\",\n \"OPERATORS_MOD\": \"%1 mod %2\",\n \"OPERATORS_ROUND\": \"rawunda %1\",\n \"OPERATORS_MATHOP\": \"%1 ya %2\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"phansi\",\n \"OPERATORS_MATHOP_CEILING\": \"iphezulu\",\n \"OPERATORS_MATHOP_SQRT\": \"sqrt\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"chaza %1\",\n \"SENSING_TOUCHINGOBJECT\": \"thinta %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"mouse-pointer \",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"egcupheni \",\n \"SENSING_TOUCHINGCOLOR\": \"kuthinta umbala %1 ?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"umbala %1 uthinta %2? \",\n \"SENSING_DISTANCETO\": \"ibanga eliya %1\",\n \"SENSING_DISTANCETO_POINTER\": \"mouse-pointer \",\n \"SENSING_ASKANDWAIT\": \"buza %1 futhi linda\",\n \"SENSING_ASK_TEXT\": \"Ubani igama lakho?\",\n \"SENSING_ANSWER\": \"phendula / Impendulo \",\n \"SENSING_KEYPRESSED\": \"ukhiye %1 ucindezelwe?\",\n \"SENSING_MOUSEDOWN\": \"mouse phansi?\",\n \"SENSING_MOUSEX\": \"mouse x\",\n \"SENSING_MOUSEY\": \"mouse y\",\n \"SENSING_SETDRAGMODE\": \"lungisa isimo sokuhudula %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"kuyahuduleka\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"akuhuduleki\",\n \"SENSING_LOUDNESS\": \"ubukhulu bomsindo\",\n \"SENSING_LOUD\": \"kukhulu umsindo? / Umsindo uphezulu? \",\n \"SENSING_TIMER\": \"Isikhathi esibekiwe \",\n \"SENSING_RESETTIMER\": \"qalakabusha isikhathi\",\n \"SENSING_OF\": \"%1 ya %2\",\n \"SENSING_OF_XPOSITION\": \"indawo ka-x \",\n \"SENSING_OF_YPOSITION\": \"Indawo ka-y \",\n \"SENSING_OF_DIRECTION\": \"indlela \",\n \"SENSING_OF_COSTUMENUMBER\": \"impahla #\",\n \"SENSING_OF_COSTUMENAME\": \"igama lempahla\",\n \"SENSING_OF_SIZE\": \"usayizi \",\n \"SENSING_OF_VOLUME\": \"ubuningi bomsindo\",\n \"SENSING_OF_BACKDROPNUMBER\": \"indawo #\",\n \"SENSING_OF_BACKDROPNAME\": \"igama lendawo\",\n \"SENSING_OF_STAGE\": \"Isigaba\",\n \"SENSING_CURRENT\": \"manje %1 \",\n \"SENSING_CURRENT_YEAR\": \"unyaka\",\n \"SENSING_CURRENT_MONTH\": \"inyanga\",\n \"SENSING_CURRENT_DATE\": \"usuku\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"usuku lwesonto\",\n \"SENSING_CURRENT_HOUR\": \"ihora\",\n \"SENSING_CURRENT_MINUTE\": \"umzuzu\",\n \"SENSING_CURRENT_SECOND\": \"umzuzwana\",\n \"SENSING_DAYSSINCE2000\": \"izinsuku kusukela 2000\",\n \"SENSING_USERNAME\": \"igama elisebenzile\",\n \"SENSING_USERID\": \"umsebenzisi ID\",\n \"SOUND_PLAY\": \"qala umsindo %1\",\n \"SOUND_PLAYUNTILDONE\": \"dlala umsindo %1 uze uqede\",\n \"SOUND_STOPALLSOUNDS\": \"misa yonke imisindo\",\n \"SOUND_SETEFFECTO\": \"Lungisa %1 umthelela ngo %2\",\n \"SOUND_CHANGEEFFECTBY\": \"Shintsha %1 womthelela ngo %2\",\n \"SOUND_CLEAREFFECTS\": \"susa umthelela womsindo\",\n \"SOUND_EFFECTS_PITCH\": \"izinga elidlulele\",\n \"SOUND_EFFECTS_PAN\": \"jikisa isinxele-nangakwesokudla\",\n \"SOUND_CHANGEVOLUMEBY\": \"shintsha umsindo ngokuthi %1\",\n \"SOUND_SETVOLUMETO\": \"lungisa inani lo msindo ukuze %1%\",\n \"SOUND_VOLUME\": \"umsindo\",\n \"SOUND_RECORD\": \"qopha...\",\n \"CATEGORY_MOTION\": \"Ukunyakaza\",\n \"CATEGORY_LOOKS\": \"Ukubukeka\",\n \"CATEGORY_SOUND\": \"Umsindo\",\n \"CATEGORY_EVENTS\": \"Izehlakalo\",\n \"CATEGORY_CONTROL\": \"Lawula\",\n \"CATEGORY_SENSING\": \"Ukuzwa\",\n \"CATEGORY_OPERATORS\": \"Abalawuli\",\n \"CATEGORY_VARIABLES\": \"I-variables\",\n \"CATEGORY_MYBLOCKS\": \"Amabhulokisi ami\",\n \"DUPLICATE\": \"Fanisa\",\n \"DELETE\": \"Cima\",\n \"ADD_COMMENT\": \"Faka Phawula\",\n \"REMOVE_COMMENT\": \"Susa Izinkulumo\",\n \"DELETE_BLOCK\": \"Susa Amabhulokisi / Susa ibhulokisi \",\n \"DELETE_X_BLOCKS\": \"Susa %1 Amabhulokisi\",\n \"DELETE_ALL_BLOCKS\": \"Susa wonke %1 amabhulokisi?\",\n \"CLEAN_UP\": \"Qoqa amabhulokisi\",\n \"HELP\": \"Usizo\",\n \"UNDO\": \"Susa okwenzile\",\n \"REDO\": \"Phinda ukwenze \",\n \"EDIT_PROCEDURE\": \"Lungisa\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Iyokokukhethiwe\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Isho okuthile...\",\n \"COLOUR_HUE_LABEL\": \"Umbala\",\n \"COLOUR_SATURATION_LABEL\": \"Ukukhanya kombala\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Ukukhanya\",\n \"CHANGE_VALUE_TITLE\": \"Shintsha inani:\",\n \"RENAME_VARIABLE\": \"Shintsha igama i-variable\",\n \"RENAME_VARIABLE_TITLE\": \"Shinthsha amagama akho konke %1 i-variable ku:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Shintsha Igama i-variable\",\n \"NEW_VARIABLE\": \"Yenza i-variable\",\n \"NEW_VARIABLE_TITLE\": \"Igama elisha i-variable\",\n \"VARIABLE_MODAL_TITLE\": \"I-variable Entsha\",\n \"VARIABLE_ALREADY_EXISTS\": \"Igama le-variable %1 selikhona \",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \" Igama le-variable \\\"%1\\\" likhona kwenye i-variable yolunye uhlobo\\\"%2\\\" \",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Cisha %1 ukusetshenziswa kwe \\\"%2\\\" i-variable?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Ngeke uyicishe i-variable \\\"%1\\\" ngoba iyingxenye yencazelo yalomsebenzi \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \" Susa\\\"%1\\\" i-variable. \",\n \"NEW_PROCEDURE\": \"Enza ibhulokisi \",\n \"PROCEDURE_ALREADY_EXISTS\": \"Inqubomgomo %1 isivele ikhona \",\n \"PROCEDURE_DEFAULT_NAME\": \"igama lebhulokisi \",\n \"NEW_LIST\": \"Yenza i-list \",\n \"NEW_LIST_TITLE\": \"Igama le-list entsha \",\n \"LIST_MODAL_TITLE\": \"i-List entsha \",\n \"LIST_ALREADY_EXISTS\": \" I-List ebizwa ngalelogama \\\"%1\\\" isikhona \",\n \"RENAME_LIST_TITLE\": \" Shintsha kabusha wonke \\\"%1\\\" Ama-List ku: \",\n \"RENAME_LIST_MODAL_TITLE\": \"Shintsha igama le-list \",\n \"DEFAULT_LIST_ITEM\": \"into\",\n \"DELETE_LIST\": \"Susa \\\"%1\\\" i-List \",\n \"RENAME_LIST\": \"Shintsha igama le-List \",\n \"NEW_BROADCAST_MESSAGE\": \"Umyalezo omusha\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Igama lomyalezo elisha\",\n \"BROADCAST_MODAL_TITLE\": \"Umyalezo Omusha\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"umyalezo wokuqala\"\n};\n\nBlockly.ScratchMsgs.locales[\"is\"] =\n{\n \"CONTROL_FOREVER\": \"endalaust\",\n \"CONTROL_REPEAT\": \"endurtaka %1 sinnum\",\n \"CONTROL_IF\": \"ef %1 þá\",\n \"CONTROL_ELSE\": \"annars\",\n \"CONTROL_STOP\": \"stöðva\",\n \"CONTROL_STOP_ALL\": \"allt\",\n \"CONTROL_STOP_THIS\": \"þetta forrit\",\n \"CONTROL_STOP_OTHER\": \"önnur forrit á karakter\",\n \"CONTROL_WAIT\": \"bíða í %1 sekúndur\",\n \"CONTROL_WAITUNTIL\": \"bíða þangað til %1\",\n \"CONTROL_REPEATUNTIL\": \"endurtaka þar til %1\",\n \"CONTROL_WHILE\": \"á meðan %1\",\n \"CONTROL_FOREACH\": \"fyrir hvert %1 í %2\",\n \"CONTROL_STARTASCLONE\": \"þegar ég byrja sem klónn\",\n \"CONTROL_CREATECLONEOF\": \"búa til klón af %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"sjálfum mér\",\n \"CONTROL_DELETETHISCLONE\": \"eyða þessum klón\",\n \"CONTROL_COUNTER\": \"teljari\",\n \"CONTROL_INCRCOUNTER\": \"vaxandi teljari\",\n \"CONTROL_CLEARCOUNTER\": \"tæma teljara\",\n \"CONTROL_ALLATONCE\": \"alla í einu\",\n \"DATA_SETVARIABLETO\": \"láttu %1 verða %2\",\n \"DATA_CHANGEVARIABLEBY\": \"breyttu %1 um %2\",\n \"DATA_SHOWVARIABLE\": \"sýndu mér breytu %1\",\n \"DATA_HIDEVARIABLE\": \"feldu breytu %1\",\n \"DATA_ADDTOLIST\": \"bættu %1 við %2\",\n \"DATA_DELETEOFLIST\": \"fjarlægðu %1 af %2\",\n \"DATA_DELETEALLOFLIST\": \"eyddu öllu af %1\",\n \"DATA_INSERTATLIST\": \"settu %1 við %2 af %3\",\n \"DATA_REPLACEITEMOFLIST\": \"skiptu út hlut %1 af %2 fyrir %3\",\n \"DATA_ITEMOFLIST\": \"hlutur %1 af %2\",\n \"DATA_ITEMNUMOFLIST\": \"item # of %1 in %2\",\n \"DATA_LENGTHOFLIST\": \"lengd %1\",\n \"DATA_LISTCONTAINSITEM\": \"inniheldur %1, %2?\",\n \"DATA_SHOWLIST\": \"sýndu lista %1\",\n \"DATA_HIDELIST\": \"feldu lista %1\",\n \"DATA_INDEX_ALL\": \"allt\",\n \"DATA_INDEX_LAST\": \"seinasti\",\n \"DATA_INDEX_RANDOM\": \"handahófskenndur\",\n \"EVENT_WHENFLAGCLICKED\": \"þegar smellt er á %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"þegar smellt er á þennan karakter\",\n \"EVENT_WHENSTAGECLICKED\": \"þegar smellt er a sviðið\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"þegar karakterinn snertir %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"þegar ég fæ sent %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"þegar bakgrunnurinn verður %1\",\n \"EVENT_WHENGREATERTHAN\": \"þegar %1 er meira en %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"skeiðklukka\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"hljóðstyrkur\",\n \"EVENT_BROADCAST\": \"senda %1\",\n \"EVENT_BROADCASTANDWAIT\": \"senda %1 og bíða\",\n \"EVENT_WHENKEYPRESSED\": \"þegar ýtt er á %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"bilslá\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"vinstri ör\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"hægri ör\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"niður ör\",\n \"EVENT_WHENKEYPRESSED_UP\": \"upp ör\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"eitthvert\",\n \"LOOKS_SAYFORSECS\": \"segðu %1 í %2 sekúndur\",\n \"LOOKS_SAY\": \"segðu %1\",\n \"LOOKS_HELLO\": \"Hæ!\",\n \"LOOKS_THINKFORSECS\": \"hugsaðu %1 í %2 sekúndur\",\n \"LOOKS_THINK\": \"hugsaðu %1\",\n \"LOOKS_HMM\": \"Hmmmm....\",\n \"LOOKS_SHOW\": \"birta\",\n \"LOOKS_HIDE\": \"fela\",\n \"LOOKS_HIDEALLSPRITES\": \"fela allar teikningar\",\n \"LOOKS_EFFECT_COLOR\": \"litur\",\n \"LOOKS_EFFECT_FISHEYE\": \"fiskauga\",\n \"LOOKS_EFFECT_WHIRL\": \"þyrla\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixla\",\n \"LOOKS_EFFECT_MOSAIC\": \"mósaík\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"birtustig\",\n \"LOOKS_EFFECT_GHOST\": \"draugur\",\n \"LOOKS_CHANGEEFFECTBY\": \"breyta %1 áhrifunum um %2\",\n \"LOOKS_SETEFFECTTO\": \"settu %1 áhrifin á %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"hreinsa myndbrellur\",\n \"LOOKS_CHANGESIZEBY\": \"breyta stærð um %1\",\n \"LOOKS_SETSIZETO\": \"stærð verður %1 %\",\n \"LOOKS_SIZE\": \"stærð\",\n \"LOOKS_CHANGESTRETCHBY\": \"breyta teygju um %1\",\n \"LOOKS_SETSTRETCHTO\": \"teygja verður %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"breyttu í búning %1\",\n \"LOOKS_NEXTCOSTUME\": \"næsti búningur\",\n \"LOOKS_SWITCHBACKDROPTO\": \"bakgrunnur verður %1\",\n \"LOOKS_GOTOFRONTBACK\": \"farðu á lag %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"fremst\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"aftast\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"farðu %1 %2 lög\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"áfram\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"aftur á bak\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"bakgrunnur %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"búningur %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"númer\",\n \"LOOKS_NUMBERNAME_NAME\": \"nafn\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"nota bakgrunn %1 og bíða\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"næsti bakgrunnur\",\n \"LOOKS_NEXTBACKDROP\": \"næsti bakgrunnur\",\n \"LOOKS_PREVIOUSBACKDROP\": \"síðasti bakgrunnur\",\n \"LOOKS_RANDOMBACKDROP\": \"handahófskenndur bakgrunnur\",\n \"MOTION_MOVESTEPS\": \"fara %1 skref\",\n \"MOTION_TURNLEFT\": \"snúa til %1 um %2 gráður\",\n \"MOTION_TURNRIGHT\": \"snúa til %1 um %2 gráður\",\n \"MOTION_POINTINDIRECTION\": \"stefna í %1 gráður\",\n \"MOTION_POINTTOWARDS\": \"stefna í átt að %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"músarbendill\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"random direction\",\n \"MOTION_GOTO\": \"fara til %1\",\n \"MOTION_GOTO_POINTER\": \"músarbendill\",\n \"MOTION_GOTO_RANDOM\": \"handahófskennd staðsetning\",\n \"MOTION_GOTOXY\": \"fara til x: %1 og y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"svífa í %1 sekúndur til x: %2 og y: %3\",\n \"MOTION_GLIDETO\": \"svífa í %1 sekúndur til %2\",\n \"MOTION_GLIDETO_POINTER\": \"músarbendill\",\n \"MOTION_GLIDETO_RANDOM\": \"handahófskend staðsetning\",\n \"MOTION_CHANGEXBY\": \"breyta x um %1\",\n \"MOTION_SETX\": \"láttu x verða %1\",\n \"MOTION_CHANGEYBY\": \"breyttu y um %1\",\n \"MOTION_SETY\": \"láttu y verða %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"ef á kanti, snúðu við\",\n \"MOTION_SETROTATIONSTYLE\": \"snúningsgerð verður %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"vinstri-hægri\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"ekki snúast\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"allan hringinn\",\n \"MOTION_XPOSITION\": \"x hnit\",\n \"MOTION_YPOSITION\": \"y hnit\",\n \"MOTION_DIRECTION\": \"stefna\",\n \"MOTION_SCROLLRIGHT\": \"skrolla hægri um %1\",\n \"MOTION_SCROLLUP\": \"skrolla up %1\",\n \"MOTION_ALIGNSCENE\": \"stilla til svið %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"neðra vinstra megin\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"neðra hægra megin\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"miðjunni\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"efra vinstra megin\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"efra hægra megin\",\n \"MOTION_XSCROLL\": \"x skroll\",\n \"MOTION_YSCROLL\": \"y skroll\",\n \"MOTION_STAGE_SELECTED\": \"Sviðið hefur enga hreyfikubba\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"velja tölu á milli %1 og %2 af handahófi\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 og %2\",\n \"OPERATORS_OR\": \"%1 eða %2\",\n \"OPERATORS_NOT\": \"ekki %1\",\n \"OPERATORS_JOIN\": \"sameina %1 og %2\",\n \"OPERATORS_JOIN_APPLE\": \"epli\",\n \"OPERATORS_JOIN_BANANA\": \"banani\",\n \"OPERATORS_LETTEROF\": \"stafur númer %1 úr %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"e\",\n \"OPERATORS_LENGTH\": \"lengd %1\",\n \"OPERATORS_CONTAINS\": \"inniheldur %1 %2?\",\n \"OPERATORS_MOD\": \"%1 modulus %2\",\n \"OPERATORS_ROUND\": \"rúna %1\",\n \"OPERATORS_MATHOP\": \"%1 af %2\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"rúna niður\",\n \"OPERATORS_MATHOP_CEILING\": \"rúna upp\",\n \"OPERATORS_MATHOP_SQRT\": \"kvaðratrót\",\n \"OPERATORS_MATHOP_SIN\": \"sínus\",\n \"OPERATORS_MATHOP_COS\": \"kósínus\",\n \"OPERATORS_MATHOP_TAN\": \"tangens\",\n \"OPERATORS_MATHOP_ASIN\": \"arksínus\",\n \"OPERATORS_MATHOP_ACOS\": \"arkcósínus\",\n \"OPERATORS_MATHOP_ATAN\": \"arktangens\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"skilgreina %1\",\n \"SENSING_TOUCHINGOBJECT\": \"snertir %1\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"músarbendill\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"brún\",\n \"SENSING_TOUCHINGCOLOR\": \"snertir litinn %1\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"liturinn %1 snertir litinn %2\",\n \"SENSING_DISTANCETO\": \"fjarlægð til %1\",\n \"SENSING_DISTANCETO_POINTER\": \"músarbendill\",\n \"SENSING_ASKANDWAIT\": \"spurðu %1 og bíddu\",\n \"SENSING_ASK_TEXT\": \"Hvað heitir þú?\",\n \"SENSING_ANSWER\": \"svar\",\n \"SENSING_KEYPRESSED\": \"hnappur %1 sleginn\",\n \"SENSING_MOUSEDOWN\": \"músarhnappur niðri?\",\n \"SENSING_MOUSEX\": \"x hnit músar\",\n \"SENSING_MOUSEY\": \"y hnit músar\",\n \"SENSING_SETDRAGMODE\": \"breyttu dragstillingu %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"draganlegur\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"ekki draganlegur\",\n \"SENSING_LOUDNESS\": \"hljóðstyrkur\",\n \"SENSING_LOUD\": \"hávær?\",\n \"SENSING_TIMER\": \"skeiðklukka\",\n \"SENSING_RESETTIMER\": \"endurstilla skeiðklukku\",\n \"SENSING_OF\": \"%1 af %2\",\n \"SENSING_OF_XPOSITION\": \"x hnit\",\n \"SENSING_OF_YPOSITION\": \"y hnit\",\n \"SENSING_OF_DIRECTION\": \"stefna\",\n \"SENSING_OF_COSTUMENUMBER\": \"búnungur númer\",\n \"SENSING_OF_COSTUMENAME\": \"nafn búnings\",\n \"SENSING_OF_SIZE\": \"stærð\",\n \"SENSING_OF_VOLUME\": \"hljóðstyrkur\",\n \"SENSING_OF_BACKDROPNUMBER\": \"bakgrunnur númer\",\n \"SENSING_OF_BACKDROPNAME\": \"nafn bakgrunns\",\n \"SENSING_OF_STAGE\": \"Svið\",\n \"SENSING_CURRENT\": \"núverandi %1\",\n \"SENSING_CURRENT_YEAR\": \"ár\",\n \"SENSING_CURRENT_MONTH\": \"mánuður\",\n \"SENSING_CURRENT_DATE\": \"dagsetning\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"vikudagur\",\n \"SENSING_CURRENT_HOUR\": \"klukkustund\",\n \"SENSING_CURRENT_MINUTE\": \"mínúta\",\n \"SENSING_CURRENT_SECOND\": \"sekúnda\",\n \"SENSING_DAYSSINCE2000\": \"dagar síðan árið 2000\",\n \"SENSING_USERNAME\": \"notendanafn\",\n \"SENSING_USERID\": \"einkenni notenda\",\n \"SOUND_PLAY\": \"spila hljóð %1\",\n \"SOUND_PLAYUNTILDONE\": \"spila hljóð %1 þar til það klárast\",\n \"SOUND_STOPALLSOUNDS\": \"stöðva öll hljóð\",\n \"SOUND_SETEFFECTO\": \"settu %1 áhrifin á %2\",\n \"SOUND_CHANGEEFFECTBY\": \"breyta %1 áhrifunum um %2\",\n \"SOUND_CLEAREFFECTS\": \"fjarlægja hljóðbreytingar\",\n \"SOUND_EFFECTS_PITCH\": \"tónhæð\",\n \"SOUND_EFFECTS_PAN\": \"skima til vinstri/hægri\",\n \"SOUND_CHANGEVOLUMEBY\": \"breyta hljóðstyrk um %1\",\n \"SOUND_SETVOLUMETO\": \"setja hljóðstyrk í %1%\",\n \"SOUND_VOLUME\": \"hljóðstyrkur\",\n \"SOUND_RECORD\": \"record...\",\n \"CATEGORY_MOTION\": \"Hreyfing\",\n \"CATEGORY_LOOKS\": \"Útlit\",\n \"CATEGORY_SOUND\": \"Hljóð\",\n \"CATEGORY_EVENTS\": \"Atburðir\",\n \"CATEGORY_CONTROL\": \"Stjórn\",\n \"CATEGORY_SENSING\": \"Mæling\",\n \"CATEGORY_OPERATORS\": \"Virkjar\",\n \"CATEGORY_VARIABLES\": \"Breytur\",\n \"CATEGORY_MYBLOCKS\": \"Mínir kubbar\",\n \"DUPLICATE\": \"Tvöfalda\",\n \"DELETE\": \"Eyða\",\n \"ADD_COMMENT\": \"Bæta við athugasemd\",\n \"REMOVE_COMMENT\": \"Fjarlægja athugasemd\",\n \"DELETE_BLOCK\": \"Eyða kubb\",\n \"DELETE_X_BLOCKS\": \"Eyða %1 kubbum\",\n \"DELETE_ALL_BLOCKS\": \"Eyða öllum %1 kubbum\",\n \"CLEAN_UP\": \"Hreinsa til kubbana\",\n \"HELP\": \"Hjálp\",\n \"UNDO\": \"Afturkalla\",\n \"REDO\": \"Framkalla\",\n \"EDIT_PROCEDURE\": \"Breyta\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Fara að skilgreiningu\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Segðu eitthvað...\",\n \"COLOUR_HUE_LABEL\": \"Litur\",\n \"COLOUR_SATURATION_LABEL\": \"mettun\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Birtustig\",\n \"CHANGE_VALUE_TITLE\": \"Breyta gildi:\",\n \"RENAME_VARIABLE\": \"Endurskýra breytu\",\n \"RENAME_VARIABLE_TITLE\": \"Endurskýra allar %1 breytur sem: \",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Endurskýra breytu\",\n \"NEW_VARIABLE\": \"Smíða breytu\",\n \"NEW_VARIABLE_TITLE\": \"Nafn nýrrar breytu:\",\n \"VARIABLE_MODAL_TITLE\": \"Ný breyta\",\n \"VARIABLE_ALREADY_EXISTS\": \"Það er nú þegar til breyta sem heitir \\\"%1\\\".\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Það er nú þegar til breyta sem heitir \\\"%1\\\" fyrir aðra breytu af týpunni \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Þú ert að nota %2 á %1 stöðum. Viltu samt eyða breytunni?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Þú getur ekki eytt breytunni %1 vegna þess að þú ert að nota hana í kubb af eigin hönnun. Hann heitir: %2.\",\n \"DELETE_VARIABLE\": \"Eyða \\\"%1\\\" breytunni\",\n \"NEW_PROCEDURE\": \"Búa til kubb\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Fall með nafninu \\\"%1\\\" er nú þegar til.\",\n \"PROCEDURE_DEFAULT_NAME\": \"nafn kubbs\",\n \"NEW_LIST\": \"Búa til lista\",\n \"NEW_LIST_TITLE\": \"Nafn nýs lista:\",\n \"LIST_MODAL_TITLE\": \"Nýr listi\",\n \"LIST_ALREADY_EXISTS\": \"Það er nú þegar til listi sem heitir \\\"%1\\\".\",\n \"RENAME_LIST_TITLE\": \"Endurskýra alla %1 lista sem:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Endurskýra lista\",\n \"DEFAULT_LIST_ITEM\": \"hlutur\",\n \"DELETE_LIST\": \"Delete the \\\"%1\\\" list\",\n \"RENAME_LIST\": \"Rename list\",\n \"NEW_BROADCAST_MESSAGE\": \"Ný skilaboð\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Nafn nýrra skilaboða\",\n \"BROADCAST_MODAL_TITLE\": \"Ný skilaboð\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"dæmiUmNafnÁSkilaboðum\"\n};\n\nBlockly.ScratchMsgs.locales[\"it\"] =\n{\n \"CONTROL_FOREVER\": \"per sempre\",\n \"CONTROL_REPEAT\": \"ripeti %1 volte\",\n \"CONTROL_IF\": \"se %1 allora\",\n \"CONTROL_ELSE\": \"altrimenti\",\n \"CONTROL_STOP\": \"ferma\",\n \"CONTROL_STOP_ALL\": \"tutto\",\n \"CONTROL_STOP_THIS\": \"questo script\",\n \"CONTROL_STOP_OTHER\": \"tutti gli altri script dello sprite\",\n \"CONTROL_WAIT\": \"attendi %1 secondi\",\n \"CONTROL_WAITUNTIL\": \"attendi fino a quando %1\",\n \"CONTROL_REPEATUNTIL\": \"ripeti fino a quando %1\",\n \"CONTROL_WHILE\": \"mentre %1\",\n \"CONTROL_FOREACH\": \"per ogni %1 in %2\",\n \"CONTROL_STARTASCLONE\": \"quando vengo clonato\",\n \"CONTROL_CREATECLONEOF\": \"crea clone di %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"me stesso\",\n \"CONTROL_DELETETHISCLONE\": \"elimina questo clone\",\n \"CONTROL_COUNTER\": \"contatore\",\n \"CONTROL_INCRCOUNTER\": \"incrementa contatore\",\n \"CONTROL_CLEARCOUNTER\": \"azzera contatore\",\n \"CONTROL_ALLATONCE\": \"esegui tutto insieme\",\n \"DATA_SETVARIABLETO\": \"porta %1 a %2\",\n \"DATA_CHANGEVARIABLEBY\": \"cambia %1 di %2\",\n \"DATA_SHOWVARIABLE\": \"mostra la variabile %1\",\n \"DATA_HIDEVARIABLE\": \"nascondi la variabile %1\",\n \"DATA_ADDTOLIST\": \"aggiungi %1 a %2\",\n \"DATA_DELETEOFLIST\": \"cancella %1 da %2\",\n \"DATA_DELETEALLOFLIST\": \"cancella tutto da %1\",\n \"DATA_INSERTATLIST\": \"inserisci %1 alla posizione %2 di %3\",\n \"DATA_REPLACEITEMOFLIST\": \"sostituisci elemento %1 di %2 con %3\",\n \"DATA_ITEMOFLIST\": \"elemento %1 di %2\",\n \"DATA_ITEMNUMOFLIST\": \"posizione di %1 in %2\",\n \"DATA_LENGTHOFLIST\": \"lunghezza di %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 contiene %2\",\n \"DATA_SHOWLIST\": \"mostra la lista %1\",\n \"DATA_HIDELIST\": \"nascondi la lista %1\",\n \"DATA_INDEX_ALL\": \"tutto\",\n \"DATA_INDEX_LAST\": \"ultimo\",\n \"DATA_INDEX_RANDOM\": \"a caso\",\n \"EVENT_WHENFLAGCLICKED\": \"quando si clicca su %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"quando si clicca questo sprite\",\n \"EVENT_WHENSTAGECLICKED\": \"quando si clicca sullo Stage\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"quando questo sprite tocca %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"quando ricevo %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"quando lo sfondo passa a %1\",\n \"EVENT_WHENGREATERTHAN\": \"quando %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"cronometro\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"volume microfono\",\n \"EVENT_BROADCAST\": \"invia a tutti %1\",\n \"EVENT_BROADCASTANDWAIT\": \"invia a tutti %1 e attendi\",\n \"EVENT_WHENKEYPRESSED\": \"quando si preme il tasto %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"spazio\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"freccia sinistra\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"freccia destra\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"freccia giù\",\n \"EVENT_WHENKEYPRESSED_UP\": \"freccia su\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"qualunque\",\n \"LOOKS_SAYFORSECS\": \"dire %1 per %2 secondi\",\n \"LOOKS_SAY\": \"dire %1\",\n \"LOOKS_HELLO\": \"Ciao!\",\n \"LOOKS_THINKFORSECS\": \"pensa %1 per %2 secondi\",\n \"LOOKS_THINK\": \"pensa %1\",\n \"LOOKS_HMM\": \"Uhm...\",\n \"LOOKS_SHOW\": \"mostra\",\n \"LOOKS_HIDE\": \"nascondi\",\n \"LOOKS_HIDEALLSPRITES\": \"nascondi tutti gli sprite\",\n \"LOOKS_EFFECT_COLOR\": \"colore\",\n \"LOOKS_EFFECT_FISHEYE\": \"fish-eye\",\n \"LOOKS_EFFECT_WHIRL\": \"mulinello\",\n \"LOOKS_EFFECT_PIXELATE\": \"effetto pixel\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaico\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"luminosità\",\n \"LOOKS_EFFECT_GHOST\": \"fantasma\",\n \"LOOKS_CHANGEEFFECTBY\": \"cambia effetto %1 di %2\",\n \"LOOKS_SETEFFECTTO\": \"porta effetto %1 a %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"rimuovi effetti grafici\",\n \"LOOKS_CHANGESIZEBY\": \"cambia dimensione di %1\",\n \"LOOKS_SETSIZETO\": \"porta dimensione a %1 %\",\n \"LOOKS_SIZE\": \"dimensione\",\n \"LOOKS_CHANGESTRETCHBY\": \"cambia allungamento di %1\",\n \"LOOKS_SETSTRETCHTO\": \"porta allungamento a %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"passa al costume %1\",\n \"LOOKS_NEXTCOSTUME\": \"passa al costume seguente\",\n \"LOOKS_SWITCHBACKDROPTO\": \"passa allo sfondo %1\",\n \"LOOKS_GOTOFRONTBACK\": \"vai in %1 piano\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"primo\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"secondo\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"vai %1 di %2 livelli\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"avanti\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"indietro\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"%1 sfondo\",\n \"LOOKS_COSTUMENUMBERNAME\": \"%1 costume\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"numero\",\n \"LOOKS_NUMBERNAME_NAME\": \"nome\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"passa allo sfondo %1 e attendi\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"passa allo sfondo seguente\",\n \"LOOKS_NEXTBACKDROP\": \"seguente\",\n \"LOOKS_PREVIOUSBACKDROP\": \"precedente\",\n \"LOOKS_RANDOMBACKDROP\": \"scelto a caso\",\n \"MOTION_MOVESTEPS\": \"fai %1 passi\",\n \"MOTION_TURNLEFT\": \"ruota %1 di %2 gradi\",\n \"MOTION_TURNRIGHT\": \"ruota %1 di %2 gradi\",\n \"MOTION_POINTINDIRECTION\": \"punta in direzione %1\",\n \"MOTION_POINTTOWARDS\": \"punta verso %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"puntatore del mouse\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"direzione a caso\",\n \"MOTION_GOTO\": \"raggiungi %1\",\n \"MOTION_GOTO_POINTER\": \"puntatore del mouse\",\n \"MOTION_GOTO_RANDOM\": \"posizione a caso\",\n \"MOTION_GOTOXY\": \"vai a x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"scivola in %1 secondi a x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"scivola in %1 secondi a %2\",\n \"MOTION_GLIDETO_POINTER\": \"puntatore del mouse\",\n \"MOTION_GLIDETO_RANDOM\": \"posizione a caso\",\n \"MOTION_CHANGEXBY\": \"cambia x di %1\",\n \"MOTION_SETX\": \"vai dove x è %1\",\n \"MOTION_CHANGEYBY\": \"cambia y di %1\",\n \"MOTION_SETY\": \"vai dove y è %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"rimbalza quando tocchi il bordo\",\n \"MOTION_SETROTATIONSTYLE\": \"usa stile rotazione %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"sinistra-destra\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"non ruotare\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"può ruotare\",\n \"MOTION_XPOSITION\": \"posizione x\",\n \"MOTION_YPOSITION\": \"posizione y\",\n \"MOTION_DIRECTION\": \"direzione\",\n \"MOTION_SCROLLRIGHT\": \"scrolla a destra di %1\",\n \"MOTION_SCROLLUP\": \"scrolla in alto di %1\",\n \"MOTION_ALIGNSCENE\": \"allinea la scena %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"in basso a sinistra\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"in basso a destra\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"in mezzo\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"in alto a sinistra\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"in alto a destra\",\n \"MOTION_XSCROLL\": \"posizione x dello scroll\",\n \"MOTION_YSCROLL\": \"posizione y dello scroll\",\n \"MOTION_STAGE_SELECTED\": \"Stage selezionato: nessun blocco di movimento\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"numero a caso tra %1 e %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 e %2\",\n \"OPERATORS_OR\": \"%1 o %2\",\n \"OPERATORS_NOT\": \"non %1\",\n \"OPERATORS_JOIN\": \"unione di %1 e %2\",\n \"OPERATORS_JOIN_APPLE\": \"mela\",\n \"OPERATORS_JOIN_BANANA\": \"banana\",\n \"OPERATORS_LETTEROF\": \"lettera %1 di %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"lunghezza di %1\",\n \"OPERATORS_CONTAINS\": \"%1 contiene %2\",\n \"OPERATORS_MOD\": \"resto della divisione di %1 diviso %2\",\n \"OPERATORS_ROUND\": \"arrotonda %1\",\n \"OPERATORS_MATHOP\": \"%1 di %2\",\n \"OPERATORS_MATHOP_ABS\": \"valore assoluto\",\n \"OPERATORS_MATHOP_FLOOR\": \"intero inferiore\",\n \"OPERATORS_MATHOP_CEILING\": \"intero superiore\",\n \"OPERATORS_MATHOP_SQRT\": \"radice quadrata\",\n \"OPERATORS_MATHOP_SIN\": \"sen\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"arcsen\",\n \"OPERATORS_MATHOP_ACOS\": \"arccos\",\n \"OPERATORS_MATHOP_ATAN\": \"arctan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"definisci %1\",\n \"SENSING_TOUCHINGOBJECT\": \"sta toccando %1\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"puntatore del mouse\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"bordo\",\n \"SENSING_TOUCHINGCOLOR\": \"sta toccando il colore %1\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"il colore %1 sta toccando il colore %2\",\n \"SENSING_DISTANCETO\": \"distanza da %1\",\n \"SENSING_DISTANCETO_POINTER\": \"puntatore del mouse\",\n \"SENSING_ASKANDWAIT\": \"chiedi %1 e attendi\",\n \"SENSING_ASK_TEXT\": \"Come ti chiami?\",\n \"SENSING_ANSWER\": \"risposta\",\n \"SENSING_KEYPRESSED\": \"tasto %1 premuto\",\n \"SENSING_MOUSEDOWN\": \"pulsante del mouse premuto\",\n \"SENSING_MOUSEX\": \"x del mouse\",\n \"SENSING_MOUSEY\": \"y del mouse\",\n \"SENSING_SETDRAGMODE\": \"rendi lo sprite %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"trascinabile\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"non trascinabile\",\n \"SENSING_LOUDNESS\": \"volume microfono\",\n \"SENSING_LOUD\": \"volume alto?\",\n \"SENSING_TIMER\": \"cronometro\",\n \"SENSING_RESETTIMER\": \"azzera cronometro\",\n \"SENSING_OF\": \"%1 di %2\",\n \"SENSING_OF_XPOSITION\": \"posizione x\",\n \"SENSING_OF_YPOSITION\": \"posizione y\",\n \"SENSING_OF_DIRECTION\": \"direzione\",\n \"SENSING_OF_COSTUMENUMBER\": \"numero del costume\",\n \"SENSING_OF_COSTUMENAME\": \"nome del costume\",\n \"SENSING_OF_SIZE\": \"dimensione\",\n \"SENSING_OF_VOLUME\": \"volume\",\n \"SENSING_OF_BACKDROPNUMBER\": \"numero dello sfondo\",\n \"SENSING_OF_BACKDROPNAME\": \"nome dello sfondo\",\n \"SENSING_OF_STAGE\": \"Stage\",\n \"SENSING_CURRENT\": \"%1 attuale\",\n \"SENSING_CURRENT_YEAR\": \"anno\",\n \"SENSING_CURRENT_MONTH\": \"mese\",\n \"SENSING_CURRENT_DATE\": \"data\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"giorno della settimana\",\n \"SENSING_CURRENT_HOUR\": \"ora\",\n \"SENSING_CURRENT_MINUTE\": \"minuto\",\n \"SENSING_CURRENT_SECOND\": \"secondo\",\n \"SENSING_DAYSSINCE2000\": \"giorni trascorsi dal 2000\",\n \"SENSING_USERNAME\": \"username\",\n \"SENSING_USERID\": \"user id\",\n \"SOUND_PLAY\": \"avvia riproduzione suono %1\",\n \"SOUND_PLAYUNTILDONE\": \"riproduci suono %1 e attendi la fine\",\n \"SOUND_STOPALLSOUNDS\": \"ferma tutti i suoni\",\n \"SOUND_SETEFFECTO\": \"porta effetto %1 a %2\",\n \"SOUND_CHANGEEFFECTBY\": \"cambia effetto %1 di %2\",\n \"SOUND_CLEAREFFECTS\": \"rimuovi effetti audio\",\n \"SOUND_EFFECTS_PITCH\": \"frequenza\",\n \"SOUND_EFFECTS_PAN\": \"panning sinistra/destra\",\n \"SOUND_CHANGEVOLUMEBY\": \"cambia volume di %1\",\n \"SOUND_SETVOLUMETO\": \"porta volume a %1%\",\n \"SOUND_VOLUME\": \"volume\",\n \"SOUND_RECORD\": \"registrazione...\",\n \"CATEGORY_MOTION\": \"Movimento\",\n \"CATEGORY_LOOKS\": \"Aspetto\",\n \"CATEGORY_SOUND\": \"Suono\",\n \"CATEGORY_EVENTS\": \"Situazioni\",\n \"CATEGORY_CONTROL\": \"Controllo\",\n \"CATEGORY_SENSING\": \"Sensori\",\n \"CATEGORY_OPERATORS\": \"Operatori\",\n \"CATEGORY_VARIABLES\": \"Variabili\",\n \"CATEGORY_MYBLOCKS\": \"I Miei Blocchi\",\n \"DUPLICATE\": \"Duplica\",\n \"DELETE\": \"Cancella\",\n \"ADD_COMMENT\": \"Aggiungi commento\",\n \"REMOVE_COMMENT\": \"Rimuovi commento\",\n \"DELETE_BLOCK\": \"Cancella questo Blocco\",\n \"DELETE_X_BLOCKS\": \"Cancella %1 Blocchi\",\n \"DELETE_ALL_BLOCKS\": \"Cancellare i %1 blocchi?\",\n \"CLEAN_UP\": \"Riordina i Blocchi\",\n \"HELP\": \"Aiuto\",\n \"UNDO\": \"Annulla\",\n \"REDO\": \"Ripristina\",\n \"EDIT_PROCEDURE\": \"Modifica\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Vai alla definizione\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Dì qualcosa...\",\n \"COLOUR_HUE_LABEL\": \"Colore\",\n \"COLOUR_SATURATION_LABEL\": \"Saturazione\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Luminosità\",\n \"CHANGE_VALUE_TITLE\": \"Cambia il valore:\",\n \"RENAME_VARIABLE\": \"Rinomina la variabile\",\n \"RENAME_VARIABLE_TITLE\": \"Rinomina tutti i riferimenti alla variabile \\\"%1\\\" come:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Rinomina la Variabile\",\n \"NEW_VARIABLE\": \"Crea una Variabile\",\n \"NEW_VARIABLE_TITLE\": \"Nome della nuova variabile:\",\n \"VARIABLE_MODAL_TITLE\": \"Nuova Variabile\",\n \"VARIABLE_ALREADY_EXISTS\": \"Una variabile chiamata \\\"%1\\\" esiste già.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Una variabile chiamata \\\"%1\\\" già esiste per un'altra variabile di tipo '%2'.\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Eliminare tutti i %1 riferimenti alla variabile \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Non è possibile eliminare la variabile \\\"%1\\\" perchè fa parte della definizione della funzione \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Elimina la variabile \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Crea un Blocco\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Una procedura chiamata \\\"%1\\\" esiste già.\",\n \"PROCEDURE_DEFAULT_NAME\": \"nome del blocco\",\n \"NEW_LIST\": \"Crea una Lista\",\n \"NEW_LIST_TITLE\": \"Nome della nuova lista:\",\n \"LIST_MODAL_TITLE\": \"Nuova Lista\",\n \"LIST_ALREADY_EXISTS\": \"Una lista chiamata \\\"%1\\\" esiste già.\",\n \"RENAME_LIST_TITLE\": \"Rinomina tutti i riferimenti alla lista \\\"%1\\\" come:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Rinomina la Lista\",\n \"DEFAULT_LIST_ITEM\": \"cosa\",\n \"DELETE_LIST\": \"Cancella la lista \\\"%1\\\"\",\n \"RENAME_LIST\": \"Rinomina lista\",\n \"NEW_BROADCAST_MESSAGE\": \"Nuovo messaggio\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Nome del nuovo messaggio:\",\n \"BROADCAST_MODAL_TITLE\": \"Nuovo Messaggio\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"messaggio1\"\n};\n\nBlockly.ScratchMsgs.locales[\"ka\"] =\n{\n \"CONTROL_FOREVER\": \"მუდმივად\",\n \"CONTROL_REPEAT\": \"გაიმეორე %1ჯერ\",\n \"CONTROL_IF\": \"თუ %1 მაშინ\",\n \"CONTROL_ELSE\": \"სხვაგვარად\",\n \"CONTROL_STOP\": \"გააჩერე\",\n \"CONTROL_STOP_ALL\": \"ყველაფერი\",\n \"CONTROL_STOP_THIS\": \"ეს სკრიპტი\",\n \"CONTROL_STOP_OTHER\": \"სპრაიტის სხვა სკრიპტები\",\n \"CONTROL_WAIT\": \"იცადე %1 წამი\",\n \"CONTROL_WAITUNTIL\": \"იცადე ვიდრე %1\",\n \"CONTROL_REPEATUNTIL\": \"გაიმეორე ვიდრე %1\",\n \"CONTROL_WHILE\": \"მანამ სანამ %1\",\n \"CONTROL_FOREACH\": \"ყოველი %1თვის %2ში\",\n \"CONTROL_STARTASCLONE\": \"როდესაც მე ვიწყებ როგორც კლონი\",\n \"CONTROL_CREATECLONEOF\": \"შექმენი %1ს კლონი\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"ჩემი\",\n \"CONTROL_DELETETHISCLONE\": \"წაშალე ეს კლონი\",\n \"CONTROL_COUNTER\": \"მრიცხველი\",\n \"CONTROL_INCRCOUNTER\": \"ნამატის მრიცხველი\",\n \"CONTROL_CLEARCOUNTER\": \"მრიცხველის განულება\",\n \"CONTROL_ALLATONCE\": \"ყველაფერი ერთად\",\n \"DATA_SETVARIABLETO\": \"მიანიჭე %1ს %2\",\n \"DATA_CHANGEVARIABLEBY\": \"შეცვალე %1 %2ით\",\n \"DATA_SHOWVARIABLE\": \"გამოაჩინე ცვლადი %1\",\n \"DATA_HIDEVARIABLE\": \"დამალე ცვლადი %1\",\n \"DATA_ADDTOLIST\": \"დაუმატე %1 %2ს\",\n \"DATA_DELETEOFLIST\": \"წაშალე %1 %2დან\",\n \"DATA_DELETEALLOFLIST\": \"წაშალე ყველაფერი %1დან\",\n \"DATA_INSERTATLIST\": \"ჩასვი %1 %2მდე %3ში\",\n \"DATA_REPLACEITEMOFLIST\": \"შეცვალე %1 %2დან %3ით\",\n \"DATA_ITEMOFLIST\": \"ელემენტი %1 %2დან \",\n \"DATA_ITEMNUMOFLIST\": \"%1 ელემენტის № %2ში\",\n \"DATA_LENGTHOFLIST\": \"%1ს სიგრძე\",\n \"DATA_LISTCONTAINSITEM\": \"%1 შეიცავს %2ს?\",\n \"DATA_SHOWLIST\": \"გამოაჩინე სია %1\",\n \"DATA_HIDELIST\": \"დამალე სია %1\",\n \"DATA_INDEX_ALL\": \"ყველა\",\n \"DATA_INDEX_LAST\": \"ბოლო\",\n \"DATA_INDEX_RANDOM\": \"შემთხვევითი\",\n \"EVENT_WHENFLAGCLICKED\": \"როდესაც %1ა დაჭერილი\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"როდესაც ეს სპრაიტია დაჭერილი\",\n \"EVENT_WHENSTAGECLICKED\": \"როდესაც სცენაა დაჭერილი\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"როდესაც ეს სპრაიტი ეხება %1ს\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"როდესაც მივიღებ %1ს\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"როდესაც ფონი ხდება %1\",\n \"EVENT_WHENGREATERTHAN\": \"როდესაც %1 >%2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"წამზომი\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"ხმის სიმაღლე\",\n \"EVENT_BROADCAST\": \"გადაეცი %1\",\n \"EVENT_BROADCASTANDWAIT\": \"გადაეცი%1და იცადე\",\n \"EVENT_WHENKEYPRESSED\": \"როდესაც %1 ღილაკია დაჭერილი\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"დაშორება\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"ისარი მარცხნივ\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"ისარი მარჯვნივ\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"ისარი ქვევით\",\n \"EVENT_WHENKEYPRESSED_UP\": \"ისარი ზევით\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"ნებისმიერი\",\n \"LOOKS_SAYFORSECS\": \"თქვი %1 %2 წამით\",\n \"LOOKS_SAY\": \"თქვი %1\",\n \"LOOKS_HELLO\": \"გამარჯობა!\",\n \"LOOKS_THINKFORSECS\": \"იფიქრე %1 %2 წამით\",\n \"LOOKS_THINK\": \"იფიქრე %1\",\n \"LOOKS_HMM\": \"ჰმმ...\",\n \"LOOKS_SHOW\": \"გამოაჩინე\",\n \"LOOKS_HIDE\": \"დამალე\",\n \"LOOKS_HIDEALLSPRITES\": \"დამალე ყველა სპრაიტი\",\n \"LOOKS_EFFECT_COLOR\": \"ფერი\",\n \"LOOKS_EFFECT_FISHEYE\": \"თევზისთვალი\",\n \"LOOKS_EFFECT_WHIRL\": \"ქარიშხალი\",\n \"LOOKS_EFFECT_PIXELATE\": \"პიქსელიზაცია\",\n \"LOOKS_EFFECT_MOSAIC\": \"მოზაიკა\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"სიკაშკაშე\",\n \"LOOKS_EFFECT_GHOST\": \"მოჩვენება\",\n \"LOOKS_CHANGEEFFECTBY\": \"შეცვალე %1 ეფექტი %2ით\",\n \"LOOKS_SETEFFECTTO\": \"%1 ეფექტი %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"გრაფიკული ეფექტების მოხსნა\",\n \"LOOKS_CHANGESIZEBY\": \"შეცვალე ზომა %1ით\",\n \"LOOKS_SETSIZETO\": \"ზომა %1 %\",\n \"LOOKS_SIZE\": \"ზომა\",\n \"LOOKS_CHANGESTRETCHBY\": \"შეცვალე დაჭიმულობა %1ით\",\n \"LOOKS_SETSTRETCHTO\": \"დაჭიმულობა %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"გადაერთე კოსტიუმზე %1\",\n \"LOOKS_NEXTCOSTUME\": \"მომდევნო კოსტიუმი\",\n \"LOOKS_SWITCHBACKDROPTO\": \"გადაერთე ფონზე %1\",\n \"LOOKS_GOTOFRONTBACK\": \"გადადი %1 შრეზე\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"წინა\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"უკანა\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"გადადი %1 %2 შრით\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"წინ\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"უკან\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"ფონი %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"კოსტიუმი %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"ნომერი\",\n \"LOOKS_NUMBERNAME_NAME\": \"სახელი\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"გადაერთე ფონზე %1 და იცადე\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"მომდევნო ფონი\",\n \"LOOKS_NEXTBACKDROP\": \"მომდევნო ფონი\",\n \"LOOKS_PREVIOUSBACKDROP\": \"წინა ფონი\",\n \"LOOKS_RANDOMBACKDROP\": \"შემთხვევითი ფონი\",\n \"MOTION_MOVESTEPS\": \"გადაადგილდი %1 ნაბიჯით\",\n \"MOTION_TURNLEFT\": \"მობრუნდი %1 %2 გრადუსით\",\n \"MOTION_TURNRIGHT\": \"მობრუნდი %1 %2 გრადუსით\",\n \"MOTION_POINTINDIRECTION\": \"მიუთითე %1 მიმართულებით\",\n \"MOTION_POINTTOWARDS\": \"მიუთითე %1-ის კენ\",\n \"MOTION_POINTTOWARDS_POINTER\": \"თაგვის მაჩვენებელი\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"შემთხვევითი მიმართულება\",\n \"MOTION_GOTO\": \"გადადი %1კენ\",\n \"MOTION_GOTO_POINTER\": \"თაგვის მაჩვენებელი\",\n \"MOTION_GOTO_RANDOM\": \"შემთხვევითი მდებარეობა\",\n \"MOTION_GOTOXY\": \"გადადი x: %1 y:%2კენ\",\n \"MOTION_GLIDESECSTOXY\": \"ისრიალე %1 წმ x:%2 y:%3კენ\",\n \"MOTION_GLIDETO\": \"ისრიალე %1 წმ %2კენ\",\n \"MOTION_GLIDETO_POINTER\": \"თაგვის მაჩვენებელი\",\n \"MOTION_GLIDETO_RANDOM\": \"შემთხვევითი მდებარეობა\",\n \"MOTION_CHANGEXBY\": \"შეცვალე x %1ით\",\n \"MOTION_SETX\": \"მიანიჭე x-ს %1\",\n \"MOTION_CHANGEYBY\": \"შეცვალე y %1ით\",\n \"MOTION_SETY\": \"მიანიჭე y-ს %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"ზღვარზე უკანდახევა\",\n \"MOTION_SETROTATIONSTYLE\": \"ბრუნვის წესი %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"მარცხნივ-მარჯვნივ\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"ბრუნვის გარეშე\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"გარშემო\",\n \"MOTION_XPOSITION\": \"x მდებარეობა\",\n \"MOTION_YPOSITION\": \"y მდებარეობა\",\n \"MOTION_DIRECTION\": \"მიმართულება\",\n \"MOTION_SCROLLRIGHT\": \"მარჯვნივ გადახვევა %1\",\n \"MOTION_SCROLLUP\": \"ზემოთ გადახვევა %1\",\n \"MOTION_ALIGNSCENE\": \"გაასწორე სცენა %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"ქვედა-მარცხენა\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"ქვედა-მარჯვენა\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"შუა\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"ზედა-მარცხენა\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"ზედა-მარჯვენა\",\n \"MOTION_XSCROLL\": \"x გადახვევა\",\n \"MOTION_YSCROLL\": \"y გადახვევა\",\n \"MOTION_STAGE_SELECTED\": \"არჩეულია სცენა: მოძრაობის ბლოკების გარეშე\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1-%2\",\n \"OPERATORS_MULTIPLY\": \"%1*%2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"შემთხვევითი %1 დან %2-მდე\",\n \"OPERATORS_GT\": \"%1>%2\",\n \"OPERATORS_LT\": \"%1<%2\",\n \"OPERATORS_EQUALS\": \"%1=%2\",\n \"OPERATORS_AND\": \"%1 და %2\",\n \"OPERATORS_OR\": \"%1 ან %2\",\n \"OPERATORS_NOT\": \"არა %1\",\n \"OPERATORS_JOIN\": \"შეაერთე %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"ვაშლი\",\n \"OPERATORS_JOIN_BANANA\": \"ბანანი\",\n \"OPERATORS_LETTEROF\": \"ასო %1 %2 დან \",\n \"OPERATORS_LETTEROF_APPLE\": \"ა\",\n \"OPERATORS_LENGTH\": \"%1ს სიგრძე\",\n \"OPERATORS_CONTAINS\": \"%1 შეიცავს %2-ს?\",\n \"OPERATORS_MOD\": \"%1 მოდული %2\",\n \"OPERATORS_ROUND\": \"დაამრგვალე %1\",\n \"OPERATORS_MATHOP\": \"%2ს %1\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"უმცირესი მთელი\",\n \"OPERATORS_MATHOP_CEILING\": \"უდიდესი მთელი\",\n \"OPERATORS_MATHOP_SQRT\": \"კვადრატული ფესვი\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10^\",\n \"PROCEDURES_DEFINITION\": \"განსაზღვრე %1\",\n \"SENSING_TOUCHINGOBJECT\": \"ეხება %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"თაგვის მაჩვენებელი\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"ზღვარი\",\n \"SENSING_TOUCHINGCOLOR\": \"ეხება ფერს %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"ფერი %1 ეხება %2ს?\",\n \"SENSING_DISTANCETO\": \"მანძილი %1-მდე\",\n \"SENSING_DISTANCETO_POINTER\": \"თაგვის მაჩვენებელი\",\n \"SENSING_ASKANDWAIT\": \"იკითხე %1 და იცადე \",\n \"SENSING_ASK_TEXT\": \"რა გქვია?\",\n \"SENSING_ANSWER\": \"პასუხი\",\n \"SENSING_KEYPRESSED\": \"ღილაკი %1 დაჭერილია?\",\n \"SENSING_MOUSEDOWN\": \"თაგვი დაჭერილია?\",\n \"SENSING_MOUSEX\": \"თაგვი x\",\n \"SENSING_MOUSEY\": \"თაგვი y\",\n \"SENSING_SETDRAGMODE\": \"გადატანის წესი %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"გადატანა შეიძლება\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"გადატანა არ შეიძლება\",\n \"SENSING_LOUDNESS\": \"ხმის სიმაღლე\",\n \"SENSING_LOUD\": \"ხმა მაღალია?\",\n \"SENSING_TIMER\": \"წამზომი\",\n \"SENSING_RESETTIMER\": \"წამზომის განულება\",\n \"SENSING_OF\": \"%2ს %1\",\n \"SENSING_OF_XPOSITION\": \"x მდებარეობა\",\n \"SENSING_OF_YPOSITION\": \"y მდებარეობა\",\n \"SENSING_OF_DIRECTION\": \"მიმართულება\",\n \"SENSING_OF_COSTUMENUMBER\": \"კოსტიუმის ნომერი\",\n \"SENSING_OF_COSTUMENAME\": \"კოსტიუმის სახელი\",\n \"SENSING_OF_SIZE\": \"ზომა\",\n \"SENSING_OF_VOLUME\": \"ხმის სიმაღლე\",\n \"SENSING_OF_BACKDROPNUMBER\": \"ფონის ნომერი\",\n \"SENSING_OF_BACKDROPNAME\": \"ფონის სახელი\",\n \"SENSING_OF_STAGE\": \"სცენა\",\n \"SENSING_CURRENT\": \"მიმდინარე %1\",\n \"SENSING_CURRENT_YEAR\": \"წელი\",\n \"SENSING_CURRENT_MONTH\": \"თვე\",\n \"SENSING_CURRENT_DATE\": \"თარიღი\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"კვირის დღე\",\n \"SENSING_CURRENT_HOUR\": \"საათი\",\n \"SENSING_CURRENT_MINUTE\": \"წუთი\",\n \"SENSING_CURRENT_SECOND\": \"წამი\",\n \"SENSING_DAYSSINCE2000\": \"2000-ის შემდგომი დღეები\",\n \"SENSING_USERNAME\": \"მომხმარებელი\",\n \"SENSING_USERID\": \"მომხმარებლის id\",\n \"SOUND_PLAY\": \"ჩართე ხმა %1\",\n \"SOUND_PLAYUNTILDONE\": \"დაუკარი ხმა %1 დასრულებამდე\",\n \"SOUND_STOPALLSOUNDS\": \"გამორთე ყველა ხმა\",\n \"SOUND_SETEFFECTO\": \"%1 ეფექტი %2\",\n \"SOUND_CHANGEEFFECTBY\": \"შეცვალე%1ეფექტი%2ით\",\n \"SOUND_CLEAREFFECTS\": \"ხმის ეფექტების მოხსნა\",\n \"SOUND_EFFECTS_PITCH\": \"პითჩი\",\n \"SOUND_EFFECTS_PAN\": \"მდებარეობა მარცხნივ/მარჯვნივ\",\n \"SOUND_CHANGEVOLUMEBY\": \"შეცვლე ხმის სიმაღლე %1ით\",\n \"SOUND_SETVOLUMETO\": \"ხმის სიმაღლე %1%\",\n \"SOUND_VOLUME\": \"ხმის სიმაღლე\",\n \"SOUND_RECORD\": \"ჩაწერა...\",\n \"CATEGORY_MOTION\": \"მოძრაობა\",\n \"CATEGORY_LOOKS\": \"გარეგნობა\",\n \"CATEGORY_SOUND\": \"ხმა\",\n \"CATEGORY_EVENTS\": \"მოვლენები\",\n \"CATEGORY_CONTROL\": \"მართვა\",\n \"CATEGORY_SENSING\": \"სენსორები\",\n \"CATEGORY_OPERATORS\": \"ოპერატორები\",\n \"CATEGORY_VARIABLES\": \"ცვლადები\",\n \"CATEGORY_MYBLOCKS\": \"ჩემი ბლოკები\",\n \"DUPLICATE\": \"დუბლირება\",\n \"DELETE\": \"წაშლა\",\n \"ADD_COMMENT\": \"დაამატე კომენტარი\",\n \"REMOVE_COMMENT\": \"წაშალე კომენტარი\",\n \"DELETE_BLOCK\": \"წაშალე ბლოკი\",\n \"DELETE_X_BLOCKS\": \"წაშალე %1 ბლოკები\",\n \"DELETE_ALL_BLOCKS\": \"წავშალო ყველა %1 ბლოკები?\",\n \"CLEAN_UP\": \"გაასუფთავე ბლოკები\",\n \"HELP\": \"დახმარება\",\n \"UNDO\": \"მოქმედების გაუქმება\",\n \"REDO\": \"აღდგენა\",\n \"EDIT_PROCEDURE\": \"რედაქტირება\",\n \"SHOW_PROCEDURE_DEFINITION\": \"გადადი განმარტებაზე\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"თქვი რამე...\",\n \"COLOUR_HUE_LABEL\": \"ფერი\",\n \"COLOUR_SATURATION_LABEL\": \"გაჯერება\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"სიკაშკაშე\",\n \"CHANGE_VALUE_TITLE\": \"შეცვალე მნიშვნელობა:\",\n \"RENAME_VARIABLE\": \"შეუცვალე სახელი ცვლადს\",\n \"RENAME_VARIABLE_TITLE\": \"შეუცვალე სახელი ყველა \\\"%1\\\" ცვლადს შემდეგით:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"შეუცვალე სახელი ცვლადს\",\n \"NEW_VARIABLE\": \"შექმენი ცვლადი\",\n \"NEW_VARIABLE_TITLE\": \"ახალი ცვლადის სახელი:\",\n \"VARIABLE_MODAL_TITLE\": \"ახალი ცვლადი\",\n \"VARIABLE_ALREADY_EXISTS\": \"ცვლადი სახელად \\\"%1\\\" უკვე არსებობს\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"ცვლადი სახელად \\\"%1\\\" უკვე არსებობს სხვა ცვლადების ტიპისათვის \\\"%2\\\" \",\n \"DELETE_VARIABLE_CONFIRMATION\": \"წავშალო \\\"%2\\\" ცვლადის %1 გამოყენება? \",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"შეუძლებელია ცვლადი \\\"%1\\\"-ის წაშლა რადგან ის არის \\\"%2\\\"-ის ფუნქციის განსაზღვრის ნაწილი \",\n \"DELETE_VARIABLE\": \"წაშალე \\\"%1\\\" ცვლადი\",\n \"NEW_PROCEDURE\": \"შექმენი ბლოკი\",\n \"PROCEDURE_ALREADY_EXISTS\": \"პროცედურა სახელად \\\"%1\\\" უკვე არსებობს\",\n \"PROCEDURE_DEFAULT_NAME\": \"ბლოკის სახელი\",\n \"NEW_LIST\": \"შექმენი სია\",\n \"NEW_LIST_TITLE\": \"ახალი სიის სახელი:\",\n \"LIST_MODAL_TITLE\": \"ახალი სია\",\n \"LIST_ALREADY_EXISTS\": \"სია სახელად \\\"%1\\\" უკვე არსებობს\",\n \"RENAME_LIST_TITLE\": \"შეუცვალე სახელი ყველა \\\"%1\\\" სიას:\",\n \"RENAME_LIST_MODAL_TITLE\": \"სიის სახელის შეცვლა\",\n \"DEFAULT_LIST_ITEM\": \"რაიმე\",\n \"DELETE_LIST\": \"წაშალე სია \\\"%1\\\"\",\n \"RENAME_LIST\": \"სიის სახელის შეცვლა\",\n \"NEW_BROADCAST_MESSAGE\": \"ახალი შეტყობინება\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"ახალი შეტყობინების სახელი\",\n \"BROADCAST_MODAL_TITLE\": \"ახალი შეტყობინება\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"შეტყობინება1\"\n};\n\nBlockly.ScratchMsgs.locales[\"ckb\"] =\n{\n \"CONTROL_FOREVER\": \"بۆهەتایە\",\n \"CONTROL_REPEAT\": \"دوبارەکردنەوە %1\",\n \"CONTROL_IF\": \"ئەگەر %1 ئینجا\",\n \"CONTROL_ELSE\": \"ئەگەرنا\",\n \"CONTROL_STOP\": \"وەستان\",\n \"CONTROL_STOP_ALL\": \"هەموو\",\n \"CONTROL_STOP_THIS\": \"ئەم سکریپتە\",\n \"CONTROL_STOP_OTHER\": \"سکریپتەکانی تر لە تەن\",\n \"CONTROL_WAIT\": \"بوەستە %1 چرکە\",\n \"CONTROL_WAITUNTIL\": \"چاوەڕێ بکە تا %1\",\n \"CONTROL_REPEATUNTIL\": \"دوبارەکردنەوە تا %1\",\n \"CONTROL_WHILE\": \"کاتێک %1\",\n \"CONTROL_FOREACH\": \"بۆ هەر %1 لە %2\",\n \"CONTROL_STARTASCLONE\": \"کاتێک دەستپێدەکەم وەک لێکچووێک\",\n \"CONTROL_CREATECLONEOF\": \"دروستکردنی لێکچوو لە %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"خۆم\",\n \"CONTROL_DELETETHISCLONE\": \"سڕینەوەی ئەم لێکچووە\",\n \"CONTROL_COUNTER\": \"ژمێرەر\",\n \"CONTROL_INCRCOUNTER\": \"زیادکردنی ژمێرەر\",\n \"CONTROL_CLEARCOUNTER\": \"بەتاڵکردنەوەی ژمێرەر\",\n \"CONTROL_ALLATONCE\": \"هەموو بەیەکەوە\",\n \"DATA_SETVARIABLETO\": \"دانانی %1 بۆ %2\",\n \"DATA_CHANGEVARIABLEBY\": \"گۆڕین %1 بە %2\",\n \"DATA_SHOWVARIABLE\": \"پیشاندانی گۆڕاو %1\",\n \"DATA_HIDEVARIABLE\": \"شاردنەوەی گۆڕاوی %1\",\n \"DATA_ADDTOLIST\": \"زیادکردنی %1 بۆ %2\",\n \"DATA_DELETEOFLIST\": \"سڕینەوە %1 لە %2\",\n \"DATA_DELETEALLOFLIST\": \"سڕینەوەی هەموو لە %1\",\n \"DATA_INSERTATLIST\": \"خستنەناو %1 بۆ %2 لە %3\",\n \"DATA_REPLACEITEMOFLIST\": \"گۆڕینەوەی دانە %1 لە %2 لەگەڵ %3\",\n \"DATA_ITEMOFLIST\": \"دانە %1 لە %2\",\n \"DATA_ITEMNUMOFLIST\": \"دانەی # %1 لە %2\",\n \"DATA_LENGTHOFLIST\": \"درێژی لە %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 تێیدایە %2؟\",\n \"DATA_SHOWLIST\": \"پیشاندانی لیست %1\",\n \"DATA_HIDELIST\": \"شاردنەوەی لیست %1\",\n \"DATA_INDEX_ALL\": \"هەموو\",\n \"DATA_INDEX_LAST\": \"دوایەمین\",\n \"DATA_INDEX_RANDOM\": \"هەڕەمەکی\",\n \"EVENT_WHENFLAGCLICKED\": \"کاتێک %1 کرتەکرا\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"کاتێک ئەم تەنە کرتەکرا\",\n \"EVENT_WHENSTAGECLICKED\": \"کاتێک سەکۆ کرتەکرا\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"کاتێک ئەم تەنە بەرکەوت %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"کاتێک بەدەستم گەیشت %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"کاتێک پاشبنەما دەگۆڕێت بۆ %1\",\n \"EVENT_WHENGREATERTHAN\": \"کاتێک %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"کاتێنەر\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"دەنگەدەنگ\",\n \"EVENT_BROADCAST\": \"پەخشکردن %1\",\n \"EVENT_BROADCASTANDWAIT\": \"پەخشکردنی %1 و چاوەڕێکردن\",\n \"EVENT_WHENKEYPRESSED\": \"کاتێک دوگمەی %1 کرتەکرا\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"بۆشایی\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"تیری چەپ\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"تیری ڕاست\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"تیری خواروو\",\n \"EVENT_WHENKEYPRESSED_UP\": \"تیری سەروو\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"هەر کام\",\n \"LOOKS_SAYFORSECS\": \"بڵێ %1 بۆ %2 چرکە\",\n \"LOOKS_SAY\": \"بڵێ %1\",\n \"LOOKS_HELLO\": \"سڵاو!\",\n \"LOOKS_THINKFORSECS\": \"بیرکردنەوە %1 بۆ %2 چرکە\",\n \"LOOKS_THINK\": \"بیرکردنەوەی %1\",\n \"LOOKS_HMM\": \"ئمم...\",\n \"LOOKS_SHOW\": \"پیشاندان\",\n \"LOOKS_HIDE\": \"شاردنەوە\",\n \"LOOKS_HIDEALLSPRITES\": \"شاردنەوەی هەموو تەنەکان\",\n \"LOOKS_EFFECT_COLOR\": \"ڕەنگ\",\n \"LOOKS_EFFECT_FISHEYE\": \"چاوماسی\",\n \"LOOKS_EFFECT_WHIRL\": \"خولانەوە\",\n \"LOOKS_EFFECT_PIXELATE\": \"وێنەخاڵکردن\",\n \"LOOKS_EFFECT_MOSAIC\": \"موزایک\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"ڕووناکی\",\n \"LOOKS_EFFECT_GHOST\": \"خێو\",\n \"LOOKS_CHANGEEFFECTBY\": \"گۆڕینی %1 کاریگەری بە %2\",\n \"LOOKS_SETEFFECTTO\": \"دانانی %1 کاریگەری بۆ %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"سڕینەوەی کاریگەرییەکانی هێلکاری\",\n \"LOOKS_CHANGESIZEBY\": \"گۆڕینی قەبارە بە %1\",\n \"LOOKS_SETSIZETO\": \"دانانی قەبارە بە %1 ٪\",\n \"LOOKS_SIZE\": \"قەبارە\",\n \"LOOKS_CHANGESTRETCHBY\": \"گۆڕینی درێژبوونەوە بە %1\",\n \"LOOKS_SETSTRETCHTO\": \"دانانی درێژبوونەوە بە %1 ٪\",\n \"LOOKS_SWITCHCOSTUMETO\": \"گۆڕینی بەرگ بۆ %1\",\n \"LOOKS_NEXTCOSTUME\": \"بەرگی دواتر\",\n \"LOOKS_SWITCHBACKDROPTO\": \"گۆڕینی پاشبنەما بۆ %1\",\n \"LOOKS_GOTOFRONTBACK\": \"بڕۆ بۆ %1 چین\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"پێشەوە\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"دواوە\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"بڕۆ بۆ %1 %2 چین\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"بۆ پێشەوە\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"بۆ دواوە\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"پاشبنه‌ما %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"بەرگ %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"ژمارە\",\n \"LOOKS_NUMBERNAME_NAME\": \"ناو\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"گۆڕینی پاشبنەما بۆ %1 و چاوەڕێ بکە\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"پاشبنەمای دواتر\",\n \"LOOKS_NEXTBACKDROP\": \"پاشبنەمای دواتر\",\n \"LOOKS_PREVIOUSBACKDROP\": \"پاشبنەمای پێشتر\",\n \"LOOKS_RANDOMBACKDROP\": \"پاشبنەمای هەڕەمەکی\",\n \"MOTION_MOVESTEPS\": \"جوڵان %1 هەنگاو\",\n \"MOTION_TURNLEFT\": \"بیسوڕێنەوە %1 %2 پلە\",\n \"MOTION_TURNRIGHT\": \"بیسوڕێنەوە %1 %2 پلە\",\n \"MOTION_POINTINDIRECTION\": \"خاڵ بە ئاڕاستەی %1\",\n \"MOTION_POINTTOWARDS\": \"خاڵ بەرەو %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"نیشاندەری ماوس\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"ئاڕاستەی هەڕەمەکی\",\n \"MOTION_GOTO\": \"بڕۆ بۆ %1\",\n \"MOTION_GOTO_POINTER\": \"نیشاندەری ماوس\",\n \"MOTION_GOTO_RANDOM\": \"شوێنی هەڕەمەکی\",\n \"MOTION_GOTOXY\": \"بڕۆ بۆ x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"خلیسکان %1 چرکە بۆ x %2 y %3\",\n \"MOTION_GLIDETO\": \"خلیسکان %1 چرکە بۆ %2\",\n \"MOTION_GLIDETO_POINTER\": \"نیشاندەری ماوس\",\n \"MOTION_GLIDETO_RANDOM\": \"شوێنی هەڕەمەکی\",\n \"MOTION_CHANGEXBY\": \"گۆڕینی x بە %1\",\n \"MOTION_SETX\": \"دانانی x بە %1\",\n \"MOTION_CHANGEYBY\": \"گۆڕینی y بە %1\",\n \"MOTION_SETY\": \"دانانی y بە %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"ئەگەر لە لێواربوو، بگەڕێوە\",\n \"MOTION_SETROTATIONSTYLE\": \"دانانی شێوازی سوڕانەوە %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"چەپ-ڕاست\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"مەیسوڕێنە\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"بەدەوری\",\n \"MOTION_XPOSITION\": \"شوێنی x\",\n \"MOTION_YPOSITION\": \"شوێنی y\",\n \"MOTION_DIRECTION\": \"ئاڕاستە\",\n \"MOTION_SCROLLRIGHT\": \"پێچۆکە بۆ ڕاست %1\",\n \"MOTION_SCROLLUP\": \"پێچۆکه‌ هه‌ڵکێشان %1\",\n \"MOTION_ALIGNSCENE\": \"لاگرتنی دیمەن %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"ژێرەوە-چەپ\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"ژێرەوە-ڕاست\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"ناوەند\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"سەرەوە-چەپ\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"سەرەوە-ڕاست\",\n \"MOTION_XSCROLL\": \"پێچۆکەی x\",\n \"MOTION_YSCROLL\": \"پێچۆکەی y\",\n \"MOTION_STAGE_SELECTED\": \"سەکۆی دیاریکراو: هیچ بلۆکێکی جوڵاندن\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"هەڵبژاردنی هەڕەمەکی %1 بۆ %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 and %2\",\n \"OPERATORS_OR\": \"%1 or %2\",\n \"OPERATORS_NOT\": \"نا %1\",\n \"OPERATORS_JOIN\": \"پەیوەندی %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"سێو\",\n \"OPERATORS_JOIN_BANANA\": \"مۆز\",\n \"OPERATORS_LETTEROF\": \"پیت %1 لە %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"ێ\",\n \"OPERATORS_LENGTH\": \"درێژی لە %1\",\n \"OPERATORS_CONTAINS\": \"%1 تێیدایە %2؟\",\n \"OPERATORS_MOD\": \"%1 ماوە %2\",\n \"OPERATORS_ROUND\": \"نزیککردنەوە %1\",\n \"OPERATORS_MATHOP\": \"%1 لە %2\",\n \"OPERATORS_MATHOP_ABS\": \"ڕەگی دووجا\",\n \"OPERATORS_MATHOP_FLOOR\": \"زەوی\",\n \"OPERATORS_MATHOP_CEILING\": \"بنمیچ\",\n \"OPERATORS_MATHOP_SQRT\": \"ڕەگی دووجا\",\n \"OPERATORS_MATHOP_SIN\": \"تەژێ\",\n \"OPERATORS_MATHOP_COS\": \"تەژێ تەواو\",\n \"OPERATORS_MATHOP_TAN\": \"تانجێنت\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"لن\",\n \"OPERATORS_MATHOP_LOG\": \"لۆگاریتم\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"پێناسەی %1\",\n \"SENSING_TOUCHINGOBJECT\": \"بەرکەوتنی %1؟\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"نیشاندەری ماوس\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"لێوار\",\n \"SENSING_TOUCHINGCOLOR\": \"بەرکەوتنی ڕەنگ %1؟\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"ڕەنگ %1 بەردەکەوێت %2؟\",\n \"SENSING_DISTANCETO\": \"دووری بۆ %1\",\n \"SENSING_DISTANCETO_POINTER\": \"نیشاندەری ماوس\",\n \"SENSING_ASKANDWAIT\": \"پرسیار بکە %1 و چاوەڕێ بکە\",\n \"SENSING_ASK_TEXT\": \"ناوت چییە؟\",\n \"SENSING_ANSWER\": \"وەڵام\",\n \"SENSING_KEYPRESSED\": \"دوگمەی %1 داگیرا؟\",\n \"SENSING_MOUSEDOWN\": \"ماوس بۆ خوارەوە؟\",\n \"SENSING_MOUSEX\": \"ماوس x\",\n \"SENSING_MOUSEY\": \"ماوس y\",\n \"SENSING_SETDRAGMODE\": \"دانانی شێوازی ڕاکێشان %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"ڕادەکێشترێت\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"ڕاناکێشرێت\",\n \"SENSING_LOUDNESS\": \"دەنگەدەنگ\",\n \"SENSING_LOUD\": \"بەدەنگی بەرز؟\",\n \"SENSING_TIMER\": \"کاتێنەر\",\n \"SENSING_RESETTIMER\": \"ڕێکخستنەوەی کاتێنەر\",\n \"SENSING_OF\": \"%1 لە %2\",\n \"SENSING_OF_XPOSITION\": \"شوێنی x\",\n \"SENSING_OF_YPOSITION\": \"شوێنی y\",\n \"SENSING_OF_DIRECTION\": \"ئاڕاستە\",\n \"SENSING_OF_COSTUMENUMBER\": \"بەرگ #\",\n \"SENSING_OF_COSTUMENAME\": \"ناوی بەرگ\",\n \"SENSING_OF_SIZE\": \"قەبارە\",\n \"SENSING_OF_VOLUME\": \"قەبارە\",\n \"SENSING_OF_BACKDROPNUMBER\": \"پاشبنه‌ما #\",\n \"SENSING_OF_BACKDROPNAME\": \"ناوی پاشبنەما\",\n \"SENSING_OF_STAGE\": \"سەکۆ\",\n \"SENSING_CURRENT\": \"ئێستا %1\",\n \"SENSING_CURRENT_YEAR\": \"ساڵ\",\n \"SENSING_CURRENT_MONTH\": \"مانگ\",\n \"SENSING_CURRENT_DATE\": \"بەروار\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"ڕۆژی هەفتە\",\n \"SENSING_CURRENT_HOUR\": \"کاتژمێر\",\n \"SENSING_CURRENT_MINUTE\": \"خولەک\",\n \"SENSING_CURRENT_SECOND\": \"چرکە\",\n \"SENSING_DAYSSINCE2000\": \"ڕۆژ لەوەتەی 2000\",\n \"SENSING_USERNAME\": \"ناوی بەکارهێنەر\",\n \"SENSING_USERID\": \"ژمارەی بەکارهێنەر\",\n \"SOUND_PLAY\": \"دەستپێکردنی دەنگ %1\",\n \"SOUND_PLAYUNTILDONE\": \"لێدانی دەنگی %1 تا تەواوبوون\",\n \"SOUND_STOPALLSOUNDS\": \"هەموو دەنگەکان ڕاگرە\",\n \"SOUND_SETEFFECTO\": \"دانانی %1 کاریگەری بۆ %2\",\n \"SOUND_CHANGEEFFECTBY\": \"گۆڕینی %1 کاریگەری بە %2\",\n \"SOUND_CLEAREFFECTS\": \"سڕینەوەی کاریگەرییەکانی دەنگ\",\n \"SOUND_EFFECTS_PITCH\": \"بەرزی دەنگ\",\n \"SOUND_EFFECTS_PAN\": \"سوڕانەوە چەپ/ڕاست\",\n \"SOUND_CHANGEVOLUMEBY\": \"گۆڕینی دەنگ بە %1\",\n \"SOUND_SETVOLUMETO\": \"دانانی دانگ بە %1%\",\n \"SOUND_VOLUME\": \"قەبارە\",\n \"SOUND_RECORD\": \"تۆمارکردن...\",\n \"CATEGORY_MOTION\": \"جوڵان\",\n \"CATEGORY_LOOKS\": \"ڕوانین\",\n \"CATEGORY_SOUND\": \"دەنگ\",\n \"CATEGORY_EVENTS\": \"چالاکییەکان\",\n \"CATEGORY_CONTROL\": \"کۆنتڕۆڵ\",\n \"CATEGORY_SENSING\": \"هەستکردن\",\n \"CATEGORY_OPERATORS\": \"كرده‌هێماکان\",\n \"CATEGORY_VARIABLES\": \"گۆڕاوەکان\",\n \"CATEGORY_MYBLOCKS\": \"بلۆکەکانم\",\n \"DUPLICATE\": \"هاوشێوەکردنەوە\",\n \"DELETE\": \"سڕینەوە\",\n \"ADD_COMMENT\": \"زیادکردنی لێدوان\",\n \"REMOVE_COMMENT\": \"لابردنی لێدوان\",\n \"DELETE_BLOCK\": \"سڕینەوەی بلۆک\",\n \"DELETE_X_BLOCKS\": \"سڕینەوەی %1 بلۆک\",\n \"DELETE_ALL_BLOCKS\": \"سڕینەوەی هەموو %1 بلۆکەکان؟\",\n \"CLEAN_UP\": \"بەتاڵکردنەوەی بلۆکەکان\",\n \"HELP\": \"یارمەتی\",\n \"UNDO\": \"هه‌ڵوه‌شاندنه‌وه‌\",\n \"REDO\": \"کردنەوە\",\n \"EDIT_PROCEDURE\": \"دەستکاری\",\n \"SHOW_PROCEDURE_DEFINITION\": \"بڕۆ بۆ پێناسە\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"شتێک بڵێ\",\n \"COLOUR_HUE_LABEL\": \"ڕەنگ\",\n \"COLOUR_SATURATION_LABEL\": \"تێری\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"ڕووناکی\",\n \"CHANGE_VALUE_TITLE\": \"گۆڕینی نرخ:\",\n \"RENAME_VARIABLE\": \"ناونانەوەی گۆڕاو\",\n \"RENAME_VARIABLE_TITLE\": \"ناونانەوەی هەموو \\\"%1\\\" گۆڕاوەکان بۆ:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"ناونانەوەی گۆڕاو\",\n \"NEW_VARIABLE\": \"دروستکردنی گۆڕاوێک\",\n \"NEW_VARIABLE_TITLE\": \"ناوی نوێی گۆڕاو\",\n \"VARIABLE_MODAL_TITLE\": \"گۆڕاوی نوێ\",\n \"VARIABLE_ALREADY_EXISTS\": \"گۆڕاوی ناونراو \\\"%1\\\" هەیە.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"گۆڕاوی ناونراو \\\"%1\\\" هەیە بۆ گۆڕاوێکی تر لە جۆری \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"سڕینەوەی %1 بەکارهێنانی \\\"%2\\\" گۆڕاو؟\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"گۆڕاوەی \\\"%1\\\" ناسڕێتەوە چونکە بەشێکە لە پێناسەی فرمانی \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"سڕینەوەی \\\"%1\\\" گۆڕاو\",\n \"NEW_PROCEDURE\": \"دروستکردنی بلۆکێک\",\n \"PROCEDURE_ALREADY_EXISTS\": \"کارایی ناونراو \\\"%1\\\" هەیە.\",\n \"PROCEDURE_DEFAULT_NAME\": \"ناوی بلۆک\",\n \"NEW_LIST\": \"دروستکردنی لیستێک\",\n \"NEW_LIST_TITLE\": \"ناوی نوێی لیست\",\n \"LIST_MODAL_TITLE\": \"لیستی نوێ\",\n \"LIST_ALREADY_EXISTS\": \"لیستی ناونراو \\\"%1\\\" هەیە.\",\n \"RENAME_LIST_TITLE\": \"ناونانەوەی هەموو \\\"%1\\\" لیستەکان بە:\",\n \"RENAME_LIST_MODAL_TITLE\": \"ناونانەوەی لیست\",\n \"DEFAULT_LIST_ITEM\": \"شت\",\n \"DELETE_LIST\": \"سڕینەوەی \\\"%1\\\" لیست\",\n \"RENAME_LIST\": \"ناونانەوەی لیست\",\n \"NEW_BROADCAST_MESSAGE\": \"پەیامی نوێ\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"ناوی نامەی نوێی\",\n \"BROADCAST_MODAL_TITLE\": \"پەیامی نوێ\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"نامەی1\"\n};\n\nBlockly.ScratchMsgs.locales[\"lv\"] =\n{\n \"CONTROL_FOREVER\": \"nepārtraukti\",\n \"CONTROL_REPEAT\": \"atkārtot %1\",\n \"CONTROL_IF\": \"ja %1 tad\",\n \"CONTROL_ELSE\": \"citādi\",\n \"CONTROL_STOP\": \"apturēt\",\n \"CONTROL_STOP_ALL\": \"viss\",\n \"CONTROL_STOP_THIS\": \"šis skripts\",\n \"CONTROL_STOP_OTHER\": \"citi skripti gariņā\",\n \"CONTROL_WAIT\": \"gaidīt %1 sekundes\",\n \"CONTROL_WAITUNTIL\": \"gaidīt līdz %1\",\n \"CONTROL_REPEATUNTIL\": \"atkārtot līdz %1\",\n \"CONTROL_WHILE\": \"kamēr %1\",\n \"CONTROL_FOREACH\": \"katram %1 %2\",\n \"CONTROL_STARTASCLONE\": \"kad es parādos kā dublikāts\",\n \"CONTROL_CREATECLONEOF\": \"izveidot %1 dublikātu\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"savu\",\n \"CONTROL_DELETETHISCLONE\": \"dzēst šo dublikātu\",\n \"CONTROL_COUNTER\": \"skaitītājs\",\n \"CONTROL_INCRCOUNTER\": \"pieauguma skaitītājs\",\n \"CONTROL_CLEARCOUNTER\": \"nodzēst skaitītāju\",\n \"CONTROL_ALLATONCE\": \"viss vienlaikus\",\n \"DATA_SETVARIABLETO\": \"iestatīt %1 uz %2\",\n \"DATA_CHANGEVARIABLEBY\": \"mainīt %1 par %2\",\n \"DATA_SHOWVARIABLE\": \"rādīt mainīgo %1\",\n \"DATA_HIDEVARIABLE\": \"slēpt mainīgo %1\",\n \"DATA_ADDTOLIST\": \"pievienot %1 pie %2\",\n \"DATA_DELETEOFLIST\": \"dzēst %1 no %2\",\n \"DATA_DELETEALLOFLIST\": \"dzēst visu no %1\",\n \"DATA_INSERTATLIST\": \"ievietot %1 kā %2 sarakstā %3\",\n \"DATA_REPLACEITEMOFLIST\": \"aizvietot %1 vienumu sarakstā %2 ar %3\",\n \"DATA_ITEMOFLIST\": \"vienums %1 sarakstā %2\",\n \"DATA_ITEMNUMOFLIST\": \"vienuma %1 # sarakstā %2\",\n \"DATA_LENGTHOFLIST\": \"%1 garums\",\n \"DATA_LISTCONTAINSITEM\": \"%1 satur %2?\",\n \"DATA_SHOWLIST\": \"rādīt sarakstu %1\",\n \"DATA_HIDELIST\": \"slēpt sarakstu %1\",\n \"DATA_INDEX_ALL\": \"viss\",\n \"DATA_INDEX_LAST\": \"pēdējais\",\n \"DATA_INDEX_RANDOM\": \"nejaušs\",\n \"EVENT_WHENFLAGCLICKED\": \"kad %1 nospiests\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"kad noklikšķināts šis gariņš\",\n \"EVENT_WHENSTAGECLICKED\": \"kad noklikšķināta skatuve\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"kad šis gariņš pieskaras %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"kad es saņemu %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"kad fons nomainās uz %1\",\n \"EVENT_WHENGREATERTHAN\": \"kad %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"taimeris\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"skaļums\",\n \"EVENT_BROADCAST\": \"pārraidīt %1\",\n \"EVENT_BROADCASTANDWAIT\": \"pārraidīt %1 un gaidīt\",\n \"EVENT_WHENKEYPRESSED\": \"kad nospiests taustiņš %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"atstarpe\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"kreisā bulta\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"labā bulta\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"apakšējā bulta\",\n \"EVENT_WHENKEYPRESSED_UP\": \"augšējā bulta\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"jebkāds\",\n \"LOOKS_SAYFORSECS\": \"teikt %1 %2 sekundes\",\n \"LOOKS_SAY\": \"teikt %1\",\n \"LOOKS_HELLO\": \"Sveiki!\",\n \"LOOKS_THINKFORSECS\": \"domāt %1 %2 sekundes\",\n \"LOOKS_THINK\": \"domāt %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"rādīt\",\n \"LOOKS_HIDE\": \"slēpt\",\n \"LOOKS_HIDEALLSPRITES\": \"slēpt visus gariņus\",\n \"LOOKS_EFFECT_COLOR\": \"krāsa\",\n \"LOOKS_EFFECT_FISHEYE\": \"zivsacs\",\n \"LOOKS_EFFECT_WHIRL\": \"virpuļi\",\n \"LOOKS_EFFECT_PIXELATE\": \"pikseļi\",\n \"LOOKS_EFFECT_MOSAIC\": \"mozaīka\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"gaišums\",\n \"LOOKS_EFFECT_GHOST\": \"spoks\",\n \"LOOKS_CHANGEEFFECTBY\": \"mainīt efektu %1 par %2\",\n \"LOOKS_SETEFFECTTO\": \"iestatīt efektu %1 par %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"notīrīt grafiskos efektus\",\n \"LOOKS_CHANGESIZEBY\": \"mainīt izmēru par %1\",\n \"LOOKS_SETSIZETO\": \"iestatīt izmēru uz %1 %\",\n \"LOOKS_SIZE\": \"izmērs\",\n \"LOOKS_CHANGESTRETCHBY\": \"manīt saspīlējumu par %1\",\n \"LOOKS_SETSTRETCHTO\": \"iestatīt saspīlējumu uz %1\",\n \"LOOKS_SWITCHCOSTUMETO\": \"mainīt tērpu uz %1\",\n \"LOOKS_NEXTCOSTUME\": \"nākamais tērps\",\n \"LOOKS_SWITCHBACKDROPTO\": \"mainīt fonu uz %1\",\n \"LOOKS_GOTOFRONTBACK\": \"iet uz %1 slāni\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"priekšējo\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"aizmugurējo\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"iet %1 %2 slāņus\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"uz priekšu\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"atpakaļ\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"fona %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"tērpa %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"numurs\",\n \"LOOKS_NUMBERNAME_NAME\": \"vārds\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"mainīt fonu uz %1 un gaidīt\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"nākamais fons\",\n \"LOOKS_NEXTBACKDROP\": \"nākamais fons\",\n \"LOOKS_PREVIOUSBACKDROP\": \"iepriekšējais fons\",\n \"LOOKS_RANDOMBACKDROP\": \"nejaušs fons\",\n \"MOTION_MOVESTEPS\": \"pārvietoties %1 soļus\",\n \"MOTION_TURNLEFT\": \"pagriezties %1 par %2 grādiem\",\n \"MOTION_TURNRIGHT\": \"pagriezties %1 par %2 grādiem\",\n \"MOTION_POINTINDIRECTION\": \"pagriezt virzienā %1\",\n \"MOTION_POINTTOWARDS\": \"pagriezt uz %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"peles kursors\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"nejaušs virziens\",\n \"MOTION_GOTO\": \"iet uz %1\",\n \"MOTION_GOTO_POINTER\": \"peles kursors\",\n \"MOTION_GOTO_RANDOM\": \"nejauša pozīcija\",\n \"MOTION_GOTOXY\": \"iet uz x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"slīdēt %1 sekundes uz x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"slīdēt %1 sekundes uz %2\",\n \"MOTION_GLIDETO_POINTER\": \"peles kursors\",\n \"MOTION_GLIDETO_RANDOM\": \"nejauša pozīcija\",\n \"MOTION_CHANGEXBY\": \"mainīt x par %1\",\n \"MOTION_SETX\": \"iestatīt x uz %1\",\n \"MOTION_CHANGEYBY\": \"mainīt y par %1\",\n \"MOTION_SETY\": \"iestatīt y uz %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"ja uz malas, atlēkt\",\n \"MOTION_SETROTATIONSTYLE\": \"iestatīt griešanās stilu uz %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"pa kreisi - pa labi\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"negriezties\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"jebkurā virzienā\",\n \"MOTION_XPOSITION\": \"x pozīcija\",\n \"MOTION_YPOSITION\": \"y pozīcija\",\n \"MOTION_DIRECTION\": \"virziens\",\n \"MOTION_SCROLLRIGHT\": \"ritināt pa labi %1\",\n \"MOTION_SCROLLUP\": \"ritināt uz augšu %1\",\n \"MOTION_ALIGNSCENE\": \"izlīdzināt ainu %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"apakšā-pa kreisi\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"apakšā-pa labi\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \" vidū\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"augšā-pa kreisi\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"augšā-pa labi\",\n \"MOTION_XSCROLL\": \"x ritināšana\",\n \"MOTION_YSCROLL\": \"y ritināšana\",\n \"MOTION_STAGE_SELECTED\": \"Izvēlēta skatuve: nav kustības bloku\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"izvēlēties nejauši no %1 līdz %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 un %2\",\n \"OPERATORS_OR\": \"%1 vai %2\",\n \"OPERATORS_NOT\": \"nav %1\",\n \"OPERATORS_JOIN\": \"apvienot %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"ābols\",\n \"OPERATORS_JOIN_BANANA\": \"banāns\",\n \"OPERATORS_LETTEROF\": \"burts %1 no %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"ā\",\n \"OPERATORS_LENGTH\": \"%1 garums\",\n \"OPERATORS_CONTAINS\": \"%1 satur %2?\",\n \"OPERATORS_MOD\": \"%1 atlikums dalot ar %2\",\n \"OPERATORS_ROUND\": \"noapaļot %1\",\n \"OPERATORS_MATHOP\": \"%1 no %2\",\n \"OPERATORS_MATHOP_ABS\": \"modulis (absolūtā vērtība)\",\n \"OPERATORS_MATHOP_FLOOR\": \"apaļot uz leju\",\n \"OPERATORS_MATHOP_CEILING\": \"apaļot uz augšu\",\n \"OPERATORS_MATHOP_SQRT\": \"kvadrātsakne\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"In\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"definēt %1\",\n \"SENSING_TOUCHINGOBJECT\": \"pieskaras %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"peles kursors\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"mala\",\n \"SENSING_TOUCHINGCOLOR\": \"pieskaras krāsai %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"krāsa %1 pieskaras %2?\",\n \"SENSING_DISTANCETO\": \"attālums līdz %1\",\n \"SENSING_DISTANCETO_POINTER\": \"peles kursors\",\n \"SENSING_ASKANDWAIT\": \"jautāt %1 un gaidīt \",\n \"SENSING_ASK_TEXT\": \"Kā tevi sauc?\",\n \"SENSING_ANSWER\": \"atbilde\",\n \"SENSING_KEYPRESSED\": \"nospiests taustiņš %1?\",\n \"SENSING_MOUSEDOWN\": \"peles taustiņš nospiests?\",\n \"SENSING_MOUSEX\": \"peles x\",\n \"SENSING_MOUSEY\": \"peles y\",\n \"SENSING_SETDRAGMODE\": \"iestatīt vilkšanas režīmu uz %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"velkams\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"nav velkams\",\n \"SENSING_LOUDNESS\": \"skaļums\",\n \"SENSING_LOUD\": \"skaļš?\",\n \"SENSING_TIMER\": \"taimeris\",\n \"SENSING_RESETTIMER\": \"atiestatīt taimeri\",\n \"SENSING_OF\": \"%1 no %2\",\n \"SENSING_OF_XPOSITION\": \"x pozīcija\",\n \"SENSING_OF_YPOSITION\": \"y pozīcija\",\n \"SENSING_OF_DIRECTION\": \"virziens\",\n \"SENSING_OF_COSTUMENUMBER\": \"tērpa #\",\n \"SENSING_OF_COSTUMENAME\": \"tērpa nosaukums\",\n \"SENSING_OF_SIZE\": \"izmērs\",\n \"SENSING_OF_VOLUME\": \"skaļums\",\n \"SENSING_OF_BACKDROPNUMBER\": \"fona #\",\n \"SENSING_OF_BACKDROPNAME\": \"fona nosaukums\",\n \"SENSING_OF_STAGE\": \"Skatuve\",\n \"SENSING_CURRENT\": \"pašreizējais %1\",\n \"SENSING_CURRENT_YEAR\": \"gads\",\n \"SENSING_CURRENT_MONTH\": \"mēnesis\",\n \"SENSING_CURRENT_DATE\": \"datums\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"nedēļas diena\",\n \"SENSING_CURRENT_HOUR\": \"stunda\",\n \"SENSING_CURRENT_MINUTE\": \"minūte\",\n \"SENSING_CURRENT_SECOND\": \"sekunde\",\n \"SENSING_DAYSSINCE2000\": \"dienas kopš 2000\",\n \"SENSING_USERNAME\": \"lietotājvārds\",\n \"SENSING_USERID\": \"lietotāja id\",\n \"SOUND_PLAY\": \"atskaņot skaņu %1\",\n \"SOUND_PLAYUNTILDONE\": \"atskaņot skaņu %1 līdz galam\",\n \"SOUND_STOPALLSOUNDS\": \"apturēt visas skaņas\",\n \"SOUND_SETEFFECTO\": \"iestatīt efektu %1 uz %2\",\n \"SOUND_CHANGEEFFECTBY\": \"mainīt efektu %1 par %2\",\n \"SOUND_CLEAREFFECTS\": \"notīrīt skaņas efektus\",\n \"SOUND_EFFECTS_PITCH\": \"augstums\",\n \"SOUND_EFFECTS_PAN\": \"bīdīt pa labi/pa kreisi\",\n \"SOUND_CHANGEVOLUMEBY\": \"mainīt skaļumu par %1\",\n \"SOUND_SETVOLUMETO\": \"iestatīt skaļumu uz %1%\",\n \"SOUND_VOLUME\": \"skaļums\",\n \"SOUND_RECORD\": \"ierakstīt...\",\n \"CATEGORY_MOTION\": \"Kustība\",\n \"CATEGORY_LOOKS\": \"Izskats\",\n \"CATEGORY_SOUND\": \"Skaņa\",\n \"CATEGORY_EVENTS\": \"Notikumi\",\n \"CATEGORY_CONTROL\": \"Vadība\",\n \"CATEGORY_SENSING\": \"Uztveršana\",\n \"CATEGORY_OPERATORS\": \"Operatori\",\n \"CATEGORY_VARIABLES\": \"Mainīgie\",\n \"CATEGORY_MYBLOCKS\": \"Mani bloki\",\n \"DUPLICATE\": \"Dublēt\",\n \"DELETE\": \"Dzēst\",\n \"ADD_COMMENT\": \"Pievienot komentāru\",\n \"REMOVE_COMMENT\": \"Noņemt komentāru\",\n \"DELETE_BLOCK\": \"Dzēst bloku\",\n \"DELETE_X_BLOCKS\": \"Dzēst %1 blokus\",\n \"DELETE_ALL_BLOCKS\": \"Dzēst visus %1 blokus?\",\n \"CLEAN_UP\": \"Satīrīt blokus\",\n \"HELP\": \"Palīdzība\",\n \"UNDO\": \"Atsaukt\",\n \"REDO\": \"Atcelt atsaukšanu\",\n \"EDIT_PROCEDURE\": \"Rediģēt\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Iet uz definīciju\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Saki kaut ko...\",\n \"COLOUR_HUE_LABEL\": \"Krāsa\",\n \"COLOUR_SATURATION_LABEL\": \"Piesātinājums\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Gaišums\",\n \"CHANGE_VALUE_TITLE\": \"Mainīt vērtību:\",\n \"RENAME_VARIABLE\": \"Pārdēvēt mainīgo\",\n \"RENAME_VARIABLE_TITLE\": \"Pārdēvēt visus \\\"%1\\\" mainīgos uz:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Pārdēvēt Mainīgo\",\n \"NEW_VARIABLE\": \"Izveidot Mainīgo\",\n \"NEW_VARIABLE_TITLE\": \"Jauns mainīgā nosaukums:\",\n \"VARIABLE_MODAL_TITLE\": \"Jauns Mainīgais\",\n \"VARIABLE_ALREADY_EXISTS\": \"Mainīgais \\\"%1\\\" jau pastāv.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Mainīgais \\\"%1\\\" jau pastāv citam mainīgajam ar tipu ''%2''.\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Dzēst %1 mainīgā %2 lietojumus?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Nevar dzēst mainīgo \\\"%1\\\", jo tas ir daļa no funkcijas \\\"%2\\\" definīcijas\",\n \"DELETE_VARIABLE\": \"Dzēst ''%1'' mainīgo\",\n \"NEW_PROCEDURE\": \"Izveidot bloku\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Procedūra ar nosaukumu \\\"%1\\\" jau pastāv.\",\n \"PROCEDURE_DEFAULT_NAME\": \"bloka nosaukums\",\n \"NEW_LIST\": \"Izveidot sarakstu\",\n \"NEW_LIST_TITLE\": \"Jauns saraksta nosaukums:\",\n \"LIST_MODAL_TITLE\": \"Jauns saraksts\",\n \"LIST_ALREADY_EXISTS\": \"Saraksts ar nosaukumu \\\"%1\\\" jau pastāv.\",\n \"RENAME_LIST_TITLE\": \"Pārdēvēt visus \\\"%1\\\" sarakstus uz:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Pārdēvēt sarakstu\",\n \"DEFAULT_LIST_ITEM\": \"lieta\",\n \"DELETE_LIST\": \"Dzēst \\\"%1\\\" sarakstu\",\n \"RENAME_LIST\": \"Pārdēvēt sarakstu\",\n \"NEW_BROADCAST_MESSAGE\": \"Jauna ziņa\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Jauns ziņas nosaukums:\",\n \"BROADCAST_MODAL_TITLE\": \"Jauna ziņa\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"ziņa1\"\n};\n\nBlockly.ScratchMsgs.locales[\"lt\"] =\n{\n \"CONTROL_FOREVER\": \"kartok be galo\",\n \"CONTROL_REPEAT\": \"kartok %1\",\n \"CONTROL_IF\": \"jeigu %1\",\n \"CONTROL_ELSE\": \"kitais atvejais\",\n \"CONTROL_STOP\": \"sustok\",\n \"CONTROL_STOP_ALL\": \"visiškai\",\n \"CONTROL_STOP_THIS\": \"šį scenarijų\",\n \"CONTROL_STOP_OTHER\": \"kitus veikėjo scenarijus\",\n \"CONTROL_WAIT\": \"palauk %1 sek.\",\n \"CONTROL_WAITUNTIL\": \"palauk, kol pasidarys %1\",\n \"CONTROL_REPEATUNTIL\": \"kartok, kol pasidarys %1\",\n \"CONTROL_WHILE\": \"kol %1\",\n \"CONTROL_FOREACH\": \"su kiekvienu %1 iš %2\",\n \"CONTROL_STARTASCLONE\": \"kai pradės veikti klonas\",\n \"CONTROL_CREATECLONEOF\": \"sukurk %1 kloną\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"savęs\",\n \"CONTROL_DELETETHISCLONE\": \"ištrink šį kloną\",\n \"CONTROL_COUNTER\": \"skaitiklis\",\n \"CONTROL_INCRCOUNTER\": \"padidink skaitiklį vienetu\",\n \"CONTROL_CLEARCOUNTER\": \"skaitiklis = 0\",\n \"CONTROL_ALLATONCE\": \"viskas vienu metu\",\n \"DATA_SETVARIABLETO\": \"%1 = %2\",\n \"DATA_CHANGEVARIABLEBY\": \"%1 padidink %2\",\n \"DATA_SHOWVARIABLE\": \"rodyk %1\",\n \"DATA_HIDEVARIABLE\": \"slėpk %1\",\n \"DATA_ADDTOLIST\": \"pridėk %1 į %2\",\n \"DATA_DELETEOFLIST\": \"ištrinti %1 iš %2\",\n \"DATA_DELETEALLOFLIST\": \"ištrinti visus iš %1\",\n \"DATA_INSERTATLIST\": \"į sąrašo %3 %2 vietą įterpti %1\",\n \"DATA_REPLACEITEMOFLIST\": \"sąrašo %2 %1 vietai priskirti %3\",\n \"DATA_ITEMOFLIST\": \"%2 nr. %1\",\n \"DATA_ITEMNUMOFLIST\": \"%1 vieta sąraše %2\",\n \"DATA_LENGTHOFLIST\": \"%1 ilgis\",\n \"DATA_LISTCONTAINSITEM\": \"%1 turi %2?\",\n \"DATA_SHOWLIST\": \"rodyti sąrašą %1\",\n \"DATA_HIDELIST\": \"slėpti sąrašą %1\",\n \"DATA_INDEX_ALL\": \"viskas\",\n \"DATA_INDEX_LAST\": \"paskutinis\",\n \"DATA_INDEX_RANDOM\": \"atsitiktinis\",\n \"EVENT_WHENFLAGCLICKED\": \"kai spusteli %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"kai spusteli ant šio veikėjo\",\n \"EVENT_WHENSTAGECLICKED\": \"kai paspaudi scenoje\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"kai paliesi %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"kai gausi žinutę %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"kai fonas perjungiamas į %1\",\n \"EVENT_WHENGREATERTHAN\": \"kai %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"laikmatis\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"garsumas\",\n \"EVENT_BROADCAST\": \"skelbti %1\",\n \"EVENT_BROADCASTANDWAIT\": \"skelbti %1 ir palaukti\",\n \"EVENT_WHENKEYPRESSED\": \"kai paspaudi %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"tarpą\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"<--\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"-->\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"⬇️\",\n \"EVENT_WHENKEYPRESSED_UP\": \"⬆️\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"bet kurį\",\n \"LOOKS_SAYFORSECS\": \"sakyk %1 %2 s.\",\n \"LOOKS_SAY\": \"sakyk %1\",\n \"LOOKS_HELLO\": \"Sveiki!\",\n \"LOOKS_THINKFORSECS\": \"galvok %1 %2 s.\",\n \"LOOKS_THINK\": \"galvok %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"rodyk\",\n \"LOOKS_HIDE\": \"slėpk\",\n \"LOOKS_HIDEALLSPRITES\": \"paslėpti visus veikėjus\",\n \"LOOKS_EFFECT_COLOR\": \"spalva\",\n \"LOOKS_EFFECT_FISHEYE\": \"lęšis\",\n \"LOOKS_EFFECT_WHIRL\": \"susukimas\",\n \"LOOKS_EFFECT_PIXELATE\": \"stambinti taškus\",\n \"LOOKS_EFFECT_MOSAIC\": \"mozaika\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"šviesumas\",\n \"LOOKS_EFFECT_GHOST\": \"permatomumas\",\n \"LOOKS_CHANGEEFFECTBY\": \"efektą %1 padidink %2\",\n \"LOOKS_SETEFFECTTO\": \"efektas %1 = %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"panaikink išvaizdos efektus\",\n \"LOOKS_CHANGESIZEBY\": \"dydį padidink %1 \",\n \"LOOKS_SETSIZETO\": \"dydis = %1 %\",\n \"LOOKS_SIZE\": \"dydis\",\n \"LOOKS_CHANGESTRETCHBY\": \"ruožą padidink %1\",\n \"LOOKS_SETSTRETCHTO\": \"ruožas = %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"kaukė = %1\",\n \"LOOKS_NEXTCOSTUME\": \"kita kaukė\",\n \"LOOKS_SWITCHBACKDROPTO\": \"fonas = %1\",\n \"LOOKS_GOTOFRONTBACK\": \"perkelk į %1 sluoksnį\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"arčiausią\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"tolimiausią\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"perkelti per %2 sluoksnius %1\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"arčiau\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"toliau\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"fonas %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"kaukė %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"numeris\",\n \"LOOKS_NUMBERNAME_NAME\": \"vardas\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"fonas = %1 (palauk, kol pasikeis)\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"kitas fonas\",\n \"LOOKS_NEXTBACKDROP\": \"kitas fonas\",\n \"LOOKS_PREVIOUSBACKDROP\": \"ankstesnis fonas\",\n \"LOOKS_RANDOMBACKDROP\": \"atsitiktinis fonas\",\n \"MOTION_MOVESTEPS\": \"eik %1\",\n \"MOTION_TURNLEFT\": \"pasisuk %1 %2 laipsnių\",\n \"MOTION_TURNRIGHT\": \"pasisuk %1 %2 laipsnių\",\n \"MOTION_POINTINDIRECTION\": \"žiūrėk %1 laipsnių kryptimi\",\n \"MOTION_POINTTOWARDS\": \"žiūrėk į %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"pelės žymeklį\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"atsitiktinę kryptį\",\n \"MOTION_GOTO\": \"eik ten, kur %1\",\n \"MOTION_GOTO_POINTER\": \"pelės žymeklis\",\n \"MOTION_GOTO_RANDOM\": \"atsitiktinė pozicija\",\n \"MOTION_GOTOXY\": \"eik į x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"slink į x: %2 y: %3 per %1 s.\",\n \"MOTION_GLIDETO\": \"slink ten, kur %2 per %1 s.\",\n \"MOTION_GLIDETO_POINTER\": \"pelės žymeklis\",\n \"MOTION_GLIDETO_RANDOM\": \"atsitiktinė pozicija\",\n \"MOTION_CHANGEXBY\": \"x padidink %1\",\n \"MOTION_SETX\": \"x = %1\",\n \"MOTION_CHANGEYBY\": \"y padidink %1\",\n \"MOTION_SETY\": \"y = %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"jei prie krašto, atšok\",\n \"MOTION_SETROTATIONSTYLE\": \"sukimosi būdas = %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"kairėn-dešinėn\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"nesisukti\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"visomis kryptimis\",\n \"MOTION_XPOSITION\": \"x vieta\",\n \"MOTION_YPOSITION\": \"y vieta\",\n \"MOTION_DIRECTION\": \"kryptis\",\n \"MOTION_SCROLLRIGHT\": \"slinkti dešinėn %1\",\n \"MOTION_SCROLLUP\": \"slinkti aukštyn %1\",\n \"MOTION_ALIGNSCENE\": \"lygiuoti sceną %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"apačioj kairėj\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"apačioj dešinėj\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"viduryje\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"kairėj viršuj\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"dešinėj viršuj\",\n \"MOTION_XSCROLL\": \"x slinktis\",\n \"MOTION_YSCROLL\": \"y slinktis\",\n \"MOTION_STAGE_SELECTED\": \"Pažymėta scena: jokių judesio blokų\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"atsitiktinis sk. tarp %1 ir %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 ir %2\",\n \"OPERATORS_OR\": \"%1 arba %2\",\n \"OPERATORS_NOT\": \"ne %1\",\n \"OPERATORS_JOIN\": \"sujunk %1 ir %2\",\n \"OPERATORS_JOIN_APPLE\": \"obuolys\",\n \"OPERATORS_JOIN_BANANA\": \"bananas\",\n \"OPERATORS_LETTEROF\": \"%2 raidė nr. %1\",\n \"OPERATORS_LETTEROF_APPLE\": \"o\",\n \"OPERATORS_LENGTH\": \"%1 ilgis\",\n \"OPERATORS_CONTAINS\": \"ar %1 turi %2?\",\n \"OPERATORS_MOD\": \"%1 / %2 liekana\",\n \"OPERATORS_ROUND\": \"suapvalinta %1\",\n \"OPERATORS_MATHOP\": \"%1 ( %2 )\",\n \"OPERATORS_MATHOP_ABS\": \"teigiama reikšmė\",\n \"OPERATORS_MATHOP_FLOOR\": \"apvalinimas žemyn\",\n \"OPERATORS_MATHOP_CEILING\": \"apvalinimas aukštyn\",\n \"OPERATORS_MATHOP_SQRT\": \"kvadratinė šaknis\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tg\",\n \"OPERATORS_MATHOP_ASIN\": \"arcsin\",\n \"OPERATORS_MATHOP_ACOS\": \"arccos\",\n \"OPERATORS_MATHOP_ATAN\": \"arctg\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"komanda %1\",\n \"SENSING_TOUCHINGOBJECT\": \"lieti %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"pelės žymeklį\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"kraštą\",\n \"SENSING_TOUCHINGCOLOR\": \"lieti spalvą %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"spalva %1 liečia %2?\",\n \"SENSING_DISTANCETO\": \"atstumas iki %1\",\n \"SENSING_DISTANCETO_POINTER\": \"pelės žymeklio\",\n \"SENSING_ASKANDWAIT\": \"paklausk %1 ir lauk\",\n \"SENSING_ASK_TEXT\": \"Koks tavo vardas?\",\n \"SENSING_ANSWER\": \"atsakas\",\n \"SENSING_KEYPRESSED\": \"%1 paspausta?\",\n \"SENSING_MOUSEDOWN\": \"pelė paspausta?\",\n \"SENSING_MOUSEX\": \"pelės x\",\n \"SENSING_MOUSEY\": \"pelės y\",\n \"SENSING_SETDRAGMODE\": \"vilkimas pele = %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"velkamas\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"nevelkamas\",\n \"SENSING_LOUDNESS\": \"garsumas\",\n \"SENSING_LOUD\": \"garsiai?\",\n \"SENSING_TIMER\": \"laikmatis\",\n \"SENSING_RESETTIMER\": \"laikmatis = 0\",\n \"SENSING_OF\": \"%2 : %1\",\n \"SENSING_OF_XPOSITION\": \"x koordinatė\",\n \"SENSING_OF_YPOSITION\": \"y koordinatė\",\n \"SENSING_OF_DIRECTION\": \"kryptis\",\n \"SENSING_OF_COSTUMENUMBER\": \"kaukės nr.\",\n \"SENSING_OF_COSTUMENAME\": \"kaukės pavadinimas\",\n \"SENSING_OF_SIZE\": \"dydis\",\n \"SENSING_OF_VOLUME\": \"garsas\",\n \"SENSING_OF_BACKDROPNUMBER\": \"fono nr.\",\n \"SENSING_OF_BACKDROPNAME\": \"fono pavadinimas\",\n \"SENSING_OF_STAGE\": \"Scena\",\n \"SENSING_CURRENT\": \"šio momento %1\",\n \"SENSING_CURRENT_YEAR\": \"metai\",\n \"SENSING_CURRENT_MONTH\": \"mėnuo\",\n \"SENSING_CURRENT_DATE\": \"mėn. diena\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"savaitės diena\",\n \"SENSING_CURRENT_HOUR\": \"valanda\",\n \"SENSING_CURRENT_MINUTE\": \"minutė\",\n \"SENSING_CURRENT_SECOND\": \"sekundė\",\n \"SENSING_DAYSSINCE2000\": \"dienų skaičius nuo 2000-ųjų\",\n \"SENSING_USERNAME\": \"vartotojo vardas\",\n \"SENSING_USERID\": \"vartotojo ID\",\n \"SOUND_PLAY\": \"grok %1\",\n \"SOUND_PLAYUNTILDONE\": \"grok %1 kol pasibaigs\",\n \"SOUND_STOPALLSOUNDS\": \"išjunk garsus\",\n \"SOUND_SETEFFECTO\": \"efektas %1 = %2\",\n \"SOUND_CHANGEEFFECTBY\": \"efektą %1 padidink %2\",\n \"SOUND_CLEAREFFECTS\": \"pašalink garso efektus\",\n \"SOUND_EFFECTS_PITCH\": \"garso aukštis\",\n \"SOUND_EFFECTS_PAN\": \"kairiau/dešiniau\",\n \"SOUND_CHANGEVOLUMEBY\": \"garsą padidink %1\",\n \"SOUND_SETVOLUMETO\": \"garsumas = %1%\",\n \"SOUND_VOLUME\": \"garsumas\",\n \"SOUND_RECORD\": \"įrašyti garsą...\",\n \"CATEGORY_MOTION\": \"Judėjimas\",\n \"CATEGORY_LOOKS\": \"Išvaizda\",\n \"CATEGORY_SOUND\": \"Garsas\",\n \"CATEGORY_EVENTS\": \"Įvykiai\",\n \"CATEGORY_CONTROL\": \"Valdymas\",\n \"CATEGORY_SENSING\": \"Jutimas\",\n \"CATEGORY_OPERATORS\": \"Matematika\",\n \"CATEGORY_VARIABLES\": \"Kintamieji\",\n \"CATEGORY_MYBLOCKS\": \"Mano Komandos\",\n \"DUPLICATE\": \"Kurti kopiją\",\n \"DELETE\": \"Ištrinti\",\n \"ADD_COMMENT\": \"Pridėti komentarą\",\n \"REMOVE_COMMENT\": \"Pašalinti komentarą\",\n \"DELETE_BLOCK\": \"Ištrinti bloką\",\n \"DELETE_X_BLOCKS\": \"Ištrinti %1 blokus\",\n \"DELETE_ALL_BLOCKS\": \"Ištrinti visus %1 blokus?\",\n \"CLEAN_UP\": \"Valyti blokus\",\n \"HELP\": \"Pagalba\",\n \"UNDO\": \"Atšaukti\",\n \"REDO\": \"Grąžinti\",\n \"EDIT_PROCEDURE\": \"Taisyti\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Eiti į apibrėžimą\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Pasakyk ką nors...\",\n \"COLOUR_HUE_LABEL\": \"Spalva\",\n \"COLOUR_SATURATION_LABEL\": \"Sodrumas\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Šviesumas\",\n \"CHANGE_VALUE_TITLE\": \"Pakeisti reikšmę:\",\n \"RENAME_VARIABLE\": \"Pervadinti kintamąjį\",\n \"RENAME_VARIABLE_TITLE\": \"Pervadinti visus \\\"%1\\\" kintamuosius į:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Pervadinti kintamąjį\",\n \"NEW_VARIABLE\": \"Sukurti kintamąjį\",\n \"NEW_VARIABLE_TITLE\": \"Naujo kintamojo vardas:\",\n \"VARIABLE_MODAL_TITLE\": \"Naujas kintamasis\",\n \"VARIABLE_ALREADY_EXISTS\": \"Kintamasis vardu \\\"%1\\\" jau yra.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Vardas \\\"%1\\\" jau panaudotas kitam \\\"%2\\\" tipo kintamajam.\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Ištrinti %1 atvejus su kintamuoju \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Negalima ištrinti \\\"%1\\\", nes jis yra funkcijos \\\"%2\\\" aprašymo dalis.\",\n \"DELETE_VARIABLE\": \"Ištrinti kintamąjį \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Sukurti bloką\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Jau egzistuoja procedūra \\\"%1\\\".\",\n \"PROCEDURE_DEFAULT_NAME\": \"bloko pavadinimas\",\n \"NEW_LIST\": \"Sukurti sąrašą\",\n \"NEW_LIST_TITLE\": \"Naujo sąrašo pavadinimas:\",\n \"LIST_MODAL_TITLE\": \"Naujas sąrašas\",\n \"LIST_ALREADY_EXISTS\": \"Jau egzistuoja sąrašas pavadintas \\\"%1\\\".\",\n \"RENAME_LIST_TITLE\": \"Pervadinti visus \\\"%1\\\" sąrašus į:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Pervadinti sąrašą\",\n \"DEFAULT_LIST_ITEM\": \"kažkas\",\n \"DELETE_LIST\": \"Ištrinti \\\"%1\\\" sąrašą\",\n \"RENAME_LIST\": \"Pervadinti sąrašą\",\n \"NEW_BROADCAST_MESSAGE\": \"Nauja žinutė\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Nauja žinutė pavadinimu:\",\n \"BROADCAST_MODAL_TITLE\": \"Nauja žinutė\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"žinutė1\"\n};\n\nBlockly.ScratchMsgs.locales[\"hu\"] =\n{\n \"CONTROL_FOREVER\": \"mindig\",\n \"CONTROL_REPEAT\": \"ismételd %1\",\n \"CONTROL_IF\": \"ha %1 akkor\",\n \"CONTROL_ELSE\": \"különben\",\n \"CONTROL_STOP\": \"álljon le\",\n \"CONTROL_STOP_ALL\": \"minden feladat\",\n \"CONTROL_STOP_THIS\": \"ez a feladat\",\n \"CONTROL_STOP_OTHER\": \"szereplő többi feladata\",\n \"CONTROL_WAIT\": \"várj %1 mp-et\",\n \"CONTROL_WAITUNTIL\": \"várj eddig: %1\",\n \"CONTROL_REPEATUNTIL\": \"ismételd eddig: %1\",\n \"CONTROL_WHILE\": \"amíg %1\",\n \"CONTROL_FOREACH\": \"minden %1 elemet a %2 listában\",\n \"CONTROL_STARTASCLONE\": \"másolatként kezdéskor\",\n \"CONTROL_CREATECLONEOF\": \"készíts másolatot: %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"magadról\",\n \"CONTROL_DELETETHISCLONE\": \"töröld ezt a másolatot\",\n \"CONTROL_COUNTER\": \"számláló\",\n \"CONTROL_INCRCOUNTER\": \"növeld a számlálót\",\n \"CONTROL_CLEARCOUNTER\": \"nullázd a számlálót\",\n \"CONTROL_ALLATONCE\": \"mindent egyszerre\",\n \"DATA_SETVARIABLETO\": \"%1 legyen %2\",\n \"DATA_CHANGEVARIABLEBY\": \"%1 változzon %2\",\n \"DATA_SHOWVARIABLE\": \"%1 változó jelenjen meg\",\n \"DATA_HIDEVARIABLE\": \"%1 változó tűnjön el\",\n \"DATA_ADDTOLIST\": \"add %1 elemet %2 listához\",\n \"DATA_DELETEOFLIST\": \"töröld %1 elemet %2 listából\",\n \"DATA_DELETEALLOFLIST\": \"töröld %1 lista minden elemét\",\n \"DATA_INSERTATLIST\": \"szúrd be %1 elemet %2 helyre %3 listában\",\n \"DATA_REPLACEITEMOFLIST\": \"cseréld le %1 elemet %2 listában %3 elemre\",\n \"DATA_ITEMOFLIST\": \"%2 %1 eleme\",\n \"DATA_ITEMNUMOFLIST\": \"%1 sorszáma %2 listában\",\n \"DATA_LENGTHOFLIST\": \"%1 hossza\",\n \"DATA_LISTCONTAINSITEM\": \"%1 tartalmazza %2?\",\n \"DATA_SHOWLIST\": \"%1 lista jelenjen meg\",\n \"DATA_HIDELIST\": \"%1 lista tűnjön el\",\n \"DATA_INDEX_ALL\": \"minden\",\n \"DATA_INDEX_LAST\": \"utolsó\",\n \"DATA_INDEX_RANDOM\": \"véletlen\",\n \"EVENT_WHENFLAGCLICKED\": \"%1 -ra kattintáskor\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"ezen szereplőre kattintáskor\",\n \"EVENT_WHENSTAGECLICKED\": \"színpadra kattintáskor\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"%1 érintésekor\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"%1 üzenet érkezésekor\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"%1 háttér beállításakor\",\n \"EVENT_WHENGREATERTHAN\": \"amikor %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"időmérő\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"hangerő\",\n \"EVENT_BROADCAST\": \"küldj üzenetet: %1\",\n \"EVENT_BROADCASTANDWAIT\": \"küldj üzenetet: %1 és várj\",\n \"EVENT_WHENKEYPRESSED\": \"amikor %1 gomb lenyomva\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"szóköz\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"balra nyíl\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"jobbra nyíl\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"lefele nyíl\",\n \"EVENT_WHENKEYPRESSED_UP\": \"felfele nyíl\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"bármelyik\",\n \"LOOKS_SAYFORSECS\": \"mondd: %1 %2 másodpercig\",\n \"LOOKS_SAY\": \"mondd: %1\",\n \"LOOKS_HELLO\": \"Üdv!\",\n \"LOOKS_THINKFORSECS\": \"gondold: %1 %2 másodpercig\",\n \"LOOKS_THINK\": \"gondold: %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"jelenj meg\",\n \"LOOKS_HIDE\": \"tűnj el\",\n \"LOOKS_HIDEALLSPRITES\": \"rejtsd el az összes szereplőt\",\n \"LOOKS_EFFECT_COLOR\": \"szín\",\n \"LOOKS_EFFECT_FISHEYE\": \"halszem\",\n \"LOOKS_EFFECT_WHIRL\": \"örvény\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixeles\",\n \"LOOKS_EFFECT_MOSAIC\": \"mozaik\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"fényerő\",\n \"LOOKS_EFFECT_GHOST\": \"szellem\",\n \"LOOKS_CHANGEEFFECTBY\": \"%1 hatás változzon %2\",\n \"LOOKS_SETEFFECTTO\": \"%1 hatás legyen %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"töröld a grafikus hatásokat\",\n \"LOOKS_CHANGESIZEBY\": \"méret változzon %1\",\n \"LOOKS_SETSIZETO\": \"méret legyen %1 %\",\n \"LOOKS_SIZE\": \"méret\",\n \"LOOKS_CHANGESTRETCHBY\": \"nyújtás változzon %1\",\n \"LOOKS_SETSTRETCHTO\": \"nyújtás legyen %1\",\n \"LOOKS_SWITCHCOSTUMETO\": \"jelmez legyen %1\",\n \"LOOKS_NEXTCOSTUME\": \"következő jelmez\",\n \"LOOKS_SWITCHBACKDROPTO\": \"háttér legyen %1\",\n \"LOOKS_GOTOFRONTBACK\": \"menj %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"legelőre\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"leghátra\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"menj %1 %2 szintet\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"előre\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"hátra\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"%1 háttér\",\n \"LOOKS_COSTUMENUMBERNAME\": \"%1 jelmez\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"szám\",\n \"LOOKS_NUMBERNAME_NAME\": \"név\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"háttér legyen %1 és várj\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"következő háttér\",\n \"LOOKS_NEXTBACKDROP\": \"következő háttér\",\n \"LOOKS_PREVIOUSBACKDROP\": \"előző háttér\",\n \"LOOKS_RANDOMBACKDROP\": \"véletlen háttér\",\n \"MOTION_MOVESTEPS\": \"menj %1 lépést\",\n \"MOTION_TURNLEFT\": \"fordulj %1 %2 fokot\",\n \"MOTION_TURNRIGHT\": \"fordulj %1 %2 fokot\",\n \"MOTION_POINTINDIRECTION\": \"nézz %1 fokos irányba\",\n \"MOTION_POINTTOWARDS\": \"nézz %1 felé\",\n \"MOTION_POINTTOWARDS_POINTER\": \"egérmutató\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"véletlen irány\",\n \"MOTION_GOTO\": \"ugorj %1 helyére\",\n \"MOTION_GOTO_POINTER\": \"egérmutató\",\n \"MOTION_GOTO_RANDOM\": \"véletlen hely\",\n \"MOTION_GOTOXY\": \"ugorj ide: x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"csússz %1 mp-ig ide: x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"csússz %1 mp-ig ide: %2\",\n \"MOTION_GLIDETO_POINTER\": \"egérmutató\",\n \"MOTION_GLIDETO_RANDOM\": \"véletlen hely\",\n \"MOTION_CHANGEXBY\": \"x változzon %1\",\n \"MOTION_SETX\": \"x legyen %1\",\n \"MOTION_CHANGEYBY\": \"y változzon %1\",\n \"MOTION_SETY\": \"y legyen %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"ha szélen vagy, pattanj vissza\",\n \"MOTION_SETROTATIONSTYLE\": \"jelmez %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"balra-jobbra nézhet\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"nem foroghat\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"foroghat\",\n \"MOTION_XPOSITION\": \"x hely\",\n \"MOTION_YPOSITION\": \"y hely\",\n \"MOTION_DIRECTION\": \"irány\",\n \"MOTION_SCROLLRIGHT\": \"görgess jobbra: %1\",\n \"MOTION_SCROLLUP\": \"görgess föl: %1\",\n \"MOTION_ALIGNSCENE\": \"%1 jelenet igazítása\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"lent balra\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"lent jobbra\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"középen\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"fent balra\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"fent jobbra\",\n \"MOTION_XSCROLL\": \"x görgetés\",\n \"MOTION_YSCROLL\": \"y görgetés\",\n \"MOTION_STAGE_SELECTED\": \"Színpad kiválasztva: nincsenek mozgás blokkok\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"véletlen %1 és %2 között\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 és %2\",\n \"OPERATORS_OR\": \"%1 vagy %2\",\n \"OPERATORS_NOT\": \"nem %1\",\n \"OPERATORS_JOIN\": \"%1 és %2 összefűzve\",\n \"OPERATORS_JOIN_APPLE\": \"alma\",\n \"OPERATORS_JOIN_BANANA\": \"banán\",\n \"OPERATORS_LETTEROF\": \"%2 %1 betűje\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"%1 hossza\",\n \"OPERATORS_CONTAINS\": \"%1 tartalmazza %2?\",\n \"OPERATORS_MOD\": \"%1 / %2 maradéka\",\n \"OPERATORS_ROUND\": \"%1 kerekítve\",\n \"OPERATORS_MATHOP\": \"%2 %1\",\n \"OPERATORS_MATHOP_ABS\": \"abszolut értéke\",\n \"OPERATORS_MATHOP_FLOOR\": \"lefelé kerekítve\",\n \"OPERATORS_MATHOP_CEILING\": \"felfelé kerekítve\",\n \"OPERATORS_MATHOP_SQRT\": \"gyöke\",\n \"OPERATORS_MATHOP_SIN\": \"szinusza\",\n \"OPERATORS_MATHOP_COS\": \"koszinusza\",\n \"OPERATORS_MATHOP_TAN\": \"tangense\",\n \"OPERATORS_MATHOP_ASIN\": \"arcsin\",\n \"OPERATORS_MATHOP_ACOS\": \"arccos\",\n \"OPERATORS_MATHOP_ATAN\": \"arctan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"logaritmusa\",\n \"OPERATORS_MATHOP_EEXP\": \"e^\",\n \"OPERATORS_MATHOP_10EXP\": \"10^\",\n \"PROCEDURES_DEFINITION\": \"%1 meghatározása\",\n \"SENSING_TOUCHINGOBJECT\": \"érinted: %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"egérmutató\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"játéktér széle\",\n \"SENSING_TOUCHINGCOLOR\": \"érintesz %1 színt?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"%1 szín érinti %2 színt?\",\n \"SENSING_DISTANCETO\": \"%1 távolsága\",\n \"SENSING_DISTANCETO_POINTER\": \"egérmutató\",\n \"SENSING_ASKANDWAIT\": \"kérdezd %1 és várj\",\n \"SENSING_ASK_TEXT\": \"Hogy hívnak?\",\n \"SENSING_ANSWER\": \"válasz\",\n \"SENSING_KEYPRESSED\": \"%1 lenyomva?\",\n \"SENSING_MOUSEDOWN\": \"egér lenyomva?\",\n \"SENSING_MOUSEX\": \"egér x\",\n \"SENSING_MOUSEY\": \"egér y\",\n \"SENSING_SETDRAGMODE\": \"húzás módja legyen %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"húzható\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"nem húzható\",\n \"SENSING_LOUDNESS\": \"hangerő\",\n \"SENSING_LOUD\": \"hangos?\",\n \"SENSING_TIMER\": \"időmérő\",\n \"SENSING_RESETTIMER\": \"időmérő visszaállítása\",\n \"SENSING_OF\": \"%2 %1\",\n \"SENSING_OF_XPOSITION\": \"x hely\",\n \"SENSING_OF_YPOSITION\": \"y hely\",\n \"SENSING_OF_DIRECTION\": \"irány\",\n \"SENSING_OF_COSTUMENUMBER\": \"jelmez sorszáma\",\n \"SENSING_OF_COSTUMENAME\": \"jelmez neve\",\n \"SENSING_OF_SIZE\": \"mérete\",\n \"SENSING_OF_VOLUME\": \"hangereje\",\n \"SENSING_OF_BACKDROPNUMBER\": \"háttér sorszáma\",\n \"SENSING_OF_BACKDROPNAME\": \"háttér neve\",\n \"SENSING_OF_STAGE\": \"Színpad\",\n \"SENSING_CURRENT\": \"jelenlegi %1\",\n \"SENSING_CURRENT_YEAR\": \"év\",\n \"SENSING_CURRENT_MONTH\": \"hónap\",\n \"SENSING_CURRENT_DATE\": \"nap\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"hét napja\",\n \"SENSING_CURRENT_HOUR\": \"óra\",\n \"SENSING_CURRENT_MINUTE\": \"perc\",\n \"SENSING_CURRENT_SECOND\": \"másodperc\",\n \"SENSING_DAYSSINCE2000\": \"napok 2000 óta\",\n \"SENSING_USERNAME\": \"felhasználó\",\n \"SENSING_USERID\": \"felhasználóazonosító\",\n \"SOUND_PLAY\": \"játszd %1 hangot\",\n \"SOUND_PLAYUNTILDONE\": \"játszd végig %1 hangot\",\n \"SOUND_STOPALLSOUNDS\": \"minden hang álljon le\",\n \"SOUND_SETEFFECTO\": \"%1 hatás legyen %2\",\n \"SOUND_CHANGEEFFECTBY\": \"%1 hatás változzon %2\",\n \"SOUND_CLEAREFFECTS\": \"hanghatások törlése\",\n \"SOUND_EFFECTS_PITCH\": \"hangmagasság\",\n \"SOUND_EFFECTS_PAN\": \"pásztázás balra/jobbra\",\n \"SOUND_CHANGEVOLUMEBY\": \"hangerő változzon %1\",\n \"SOUND_SETVOLUMETO\": \"hangerő legyen %1%\",\n \"SOUND_VOLUME\": \"hangerő\",\n \"SOUND_RECORD\": \"felvétel...\",\n \"CATEGORY_MOTION\": \"Mozgás\",\n \"CATEGORY_LOOKS\": \"Kinézet\",\n \"CATEGORY_SOUND\": \"Hang\",\n \"CATEGORY_EVENTS\": \"Események\",\n \"CATEGORY_CONTROL\": \"Vezérlés\",\n \"CATEGORY_SENSING\": \"Érzékelés\",\n \"CATEGORY_OPERATORS\": \"Műveletek\",\n \"CATEGORY_VARIABLES\": \"Változók\",\n \"CATEGORY_MYBLOCKS\": \"Blokkjaim\",\n \"DUPLICATE\": \"Duplikálás\",\n \"DELETE\": \"Törlés\",\n \"ADD_COMMENT\": \"Megjegyzés\",\n \"REMOVE_COMMENT\": \"Megjegyzés eltávolítása\",\n \"DELETE_BLOCK\": \"Blokk törlése\",\n \"DELETE_X_BLOCKS\": \"Törölj %1 blokkot\",\n \"DELETE_ALL_BLOCKS\": \"Mind a %1 blokk törlése?\",\n \"CLEAN_UP\": \"Rendrakás\",\n \"HELP\": \"Súgó\",\n \"UNDO\": \"Visszavonás\",\n \"REDO\": \"Mégis\",\n \"EDIT_PROCEDURE\": \"Szerkesztés\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Ugorj a meghatározáshoz\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Mondj valamit...\",\n \"COLOUR_HUE_LABEL\": \"Szín\",\n \"COLOUR_SATURATION_LABEL\": \"Telítettség\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Fényerő\",\n \"CHANGE_VALUE_TITLE\": \"Érték változtatása:\",\n \"RENAME_VARIABLE\": \"Változó átnevezése\",\n \"RENAME_VARIABLE_TITLE\": \"Minden „%1” változó átnevezése erre:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Változó átnevezése\",\n \"NEW_VARIABLE\": \"Változó létrehozása\",\n \"NEW_VARIABLE_TITLE\": \"Új változó neve:\",\n \"VARIABLE_MODAL_TITLE\": \"Új változó\",\n \"VARIABLE_ALREADY_EXISTS\": \"„%1” nevű változó már létezik.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"„%1” nevű változó már létezik egy másik „%2” típusú változónál\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Törlöd „%2” változót (%1 használat)?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"„%1” változó nem törölhető, mert „%2” függvény leírásának része\",\n \"DELETE_VARIABLE\": \"Töröld „%1” változót\",\n \"NEW_PROCEDURE\": \"Blokk létrehozása\",\n \"PROCEDURE_ALREADY_EXISTS\": \"„%1” nevű blokk már létezik.\",\n \"PROCEDURE_DEFAULT_NAME\": \"blokknév\",\n \"NEW_LIST\": \"Lista létrehozása\",\n \"NEW_LIST_TITLE\": \"Új lista neve:\",\n \"LIST_MODAL_TITLE\": \"Új lista\",\n \"LIST_ALREADY_EXISTS\": \"„%1” nevű lista már létezik.\",\n \"RENAME_LIST_TITLE\": \"Nevezd át az összes „%1” listát erre:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Lista átnevezése\",\n \"DEFAULT_LIST_ITEM\": \"valami\",\n \"DELETE_LIST\": \"Töröld „%1” listát\",\n \"RENAME_LIST\": \"Lista átnevezése\",\n \"NEW_BROADCAST_MESSAGE\": \"Új üzenet\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Új üzenet neve:\",\n \"BROADCAST_MODAL_TITLE\": \"Új üzenet\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"üzenet1\"\n};\n\nBlockly.ScratchMsgs.locales[\"mi\"] =\n{\n \"CONTROL_FOREVER\": \"mō ake, ake mahia\",\n \"CONTROL_REPEAT\": \"tōaitia %1\",\n \"CONTROL_IF\": \"mēnā %1 mahia\",\n \"CONTROL_ELSE\": \"kē atu\",\n \"CONTROL_STOP\": \"katia\",\n \"CONTROL_STOP_ALL\": \"katoa\",\n \"CONTROL_STOP_THIS\": \"tēnei hōtuhi\",\n \"CONTROL_STOP_OTHER\": \"hōtuhi kē i roto i te parehe\",\n \"CONTROL_WAIT\": \"tatari kia %1 hēkona\",\n \"CONTROL_WAITUNTIL\": \"tatari kia %1\",\n \"CONTROL_REPEATUNTIL\": \"tōaitia tonutia kia %1\",\n \"CONTROL_WHILE\": \"tōaitia tonutia mēnā %1\",\n \"CONTROL_FOREACH\": \"mō ia %1 o roto i te %2\",\n \"CONTROL_STARTASCLONE\": \"ina ka tīmata mai ahau hei tārua\",\n \"CONTROL_CREATECLONEOF\": \"whakapūruatia %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"ahau anō\",\n \"CONTROL_DELETETHISCLONE\": \"mukua tēnei tāruarua\",\n \"CONTROL_COUNTER\": \"pūtatau\",\n \"CONTROL_INCRCOUNTER\": \"tāpiri tahi ki te pūtatau\",\n \"CONTROL_CLEARCOUNTER\": \"ūkui pūtatau\",\n \"CONTROL_ALLATONCE\": \"te katoa i te wā kotahi\",\n \"DATA_SETVARIABLETO\": \"tautuhia %1 ki te %2\",\n \"DATA_CHANGEVARIABLEBY\": \"panonitia %1 mā te %2\",\n \"DATA_SHOWVARIABLE\": \"whakaaturia te taurangi %1\",\n \"DATA_HIDEVARIABLE\": \"hunaia te taurangi %1\",\n \"DATA_ADDTOLIST\": \"tāpiritia te %1 ki te %2\",\n \"DATA_DELETEOFLIST\": \"mukua %1 i a %2\",\n \"DATA_DELETEALLOFLIST\": \"mukua te katoa o %1\",\n \"DATA_INSERTATLIST\": \"whakaurua te %1 hei %2 o %3\",\n \"DATA_REPLACEITEMOFLIST\": \"whakakapia te tūemi %1 o %2, ki %3\",\n \"DATA_ITEMOFLIST\": \"te tūemi %1 o %2\",\n \"DATA_ITEMNUMOFLIST\": \"te tūemi # %1 o %2\",\n \"DATA_LENGTHOFLIST\": \"te roanga o te %1\",\n \"DATA_LISTCONTAINSITEM\": \"kei roto i %1 te %2?\",\n \"DATA_SHOWLIST\": \"whakaaturia te rārangi %1\",\n \"DATA_HIDELIST\": \"hunāia te rārangi %1\",\n \"DATA_INDEX_ALL\": \"katoa\",\n \"DATA_INDEX_LAST\": \"whakamutunga\",\n \"DATA_INDEX_RANDOM\": \"matapōkere\",\n \"EVENT_WHENFLAGCLICKED\": \"ina pāwhiria te %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"ina pāwhiria tēnei parehe\",\n \"EVENT_WHENSTAGECLICKED\": \"ina pāwhiria te Atamira\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"ka pā tēnei parehe i te %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"ina ka riro mai te %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"ina hurihia te ārai tuarongo kia %1\",\n \"EVENT_WHENGREATERTHAN\": \"mēnā %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"taima\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"hoihoi\",\n \"EVENT_BROADCAST\": \"whakapaoho %1\",\n \"EVENT_BROADCASTANDWAIT\": \"whakapaoho %1, kātahi tatari\",\n \"EVENT_WHENKEYPRESSED\": \"ina pēhia te pātuhi %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"mokowā\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"pere mauī\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"pere katau\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"pere whakararo\",\n \"EVENT_WHENKEYPRESSED_UP\": \"pere whakarunga\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"noa\",\n \"LOOKS_SAYFORSECS\": \"kīia %1 mō ngā hēkona %2\",\n \"LOOKS_SAY\": \"kīia %1\",\n \"LOOKS_HELLO\": \"Kia ora!\",\n \"LOOKS_THINKFORSECS\": \"whakaarohia te %1 mō ngā hēkona %2\",\n \"LOOKS_THINK\": \"whakaarohia te %1\",\n \"LOOKS_HMM\": \"Āa...\",\n \"LOOKS_SHOW\": \"whakaatu\",\n \"LOOKS_HIDE\": \"huna\",\n \"LOOKS_HIDEALLSPRITES\": \"hunaia ngā parehe katoa\",\n \"LOOKS_EFFECT_COLOR\": \"tae\",\n \"LOOKS_EFFECT_FISHEYE\": \"karu ika\",\n \"LOOKS_EFFECT_WHIRL\": \"kōriporipo\",\n \"LOOKS_EFFECT_PIXELATE\": \"whakatongitongi\",\n \"LOOKS_EFFECT_MOSAIC\": \"toi rōpinepine\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"pīataata\",\n \"LOOKS_EFFECT_GHOST\": \"kēhua\",\n \"LOOKS_CHANGEEFFECTBY\": \"panonitia te rākeitanga %1 mā te %2\",\n \"LOOKS_SETEFFECTTO\": \"panonitia te rākeitanga %1 ki te %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"ūkui rākeitanga whakairoiro\",\n \"LOOKS_CHANGESIZEBY\": \"panonitia te rahi mā te %1\",\n \"LOOKS_SETSIZETO\": \"tautuhia te rahi kia %1 %\",\n \"LOOKS_SIZE\": \"rahi\",\n \"LOOKS_CHANGESTRETCHBY\": \"panonitia te toronga mā te %1\",\n \"LOOKS_SETSTRETCHTO\": \"tautuhia te toronga kia %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"panonitia te kākahu kia %1\",\n \"LOOKS_NEXTCOSTUME\": \"kākahu panuku\",\n \"LOOKS_SWITCHBACKDROPTO\": \"panonitia te ārai tuarongo kia %1\",\n \"LOOKS_GOTOFRONTBACK\": \"haere ki te apa %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"mua\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"muri\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"nekehia %1, kia %2 ngā apaapa\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"ki mua\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"ki muri\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"ārai tuarongo %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"kākahu %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"nama\",\n \"LOOKS_NUMBERNAME_NAME\": \"ingoa\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"panonitia te ārai tuarongo kia %1, kātahi, tatari\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"ārai tuarongo panuku\",\n \"LOOKS_NEXTBACKDROP\": \"ārai tuarongo panuku\",\n \"LOOKS_PREVIOUSBACKDROP\": \"ārai tuarongo o mua\",\n \"LOOKS_RANDOMBACKDROP\": \"ārai tuarongo matapōkere\",\n \"MOTION_MOVESTEPS\": \"nekehia kia %1 ngā takahanga\",\n \"MOTION_TURNLEFT\": \"hurihia %1, kia %2 putu\",\n \"MOTION_TURNRIGHT\": \"hurihia %1, kia %2 putu\",\n \"MOTION_POINTINDIRECTION\": \"atatohua ki %1\",\n \"MOTION_POINTTOWARDS\": \"atatohua ki %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"atatohu-kiore\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"ahunga matapōkere\",\n \"MOTION_GOTO\": \"neke ki %1\",\n \"MOTION_GOTO_POINTER\": \"atatohu-kiore\",\n \"MOTION_GOTO_RANDOM\": \"tūnga matapōkere\",\n \"MOTION_GOTOXY\": \"neke ki x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"wania kia %1 hēkona ki x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"wania kia %1 hēkona ki %2\",\n \"MOTION_GLIDETO_POINTER\": \"atatohu-kiore\",\n \"MOTION_GLIDETO_RANDOM\": \"tūnga matapōkere\",\n \"MOTION_CHANGEXBY\": \"panonitia x mā te %1\",\n \"MOTION_SETX\": \"tautuhia te x kia %1\",\n \"MOTION_CHANGEYBY\": \"panonitia y mā te %1\",\n \"MOTION_SETY\": \"tautuhia te y kia %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"mēnā kei te taitapa, tupanatia\",\n \"MOTION_SETROTATIONSTYLE\": \"tautuhia te momo huringa kia %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"mauī-ki-katau\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"kaua e takahuri\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"huri noa\",\n \"MOTION_XPOSITION\": \"tūnga x\",\n \"MOTION_YPOSITION\": \"tūnga y\",\n \"MOTION_DIRECTION\": \"ahunga\",\n \"MOTION_SCROLLRIGHT\": \"panuku whakatekatau %1\",\n \"MOTION_SCROLLUP\": \"panuku whakarunga %1\",\n \"MOTION_ALIGNSCENE\": \"tīaro kāpeka %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"taha mauī o raro\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"taha katau o raro\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"waenga\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"taha mauī o runga\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"taha katau o runga\",\n \"MOTION_XSCROLL\": \"panuku x\",\n \"MOTION_YSCROLL\": \"panuku y\",\n \"MOTION_STAGE_SELECTED\": \"Kua tīpakongia te atamira: kāore he paraka nekeneke\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"kōwhiria matapōkere %1 ki te %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 me %2\",\n \"OPERATORS_OR\": \"%1, %2 rānei\",\n \"OPERATORS_NOT\": \"ehara ko te %1\",\n \"OPERATORS_JOIN\": \"tāpiritia te %1, %2\",\n \"OPERATORS_JOIN_APPLE\": \"āporo\",\n \"OPERATORS_JOIN_BANANA\": \"panana\",\n \"OPERATORS_LETTEROF\": \"te pū %1 o te %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"he\",\n \"OPERATORS_LENGTH\": \"te roanga o te %1\",\n \"OPERATORS_CONTAINS\": \"kei roto i a %1 : %2?\",\n \"OPERATORS_MOD\": \"%1 % %2\",\n \"OPERATORS_ROUND\": \"whakaawhiwhi %1\",\n \"OPERATORS_MATHOP\": \"%1 o te %2\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"papa\",\n \"OPERATORS_MATHOP_CEILING\": \"tuanui\",\n \"OPERATORS_MATHOP_SQRT\": \"sqrt\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"tautuhia %1\",\n \"SENSING_TOUCHINGOBJECT\": \"kei te pā ki te %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"atatohu-kiore\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"taitapa\",\n \"SENSING_TOUCHINGCOLOR\": \"kei te pā ki te tae %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"ka pā te tae %1 i te %2?\",\n \"SENSING_DISTANCETO\": \"tawhiti ki %1\",\n \"SENSING_DISTANCETO_POINTER\": \"atatohu-kiore\",\n \"SENSING_ASKANDWAIT\": \"pātai %1, kātahi, tatari\",\n \"SENSING_ASK_TEXT\": \"Ko wai tō ingoa?\",\n \"SENSING_ANSWER\": \"whakautu\",\n \"SENSING_KEYPRESSED\": \"kua pēhia te pātuhi %1?\",\n \"SENSING_MOUSEDOWN\": \"pāwhiri kiore?\",\n \"SENSING_MOUSEX\": \"x kiore\",\n \"SENSING_MOUSEY\": \"y kiore\",\n \"SENSING_SETDRAGMODE\": \"tautuhia te aratau tō kia %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"ka taea te tō\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"kāore e taea te tō\",\n \"SENSING_LOUDNESS\": \"hoihoi\",\n \"SENSING_LOUD\": \"hoihoi?\",\n \"SENSING_TIMER\": \"taima\",\n \"SENSING_RESETTIMER\": \"tautuhia anōtia te taima\",\n \"SENSING_OF\": \"%1 o %2\",\n \"SENSING_OF_XPOSITION\": \"tūnga x\",\n \"SENSING_OF_YPOSITION\": \"tūnga y\",\n \"SENSING_OF_DIRECTION\": \"ahunga\",\n \"SENSING_OF_COSTUMENUMBER\": \"kākahu #\",\n \"SENSING_OF_COSTUMENAME\": \"ingoa kākahu\",\n \"SENSING_OF_SIZE\": \"rahi\",\n \"SENSING_OF_VOLUME\": \"kahaoro\",\n \"SENSING_OF_BACKDROPNUMBER\": \"ārai tuarongo #\",\n \"SENSING_OF_BACKDROPNAME\": \"ingoa ārai tuarongo\",\n \"SENSING_OF_STAGE\": \"Atamira\",\n \"SENSING_CURRENT\": \"%1 o nāianei\",\n \"SENSING_CURRENT_YEAR\": \"tau\",\n \"SENSING_CURRENT_MONTH\": \"marama\",\n \"SENSING_CURRENT_DATE\": \"te rā\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"te rangi o te wiki\",\n \"SENSING_CURRENT_HOUR\": \"haora\",\n \"SENSING_CURRENT_MINUTE\": \"miniti\",\n \"SENSING_CURRENT_SECOND\": \"hēkona\",\n \"SENSING_DAYSSINCE2000\": \"ngā rā mai i 2000\",\n \"SENSING_USERNAME\": \"ingoa kaiwhakamahi\",\n \"SENSING_USERID\": \"tohu tuakiri\",\n \"SOUND_PLAY\": \"tīmatahia te whakatangi i te oro %1\",\n \"SOUND_PLAYUNTILDONE\": \"whakatangihia te oro %1 kia mutu rawa\",\n \"SOUND_STOPALLSOUNDS\": \"katia ngā oro katoa\",\n \"SOUND_SETEFFECTO\": \"tautuhia te rākeitanga %1 kia %2\",\n \"SOUND_CHANGEEFFECTBY\": \"panonitia te rākeitanga %1 mā te %2\",\n \"SOUND_CLEAREFFECTS\": \"ūkui rākeitanga orotaunaki\",\n \"SOUND_EFFECTS_PITCH\": \"hauoro\",\n \"SOUND_EFFECTS_PAN\": \"huri whakatemauī/whakatekatau\",\n \"SOUND_CHANGEVOLUMEBY\": \"panonitia te kahaoro mā te %1\",\n \"SOUND_SETVOLUMETO\": \"tautuhia te kahaoro kia %1%\",\n \"SOUND_VOLUME\": \"kahaoro\",\n \"SOUND_RECORD\": \"hopukina...\",\n \"CATEGORY_MOTION\": \"Nekehanga\",\n \"CATEGORY_LOOKS\": \"Āhua\",\n \"CATEGORY_SOUND\": \"Oro\",\n \"CATEGORY_EVENTS\": \"Takahanga\",\n \"CATEGORY_CONTROL\": \"Whakatina\",\n \"CATEGORY_SENSING\": \"Paerongo\",\n \"CATEGORY_OPERATORS\": \"Tohutūmahi\",\n \"CATEGORY_VARIABLES\": \"Ngā Taurangi\",\n \"CATEGORY_MYBLOCKS\": \"Aku Paraka\",\n \"DUPLICATE\": \"Tāruatia\",\n \"DELETE\": \"Mukua\",\n \"ADD_COMMENT\": \"Tāpiri Tākupu\",\n \"REMOVE_COMMENT\": \"Mukua te Tākupu\",\n \"DELETE_BLOCK\": \"Mukua te Paraka\",\n \"DELETE_X_BLOCKS\": \"Mukua %1 Paraka\",\n \"DELETE_ALL_BLOCKS\": \"Mukua te katoa o ngā paraka e %1 ?\",\n \"CLEAN_UP\": \"Whakatikatika i ngā Paraka\",\n \"HELP\": \"Āwhina\",\n \"UNDO\": \"Wetekia\",\n \"REDO\": \"Mahia anōtia\",\n \"EDIT_PROCEDURE\": \"Whakatikaina\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Haere ki te tautuhinga\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Kīia tētahi mea...\",\n \"COLOUR_HUE_LABEL\": \"Tae\",\n \"COLOUR_SATURATION_LABEL\": \"Waiwai\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Pīataata\",\n \"CHANGE_VALUE_TITLE\": \"Panonitia te uara:\",\n \"RENAME_VARIABLE\": \"Tapaina anōtia te taurangi\",\n \"RENAME_VARIABLE_TITLE\": \"Tapaina anōtia te katoa o ngā taurangi \\\"%1\\\" ki:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Tapaina anōtia te Taurangi\",\n \"NEW_VARIABLE\": \"Hangaia tētahi taurangi\",\n \"NEW_VARIABLE_TITLE\": \"Ingoa taurangi hou:\",\n \"VARIABLE_MODAL_TITLE\": \"Taurangi Hou\",\n \"VARIABLE_ALREADY_EXISTS\": \"Kua hangaia kētia tētahi taurangi, ko \\\"%1\\\" te ingoa.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Kua hangaia kētia tētahi taurangi, ko \\\"%1\\\" te ingoa, engari he momo \\\"%2\\\" tērā.\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Mukua hoki %1 ngā mahinga o te taurangi \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Kāore e taea te muku i te taurangi \\\"%1\\\", nā te mea he wāhanga taua taurangi o te tautuhinga mō te hātepe \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Mukua te taurangi \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Hangaia tētahi Paraka\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Kua hangaia kētia tētahi hātepe ko \\\"%1\\\" te ingoa.\",\n \"PROCEDURE_DEFAULT_NAME\": \"ingoa paraka\",\n \"NEW_LIST\": \"Hangaia tētahi Rārangi\",\n \"NEW_LIST_TITLE\": \"Ingoa rārangi hou:\",\n \"LIST_MODAL_TITLE\": \"Rārangi Hou\",\n \"LIST_ALREADY_EXISTS\": \"Kua hangaia kētia tētahi rārangi ko \\\"%1\\\" te ingoa.\",\n \"RENAME_LIST_TITLE\": \"Tapaina anōtia te katoa o ngā rārangi \\\"%1\\\" ki:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Tapaina te Rārangi\",\n \"DEFAULT_LIST_ITEM\": \"mea\",\n \"DELETE_LIST\": \"Mukua te rārangi \\\"%1\\\"\",\n \"RENAME_LIST\": \"Tapaina anōtia te Rārangi\",\n \"NEW_BROADCAST_MESSAGE\": \"Karere hou\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Ingoa karere hou:\",\n \"BROADCAST_MODAL_TITLE\": \"Karere Hou\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"karere1\"\n};\n\nBlockly.ScratchMsgs.locales[\"nl\"] =\n{\n \"CONTROL_FOREVER\": \"herhaal\",\n \"CONTROL_REPEAT\": \"herhaal %1\",\n \"CONTROL_IF\": \"als %1 dan\",\n \"CONTROL_ELSE\": \"anders\",\n \"CONTROL_STOP\": \"stop\",\n \"CONTROL_STOP_ALL\": \"alle\",\n \"CONTROL_STOP_THIS\": \"dit script\",\n \"CONTROL_STOP_OTHER\": \"andere scripts in sprite\",\n \"CONTROL_WAIT\": \"wacht %1 sec.\",\n \"CONTROL_WAITUNTIL\": \"wacht tot %1\",\n \"CONTROL_REPEATUNTIL\": \"herhaal tot %1\",\n \"CONTROL_WHILE\": \"zolang %1\",\n \"CONTROL_FOREACH\": \"voor elke %1 in %2\",\n \"CONTROL_STARTASCLONE\": \"wanneer ik als kloon start\",\n \"CONTROL_CREATECLONEOF\": \"maak een kloon van %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"mijzelf\",\n \"CONTROL_DELETETHISCLONE\": \"verwijder deze kloon\",\n \"CONTROL_COUNTER\": \"teller\",\n \"CONTROL_INCRCOUNTER\": \"verhoog teller\",\n \"CONTROL_CLEARCOUNTER\": \"zet teller op 0\",\n \"CONTROL_ALLATONCE\": \"alles in een keer\",\n \"DATA_SETVARIABLETO\": \"maak %1 %2\",\n \"DATA_CHANGEVARIABLEBY\": \"verander %1 met %2\",\n \"DATA_SHOWVARIABLE\": \"toon variabele %1\",\n \"DATA_HIDEVARIABLE\": \"verberg variabele %1\",\n \"DATA_ADDTOLIST\": \"voeg %1 toe aan %2\",\n \"DATA_DELETEOFLIST\": \"verwijder %1 van %2\",\n \"DATA_DELETEALLOFLIST\": \"verwijder alle van %1\",\n \"DATA_INSERTATLIST\": \"voeg %1 toe op %2 van %3\",\n \"DATA_REPLACEITEMOFLIST\": \"vervang item %1 van %2 door %3\",\n \"DATA_ITEMOFLIST\": \"item %1 van %2\",\n \"DATA_ITEMNUMOFLIST\": \"item # van %1 in %2\",\n \"DATA_LENGTHOFLIST\": \"lengte van %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 bevat %2?\",\n \"DATA_SHOWLIST\": \"toon lijst %1\",\n \"DATA_HIDELIST\": \"verberg lijst %1\",\n \"DATA_INDEX_ALL\": \"alle\",\n \"DATA_INDEX_LAST\": \"laatste\",\n \"DATA_INDEX_RANDOM\": \"willekeurig\",\n \"EVENT_WHENFLAGCLICKED\": \"wanneer op %1 wordt geklikt\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"wanneer op deze sprite wordt geklikt\",\n \"EVENT_WHENSTAGECLICKED\": \"wanneer op het speelveld wordt geklikt\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"wanneer deze sprite %1 raakt\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"wanneer ik signaal %1 ontvang\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"wanneer achtergrond verandert naar %1\",\n \"EVENT_WHENGREATERTHAN\": \"wanneer %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"klok\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"volume\",\n \"EVENT_BROADCAST\": \"zend signaal %1\",\n \"EVENT_BROADCASTANDWAIT\": \"zend signaal %1 en wacht\",\n \"EVENT_WHENKEYPRESSED\": \"wanneer %1 is ingedrukt\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"spatiebalk\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"pijltje links\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"pijltje rechts\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"pijltje omlaag\",\n \"EVENT_WHENKEYPRESSED_UP\": \"pijltje omhoog\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"willekeurig\",\n \"LOOKS_SAYFORSECS\": \"zeg %1 %2 sec.\",\n \"LOOKS_SAY\": \"zeg %1\",\n \"LOOKS_HELLO\": \"Hallo!\",\n \"LOOKS_THINKFORSECS\": \"denk %1 %2 sec.\",\n \"LOOKS_THINK\": \"denk %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"verschijn\",\n \"LOOKS_HIDE\": \"verdwijn\",\n \"LOOKS_HIDEALLSPRITES\": \"verberg alle sprites\",\n \"LOOKS_EFFECT_COLOR\": \"kleur\",\n \"LOOKS_EFFECT_FISHEYE\": \"vissenoog\",\n \"LOOKS_EFFECT_WHIRL\": \"draaikolk\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixeleren\",\n \"LOOKS_EFFECT_MOSAIC\": \"mozaïek\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"helderheid\",\n \"LOOKS_EFFECT_GHOST\": \"transparant\",\n \"LOOKS_CHANGEEFFECTBY\": \"verander %1 effect met %2\",\n \"LOOKS_SETEFFECTTO\": \"zet %1 effect op %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"zet alle effecten uit\",\n \"LOOKS_CHANGESIZEBY\": \"verander grootte met %1\",\n \"LOOKS_SETSIZETO\": \"maak grootte %1 %\",\n \"LOOKS_SIZE\": \"grootte\",\n \"LOOKS_CHANGESTRETCHBY\": \"verander stretch met %1\",\n \"LOOKS_SETSTRETCHTO\": \"maak stretch %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"verander uiterlijk naar %1\",\n \"LOOKS_NEXTCOSTUME\": \"volgend uiterlijk\",\n \"LOOKS_SWITCHBACKDROPTO\": \"verander achtergrond naar %1\",\n \"LOOKS_GOTOFRONTBACK\": \"ga naar laag %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"voorgrond\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"achtergrond\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"ga %1 %2 lagen\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"naar voren\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"naar achteren\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"achtergrond %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"uiterlijk %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"nummer\",\n \"LOOKS_NUMBERNAME_NAME\": \"naam\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"verander achtergrond naar %1 en wacht\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"volgende achtergrond\",\n \"LOOKS_NEXTBACKDROP\": \"volgende achtergrond\",\n \"LOOKS_PREVIOUSBACKDROP\": \"vorige achtergrond\",\n \"LOOKS_RANDOMBACKDROP\": \"willekeurige achtergrond\",\n \"MOTION_MOVESTEPS\": \"neem %1 stappen\",\n \"MOTION_TURNLEFT\": \"draai %1 %2 graden\",\n \"MOTION_TURNRIGHT\": \"draai %1 %2 graden\",\n \"MOTION_POINTINDIRECTION\": \"richt naar %1 graden\",\n \"MOTION_POINTTOWARDS\": \"richt naar %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"muisaanwijzer\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"willekeurige richting\",\n \"MOTION_GOTO\": \"ga naar %1\",\n \"MOTION_GOTO_POINTER\": \"muisaanwijzer\",\n \"MOTION_GOTO_RANDOM\": \"willekeurige positie\",\n \"MOTION_GOTOXY\": \"ga naar x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"schuif in %1 sec. naar x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"schuif in %1 sec. naar %2\",\n \"MOTION_GLIDETO_POINTER\": \"muisaanwijzer\",\n \"MOTION_GLIDETO_RANDOM\": \"willekeurige positie\",\n \"MOTION_CHANGEXBY\": \"verander x met %1\",\n \"MOTION_SETX\": \"maak x %1\",\n \"MOTION_CHANGEYBY\": \"verander y met %1\",\n \"MOTION_SETY\": \"maak y %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"keer om aan de rand\",\n \"MOTION_SETROTATIONSTYLE\": \"maak draaistijl %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"links-rechts\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"niet draaien\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"helemaal rond\",\n \"MOTION_XPOSITION\": \"x-positie\",\n \"MOTION_YPOSITION\": \"y-positie\",\n \"MOTION_DIRECTION\": \"richting\",\n \"MOTION_SCROLLRIGHT\": \"rechts scrollen %1\",\n \"MOTION_SCROLLUP\": \"omhoog scrollen %1\",\n \"MOTION_ALIGNSCENE\": \"scène uitlijnen %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"linksonder\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"rechtsonder\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"midden\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"linksboven\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"rechtsboven\",\n \"MOTION_XSCROLL\": \"x scroll\",\n \"MOTION_YSCROLL\": \"y scroll\",\n \"MOTION_STAGE_SELECTED\": \"Speelveld geselecteerd: geen bewegingsblokken\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"willekeurig getal tussen %1 en %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 en %2\",\n \"OPERATORS_OR\": \"%1 of %2\",\n \"OPERATORS_NOT\": \"niet %1\",\n \"OPERATORS_JOIN\": \"voeg %1 en %2 samen\",\n \"OPERATORS_JOIN_APPLE\": \"appel\",\n \"OPERATORS_JOIN_BANANA\": \"banaan\",\n \"OPERATORS_LETTEROF\": \"letter %1 van %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"lengte van %1\",\n \"OPERATORS_CONTAINS\": \"%1 bevat %2?\",\n \"OPERATORS_MOD\": \"%1 modulo %2\",\n \"OPERATORS_ROUND\": \"afgerond %1\",\n \"OPERATORS_MATHOP\": \"%1 van %2\",\n \"OPERATORS_MATHOP_ABS\": \"absoluut\",\n \"OPERATORS_MATHOP_FLOOR\": \"beneden\",\n \"OPERATORS_MATHOP_CEILING\": \"boven\",\n \"OPERATORS_MATHOP_SQRT\": \"wortel\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"arcsin\",\n \"OPERATORS_MATHOP_ACOS\": \"arccos\",\n \"OPERATORS_MATHOP_ATAN\": \"arctan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"definieer %1\",\n \"SENSING_TOUCHINGOBJECT\": \"raak ik %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"muisaanwijzer\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"rand\",\n \"SENSING_TOUCHINGCOLOR\": \"raak ik kleur %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"raakt kleur %1 kleur %2?\",\n \"SENSING_DISTANCETO\": \"afstand tot %1\",\n \"SENSING_DISTANCETO_POINTER\": \"muisaanwijzer\",\n \"SENSING_ASKANDWAIT\": \"vraag %1 en wacht\",\n \"SENSING_ASK_TEXT\": \"Hoe heet je?\",\n \"SENSING_ANSWER\": \"antwoord\",\n \"SENSING_KEYPRESSED\": \"toets %1 ingedrukt?\",\n \"SENSING_MOUSEDOWN\": \"muis ingedrukt?\",\n \"SENSING_MOUSEX\": \"muis x\",\n \"SENSING_MOUSEY\": \"muis y\",\n \"SENSING_SETDRAGMODE\": \"zet sleepbaar op %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"sleepbaar\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"niet sleepbaar\",\n \"SENSING_LOUDNESS\": \"volume\",\n \"SENSING_LOUD\": \"luid?\",\n \"SENSING_TIMER\": \"klok\",\n \"SENSING_RESETTIMER\": \"zet klok op 0\",\n \"SENSING_OF\": \"%1 van %2\",\n \"SENSING_OF_XPOSITION\": \"x-positie\",\n \"SENSING_OF_YPOSITION\": \"y-positie\",\n \"SENSING_OF_DIRECTION\": \"richting\",\n \"SENSING_OF_COSTUMENUMBER\": \"uiterlijk #\",\n \"SENSING_OF_COSTUMENAME\": \"naam uiterlijk\",\n \"SENSING_OF_SIZE\": \"grootte\",\n \"SENSING_OF_VOLUME\": \"volume\",\n \"SENSING_OF_BACKDROPNUMBER\": \"achtergrond #\",\n \"SENSING_OF_BACKDROPNAME\": \"achtergrond naam\",\n \"SENSING_OF_STAGE\": \"Speelveld\",\n \"SENSING_CURRENT\": \"huidige %1\",\n \"SENSING_CURRENT_YEAR\": \"jaar\",\n \"SENSING_CURRENT_MONTH\": \"maand\",\n \"SENSING_CURRENT_DATE\": \"datum\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"dag van de week\",\n \"SENSING_CURRENT_HOUR\": \"uur\",\n \"SENSING_CURRENT_MINUTE\": \"minuut\",\n \"SENSING_CURRENT_SECOND\": \"seconde\",\n \"SENSING_DAYSSINCE2000\": \"dagen sinds 2000\",\n \"SENSING_USERNAME\": \"gebruikersnaam\",\n \"SENSING_USERID\": \"gebruiker id\",\n \"SOUND_PLAY\": \"start geluid %1\",\n \"SOUND_PLAYUNTILDONE\": \"start geluid %1 en wacht\",\n \"SOUND_STOPALLSOUNDS\": \"stop alle geluiden\",\n \"SOUND_SETEFFECTO\": \"zet effect %1 op %2\",\n \"SOUND_CHANGEEFFECTBY\": \"verander %1-effect met %2\",\n \"SOUND_CLEAREFFECTS\": \"zet alle effecten uit\",\n \"SOUND_EFFECTS_PITCH\": \"toonhoogte\",\n \"SOUND_EFFECTS_PAN\": \"kanaal links/rechts\",\n \"SOUND_CHANGEVOLUMEBY\": \"verander volume met %1\",\n \"SOUND_SETVOLUMETO\": \"zet volume op %1%\",\n \"SOUND_VOLUME\": \"volume\",\n \"SOUND_RECORD\": \"opnemen...\",\n \"CATEGORY_MOTION\": \"Beweging\",\n \"CATEGORY_LOOKS\": \"Uiterlijken\",\n \"CATEGORY_SOUND\": \"Geluid\",\n \"CATEGORY_EVENTS\": \"Gebeurtenissen\",\n \"CATEGORY_CONTROL\": \"Besturen\",\n \"CATEGORY_SENSING\": \"Waarnemen\",\n \"CATEGORY_OPERATORS\": \"Functies\",\n \"CATEGORY_VARIABLES\": \"Variabelen\",\n \"CATEGORY_MYBLOCKS\": \"Mijn blokken\",\n \"DUPLICATE\": \"Kopie maken\",\n \"DELETE\": \"Verwijderen\",\n \"ADD_COMMENT\": \"Commentaar toevoegen\",\n \"REMOVE_COMMENT\": \"Commentaar verwijderen\",\n \"DELETE_BLOCK\": \"Blok verwijderen\",\n \"DELETE_X_BLOCKS\": \"Verwijder %1 blokken\",\n \"DELETE_ALL_BLOCKS\": \"Verwijder alle %1 blokken?\",\n \"CLEAN_UP\": \"Blokken opruimen\",\n \"HELP\": \"Help\",\n \"UNDO\": \"Ongedaan maken\",\n \"REDO\": \"Opnieuw\",\n \"EDIT_PROCEDURE\": \"Bewerk\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Ga naar definitie\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Zeg iets...\",\n \"COLOUR_HUE_LABEL\": \"Kleur\",\n \"COLOUR_SATURATION_LABEL\": \"Verzadiging\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Helderheid\",\n \"CHANGE_VALUE_TITLE\": \"Verander waarde:\",\n \"RENAME_VARIABLE\": \"Variabele hernoemen\",\n \"RENAME_VARIABLE_TITLE\": \"Hernoem alle '%1' variabelen naar:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Variabele hernoemen\",\n \"NEW_VARIABLE\": \"Maak een variabele\",\n \"NEW_VARIABLE_TITLE\": \"Nieuwe variabelenaam:\",\n \"VARIABLE_MODAL_TITLE\": \"Nieuwe variabele\",\n \"VARIABLE_ALREADY_EXISTS\": \"Er bestaat al een variabele met de naam '%1'.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Er bestaat al een variabele met de naam '%1' voor een andere variabele van het type '%2'\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Verwijder de %1 toepassingen van de variabele '%2'?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Kan de variabele '%1' niet verwijderen, omdat die deel uitmaakt van de definitie van de functie '%2'\",\n \"DELETE_VARIABLE\": \"Verwijder de variabele '%1'\",\n \"NEW_PROCEDURE\": \"Maak een blok\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Er bestaat al een procedure met de naam '%1'.\",\n \"PROCEDURE_DEFAULT_NAME\": \"bloknaam\",\n \"NEW_LIST\": \"Maak een lijst\",\n \"NEW_LIST_TITLE\": \"Nieuwe lijstnaam:\",\n \"LIST_MODAL_TITLE\": \"Nieuwe lijst\",\n \"LIST_ALREADY_EXISTS\": \"Er bestaat al een lijst met de naam '%1'.\",\n \"RENAME_LIST_TITLE\": \"Hernoem alle '%1' lijsten naar:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Lijst hernoemen\",\n \"DEFAULT_LIST_ITEM\": \"ding\",\n \"DELETE_LIST\": \"Verwijder de \\\"%1\\\" lijst\",\n \"RENAME_LIST\": \"Hernoem lijst\",\n \"NEW_BROADCAST_MESSAGE\": \"Nieuw bericht\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Nieuwe berichtnaam:\",\n \"BROADCAST_MODAL_TITLE\": \"Nieuw bericht\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"bericht1\"\n};\n\nBlockly.ScratchMsgs.locales[\"ja\"] =\n{\n \"CONTROL_FOREVER\": \"ずっと\",\n \"CONTROL_REPEAT\": \"%1 回繰り返す\",\n \"CONTROL_IF\": \"もし %1 なら\",\n \"CONTROL_ELSE\": \"でなければ\",\n \"CONTROL_STOP\": \" \",\n \"CONTROL_STOP_ALL\": \"すべてを止める\",\n \"CONTROL_STOP_THIS\": \"このスクリプトを止める\",\n \"CONTROL_STOP_OTHER\": \"スプライトの他のスクリプトを止める\",\n \"CONTROL_WAIT\": \"%1 秒待つ\",\n \"CONTROL_WAITUNTIL\": \"%1 まで待つ\",\n \"CONTROL_REPEATUNTIL\": \"%1 まで繰り返す\",\n \"CONTROL_WHILE\": \"%1 の間繰り返す\",\n \"CONTROL_FOREACH\": \"%2 の要素を %1 に入れて繰り返す\",\n \"CONTROL_STARTASCLONE\": \"クローンされたとき\",\n \"CONTROL_CREATECLONEOF\": \"%1 のクローンを作る\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"自分自身\",\n \"CONTROL_DELETETHISCLONE\": \"このクローンを削除する\",\n \"CONTROL_COUNTER\": \"カウンター\",\n \"CONTROL_INCRCOUNTER\": \"カウンターに足す\",\n \"CONTROL_CLEARCOUNTER\": \"カウンターをクリアする\",\n \"CONTROL_ALLATONCE\": \"一斉に\",\n \"DATA_SETVARIABLETO\": \"%1 を %2 にする\",\n \"DATA_CHANGEVARIABLEBY\": \"%1 を %2 ずつ変える\",\n \"DATA_SHOWVARIABLE\": \"変数 %1 を表示する\",\n \"DATA_HIDEVARIABLE\": \"変数 %1 を隠す\",\n \"DATA_ADDTOLIST\": \"%1 を %2 に追加する\",\n \"DATA_DELETEOFLIST\": \"%2 の %1 番目を削除する\",\n \"DATA_DELETEALLOFLIST\": \"%1のすべてを削除する\",\n \"DATA_INSERTATLIST\": \"%3 の %2 番目に %1 を挿入する\",\n \"DATA_REPLACEITEMOFLIST\": \"%2 の %1 番目を %3 で置き換える\",\n \"DATA_ITEMOFLIST\": \"%2 の %1 番目\",\n \"DATA_ITEMNUMOFLIST\": \"%2中の%1の場所\",\n \"DATA_LENGTHOFLIST\": \"%1 の長さ\",\n \"DATA_LISTCONTAINSITEM\": \"%1 に %2 が含まれる\",\n \"DATA_SHOWLIST\": \"リスト %1 を表示する\",\n \"DATA_HIDELIST\": \"リスト %1 を隠す\",\n \"DATA_INDEX_ALL\": \"すべて\",\n \"DATA_INDEX_LAST\": \"最後\",\n \"DATA_INDEX_RANDOM\": \"乱数\",\n \"EVENT_WHENFLAGCLICKED\": \"%1 が押されたとき\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"このスプライトが押されたとき\",\n \"EVENT_WHENSTAGECLICKED\": \"ステージが押されたとき\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"このスプライトが %1 に触れたとき\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"%1 を受け取ったとき\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"背景が %1 になったとき\",\n \"EVENT_WHENGREATERTHAN\": \"%1 > %2 のとき\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"タイマー\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"音量\",\n \"EVENT_BROADCAST\": \"%1 を送る\",\n \"EVENT_BROADCASTANDWAIT\": \"%1 を送って待つ\",\n \"EVENT_WHENKEYPRESSED\": \"%1 キーが押されたとき\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"スペース\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"左向き矢印\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"右向き矢印\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"下向き矢印\",\n \"EVENT_WHENKEYPRESSED_UP\": \"上向き矢印\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"どれかの\",\n \"LOOKS_SAYFORSECS\": \"%1 と %2 秒言う\",\n \"LOOKS_SAY\": \"%1 と言う\",\n \"LOOKS_HELLO\": \"こんにちは!\",\n \"LOOKS_THINKFORSECS\": \"%1 と %2 秒考える\",\n \"LOOKS_THINK\": \"%1 と考える\",\n \"LOOKS_HMM\": \"うーん...\",\n \"LOOKS_SHOW\": \"表示する\",\n \"LOOKS_HIDE\": \"隠す\",\n \"LOOKS_HIDEALLSPRITES\": \"すべてのスプライトを隠す\",\n \"LOOKS_EFFECT_COLOR\": \"色\",\n \"LOOKS_EFFECT_FISHEYE\": \"魚眼レンズ\",\n \"LOOKS_EFFECT_WHIRL\": \"渦巻き\",\n \"LOOKS_EFFECT_PIXELATE\": \"ピクセル化\",\n \"LOOKS_EFFECT_MOSAIC\": \"モザイク\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"明るさ\",\n \"LOOKS_EFFECT_GHOST\": \"幽霊\",\n \"LOOKS_CHANGEEFFECTBY\": \"%1 の効果を %2 ずつ変える\",\n \"LOOKS_SETEFFECTTO\": \"%1 の効果を %2 にする\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"画像効果をなくす\",\n \"LOOKS_CHANGESIZEBY\": \"大きさを %1 ずつ変える\",\n \"LOOKS_SETSIZETO\": \"大きさを %1 %にする\",\n \"LOOKS_SIZE\": \"大きさ\",\n \"LOOKS_CHANGESTRETCHBY\": \"伸びを %1 ずつ変える\",\n \"LOOKS_SETSTRETCHTO\": \"伸びを %1 %にする\",\n \"LOOKS_SWITCHCOSTUMETO\": \"コスチュームを %1 にする\",\n \"LOOKS_NEXTCOSTUME\": \"次のコスチュームにする\",\n \"LOOKS_SWITCHBACKDROPTO\": \"背景を %1 にする\",\n \"LOOKS_GOTOFRONTBACK\": \"%1 へ移動する\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"最前面\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"最背面\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"%2 層 %1\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"手前に出す\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"奥に下げる\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"背景の %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"コスチュームの %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"番号\",\n \"LOOKS_NUMBERNAME_NAME\": \"名前\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"背景を %1 にして待つ\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"次の背景にする\",\n \"LOOKS_NEXTBACKDROP\": \"次の背景\",\n \"LOOKS_PREVIOUSBACKDROP\": \"前の背景\",\n \"LOOKS_RANDOMBACKDROP\": \"どれかの背景\",\n \"MOTION_MOVESTEPS\": \"%1 歩動かす\",\n \"MOTION_TURNLEFT\": \"%1 %2 度回す\",\n \"MOTION_TURNRIGHT\": \"%1 %2 度回す\",\n \"MOTION_POINTINDIRECTION\": \"%1 度に向ける\",\n \"MOTION_POINTTOWARDS\": \"%1 へ向ける\",\n \"MOTION_POINTTOWARDS_POINTER\": \"マウスのポインター\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"どれかの向き\",\n \"MOTION_GOTO\": \"%1 へ行く\",\n \"MOTION_GOTO_POINTER\": \"マウスのポインター\",\n \"MOTION_GOTO_RANDOM\": \"どこかの場所\",\n \"MOTION_GOTOXY\": \"x座標を %1 、y座標を %2 にする\",\n \"MOTION_GLIDESECSTOXY\": \"%1 秒でx座標を %2 に、y座標を %3 に変える\",\n \"MOTION_GLIDETO\": \"%1 秒で %2 へ行く\",\n \"MOTION_GLIDETO_POINTER\": \"マウスのポインター\",\n \"MOTION_GLIDETO_RANDOM\": \"どこかの場所\",\n \"MOTION_CHANGEXBY\": \"x座標を %1 ずつ変える\",\n \"MOTION_SETX\": \"x座標を %1 にする\",\n \"MOTION_CHANGEYBY\": \"y座標を %1 ずつ変える\",\n \"MOTION_SETY\": \"y座標を %1 にする\",\n \"MOTION_IFONEDGEBOUNCE\": \"もし端に着いたら、跳ね返る\",\n \"MOTION_SETROTATIONSTYLE\": \"回転方法を %1 にする\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"左右のみ\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"回転しない\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"自由に回転\",\n \"MOTION_XPOSITION\": \"x座標\",\n \"MOTION_YPOSITION\": \"y座標\",\n \"MOTION_DIRECTION\": \"向き\",\n \"MOTION_SCROLLRIGHT\": \"右に %1 スクロールする\",\n \"MOTION_SCROLLUP\": \"上に %1 スクロールする\",\n \"MOTION_ALIGNSCENE\": \"スクロール位置を %1 にする\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"左下\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"右下\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"中央\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"左上\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"右上\",\n \"MOTION_XSCROLL\": \"x方向のスクロール量\",\n \"MOTION_YSCROLL\": \"y方向のスクロール方向\",\n \"MOTION_STAGE_SELECTED\": \"ステージが選択されました: 動きブロックはありません\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"%1 から %2 までの乱数\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 かつ %2\",\n \"OPERATORS_OR\": \"%1 または %2\",\n \"OPERATORS_NOT\": \"%1 ではない\",\n \"OPERATORS_JOIN\": \"%1 と %2\",\n \"OPERATORS_JOIN_APPLE\": \"りんご\",\n \"OPERATORS_JOIN_BANANA\": \"バナナ\",\n \"OPERATORS_LETTEROF\": \"%2 の %1 番目の文字\",\n \"OPERATORS_LETTEROF_APPLE\": \"り\",\n \"OPERATORS_LENGTH\": \"%1 の長さ\",\n \"OPERATORS_CONTAINS\": \"%1 に %2 が含まれる\",\n \"OPERATORS_MOD\": \"%1 を %2 で割った余り\",\n \"OPERATORS_ROUND\": \"%1 を四捨五入\",\n \"OPERATORS_MATHOP\": \"%2 の %1\",\n \"OPERATORS_MATHOP_ABS\": \"絶対値\",\n \"OPERATORS_MATHOP_FLOOR\": \"切り下げ\",\n \"OPERATORS_MATHOP_CEILING\": \"切り上げ\",\n \"OPERATORS_MATHOP_SQRT\": \"平方根\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"定義 %1\",\n \"SENSING_TOUCHINGOBJECT\": \"%1 に触れた\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"マウスのポインター\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"端\",\n \"SENSING_TOUCHINGCOLOR\": \"%1 色に触れた\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"%1 色が %2 色に触れた\",\n \"SENSING_DISTANCETO\": \"%1 までの距離\",\n \"SENSING_DISTANCETO_POINTER\": \"マウスのポインター\",\n \"SENSING_ASKANDWAIT\": \"%1 と聞いて待つ\",\n \"SENSING_ASK_TEXT\": \"あなたの名前は何ですか?\",\n \"SENSING_ANSWER\": \"答え\",\n \"SENSING_KEYPRESSED\": \"%1 キーが押された\",\n \"SENSING_MOUSEDOWN\": \"マウスが押された\",\n \"SENSING_MOUSEX\": \"マウスのx座標\",\n \"SENSING_MOUSEY\": \"マウスのy座標\",\n \"SENSING_SETDRAGMODE\": \"ドラッグ %1 ようにする\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"できる\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"できない\",\n \"SENSING_LOUDNESS\": \"音量\",\n \"SENSING_LOUD\": \"うるさい\",\n \"SENSING_TIMER\": \"タイマー\",\n \"SENSING_RESETTIMER\": \"タイマーをリセット\",\n \"SENSING_OF\": \"%2 の %1\",\n \"SENSING_OF_XPOSITION\": \"x座標\",\n \"SENSING_OF_YPOSITION\": \"y座標\",\n \"SENSING_OF_DIRECTION\": \"向き\",\n \"SENSING_OF_COSTUMENUMBER\": \"コスチューム #\",\n \"SENSING_OF_COSTUMENAME\": \"コスチューム名\",\n \"SENSING_OF_SIZE\": \"大きさ\",\n \"SENSING_OF_VOLUME\": \"音量\",\n \"SENSING_OF_BACKDROPNUMBER\": \"背景 #\",\n \"SENSING_OF_BACKDROPNAME\": \"背景の名前\",\n \"SENSING_OF_STAGE\": \"ステージ\",\n \"SENSING_CURRENT\": \"現在の %1\",\n \"SENSING_CURRENT_YEAR\": \"年\",\n \"SENSING_CURRENT_MONTH\": \"月\",\n \"SENSING_CURRENT_DATE\": \"日\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"曜日\",\n \"SENSING_CURRENT_HOUR\": \"時\",\n \"SENSING_CURRENT_MINUTE\": \"分\",\n \"SENSING_CURRENT_SECOND\": \"秒\",\n \"SENSING_DAYSSINCE2000\": \"2000年からの日数\",\n \"SENSING_USERNAME\": \"ユーザー名\",\n \"SENSING_USERID\": \"ユーザーID\",\n \"SOUND_PLAY\": \"%1 の音を鳴らす\",\n \"SOUND_PLAYUNTILDONE\": \"終わるまで %1 の音を鳴らす\",\n \"SOUND_STOPALLSOUNDS\": \"すべての音を止める\",\n \"SOUND_SETEFFECTO\": \"%1 の効果を %2 にする\",\n \"SOUND_CHANGEEFFECTBY\": \"%1 の効果を %2 ずつ変える\",\n \"SOUND_CLEAREFFECTS\": \"音の効果をなくす\",\n \"SOUND_EFFECTS_PITCH\": \"ピッチ\",\n \"SOUND_EFFECTS_PAN\": \"左右にパン\",\n \"SOUND_CHANGEVOLUMEBY\": \"音量を %1 ずつ変える\",\n \"SOUND_SETVOLUMETO\": \"音量を %1 %にする\",\n \"SOUND_VOLUME\": \"音量\",\n \"SOUND_RECORD\": \"録音...\",\n \"CATEGORY_MOTION\": \"動き\",\n \"CATEGORY_LOOKS\": \"見た目\",\n \"CATEGORY_SOUND\": \"音\",\n \"CATEGORY_EVENTS\": \"イベント\",\n \"CATEGORY_CONTROL\": \"制御\",\n \"CATEGORY_SENSING\": \"調べる\",\n \"CATEGORY_OPERATORS\": \"演算\",\n \"CATEGORY_VARIABLES\": \"変数\",\n \"CATEGORY_MYBLOCKS\": \"ブロック定義\",\n \"DUPLICATE\": \"複製\",\n \"DELETE\": \"削除\",\n \"ADD_COMMENT\": \"コメントを追加\",\n \"REMOVE_COMMENT\": \"コメントを削除\",\n \"DELETE_BLOCK\": \"ブロックを削除\",\n \"DELETE_X_BLOCKS\": \"%1 個のブロックを削除\",\n \"DELETE_ALL_BLOCKS\": \"%1 個のブロックをすべて削除しますか?\",\n \"CLEAN_UP\": \"きれいにする\",\n \"HELP\": \"ヘルプ\",\n \"UNDO\": \"取り消し\",\n \"REDO\": \"やり直し\",\n \"EDIT_PROCEDURE\": \"編集\",\n \"SHOW_PROCEDURE_DEFINITION\": \"定義へ行く\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"コメントを書く...\",\n \"COLOUR_HUE_LABEL\": \"色\",\n \"COLOUR_SATURATION_LABEL\": \"鮮やかさ\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"明るさ\",\n \"CHANGE_VALUE_TITLE\": \"値を変える:\",\n \"RENAME_VARIABLE\": \"変数名を変更\",\n \"RENAME_VARIABLE_TITLE\": \"変数\\\"%1\\\"をすべて以下の名前に変える:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"変数名を変更\",\n \"NEW_VARIABLE\": \"変数を作る\",\n \"NEW_VARIABLE_TITLE\": \"新しい変数名:\",\n \"VARIABLE_MODAL_TITLE\": \"新しい変数\",\n \"VARIABLE_ALREADY_EXISTS\": \"変数\\\"%1\\\"はすでに存在します。\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"変数\\\"%1\\\"は\\\"%2\\\"型の変数としてすでに存在します。\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"変数\\\"%2\\\"が使われている\\\"%1\\\"箇所も削除しますか?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"変数\\\"%1\\\"は定義\\\"%2\\\"で使われているため削除できません\",\n \"DELETE_VARIABLE\": \"変数\\\"%1\\\"を削除\",\n \"NEW_PROCEDURE\": \"ブロックを作る\",\n \"PROCEDURE_ALREADY_EXISTS\": \"定義\\\"%1\\\"はすでに存在します。\",\n \"PROCEDURE_DEFAULT_NAME\": \"ブロック名\",\n \"NEW_LIST\": \"リストを作る\",\n \"NEW_LIST_TITLE\": \"新しいリスト名:\",\n \"LIST_MODAL_TITLE\": \"新しいリスト\",\n \"LIST_ALREADY_EXISTS\": \"リスト\\\"%1\\\"はすでに存在します。\",\n \"RENAME_LIST_TITLE\": \"リスト\\\"%1\\\"をすべて以下の名前に変える:\",\n \"RENAME_LIST_MODAL_TITLE\": \"リスト名を変更\",\n \"DEFAULT_LIST_ITEM\": \"なにか\",\n \"DELETE_LIST\": \"リスト「%1」を削除する\",\n \"RENAME_LIST\": \"リスト名を変更\",\n \"NEW_BROADCAST_MESSAGE\": \"新しいメッセージ\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"新しいメッセージ名:\",\n \"BROADCAST_MODAL_TITLE\": \"新しいメッセージ\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"メッセージ1\"\n};\n\nBlockly.ScratchMsgs.locales[\"ja-Hira\"] =\n{\n \"CONTROL_FOREVER\": \"ずっと\",\n \"CONTROL_REPEAT\": \"%1 かいくりかえす\",\n \"CONTROL_IF\": \"もし %1 なら\",\n \"CONTROL_ELSE\": \"でなければ\",\n \"CONTROL_STOP\": \" \",\n \"CONTROL_STOP_ALL\": \"すべてをとめる\",\n \"CONTROL_STOP_THIS\": \"このスクリプトをとめる\",\n \"CONTROL_STOP_OTHER\": \"スプライトのほかのスクリプトをとめる\",\n \"CONTROL_WAIT\": \"%1 びょうまつ\",\n \"CONTROL_WAITUNTIL\": \"%1 までまつ\",\n \"CONTROL_REPEATUNTIL\": \"%1 までくりかえす\",\n \"CONTROL_WHILE\": \"%1 のあいだくりかえす\",\n \"CONTROL_FOREACH\": \"%2 のようそを %1 にいれてくりかえす\",\n \"CONTROL_STARTASCLONE\": \"クローンされたとき\",\n \"CONTROL_CREATECLONEOF\": \"%1 のクローンをつくる\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"じぶんじしん\",\n \"CONTROL_DELETETHISCLONE\": \"このクローンをさくじょする\",\n \"CONTROL_COUNTER\": \"カウンター\",\n \"CONTROL_INCRCOUNTER\": \"カウンターにたす\",\n \"CONTROL_CLEARCOUNTER\": \"カウンターをクリアする\",\n \"CONTROL_ALLATONCE\": \"いっせいに\",\n \"DATA_SETVARIABLETO\": \"%1 を %2 にする\",\n \"DATA_CHANGEVARIABLEBY\": \"%1 を %2 ずつかえる\",\n \"DATA_SHOWVARIABLE\": \"へんすう %1 をひょうじする\",\n \"DATA_HIDEVARIABLE\": \"へんすう %1 をかくす\",\n \"DATA_ADDTOLIST\": \"%1 を %2 についかする\",\n \"DATA_DELETEOFLIST\": \"%2 の %1 ばんめをさくじょする\",\n \"DATA_DELETEALLOFLIST\": \"%1のすべてをさくじょする\",\n \"DATA_INSERTATLIST\": \"%3 の %2 ばんめに %1 をそうにゅうする\",\n \"DATA_REPLACEITEMOFLIST\": \"%2 の %1 ばんめを %3 でおきかえる\",\n \"DATA_ITEMOFLIST\": \"%2 の %1 ばんめ\",\n \"DATA_ITEMNUMOFLIST\": \"%2なかの%1のばしょ\",\n \"DATA_LENGTHOFLIST\": \"%1 のながさ\",\n \"DATA_LISTCONTAINSITEM\": \"%1 に %2 がふくまれる\",\n \"DATA_SHOWLIST\": \"リスト %1 をひょうじする\",\n \"DATA_HIDELIST\": \"リスト %1 をかくす\",\n \"DATA_INDEX_ALL\": \"すべて\",\n \"DATA_INDEX_LAST\": \"さいご\",\n \"DATA_INDEX_RANDOM\": \"らんすう\",\n \"EVENT_WHENFLAGCLICKED\": \"%1 がおされたとき\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"このスプライトがおされたとき\",\n \"EVENT_WHENSTAGECLICKED\": \"ステージがおされたとき\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"このスプライトが %1 にふれたとき\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"%1 をうけとったとき\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"はいけいが %1 になったとき\",\n \"EVENT_WHENGREATERTHAN\": \"%1 > %2 のとき\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"タイマー\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"おんりょう\",\n \"EVENT_BROADCAST\": \"%1 をおくる\",\n \"EVENT_BROADCASTANDWAIT\": \"%1 をおくってまつ\",\n \"EVENT_WHENKEYPRESSED\": \"%1 キーがおされたとき\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"スペース\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"ひだりむきやじるし\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"みぎむきやじるし\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"したむきやじるし\",\n \"EVENT_WHENKEYPRESSED_UP\": \"うわむきやじるし\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"どれかの\",\n \"LOOKS_SAYFORSECS\": \"%1 と %2 びょういう\",\n \"LOOKS_SAY\": \"%1 という\",\n \"LOOKS_HELLO\": \"こんにちは!\",\n \"LOOKS_THINKFORSECS\": \"%1 と %2 びょうかんがえる\",\n \"LOOKS_THINK\": \"%1 とかんがえる\",\n \"LOOKS_HMM\": \"うーん...\",\n \"LOOKS_SHOW\": \"ひょうじする\",\n \"LOOKS_HIDE\": \"かくす\",\n \"LOOKS_HIDEALLSPRITES\": \"すべてのスプライトをかくす\",\n \"LOOKS_EFFECT_COLOR\": \"いろ\",\n \"LOOKS_EFFECT_FISHEYE\": \"ぎょがんレンズ\",\n \"LOOKS_EFFECT_WHIRL\": \"うずまき\",\n \"LOOKS_EFFECT_PIXELATE\": \"ピクセルか\",\n \"LOOKS_EFFECT_MOSAIC\": \"モザイク\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"あかるさ\",\n \"LOOKS_EFFECT_GHOST\": \"ゆうれい\",\n \"LOOKS_CHANGEEFFECTBY\": \"%1 のこうかを %2 ずつかえる\",\n \"LOOKS_SETEFFECTTO\": \"%1 のこうかを %2 にする\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"がぞうこうかをなくす\",\n \"LOOKS_CHANGESIZEBY\": \"おおきさを %1 ずつかえる\",\n \"LOOKS_SETSIZETO\": \"おおきさを %1 %にする\",\n \"LOOKS_SIZE\": \"おおきさ\",\n \"LOOKS_CHANGESTRETCHBY\": \"のびを %1 ずつかえる\",\n \"LOOKS_SETSTRETCHTO\": \"のびを %1 %にする\",\n \"LOOKS_SWITCHCOSTUMETO\": \"コスチュームを %1 にする\",\n \"LOOKS_NEXTCOSTUME\": \"つぎのコスチュームにする\",\n \"LOOKS_SWITCHBACKDROPTO\": \"はいけいを %1 にする\",\n \"LOOKS_GOTOFRONTBACK\": \"%1 へいどうする\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"さいぜんめん\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"さいはいめん\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"%2 そう %1\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"てまえにだす\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"おくにさげる\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"はいけいの %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"コスチュームの %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"ばんごう\",\n \"LOOKS_NUMBERNAME_NAME\": \"なまえ\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"はいけいを %1 にしてまつ\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"つぎのはいけいにする\",\n \"LOOKS_NEXTBACKDROP\": \"つぎのはいけい\",\n \"LOOKS_PREVIOUSBACKDROP\": \"まえのはいけい\",\n \"LOOKS_RANDOMBACKDROP\": \"どれかのはいけい\",\n \"MOTION_MOVESTEPS\": \"%1 ほうごかす\",\n \"MOTION_TURNLEFT\": \"%1 %2 どまわす\",\n \"MOTION_TURNRIGHT\": \"%1 %2 どまわす\",\n \"MOTION_POINTINDIRECTION\": \"%1 どにむける\",\n \"MOTION_POINTTOWARDS\": \"%1 へむける\",\n \"MOTION_POINTTOWARDS_POINTER\": \"マウスのポインター\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"どれかのむき\",\n \"MOTION_GOTO\": \"%1 へいく\",\n \"MOTION_GOTO_POINTER\": \"マウスのポインター\",\n \"MOTION_GOTO_RANDOM\": \"どこかのばしょ\",\n \"MOTION_GOTOXY\": \"xざひょうを %1 、yざひょうを %2 にする\",\n \"MOTION_GLIDESECSTOXY\": \"%1 びょうでxざひょうを %2 に、yざひょうを %3 にかえる\",\n \"MOTION_GLIDETO\": \"%1 びょうで %2 へいく\",\n \"MOTION_GLIDETO_POINTER\": \"マウスのポインター\",\n \"MOTION_GLIDETO_RANDOM\": \"どこかのばしょ\",\n \"MOTION_CHANGEXBY\": \"xざひょうを %1 ずつかえる\",\n \"MOTION_SETX\": \"xざひょうを %1 にする\",\n \"MOTION_CHANGEYBY\": \"yざひょうを %1 ずつかえる\",\n \"MOTION_SETY\": \"yざひょうを %1 にする\",\n \"MOTION_IFONEDGEBOUNCE\": \"もしはしについたら、はねかえる\",\n \"MOTION_SETROTATIONSTYLE\": \"かいてんほうほうを %1 にする\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"さゆうのみ\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"かいてんしない\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"じゆうにかいてん\",\n \"MOTION_XPOSITION\": \"xざひょう\",\n \"MOTION_YPOSITION\": \"yざひょう\",\n \"MOTION_DIRECTION\": \"むき\",\n \"MOTION_SCROLLRIGHT\": \"みぎに %1 スクロールする\",\n \"MOTION_SCROLLUP\": \"うえに %1 スクロールする\",\n \"MOTION_ALIGNSCENE\": \"スクロールいちを %1 にする\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"ひだりした\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"みぎした\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"ちゅうおう\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"ひだりうえ\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"みぎうえ\",\n \"MOTION_XSCROLL\": \"xほうこうのスクロールりょう\",\n \"MOTION_YSCROLL\": \"yほうこうのスクロールほうこう\",\n \"MOTION_STAGE_SELECTED\": \"ステージがせんたくされました: うごきブロックはありません\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"%1 から %2 までのらんすう\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 かつ %2\",\n \"OPERATORS_OR\": \"%1 または %2\",\n \"OPERATORS_NOT\": \"%1 ではない\",\n \"OPERATORS_JOIN\": \"%1 と %2\",\n \"OPERATORS_JOIN_APPLE\": \"りんご\",\n \"OPERATORS_JOIN_BANANA\": \"バナナ\",\n \"OPERATORS_LETTEROF\": \"%2 の %1 ばんめのもじ\",\n \"OPERATORS_LETTEROF_APPLE\": \"り\",\n \"OPERATORS_LENGTH\": \"%1 のながさ\",\n \"OPERATORS_CONTAINS\": \"%1 に %2 がふくまれる\",\n \"OPERATORS_MOD\": \"%1 を %2 でわったあまり\",\n \"OPERATORS_ROUND\": \"%1 をししゃごにゅう\",\n \"OPERATORS_MATHOP\": \"%2 の %1\",\n \"OPERATORS_MATHOP_ABS\": \"ぜったいち\",\n \"OPERATORS_MATHOP_FLOOR\": \"きりさげ\",\n \"OPERATORS_MATHOP_CEILING\": \"きりあげ\",\n \"OPERATORS_MATHOP_SQRT\": \"へいほうこん\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"ていぎ %1\",\n \"SENSING_TOUCHINGOBJECT\": \"%1 にふれた\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"マウスのポインター\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"はし\",\n \"SENSING_TOUCHINGCOLOR\": \"%1 いろにふれた\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"%1 いろが %2 いろにふれた\",\n \"SENSING_DISTANCETO\": \"%1 までのきょり\",\n \"SENSING_DISTANCETO_POINTER\": \"マウスのポインター\",\n \"SENSING_ASKANDWAIT\": \"%1 ときいてまつ\",\n \"SENSING_ASK_TEXT\": \"あなたのなまえはなんですか?\",\n \"SENSING_ANSWER\": \"こたえ\",\n \"SENSING_KEYPRESSED\": \"%1 キーがおされた\",\n \"SENSING_MOUSEDOWN\": \"マウスがおされた\",\n \"SENSING_MOUSEX\": \"マウスのxざひょう\",\n \"SENSING_MOUSEY\": \"マウスのyざひょう\",\n \"SENSING_SETDRAGMODE\": \"ドラッグ %1 ようにする\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"できる\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"できない\",\n \"SENSING_LOUDNESS\": \"おんりょう\",\n \"SENSING_LOUD\": \"うるさい\",\n \"SENSING_TIMER\": \"タイマー\",\n \"SENSING_RESETTIMER\": \"タイマーをリセット\",\n \"SENSING_OF\": \"%2 の %1\",\n \"SENSING_OF_XPOSITION\": \"xざひょう\",\n \"SENSING_OF_YPOSITION\": \"yざひょう\",\n \"SENSING_OF_DIRECTION\": \"むき\",\n \"SENSING_OF_COSTUMENUMBER\": \"コスチューム #\",\n \"SENSING_OF_COSTUMENAME\": \"コスチュームめい\",\n \"SENSING_OF_SIZE\": \"おおきさ\",\n \"SENSING_OF_VOLUME\": \"おんりょう\",\n \"SENSING_OF_BACKDROPNUMBER\": \"はいけい #\",\n \"SENSING_OF_BACKDROPNAME\": \"はいけいのなまえ\",\n \"SENSING_OF_STAGE\": \"ステージ\",\n \"SENSING_CURRENT\": \"げんざいの %1\",\n \"SENSING_CURRENT_YEAR\": \"とし\",\n \"SENSING_CURRENT_MONTH\": \"つき\",\n \"SENSING_CURRENT_DATE\": \"ひ\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"ようび\",\n \"SENSING_CURRENT_HOUR\": \"とき\",\n \"SENSING_CURRENT_MINUTE\": \"ぶん\",\n \"SENSING_CURRENT_SECOND\": \"びょう\",\n \"SENSING_DAYSSINCE2000\": \"2000ねんからのにっすう\",\n \"SENSING_USERNAME\": \"ユーザーめい\",\n \"SENSING_USERID\": \"ユーザーID\",\n \"SOUND_PLAY\": \"%1 のおとをならす\",\n \"SOUND_PLAYUNTILDONE\": \"おわるまで %1 のおとをならす\",\n \"SOUND_STOPALLSOUNDS\": \"すべてのおとをとめる\",\n \"SOUND_SETEFFECTO\": \"%1 のこうかを %2 にする\",\n \"SOUND_CHANGEEFFECTBY\": \"%1 のこうかを %2 ずつかえる\",\n \"SOUND_CLEAREFFECTS\": \"おとのこうかをなくす\",\n \"SOUND_EFFECTS_PITCH\": \"ピッチ\",\n \"SOUND_EFFECTS_PAN\": \"さゆうにパン\",\n \"SOUND_CHANGEVOLUMEBY\": \"おんりょうを %1 ずつかえる\",\n \"SOUND_SETVOLUMETO\": \"おんりょうを %1 %にする\",\n \"SOUND_VOLUME\": \"おんりょう\",\n \"SOUND_RECORD\": \"ろくおん...\",\n \"CATEGORY_MOTION\": \"うごき\",\n \"CATEGORY_LOOKS\": \"みため\",\n \"CATEGORY_SOUND\": \"おと\",\n \"CATEGORY_EVENTS\": \"イベント\",\n \"CATEGORY_CONTROL\": \"せいぎょ\",\n \"CATEGORY_SENSING\": \"しらべる\",\n \"CATEGORY_OPERATORS\": \"えんざん\",\n \"CATEGORY_VARIABLES\": \"へんすう\",\n \"CATEGORY_MYBLOCKS\": \"ブロックていぎ\",\n \"DUPLICATE\": \"ふくせい\",\n \"DELETE\": \"さくじょ\",\n \"ADD_COMMENT\": \"コメントをついか\",\n \"REMOVE_COMMENT\": \"コメントをさくじょ\",\n \"DELETE_BLOCK\": \"ブロックをさくじょ\",\n \"DELETE_X_BLOCKS\": \"%1 このブロックをさくじょ\",\n \"DELETE_ALL_BLOCKS\": \"%1 このブロックをすべてさくじょしますか?\",\n \"CLEAN_UP\": \"きれいにする\",\n \"HELP\": \"ヘルプ\",\n \"UNDO\": \"とりけし\",\n \"REDO\": \"やりなおし\",\n \"EDIT_PROCEDURE\": \"へんしゅう\",\n \"SHOW_PROCEDURE_DEFINITION\": \"ていぎへいく\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"コメントをかく...\",\n \"COLOUR_HUE_LABEL\": \"いろ\",\n \"COLOUR_SATURATION_LABEL\": \"あざやかさ\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"あかるさ\",\n \"CHANGE_VALUE_TITLE\": \"あたいをかえる:\",\n \"RENAME_VARIABLE\": \"へんすうめいをへんこう\",\n \"RENAME_VARIABLE_TITLE\": \"へんすう\\\"%1\\\"をすべていかのなまえにかえる:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"へんすうめいをへんこう\",\n \"NEW_VARIABLE\": \"へんすうをつくる\",\n \"NEW_VARIABLE_TITLE\": \"あたらしいへんすうめい:\",\n \"VARIABLE_MODAL_TITLE\": \"あたらしいへんすう\",\n \"VARIABLE_ALREADY_EXISTS\": \"へんすう\\\"%1\\\"はすでにそんざいします。\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"へんすう\\\"%1\\\"は\\\"%2\\\"かたのへんすうとしてすでにそんざいします。\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"へんすう\\\"%2\\\"がつかわれている\\\"%1\\\"かしょもさくじょしますか?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"へんすう\\\"%1\\\"はていぎ\\\"%2\\\"でつかわれているためさくじょできません\",\n \"DELETE_VARIABLE\": \"へんすう\\\"%1\\\"をさくじょ\",\n \"NEW_PROCEDURE\": \"ブロックをつくる\",\n \"PROCEDURE_ALREADY_EXISTS\": \"ていぎ\\\"%1\\\"はすでにそんざいします。\",\n \"PROCEDURE_DEFAULT_NAME\": \"ブロックめい\",\n \"NEW_LIST\": \"リストをつくる\",\n \"NEW_LIST_TITLE\": \"あたらしいリストめい:\",\n \"LIST_MODAL_TITLE\": \"あたらしいリスト\",\n \"LIST_ALREADY_EXISTS\": \"リスト\\\"%1\\\"はすでにそんざいします。\",\n \"RENAME_LIST_TITLE\": \"リスト\\\"%1\\\"をすべていかのなまえにかえる:\",\n \"RENAME_LIST_MODAL_TITLE\": \"リストめいをへんこう\",\n \"DEFAULT_LIST_ITEM\": \"なにか\",\n \"DELETE_LIST\": \"リスト「%1」をさくじょする\",\n \"RENAME_LIST\": \"リストめいをへんこう\",\n \"NEW_BROADCAST_MESSAGE\": \"あたらしいメッセージ\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"あたらしいメッセージめい:\",\n \"BROADCAST_MODAL_TITLE\": \"あたらしいメッセージ\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"メッセージ1\"\n};\n\nBlockly.ScratchMsgs.locales[\"nb\"] =\n{\n \"CONTROL_FOREVER\": \"gjenta for alltid\",\n \"CONTROL_REPEAT\": \"gjenta %1 ganger\",\n \"CONTROL_IF\": \"hvis %1\",\n \"CONTROL_ELSE\": \"ellers\",\n \"CONTROL_STOP\": \"stopp\",\n \"CONTROL_STOP_ALL\": \"alle\",\n \"CONTROL_STOP_THIS\": \"dette skriptet\",\n \"CONTROL_STOP_OTHER\": \"andre skript i figuren\",\n \"CONTROL_WAIT\": \"vent %1 sekunder\",\n \"CONTROL_WAITUNTIL\": \"vent til %1\",\n \"CONTROL_REPEATUNTIL\": \"gjenta til %1\",\n \"CONTROL_WHILE\": \"gjenta hvis %1\",\n \"CONTROL_FOREACH\": \"for hver %1 i %2\",\n \"CONTROL_STARTASCLONE\": \"når jeg starter som klon\",\n \"CONTROL_CREATECLONEOF\": \"lag klon av %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"meg\",\n \"CONTROL_DELETETHISCLONE\": \"slett denne klonen\",\n \"CONTROL_COUNTER\": \"teller\",\n \"CONTROL_INCRCOUNTER\": \"tell opp med 1\",\n \"CONTROL_CLEARCOUNTER\": \"nullstill telleren\",\n \"CONTROL_ALLATONCE\": \"kjør fort\",\n \"DATA_SETVARIABLETO\": \"sett %1 til %2\",\n \"DATA_CHANGEVARIABLEBY\": \"endre %1 med %2\",\n \"DATA_SHOWVARIABLE\": \"vis variabel %1\",\n \"DATA_HIDEVARIABLE\": \"skjul variabel %1\",\n \"DATA_ADDTOLIST\": \"legg til %1 i %2\",\n \"DATA_DELETEOFLIST\": \"slett element %1 i %2\",\n \"DATA_DELETEALLOFLIST\": \"slett alt i %1\",\n \"DATA_INSERTATLIST\": \"sett inn %1 på plass %2 i %3\",\n \"DATA_REPLACEITEMOFLIST\": \"erstatt element %1 i %2 med %3\",\n \"DATA_ITEMOFLIST\": \"element %1 i %2\",\n \"DATA_ITEMNUMOFLIST\": \"posisjon av %1 i %2\",\n \"DATA_LENGTHOFLIST\": \"lengden av %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 inneholder %2?\",\n \"DATA_SHOWLIST\": \"vis liste %1\",\n \"DATA_HIDELIST\": \"skjul liste %1\",\n \"DATA_INDEX_ALL\": \"alle\",\n \"DATA_INDEX_LAST\": \"siste\",\n \"DATA_INDEX_RANDOM\": \"tilfeldig\",\n \"EVENT_WHENFLAGCLICKED\": \"når %1 klikkes\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"når denne figuren klikkes\",\n \"EVENT_WHENSTAGECLICKED\": \"når scenen klikkes\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"når denne figuren berører %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"når jeg mottar %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"når bakgrunn bytter til %1\",\n \"EVENT_WHENGREATERTHAN\": \"når %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"sekundklokke\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"lydnivå\",\n \"EVENT_BROADCAST\": \"send melding %1\",\n \"EVENT_BROADCASTANDWAIT\": \"send melding %1 og vent\",\n \"EVENT_WHENKEYPRESSED\": \"når %1 trykkes\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"mellomrom\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"pil venstre\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"pil høyre\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"pil ned\",\n \"EVENT_WHENKEYPRESSED_UP\": \"pil opp\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"hvilken som helst\",\n \"LOOKS_SAYFORSECS\": \"si %1 i %2 sekunder\",\n \"LOOKS_SAY\": \"si %1\",\n \"LOOKS_HELLO\": \"Hei!\",\n \"LOOKS_THINKFORSECS\": \"tenk %1 i %2 sekunder\",\n \"LOOKS_THINK\": \"tenk %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"vis\",\n \"LOOKS_HIDE\": \"skjul\",\n \"LOOKS_HIDEALLSPRITES\": \"skjul alle figurer\",\n \"LOOKS_EFFECT_COLOR\": \"farge\",\n \"LOOKS_EFFECT_FISHEYE\": \"fiskeøye\",\n \"LOOKS_EFFECT_WHIRL\": \"virvel\",\n \"LOOKS_EFFECT_PIXELATE\": \"piksel\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaikk\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"lysstyrke\",\n \"LOOKS_EFFECT_GHOST\": \"gjennomsiktig\",\n \"LOOKS_CHANGEEFFECTBY\": \"endre %1 effekt med %2\",\n \"LOOKS_SETEFFECTTO\": \"sett %1 effekt til %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"fjern grafiske effekter\",\n \"LOOKS_CHANGESIZEBY\": \"endre størrelse med %1\",\n \"LOOKS_SETSIZETO\": \"sett størrelse til %1 %\",\n \"LOOKS_SIZE\": \"størrelse\",\n \"LOOKS_CHANGESTRETCHBY\": \"endre strekk med %1\",\n \"LOOKS_SETSTRETCHTO\": \"sett strekk til %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"bytt drakt til %1\",\n \"LOOKS_NEXTCOSTUME\": \"neste drakt\",\n \"LOOKS_SWITCHBACKDROPTO\": \"bytt bakgrunn til %1\",\n \"LOOKS_GOTOFRONTBACK\": \"legg %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"foran alt\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"bakerst\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"gå %1 %2 lag\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"forover\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"bakover\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"bakgrunn %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"drakt %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"nummer\",\n \"LOOKS_NUMBERNAME_NAME\": \"navn\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"bytt bakgrunn til %1 og vent\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"neste bakgrunn\",\n \"LOOKS_NEXTBACKDROP\": \"neste bakgrunn\",\n \"LOOKS_PREVIOUSBACKDROP\": \"forrige bakgrunn\",\n \"LOOKS_RANDOMBACKDROP\": \"tilfeldig bakgrunn\",\n \"MOTION_MOVESTEPS\": \"gå %1 steg\",\n \"MOTION_TURNLEFT\": \"snu %1 %2 grader\",\n \"MOTION_TURNRIGHT\": \"snu %1 %2 grader\",\n \"MOTION_POINTINDIRECTION\": \"pek i retning %1\",\n \"MOTION_POINTTOWARDS\": \"pek mot %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"musepeker\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"tilfeldig retning\",\n \"MOTION_GOTO\": \"gå til %1\",\n \"MOTION_GOTO_POINTER\": \"musepeker\",\n \"MOTION_GOTO_RANDOM\": \"tilfeldig sted\",\n \"MOTION_GOTOXY\": \"gå til x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"gli %1 sekunder til x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"gli %1 sekunder til %2\",\n \"MOTION_GLIDETO_POINTER\": \"musepeker\",\n \"MOTION_GLIDETO_RANDOM\": \"tilfeldig sted\",\n \"MOTION_CHANGEXBY\": \"endre x med %1\",\n \"MOTION_SETX\": \"sett x til %1\",\n \"MOTION_CHANGEYBY\": \"endre y med %1\",\n \"MOTION_SETY\": \"sett y til %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"sprett tilbake ved kanten\",\n \"MOTION_SETROTATIONSTYLE\": \"begrens rotasjon %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"vend sideveis\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"ikke roter\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"fri rotasjon\",\n \"MOTION_XPOSITION\": \"x-posisjon\",\n \"MOTION_YPOSITION\": \"y-posisjon\",\n \"MOTION_DIRECTION\": \"retning\",\n \"MOTION_SCROLLRIGHT\": \"rull høyre %1\",\n \"MOTION_SCROLLUP\": \"rull opp %1\",\n \"MOTION_ALIGNSCENE\": \"flytt bakgrunn %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"nederst til venstre\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"nederst til høyre\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"i midten\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"øverst til venstre\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"øverst til høyre\",\n \"MOTION_XSCROLL\": \"rull x\",\n \"MOTION_YSCROLL\": \"rull y\",\n \"MOTION_STAGE_SELECTED\": \"Scenen er valgt: den har ingen bevegelsesklosser\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"tilfeldig tall fra %1 til %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 og %2\",\n \"OPERATORS_OR\": \"%1 eller %2\",\n \"OPERATORS_NOT\": \"ikke %1\",\n \"OPERATORS_JOIN\": \"sett sammen %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"eple\",\n \"OPERATORS_JOIN_BANANA\": \"banan\",\n \"OPERATORS_LETTEROF\": \"bokstav %1 i %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"p\",\n \"OPERATORS_LENGTH\": \"lengden av %1\",\n \"OPERATORS_CONTAINS\": \"%1 inneholder %2?\",\n \"OPERATORS_MOD\": \"%1 mod %2\",\n \"OPERATORS_ROUND\": \"avrund %1\",\n \"OPERATORS_MATHOP\": \"%1 av %2\",\n \"OPERATORS_MATHOP_ABS\": \"absoluttverdi\",\n \"OPERATORS_MATHOP_FLOOR\": \"avrund ned\",\n \"OPERATORS_MATHOP_CEILING\": \"avrund opp\",\n \"OPERATORS_MATHOP_SQRT\": \"kvadratrot\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"arcsin\",\n \"OPERATORS_MATHOP_ACOS\": \"arccos\",\n \"OPERATORS_MATHOP_ATAN\": \"arctan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"definer %1\",\n \"SENSING_TOUCHINGOBJECT\": \"berører %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"musepeker\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"kant\",\n \"SENSING_TOUCHINGCOLOR\": \"berører fargen %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"farge %1 berører %2?\",\n \"SENSING_DISTANCETO\": \"avstand til %1\",\n \"SENSING_DISTANCETO_POINTER\": \"musepeker\",\n \"SENSING_ASKANDWAIT\": \"spør %1 og vent\",\n \"SENSING_ASK_TEXT\": \"Hva heter du?\",\n \"SENSING_ANSWER\": \"svar\",\n \"SENSING_KEYPRESSED\": \"tast %1 trykket?\",\n \"SENSING_MOUSEDOWN\": \"museknappen er trykket?\",\n \"SENSING_MOUSEX\": \"mus x\",\n \"SENSING_MOUSEY\": \"mus y\",\n \"SENSING_SETDRAGMODE\": \"%1 å dra med musen\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"tillat\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"ikke tillat\",\n \"SENSING_LOUDNESS\": \"lydnivå\",\n \"SENSING_LOUD\": \"høy lyd?\",\n \"SENSING_TIMER\": \"sekundklokke\",\n \"SENSING_RESETTIMER\": \"nullstill klokken\",\n \"SENSING_OF\": \"%1 av %2\",\n \"SENSING_OF_XPOSITION\": \"x-posisjon\",\n \"SENSING_OF_YPOSITION\": \"y-posisjon\",\n \"SENSING_OF_DIRECTION\": \"retning\",\n \"SENSING_OF_COSTUMENUMBER\": \"drakt nr.\",\n \"SENSING_OF_COSTUMENAME\": \"draktnavn\",\n \"SENSING_OF_SIZE\": \"størrelse\",\n \"SENSING_OF_VOLUME\": \"volum\",\n \"SENSING_OF_BACKDROPNUMBER\": \"bakgrunn nr.\",\n \"SENSING_OF_BACKDROPNAME\": \"navn på bakgrunn\",\n \"SENSING_OF_STAGE\": \"Scene\",\n \"SENSING_CURRENT\": \"%1 nå\",\n \"SENSING_CURRENT_YEAR\": \"år\",\n \"SENSING_CURRENT_MONTH\": \"måned\",\n \"SENSING_CURRENT_DATE\": \"dato\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"ukedag\",\n \"SENSING_CURRENT_HOUR\": \"time\",\n \"SENSING_CURRENT_MINUTE\": \"minutt\",\n \"SENSING_CURRENT_SECOND\": \"sekund\",\n \"SENSING_DAYSSINCE2000\": \"dager siden 2000\",\n \"SENSING_USERNAME\": \"brukernavn\",\n \"SENSING_USERID\": \"brukernavn\",\n \"SOUND_PLAY\": \"start lyden %1\",\n \"SOUND_PLAYUNTILDONE\": \"spill lyden %1 til den er ferdig\",\n \"SOUND_STOPALLSOUNDS\": \"stopp alle lyder\",\n \"SOUND_SETEFFECTO\": \"sett %1 effekt til %2\",\n \"SOUND_CHANGEEFFECTBY\": \"endre %1 effekt med %2\",\n \"SOUND_CLEAREFFECTS\": \"fjern lydeffekter\",\n \"SOUND_EFFECTS_PITCH\": \"tonehøyde\",\n \"SOUND_EFFECTS_PAN\": \"retning\",\n \"SOUND_CHANGEVOLUMEBY\": \"endre volum med %1\",\n \"SOUND_SETVOLUMETO\": \"sett volum %1%\",\n \"SOUND_VOLUME\": \"volum\",\n \"SOUND_RECORD\": \"spill inn...\",\n \"CATEGORY_MOTION\": \"Bevegelse\",\n \"CATEGORY_LOOKS\": \"Utseende\",\n \"CATEGORY_SOUND\": \"Lyd\",\n \"CATEGORY_EVENTS\": \"Hendelser\",\n \"CATEGORY_CONTROL\": \"Styring\",\n \"CATEGORY_SENSING\": \"Sansing\",\n \"CATEGORY_OPERATORS\": \"Operatorer\",\n \"CATEGORY_VARIABLES\": \"Variabler\",\n \"CATEGORY_MYBLOCKS\": \"Mine klosser\",\n \"DUPLICATE\": \"Lag en kopi\",\n \"DELETE\": \"Slett\",\n \"ADD_COMMENT\": \"Skriv en kommentar\",\n \"REMOVE_COMMENT\": \"Fjern kommentar\",\n \"DELETE_BLOCK\": \"Slett kloss\",\n \"DELETE_X_BLOCKS\": \"Slett %1 klosser\",\n \"DELETE_ALL_BLOCKS\": \"Slette disse %1 klossene?\",\n \"CLEAN_UP\": \"Rydd opp klossene\",\n \"HELP\": \"Hjelp\",\n \"UNDO\": \"Angre\",\n \"REDO\": \"Gjør igjen\",\n \"EDIT_PROCEDURE\": \"Rediger\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Gå til definisjonen\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Si noe...\",\n \"COLOUR_HUE_LABEL\": \"Farge\",\n \"COLOUR_SATURATION_LABEL\": \"Fargemetning\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Lysstyrke\",\n \"CHANGE_VALUE_TITLE\": \"Endre verdi:\",\n \"RENAME_VARIABLE\": \"Endre navn på variabel\",\n \"RENAME_VARIABLE_TITLE\": \"Endre variabelnavn \\\"%1\\\" til:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Endre navn på variabel\",\n \"NEW_VARIABLE\": \"Lag en variabel\",\n \"NEW_VARIABLE_TITLE\": \"Nytt variabelnavn:\",\n \"VARIABLE_MODAL_TITLE\": \"Ny variabel\",\n \"VARIABLE_ALREADY_EXISTS\": \"Det finnes allerede en variabel som heter \\\"%1\\\".\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Det finnes allerede en %2-variabel som heter \\\"%1\\\"\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Slette variabelen \\\"%2\\\" som er brukt %1 ganger?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Kan ikke slette variabelen \\\"%1\\\" fordi den brukes i definisjonen av funksjonen \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Slett variabelen \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Lag en kloss\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Det finnes allerede en prosedyre som heter \\\"%1\\\".\",\n \"PROCEDURE_DEFAULT_NAME\": \"klossnavn\",\n \"NEW_LIST\": \"Lag en Liste\",\n \"NEW_LIST_TITLE\": \"Nytt navn på listen:\",\n \"LIST_MODAL_TITLE\": \"Ny liste\",\n \"LIST_ALREADY_EXISTS\": \"Det finnes allerede en liste som heter \\\"%1\\\".\",\n \"RENAME_LIST_TITLE\": \"Endre listenavnet \\\"%1\\\" til:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Gi listen et annet navn\",\n \"DEFAULT_LIST_ITEM\": \"ting\",\n \"DELETE_LIST\": \"Slett listen \\\"%1\\\"\",\n \"RENAME_LIST\": \"Endre listenavn\",\n \"NEW_BROADCAST_MESSAGE\": \"Ny melding\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Skriv ny melding:\",\n \"BROADCAST_MODAL_TITLE\": \"Ny melding\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"melding1\"\n};\n\nBlockly.ScratchMsgs.locales[\"nn\"] =\n{\n \"CONTROL_FOREVER\": \"for alltid\",\n \"CONTROL_REPEAT\": \"gjenta %1 gongar\",\n \"CONTROL_IF\": \"viss %1\",\n \"CONTROL_ELSE\": \"elles\",\n \"CONTROL_STOP\": \"stopp\",\n \"CONTROL_STOP_ALL\": \"alle\",\n \"CONTROL_STOP_THIS\": \"dette skriptet\",\n \"CONTROL_STOP_OTHER\": \"andre skript i figuren\",\n \"CONTROL_WAIT\": \"vent %1 sekund\",\n \"CONTROL_WAITUNTIL\": \"vent til %1\",\n \"CONTROL_REPEATUNTIL\": \"gjenta til %1\",\n \"CONTROL_WHILE\": \"gjenta viss %1\",\n \"CONTROL_FOREACH\": \"for kvar %1 i %2\",\n \"CONTROL_STARTASCLONE\": \"når eg startar som klon\",\n \"CONTROL_CREATECLONEOF\": \"lag klon av %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"meg\",\n \"CONTROL_DELETETHISCLONE\": \"slett denne klonen\",\n \"CONTROL_COUNTER\": \"teljar\",\n \"CONTROL_INCRCOUNTER\": \"auk teljar\",\n \"CONTROL_CLEARCOUNTER\": \"tøm teljar\",\n \"CONTROL_ALLATONCE\": \"alle på éin gong\",\n \"DATA_SETVARIABLETO\": \"set %1 til %2\",\n \"DATA_CHANGEVARIABLEBY\": \"endra %1 med %2\",\n \"DATA_SHOWVARIABLE\": \"vis variabelen %1\",\n \"DATA_HIDEVARIABLE\": \"gøym variabelen %1\",\n \"DATA_ADDTOLIST\": \"legg %1 til %2\",\n \"DATA_DELETEOFLIST\": \"slett element %1 i %2\",\n \"DATA_DELETEALLOFLIST\": \"slett alt i %1\",\n \"DATA_INSERTATLIST\": \"set inn %1 på plass %2 i %3\",\n \"DATA_REPLACEITEMOFLIST\": \"byt ut element %1 i %2 med %3\",\n \"DATA_ITEMOFLIST\": \"element %1 i %2\",\n \"DATA_ITEMNUMOFLIST\": \"posisjon til %1 i %2\",\n \"DATA_LENGTHOFLIST\": \"lengda til %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 inneheld %2?\",\n \"DATA_SHOWLIST\": \"vis lista %1\",\n \"DATA_HIDELIST\": \"gøym lista %1\",\n \"DATA_INDEX_ALL\": \"alle\",\n \"DATA_INDEX_LAST\": \"siste\",\n \"DATA_INDEX_RANDOM\": \"tilfeldig\",\n \"EVENT_WHENFLAGCLICKED\": \"når %1 vert trykt på\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"når denne figuren vert trykt på\",\n \"EVENT_WHENSTAGECLICKED\": \"når scena vert trykt på\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"når figuren rører %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"når eg får meldinga %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"når bakgrunnen byter til %1\",\n \"EVENT_WHENGREATERTHAN\": \"når %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"klokke\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"lydstyrke\",\n \"EVENT_BROADCAST\": \"send meldinga %1\",\n \"EVENT_BROADCASTANDWAIT\": \"send meldinga %1 og vent\",\n \"EVENT_WHENKEYPRESSED\": \"når %1 vert trykt\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"mellomrom\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"pil venstre\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"pil høgre\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"pil ned\",\n \"EVENT_WHENKEYPRESSED_UP\": \"pil opp\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"vilkårleg\",\n \"LOOKS_SAYFORSECS\": \"sei %1 i %2 sekund\",\n \"LOOKS_SAY\": \"sei %1\",\n \"LOOKS_HELLO\": \"Hei!\",\n \"LOOKS_THINKFORSECS\": \"tenk %1 i %2 sekund\",\n \"LOOKS_THINK\": \"tenk %1\",\n \"LOOKS_HMM\": \"Hm …\",\n \"LOOKS_SHOW\": \"vis\",\n \"LOOKS_HIDE\": \"gøym\",\n \"LOOKS_HIDEALLSPRITES\": \"gøym alle figurar\",\n \"LOOKS_EFFECT_COLOR\": \"farge\",\n \"LOOKS_EFFECT_FISHEYE\": \"fiskeauge\",\n \"LOOKS_EFFECT_WHIRL\": \"kvervel\",\n \"LOOKS_EFFECT_PIXELATE\": \"pikselering\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaikk\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"lysstyrke\",\n \"LOOKS_EFFECT_GHOST\": \"gjennomsiktig\",\n \"LOOKS_CHANGEEFFECTBY\": \"endra %1-effekten med %2\",\n \"LOOKS_SETEFFECTTO\": \"set %1-effekten til %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"ta vekk grafiske effektar\",\n \"LOOKS_CHANGESIZEBY\": \"endra storleik med %1\",\n \"LOOKS_SETSIZETO\": \"set storleik til %1 %\",\n \"LOOKS_SIZE\": \"storleik\",\n \"LOOKS_CHANGESTRETCHBY\": \"endra strekking med %1\",\n \"LOOKS_SETSTRETCHTO\": \"set strekking til %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"byt drakt til %1\",\n \"LOOKS_NEXTCOSTUME\": \"neste drakt\",\n \"LOOKS_SWITCHBACKDROPTO\": \"byt bakgrunn til %1\",\n \"LOOKS_GOTOFRONTBACK\": \"legg %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"framfor alt\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"bak alt\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"gå %1 %2 lag\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"framover\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"bakover\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"bakgrunn %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"drakt %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"tal\",\n \"LOOKS_NUMBERNAME_NAME\": \"namn\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"byt bakgrunn til %1 og vent\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"neste bakgrunn\",\n \"LOOKS_NEXTBACKDROP\": \"neste bakgrunn\",\n \"LOOKS_PREVIOUSBACKDROP\": \"førre bakgrunn\",\n \"LOOKS_RANDOMBACKDROP\": \"tilfeldig bakgrunn\",\n \"MOTION_MOVESTEPS\": \"gå %1 steg\",\n \"MOTION_TURNLEFT\": \"snu %1 %2 gradar\",\n \"MOTION_TURNRIGHT\": \"snu %1 %2 gradar\",\n \"MOTION_POINTINDIRECTION\": \"peik i retning %1\",\n \"MOTION_POINTTOWARDS\": \"peik mot %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"musepeikar\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"tilfeldig retning\",\n \"MOTION_GOTO\": \"gå til %1\",\n \"MOTION_GOTO_POINTER\": \"musepeikar\",\n \"MOTION_GOTO_RANDOM\": \"tilfeldig plassering\",\n \"MOTION_GOTOXY\": \"gå til x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"gli %1 sekund til x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"gli %1 sekund til %2\",\n \"MOTION_GLIDETO_POINTER\": \"musepeikar\",\n \"MOTION_GLIDETO_RANDOM\": \"tilfeldig plassering\",\n \"MOTION_CHANGEXBY\": \"endra x med %1\",\n \"MOTION_SETX\": \"set x til %1\",\n \"MOTION_CHANGEYBY\": \"endra y med %1\",\n \"MOTION_SETY\": \"set y til %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"viss ved kant, sprett\",\n \"MOTION_SETROTATIONSTYLE\": \"avgrens rotering til %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"venstre–høgre\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"ikkje roter\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"roter fritt\",\n \"MOTION_XPOSITION\": \"x-posisjon\",\n \"MOTION_YPOSITION\": \"y-posisjon\",\n \"MOTION_DIRECTION\": \"retning\",\n \"MOTION_SCROLLRIGHT\": \"rull til høgre %1\",\n \"MOTION_SCROLLUP\": \"rull opp %1\",\n \"MOTION_ALIGNSCENE\": \"flytt bakgrunn %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"nede til venstre\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"nede til høgre\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"i midten\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"oppe til venstre\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"oppe til høgre\",\n \"MOTION_XSCROLL\": \"rull x\",\n \"MOTION_YSCROLL\": \"rull y\",\n \"MOTION_STAGE_SELECTED\": \"Scene vald: ingen rørsleklossar\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 − %2\",\n \"OPERATORS_MULTIPLY\": \"%1 × %2\",\n \"OPERATORS_DIVIDE\": \"%1 : %2\",\n \"OPERATORS_RANDOM\": \"tilfeldig tal frå %1 til %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 og %2\",\n \"OPERATORS_OR\": \"%1 eller %2\",\n \"OPERATORS_NOT\": \"ikkje %1\",\n \"OPERATORS_JOIN\": \"set saman %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"eple\",\n \"OPERATORS_JOIN_BANANA\": \"banan\",\n \"OPERATORS_LETTEROF\": \"bokstav %1 i %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"e\",\n \"OPERATORS_LENGTH\": \"lengda til %1\",\n \"OPERATORS_CONTAINS\": \"%1 inneheld %2?\",\n \"OPERATORS_MOD\": \"%1 mod %2\",\n \"OPERATORS_ROUND\": \"rund av %1\",\n \"OPERATORS_MATHOP\": \"%1 av %2\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"golv\",\n \"OPERATORS_MATHOP_CEILING\": \"tak\",\n \"OPERATORS_MATHOP_SQRT\": \"kvadratrot\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"arcsin\",\n \"OPERATORS_MATHOP_ACOS\": \"arccos\",\n \"OPERATORS_MATHOP_ATAN\": \"arctan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e^\",\n \"OPERATORS_MATHOP_10EXP\": \"10^\",\n \"PROCEDURES_DEFINITION\": \"definer %1\",\n \"SENSING_TOUCHINGOBJECT\": \"rører %1\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"musepeikar\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"kant\",\n \"SENSING_TOUCHINGCOLOR\": \"rører fargen %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"fargen %1 rører %2?\",\n \"SENSING_DISTANCETO\": \"avstand til %1\",\n \"SENSING_DISTANCETO_POINTER\": \"musepeikar\",\n \"SENSING_ASKANDWAIT\": \"spør %1 og vent\",\n \"SENSING_ASK_TEXT\": \"Kva heiter du?\",\n \"SENSING_ANSWER\": \"svar\",\n \"SENSING_KEYPRESSED\": \"tasten %1 er trykt?\",\n \"SENSING_MOUSEDOWN\": \"museknappen er trykt?\",\n \"SENSING_MOUSEX\": \"mus x\",\n \"SENSING_MOUSEY\": \"mus y\",\n \"SENSING_SETDRAGMODE\": \"%1 å dra med musa\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"tillate\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"ikkje tillate\",\n \"SENSING_LOUDNESS\": \"lydstyrke\",\n \"SENSING_LOUD\": \"høg lyd?\",\n \"SENSING_TIMER\": \"sekundklokke\",\n \"SENSING_RESETTIMER\": \"nullstill klokka\",\n \"SENSING_OF\": \"%1 av %2\",\n \"SENSING_OF_XPOSITION\": \"x-posisjon\",\n \"SENSING_OF_YPOSITION\": \"y-posisjon\",\n \"SENSING_OF_DIRECTION\": \"retning\",\n \"SENSING_OF_COSTUMENUMBER\": \"drakt nr.\",\n \"SENSING_OF_COSTUMENAME\": \"draktnamn\",\n \"SENSING_OF_SIZE\": \"storleik\",\n \"SENSING_OF_VOLUME\": \"lydstyrke\",\n \"SENSING_OF_BACKDROPNUMBER\": \"bakgrunn nr.\",\n \"SENSING_OF_BACKDROPNAME\": \"bakgrunnsnamn\",\n \"SENSING_OF_STAGE\": \"Scene\",\n \"SENSING_CURRENT\": \"%1 nett no\",\n \"SENSING_CURRENT_YEAR\": \"året\",\n \"SENSING_CURRENT_MONTH\": \"månaden\",\n \"SENSING_CURRENT_DATE\": \"datoen\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"vekedagen\",\n \"SENSING_CURRENT_HOUR\": \"timen\",\n \"SENSING_CURRENT_MINUTE\": \"minuttet\",\n \"SENSING_CURRENT_SECOND\": \"sekundet\",\n \"SENSING_DAYSSINCE2000\": \"dagar sidan år 2000\",\n \"SENSING_USERNAME\": \"brukarnamn\",\n \"SENSING_USERID\": \"brukar-id\",\n \"SOUND_PLAY\": \"start lyden %1\",\n \"SOUND_PLAYUNTILDONE\": \"spel lyden %1 til han er ferdig\",\n \"SOUND_STOPALLSOUNDS\": \"stopp alle lydar\",\n \"SOUND_SETEFFECTO\": \"set %1-effekt til %2\",\n \"SOUND_CHANGEEFFECTBY\": \"endra %1-effekt med %2\",\n \"SOUND_CLEAREFFECTS\": \"fjern lydeffektar\",\n \"SOUND_EFFECTS_PITCH\": \"tonehøgd\",\n \"SOUND_EFFECTS_PAN\": \"venstre–høgre-panorering\",\n \"SOUND_CHANGEVOLUMEBY\": \"endra lydstyrken med %1\",\n \"SOUND_SETVOLUMETO\": \"set lydstyrken til %1 %\",\n \"SOUND_VOLUME\": \"lydstyrke\",\n \"SOUND_RECORD\": \"spel inn …\",\n \"CATEGORY_MOTION\": \"Rørsle\",\n \"CATEGORY_LOOKS\": \"Utsjånad\",\n \"CATEGORY_SOUND\": \"Lyd\",\n \"CATEGORY_EVENTS\": \"Hendingar\",\n \"CATEGORY_CONTROL\": \"Styring\",\n \"CATEGORY_SENSING\": \"Sansing\",\n \"CATEGORY_OPERATORS\": \"Operatorar\",\n \"CATEGORY_VARIABLES\": \"Variablar\",\n \"CATEGORY_MYBLOCKS\": \"Mine klossar\",\n \"DUPLICATE\": \"Lag ein kopi\",\n \"DELETE\": \"Slett\",\n \"ADD_COMMENT\": \"Skriv kommentar\",\n \"REMOVE_COMMENT\": \"Fjern kommentar\",\n \"DELETE_BLOCK\": \"Slett kloss\",\n \"DELETE_X_BLOCKS\": \"Slett %1 klossar\",\n \"DELETE_ALL_BLOCKS\": \"Vil du sletta alle %1 klossane?\",\n \"CLEAN_UP\": \"Rydd opp i klossar\",\n \"HELP\": \"Hjelp\",\n \"UNDO\": \"Angra\",\n \"REDO\": \"Gjer om\",\n \"EDIT_PROCEDURE\": \"Rediger\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Gå til definisjonen\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Sei noko …\",\n \"COLOUR_HUE_LABEL\": \"Farge\",\n \"COLOUR_SATURATION_LABEL\": \"Fargemetting\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Lysstyrke\",\n \"CHANGE_VALUE_TITLE\": \"Endra verdi:\",\n \"RENAME_VARIABLE\": \"Gje nytt namn\",\n \"RENAME_VARIABLE_TITLE\": \"Endra namnet på alle «%1»-variablane til:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Gje nytt namn\",\n \"NEW_VARIABLE\": \"Lag ein variabel\",\n \"NEW_VARIABLE_TITLE\": \"Namn på ny variabel:\",\n \"VARIABLE_MODAL_TITLE\": \"Ny variabel\",\n \"VARIABLE_ALREADY_EXISTS\": \"Det finst alt ein variabel som heiter «%1».\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Det finst alt ein variabel som heiter «%1», for ein annan variabel av type «%2».\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Vil du sletta %1 bruk av variabelen «%2»?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Kan ikkje sletta variabelen «%1», då han er del av definisjonen til funksjonen «%2».\",\n \"DELETE_VARIABLE\": \"Slett variabelen «%1»\",\n \"NEW_PROCEDURE\": \"Lag ein kloss\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Det finst alt ein prosedyre som heiter «%1».\",\n \"PROCEDURE_DEFAULT_NAME\": \"klossnamn\",\n \"NEW_LIST\": \"Lag ei liste\",\n \"NEW_LIST_TITLE\": \"Namn på ny liste:\",\n \"LIST_MODAL_TITLE\": \"Ny liste\",\n \"LIST_ALREADY_EXISTS\": \"Det finst alt ei liste som heiter «%1».\",\n \"RENAME_LIST_TITLE\": \"Endra namnet på alle «%1»-listene til:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Gje nytt namn\",\n \"DEFAULT_LIST_ITEM\": \"ting\",\n \"DELETE_LIST\": \"Slett lista «%1»\",\n \"RENAME_LIST\": \"Gje nytt namn\",\n \"NEW_BROADCAST_MESSAGE\": \"Ny melding\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Namn på ny melding:\",\n \"BROADCAST_MODAL_TITLE\": \"Ny melding\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"melding1\"\n};\n\nBlockly.ScratchMsgs.locales[\"uz\"] =\n{\n \"CONTROL_FOREVER\": \"har doim\",\n \"CONTROL_REPEAT\": \"%1 marta takrorlash\",\n \"CONTROL_IF\": \"agar %1 bo'lsa\",\n \"CONTROL_ELSE\": \"aks holda\",\n \"CONTROL_STOP\": \"to'xtatish\",\n \"CONTROL_STOP_ALL\": \"hammasini\",\n \"CONTROL_STOP_THIS\": \"bu skript\",\n \"CONTROL_STOP_OTHER\": \"boshqa spraytlardagi skriptlar\",\n \"CONTROL_WAIT\": \"%1 soniya kutish\",\n \"CONTROL_WAITUNTIL\": \"%1 gacha kutish\",\n \"CONTROL_REPEATUNTIL\": \"%1 gacha takrorlash\",\n \"CONTROL_WHILE\": \"%1 davomida\",\n \"CONTROL_FOREACH\": \"%2 dagi har bir %1 uchun \",\n \"CONTROL_STARTASCLONE\": \"nusxani qabul qilganda\",\n \"CONTROL_CREATECLONEOF\": \"%1 o'zidan nusxa yaratish\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"o'zini\",\n \"CONTROL_DELETETHISCLONE\": \"bu nusxani o'chirish\",\n \"CONTROL_COUNTER\": \"hisoblagich\",\n \"CONTROL_INCRCOUNTER\": \"hisoblagichni orttirish\",\n \"CONTROL_CLEARCOUNTER\": \"hisoblagichni yangilash\",\n \"CONTROL_ALLATONCE\": \"bir vaqtning o'zida\",\n \"DATA_SETVARIABLETO\": \"%1 ni %2 ga sozlash\",\n \"DATA_CHANGEVARIABLEBY\": \"%1 ni %2 ga o'zgartirish\",\n \"DATA_SHOWVARIABLE\": \"%1 o'zgaruvchini ko'rsatish\",\n \"DATA_HIDEVARIABLE\": \"%1 o'zgaruvchini yashirish\",\n \"DATA_ADDTOLIST\": \"%1 ni %2 ga qo'shish\",\n \"DATA_DELETEOFLIST\": \"%1 ni %2 dan o'chirish\",\n \"DATA_DELETEALLOFLIST\": \"%1 hammasini o'chirish\",\n \"DATA_INSERTATLIST\": \"%1 ni %2 dan %3 ga qo'shish\",\n \"DATA_REPLACEITEMOFLIST\": \"%2 ro'yxatning %1 chi mavzusini %3 ga o'zgartirish\",\n \"DATA_ITEMOFLIST\": \"%2 ro'yxatning %1 chi mavzusi\",\n \"DATA_ITEMNUMOFLIST\": \"%2 ro'yxatda %1 mavzuning joylashuvi\",\n \"DATA_LENGTHOFLIST\": \"uzunligidan %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 %2 ni ichiga oladimi?\",\n \"DATA_SHOWLIST\": \"%1 ro'yxatni ko'rsatish\",\n \"DATA_HIDELIST\": \"%1 ro'yxatni yashirish\",\n \"DATA_INDEX_ALL\": \"hammasi\",\n \"DATA_INDEX_LAST\": \"oxirgisi\",\n \"DATA_INDEX_RANDOM\": \"tasodifiy\",\n \"EVENT_WHENFLAGCLICKED\": \" %1 bosilganda\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"shu sprayt bosilganda\",\n \"EVENT_WHENSTAGECLICKED\": \"sahna bosilganda\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"shu sprayt %1 ga teginganda\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"%1 ga teginganda\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"%1 fon o'zgarganda\",\n \"EVENT_WHENGREATERTHAN\": \"%1 > %2 bo'lganda\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"taymer\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"tovush\",\n \"EVENT_BROADCAST\": \"%1 ni tarqatish\",\n \"EVENT_BROADCASTANDWAIT\": \"%1 ni tarqatib kutish\",\n \"EVENT_WHENKEYPRESSED\": \"%1 bosilganda\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"bo'sh joy\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"chap ko'rsatgich\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"o'ng ko'rsatgich\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"past ko'rsatgich\",\n \"EVENT_WHENKEYPRESSED_UP\": \"yuqori ko'rsatgich\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"ixtiyoriy boshqa\",\n \"LOOKS_SAYFORSECS\": \"%1 ni %2 soniya aytish\",\n \"LOOKS_SAY\": \"%1 aytish\",\n \"LOOKS_HELLO\": \"Salom!\",\n \"LOOKS_THINKFORSECS\": \"%1 ni %2 soniya o'ylash\",\n \"LOOKS_THINK\": \"%1 o'ylash\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"ko'rsatish\",\n \"LOOKS_HIDE\": \"yashirish\",\n \"LOOKS_HIDEALLSPRITES\": \"hamma spraytlarni yashirish\",\n \"LOOKS_EFFECT_COLOR\": \"rang\",\n \"LOOKS_EFFECT_FISHEYE\": \"baliq ko'zi\",\n \"LOOKS_EFFECT_WHIRL\": \"aylanish\",\n \"LOOKS_EFFECT_PIXELATE\": \"piksellashtirish\",\n \"LOOKS_EFFECT_MOSAIC\": \"mozayka\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"yorqinlik\",\n \"LOOKS_EFFECT_GHOST\": \"sharpa\",\n \"LOOKS_CHANGEEFFECTBY\": \"%1 effektni %2 ga o'zgartir\",\n \"LOOKS_SETEFFECTTO\": \"%1 effektni %2 ga sozlash\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"grafik effektlarni tozalsh\",\n \"LOOKS_CHANGESIZEBY\": \"o'lchamni %1 ga o'zgartir\",\n \"LOOKS_SETSIZETO\": \"o'lchamni %1 ga sozlash\",\n \"LOOKS_SIZE\": \"o'lcham\",\n \"LOOKS_CHANGESTRETCHBY\": \"uzunlikni %1 ga o'zgartir\",\n \"LOOKS_SETSTRETCHTO\": \"uzunlikni %1 ga sozlash\",\n \"LOOKS_SWITCHCOSTUMETO\": \"ko'rinishni %1 ga o'zgartir\",\n \"LOOKS_NEXTCOSTUME\": \"keyingi ko'rinish\",\n \"LOOKS_SWITCHBACKDROPTO\": \"fonni %1 ga o'zgartir\",\n \"LOOKS_GOTOFRONTBACK\": \"eng %1 ga o'tkazish\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"oldinga\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"orqaga\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"%1 ga %2 qatlam o'tkazish\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"oldinga\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"orqaga\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"fon %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"ko'rinish %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"raqam\",\n \"LOOKS_NUMBERNAME_NAME\": \"nomi\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"%1 fonga o'zgartirib kutish\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"keyingi fon\",\n \"LOOKS_NEXTBACKDROP\": \"keyingi fon\",\n \"LOOKS_PREVIOUSBACKDROP\": \"oldingi fon\",\n \"LOOKS_RANDOMBACKDROP\": \"tasodifiy fon\",\n \"MOTION_MOVESTEPS\": \"%1 qadam yurish\",\n \"MOTION_TURNLEFT\": \"%1 %2 darajaga burilish\",\n \"MOTION_TURNRIGHT\": \"%1 %2 darajaga burilish\",\n \"MOTION_POINTINDIRECTION\": \"%1 harakat yo'nalishi \",\n \"MOTION_POINTTOWARDS\": \"%1 tomonga qarash\",\n \"MOTION_POINTTOWARDS_POINTER\": \"sichqon-ko'rsatkichi\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"tasodifiy yo'nalish\",\n \"MOTION_GOTO\": \"%1 ga borish\",\n \"MOTION_GOTO_POINTER\": \"sichqon-ko'rsatkichi\",\n \"MOTION_GOTO_RANDOM\": \"tasodifiy joyi\",\n \"MOTION_GOTOXY\": \"x: %1 y: %2 ga borish\",\n \"MOTION_GLIDESECSTOXY\": \"%1 soniyada x: %2 y: %3 ga borish\",\n \"MOTION_GLIDETO\": \"%1 soniyada %2 ga borish\",\n \"MOTION_GLIDETO_POINTER\": \"sichqon-ko'rsatkichi\",\n \"MOTION_GLIDETO_RANDOM\": \"tasodifiy joy\",\n \"MOTION_CHANGEXBY\": \"X o'qini %1 ga o'zgartirish\",\n \"MOTION_SETX\": \"X o'qini %1 ga sozlash\",\n \"MOTION_CHANGEYBY\": \"Y o'qini %1 ga o'zgartirish\",\n \"MOTION_SETY\": \"Y o'qini %1 ga sozlash\",\n \"MOTION_IFONEDGEBOUNCE\": \"agar devorga urilsa qaytish\",\n \"MOTION_SETROTATIONSTYLE\": \"burilishni %1 ga sozlash\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"chapga-o'ngga \",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"aylanishni taqiqlash\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"aylanish\",\n \"MOTION_XPOSITION\": \"x koordinatasi\",\n \"MOTION_YPOSITION\": \"y koordinatasi\",\n \"MOTION_DIRECTION\": \"yo'nalish\",\n \"MOTION_SCROLLRIGHT\": \"%1 ni o'ngga olib kelish \",\n \"MOTION_SCROLLUP\": \"%1 yuqoriga olib kelish \",\n \"MOTION_ALIGNSCENE\": \"%1 ko'rinishni o'zgartirish\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"pastga-chapga\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"pastga-o'ngga \",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"o'rta\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"yuqori-chap\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"yuqori-o'ng\",\n \"MOTION_XSCROLL\": \"X yurguzish\",\n \"MOTION_YSCROLL\": \"Y yurguzish\",\n \"MOTION_STAGE_SELECTED\": \"Amallar bloklari\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"%1 dan %2 gacha taxminiy\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 va %2\",\n \"OPERATORS_OR\": \"%1 yoki %2\",\n \"OPERATORS_NOT\": \"%1 bo'lmasa\",\n \"OPERATORS_JOIN\": \"%1 va %2 ni qo'shish\",\n \"OPERATORS_JOIN_APPLE\": \"olma\",\n \"OPERATORS_JOIN_BANANA\": \"banan\",\n \"OPERATORS_LETTEROF\": \"%1 %2 xat\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"uzunligi %1\",\n \"OPERATORS_CONTAINS\": \"%1 tarkibida %2 mavjudmi?\",\n \"OPERATORS_MOD\": \"%1 mod %2\",\n \"OPERATORS_ROUND\": \"%1 atrofida\",\n \"OPERATORS_MATHOP\": \"%1 dan %2\",\n \"OPERATORS_MATHOP_ABS\": \"modul\",\n \"OPERATORS_MATHOP_FLOOR\": \"pol\",\n \"OPERATORS_MATHOP_CEILING\": \"ship\",\n \"OPERATORS_MATHOP_SQRT\": \"sqrt\",\n \"OPERATORS_MATHOP_SIN\": \"sinus qiymati\",\n \"OPERATORS_MATHOP_COS\": \"kosinus qiymati\",\n \"OPERATORS_MATHOP_TAN\": \"tan qiymati\",\n \"OPERATORS_MATHOP_ASIN\": \"asinus qiymati\",\n \"OPERATORS_MATHOP_ACOS\": \"akosinus qiymati\",\n \"OPERATORS_MATHOP_ATAN\": \"atan qiymati\",\n \"OPERATORS_MATHOP_LN\": \"Ichida\",\n \"OPERATORS_MATHOP_LOG\": \"logarifm\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"%1 ni belgilash\",\n \"SENSING_TOUCHINGOBJECT\": \"%1 ga teginganda\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"sichqon-ko'rsatkichi\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"qirra\",\n \"SENSING_TOUCHINGCOLOR\": \"%1 ga teginganda\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"%1 rang %2 rangga tegdimi?\",\n \"SENSING_DISTANCETO\": \"%1 gacha masofa\",\n \"SENSING_DISTANCETO_POINTER\": \"sichqon-ko'rsatkichi\",\n \"SENSING_ASKANDWAIT\": \"%1 ni so'rab kutish\",\n \"SENSING_ASK_TEXT\": \"Ismingiz nima?\",\n \"SENSING_ANSWER\": \"javob\",\n \"SENSING_KEYPRESSED\": \"%1 tugmasini bosdingizmi?\",\n \"SENSING_MOUSEDOWN\": \"Sichqonchani bosdingizmi?\",\n \"SENSING_MOUSEX\": \"sichiqoncha X koordinatasi\",\n \"SENSING_MOUSEY\": \"sichiqoncha Y koordinatasi\",\n \"SENSING_SETDRAGMODE\": \"Drag rejimni sudrab %1 ga sozlash\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"oladigan holat\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"bo'lmaydigan holat\",\n \"SENSING_LOUDNESS\": \"tovush\",\n \"SENSING_LOUD\": \"baland ovoz?\",\n \"SENSING_TIMER\": \"taymer\",\n \"SENSING_RESETTIMER\": \"taymerni qaytarish\",\n \"SENSING_OF\": \"%1 dan %2\",\n \"SENSING_OF_XPOSITION\": \"X koordinatasi\",\n \"SENSING_OF_YPOSITION\": \"Y koordinatasi\",\n \"SENSING_OF_DIRECTION\": \"yo'nalish\",\n \"SENSING_OF_COSTUMENUMBER\": \"kostyum #\",\n \"SENSING_OF_COSTUMENAME\": \"kostyum nomi\",\n \"SENSING_OF_SIZE\": \"o'lcham\",\n \"SENSING_OF_VOLUME\": \"ovoz\",\n \"SENSING_OF_BACKDROPNUMBER\": \"fonning soni\",\n \"SENSING_OF_BACKDROPNAME\": \"fonning nomi\",\n \"SENSING_OF_STAGE\": \"Sahna\",\n \"SENSING_CURRENT\": \"hozirgi %1\",\n \"SENSING_CURRENT_YEAR\": \"yil\",\n \"SENSING_CURRENT_MONTH\": \"oy\",\n \"SENSING_CURRENT_DATE\": \"sana\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"hafta kuni\",\n \"SENSING_CURRENT_HOUR\": \"soat\",\n \"SENSING_CURRENT_MINUTE\": \"daqiqa\",\n \"SENSING_CURRENT_SECOND\": \"soniya\",\n \"SENSING_DAYSSINCE2000\": \"2000-yildan keyingi kunlar\",\n \"SENSING_USERNAME\": \"foydalanuvchi ismi\",\n \"SENSING_USERID\": \"foydalanuvchi ID\",\n \"SOUND_PLAY\": \" %1 ni ijro etish\",\n \"SOUND_PLAYUNTILDONE\": \"%1 ni tugaguncha ijro etish\",\n \"SOUND_STOPALLSOUNDS\": \"hamma ovozlarni to'xtat\",\n \"SOUND_SETEFFECTO\": \"%1 effektni %2 ga sozlash\",\n \"SOUND_CHANGEEFFECTBY\": \"%1 effektni %2 ga o'zgartir\",\n \"SOUND_CLEAREFFECTS\": \"ovos effektini o'chirish\",\n \"SOUND_EFFECTS_PITCH\": \"ovoz balandligi\",\n \"SOUND_EFFECTS_PAN\": \"ovoz manzili o'ng-chap\",\n \"SOUND_CHANGEVOLUMEBY\": \"ovozni %1 ga o'zgartirish\",\n \"SOUND_SETVOLUMETO\": \"ovozni %1% ga sozlash\",\n \"SOUND_VOLUME\": \"ovoz\",\n \"SOUND_RECORD\": \"ovoz yozish\",\n \"CATEGORY_MOTION\": \"Harakatlar\",\n \"CATEGORY_LOOKS\": \"Ko'rinishlar\",\n \"CATEGORY_SOUND\": \"Ovozlar\",\n \"CATEGORY_EVENTS\": \"Hodisalar\",\n \"CATEGORY_CONTROL\": \"Boshqaruvchi\",\n \"CATEGORY_SENSING\": \"Sezgirlik\",\n \"CATEGORY_OPERATORS\": \"Amallar\",\n \"CATEGORY_VARIABLES\": \"O'zgaruvchi\",\n \"CATEGORY_MYBLOCKS\": \"Mening bloklarim\",\n \"DUPLICATE\": \"Nusxalash\",\n \"DELETE\": \"O'chirish\",\n \"ADD_COMMENT\": \"Izoh qo'shish\",\n \"REMOVE_COMMENT\": \"Izohni o'chirish\",\n \"DELETE_BLOCK\": \"Blokni o'chirish\",\n \"DELETE_X_BLOCKS\": \"%1 blokni o'chirish\",\n \"DELETE_ALL_BLOCKS\": \"%1 hamma bloklar o'chirilsinmi?\",\n \"CLEAN_UP\": \"Bloklarni tozalash\",\n \"HELP\": \"Yordam\",\n \"UNDO\": \"Bekor qilish\",\n \"REDO\": \"Qaytarish\",\n \"EDIT_PROCEDURE\": \"Oʻzgartirish\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Ta'rifga o'ting\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"biron nima aytish\",\n \"COLOUR_HUE_LABEL\": \"Rang\",\n \"COLOUR_SATURATION_LABEL\": \"To'yinganlik\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Yorqinlik \",\n \"CHANGE_VALUE_TITLE\": \"Qiymatni o'zgartirish:\",\n \"RENAME_VARIABLE\": \"O'zgaruvchini nomlash:\",\n \"RENAME_VARIABLE_TITLE\": \"%1 o'zgaruvchini qayta nomlash\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"O'zgaruvchini nomlash\",\n \"NEW_VARIABLE\": \"O'zgaruvchi yaratish\",\n \"NEW_VARIABLE_TITLE\": \"Yangi o'zgaruvchining nomi:\",\n \"VARIABLE_MODAL_TITLE\": \"Yangi o'zgaruvchi\",\n \"VARIABLE_ALREADY_EXISTS\": \"%1 nomli o'zgaruvchi mavjud\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"\\\"%2\\\" ko'rinish boshqa o'zgaruvchida \\\"%1\\\" o'zgaruvchida allaqachon mavjud\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"\\\"%2\\\" o'zgaruvchisi uchun \\\"%1\\\" ni o'chirmoqchimisiz?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"\\\"%1\\\" o'zgaruvchisini o'chirib bo'lmaydi, chunki u \\\"%2\\\" funksiyasining bir qismi\",\n \"DELETE_VARIABLE\": \"%1 o'zgaruvchini o'chirish\",\n \"NEW_PROCEDURE\": \"blok yaratish\",\n \"PROCEDURE_ALREADY_EXISTS\": \"\\\"%1\\\" usuli allaqachon mavjud\",\n \"PROCEDURE_DEFAULT_NAME\": \"blok nomi\",\n \"NEW_LIST\": \"Ro‘yxat tuzing\",\n \"NEW_LIST_TITLE\": \"Yangi ro'yxat nomi:\",\n \"LIST_MODAL_TITLE\": \"Yangi roʻyxat\",\n \"LIST_ALREADY_EXISTS\": \"\\\"%1\\\" ro'yxat nomi allaqachon mavjud\",\n \"RENAME_LIST_TITLE\": \"Barcha \\\"%1\\\" ro'yxatini qayta nomlash\",\n \"RENAME_LIST_MODAL_TITLE\": \"Ro'yxatni nomlash\",\n \"DEFAULT_LIST_ITEM\": \"narsa\",\n \"DELETE_LIST\": \"%1 ro'yxatni o'chirish\",\n \"RENAME_LIST\": \"ro'yxatni nomlash\",\n \"NEW_BROADCAST_MESSAGE\": \"Yangi xabar\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Yangi xabar nomi:\",\n \"BROADCAST_MODAL_TITLE\": \"Yangi xabar\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"xabar1\"\n};\n\nBlockly.ScratchMsgs.locales[\"th\"] =\n{\n \"CONTROL_FOREVER\": \"วนซ้ำตลอด\",\n \"CONTROL_REPEAT\": \"ทำซ้ำ %1\",\n \"CONTROL_IF\": \"ถ้า %1 แล้ว\",\n \"CONTROL_ELSE\": \"มิฉะนั้น\",\n \"CONTROL_STOP\": \"หยุด\",\n \"CONTROL_STOP_ALL\": \"ทั้งหมด\",\n \"CONTROL_STOP_THIS\": \"สคริปต์นี้\",\n \"CONTROL_STOP_OTHER\": \"สริปต์อื่นในตัวละคร\",\n \"CONTROL_WAIT\": \"รอ %1 วินาที\",\n \"CONTROL_WAITUNTIL\": \"รอจนกระทั่ง %1\",\n \"CONTROL_REPEATUNTIL\": \"ทำซ้ำจน %1\",\n \"CONTROL_WHILE\": \"ขณะที่ %1\",\n \"CONTROL_FOREACH\": \"สำหรับแต่ละ %1 ใน %2\",\n \"CONTROL_STARTASCLONE\": \"เมื่อฉันเริ่มในฐานะโคลน\",\n \"CONTROL_CREATECLONEOF\": \"สร้าง โคลน ของ %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"ตัวฉันเอง\",\n \"CONTROL_DELETETHISCLONE\": \"ลบโคลนตัวนี้\",\n \"CONTROL_COUNTER\": \"ตัวนับ\",\n \"CONTROL_INCRCOUNTER\": \"ตัวนับเพิ่ม\",\n \"CONTROL_CLEARCOUNTER\": \"ล้างตัวนับ\",\n \"CONTROL_ALLATONCE\": \"ทั้งหมดในครั้งเดียว\",\n \"DATA_SETVARIABLETO\": \"ตั้งค่า %1 เป็น %2\",\n \"DATA_CHANGEVARIABLEBY\": \"เปลี่ยน %1 ทีละ %2\",\n \"DATA_SHOWVARIABLE\": \"แสดงตัวแปร %1\",\n \"DATA_HIDEVARIABLE\": \"ซ่อนตัวแปร %1\",\n \"DATA_ADDTOLIST\": \"เพิ่ม %1 ไปยัง %2\",\n \"DATA_DELETEOFLIST\": \"ลบรายการที่ %1 ออกจาก %2\",\n \"DATA_DELETEALLOFLIST\": \"ลบทั้งหมดจาก %1\",\n \"DATA_INSERTATLIST\": \"แทรก %1 ที่ลำดับ %2 ของ %3\",\n \"DATA_REPLACEITEMOFLIST\": \"แทนที่รายการที่ %1 ของ %2 ด้วย %3\",\n \"DATA_ITEMOFLIST\": \"รายการที่ %1 ของ %2\",\n \"DATA_ITEMNUMOFLIST\": \" รายการ # ของ %1 จาก %2\",\n \"DATA_LENGTHOFLIST\": \"ความยาวของ %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 มี %2?\",\n \"DATA_SHOWLIST\": \"แสดงรายการ %1\",\n \"DATA_HIDELIST\": \"ซ่อนรายการ %1\",\n \"DATA_INDEX_ALL\": \"ทั้งหมด\",\n \"DATA_INDEX_LAST\": \"สุดท้าย\",\n \"DATA_INDEX_RANDOM\": \"สุ่ม\",\n \"EVENT_WHENFLAGCLICKED\": \"เมื่อคลิก %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"เมื่อตัวละครนี้ถูกคลิก\",\n \"EVENT_WHENSTAGECLICKED\": \"เมื่อคลิกเวที\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"เมื่อสไปรต์นี้แตะ %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"เมื่อฉันได้รับ %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"เมื่อฉากหลังเปลี่ยนเป็น %1\",\n \"EVENT_WHENGREATERTHAN\": \"เมื่อ %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"ตัวจับเวลา\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"ระดับความดัง\",\n \"EVENT_BROADCAST\": \"กระจาย %1\",\n \"EVENT_BROADCASTANDWAIT\": \"กระจาย %1 และรอ\",\n \"EVENT_WHENKEYPRESSED\": \"เมื่อกดปุ่ม %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"สเปซบาร์\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"ลูกศรชี้ทางซ้าย\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"ลูกศรชี้ขวา\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"ลูกศรชี้ลง\",\n \"EVENT_WHENKEYPRESSED_UP\": \"ลูกศรขึ้น\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"อะไรก็ได้\",\n \"LOOKS_SAYFORSECS\": \"พูด %1 %2 วินาที\",\n \"LOOKS_SAY\": \"พูด %1\",\n \"LOOKS_HELLO\": \"สวัสดี!\",\n \"LOOKS_THINKFORSECS\": \"คิด %1 %2 วินาที\",\n \"LOOKS_THINK\": \"คิด %1\",\n \"LOOKS_HMM\": \"อืมม...\",\n \"LOOKS_SHOW\": \"แสดง\",\n \"LOOKS_HIDE\": \"ซ่อน\",\n \"LOOKS_HIDEALLSPRITES\": \"ซ่อนสไปรต์ทั้งหมด\",\n \"LOOKS_EFFECT_COLOR\": \"สี\",\n \"LOOKS_EFFECT_FISHEYE\": \"ตาปลา\",\n \"LOOKS_EFFECT_WHIRL\": \"หมุนวน\",\n \"LOOKS_EFFECT_PIXELATE\": \"แยกพิกเซล\",\n \"LOOKS_EFFECT_MOSAIC\": \"โมเสก\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"ความสว่าง\",\n \"LOOKS_EFFECT_GHOST\": \"ล่องหน\",\n \"LOOKS_CHANGEEFFECTBY\": \"เปลี่ยนเอฟเฟกต์ %1 ทีละ %2\",\n \"LOOKS_SETEFFECTTO\": \"ตั้งค่าเอฟเฟกต์ %1 เป็น %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"ล้างเอฟเฟคภาพ\",\n \"LOOKS_CHANGESIZEBY\": \"เปลี่ยนขนาดทีละ %1\",\n \"LOOKS_SETSIZETO\": \"กำหนดขนาดเป็น %1 %\",\n \"LOOKS_SIZE\": \"ขนาด\",\n \"LOOKS_CHANGESTRETCHBY\": \"เปลี่ยนความยืดทีละ %1\",\n \"LOOKS_SETSTRETCHTO\": \"ตั้งค่าความยืดเป็น %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"เปลี่ยนคอสตูมเป็น %1\",\n \"LOOKS_NEXTCOSTUME\": \"ชุดถัดไป\",\n \"LOOKS_SWITCHBACKDROPTO\": \"เปลี่ยนฉากหลังเป็น %1\",\n \"LOOKS_GOTOFRONTBACK\": \"ไปที่ระดับ %1 \",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"หน้าสุด\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"หลังสุด\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"ไป %1 %2 ระดับ\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"ด้านหน้า\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"ด้านหลัง\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"ฉากหลัง %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"คอสตูม %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"หมายเลข\",\n \"LOOKS_NUMBERNAME_NAME\": \"ชื่อ\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"เปลี่ยนฉากหลังเป็น %1 และรอ\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"ฉากหลังต่อไป\",\n \"LOOKS_NEXTBACKDROP\": \"ฉากหลังต่อไป\",\n \"LOOKS_PREVIOUSBACKDROP\": \"ฉากหลังก่อนหน้า\",\n \"LOOKS_RANDOMBACKDROP\": \"ฉากหลังแบบสุ่ม\",\n \"MOTION_MOVESTEPS\": \"เคลื่อนที่ %1 ก้าว\",\n \"MOTION_TURNLEFT\": \"หัน %1 %2 องศา\",\n \"MOTION_TURNRIGHT\": \"หัน %1 %2 องศา\",\n \"MOTION_POINTINDIRECTION\": \"หันในทิศทาง %1\",\n \"MOTION_POINTTOWARDS\": \"หันไปทาง %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"ตัวชี้เมาส์\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"สุ่มทิศทาง\",\n \"MOTION_GOTO\": \"ไปที่ %1\",\n \"MOTION_GOTO_POINTER\": \"ตัวชี้เมาส์\",\n \"MOTION_GOTO_RANDOM\": \"ตำแหน่งสุ่ม\",\n \"MOTION_GOTOXY\": \"ไปที่ x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"เหิน %1 วินาที ไปยัง x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"เหิน %1 วินาที ไปยัง %2\",\n \"MOTION_GLIDETO_POINTER\": \"ตัวชี้เมาส์\",\n \"MOTION_GLIDETO_RANDOM\": \"ตำแหน่งสุ่ม\",\n \"MOTION_CHANGEXBY\": \"เปลี่ยน x ทีละ %1\",\n \"MOTION_SETX\": \"ตั้งค่า x เป็น %1\",\n \"MOTION_CHANGEYBY\": \"เปลี่ยน y ทีละ %1\",\n \"MOTION_SETY\": \"ตั้งค่า y เป็น %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"ถ้าชนขอบให้สะท้อนกลับ\",\n \"MOTION_SETROTATIONSTYLE\": \"ตั้งรูปแบบการหมุนเป็น %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"ซ้าย-ขวา\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"ห้ามหมุน\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"รอบด้าน\",\n \"MOTION_XPOSITION\": \"ตำแหน่ง x \",\n \"MOTION_YPOSITION\": \"ตำแหน่ง y\",\n \"MOTION_DIRECTION\": \"ทิศทาง\",\n \"MOTION_SCROLLRIGHT\": \"เลื่อนขวา %1\",\n \"MOTION_SCROLLUP\": \"เลื่อนขึ้น %1\",\n \"MOTION_ALIGNSCENE\": \"แนวฉาก %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"ล่างซ้าย\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"ล่างขวา\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"กึ่งกลาง\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"บนซ้าย\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"บนขวา\",\n \"MOTION_XSCROLL\": \"x เลื่อน\",\n \"MOTION_YSCROLL\": \"y เลื่อน\",\n \"MOTION_STAGE_SELECTED\": \"เลือกเวที: ไม่มีบล็อกเคลื่อนไหว\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"เลือกสุ่มจาก %1 ถึง %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 และ %2\",\n \"OPERATORS_OR\": \"%1 หรือ %2\",\n \"OPERATORS_NOT\": \"ไม่ %1\",\n \"OPERATORS_JOIN\": \"ต่อ %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"แอปเปิ้ล\",\n \"OPERATORS_JOIN_BANANA\": \"กล้วย\",\n \"OPERATORS_LETTEROF\": \"อักษรที่ %1 ของ %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"อ\",\n \"OPERATORS_LENGTH\": \"ความยาวของ %1\",\n \"OPERATORS_CONTAINS\": \"%1 มี %2?\",\n \"OPERATORS_MOD\": \"%1 หารเอาเศษ %2\",\n \"OPERATORS_ROUND\": \"ปัดเศษ %1\",\n \"OPERATORS_MATHOP\": \"%1 ของ %2\",\n \"OPERATORS_MATHOP_ABS\": \"ค่าสัมบูรณ์\",\n \"OPERATORS_MATHOP_FLOOR\": \"พื้น\",\n \"OPERATORS_MATHOP_CEILING\": \"เพดาน\",\n \"OPERATORS_MATHOP_SQRT\": \"รากที่สอง\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"กำหนด %1\",\n \"SENSING_TOUCHINGOBJECT\": \"แตะ %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"ตัวชี้เมาส์\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"ขอบ\",\n \"SENSING_TOUCHINGCOLOR\": \"แตะสี %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"สี %1 แตะกับสี %2?\",\n \"SENSING_DISTANCETO\": \"ระยะห่างไปยัง %1\",\n \"SENSING_DISTANCETO_POINTER\": \"ตัวชี้เมาส์\",\n \"SENSING_ASKANDWAIT\": \"ถาม %1 และรอ\",\n \"SENSING_ASK_TEXT\": \"คุณชื่ออะไร?\",\n \"SENSING_ANSWER\": \"คำตอบ\",\n \"SENSING_KEYPRESSED\": \"ปุ่ม %1 ถูกกด?\",\n \"SENSING_MOUSEDOWN\": \"เมาส์ถูกกด?\",\n \"SENSING_MOUSEX\": \"ตำแหน่ง x ของเมาส์\",\n \"SENSING_MOUSEY\": \"ตำแหน่ง y ของเมาส์\",\n \"SENSING_SETDRAGMODE\": \"ตั้งค่าโหมดลาก %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"ลากได้\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"ลากไม่ได้\",\n \"SENSING_LOUDNESS\": \"ระดับความดัง\",\n \"SENSING_LOUD\": \"เสียงดัง?\",\n \"SENSING_TIMER\": \"จับเวลา\",\n \"SENSING_RESETTIMER\": \"จับเวลาใหม่\",\n \"SENSING_OF\": \"%1 ของ %2\",\n \"SENSING_OF_XPOSITION\": \"ตำแหน่ง x \",\n \"SENSING_OF_YPOSITION\": \"ตำแหน่ง y\",\n \"SENSING_OF_DIRECTION\": \"ทิศทาง\",\n \"SENSING_OF_COSTUMENUMBER\": \"คอสตูม #\",\n \"SENSING_OF_COSTUMENAME\": \"ชื่อคอสตูม\",\n \"SENSING_OF_SIZE\": \"ขนาด\",\n \"SENSING_OF_VOLUME\": \"ระดับเสียง\",\n \"SENSING_OF_BACKDROPNUMBER\": \"ฉากหลัง #\",\n \"SENSING_OF_BACKDROPNAME\": \"ชื่อฉากหลัง\",\n \"SENSING_OF_STAGE\": \"เวที\",\n \"SENSING_CURRENT\": \"%1 ปัจจุบัน\",\n \"SENSING_CURRENT_YEAR\": \"ปี\",\n \"SENSING_CURRENT_MONTH\": \"เดือน\",\n \"SENSING_CURRENT_DATE\": \"วันที่\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"วันของสัปดาห์\",\n \"SENSING_CURRENT_HOUR\": \"ชั่วโมง\",\n \"SENSING_CURRENT_MINUTE\": \"นาที\",\n \"SENSING_CURRENT_SECOND\": \"วินาที\",\n \"SENSING_DAYSSINCE2000\": \"จำนวนวันตั้งแต่ปี ค.ศ 2000\",\n \"SENSING_USERNAME\": \"ชื่อผู้ใช้\",\n \"SENSING_USERID\": \"รหัสผู้ใช้\",\n \"SOUND_PLAY\": \"เริ่มเสียง %1\",\n \"SOUND_PLAYUNTILDONE\": \"เล่นเสียง %1 จนจบ\",\n \"SOUND_STOPALLSOUNDS\": \"หยุดเสียงทั้งหมด\",\n \"SOUND_SETEFFECTO\": \"ตั้งค่าเอฟเฟกต์ %1 เป็น %2\",\n \"SOUND_CHANGEEFFECTBY\": \"เปลี่ยนเอฟเฟกต์ %1 ทีละ %2\",\n \"SOUND_CLEAREFFECTS\": \"ล้างเอฟเฟกต์เสียง\",\n \"SOUND_EFFECTS_PITCH\": \"เสียงสูงต่ำ\",\n \"SOUND_EFFECTS_PAN\": \"แพนเสียงซ้าย/ขวา\",\n \"SOUND_CHANGEVOLUMEBY\": \"เปลี่ยนระดับเสียงทีละ %1\",\n \"SOUND_SETVOLUMETO\": \"ตั้งระดับเสียงเป็น %1%\",\n \"SOUND_VOLUME\": \"ระดับเสียง\",\n \"SOUND_RECORD\": \"อัดบันทึก...\",\n \"CATEGORY_MOTION\": \"เคลื่อนไหว\",\n \"CATEGORY_LOOKS\": \"รูปลักษณ์\",\n \"CATEGORY_SOUND\": \"เสียง\",\n \"CATEGORY_EVENTS\": \"เหตุการณ์\",\n \"CATEGORY_CONTROL\": \"ควบคุม\",\n \"CATEGORY_SENSING\": \"ตรวจจับ\",\n \"CATEGORY_OPERATORS\": \"ตัวดำเนินการ\",\n \"CATEGORY_VARIABLES\": \"ตัวแปร\",\n \"CATEGORY_MYBLOCKS\": \"บล็อกของฉัน\",\n \"DUPLICATE\": \"ทำซ้ำ\",\n \"DELETE\": \"ลบ\",\n \"ADD_COMMENT\": \"เพิ่มคำอธิบาย\",\n \"REMOVE_COMMENT\": \"ลบคำอธิบาย\",\n \"DELETE_BLOCK\": \"ลบบล็อก\",\n \"DELETE_X_BLOCKS\": \"ลบ %1 บล็อก\",\n \"DELETE_ALL_BLOCKS\": \"ลบทั้งหมด %1 บล็อก?\",\n \"CLEAN_UP\": \"จัดระเบียบบล็อก\",\n \"HELP\": \"ช่วยเหลือ\",\n \"UNDO\": \"ย้อนกลับ\",\n \"REDO\": \"ทำซ้ำ\",\n \"EDIT_PROCEDURE\": \"แก้ไข\",\n \"SHOW_PROCEDURE_DEFINITION\": \"ไปยังตัวกำหนด\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"พูดอะไรสักอย่าง...\",\n \"COLOUR_HUE_LABEL\": \"สี\",\n \"COLOUR_SATURATION_LABEL\": \"ความอิ่มตัว\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"ความสว่าง\",\n \"CHANGE_VALUE_TITLE\": \"เปลี่ยนค่า:\",\n \"RENAME_VARIABLE\": \"เปลี่ยนชื่อตัวแปร\",\n \"RENAME_VARIABLE_TITLE\": \"เปลี่ยนชื่อตัวแปร \\\"%1\\\" ทั้งหมดเป็น:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"เปลี่ยนชื่อตัวแปร\",\n \"NEW_VARIABLE\": \"สร้างตัวแปร\",\n \"NEW_VARIABLE_TITLE\": \"ชื่อตัวแปรใหม่:\",\n \"VARIABLE_MODAL_TITLE\": \"ตัวแปรใหม่\",\n \"VARIABLE_ALREADY_EXISTS\": \"มีตัวแปรชื่อ \\\"%1\\\" อยู่แล้ว\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"มีตัวแปรชื่อ \\\"%1\\\" อยู่แล้วสำหรับตัวแปรอื่นชนิด \\\"%2\\\"\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"ลบตัวแปร \\\"%2\\\" ซึ่งใช้อยู่ %1 ที่?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"ไม่สามารถลบตัวแปร \\\"%1\\\" ได้เนื่องจากเป็นส่วนหนึ่งของคำจำกัดความของฟังก์ชัน \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"ลบตัวแปร \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"สร้างบล็อกใหม่\",\n \"PROCEDURE_ALREADY_EXISTS\": \"มีขั้นตอนชื่อ \\\"%1\\\" อยู่แล้ว\",\n \"PROCEDURE_DEFAULT_NAME\": \"ชื่อบล็อก\",\n \"NEW_LIST\": \"สร้างรายการ\",\n \"NEW_LIST_TITLE\": \"ชื่อรายการ:\",\n \"LIST_MODAL_TITLE\": \"รายการใหม่\",\n \"LIST_ALREADY_EXISTS\": \"มีรายการชื่อ \\\"%1\\\" อยู่แล้ว\",\n \"RENAME_LIST_TITLE\": \"เปลี่ยนชื่อรายการ \\\"%1\\\" ทั้งหมดเป็น:\",\n \"RENAME_LIST_MODAL_TITLE\": \"เปลี่ยนชื่อรายการ\",\n \"DEFAULT_LIST_ITEM\": \"สิ่ง\",\n \"DELETE_LIST\": \"ลบรายชื่อ \\\"%1\\\"\",\n \"RENAME_LIST\": \"เปลี่ยนชื่อรายชื่อ\",\n \"NEW_BROADCAST_MESSAGE\": \"ข้อความใหม่\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"ชื่อข้อความใหม่:\",\n \"BROADCAST_MODAL_TITLE\": \"ข้อความใหม่\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"ข้อความ1\"\n};\n\nBlockly.ScratchMsgs.locales[\"km\"] =\n{\n \"CONTROL_FOREVER\": \"រហូត\",\n \"CONTROL_REPEAT\": \"ធ្វើដដែលៗ %1 ដង\",\n \"CONTROL_IF\": \"ប្រសិន %1 នោះ\",\n \"CONTROL_ELSE\": \"បើមិនដូច្នោះទេ\",\n \"CONTROL_STOP\": \"ឈប់\",\n \"CONTROL_STOP_ALL\": \"ទាំងអស់\",\n \"CONTROL_STOP_THIS\": \"ស្គ្រីបនេះ\",\n \"CONTROL_STOP_OTHER\": \"ស្រ្គីបផ្សេងទៀតក្នុងតួអង្គ\",\n \"CONTROL_WAIT\": \"ចាំ %1 វិនាទី\",\n \"CONTROL_WAITUNTIL\": \"ចាំរហូតដល់ %1\",\n \"CONTROL_REPEATUNTIL\": \"ធ្វើដដែលៗរហូតដល់ %1\",\n \"CONTROL_WHILE\": \"ខណៈពេល %1\",\n \"CONTROL_FOREACH\": \"សម្រាប់ %1 នីមួយៗ ក្នុង %2\",\n \"CONTROL_STARTASCLONE\": \"ពេលខ្ញុំចាប់ផ្តើមជារូបចម្លង\",\n \"CONTROL_CREATECLONEOF\": \"ចម្លងរូបរាងនៃ %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"ខ្លួនឯង\",\n \"CONTROL_DELETETHISCLONE\": \"លុបរូបចម្លងនេះ\",\n \"CONTROL_COUNTER\": \"លេខរាប់\",\n \"CONTROL_INCRCOUNTER\": \"បង្កើនលេខរាប់\",\n \"CONTROL_CLEARCOUNTER\": \"លុបលេខរាប់\",\n \"CONTROL_ALLATONCE\": \"ម្តងទាំងអស់\",\n \"DATA_SETVARIABLETO\": \"ដាក់ %1 ទៅជា %2\",\n \"DATA_CHANGEVARIABLEBY\": \"ប្តូរ %1 ចំនួន %2\",\n \"DATA_SHOWVARIABLE\": \"បង្ហាញអថេរ %1\",\n \"DATA_HIDEVARIABLE\": \"លាក់អថេរ %1\",\n \"DATA_ADDTOLIST\": \"បន្ថែម %1 ទៅលើ %2\",\n \"DATA_DELETEOFLIST\": \"លុបធាតុទី %1 ចេញពី %2\",\n \"DATA_DELETEALLOFLIST\": \"លុបធាតុទាំងអស់ក្នុង %1\",\n \"DATA_INSERTATLIST\": \"បញ្ចូល %1 នៅទីតាំង %2 ក្នុង %3\",\n \"DATA_REPLACEITEMOFLIST\": \"ជំនួសធាតុ %1 នៃ %2 ដោយ %3\",\n \"DATA_ITEMOFLIST\": \"ធាតុ %1 នៃ %2\",\n \"DATA_ITEMNUMOFLIST\": \"លេខទីតាំងនៃធាតុ %1 ក្នុង %2\",\n \"DATA_LENGTHOFLIST\": \"ប្រវែងនៃ %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 មាន %2?\",\n \"DATA_SHOWLIST\": \"បង្ហាញបញ្ជី %1\",\n \"DATA_HIDELIST\": \"លាក់បញ្ជី %1\",\n \"DATA_INDEX_ALL\": \"ទាំងអស់\",\n \"DATA_INDEX_LAST\": \"ចុងក្រោយ\",\n \"DATA_INDEX_RANDOM\": \"ចៃដន្យ\",\n \"EVENT_WHENFLAGCLICKED\": \"ពេលចុច %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"ពេលចុចតួអង្គ\",\n \"EVENT_WHENSTAGECLICKED\": \"ពេលចុចឆាក\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"នៅពេលតួអង្គនេះប៉ះ %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"ពេលខ្ញុំទទួលបាន %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"ពេលផ្ទាំងខាងក្រោយប្តូរទៅជា %1\",\n \"EVENT_WHENGREATERTHAN\": \"ពេល %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"ម៉ោងរាប់ថយក្រោយ\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"កម្រិតឮ\",\n \"EVENT_BROADCAST\": \"បញ្ជូនសារ %1\",\n \"EVENT_BROADCASTANDWAIT\": \"បញ្ជូនសារ %1 ហើយចាំ\",\n \"EVENT_WHENKEYPRESSED\": \"ពេលចុច %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"ច្នុចដក​ឃ្លា\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"ព្រួញខាង​ឆ្វេង\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"ព្រួញខាង​ស្ដាំ\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"ព្រួញខាងក្រោម\",\n \"EVENT_WHENKEYPRESSED_UP\": \"ព្រួញ​ខាង​លើ\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"ណាមួយ\",\n \"LOOKS_SAYFORSECS\": \"និយាយ %1 រយៈពេល %2 វិនាទី\",\n \"LOOKS_SAY\": \"និយាយ %1\",\n \"LOOKS_HELLO\": \"សួស្តី!\",\n \"LOOKS_THINKFORSECS\": \"គិត %1 រយៈពេល %2 វិនាទី\",\n \"LOOKS_THINK\": \"គិត %1\",\n \"LOOKS_HMM\": \"អឺ...\",\n \"LOOKS_SHOW\": \"បង្ហាញ\",\n \"LOOKS_HIDE\": \"លាក់\",\n \"LOOKS_HIDEALLSPRITES\": \"លាក់តួអង្គទាំងអស់\",\n \"LOOKS_EFFECT_COLOR\": \"ពណ៌\",\n \"LOOKS_EFFECT_FISHEYE\": \"fisheye\",\n \"LOOKS_EFFECT_WHIRL\": \"whirl\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixelate\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaic\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"កម្រិតពន្លឺ\",\n \"LOOKS_EFFECT_GHOST\": \"ghost\",\n \"LOOKS_CHANGEEFFECTBY\": \"ប្តូរបែបផែន %1 ចំនួន %2\",\n \"LOOKS_SETEFFECTTO\": \"ដាក់បែបផែន %1 ត្រឹម %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"លុបបែបផែនក្រាហ្វិក\",\n \"LOOKS_CHANGESIZEBY\": \"ប្តូរទំហំចំនួន %1\",\n \"LOOKS_SETSIZETO\": \"ដាក់ទំហំត្រឹម %1 %\",\n \"LOOKS_SIZE\": \"ទំហំ\",\n \"LOOKS_CHANGESTRETCHBY\": \"ប្តូរកម្រិតយឺតចំនួន %1\",\n \"LOOKS_SETSTRETCHTO\": \"ដាក់កម្រិតយឺតត្រឹម %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"ប្តូររូបរាងទៅជា %1\",\n \"LOOKS_NEXTCOSTUME\": \"រូបរាងបន្ទាប់\",\n \"LOOKS_SWITCHBACKDROPTO\": \"ប្ដូរផ្ទាំង​ខាងក្រោយ​ទៅជា %1\",\n \"LOOKS_GOTOFRONTBACK\": \"ទៅស្រទាប់ %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"មុខ\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"ក្រោយ\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"%1 %2 ស្រទាប់\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"ទៅមុខ\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"ថយក្រោយ\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"ផ្ទាំងខាងក្រោយ %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"រូបរាង %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"លេខ\",\n \"LOOKS_NUMBERNAME_NAME\": \"ឈ្មោះ\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"ប្ដូរផ្ទាំងខាង​ក្រោយ​ទៅជា %1 ហើយ​រងចាំ\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"ផ្ទាំងខាងក្រោយបន្ទាប់\",\n \"LOOKS_NEXTBACKDROP\": \"ផ្ទាំងខាងក្រោយបន្ទាប់\",\n \"LOOKS_PREVIOUSBACKDROP\": \"ផ្ទាំងខាងក្រោយមុន\",\n \"LOOKS_RANDOMBACKDROP\": \"ផ្ទាំងខាងក្រោយចៃដន្យ\",\n \"MOTION_MOVESTEPS\": \"ផ្លាស់ទី %1 ជំហាន\",\n \"MOTION_TURNLEFT\": \"បង្វិល %1 %2 ដឺក្រេ\",\n \"MOTION_TURNRIGHT\": \"បង្វិល %1 %2 ដឺក្រេ\",\n \"MOTION_POINTINDIRECTION\": \"ចង្អុលទៅទិសដៅ %1\",\n \"MOTION_POINTTOWARDS\": \"ចង្អុលទៅ %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"ព្រួញម៉ៅស៍\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"ទិសដៅចៃដន្យ\",\n \"MOTION_GOTO\": \"ទៅកាន់ %1\",\n \"MOTION_GOTO_POINTER\": \"ព្រួញម៉ៅស៍\",\n \"MOTION_GOTO_RANDOM\": \"ទីតាំង​ចៃ​ដន្យ\",\n \"MOTION_GOTOXY\": \"ទៅកាន់ x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"រំកិល %1 វិនាទី ទៅ x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"រំកិល %1 វិនាទី ទៅ %2\",\n \"MOTION_GLIDETO_POINTER\": \"ព្រួញម៉ៅស៍\",\n \"MOTION_GLIDETO_RANDOM\": \"ទីតាំង​ចៃ​ដន្យ\",\n \"MOTION_CHANGEXBY\": \"ប្តូរ x ចំនួន %1\",\n \"MOTION_SETX\": \"ដាក់ x ត្រឹម %1\",\n \"MOTION_CHANGEYBY\": \"ប្តូរ y ចំនួន %1\",\n \"MOTION_SETY\": \"ដាក់ y ត្រឹម %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"បើនៅគែមឆាក, អោយខ្ទាតចេញ\",\n \"MOTION_SETROTATIONSTYLE\": \"ដាក់ស្តាយបង្វិល %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"ឆ្វេង-ស្តាំ\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"កុំ​បង្វិល\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"ពេលមួយជុំ\",\n \"MOTION_XPOSITION\": \"ទីតាំង x\",\n \"MOTION_YPOSITION\": \"ទីតាំង y\",\n \"MOTION_DIRECTION\": \"ទិសដៅ\",\n \"MOTION_SCROLLRIGHT\": \"រមូរស្តាំ %1\",\n \"MOTION_SCROLLUP\": \"រមូរឡើងលើ %1\",\n \"MOTION_ALIGNSCENE\": \"តម្រឹមឈុត %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"ក្រោម-ឆ្វេង\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"ក្រោម-ស្តាំ\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"កណ្តាល\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"លើ-ឆ្វេង\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"លើ-ស្តាំ\",\n \"MOTION_XSCROLL\": \"រមូរ x\",\n \"MOTION_YSCROLL\": \"រមូរ y\",\n \"MOTION_STAGE_SELECTED\": \"អ្នកបានជ្រើសឆាក។ មិនមានប្លុកចលនាទេ\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"យកតម្លៃចៃដន្យពី %1 ទៅ %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 និង %2\",\n \"OPERATORS_OR\": \"%1 ឬ %2\",\n \"OPERATORS_NOT\": \"មិនមែន %1\",\n \"OPERATORS_JOIN\": \"ភ្ជាប់ %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"apple\",\n \"OPERATORS_JOIN_BANANA\": \"banana\",\n \"OPERATORS_LETTEROF\": \"តួអក្សរទី %1 នៃ %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"ប្រវែងនៃ %1\",\n \"OPERATORS_CONTAINS\": \"%1 មាន %2?\",\n \"OPERATORS_MOD\": \"សំណល់នៃ %1 ចែកនឹង %2\",\n \"OPERATORS_ROUND\": \"បង្គត់ %1\",\n \"OPERATORS_MATHOP\": \"%1 នៃ %2\",\n \"OPERATORS_MATHOP_ABS\": \"តម្លៃដាច់ខាត\",\n \"OPERATORS_MATHOP_FLOOR\": \"បង្គត់ចុះ\",\n \"OPERATORS_MATHOP_CEILING\": \"បង្គត់ឡើង\",\n \"OPERATORS_MATHOP_SQRT\": \"ឫស​ការ៉េ\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"កំណត់ន័យ %1\",\n \"SENSING_TOUCHINGOBJECT\": \"ប៉ះ %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"ព្រួញម៉ៅស៍\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"គែម\",\n \"SENSING_TOUCHINGCOLOR\": \"ប៉ះពណ៌ %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"ពណ៌ %1 ប៉ះ %2?\",\n \"SENSING_DISTANCETO\": \"ចម្ងាយពី %1\",\n \"SENSING_DISTANCETO_POINTER\": \"ព្រួញម៉ៅស៍\",\n \"SENSING_ASKANDWAIT\": \"សួរ %1 ហើយចាំ\",\n \"SENSING_ASK_TEXT\": \"តើអ្នកឈ្មោះអ្វី?\",\n \"SENSING_ANSWER\": \"ចម្លើយ\",\n \"SENSING_KEYPRESSED\": \"ច្នុច %1 ត្រូវបានចុច?\",\n \"SENSING_MOUSEDOWN\": \"ចុចម៉ៅស៍?\",\n \"SENSING_MOUSEX\": \"ទីតាំងព្រួញម៉ៅស៍ x\",\n \"SENSING_MOUSEY\": \"ទីតាំងព្រួញម៉ៅស៍ y\",\n \"SENSING_SETDRAGMODE\": \"ដាក់ម៉ូតអូស %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"អាចអូសបាន\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"មិនអាចអូសបាន\",\n \"SENSING_LOUDNESS\": \"កម្រិតឮ\",\n \"SENSING_LOUD\": \"លឺ?\",\n \"SENSING_TIMER\": \"ម៉ោងរាប់ថយក្រោយ\",\n \"SENSING_RESETTIMER\": \"កំណត់ម៉ោងរាប់ថយក្រោយឡើងវិញ\",\n \"SENSING_OF\": \"%1 នៃ %2\",\n \"SENSING_OF_XPOSITION\": \"ទីតាំង x \",\n \"SENSING_OF_YPOSITION\": \"ទីតាំង y\",\n \"SENSING_OF_DIRECTION\": \"ទិសដៅ\",\n \"SENSING_OF_COSTUMENUMBER\": \"រូបរាង #\",\n \"SENSING_OF_COSTUMENAME\": \"ឈ្មោះរូបរាង\",\n \"SENSING_OF_SIZE\": \"ទំហំ\",\n \"SENSING_OF_VOLUME\": \"កម្រិតសម្លេង\",\n \"SENSING_OF_BACKDROPNUMBER\": \"ផ្ទាំងខាងក្រោយ #\",\n \"SENSING_OF_BACKDROPNAME\": \"ឈ្មោះផ្ទាំងខាងក្រោយ\",\n \"SENSING_OF_STAGE\": \"ឆាក\",\n \"SENSING_CURRENT\": \"%1 បច្ចុប្បន្ន\",\n \"SENSING_CURRENT_YEAR\": \"ឆ្នាំ\",\n \"SENSING_CURRENT_MONTH\": \"ខែ\",\n \"SENSING_CURRENT_DATE\": \"ថ្ងៃខែ\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"ថ្ងៃប្រចាំសប្តាហ៍\",\n \"SENSING_CURRENT_HOUR\": \"ម៉ោង\",\n \"SENSING_CURRENT_MINUTE\": \"នាទី\",\n \"SENSING_CURRENT_SECOND\": \"វិនាទី\",\n \"SENSING_DAYSSINCE2000\": \"ចំនួនថ្ងៃចាប់ពីឆ្នាំ 2000\",\n \"SENSING_USERNAME\": \"ឈ្មោះគណនី\",\n \"SENSING_USERID\": \"លេខសម្គាល់អ្នកប្រើ\",\n \"SOUND_PLAY\": \"ផ្តើមសម្លេង %1\",\n \"SOUND_PLAYUNTILDONE\": \"លេងសម្លេង %1 រហូតដល់ចប់\",\n \"SOUND_STOPALLSOUNDS\": \"បញ្ឈប់សម្លេងទាំងអស់\",\n \"SOUND_SETEFFECTO\": \"ដាក់បែបផែន %1 ត្រឹម %2\",\n \"SOUND_CHANGEEFFECTBY\": \"ប្តូរបែបផែន %1 ចំនួន %2\",\n \"SOUND_CLEAREFFECTS\": \"លុបបែបផែនសម្លេង\",\n \"SOUND_EFFECTS_PITCH\": \"កម្រិតខ្ពស់ទាប\",\n \"SOUND_EFFECTS_PAN\": \"កម្រិតឆ្វេងស្តាំ\",\n \"SOUND_CHANGEVOLUMEBY\": \"ប្តូរកម្រិតសម្លេងចំនួន %1\",\n \"SOUND_SETVOLUMETO\": \"ដាក់កម្រិតសម្លេងត្រឹម %1%\",\n \"SOUND_VOLUME\": \"កម្រិតសម្លេង\",\n \"SOUND_RECORD\": \"ថតសម្លេង...\",\n \"CATEGORY_MOTION\": \"ចលនា\",\n \"CATEGORY_LOOKS\": \"រូបរាង\",\n \"CATEGORY_SOUND\": \"សម្លេង\",\n \"CATEGORY_EVENTS\": \"ព្រឹត្តិការណ៍\",\n \"CATEGORY_CONTROL\": \"គ្រប់គ្រង\",\n \"CATEGORY_SENSING\": \"ញ្ញាណ\",\n \"CATEGORY_OPERATORS\": \"ប្រមាណវិធី\",\n \"CATEGORY_VARIABLES\": \"អថេរ\",\n \"CATEGORY_MYBLOCKS\": \"ប្លុកខ្ញុំ\",\n \"DUPLICATE\": \"ចម្លង\",\n \"DELETE\": \"លុប\",\n \"ADD_COMMENT\": \"ដាក់មតិ\",\n \"REMOVE_COMMENT\": \"លុបមតិ\",\n \"DELETE_BLOCK\": \"លុបប្លុក\",\n \"DELETE_X_BLOCKS\": \"លុបប្លុក %1\",\n \"DELETE_ALL_BLOCKS\": \"លុបប្លុកទាំង %1?\",\n \"CLEAN_UP\": \"រៀបរយប្លុក\",\n \"HELP\": \"ជំនួយ\",\n \"UNDO\": \"មិនធ្វើវិញ\",\n \"REDO\": \"ធ្វើឡើងវិញ\",\n \"EDIT_PROCEDURE\": \"កែសម្រួល\",\n \"SHOW_PROCEDURE_DEFINITION\": \"ទៅកាន់និយមន័យ\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"និយាយអ្វីមួយ...\",\n \"COLOUR_HUE_LABEL\": \"ពណ៌\",\n \"COLOUR_SATURATION_LABEL\": \"កម្រិតដិត\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"កម្រិតពន្លឺ\",\n \"CHANGE_VALUE_TITLE\": \"ប្តូរតម្លៃ៖\",\n \"RENAME_VARIABLE\": \"កែឈ្មោះអថេរ\",\n \"RENAME_VARIABLE_TITLE\": \"កែឈ្មោះអថេរ \\\"%1\\\" ទាំងអស់ទៅជា៖\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"កែឈ្មោះអថេរ\",\n \"NEW_VARIABLE\": \"បង្កើតអថេរ\",\n \"NEW_VARIABLE_TITLE\": \"ឈ្មោះអថេរថ្មី ៖\",\n \"VARIABLE_MODAL_TITLE\": \"អថេរថ្មី\",\n \"VARIABLE_ALREADY_EXISTS\": \"អថេរឈ្មោះ \\\"%1\\\" មានរួចហើយ\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"អថេរឈ្មោះ \\\"%1\\\" មានរួចហើយសម្រាប់អថេរប្រភេទ \\\"%2\\\"។\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"លុបអថេរ \\\"%2\\\" និងការប្រើប្រាស់ %1 ដងរបស់វា?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"មិនអាចលុបអថេរ \\\"%1\\\" ទេព្រោះវាទាក់ទងនឹងអនុគមន៍ \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"លុបអថេរ \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"បង្កើតប្លុកមួយ\",\n \"PROCEDURE_ALREADY_EXISTS\": \"ដំណាក់កាលឈ្មោះ \\\"%1\\\" មានរួចហើយ។\",\n \"PROCEDURE_DEFAULT_NAME\": \"ឈ្មោះប្លុក\",\n \"NEW_LIST\": \"បង្កើតបញ្ជី\",\n \"NEW_LIST_TITLE\": \"ឈ្មោះបញ្ជីថ្មី៖\",\n \"LIST_MODAL_TITLE\": \"បញ្ជីថ្មី\",\n \"LIST_ALREADY_EXISTS\": \"បញ្ជីឈ្មោះ \\\"%1\\\" មានរួចហើយ។\",\n \"RENAME_LIST_TITLE\": \"កែឈ្មោះបញ្ជី \\\"%1\\\" ទាំងអស់ទៅជា៖\",\n \"RENAME_LIST_MODAL_TITLE\": \"កែឈ្មោះបញ្ជី\",\n \"DEFAULT_LIST_ITEM\": \"វត្ថុ\",\n \"DELETE_LIST\": \"លុបបញ្ជី \\\"%1\\\"\",\n \"RENAME_LIST\": \"កែឈ្មោះបញ្ជី\",\n \"NEW_BROADCAST_MESSAGE\": \"សារថ្មី\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"ឈ្មោះសារថ្មី៖\",\n \"BROADCAST_MODAL_TITLE\": \"សារថ្មី\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"សារ 1\"\n};\n\nBlockly.ScratchMsgs.locales[\"pl\"] =\n{\n \"CONTROL_FOREVER\": \"zawsze\",\n \"CONTROL_REPEAT\": \"powtarzaj %1\",\n \"CONTROL_IF\": \"jeżeli %1 to\",\n \"CONTROL_ELSE\": \"w przeciwnym razie\",\n \"CONTROL_STOP\": \"zatrzymaj\",\n \"CONTROL_STOP_ALL\": \"wszystko\",\n \"CONTROL_STOP_THIS\": \"ten skrypt\",\n \"CONTROL_STOP_OTHER\": \"inne skrypty duszka\",\n \"CONTROL_WAIT\": \"czekaj %1 sekund\",\n \"CONTROL_WAITUNTIL\": \"czekaj aż %1\",\n \"CONTROL_REPEATUNTIL\": \"powtarzaj aż %1\",\n \"CONTROL_WHILE\": \"podczas gdy %1\",\n \"CONTROL_FOREACH\": \"dla każdego %1 z %2\",\n \"CONTROL_STARTASCLONE\": \"gdy zaczynam jako klon\",\n \"CONTROL_CREATECLONEOF\": \"utwórz klona z %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"siebie\",\n \"CONTROL_DELETETHISCLONE\": \"usuń tego klona\",\n \"CONTROL_COUNTER\": \"licznik\",\n \"CONTROL_INCRCOUNTER\": \"zwiększ licznik\",\n \"CONTROL_CLEARCOUNTER\": \"zeruj licznik\",\n \"CONTROL_ALLATONCE\": \"wszystko na raz\",\n \"DATA_SETVARIABLETO\": \"ustaw %1 na %2\",\n \"DATA_CHANGEVARIABLEBY\": \"zmień %1 o %2\",\n \"DATA_SHOWVARIABLE\": \"pokaż zmienną %1\",\n \"DATA_HIDEVARIABLE\": \"ukryj zmienną %1\",\n \"DATA_ADDTOLIST\": \"dodaj %1 do %2\",\n \"DATA_DELETEOFLIST\": \"usuń %1 z %2\",\n \"DATA_DELETEALLOFLIST\": \"usuń wszystko z %1\",\n \"DATA_INSERTATLIST\": \"wstaw %1 na %2 pozycji z %3\",\n \"DATA_REPLACEITEMOFLIST\": \"zamień %1 z %2 na %3\",\n \"DATA_ITEMOFLIST\": \"element %1 z %2\",\n \"DATA_ITEMNUMOFLIST\": \"pozycja %1 na liście %2\",\n \"DATA_LENGTHOFLIST\": \"długość %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 zawiera %2?\",\n \"DATA_SHOWLIST\": \"pokaż listę %1\",\n \"DATA_HIDELIST\": \"ukryj listę %1\",\n \"DATA_INDEX_ALL\": \"wszystko\",\n \"DATA_INDEX_LAST\": \"ostatni\",\n \"DATA_INDEX_RANDOM\": \"losowa\",\n \"EVENT_WHENFLAGCLICKED\": \"kiedy %1 kliknięty\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"kiedy ten duszek kliknięty\",\n \"EVENT_WHENSTAGECLICKED\": \"kiedy scena kliknięta\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"kiedy ten duszek dotknie %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"kiedy otrzymam %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"kiedy tło zmieni się na %1\",\n \"EVENT_WHENGREATERTHAN\": \"kiedy %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"stoper\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"głośność\",\n \"EVENT_BROADCAST\": \"nadaj komunikat %1\",\n \"EVENT_BROADCASTANDWAIT\": \"nadaj komunikat %1 i czekaj\",\n \"EVENT_WHENKEYPRESSED\": \"kiedy klawisz %1 naciśnięty\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"spacja\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"strzałka w lewo\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"strzałka w prawo\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"strzałka w dół\",\n \"EVENT_WHENKEYPRESSED_UP\": \"strzałka w górę\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"dowolny\",\n \"LOOKS_SAYFORSECS\": \"powiedz %1 przez %2 sekund\",\n \"LOOKS_SAY\": \"powiedz %1\",\n \"LOOKS_HELLO\": \"Cześć!\",\n \"LOOKS_THINKFORSECS\": \"pomyśl %1 przez %2 sekund\",\n \"LOOKS_THINK\": \"pomyśl %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"pokaż\",\n \"LOOKS_HIDE\": \"ukryj\",\n \"LOOKS_HIDEALLSPRITES\": \"ukryj wszystkie duszki\",\n \"LOOKS_EFFECT_COLOR\": \"kolor\",\n \"LOOKS_EFFECT_FISHEYE\": \"rybie oko\",\n \"LOOKS_EFFECT_WHIRL\": \"wir\",\n \"LOOKS_EFFECT_PIXELATE\": \"zniekształć\",\n \"LOOKS_EFFECT_MOSAIC\": \"mozaika\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"jasność\",\n \"LOOKS_EFFECT_GHOST\": \"duch\",\n \"LOOKS_CHANGEEFFECTBY\": \"zmień efekt %1 o %2\",\n \"LOOKS_SETEFFECTTO\": \"ustaw efekt %1 na %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"wyczyść efekty graficzne\",\n \"LOOKS_CHANGESIZEBY\": \"zmień rozmiar o %1\",\n \"LOOKS_SETSIZETO\": \"ustaw rozmiar na %1 %\",\n \"LOOKS_SIZE\": \"rozmiar\",\n \"LOOKS_CHANGESTRETCHBY\": \"zmień rozciągnięcie o %1\",\n \"LOOKS_SETSTRETCHTO\": \"ustaw rozciąganie na %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"zmień kostium na %1\",\n \"LOOKS_NEXTCOSTUME\": \"następny kostium\",\n \"LOOKS_SWITCHBACKDROPTO\": \"zmień tło na %1\",\n \"LOOKS_GOTOFRONTBACK\": \"przesuń na %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"na wierzch\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"na spód\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"przesuń %1 o %2 warstw\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"do przodu\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"do tyłu\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"tło %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"kostium %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"liczba\",\n \"LOOKS_NUMBERNAME_NAME\": \"nazwa\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"zmień tło na %1 i czekaj\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"następne tło\",\n \"LOOKS_NEXTBACKDROP\": \"następne tło\",\n \"LOOKS_PREVIOUSBACKDROP\": \"poprzednie tło\",\n \"LOOKS_RANDOMBACKDROP\": \"losowo wybrane tło\",\n \"MOTION_MOVESTEPS\": \"przesuń o %1 kroków\",\n \"MOTION_TURNLEFT\": \"obróć %1 o %2 stopni\",\n \"MOTION_TURNRIGHT\": \"obróć %1 o %2 stopni\",\n \"MOTION_POINTINDIRECTION\": \"ustaw kierunek na %1\",\n \"MOTION_POINTTOWARDS\": \"ustaw w kierunku duszka %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"wskaźnik myszy\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"losowy kierunek\",\n \"MOTION_GOTO\": \"idź do %1\",\n \"MOTION_GOTO_POINTER\": \"wskaźnik myszy\",\n \"MOTION_GOTO_RANDOM\": \"losowa pozycja\",\n \"MOTION_GOTOXY\": \"Idź do x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"leć przez %1 sekund do x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"leć przez %1 sekund do %2\",\n \"MOTION_GLIDETO_POINTER\": \"wskaźnik myszy\",\n \"MOTION_GLIDETO_RANDOM\": \"losowa pozycja\",\n \"MOTION_CHANGEXBY\": \"zmień x o %1\",\n \"MOTION_SETX\": \"ustaw x na %1\",\n \"MOTION_CHANGEYBY\": \"zmień y o %1\",\n \"MOTION_SETY\": \"ustaw y na %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"jeżeli na brzegu, odbij się\",\n \"MOTION_SETROTATIONSTYLE\": \"ustaw styl obrotu na %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"lewo-prawo\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"nie obracaj\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"dookoła\",\n \"MOTION_XPOSITION\": \"pozycja x\",\n \"MOTION_YPOSITION\": \"pozycja y\",\n \"MOTION_DIRECTION\": \"kierunek\",\n \"MOTION_SCROLLRIGHT\": \"przewiń w prawo %1\",\n \"MOTION_SCROLLUP\": \"przewiń w górę %1\",\n \"MOTION_ALIGNSCENE\": \"wyrównaj scenę %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"na dole po lewej stronie\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"na dole z prawej stronie\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"środek\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"na górze po lewej stronie\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"na górze po prawej stronie\",\n \"MOTION_XSCROLL\": \"przewijanie x\",\n \"MOTION_YSCROLL\": \"przewijanie y\",\n \"MOTION_STAGE_SELECTED\": \"wybrana scena: bez bloków ruchu\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"losuj liczbę od %1 do %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 i %2\",\n \"OPERATORS_OR\": \"%1 lub %2\",\n \"OPERATORS_NOT\": \"nie %1\",\n \"OPERATORS_JOIN\": \"połącz %1 i %2\",\n \"OPERATORS_JOIN_APPLE\": \"jabłko\",\n \"OPERATORS_JOIN_BANANA\": \"banan\",\n \"OPERATORS_LETTEROF\": \"litera %1 z %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"j\",\n \"OPERATORS_LENGTH\": \"długość %1\",\n \"OPERATORS_CONTAINS\": \"Czy %1 zawiera %2 ?\",\n \"OPERATORS_MOD\": \"reszta z dzielenia %1 przez %2\",\n \"OPERATORS_ROUND\": \"zaokrąglij %1\",\n \"OPERATORS_MATHOP\": \"%1 z %2\",\n \"OPERATORS_MATHOP_ABS\": \"wartość bezwzględna\",\n \"OPERATORS_MATHOP_FLOOR\": \"podłoga\",\n \"OPERATORS_MATHOP_CEILING\": \"sufit\",\n \"OPERATORS_MATHOP_SQRT\": \"pierwiastek kwadratowy\",\n \"OPERATORS_MATHOP_SIN\": \"sinus\",\n \"OPERATORS_MATHOP_COS\": \"cosinus\",\n \"OPERATORS_MATHOP_TAN\": \"tangens\",\n \"OPERATORS_MATHOP_ASIN\": \"arcus sinus\",\n \"OPERATORS_MATHOP_ACOS\": \"arcus cosinus\",\n \"OPERATORS_MATHOP_ATAN\": \"arcus tangens\",\n \"OPERATORS_MATHOP_LN\": \"logarytm naturalny\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"definiuj %1\",\n \"SENSING_TOUCHINGOBJECT\": \"dotyka %1 ?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"wskaźnik myszy\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"krawędź\",\n \"SENSING_TOUCHINGCOLOR\": \"dotyka koloru %1 ?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"kolor %1 dotyka %2 ? \",\n \"SENSING_DISTANCETO\": \"odległość od %1\",\n \"SENSING_DISTANCETO_POINTER\": \"wskaźnik myszy\",\n \"SENSING_ASKANDWAIT\": \"zapytaj %1 i czekaj\",\n \"SENSING_ASK_TEXT\": \"Jak się nazywasz?\",\n \"SENSING_ANSWER\": \"odpowiedź\",\n \"SENSING_KEYPRESSED\": \"klawisz %1 naciśnięty ?\",\n \"SENSING_MOUSEDOWN\": \"kliknięto myszką?\",\n \"SENSING_MOUSEX\": \"x myszy\",\n \"SENSING_MOUSEY\": \"y myszy\",\n \"SENSING_SETDRAGMODE\": \"ustaw tryb przeciągania na %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"z przeciąganiem\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"bez przeciągania\",\n \"SENSING_LOUDNESS\": \"głośność\",\n \"SENSING_LOUD\": \"głośno?\",\n \"SENSING_TIMER\": \"stoper\",\n \"SENSING_RESETTIMER\": \"resetuj stoper\",\n \"SENSING_OF\": \"%1 z %2\",\n \"SENSING_OF_XPOSITION\": \"pozycja x\",\n \"SENSING_OF_YPOSITION\": \"pozycja y\",\n \"SENSING_OF_DIRECTION\": \"kierunek\",\n \"SENSING_OF_COSTUMENUMBER\": \"indeks kostiumu\",\n \"SENSING_OF_COSTUMENAME\": \"nazwa kostiumu\",\n \"SENSING_OF_SIZE\": \"rozmiar\",\n \"SENSING_OF_VOLUME\": \"głośność\",\n \"SENSING_OF_BACKDROPNUMBER\": \"indeks tła\",\n \"SENSING_OF_BACKDROPNAME\": \"nazwa tła\",\n \"SENSING_OF_STAGE\": \"scena\",\n \"SENSING_CURRENT\": \"obecny %1\",\n \"SENSING_CURRENT_YEAR\": \"rok\",\n \"SENSING_CURRENT_MONTH\": \"miesiąc\",\n \"SENSING_CURRENT_DATE\": \"dzień\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"dzień tygodnia\",\n \"SENSING_CURRENT_HOUR\": \"godzina\",\n \"SENSING_CURRENT_MINUTE\": \"minuta\",\n \"SENSING_CURRENT_SECOND\": \"sekunda\",\n \"SENSING_DAYSSINCE2000\": \"dni od 2000\",\n \"SENSING_USERNAME\": \"nazwa użytkownika\",\n \"SENSING_USERID\": \"ID użytkownika\",\n \"SOUND_PLAY\": \"zagraj dźwięk %1\",\n \"SOUND_PLAYUNTILDONE\": \"graj dźwięk %1 aż się skończy\",\n \"SOUND_STOPALLSOUNDS\": \"zakończ wszystkie dźwięki\",\n \"SOUND_SETEFFECTO\": \"ustaw efekt %1 na %2\",\n \"SOUND_CHANGEEFFECTBY\": \"zmień efekt %1 o %2\",\n \"SOUND_CLEAREFFECTS\": \"usuń efekty dźwiękowe\",\n \"SOUND_EFFECTS_PITCH\": \"płynność dźwięku\",\n \"SOUND_EFFECTS_PAN\": \"przesuń w lewo/prawo\",\n \"SOUND_CHANGEVOLUMEBY\": \"zmień głośność o %1\",\n \"SOUND_SETVOLUMETO\": \"ustaw głośność na %1%\",\n \"SOUND_VOLUME\": \"głośność\",\n \"SOUND_RECORD\": \"nagraj...\",\n \"CATEGORY_MOTION\": \"Ruch\",\n \"CATEGORY_LOOKS\": \"Wygląd\",\n \"CATEGORY_SOUND\": \"Dźwięk\",\n \"CATEGORY_EVENTS\": \"Zdarzenia\",\n \"CATEGORY_CONTROL\": \"Kontrola\",\n \"CATEGORY_SENSING\": \"Czujniki\",\n \"CATEGORY_OPERATORS\": \"Wyrażenia\",\n \"CATEGORY_VARIABLES\": \"Zmienne\",\n \"CATEGORY_MYBLOCKS\": \"Moje bloki\",\n \"DUPLICATE\": \"Duplikuj\",\n \"DELETE\": \"Usuń\",\n \"ADD_COMMENT\": \"Dodaj komentarz\",\n \"REMOVE_COMMENT\": \"Usuń komentarz\",\n \"DELETE_BLOCK\": \"Usuń blok\",\n \"DELETE_X_BLOCKS\": \"Usuń %1 bloków\",\n \"DELETE_ALL_BLOCKS\": \"Czy usunąć wszystkie %1 bloków?\",\n \"CLEAN_UP\": \"Posprzątaj bloki\",\n \"HELP\": \"Pomoc\",\n \"UNDO\": \"Cofnij\",\n \"REDO\": \"Ponów\",\n \"EDIT_PROCEDURE\": \"Edycja\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Przejdź do definicji\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Powiedz coś...\",\n \"COLOUR_HUE_LABEL\": \"Kolor\",\n \"COLOUR_SATURATION_LABEL\": \"Nasycenie\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Jasność\",\n \"CHANGE_VALUE_TITLE\": \"Zmień wartość:\",\n \"RENAME_VARIABLE\": \"Zmień nazwę zmiennej\",\n \"RENAME_VARIABLE_TITLE\": \"Zmień nazwę wszystkich zmiennych \\\"%1\\\" na:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Zmień nazwę zmiennej\",\n \"NEW_VARIABLE\": \"Utwórz zmienną\",\n \"NEW_VARIABLE_TITLE\": \"Nowa nazwa zmiennej:\",\n \"VARIABLE_MODAL_TITLE\": \"Nowa zmienna\",\n \"VARIABLE_ALREADY_EXISTS\": \"Zmienna o nazwie \\\"%1\\\" już istnieje.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Zmienna o nazwie \\\"%1\\\" już istnieje dla innego typu zmiennej \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Czy usunąć %1 używając zmiennej \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Nie można usunąć zmiennej \\\"%1\\\", ponieważ stanowi część definicji funkcji \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Usuń zmienną \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Utwórz blok\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Procedura o nazwie \\\"%1\\\" już istnieje.\",\n \"PROCEDURE_DEFAULT_NAME\": \"nazwa bloku\",\n \"NEW_LIST\": \"Stwórz listę\",\n \"NEW_LIST_TITLE\": \"Nowa nazwa lista:\",\n \"LIST_MODAL_TITLE\": \"Nowa lista\",\n \"LIST_ALREADY_EXISTS\": \"Lista o nazwie \\\"%1\\\" już istnieje.\",\n \"RENAME_LIST_TITLE\": \"Zmień nazwy wszystkich list \\\"%1\\\" na:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Zmień nazwę listy\",\n \"DEFAULT_LIST_ITEM\": \"obiekt\",\n \"DELETE_LIST\": \"Usuń listę \\\"%1\\\"\",\n \"RENAME_LIST\": \"Zmień nazwę listy\",\n \"NEW_BROADCAST_MESSAGE\": \"Nowa wiadomość\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Nowa nazwa wiadomości:\",\n \"BROADCAST_MODAL_TITLE\": \"Nowa wiadomość\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"wiadomość1\"\n};\n\nBlockly.ScratchMsgs.locales[\"pt\"] =\n{\n \"CONTROL_FOREVER\": \"repete para sempre\",\n \"CONTROL_REPEAT\": \"repete %1 vezes\",\n \"CONTROL_IF\": \"se %1 , então\",\n \"CONTROL_ELSE\": \"senão,\",\n \"CONTROL_STOP\": \"pára\",\n \"CONTROL_STOP_ALL\": \"tudo\",\n \"CONTROL_STOP_THIS\": \"este guião\",\n \"CONTROL_STOP_OTHER\": \"os teus outros guiões\",\n \"CONTROL_WAIT\": \"espera %1 s\",\n \"CONTROL_WAITUNTIL\": \"espera até que %1\",\n \"CONTROL_REPEATUNTIL\": \"até que %1 , repete\",\n \"CONTROL_WHILE\": \"enquanto %1\",\n \"CONTROL_FOREACH\": \"para cada %1 em %2\",\n \"CONTROL_STARTASCLONE\": \"Quando fores criado como um clone\",\n \"CONTROL_CREATECLONEOF\": \"cria um clone de %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"ti mesmo\",\n \"CONTROL_DELETETHISCLONE\": \"remove-te como clone\",\n \"CONTROL_COUNTER\": \"contador\",\n \"CONTROL_INCRCOUNTER\": \"incrementa o contador\",\n \"CONTROL_CLEARCOUNTER\": \"põe o contador a zero\",\n \"CONTROL_ALLATONCE\": \"executa tudo de uma vez\",\n \"DATA_SETVARIABLETO\": \"altera %1 para %2\",\n \"DATA_CHANGEVARIABLEBY\": \"adiciona a %1 o valor %2\",\n \"DATA_SHOWVARIABLE\": \"mostra a variável %1\",\n \"DATA_HIDEVARIABLE\": \"esconde a variável %1\",\n \"DATA_ADDTOLIST\": \"acrescenta %1 a %2\",\n \"DATA_DELETEOFLIST\": \"remove %1 de %2\",\n \"DATA_DELETEALLOFLIST\": \"remove tudo de %1\",\n \"DATA_INSERTATLIST\": \"insere %1 como %2 de %3\",\n \"DATA_REPLACEITEMOFLIST\": \"substitui %1 de %2 por %3\",\n \"DATA_ITEMOFLIST\": \"%1 de %2\",\n \"DATA_ITEMNUMOFLIST\": \"o número do item %1 em %2\",\n \"DATA_LENGTHOFLIST\": \"o comprimento de %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 contém %2\",\n \"DATA_SHOWLIST\": \"mostra a lista %1\",\n \"DATA_HIDELIST\": \"esconde a lista %1\",\n \"DATA_INDEX_ALL\": \"tudo\",\n \"DATA_INDEX_LAST\": \"o último item\",\n \"DATA_INDEX_RANDOM\": \"um item ao acaso\",\n \"EVENT_WHENFLAGCLICKED\": \"Quando alguém clicar em %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"Quando alguém clicar em ti\",\n \"EVENT_WHENSTAGECLICKED\": \"Quando alguém clicar no palco\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"Quando tocares em %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"Quando receberes a mensagem %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"Quando o cenário mudar para %1\",\n \"EVENT_WHENGREATERTHAN\": \"Quando o valor do sensor %1 exceder %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"o valor do cronómetro\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"o volume no microfone\",\n \"EVENT_BROADCAST\": \"difunde a mensagem %1\",\n \"EVENT_BROADCASTANDWAIT\": \"difunde a mensagem %1 e espera\",\n \"EVENT_WHENKEYPRESSED\": \"Quando alguém pressionar a tecla %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"espaço\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"seta para a esquerda\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"seta para a direita\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"seta para baixo\",\n \"EVENT_WHENKEYPRESSED_UP\": \"seta para cima\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"qualquer\",\n \"LOOKS_SAYFORSECS\": \"diz %1 durante %2 s\",\n \"LOOKS_SAY\": \"diz %1\",\n \"LOOKS_HELLO\": \"Olá!\",\n \"LOOKS_THINKFORSECS\": \"pensa %1 durante %2 s\",\n \"LOOKS_THINK\": \"pensa %1\",\n \"LOOKS_HMM\": \"Hmm…\",\n \"LOOKS_SHOW\": \"mostra-te\",\n \"LOOKS_HIDE\": \"esconde-te\",\n \"LOOKS_HIDEALLSPRITES\": \"esconde todos os actores\",\n \"LOOKS_EFFECT_COLOR\": \"cor\",\n \"LOOKS_EFFECT_FISHEYE\": \"olho de peixe\",\n \"LOOKS_EFFECT_WHIRL\": \"remoinho\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixelização\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaico\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"brilho\",\n \"LOOKS_EFFECT_GHOST\": \"fantasma\",\n \"LOOKS_CHANGEEFFECTBY\": \"adiciona ao teu efeito %1 o valor %2\",\n \"LOOKS_SETEFFECTTO\": \"altera o teu efeito %1 para %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"cancela os teus efeitos gráficos\",\n \"LOOKS_CHANGESIZEBY\": \"adiciona %1 ao teu tamanho\",\n \"LOOKS_SETSIZETO\": \"altera o teu tamanho para %1 %\",\n \"LOOKS_SIZE\": \"o tamanho\",\n \"LOOKS_CHANGESTRETCHBY\": \"adiciona %1 % ao esticamento\",\n \"LOOKS_SETSTRETCHTO\": \"altera o esticamento para %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"muda o teu traje para %1\",\n \"LOOKS_NEXTCOSTUME\": \"passa para o teu próximo traje\",\n \"LOOKS_SWITCHBACKDROPTO\": \"muda o cenário para %1\",\n \"LOOKS_GOTOFRONTBACK\": \"vai para a camada %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"frontal\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"traseira\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"%1 %2 camadas\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"avança\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"recua\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"%1 do cenário\",\n \"LOOKS_COSTUMENUMBERNAME\": \"%1 do traje\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"o número\",\n \"LOOKS_NUMBERNAME_NAME\": \"o nome\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"muda o cenário para %1 e espera\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"passa para o teu próximo cenário\",\n \"LOOKS_NEXTBACKDROP\": \"passa para o teu próximo cenário\",\n \"LOOKS_PREVIOUSBACKDROP\": \"o cenário anterior\",\n \"LOOKS_RANDOMBACKDROP\": \"um cenário ao acaso\",\n \"MOTION_MOVESTEPS\": \"anda %1 passos\",\n \"MOTION_TURNLEFT\": \"gira %1 %2 °\",\n \"MOTION_TURNRIGHT\": \"gira %1 %2 °\",\n \"MOTION_POINTINDIRECTION\": \"altera a tua direcção para %1 °\",\n \"MOTION_POINTTOWARDS\": \"aponta em direcção a %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"ponteiro do rato\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"uma direcção ao acaso\",\n \"MOTION_GOTO\": \"vai para %1\",\n \"MOTION_GOTO_POINTER\": \"o ponteiro do rato\",\n \"MOTION_GOTO_RANDOM\": \"uma posição ao acaso\",\n \"MOTION_GOTOXY\": \"vai para a posição x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"desliza em %1 s para a posição x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"desliza em %1 s em direcção a%2\",\n \"MOTION_GLIDETO_POINTER\": \"o ponteiro do rato\",\n \"MOTION_GLIDETO_RANDOM\": \"uma posição ao acaso\",\n \"MOTION_CHANGEXBY\": \"adiciona %1 ao teu x\",\n \"MOTION_SETX\": \"altera o teu x para %1\",\n \"MOTION_CHANGEYBY\": \"adiciona %1 ao teu y\",\n \"MOTION_SETY\": \"altera o teu y para %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"se estiveres a bater na borda, ressalta\",\n \"MOTION_SETROTATIONSTYLE\": \"altera o teu estilo de rotação para %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"olha apenas para a esquerda e para a direita\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"não gires\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"gira a toda a volta\",\n \"MOTION_XPOSITION\": \"o x da tua posição\",\n \"MOTION_YPOSITION\": \"o y da tua posição\",\n \"MOTION_DIRECTION\": \"a direcção\",\n \"MOTION_SCROLLRIGHT\": \"rola %1 para a direita\",\n \"MOTION_SCROLLUP\": \"rola %1 para cima\",\n \"MOTION_ALIGNSCENE\": \"alinha a cena %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"ao fundo e à esquerda\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"ao fundo e à direita\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"a meio\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"no topo e à esquerda\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"no topo e à direita\",\n \"MOTION_XSCROLL\": \"o rolamento em x\",\n \"MOTION_YSCROLL\": \"o rolamento em y\",\n \"MOTION_STAGE_SELECTED\": \"Palco seleccionado: não tem blocos de movimento\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 − %2\",\n \"OPERATORS_MULTIPLY\": \"%1 × %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"um valor ao acaso entre %1 e %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 e %2\",\n \"OPERATORS_OR\": \"%1 ou %2\",\n \"OPERATORS_NOT\": \"é falso que %1\",\n \"OPERATORS_JOIN\": \"a junção de %1 com %2\",\n \"OPERATORS_JOIN_APPLE\": \"maçã\",\n \"OPERATORS_JOIN_BANANA\": \"banana\",\n \"OPERATORS_LETTEROF\": \"o caractere %1 de %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"o comprimento de %1\",\n \"OPERATORS_CONTAINS\": \"%1 contém %2\",\n \"OPERATORS_MOD\": \"o resto de %1 a dividir por %2\",\n \"OPERATORS_ROUND\": \"o arredondamento de %1\",\n \"OPERATORS_MATHOP\": \"%1 de %2\",\n \"OPERATORS_MATHOP_ABS\": \"o valor absoluto\",\n \"OPERATORS_MATHOP_FLOOR\": \"o chão (o maior inteiro não superior)\",\n \"OPERATORS_MATHOP_CEILING\": \"o tecto (menor inteiro não inferior)\",\n \"OPERATORS_MATHOP_SQRT\": \"a raiz quadrada\",\n \"OPERATORS_MATHOP_SIN\": \"o seno\",\n \"OPERATORS_MATHOP_COS\": \"o cosseno\",\n \"OPERATORS_MATHOP_TAN\": \"a tangente\",\n \"OPERATORS_MATHOP_ASIN\": \"o arco-seno\",\n \"OPERATORS_MATHOP_ACOS\": \"o arco-cosseno\",\n \"OPERATORS_MATHOP_ATAN\": \"o arco-tangente\",\n \"OPERATORS_MATHOP_LN\": \"o logaritmo natural\",\n \"OPERATORS_MATHOP_LOG\": \"o logaritmo\",\n \"OPERATORS_MATHOP_EEXP\": \"a exponencial\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"Define %1\",\n \"SENSING_TOUCHINGOBJECT\": \"estás a tocar em %1\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"o ponteiro do rato\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"a borda\",\n \"SENSING_TOUCHINGCOLOR\": \"estás a tocar na cor %1\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"a cor %1 está a tocar na cor %2\",\n \"SENSING_DISTANCETO\": \"a distância até %1\",\n \"SENSING_DISTANCETO_POINTER\": \"o ponteiro do rato\",\n \"SENSING_ASKANDWAIT\": \"pergunta %1 e espera pela resposta\",\n \"SENSING_ASK_TEXT\": \"Como te chamas?\",\n \"SENSING_ANSWER\": \"a resposta\",\n \"SENSING_KEYPRESSED\": \"a tecla %1 está a ser pressionada\",\n \"SENSING_MOUSEDOWN\": \"o botão do rato está pressionado\",\n \"SENSING_MOUSEX\": \"o x da posição do rato\",\n \"SENSING_MOUSEY\": \"o y da posição do rato\",\n \"SENSING_SETDRAGMODE\": \"altera o teu modo de arrasto para %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"arrastável\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"não arrastável\",\n \"SENSING_LOUDNESS\": \"o volume no microfone\",\n \"SENSING_LOUD\": \"o som é forte\",\n \"SENSING_TIMER\": \"o valor do cronómetro\",\n \"SENSING_RESETTIMER\": \"reinicia o cronómetro\",\n \"SENSING_OF\": \"%1 de %2\",\n \"SENSING_OF_XPOSITION\": \"o x da posição\",\n \"SENSING_OF_YPOSITION\": \"o y da posição\",\n \"SENSING_OF_DIRECTION\": \"a direcção\",\n \"SENSING_OF_COSTUMENUMBER\": \"o número do traje\",\n \"SENSING_OF_COSTUMENAME\": \"o nome do traje\",\n \"SENSING_OF_SIZE\": \"o tamanho\",\n \"SENSING_OF_VOLUME\": \"o volume\",\n \"SENSING_OF_BACKDROPNUMBER\": \"o número do cenário\",\n \"SENSING_OF_BACKDROPNAME\": \"o nome do cenário\",\n \"SENSING_OF_STAGE\": \"o palco\",\n \"SENSING_CURRENT\": \"%1 actual\",\n \"SENSING_CURRENT_YEAR\": \"o ano\",\n \"SENSING_CURRENT_MONTH\": \"o mês\",\n \"SENSING_CURRENT_DATE\": \"a data\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"o dia da semana\",\n \"SENSING_CURRENT_HOUR\": \"a hora\",\n \"SENSING_CURRENT_MINUTE\": \"o minuto\",\n \"SENSING_CURRENT_SECOND\": \"o segundo\",\n \"SENSING_DAYSSINCE2000\": \"o número de dias desde 2000\",\n \"SENSING_USERNAME\": \"o nome de utilizador\",\n \"SENSING_USERID\": \"o ID de utilizador\",\n \"SOUND_PLAY\": \"toca o som %1\",\n \"SOUND_PLAYUNTILDONE\": \"toca o som %1 até terminar\",\n \"SOUND_STOPALLSOUNDS\": \"pára todos os sons\",\n \"SOUND_SETEFFECTO\": \"altera o teu efeito %1 para %2\",\n \"SOUND_CHANGEEFFECTBY\": \"adiciona ao teu efeito %1 o valor %2\",\n \"SOUND_CLEAREFFECTS\": \"cancela todos os teus efeitos sonoros\",\n \"SOUND_EFFECTS_PITCH\": \"tom\",\n \"SOUND_EFFECTS_PAN\": \"canal esquerdo/direito\",\n \"SOUND_CHANGEVOLUMEBY\": \"adiciona %1 % ao teu volume\",\n \"SOUND_SETVOLUMETO\": \"altera o teu volume para %1%\",\n \"SOUND_VOLUME\": \"o volume\",\n \"SOUND_RECORD\": \"gravar…\",\n \"CATEGORY_MOTION\": \"Movimento\",\n \"CATEGORY_LOOKS\": \"Aparência\",\n \"CATEGORY_SOUND\": \"Som\",\n \"CATEGORY_EVENTS\": \"Eventos\",\n \"CATEGORY_CONTROL\": \"Controlo\",\n \"CATEGORY_SENSING\": \"Sensores\",\n \"CATEGORY_OPERATORS\": \"Operadores\",\n \"CATEGORY_VARIABLES\": \"Variáveis\",\n \"CATEGORY_MYBLOCKS\": \"Os Meus Blocos\",\n \"DUPLICATE\": \"Duplicar\",\n \"DELETE\": \"Remover\",\n \"ADD_COMMENT\": \"Adicionar Comentário\",\n \"REMOVE_COMMENT\": \"Remover Comentário\",\n \"DELETE_BLOCK\": \"Remover Bloco\",\n \"DELETE_X_BLOCKS\": \"Remover %1 Blocos\",\n \"DELETE_ALL_BLOCKS\": \"Remover todos os %1 blocos?\",\n \"CLEAN_UP\": \"Arrumar Blocos\",\n \"HELP\": \"Ajuda\",\n \"UNDO\": \"Desfazer\",\n \"REDO\": \"Refazer\",\n \"EDIT_PROCEDURE\": \"Editar\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Ir para a definição\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Diga qualquer coisa…\",\n \"COLOUR_HUE_LABEL\": \"Matiz\",\n \"COLOUR_SATURATION_LABEL\": \"Saturação\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Brilho\",\n \"CHANGE_VALUE_TITLE\": \"Alterar o valor:\",\n \"RENAME_VARIABLE\": \"Renomear a variável\",\n \"RENAME_VARIABLE_TITLE\": \"Renomear todas as variáveis «%1» para:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Renomear Variável\",\n \"NEW_VARIABLE\": \"Criar uma Variável\",\n \"NEW_VARIABLE_TITLE\": \"Novo nome da variável:\",\n \"VARIABLE_MODAL_TITLE\": \"Nova Variável\",\n \"VARIABLE_ALREADY_EXISTS\": \"Já existe uma variável com o nome «%1».\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Já existe uma variável com o nome «%1» do tipo «%2».\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Remover %1 utilizações da variável «%2»?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Não é possível remover a variável «%1» porque é parte da definição da função «%2»\",\n \"DELETE_VARIABLE\": \"Remover a variável «%1»\",\n \"NEW_PROCEDURE\": \"Criar um Bloco\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Já existe um procedimento com o nome «%1».\",\n \"PROCEDURE_DEFAULT_NAME\": \"nome do bloco\",\n \"NEW_LIST\": \"Criar uma Lista\",\n \"NEW_LIST_TITLE\": \"Nome da nova lista:\",\n \"LIST_MODAL_TITLE\": \"Nova Lista\",\n \"LIST_ALREADY_EXISTS\": \"Já existe uma lista com o nome «%1».\",\n \"RENAME_LIST_TITLE\": \"Renomear todas as listas «%1» para:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Renomear Lista\",\n \"DEFAULT_LIST_ITEM\": \"uma coisa\",\n \"DELETE_LIST\": \"Remover a lista «%1»\",\n \"RENAME_LIST\": \"Renomear a lista\",\n \"NEW_BROADCAST_MESSAGE\": \"Nova mensagem\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Nome da nova mensagem:\",\n \"BROADCAST_MODAL_TITLE\": \"Nova Mensagem\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"Mensagem 1\"\n};\n\nBlockly.ScratchMsgs.locales[\"pt-br\"] =\n{\n \"CONTROL_FOREVER\": \"sempre\",\n \"CONTROL_REPEAT\": \"repita %1 vezes\",\n \"CONTROL_IF\": \"se %1 então\",\n \"CONTROL_ELSE\": \"senão\",\n \"CONTROL_STOP\": \"pare\",\n \"CONTROL_STOP_ALL\": \"todos\",\n \"CONTROL_STOP_THIS\": \"este script\",\n \"CONTROL_STOP_OTHER\": \"outros scripts no ator\",\n \"CONTROL_WAIT\": \"espere %1 seg\",\n \"CONTROL_WAITUNTIL\": \"espere até que %1\",\n \"CONTROL_REPEATUNTIL\": \"repita até que %1\",\n \"CONTROL_WHILE\": \"enquanto %1\",\n \"CONTROL_FOREACH\": \"para cada %1 em %2\",\n \"CONTROL_STARTASCLONE\": \"quando eu começar como um clone\",\n \"CONTROL_CREATECLONEOF\": \"crie clone de %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"este ator\",\n \"CONTROL_DELETETHISCLONE\": \"apague este clone\",\n \"CONTROL_COUNTER\": \"contador\",\n \"CONTROL_INCRCOUNTER\": \"desenvolver contador\",\n \"CONTROL_CLEARCOUNTER\": \"limpar contador\",\n \"CONTROL_ALLATONCE\": \"todos de uma vez\",\n \"DATA_SETVARIABLETO\": \"mude %1 para %2\",\n \"DATA_CHANGEVARIABLEBY\": \"adicione %2 a %1\",\n \"DATA_SHOWVARIABLE\": \"mostre a variável %1\",\n \"DATA_HIDEVARIABLE\": \"esconda a variável %1\",\n \"DATA_ADDTOLIST\": \"adicione %1 a %2\",\n \"DATA_DELETEOFLIST\": \"apague %1 de %2\",\n \"DATA_DELETEALLOFLIST\": \"apague todos os itens de %1\",\n \"DATA_INSERTATLIST\": \"insira %1 na posição %2 de %3\",\n \"DATA_REPLACEITEMOFLIST\": \"substitua o item %1 de %2 por %3\",\n \"DATA_ITEMOFLIST\": \"item %1 de %2\",\n \"DATA_ITEMNUMOFLIST\": \"item # de %1 em %2\",\n \"DATA_LENGTHOFLIST\": \"tamanho de %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 contém %2?\",\n \"DATA_SHOWLIST\": \"mostre a lista %1\",\n \"DATA_HIDELIST\": \"esconda a lista %1\",\n \"DATA_INDEX_ALL\": \"todos\",\n \"DATA_INDEX_LAST\": \"último\",\n \"DATA_INDEX_RANDOM\": \"aleatório\",\n \"EVENT_WHENFLAGCLICKED\": \"quando %1 for clicado\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"quando este ator for clicado\",\n \"EVENT_WHENSTAGECLICKED\": \"quando o palco for clicado\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"quando este ator tocar %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"quando eu receber %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"quando o cenário mudar para %1\",\n \"EVENT_WHENGREATERTHAN\": \"quando %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"cronômetro\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"ruído\",\n \"EVENT_BROADCAST\": \"transmita %1\",\n \"EVENT_BROADCASTANDWAIT\": \"transmita %1 e espere\",\n \"EVENT_WHENKEYPRESSED\": \"quando a tecla %1 for pressionada\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"espaço\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"seta para esquerda\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"seta para direita\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"seta para baixo\",\n \"EVENT_WHENKEYPRESSED_UP\": \"seta para cima\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"qualquer\",\n \"LOOKS_SAYFORSECS\": \"diga %1 por %2 segundos\",\n \"LOOKS_SAY\": \"diga %1\",\n \"LOOKS_HELLO\": \"Olá!\",\n \"LOOKS_THINKFORSECS\": \"pense %1 por %2 segundos\",\n \"LOOKS_THINK\": \"pense %1\",\n \"LOOKS_HMM\": \"Hummm...\",\n \"LOOKS_SHOW\": \"mostre\",\n \"LOOKS_HIDE\": \"esconda\",\n \"LOOKS_HIDEALLSPRITES\": \"esconda todos os atores\",\n \"LOOKS_EFFECT_COLOR\": \"cor\",\n \"LOOKS_EFFECT_FISHEYE\": \"olho de peixe\",\n \"LOOKS_EFFECT_WHIRL\": \"turbilhão\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixelado\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaico\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"brilho\",\n \"LOOKS_EFFECT_GHOST\": \"fantasma\",\n \"LOOKS_CHANGEEFFECTBY\": \"mude %2 ao efeito %1\",\n \"LOOKS_SETEFFECTTO\": \"defina o efeito %1 como %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"remova os efeitos gráficos\",\n \"LOOKS_CHANGESIZEBY\": \"mude %1 no tamanho\",\n \"LOOKS_SETSIZETO\": \"defina o tamanho como %1 %\",\n \"LOOKS_SIZE\": \"tamanho\",\n \"LOOKS_CHANGESTRETCHBY\": \"mude trajeto por %1\",\n \"LOOKS_SETSTRETCHTO\": \"defina curso para %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"mude para a fantasia %1\",\n \"LOOKS_NEXTCOSTUME\": \"próxima fantasia\",\n \"LOOKS_SWITCHBACKDROPTO\": \"mude para o cenário %1\",\n \"LOOKS_GOTOFRONTBACK\": \"Vá para a camada %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"da frente\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"de trás\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"Vá para %1 %2 camadas\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"frente\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"trás\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"cenário %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"fantasia %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"número\",\n \"LOOKS_NUMBERNAME_NAME\": \"nome\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"mude para o cenário %1 e espere\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"próximo cenário\",\n \"LOOKS_NEXTBACKDROP\": \"próximo cenário\",\n \"LOOKS_PREVIOUSBACKDROP\": \"cenário anterior\",\n \"LOOKS_RANDOMBACKDROP\": \"cenário aleatório\",\n \"MOTION_MOVESTEPS\": \"mova %1 passos\",\n \"MOTION_TURNLEFT\": \"gire %1 %2 graus\",\n \"MOTION_TURNRIGHT\": \"gire %1 %2 graus\",\n \"MOTION_POINTINDIRECTION\": \"aponte para a direção %1\",\n \"MOTION_POINTTOWARDS\": \"aponte para %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"ponteiro do mouse\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"direção aleatória\",\n \"MOTION_GOTO\": \"vá para %1\",\n \"MOTION_GOTO_POINTER\": \"ponteiro do mouse\",\n \"MOTION_GOTO_RANDOM\": \"posição aleatória\",\n \"MOTION_GOTOXY\": \"vá para x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"deslize por %1 segs. até x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"deslize por %1 segs. até %2\",\n \"MOTION_GLIDETO_POINTER\": \"ponteiro do mouse\",\n \"MOTION_GLIDETO_RANDOM\": \"posição aleatória\",\n \"MOTION_CHANGEXBY\": \"adicione %1 a x\",\n \"MOTION_SETX\": \"mude x para %1\",\n \"MOTION_CHANGEYBY\": \"adicione %1 a y\",\n \"MOTION_SETY\": \"mude y para %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"se tocar na borda, volte\",\n \"MOTION_SETROTATIONSTYLE\": \"defina o estilo de rotação para %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"esquerda-direita\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"não rotacionar\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"rotação completa\",\n \"MOTION_XPOSITION\": \"posição x\",\n \"MOTION_YPOSITION\": \"posição y\",\n \"MOTION_DIRECTION\": \"direção\",\n \"MOTION_SCROLLRIGHT\": \"rolar para direita %1 %\",\n \"MOTION_SCROLLUP\": \"rolar para cima %1\",\n \"MOTION_ALIGNSCENE\": \"alinhar cena %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"inferior esquerda\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"inferior direita\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"meio\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"superior esquerdo\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"superior direita\",\n \"MOTION_XSCROLL\": \"rolagem eixo x\",\n \"MOTION_YSCROLL\": \"rolagem eixo y\",\n \"MOTION_STAGE_SELECTED\": \"Palco selecionado: sem blocos de movimento\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"número aleatório entre %1 e %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 e %2\",\n \"OPERATORS_OR\": \"%1 ou %2\",\n \"OPERATORS_NOT\": \"não %1\",\n \"OPERATORS_JOIN\": \"junte %1 com %2\",\n \"OPERATORS_JOIN_APPLE\": \"maçã\",\n \"OPERATORS_JOIN_BANANA\": \"banana\",\n \"OPERATORS_LETTEROF\": \"letra %1 de %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"m\",\n \"OPERATORS_LENGTH\": \"tamanho de %1\",\n \"OPERATORS_CONTAINS\": \"%1 contém %2?\",\n \"OPERATORS_MOD\": \"resto de %1 por %2\",\n \"OPERATORS_ROUND\": \"arredondamento de %1\",\n \"OPERATORS_MATHOP\": \"%1 de %2\",\n \"OPERATORS_MATHOP_ABS\": \"módulo\",\n \"OPERATORS_MATHOP_FLOOR\": \"arredondamento para baixo de\",\n \"OPERATORS_MATHOP_CEILING\": \"arredondamento para cima de\",\n \"OPERATORS_MATHOP_SQRT\": \"raiz quadrada\",\n \"OPERATORS_MATHOP_SIN\": \"sen\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tg\",\n \"OPERATORS_MATHOP_ASIN\": \"arcsen\",\n \"OPERATORS_MATHOP_ACOS\": \"arccos\",\n \"OPERATORS_MATHOP_ATAN\": \"arctg\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"logaritmo\",\n \"OPERATORS_MATHOP_EEXP\": \"e elevado à \",\n \"OPERATORS_MATHOP_10EXP\": \"10 elevado à \",\n \"PROCEDURES_DEFINITION\": \"defina %1\",\n \"SENSING_TOUCHINGOBJECT\": \"tocando em %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"ponteiro do mouse\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"borda\",\n \"SENSING_TOUCHINGCOLOR\": \"tocando na cor %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"a cor %1 está tocando na cor %2?\",\n \"SENSING_DISTANCETO\": \"distância até %1\",\n \"SENSING_DISTANCETO_POINTER\": \"ponteiro do mouse\",\n \"SENSING_ASKANDWAIT\": \"pergunte %1 e espere\",\n \"SENSING_ASK_TEXT\": \"Qual o seu nome?\",\n \"SENSING_ANSWER\": \"resposta\",\n \"SENSING_KEYPRESSED\": \"tecla %1 pressionada?\",\n \"SENSING_MOUSEDOWN\": \"mouse pressionado?\",\n \"SENSING_MOUSEX\": \"posição x do mouse\",\n \"SENSING_MOUSEY\": \"posição y do mouse\",\n \"SENSING_SETDRAGMODE\": \"defina modo de arrasto para %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"arrastável\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"não arrastável\",\n \"SENSING_LOUDNESS\": \"ruído\",\n \"SENSING_LOUD\": \"alto?\",\n \"SENSING_TIMER\": \"cronômetro\",\n \"SENSING_RESETTIMER\": \"zere o cronômetro\",\n \"SENSING_OF\": \"%1 de %2\",\n \"SENSING_OF_XPOSITION\": \"posição x\",\n \"SENSING_OF_YPOSITION\": \"posição y\",\n \"SENSING_OF_DIRECTION\": \"direção\",\n \"SENSING_OF_COSTUMENUMBER\": \"n° da fantasia\",\n \"SENSING_OF_COSTUMENAME\": \"nome da fantasia\",\n \"SENSING_OF_SIZE\": \"tamanho\",\n \"SENSING_OF_VOLUME\": \"volume\",\n \"SENSING_OF_BACKDROPNUMBER\": \"n° do cenário\",\n \"SENSING_OF_BACKDROPNAME\": \"nome do cenário\",\n \"SENSING_OF_STAGE\": \"Palco\",\n \"SENSING_CURRENT\": \"%1 atual\",\n \"SENSING_CURRENT_YEAR\": \"ano\",\n \"SENSING_CURRENT_MONTH\": \"mês\",\n \"SENSING_CURRENT_DATE\": \"data\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"dia da semana\",\n \"SENSING_CURRENT_HOUR\": \"hora\",\n \"SENSING_CURRENT_MINUTE\": \"minuto\",\n \"SENSING_CURRENT_SECOND\": \"segundo\",\n \"SENSING_DAYSSINCE2000\": \"número de dias desde 2000\",\n \"SENSING_USERNAME\": \"nome de usuário\",\n \"SENSING_USERID\": \"id do usuário\",\n \"SOUND_PLAY\": \"toque o som %1\",\n \"SOUND_PLAYUNTILDONE\": \"toque o som %1 até o fim\",\n \"SOUND_STOPALLSOUNDS\": \"pare todos os sons\",\n \"SOUND_SETEFFECTO\": \"mude o efeito %1 para %2\",\n \"SOUND_CHANGEEFFECTBY\": \"mude %2 no efeito %1\",\n \"SOUND_CLEAREFFECTS\": \"remova os efeitos sonoros \",\n \"SOUND_EFFECTS_PITCH\": \"tom\",\n \"SOUND_EFFECTS_PAN\": \"balanço esquerda/direita\",\n \"SOUND_CHANGEVOLUMEBY\": \"mude volume em %1\",\n \"SOUND_SETVOLUMETO\": \"mude o volume para %1%\",\n \"SOUND_VOLUME\": \"volume\",\n \"SOUND_RECORD\": \"gravar...\",\n \"CATEGORY_MOTION\": \"Movimento\",\n \"CATEGORY_LOOKS\": \"Aparência\",\n \"CATEGORY_SOUND\": \"Som\",\n \"CATEGORY_EVENTS\": \"Eventos\",\n \"CATEGORY_CONTROL\": \"Controle\",\n \"CATEGORY_SENSING\": \"Sensores\",\n \"CATEGORY_OPERATORS\": \"Operadores\",\n \"CATEGORY_VARIABLES\": \"Variáveis\",\n \"CATEGORY_MYBLOCKS\": \"Meus Blocos\",\n \"DUPLICATE\": \"Duplicar\",\n \"DELETE\": \"Apagar\",\n \"ADD_COMMENT\": \"Comentar\",\n \"REMOVE_COMMENT\": \"Remover Comentário\",\n \"DELETE_BLOCK\": \"Apagar Bloco\",\n \"DELETE_X_BLOCKS\": \"Apagar %1 Blocos\",\n \"DELETE_ALL_BLOCKS\": \"Apagar todos os blocos %1?\",\n \"CLEAN_UP\": \"Limpar Blocos\",\n \"HELP\": \"Ajuda\",\n \"UNDO\": \"Desfazer\",\n \"REDO\": \"Refazer\",\n \"EDIT_PROCEDURE\": \"Editar\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Vá para definição\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Diga algo...\",\n \"COLOUR_HUE_LABEL\": \"Cor\",\n \"COLOUR_SATURATION_LABEL\": \"Saturação\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Brilho\",\n \"CHANGE_VALUE_TITLE\": \"Mudar valor:\",\n \"RENAME_VARIABLE\": \"Renomear variável\",\n \"RENAME_VARIABLE_TITLE\": \"Renomear todas as variáveis \\\"%1\\\" para:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Renomear Variável\",\n \"NEW_VARIABLE\": \"Criar uma Variável\",\n \"NEW_VARIABLE_TITLE\": \"Nome da nova variável:\",\n \"VARIABLE_MODAL_TITLE\": \"Nova Variável\",\n \"VARIABLE_ALREADY_EXISTS\": \"Uma variável chamada \\\"%1\\\" já existe.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Uma variável chamada \\\"%1\\\" já existe para outra variável do tipo \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Apagar os %1 usos da variável \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Não é possível apagar a variável '%1' pois ela faz parte da definição do bloco '%2'\",\n \"DELETE_VARIABLE\": \"Apagar a variável '%1'\",\n \"NEW_PROCEDURE\": \"Criar um bloco\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Já existe um bloco chamado '%1'.\",\n \"PROCEDURE_DEFAULT_NAME\": \"nome do bloco\",\n \"NEW_LIST\": \"Criar uma Lista\",\n \"NEW_LIST_TITLE\": \"Nome da nova lista:\",\n \"LIST_MODAL_TITLE\": \"Nova Lista\",\n \"LIST_ALREADY_EXISTS\": \"Já existe uma lista chamada '%1'.\",\n \"RENAME_LIST_TITLE\": \"Renomear todas as listas \\\"%1\\\" para:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Renomear Lista\",\n \"DEFAULT_LIST_ITEM\": \"coisa\",\n \"DELETE_LIST\": \"Apagar a lista \\\"%1\\\"\",\n \"RENAME_LIST\": \"Renomear lista\",\n \"NEW_BROADCAST_MESSAGE\": \"Nova mensagem\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Novo nome de mensagem:\",\n \"BROADCAST_MODAL_TITLE\": \"Nova Mensagem\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"mensagem 1\"\n};\n\nBlockly.ScratchMsgs.locales[\"rap\"] =\n{\n \"CONTROL_FOREVER\": \"mo āŋa paurō te hora\",\n \"CONTROL_REPEAT\": \"haka ʾou %1\",\n \"CONTROL_IF\": \"eʾe %1 oira\",\n \"CONTROL_ELSE\": \"eʾe ina\",\n \"CONTROL_STOP\": \"noho\",\n \"CONTROL_STOP_ALL\": \"taʾatoʾa\",\n \"CONTROL_STOP_THIS\": \"te āŋa nei he programa\",\n \"CONTROL_STOP_OTHER\": \"te tahi programa i te sprite\",\n \"CONTROL_WAIT\": \"e tiaki %1 piere\",\n \"CONTROL_WAITUNTIL\": \"tiaki ki %1\",\n \"CONTROL_REPEATUNTIL\": \"hakaʾou ki %1\",\n \"CONTROL_WHILE\": \"ki te tiaki %1\",\n \"CONTROL_FOREACH\": \"mo te %1 e ai te %2\",\n \"CONTROL_STARTASCLONE\": \"ki haʾamata pahe clon\",\n \"CONTROL_CREATECLONEOF\": \"e aŋa te ko tu meʾe a o te %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"ko au mau ā\",\n \"CONTROL_DELETETHISCLONE\": \"haka kore te clon nei\",\n \"CONTROL_COUNTER\": \"te tataku\",\n \"CONTROL_INCRCOUNTER\": \"e hahaʾo te tataku\",\n \"CONTROL_CLEARCOUNTER\": \"haka kore te tataku\",\n \"CONTROL_ALLATONCE\": \"taʾatoʾa etahi no vece\",\n \"DATA_SETVARIABLETO\": \" e vaʾai ki te %1 te mau %2\",\n \"DATA_CHANGEVARIABLEBY\": \"haka rahi ki te %1 %2\",\n \"DATA_SHOWVARIABLE\": \"haka tikeʾa te variable %1\",\n \"DATA_HIDEVARIABLE\": \"e naʾa te variable %1\",\n \"DATA_ADDTOLIST\": \"ka hahaʾo te %1 ki te %2\",\n \"DATA_DELETEOFLIST\": \"haka kore %1 de %2\",\n \"DATA_DELETEALLOFLIST\": \"haka kore taʾa toʾa te %1\",\n \"DATA_INSERTATLIST\": \"e hahaʾo te %1 ki te %2 o te %3\",\n \"DATA_REPLACEITEMOFLIST\": \"ka hahaʾo te rua meʾe %1 o te %2 hai %3\",\n \"DATA_ITEMOFLIST\": \"meʾe %1 i te %2\",\n \"DATA_ITEMNUMOFLIST\": \"# o te meʾe he %1 i te %2\",\n \"DATA_LENGTHOFLIST\": \"roa roa o te %1\",\n \"DATA_LISTCONTAINSITEM\": \"¿%2 e ai era te %1?\",\n \"DATA_SHOWLIST\": \"haka tikeʾa te parau o te meʾe %1\",\n \"DATA_HIDELIST\": \"naʾa te parau %1\",\n \"DATA_INDEX_ALL\": \"taʾatoʾa\",\n \"DATA_INDEX_LAST\": \"hopeʾa\",\n \"DATA_INDEX_RANDOM\": \"aleatorio\",\n \"EVENT_WHENFLAGCLICKED\": \"ki āŋa te clic i te %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"ki āŋa te clic i te meʾe nei\",\n \"EVENT_WHENSTAGECLICKED\": \"mo ŋatu te clic i te ahu\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"mo te sprite he ŋatu te %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"ki vaʾai mai %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"ki kamiare te tuʾa nui ki te %1\",\n \"EVENT_WHENGREATERTHAN\": \" a he %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"cronómetro\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"volumen o te pakeke\",\n \"EVENT_BROADCAST\": \"haka oho %1\",\n \"EVENT_BROADCASTANDWAIT\": \"e haka oho %1 e tiaki\",\n \"EVENT_WHENKEYPRESSED\": \"mo ŋatu te pito pito %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"kona\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"teʾa maui\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"teʾa mataʾu\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"teʾa ki raro\",\n \"EVENT_WHENKEYPRESSED_UP\": \"teʾa ki ruŋa\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"taʾatoʾa meʾe\",\n \"LOOKS_SAYFORSECS\": \"e ki %1 i te %2 segundos\",\n \"LOOKS_SAY\": \"e ki %1\",\n \"LOOKS_HELLO\": \"¡Iorana!\",\n \"LOOKS_THINKFORSECS\": \"e manaʾu mmmm %1 i te %2\",\n \"LOOKS_THINK\": \"e manaʾu %1\",\n \"LOOKS_HMM\": \"Umm...\",\n \"LOOKS_SHOW\": \"haka tikeʾa\",\n \"LOOKS_HIDE\": \"naʾa\",\n \"LOOKS_HIDEALLSPRITES\": \"ka naʾa te sprite taʾatoʾa\",\n \"LOOKS_EFFECT_COLOR\": \"kiʾea\",\n \"LOOKS_EFFECT_FISHEYE\": \"ojo de pez\",\n \"LOOKS_EFFECT_WHIRL\": \"remolino\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixelar\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaico\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"ʾuira\",\n \"LOOKS_EFFECT_GHOST\": \"haka kore iti\",\n \"LOOKS_CHANGEEFFECTBY\": \"haka rahi te efecto %1 %2\",\n \"LOOKS_SETEFFECTTO\": \"ka vaʾai te efecto %1 te %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"haka kore te efectos graficos\",\n \"LOOKS_CHANGESIZEBY\": \"ka kamiare te nui nui hai %1\",\n \"LOOKS_SETSIZETO\": \"haka noho te nui nui ki te %1 %\",\n \"LOOKS_SIZE\": \"he haito\",\n \"LOOKS_CHANGESTRETCHBY\": \"haka rahi ki te haka roa roa te %1\",\n \"LOOKS_SETSTRETCHTO\": \"haka tano te haka roa roa ki te %1\",\n \"LOOKS_SWITCHCOSTUMETO\": \"ka kamiare te diseño ki te %1\",\n \"LOOKS_NEXTCOSTUME\": \"te rua diseño\",\n \"LOOKS_SWITCHBACKDROPTO\": \"ka kamiare te tuʾa nui ki te %1\",\n \"LOOKS_GOTOFRONTBACK\": \"e oho a capa %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"a muʾa ki te tahi\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"i tuʾa\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \" e oho %2 capas ki te %1\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"a muʾa ki te tahi\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"a tuʾa \",\n \"LOOKS_BACKDROPNUMBERNAME\": \"%1 o te tuʾa nui\",\n \"LOOKS_COSTUMENUMBERNAME\": \"%1 o te diseño\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"nūmera\",\n \"LOOKS_NUMBERNAME_NAME\": \"iŋoa\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"kamiare te tuʾa nui ki te %1 e ka tiaki\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"te rua tuʾa nui\",\n \"LOOKS_NEXTBACKDROP\": \"te rua tuʾa nui\",\n \"LOOKS_PREVIOUSBACKDROP\": \"tuʾa nui hoki a tuʾa\",\n \"LOOKS_RANDOMBACKDROP\": \"tuʾa nui aleatorio\",\n \"MOTION_MOVESTEPS\": \"e makenu %1 te vaʾe\",\n \"MOTION_TURNLEFT\": \"e teka %1 %2 grados\",\n \"MOTION_TURNRIGHT\": \"e teka %1 %2 grados\",\n \"MOTION_POINTINDIRECTION\": \"ka tuhi ki te kona %1\",\n \"MOTION_POINTTOWARDS\": \"ka tuki ki %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"teʾa kioʾe\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"he oho haŋa te aleatoria\",\n \"MOTION_GOTO\": \"e oho ki te %1\",\n \"MOTION_GOTO_POINTER\": \"teʾa kioʾe\",\n \"MOTION_GOTO_RANDOM\": \"posición aleatoria\",\n \"MOTION_GOTOXY\": \"e oho ki te a x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"haka nini ki te %1 piere ki te x:%2 y: %3\",\n \"MOTION_GLIDETO\": \"haka nini hai %1 piere ki te %2\",\n \"MOTION_GLIDETO_POINTER\": \"teʾa kioʾe\",\n \"MOTION_GLIDETO_RANDOM\": \"posición aleatoria\",\n \"MOTION_CHANGEXBY\": \"haka rahi te a x %1\",\n \"MOTION_SETX\": \"ka vaʾai ki te x te mau %1\",\n \"MOTION_CHANGEYBY\": \"haka rahi te y %1\",\n \"MOTION_SETY\": \"ka vaʾai ki te a e ki te %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"ana hahine ki te titi, ka rere rere\",\n \"MOTION_SETROTATIONSTYLE\": \"fijar estilo de rotación a %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"maūi - mataʾu\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"ina ko haka teka\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"ki te taʾatoʾa kona\",\n \"MOTION_XPOSITION\": \"he noho o te x\",\n \"MOTION_YPOSITION\": \"he noho o te y\",\n \"MOTION_DIRECTION\": \"ara\",\n \"MOTION_SCROLLRIGHT\": \"ka makenu ki te mataʾu %1\",\n \"MOTION_SCROLLUP\": \"ka makenu ki ruŋa %1\",\n \"MOTION_ALIGNSCENE\": \"haka titika te escena %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"i raro ki te maui\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"i raro ki mataʾu\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"ki vaeŋa\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"a ruŋa ki te maui\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"a ruŋa ki te mataʾu\",\n \"MOTION_XSCROLL\": \"he makenu hai x\",\n \"MOTION_YSCROLL\": \"he makenu hai y\",\n \"MOTION_STAGE_SELECTED\": \"escenario tuhi: ina he avahata mo te makenu\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"numera aleatorio i a %1 e %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 e %2\",\n \"OPERATORS_OR\": \"%1 o %2\",\n \"OPERATORS_NOT\": \"ina %1\",\n \"OPERATORS_JOIN\": \"ka haka piri %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"manzana\",\n \"OPERATORS_JOIN_BANANA\": \"maika\",\n \"OPERATORS_LETTEROF\": \" tiaraʾa %1 o te %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"roa roa o te %1\",\n \"OPERATORS_CONTAINS\": \"¿%2 e ai era te %1?\",\n \"OPERATORS_MOD\": \"%1 módulo %2\",\n \"OPERATORS_ROUND\": \"haka taka taka %1\",\n \"OPERATORS_MATHOP\": \"%1 o te %2\",\n \"OPERATORS_MATHOP_ABS\": \"valor absoluto\",\n \"OPERATORS_MATHOP_FLOOR\": \"suelo\",\n \"OPERATORS_MATHOP_CEILING\": \"techo\",\n \"OPERATORS_MATHOP_SQRT\": \"raíz cuadrada\",\n \"OPERATORS_MATHOP_SIN\": \"sen\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"arcsen\",\n \"OPERATORS_MATHOP_ACOS\": \"arccos\",\n \"OPERATORS_MATHOP_ATAN\": \"arctan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"haka tano te %1\",\n \"SENSING_TOUCHINGOBJECT\": \"¿e puʾa %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"teʾa kioʾe\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"tītī\",\n \"SENSING_TOUCHINGCOLOR\": \"¿e puʾa te kiea %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"¿kiea %1 ē puʾa %2?\",\n \"SENSING_DISTANCETO\": \"roa ki %1\",\n \"SENSING_DISTANCETO_POINTER\": \"teʾa kioʾe\",\n \"SENSING_ASKANDWAIT\": \"e ʾui %1 e he tiaki\",\n \"SENSING_ASK_TEXT\": \"¿ko ai toʾu iŋoa?\",\n \"SENSING_ANSWER\": \"pahono\",\n \"SENSING_KEYPRESSED\": \"¿pito pito %1 ko ŋatu ā?\",\n \"SENSING_MOUSEDOWN\": \"¿kioʾe ko te ŋatu hāŋa ā?\",\n \"SENSING_MOUSEX\": \"he kona noho x o te kioʾe\",\n \"SENSING_MOUSEY\": \"he kona noho y o te kioʾe\",\n \"SENSING_SETDRAGMODE\": \"haka titika te modo makenu ki te %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"e riva ro mo haka makenu\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"e ko tano mo haka makenu\",\n \"SENSING_LOUDNESS\": \"volumen o te pakeke\",\n \"SENSING_LOUD\": \"¿poŋeha?\",\n \"SENSING_TIMER\": \"cronómetro\",\n \"SENSING_RESETTIMER\": \"e haʾamata haka ʾou te cronómetro\",\n \"SENSING_OF\": \"%1 o te %2\",\n \"SENSING_OF_XPOSITION\": \"he noho o te x\",\n \"SENSING_OF_YPOSITION\": \"he noho o te y\",\n \"SENSING_OF_DIRECTION\": \"ara\",\n \"SENSING_OF_COSTUMENUMBER\": \"# o te diseño\",\n \"SENSING_OF_COSTUMENAME\": \"iŋoa o te diseño\",\n \"SENSING_OF_SIZE\": \"he haito\",\n \"SENSING_OF_VOLUME\": \"re´o o te computador\",\n \"SENSING_OF_BACKDROPNUMBER\": \" o te tuʾa nui\",\n \"SENSING_OF_BACKDROPNAME\": \"iŋoa o te tuʾa nui\",\n \"SENSING_OF_STAGE\": \"Ahu\",\n \"SENSING_CURRENT\": \"%1 apī\",\n \"SENSING_CURRENT_YEAR\": \"matahiti\",\n \"SENSING_CURRENT_MONTH\": \"avaʾe\",\n \"SENSING_CURRENT_DATE\": \"mahana\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"mahana o te tapati\",\n \"SENSING_CURRENT_HOUR\": \"hōra\",\n \"SENSING_CURRENT_MINUTE\": \"minuti\",\n \"SENSING_CURRENT_SECOND\": \"segundo\",\n \"SENSING_DAYSSINCE2000\": \"he mahana mai te 2000\",\n \"SENSING_USERNAME\": \"iŋoa o te usuario\",\n \"SENSING_USERID\": \"id o te kope kori\",\n \"SOUND_PLAY\": \"haʾamata te pakeke %1\",\n \"SOUND_PLAYUNTILDONE\": \"ka pakeke %1 ki te oti\",\n \"SOUND_STOPALLSOUNDS\": \"haka noho te pakeke taʾatoʾa\",\n \"SOUND_SETEFFECTO\": \"ka vaʾai te efecto %1 te %2\",\n \"SOUND_CHANGEEFFECTBY\": \"haka rahi te efecto %1 %2\",\n \"SOUND_CLEAREFFECTS\": \"haka kore te efecto o te pakeke\",\n \"SOUND_EFFECTS_PITCH\": \"roa roatano\",\n \"SOUND_EFFECTS_PAN\": \"haka iri te reʾo o a te maui o a te mataʾu\",\n \"SOUND_CHANGEVOLUMEBY\": \"ka kamiare te reʾo ki te %1\",\n \"SOUND_SETVOLUMETO\": \"haka tano te volumen al %1%\",\n \"SOUND_VOLUME\": \"re´o o te computador\",\n \"SOUND_RECORD\": \"hapaʾo…\",\n \"CATEGORY_MOTION\": \"makenu\",\n \"CATEGORY_LOOKS\": \"pahe meʾe no e tahi\",\n \"CATEGORY_SOUND\": \"pakeke\",\n \"CATEGORY_EVENTS\": \"ŋoŋoro\",\n \"CATEGORY_CONTROL\": \"aʾaru\",\n \"CATEGORY_SENSING\": \"sensores\",\n \"CATEGORY_OPERATORS\": \"operadores\",\n \"CATEGORY_VARIABLES\": \"variables\",\n \"CATEGORY_MYBLOCKS\": \"taʾaku avhata poto roa mekera\",\n \"DUPLICATE\": \"haka rahi\",\n \"DELETE\": \"haka kore\",\n \"ADD_COMMENT\": \"hahaʾo te vanāŋa\",\n \"REMOVE_COMMENT\": \"haka kore te vanaŋa\",\n \"DELETE_BLOCK\": \"haka kore te avahata poto roa\",\n \"DELETE_X_BLOCKS\": \"haka kore %1 avahata poto roa o te puŋa\",\n \"DELETE_ALL_BLOCKS\": \"¿haka kore te %1?\",\n \"CLEAN_UP\": \"apapa te mekera avahata poto roa\",\n \"HELP\": \"hāʾuʾu\",\n \"UNDO\": \"moumou\",\n \"REDO\": \"he anga haka ʾou\",\n \"EDIT_PROCEDURE\": \"haka titika\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Go to definition\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"ka ki e tahi meʾe…\",\n \"COLOUR_HUE_LABEL\": \"Kiʾea\",\n \"COLOUR_SATURATION_LABEL\": \"Saturación\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"ʾUira\",\n \"CHANGE_VALUE_TITLE\": \"kamiare te mau:\",\n \"RENAME_VARIABLE\": \"ka nape hakaʾou te variable\",\n \"RENAME_VARIABLE_TITLE\": \"ka papaʾi te variable taʾatoʾa iŋoa ko \\\"%1\\\" a:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"ka nape hakaʾou te variable\",\n \"NEW_VARIABLE\": \"he manaʾu mo āŋa te variable\",\n \"NEW_VARIABLE_TITLE\": \"iŋoa o te variable:\",\n \"VARIABLE_MODAL_TITLE\": \"variable apī\",\n \"VARIABLE_ALREADY_EXISTS\": \"ko ai a te variable iŋoa \\\"%1\\\"\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"ko ai a te variable iŋoa \\\"%1\\\" mo te rua variable o te huru \\\"%2\\\"\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"¿haka kore %1 aŋa o te variable \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"ē ko tano mo haka kore te variable \\\"%1\\\" o te ai he tano o te funcion \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"haka kore te variable %1\",\n \"NEW_PROCEDURE\": \"he manaʾu mo āŋa e tahi avahata poto roa mekerā\",\n \"PROCEDURE_ALREADY_EXISTS\": \"ko ai a te aŋa ioa ko \\\"%1\\\"\",\n \"PROCEDURE_DEFAULT_NAME\": \"iŋoa o te avahata poto roa puŋa\",\n \"NEW_LIST\": \"ka manaʾu mo āŋa te parau\",\n \"NEW_LIST_TITLE\": \"iŋoa o te parau:\",\n \"LIST_MODAL_TITLE\": \"parau apī\",\n \"LIST_ALREADY_EXISTS\": \"A list named \\\"%1\\\" already exists.\",\n \"RENAME_LIST_TITLE\": \"Rename all \\\"%1\\\" lists to:\",\n \"RENAME_LIST_MODAL_TITLE\": \"he nape hakaʾou\",\n \"DEFAULT_LIST_ITEM\": \"meʾe\",\n \"DELETE_LIST\": \"haka kore te parau %1\",\n \"RENAME_LIST\": \"he nape hakaʾou\",\n \"NEW_BROADCAST_MESSAGE\": \"parau apī\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"iŋoa o te papaʾi:\",\n \"BROADCAST_MODAL_TITLE\": \"parau apī\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"ki hāŋa1\"\n};\n\nBlockly.ScratchMsgs.locales[\"ro\"] =\n{\n \"CONTROL_FOREVER\": \"la infinit\",\n \"CONTROL_REPEAT\": \"repetă %1\",\n \"CONTROL_IF\": \"dacă %1 atunci\",\n \"CONTROL_ELSE\": \"altfel\",\n \"CONTROL_STOP\": \"stop\",\n \"CONTROL_STOP_ALL\": \"totul\",\n \"CONTROL_STOP_THIS\": \"acest script\",\n \"CONTROL_STOP_OTHER\": \"alte scripturi pentru personaj\",\n \"CONTROL_WAIT\": \"așteaptă %1 secunde\",\n \"CONTROL_WAITUNTIL\": \"așteaptă până când %1\",\n \"CONTROL_REPEATUNTIL\": \"repetă până când %1\",\n \"CONTROL_WHILE\": \"cât timp %1\",\n \"CONTROL_FOREACH\": \"pentru fiecare %1 în %2\",\n \"CONTROL_STARTASCLONE\": \"când încep ca și clonă\",\n \"CONTROL_CREATECLONEOF\": \"creează o clonă a %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"mea\",\n \"CONTROL_DELETETHISCLONE\": \"șterge această clonă\",\n \"CONTROL_COUNTER\": \"contor\",\n \"CONTROL_INCRCOUNTER\": \"incrementează contor\",\n \"CONTROL_CLEARCOUNTER\": \"resetează contor\",\n \"CONTROL_ALLATONCE\": \"integral\",\n \"DATA_SETVARIABLETO\": \"setează %1 la %2\",\n \"DATA_CHANGEVARIABLEBY\": \"modifică %1 cu %2\",\n \"DATA_SHOWVARIABLE\": \"arată variabila %1\",\n \"DATA_HIDEVARIABLE\": \"ascunde variabila %1\",\n \"DATA_ADDTOLIST\": \"adaugă %1 la %2\",\n \"DATA_DELETEOFLIST\": \"șterge %1 din %2\",\n \"DATA_DELETEALLOFLIST\": \"șterge tot din %1\",\n \"DATA_INSERTATLIST\": \"inserează %1 la %2 din %3\",\n \"DATA_REPLACEITEMOFLIST\": \"înlocuiește item %1 din %2 cu %3\",\n \"DATA_ITEMOFLIST\": \"element %1 din %2\",\n \"DATA_ITEMNUMOFLIST\": \"nr. elementului %1 în %2\",\n \"DATA_LENGTHOFLIST\": \"lungimea lui %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 conține %2?\",\n \"DATA_SHOWLIST\": \"arată lista %1\",\n \"DATA_HIDELIST\": \"ascunde lista %1\",\n \"DATA_INDEX_ALL\": \"totul\",\n \"DATA_INDEX_LAST\": \"ultim\",\n \"DATA_INDEX_RANDOM\": \"aleator\",\n \"EVENT_WHENFLAGCLICKED\": \"când se dă click pe %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"când se dă click pe acest personaj\",\n \"EVENT_WHENSTAGECLICKED\": \"când se dă clic pe scenă\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"când personajul atinge %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"când primesc %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"când decorul se schimbă la %1\",\n \"EVENT_WHENGREATERTHAN\": \"când %1>%2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"cronometru\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"intensitatea sunetului\",\n \"EVENT_BROADCAST\": \"difuzează %1\",\n \"EVENT_BROADCASTANDWAIT\": \"difuzează %1 și așteaptă\",\n \"EVENT_WHENKEYPRESSED\": \"când tasta %1 este apăsată\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"spațiu\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"săgeată stânga\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"săgeată dreapta\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"săgeată jos\",\n \"EVENT_WHENKEYPRESSED_UP\": \"săgeată în sus\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"oricare\",\n \"LOOKS_SAYFORSECS\": \"spune %1 pentru %2 secunde\",\n \"LOOKS_SAY\": \"spune %1\",\n \"LOOKS_HELLO\": \"Salut!\",\n \"LOOKS_THINKFORSECS\": \"gândește %1 pentru %2 secunde \",\n \"LOOKS_THINK\": \"gândește %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"arată\",\n \"LOOKS_HIDE\": \"ascunde\",\n \"LOOKS_HIDEALLSPRITES\": \"ascunde toate personajele\",\n \"LOOKS_EFFECT_COLOR\": \"culoare\",\n \"LOOKS_EFFECT_FISHEYE\": \"ochi de pește\",\n \"LOOKS_EFFECT_WHIRL\": \"vârtej\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixelare\",\n \"LOOKS_EFFECT_MOSAIC\": \"mozaic\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"strălucire\",\n \"LOOKS_EFFECT_GHOST\": \"fantomă\",\n \"LOOKS_CHANGEEFFECTBY\": \"modifică efectul %1 cu %2\",\n \"LOOKS_SETEFFECTTO\": \"setează efectul %1 la %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"anulează efectele grafice\",\n \"LOOKS_CHANGESIZEBY\": \"modifică mărimea cu %1\",\n \"LOOKS_SETSIZETO\": \"setează mărimea la %1 %\",\n \"LOOKS_SIZE\": \"mărime\",\n \"LOOKS_CHANGESTRETCHBY\": \"modifică lărgimea cu %1\",\n \"LOOKS_SETSTRETCHTO\": \"setează lărgimea %1\",\n \"LOOKS_SWITCHCOSTUMETO\": \"schimbă costumul la %1\",\n \"LOOKS_NEXTCOSTUME\": \"costumul următor\",\n \"LOOKS_SWITCHBACKDROPTO\": \"schimbă decorul la %1\",\n \"LOOKS_GOTOFRONTBACK\": \"mergi la stratul %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"în față\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"înapoi\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"mergi %1 %2 straturi\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"înainte\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"înapoi\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"decor %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"costumul %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"număr\",\n \"LOOKS_NUMBERNAME_NAME\": \"nume\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"schimbă decorul la %1 și așteaptă\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"decorul următor\",\n \"LOOKS_NEXTBACKDROP\": \"decorul următor\",\n \"LOOKS_PREVIOUSBACKDROP\": \"decorul anterior\",\n \"LOOKS_RANDOMBACKDROP\": \"decor aleatoriu\",\n \"MOTION_MOVESTEPS\": \"mergi %1 pași\",\n \"MOTION_TURNLEFT\": \"rotește-te %1 %2 grade\",\n \"MOTION_TURNRIGHT\": \"rotește-te %1 %2 grade\",\n \"MOTION_POINTINDIRECTION\": \"orientează-te în direcția %1\",\n \"MOTION_POINTTOWARDS\": \"orientează-te spre %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"cursorul mouse-ului\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"direcție aleatoare\",\n \"MOTION_GOTO\": \"mergi la %1\",\n \"MOTION_GOTO_POINTER\": \"cursorul mouse-ului\",\n \"MOTION_GOTO_RANDOM\": \"poziție aleatoare\",\n \"MOTION_GOTOXY\": \"mergi la x %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"glisează în %1 secunde la x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"glisează în %1 secunde la %2 \",\n \"MOTION_GLIDETO_POINTER\": \"cursorul mouse-ului\",\n \"MOTION_GLIDETO_RANDOM\": \"poziție aleatoare\",\n \"MOTION_CHANGEXBY\": \"modifică x cu %1\",\n \"MOTION_SETX\": \"setează x la %1\",\n \"MOTION_CHANGEYBY\": \"modifică y cu %1\",\n \"MOTION_SETY\": \"setează y la %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"dacă atinge marginea, ricoșează\",\n \"MOTION_SETROTATIONSTYLE\": \"setează stilul de rotație %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"stânga-dreapta\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"nu te roti\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"de jur împrejur\",\n \"MOTION_XPOSITION\": \"poziția x\",\n \"MOTION_YPOSITION\": \"poziția y\",\n \"MOTION_DIRECTION\": \"direcția\",\n \"MOTION_SCROLLRIGHT\": \"derulează la dreapta %1\",\n \"MOTION_SCROLLUP\": \"derulează în sus %1\",\n \"MOTION_ALIGNSCENE\": \"aliniază scena %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"stânga-jos\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"dreapta-jos\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"în centru\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"stânga-sus\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"dreapta-sus\",\n \"MOTION_XSCROLL\": \"derulare x\",\n \"MOTION_YSCROLL\": \"derulare y\",\n \"MOTION_STAGE_SELECTED\": \"Scena selectată: fără blocuri de mișcare\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"alege aleator între %1 și %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 și %2\",\n \"OPERATORS_OR\": \"%1 sau %2\",\n \"OPERATORS_NOT\": \"nu %1\",\n \"OPERATORS_JOIN\": \"alătură %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"măr\",\n \"OPERATORS_JOIN_BANANA\": \"banană\",\n \"OPERATORS_LETTEROF\": \"litera %1 din %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"m\",\n \"OPERATORS_LENGTH\": \"lungimea lui %1\",\n \"OPERATORS_CONTAINS\": \"%1 conține %2?\",\n \"OPERATORS_MOD\": \"%1 mod %2\",\n \"OPERATORS_ROUND\": \"rotunjește %1\",\n \"OPERATORS_MATHOP\": \"%1 din %2\",\n \"OPERATORS_MATHOP_ABS\": \"modul\",\n \"OPERATORS_MATHOP_FLOOR\": \"partea întreagă\",\n \"OPERATORS_MATHOP_CEILING\": \"rotunjire prin adaos\",\n \"OPERATORS_MATHOP_SQRT\": \"radical\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"definește %1\",\n \"SENSING_TOUCHINGOBJECT\": \"atinge %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"cursorul mouse-ului\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"marginea\",\n \"SENSING_TOUCHINGCOLOR\": \"atinge culoarea %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"culoarea %1 atinge %2?\",\n \"SENSING_DISTANCETO\": \"distanța până la %1\",\n \"SENSING_DISTANCETO_POINTER\": \"cursorul mouse-ului\",\n \"SENSING_ASKANDWAIT\": \"întreabă %1 și așteaptă\",\n \"SENSING_ASK_TEXT\": \"Cum te numești?\",\n \"SENSING_ANSWER\": \"răspuns\",\n \"SENSING_KEYPRESSED\": \"tasta %1 apăsată?\",\n \"SENSING_MOUSEDOWN\": \"butonul mouse-ului e apăsat?\",\n \"SENSING_MOUSEX\": \"mouse x\",\n \"SENSING_MOUSEY\": \"mouse y\",\n \"SENSING_SETDRAGMODE\": \"setează mod tragere %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"activat\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"dezactivat\",\n \"SENSING_LOUDNESS\": \"intensitatea sunetului\",\n \"SENSING_LOUD\": \"tare?\",\n \"SENSING_TIMER\": \"cronometru\",\n \"SENSING_RESETTIMER\": \"resetează cronometru\",\n \"SENSING_OF\": \"%1 din %2\",\n \"SENSING_OF_XPOSITION\": \"poziția x\",\n \"SENSING_OF_YPOSITION\": \"poziția y\",\n \"SENSING_OF_DIRECTION\": \"direcția\",\n \"SENSING_OF_COSTUMENUMBER\": \"nr. costum\",\n \"SENSING_OF_COSTUMENAME\": \"denumire costum\",\n \"SENSING_OF_SIZE\": \"mărime\",\n \"SENSING_OF_VOLUME\": \"volum\",\n \"SENSING_OF_BACKDROPNUMBER\": \"nr. decor\",\n \"SENSING_OF_BACKDROPNAME\": \"denumire decor\",\n \"SENSING_OF_STAGE\": \"Scenă\",\n \"SENSING_CURRENT\": \"%1 curent(ă)\",\n \"SENSING_CURRENT_YEAR\": \"anul\",\n \"SENSING_CURRENT_MONTH\": \"luna\",\n \"SENSING_CURRENT_DATE\": \"data\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"ziua săptămânii\",\n \"SENSING_CURRENT_HOUR\": \"ora\",\n \"SENSING_CURRENT_MINUTE\": \"minutul\",\n \"SENSING_CURRENT_SECOND\": \"secunda\",\n \"SENSING_DAYSSINCE2000\": \"zile din 2000\",\n \"SENSING_USERNAME\": \"nume utilizator\",\n \"SENSING_USERID\": \"id utilizator\",\n \"SOUND_PLAY\": \"pornește sunetul %1\",\n \"SOUND_PLAYUNTILDONE\": \"redă sunetul %1 până la final\",\n \"SOUND_STOPALLSOUNDS\": \"oprește toate sunetele\",\n \"SOUND_SETEFFECTO\": \"setează efectul %1 la %2\",\n \"SOUND_CHANGEEFFECTBY\": \"modifică efectul %1 cu %2\",\n \"SOUND_CLEAREFFECTS\": \"șterge efectele audio\",\n \"SOUND_EFFECTS_PITCH\": \"înălțimea sunetului\",\n \"SOUND_EFFECTS_PAN\": \"deplasare la stânga/dreapta\",\n \"SOUND_CHANGEVOLUMEBY\": \"modifică volumul cu %1\",\n \"SOUND_SETVOLUMETO\": \"setează volumul la %1%\",\n \"SOUND_VOLUME\": \"volum\",\n \"SOUND_RECORD\": \"se înregistrează...\",\n \"CATEGORY_MOTION\": \"Mișcare\",\n \"CATEGORY_LOOKS\": \"Aspect\",\n \"CATEGORY_SOUND\": \"Sunet\",\n \"CATEGORY_EVENTS\": \"Evenimente\",\n \"CATEGORY_CONTROL\": \"Control\",\n \"CATEGORY_SENSING\": \"Detectare\",\n \"CATEGORY_OPERATORS\": \"Operatori\",\n \"CATEGORY_VARIABLES\": \"Variabile\",\n \"CATEGORY_MYBLOCKS\": \"Blocurile mele\",\n \"DUPLICATE\": \"Duplică\",\n \"DELETE\": \"Șterge\",\n \"ADD_COMMENT\": \"Adaugă comentariu\",\n \"REMOVE_COMMENT\": \"Șterge comentariul\",\n \"DELETE_BLOCK\": \"Șterge blocul\",\n \"DELETE_X_BLOCKS\": \"Șterge %1 blocuri\",\n \"DELETE_ALL_BLOCKS\": \"Șterg toate %1 blocuri?\",\n \"CLEAN_UP\": \"Șterge blocurile\",\n \"HELP\": \"Ajutor\",\n \"UNDO\": \"Anulează ultima modificare\",\n \"REDO\": \"Refă acțiunea anulată\",\n \"EDIT_PROCEDURE\": \"Editează\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Mergi la definiție\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Spune ceva ...\",\n \"COLOUR_HUE_LABEL\": \"Culoare\",\n \"COLOUR_SATURATION_LABEL\": \"Saturație\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Strălucire\",\n \"CHANGE_VALUE_TITLE\": \"Modifică valoarea:\",\n \"RENAME_VARIABLE\": \"Redenumește variabila\",\n \"RENAME_VARIABLE_TITLE\": \"Redenumește peste tot variabila \\\"%1\\\" la:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Redenumește variabila\",\n \"NEW_VARIABLE\": \"Creează o variabilă\",\n \"NEW_VARIABLE_TITLE\": \"Numele variabilei:\",\n \"VARIABLE_MODAL_TITLE\": \"Variabilă nouă\",\n \"VARIABLE_ALREADY_EXISTS\": \"O variabilă denumită \\\"%1\\\" există deja.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"O variabilă cu numele \\\"%1\\\" există deja pentru o altă variabilă de tip \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Șterge %1 utilizări ale variabilei \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Variabila cu numele \\\"%1\\\" nu poate fi ștearsă deoarece este parte a definiției funcției \\\"%2\\\". \",\n \"DELETE_VARIABLE\": \"Șterge variabila cu numele \\\"%1\\\" .\",\n \"NEW_PROCEDURE\": \"Creează un bloc\",\n \"PROCEDURE_ALREADY_EXISTS\": \"O procedură cu numele \\\"%1\\\" există deja.\",\n \"PROCEDURE_DEFAULT_NAME\": \"numele blocului\",\n \"NEW_LIST\": \"Creează o listă\",\n \"NEW_LIST_TITLE\": \"Noul nume al listei:\",\n \"LIST_MODAL_TITLE\": \"Listă nouă\",\n \"LIST_ALREADY_EXISTS\": \"O listă cu numele \\\"%1\\\" există deja.\",\n \"RENAME_LIST_TITLE\": \"Redenumește peste tot lista \\\"%1\\\" la:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Redenumește lista\",\n \"DEFAULT_LIST_ITEM\": \"element\",\n \"DELETE_LIST\": \"Șterge lista \\\"%1\\\" \",\n \"RENAME_LIST\": \"Redenumește lista\",\n \"NEW_BROADCAST_MESSAGE\": \"Mesaj nou\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Numele mesajului\",\n \"BROADCAST_MODAL_TITLE\": \"Mesaj nou\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"mesaj1\"\n};\n\nBlockly.ScratchMsgs.locales[\"ru\"] =\n{\n \"CONTROL_FOREVER\": \"повторять всегда\",\n \"CONTROL_REPEAT\": \"повторить %1 раз\",\n \"CONTROL_IF\": \"если %1 , то\",\n \"CONTROL_ELSE\": \"иначе\",\n \"CONTROL_STOP\": \"стоп\",\n \"CONTROL_STOP_ALL\": \"все\",\n \"CONTROL_STOP_THIS\": \"этот скрипт\",\n \"CONTROL_STOP_OTHER\": \"другие скрипты спрайта\",\n \"CONTROL_WAIT\": \"ждать %1 секунд\",\n \"CONTROL_WAITUNTIL\": \"ждать до %1\",\n \"CONTROL_REPEATUNTIL\": \"повторять пока не %1\",\n \"CONTROL_WHILE\": \"пока %1\",\n \"CONTROL_FOREACH\": \"для каждого %1 в %2\",\n \"CONTROL_STARTASCLONE\": \"когда я начинаю как клон\",\n \"CONTROL_CREATECLONEOF\": \"создать клон %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"самого себя\",\n \"CONTROL_DELETETHISCLONE\": \"удалить клон\",\n \"CONTROL_COUNTER\": \"счётчик\",\n \"CONTROL_INCRCOUNTER\": \"увеличить счётчик\",\n \"CONTROL_CLEARCOUNTER\": \"очистить счётчик\",\n \"CONTROL_ALLATONCE\": \"все сразу\",\n \"DATA_SETVARIABLETO\": \"задать %1 значение %2\",\n \"DATA_CHANGEVARIABLEBY\": \"изменить %1 на %2\",\n \"DATA_SHOWVARIABLE\": \"показать переменную %1\",\n \"DATA_HIDEVARIABLE\": \"скрыть переменную %1\",\n \"DATA_ADDTOLIST\": \"добавить %1 к %2\",\n \"DATA_DELETEOFLIST\": \"удалить %1 из %2\",\n \"DATA_DELETEALLOFLIST\": \"удалить все из %1\",\n \"DATA_INSERTATLIST\": \"вставить %1 в %3 из %2\",\n \"DATA_REPLACEITEMOFLIST\": \"заменить элемент %1 в %2 на %3\",\n \"DATA_ITEMOFLIST\": \"элемент %1 в %2\",\n \"DATA_ITEMNUMOFLIST\": \"элемент # из %1 в %2\",\n \"DATA_LENGTHOFLIST\": \"длина списка %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 содержит %2?\",\n \"DATA_SHOWLIST\": \"показать список %1\",\n \"DATA_HIDELIST\": \"скрыть список %1\",\n \"DATA_INDEX_ALL\": \"все\",\n \"DATA_INDEX_LAST\": \"последний\",\n \"DATA_INDEX_RANDOM\": \"случайный\",\n \"EVENT_WHENFLAGCLICKED\": \"когда %1 нажат\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"когда спрайт нажат\",\n \"EVENT_WHENSTAGECLICKED\": \"когда кликнут по сцене\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"когда этот спрайт касается %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"когда я получу %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"когда фон сменился на %1\",\n \"EVENT_WHENGREATERTHAN\": \"когда %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"таймер\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"громкость\",\n \"EVENT_BROADCAST\": \"передать %1\",\n \"EVENT_BROADCASTANDWAIT\": \"передать %1 и ждать до конца\",\n \"EVENT_WHENKEYPRESSED\": \"когда клавиша %1 нажата\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"пробел\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"стрелка влево\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"стрелка вправо\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"стрелка вниз\",\n \"EVENT_WHENKEYPRESSED_UP\": \"стрелка вверх\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"любая\",\n \"LOOKS_SAYFORSECS\": \"говорить %1 %2 секунд\",\n \"LOOKS_SAY\": \"сказать %1\",\n \"LOOKS_HELLO\": \"Привет!\",\n \"LOOKS_THINKFORSECS\": \"думать %1 %2 секунд\",\n \"LOOKS_THINK\": \"думать %1\",\n \"LOOKS_HMM\": \"М-м-м...\",\n \"LOOKS_SHOW\": \"показаться\",\n \"LOOKS_HIDE\": \"спрятаться\",\n \"LOOKS_HIDEALLSPRITES\": \"спрятать все спрайты\",\n \"LOOKS_EFFECT_COLOR\": \"цвет\",\n \"LOOKS_EFFECT_FISHEYE\": \"рыбий глаз\",\n \"LOOKS_EFFECT_WHIRL\": \"завихрение\",\n \"LOOKS_EFFECT_PIXELATE\": \"укрупнение пикселей\",\n \"LOOKS_EFFECT_MOSAIC\": \"мозаика\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"яркость\",\n \"LOOKS_EFFECT_GHOST\": \"прозрачность\",\n \"LOOKS_CHANGEEFFECTBY\": \"изменить эффект %1 на %2\",\n \"LOOKS_SETEFFECTTO\": \"установить эффект %1 %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"убрать графические эффекты\",\n \"LOOKS_CHANGESIZEBY\": \"изменить размер на %1 %\",\n \"LOOKS_SETSIZETO\": \"установить размер %1 %\",\n \"LOOKS_SIZE\": \"размер\",\n \"LOOKS_CHANGESTRETCHBY\": \"изменить натяжение на %1\",\n \"LOOKS_SETSTRETCHTO\": \"установить натяжение %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"изменить костюм на %1\",\n \"LOOKS_NEXTCOSTUME\": \"следующий костюм\",\n \"LOOKS_SWITCHBACKDROPTO\": \"переключить фон на %1\",\n \"LOOKS_GOTOFRONTBACK\": \"перейти на %1 слой\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"передний\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"задний\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"перейти %1 на %2 слоя\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"вперёд\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"назад\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"фон %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"костюм %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"номер\",\n \"LOOKS_NUMBERNAME_NAME\": \"имя\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"переключить фон на %1 и ждать\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"следующий фон\",\n \"LOOKS_NEXTBACKDROP\": \"следующий фон\",\n \"LOOKS_PREVIOUSBACKDROP\": \"предыдущий фон\",\n \"LOOKS_RANDOMBACKDROP\": \"случайный фон\",\n \"MOTION_MOVESTEPS\": \"идти %1 шагов\",\n \"MOTION_TURNLEFT\": \"повернуть %1 на %2 градусов\",\n \"MOTION_TURNRIGHT\": \"повернуть %1 на %2 градусов\",\n \"MOTION_POINTINDIRECTION\": \"повернуться в направлении %1\",\n \"MOTION_POINTTOWARDS\": \"повернуться к %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"указатель мыши\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"случайно направление\",\n \"MOTION_GOTO\": \"перейти на %1\",\n \"MOTION_GOTO_POINTER\": \"указатель мыши\",\n \"MOTION_GOTO_RANDOM\": \"случайное положение\",\n \"MOTION_GOTOXY\": \"перейти в x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"плыть %1 секунд в точку x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"плыть %1 секунд к %2\",\n \"MOTION_GLIDETO_POINTER\": \"указатель мыши\",\n \"MOTION_GLIDETO_RANDOM\": \"случайное положение\",\n \"MOTION_CHANGEXBY\": \"изменить x на %1\",\n \"MOTION_SETX\": \"установить x в %1\",\n \"MOTION_CHANGEYBY\": \"изменить y на %1\",\n \"MOTION_SETY\": \"установить y в %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"если касается края, оттолкнуться\",\n \"MOTION_SETROTATIONSTYLE\": \"установить способ вращения %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"влево-вправо\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"не вращать\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"кругом\",\n \"MOTION_XPOSITION\": \"положение x\",\n \"MOTION_YPOSITION\": \"положение y\",\n \"MOTION_DIRECTION\": \"направление\",\n \"MOTION_SCROLLRIGHT\": \"прокрутить вправо %1\",\n \"MOTION_SCROLLUP\": \"прокрутить вверх %1\",\n \"MOTION_ALIGNSCENE\": \"выровнять сцену %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"нижний левый\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"нижний правый\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"середина\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"верхний левый\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"верхний правый\",\n \"MOTION_XSCROLL\": \"x прокрутка\",\n \"MOTION_YSCROLL\": \"y прокрутка\",\n \"MOTION_STAGE_SELECTED\": \"Выбрана сцена: нет блоков движения\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"выдать случайное от %1 до %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 и %2\",\n \"OPERATORS_OR\": \"%1 или %2\",\n \"OPERATORS_NOT\": \"не %1\",\n \"OPERATORS_JOIN\": \"объединить %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"яблоко\",\n \"OPERATORS_JOIN_BANANA\": \"банан\",\n \"OPERATORS_LETTEROF\": \"буква %1 в %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"а\",\n \"OPERATORS_LENGTH\": \"длина %1\",\n \"OPERATORS_CONTAINS\": \"%1 содержит %2?\",\n \"OPERATORS_MOD\": \"%1 модуль %2\",\n \"OPERATORS_ROUND\": \"округлить %1\",\n \"OPERATORS_MATHOP\": \"%1 от %2\",\n \"OPERATORS_MATHOP_ABS\": \"модуль\",\n \"OPERATORS_MATHOP_FLOOR\": \"целое меньшее\",\n \"OPERATORS_MATHOP_CEILING\": \"целое большее\",\n \"OPERATORS_MATHOP_SQRT\": \"квадратный корень\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"определить %1\",\n \"SENSING_TOUCHINGOBJECT\": \"касается %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"указатель мыши\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"край\",\n \"SENSING_TOUCHINGCOLOR\": \"касается цвета %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"цвет %1 касается цвета %2?\",\n \"SENSING_DISTANCETO\": \"расстояние до %1\",\n \"SENSING_DISTANCETO_POINTER\": \"указатель мыши\",\n \"SENSING_ASKANDWAIT\": \"спросить %1 и ждать\",\n \"SENSING_ASK_TEXT\": \"Как тебя зовут?\",\n \"SENSING_ANSWER\": \"ответ\",\n \"SENSING_KEYPRESSED\": \"клавиша %1 нажата?\",\n \"SENSING_MOUSEDOWN\": \"мышь нажата?\",\n \"SENSING_MOUSEX\": \"x мыши\",\n \"SENSING_MOUSEY\": \"y мыши\",\n \"SENSING_SETDRAGMODE\": \"перетаскивать %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"можно\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"нельзя\",\n \"SENSING_LOUDNESS\": \"громкость\",\n \"SENSING_LOUD\": \"громко?\",\n \"SENSING_TIMER\": \"таймер\",\n \"SENSING_RESETTIMER\": \"сбросить таймер\",\n \"SENSING_OF\": \"%1 от %2\",\n \"SENSING_OF_XPOSITION\": \"положение x\",\n \"SENSING_OF_YPOSITION\": \"положение y\",\n \"SENSING_OF_DIRECTION\": \"направление\",\n \"SENSING_OF_COSTUMENUMBER\": \"костюм #\",\n \"SENSING_OF_COSTUMENAME\": \"имя костюма\",\n \"SENSING_OF_SIZE\": \"размер\",\n \"SENSING_OF_VOLUME\": \"громкость\",\n \"SENSING_OF_BACKDROPNUMBER\": \"фон #\",\n \"SENSING_OF_BACKDROPNAME\": \"имя фона\",\n \"SENSING_OF_STAGE\": \"Сцена\",\n \"SENSING_CURRENT\": \"текущий %1\",\n \"SENSING_CURRENT_YEAR\": \"год\",\n \"SENSING_CURRENT_MONTH\": \"месяц\",\n \"SENSING_CURRENT_DATE\": \"дата\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"день недели\",\n \"SENSING_CURRENT_HOUR\": \"час\",\n \"SENSING_CURRENT_MINUTE\": \"минута\",\n \"SENSING_CURRENT_SECOND\": \"секунда\",\n \"SENSING_DAYSSINCE2000\": \"дней с 2000 г\",\n \"SENSING_USERNAME\": \"имя пользователя\",\n \"SENSING_USERID\": \"id пользователя\",\n \"SOUND_PLAY\": \"включить звук %1\",\n \"SOUND_PLAYUNTILDONE\": \"играть звук %1 до конца\",\n \"SOUND_STOPALLSOUNDS\": \"остановить все звуки\",\n \"SOUND_SETEFFECTO\": \"установить эффект %1 в %2\",\n \"SOUND_CHANGEEFFECTBY\": \"изменить %1 эффект на %2\",\n \"SOUND_CLEAREFFECTS\": \"убрать звуковые эффекты\",\n \"SOUND_EFFECTS_PITCH\": \"питч\",\n \"SOUND_EFFECTS_PAN\": \"положение слева/справа\",\n \"SOUND_CHANGEVOLUMEBY\": \"изменить громкость на %1\",\n \"SOUND_SETVOLUMETO\": \"установить громкость %1%\",\n \"SOUND_VOLUME\": \"громкость звука\",\n \"SOUND_RECORD\": \"запись…\",\n \"CATEGORY_MOTION\": \"Движение\",\n \"CATEGORY_LOOKS\": \"Внешний вид\",\n \"CATEGORY_SOUND\": \"Звук\",\n \"CATEGORY_EVENTS\": \"События\",\n \"CATEGORY_CONTROL\": \"Управление\",\n \"CATEGORY_SENSING\": \"Сенсоры\",\n \"CATEGORY_OPERATORS\": \"Операторы\",\n \"CATEGORY_VARIABLES\": \"Переменные\",\n \"CATEGORY_MYBLOCKS\": \"Другие блоки\",\n \"DUPLICATE\": \"Дублировать\",\n \"DELETE\": \"Удалить\",\n \"ADD_COMMENT\": \"Добавить комментарий\",\n \"REMOVE_COMMENT\": \"Удалить комментарий\",\n \"DELETE_BLOCK\": \"Удалить блок\",\n \"DELETE_X_BLOCKS\": \"Удалить %1 блоки\",\n \"DELETE_ALL_BLOCKS\": \"Удалить все %1 блоки?\",\n \"CLEAN_UP\": \"Очистить блоки\",\n \"HELP\": \"Помощь\",\n \"UNDO\": \"Отменить\",\n \"REDO\": \"Вернуть\",\n \"EDIT_PROCEDURE\": \"Редактировать\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Перейти к определению\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Скажи что-нибудь...\",\n \"COLOUR_HUE_LABEL\": \"Цвет\",\n \"COLOUR_SATURATION_LABEL\": \"Насыщенность\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Яркость\",\n \"CHANGE_VALUE_TITLE\": \"Изменить значение:\",\n \"RENAME_VARIABLE\": \"Переименовать переменную\",\n \"RENAME_VARIABLE_TITLE\": \"Переименовать все \\\"%1\\\" переменных в:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Переименовать переменную\",\n \"NEW_VARIABLE\": \"Создать переменную\",\n \"NEW_VARIABLE_TITLE\": \"Имя новой переменной:\",\n \"VARIABLE_MODAL_TITLE\": \"Новая переменная\",\n \"VARIABLE_ALREADY_EXISTS\": \"Переменная с именем \\\"%1\\\" уже существует.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"переменная с именем \\\"%1\\\" уже существует в другом типе переменных \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Удалить %1 использований \\\"%2\\\" переменной?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Нельзя удалить переменную \\\"%1\\\", так как она является частью определения функции \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Удалить переменную \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Создать блок\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Процедура с именем \\\"%1\\\" уже существует.\",\n \"PROCEDURE_DEFAULT_NAME\": \"название блока\",\n \"NEW_LIST\": \"Создать список\",\n \"NEW_LIST_TITLE\": \"Имя нового списка:\",\n \"LIST_MODAL_TITLE\": \"Новый список\",\n \"LIST_ALREADY_EXISTS\": \"Список с именем \\\"%1\\\" уже существует.\",\n \"RENAME_LIST_TITLE\": \"Переименовать все \\\"%1\\\" списки в:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Переименовать список\",\n \"DEFAULT_LIST_ITEM\": \"что-то\",\n \"DELETE_LIST\": \"Удалить список \\\"%1\\\"\",\n \"RENAME_LIST\": \"Переименовать список\",\n \"NEW_BROADCAST_MESSAGE\": \"Новое сообщение\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Новое имя сообщения:\",\n \"BROADCAST_MODAL_TITLE\": \"Новое сообщение\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"сообщение1\"\n};\n\nBlockly.ScratchMsgs.locales[\"sr\"] =\n{\n \"CONTROL_FOREVER\": \"понављај заувек\",\n \"CONTROL_REPEAT\": \"понови %1\",\n \"CONTROL_IF\": \"ако је %1 онда\",\n \"CONTROL_ELSE\": \"у супротном\",\n \"CONTROL_STOP\": \"заустави\",\n \"CONTROL_STOP_ALL\": \"све\",\n \"CONTROL_STOP_THIS\": \"овај програм\",\n \"CONTROL_STOP_OTHER\": \"друге програме лика\",\n \"CONTROL_WAIT\": \"чекај %1 секунду\",\n \"CONTROL_WAITUNTIL\": \"чекај док не %1\",\n \"CONTROL_REPEATUNTIL\": \"понављај до %1\",\n \"CONTROL_WHILE\": \"док је %1\",\n \"CONTROL_FOREACH\": \"за сваки %1 у %2\",\n \"CONTROL_STARTASCLONE\": \"када се појавим као умножак\",\n \"CONTROL_CREATECLONEOF\": \"направи дупликат од %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"мене\",\n \"CONTROL_DELETETHISCLONE\": \"обриши овај умножак\",\n \"CONTROL_COUNTER\": \"бројач\",\n \"CONTROL_INCRCOUNTER\": \"увећај бројач\",\n \"CONTROL_CLEARCOUNTER\": \"обриши бројач\",\n \"CONTROL_ALLATONCE\": \"све одједном\",\n \"DATA_SETVARIABLETO\": \"нека %1 буде %2\",\n \"DATA_CHANGEVARIABLEBY\": \"промени %1 за %2\",\n \"DATA_SHOWVARIABLE\": \"прикажи променљиву %1\",\n \"DATA_HIDEVARIABLE\": \"сакриј променљиву %1\",\n \"DATA_ADDTOLIST\": \"додај %1 у %2\",\n \"DATA_DELETEOFLIST\": \"обриши %1 из %2\",\n \"DATA_DELETEALLOFLIST\": \"обриши све из %1\",\n \"DATA_INSERTATLIST\": \"убаци %1 на %2 у %3\",\n \"DATA_REPLACEITEMOFLIST\": \"замени елемент %1 у %2 са %3\",\n \"DATA_ITEMOFLIST\": \"елемент %1 из %2\",\n \"DATA_ITEMNUMOFLIST\": \"место од %1 у %2\",\n \"DATA_LENGTHOFLIST\": \"дужина %1\",\n \"DATA_LISTCONTAINSITEM\": \"да ли %1 садржи %2?\",\n \"DATA_SHOWLIST\": \"прикажи листу %1\",\n \"DATA_HIDELIST\": \"сакриј листу %1\",\n \"DATA_INDEX_ALL\": \"све\",\n \"DATA_INDEX_LAST\": \"последњи\",\n \"DATA_INDEX_RANDOM\": \"насумичан\",\n \"EVENT_WHENFLAGCLICKED\": \"када је кликнуто на %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"када је кликнуто на овај лик\",\n \"EVENT_WHENSTAGECLICKED\": \"када је кликнуто на позорницу\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"када овај лик додирне %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"када примим %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"када се позадина промени у %1\",\n \"EVENT_WHENGREATERTHAN\": \"када је %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"тајмер\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"јачина звука\",\n \"EVENT_BROADCAST\": \"разгласи %1\",\n \"EVENT_BROADCASTANDWAIT\": \"разгласи %1 и чекај\",\n \"EVENT_WHENKEYPRESSED\": \"када је дирка %1 притиснута\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"размак\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"стрелица лево\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"стрелица десно\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"стрелица доле\",\n \"EVENT_WHENKEYPRESSED_UP\": \"стрелица горе\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"било који\",\n \"LOOKS_SAYFORSECS\": \"изговори %1 током %2 секунде\",\n \"LOOKS_SAY\": \"изговори %1\",\n \"LOOKS_HELLO\": \"Здраво!\",\n \"LOOKS_THINKFORSECS\": \"замисли %1 током %2 секунде\",\n \"LOOKS_THINK\": \"замисли %1\",\n \"LOOKS_HMM\": \"Хмм...\",\n \"LOOKS_SHOW\": \"прикажи\",\n \"LOOKS_HIDE\": \"сакриј\",\n \"LOOKS_HIDEALLSPRITES\": \"сакриј све ликове\",\n \"LOOKS_EFFECT_COLOR\": \"боја\",\n \"LOOKS_EFFECT_FISHEYE\": \"рибље око\",\n \"LOOKS_EFFECT_WHIRL\": \"вртлог\",\n \"LOOKS_EFFECT_PIXELATE\": \"позрнати\",\n \"LOOKS_EFFECT_MOSAIC\": \"мозаик\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"осветљеност\",\n \"LOOKS_EFFECT_GHOST\": \"дух\",\n \"LOOKS_CHANGEEFFECTBY\": \"промени ефекат %1 за %2\",\n \"LOOKS_SETEFFECTTO\": \"нека ефекат %1 буде %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"уклони графичке ефекте\",\n \"LOOKS_CHANGESIZEBY\": \"промени величину за %1\",\n \"LOOKS_SETSIZETO\": \"нека величина буде %1 %\",\n \"LOOKS_SIZE\": \"величина\",\n \"LOOKS_CHANGESTRETCHBY\": \"промени увећање за %1\",\n \"LOOKS_SETSTRETCHTO\": \"нека увећање буде %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"замени костим са %1\",\n \"LOOKS_NEXTCOSTUME\": \"следећи костим\",\n \"LOOKS_SWITCHBACKDROPTO\": \"промени позадину у %1\",\n \"LOOKS_GOTOFRONTBACK\": \"иди на %1 слој\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"напред\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"назад\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"иди %1 %2 слоја\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"проследи\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"уназад\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"позадина %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"костим %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"број\",\n \"LOOKS_NUMBERNAME_NAME\": \"име\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"промени позадину у %1 и чекај\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"следећа позадина\",\n \"LOOKS_NEXTBACKDROP\": \"следећа позадина\",\n \"LOOKS_PREVIOUSBACKDROP\": \"претходна позадина\",\n \"LOOKS_RANDOMBACKDROP\": \"случајна позадина\",\n \"MOTION_MOVESTEPS\": \"иди %1 корака\",\n \"MOTION_TURNLEFT\": \"окрет %1 за %2 степени\",\n \"MOTION_TURNRIGHT\": \"окрет %1 за %2 степени\",\n \"MOTION_POINTINDIRECTION\": \"усмери се ка %1\",\n \"MOTION_POINTTOWARDS\": \"усмери се ка %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"показивач миша\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"насумичан правац\",\n \"MOTION_GOTO\": \"иди до %1\",\n \"MOTION_GOTO_POINTER\": \"показивач миша\",\n \"MOTION_GOTO_RANDOM\": \"насумичан положај\",\n \"MOTION_GOTOXY\": \"иди до x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"клизи %1 секунди до x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"клизи %1 секунди до %2\",\n \"MOTION_GLIDETO_POINTER\": \"показивач миша\",\n \"MOTION_GLIDETO_RANDOM\": \"случајан положај\",\n \"MOTION_CHANGEXBY\": \"промени x за %1\",\n \"MOTION_SETX\": \"нека x буде %1\",\n \"MOTION_CHANGEYBY\": \"промени y за %1\",\n \"MOTION_SETY\": \"нека y буде %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"ако си на рубу, окрени се\",\n \"MOTION_SETROTATIONSTYLE\": \"подеси начин окретања %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"лево-десно\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"без окретања\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"на све стране\",\n \"MOTION_XPOSITION\": \"место х\",\n \"MOTION_YPOSITION\": \"место у\",\n \"MOTION_DIRECTION\": \"смер\",\n \"MOTION_SCROLLRIGHT\": \"клизи у десно %1\",\n \"MOTION_SCROLLUP\": \"клизи горе %1\",\n \"MOTION_ALIGNSCENE\": \"поравнај сцену %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"доле-лево\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"доле-десно\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"средина\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"горе-лево\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"горе-десно\",\n \"MOTION_XSCROLL\": \"x клизање\",\n \"MOTION_YSCROLL\": \"y клизање\",\n \"MOTION_STAGE_SELECTED\": \"Издабрана је позорница: нема блокова за кретање\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"случајан број од %1 до %2 \",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 и %2\",\n \"OPERATORS_OR\": \"%1 или %2\",\n \"OPERATORS_NOT\": \"није %1\",\n \"OPERATORS_JOIN\": \"споји %1 и %2\",\n \"OPERATORS_JOIN_APPLE\": \"јабука\",\n \"OPERATORS_JOIN_BANANA\": \"банана\",\n \"OPERATORS_LETTEROF\": \"%1 слово од %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"ј\",\n \"OPERATORS_LENGTH\": \"дужина %1\",\n \"OPERATORS_CONTAINS\": \"%1 садржи %2\",\n \"OPERATORS_MOD\": \"%1 мод %2\",\n \"OPERATORS_ROUND\": \"заокружи %1\",\n \"OPERATORS_MATHOP\": \"%1 од %2\",\n \"OPERATORS_MATHOP_ABS\": \"абс\",\n \"OPERATORS_MATHOP_FLOOR\": \"цео део\",\n \"OPERATORS_MATHOP_CEILING\": \"цео+1\",\n \"OPERATORS_MATHOP_SQRT\": \"корен\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tg\",\n \"OPERATORS_MATHOP_ASIN\": \"arcsin\",\n \"OPERATORS_MATHOP_ACOS\": \"arccos\",\n \"OPERATORS_MATHOP_ATAN\": \"arctan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"дефиниши %1\",\n \"SENSING_TOUCHINGOBJECT\": \"додирује ли %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"показивач миша\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"ивица\",\n \"SENSING_TOUCHINGCOLOR\": \"додирује ли боју %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"боја %1 додирује %2?\",\n \"SENSING_DISTANCETO\": \"удаљеност од %1\",\n \"SENSING_DISTANCETO_POINTER\": \"показивач миша\",\n \"SENSING_ASKANDWAIT\": \"питај %1 и чекај\",\n \"SENSING_ASK_TEXT\": \"Како се зовеш?\",\n \"SENSING_ANSWER\": \"одговор\",\n \"SENSING_KEYPRESSED\": \"дугме %1 је притиснуто?\",\n \"SENSING_MOUSEDOWN\": \"миш притиснут?\",\n \"SENSING_MOUSEX\": \"миш x\",\n \"SENSING_MOUSEY\": \"миш y\",\n \"SENSING_SETDRAGMODE\": \"нека начин превлачења буде %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"превлачиво\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"није превлачиво\",\n \"SENSING_LOUDNESS\": \"јачина звука\",\n \"SENSING_LOUD\": \"гласно?\",\n \"SENSING_TIMER\": \"тајмер\",\n \"SENSING_RESETTIMER\": \"постави тајмер на 0\",\n \"SENSING_OF\": \"%1 од %2\",\n \"SENSING_OF_XPOSITION\": \"x положај\",\n \"SENSING_OF_YPOSITION\": \"y положај\",\n \"SENSING_OF_DIRECTION\": \"смер\",\n \"SENSING_OF_COSTUMENUMBER\": \"број костима\",\n \"SENSING_OF_COSTUMENAME\": \"име костима\",\n \"SENSING_OF_SIZE\": \"величина\",\n \"SENSING_OF_VOLUME\": \"јачина звука\",\n \"SENSING_OF_BACKDROPNUMBER\": \"број позадине\",\n \"SENSING_OF_BACKDROPNAME\": \"име позадине\",\n \"SENSING_OF_STAGE\": \"Позорница\",\n \"SENSING_CURRENT\": \"тренутно %1\",\n \"SENSING_CURRENT_YEAR\": \"година\",\n \"SENSING_CURRENT_MONTH\": \"месец\",\n \"SENSING_CURRENT_DATE\": \"датум\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"дан у недељи\",\n \"SENSING_CURRENT_HOUR\": \"сат\",\n \"SENSING_CURRENT_MINUTE\": \"минут\",\n \"SENSING_CURRENT_SECOND\": \"секунда\",\n \"SENSING_DAYSSINCE2000\": \"дана после 2000\",\n \"SENSING_USERNAME\": \"корисничко име\",\n \"SENSING_USERID\": \"Корисников ид\",\n \"SOUND_PLAY\": \"покрени звук %1\",\n \"SOUND_PLAYUNTILDONE\": \"репродукуј звук %1 до краја\",\n \"SOUND_STOPALLSOUNDS\": \"заустави све звукове\",\n \"SOUND_SETEFFECTO\": \"нека ефекат %1 буде %2\",\n \"SOUND_CHANGEEFFECTBY\": \"промени ефекат %1 за %2\",\n \"SOUND_CLEAREFFECTS\": \"уклони звучне ефекте\",\n \"SOUND_EFFECTS_PITCH\": \"висина тона\",\n \"SOUND_EFFECTS_PAN\": \"померање лево/десно\",\n \"SOUND_CHANGEVOLUMEBY\": \"промени јачину звука за %1\",\n \"SOUND_SETVOLUMETO\": \"нека јачина звука буде %1%\",\n \"SOUND_VOLUME\": \"јачина звука\",\n \"SOUND_RECORD\": \"сними...\",\n \"CATEGORY_MOTION\": \"Кретање\",\n \"CATEGORY_LOOKS\": \"Изглед\",\n \"CATEGORY_SOUND\": \"Звук\",\n \"CATEGORY_EVENTS\": \"Догађаји\",\n \"CATEGORY_CONTROL\": \"Управљање\",\n \"CATEGORY_SENSING\": \"Осећаји\",\n \"CATEGORY_OPERATORS\": \"Оператори\",\n \"CATEGORY_VARIABLES\": \"Променљиве\",\n \"CATEGORY_MYBLOCKS\": \"Моји блокови\",\n \"DUPLICATE\": \"Умножи\",\n \"DELETE\": \"Обриши\",\n \"ADD_COMMENT\": \"Додај коментар\",\n \"REMOVE_COMMENT\": \"Уклони коментар\",\n \"DELETE_BLOCK\": \"Обриши блок\",\n \"DELETE_X_BLOCKS\": \"Обриши %1 блокова\",\n \"DELETE_ALL_BLOCKS\": \"Обрисати свих %1 блокова?\",\n \"CLEAN_UP\": \"Поспреми блокове\",\n \"HELP\": \"Помоћ\",\n \"UNDO\": \"Опозови\",\n \"REDO\": \"Понови\",\n \"EDIT_PROCEDURE\": \"Уреди\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Иди до дефиниције\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Кажи нешто...\",\n \"COLOUR_HUE_LABEL\": \"Боја\",\n \"COLOUR_SATURATION_LABEL\": \"Засићење\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Осветљеност\",\n \"CHANGE_VALUE_TITLE\": \"Промени вредност:\",\n \"RENAME_VARIABLE\": \"Преименуј променљиву\",\n \"RENAME_VARIABLE_TITLE\": \"Преименуј свих \\\"%1\\\" променљивих у:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Преименуј променљиву\",\n \"NEW_VARIABLE\": \"Направи променљиву\",\n \"NEW_VARIABLE_TITLE\": \"Ново име променљиве:\",\n \"VARIABLE_MODAL_TITLE\": \"Нова променљива\",\n \"VARIABLE_ALREADY_EXISTS\": \"Име променљиве \\\"%1\\\" већ постоји.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Име променљиве \\\"%1\\\" већ постоји код друге променљиве типа \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Обрисати %1 употреба променљиве \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Не могу да обришем променљиву \\\"%1\\\" зато што је она део дефиниције функције \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Обриши променљиву \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Направи блок\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Процедура са именом \\\"%1\\\" већ постоји.\",\n \"PROCEDURE_DEFAULT_NAME\": \"име блока\",\n \"NEW_LIST\": \"Направи листу\",\n \"NEW_LIST_TITLE\": \"Ново име листе:\",\n \"LIST_MODAL_TITLE\": \"Нова листа\",\n \"LIST_ALREADY_EXISTS\": \"Листа са именом \\\"%1\\\" већ постоји.\",\n \"RENAME_LIST_TITLE\": \"Преименуј свих \\\"%1\\\" листи у:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Преименуј листу\",\n \"DEFAULT_LIST_ITEM\": \"ствар\",\n \"DELETE_LIST\": \"Обриши листу \\\"%1\\\"\",\n \"RENAME_LIST\": \"Преименуј листу\",\n \"NEW_BROADCAST_MESSAGE\": \"Нова порука\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Име нове поруке:\",\n \"BROADCAST_MODAL_TITLE\": \"Нова порука\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"порука1\"\n};\n\nBlockly.ScratchMsgs.locales[\"sk\"] =\n{\n \"CONTROL_FOREVER\": \"opakuj stále\",\n \"CONTROL_REPEAT\": \"opakuj %1\",\n \"CONTROL_IF\": \"ak %1\",\n \"CONTROL_ELSE\": \"inak\",\n \"CONTROL_STOP\": \"zastav\",\n \"CONTROL_STOP_ALL\": \"všetko\",\n \"CONTROL_STOP_THIS\": \"tento scenár\",\n \"CONTROL_STOP_OTHER\": \"moje iné scenáre\",\n \"CONTROL_WAIT\": \"čakaj %1 s\",\n \"CONTROL_WAITUNTIL\": \"čakaj až kým %1\",\n \"CONTROL_REPEATUNTIL\": \"opakuj až kým %1\",\n \"CONTROL_WHILE\": \"opakuj ak %1\",\n \"CONTROL_FOREACH\": \"pre každé %1 v %2\",\n \"CONTROL_STARTASCLONE\": \"pri štarte klonu\",\n \"CONTROL_CREATECLONEOF\": \"naklonuj %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"seba\",\n \"CONTROL_DELETETHISCLONE\": \"zruš tento klon\",\n \"CONTROL_COUNTER\": \"počítadlo\",\n \"CONTROL_INCRCOUNTER\": \"zvýš počítadlo\",\n \"CONTROL_CLEARCOUNTER\": \"vynuluj počítadlo\",\n \"CONTROL_ALLATONCE\": \"všetko naraz\",\n \"DATA_SETVARIABLETO\": \"nastav %1 na %2\",\n \"DATA_CHANGEVARIABLEBY\": \"zmeň %1 o %2\",\n \"DATA_SHOWVARIABLE\": \"ukáž premennú %1\",\n \"DATA_HIDEVARIABLE\": \"skry premennú %1\",\n \"DATA_ADDTOLIST\": \"pridaj %1 do %2\",\n \"DATA_DELETEOFLIST\": \"zruš %1 z %2\",\n \"DATA_DELETEALLOFLIST\": \"zruš všetko z %1\",\n \"DATA_INSERTATLIST\": \"vlož %1 na %2 v %3\",\n \"DATA_REPLACEITEMOFLIST\": \"nahraď %1 v %2 hodnotou %3\",\n \"DATA_ITEMOFLIST\": \"prvok %1 z %2\",\n \"DATA_ITEMNUMOFLIST\": \"poradie prvku %1 v %2\",\n \"DATA_LENGTHOFLIST\": \"dĺžka %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 obsahuje %2?\",\n \"DATA_SHOWLIST\": \"ukáž zoznam %1\",\n \"DATA_HIDELIST\": \"skry zoznam %1\",\n \"DATA_INDEX_ALL\": \"všetko\",\n \"DATA_INDEX_LAST\": \"posledný\",\n \"DATA_INDEX_RANDOM\": \"náhodný\",\n \"EVENT_WHENFLAGCLICKED\": \"pri kliknutí na %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"pri kliknutí na mňa\",\n \"EVENT_WHENSTAGECLICKED\": \"pri kliknutí na scénu\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"pri dotyku %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"pri prijatí správy %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"pri zmene pozadia na %1\",\n \"EVENT_WHENGREATERTHAN\": \"pri %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"časovač\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"hlasitosť\",\n \"EVENT_BROADCAST\": \"vyšli správu %1\",\n \"EVENT_BROADCASTANDWAIT\": \"vyšli správu %1 a počkaj\",\n \"EVENT_WHENKEYPRESSED\": \"pri stlačení %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"medzerník\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"šípka vľavo\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"šípka vpravo\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"šípka dole\",\n \"EVENT_WHENKEYPRESSED_UP\": \"šípka hore\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"hociktorý\",\n \"LOOKS_SAYFORSECS\": \"bublina %1 %2 s\",\n \"LOOKS_SAY\": \"bublina %1\",\n \"LOOKS_HELLO\": \"Ahoj!\",\n \"LOOKS_THINKFORSECS\": \"myšlienka %1 %2 s\",\n \"LOOKS_THINK\": \"myšlienka %1\",\n \"LOOKS_HMM\": \"Hm...\",\n \"LOOKS_SHOW\": \"ukáž sa\",\n \"LOOKS_HIDE\": \"skry sa\",\n \"LOOKS_HIDEALLSPRITES\": \"skry všetky postavy\",\n \"LOOKS_EFFECT_COLOR\": \"farba\",\n \"LOOKS_EFFECT_FISHEYE\": \"rybie oko\",\n \"LOOKS_EFFECT_WHIRL\": \"zvírenie\",\n \"LOOKS_EFFECT_PIXELATE\": \"štvorčeky\",\n \"LOOKS_EFFECT_MOSAIC\": \"mozaika\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"jas\",\n \"LOOKS_EFFECT_GHOST\": \"duch\",\n \"LOOKS_CHANGEEFFECTBY\": \"zmeň efekt %1 o %2\",\n \"LOOKS_SETEFFECTTO\": \"nastav efekt %1 na %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"zruš grafické efekty\",\n \"LOOKS_CHANGESIZEBY\": \"zmeň veľkosť o %1 %\",\n \"LOOKS_SETSIZETO\": \"nastav veľkosť na %1 %\",\n \"LOOKS_SIZE\": \"veľkosť\",\n \"LOOKS_CHANGESTRETCHBY\": \"zmeň natiahnutie o %1\",\n \"LOOKS_SETSTRETCHTO\": \"nastav natiahnutie na %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"zmeň kostým na %1\",\n \"LOOKS_NEXTCOSTUME\": \"ďalší kostým\",\n \"LOOKS_SWITCHBACKDROPTO\": \"zmeň pozadie na %1\",\n \"LOOKS_GOTOFRONTBACK\": \"prejdi na %1 vrstvu\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"vrchnú\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"spodnú\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"prejdi o %2 vrstiev %1\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"dopredu\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"dozadu\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"pozadie %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"kostým %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"číslo\",\n \"LOOKS_NUMBERNAME_NAME\": \"meno\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"zmeň pozadie na %1 a počkaj\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"ďalšie pozadie\",\n \"LOOKS_NEXTBACKDROP\": \"ďalšie pozadie\",\n \"LOOKS_PREVIOUSBACKDROP\": \"predchádzajúce pozadie\",\n \"LOOKS_RANDOMBACKDROP\": \"náhodné pozadie\",\n \"MOTION_MOVESTEPS\": \"dopredu %1\",\n \"MOTION_TURNLEFT\": \"vľavo %1 %2\",\n \"MOTION_TURNRIGHT\": \"vpravo %1 %2\",\n \"MOTION_POINTINDIRECTION\": \"smerom %1\",\n \"MOTION_POINTTOWARDS\": \"smerom k %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"myš\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"náhodný smer\",\n \"MOTION_GOTO\": \"skoč na %1\",\n \"MOTION_GOTO_POINTER\": \"myš\",\n \"MOTION_GOTO_RANDOM\": \"náhodná pozícia\",\n \"MOTION_GOTOXY\": \"skoč na x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"kĺž sa %1 s na x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"kĺž sa %1 s na %2\",\n \"MOTION_GLIDETO_POINTER\": \"myš\",\n \"MOTION_GLIDETO_RANDOM\": \"náhodná pozícia\",\n \"MOTION_CHANGEXBY\": \"zmeň x o %1\",\n \"MOTION_SETX\": \"skoč na x: %1\",\n \"MOTION_CHANGEYBY\": \"zmeň y o %1\",\n \"MOTION_SETY\": \"skoč na y: %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"ak na okraji, odraz sa\",\n \"MOTION_SETROTATIONSTYLE\": \"nastav otáčanie %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"vľavo-vpravo\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"žiadne\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"podľa smeru\",\n \"MOTION_XPOSITION\": \"pozícia x\",\n \"MOTION_YPOSITION\": \"pozícia y\",\n \"MOTION_DIRECTION\": \"smer\",\n \"MOTION_SCROLLRIGHT\": \"posuň vpravo %1\",\n \"MOTION_SCROLLUP\": \"presuň hore %1\",\n \"MOTION_ALIGNSCENE\": \"zarovnaj scénu %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"vľavo dolu\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"vpravo dolu\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"stred\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"vľavo hore\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"vpravo hore\",\n \"MOTION_XSCROLL\": \"posunutie x\",\n \"MOTION_YSCROLL\": \"posunutie y\",\n \"MOTION_STAGE_SELECTED\": \"Scéna nemá bloky pre pohyb\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"náhodne od %1 do %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 a %2\",\n \"OPERATORS_OR\": \"%1 alebo %2\",\n \"OPERATORS_NOT\": \"nie je %1\",\n \"OPERATORS_JOIN\": \"spoj %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"jablko\",\n \"OPERATORS_JOIN_BANANA\": \"hruška\",\n \"OPERATORS_LETTEROF\": \"znak %1 z %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"dĺžka %1\",\n \"OPERATORS_CONTAINS\": \"%1 obsahuje %2?\",\n \"OPERATORS_MOD\": \"zvyšok %1 / %2\",\n \"OPERATORS_ROUND\": \"zaokrúhli %1\",\n \"OPERATORS_MATHOP\": \"%1 z %2\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"zaokrúhli nadol\",\n \"OPERATORS_MATHOP_CEILING\": \"zaokrúhli nahor\",\n \"OPERATORS_MATHOP_SQRT\": \"odmocnina\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tg\",\n \"OPERATORS_MATHOP_ASIN\": \"arcsin\",\n \"OPERATORS_MATHOP_ACOS\": \"arccos\",\n \"OPERATORS_MATHOP_ATAN\": \"arctg\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"exp\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"blok %1\",\n \"SENSING_TOUCHINGOBJECT\": \"dotýkaš sa %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"myš\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"okraj\",\n \"SENSING_TOUCHINGCOLOR\": \"dotýkaš sa %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"%1 sa dotýkaš %2?\",\n \"SENSING_DISTANCETO\": \"vzdialenosť k %1\",\n \"SENSING_DISTANCETO_POINTER\": \"myš\",\n \"SENSING_ASKANDWAIT\": \"otázka %1\",\n \"SENSING_ASK_TEXT\": \"Ako sa voláš?\",\n \"SENSING_ANSWER\": \"odpoveď\",\n \"SENSING_KEYPRESSED\": \"stlačené %1?\",\n \"SENSING_MOUSEDOWN\": \"stlačené tlačidlo myši?\",\n \"SENSING_MOUSEX\": \"myš x\",\n \"SENSING_MOUSEY\": \"myš y\",\n \"SENSING_SETDRAGMODE\": \"hráč môže presúvať %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"áno \",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"nie\",\n \"SENSING_LOUDNESS\": \"hlasitosť\",\n \"SENSING_LOUD\": \"hlasný?\",\n \"SENSING_TIMER\": \"časovač\",\n \"SENSING_RESETTIMER\": \"vynuluj časovač\",\n \"SENSING_OF\": \"%1 z %2\",\n \"SENSING_OF_XPOSITION\": \"pozícia x\",\n \"SENSING_OF_YPOSITION\": \"pozícia y\",\n \"SENSING_OF_DIRECTION\": \"smer\",\n \"SENSING_OF_COSTUMENUMBER\": \"číslo kostýmu\",\n \"SENSING_OF_COSTUMENAME\": \"meno kostýmu\",\n \"SENSING_OF_SIZE\": \"veľkosť\",\n \"SENSING_OF_VOLUME\": \"hlasitosť\",\n \"SENSING_OF_BACKDROPNUMBER\": \"číslo pozadia\",\n \"SENSING_OF_BACKDROPNAME\": \"meno pozadia\",\n \"SENSING_OF_STAGE\": \"Scéna\",\n \"SENSING_CURRENT\": \"teraz je %1\",\n \"SENSING_CURRENT_YEAR\": \"rok\",\n \"SENSING_CURRENT_MONTH\": \"mesiac\",\n \"SENSING_CURRENT_DATE\": \"deň v mesiaci\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"deň v týždni\",\n \"SENSING_CURRENT_HOUR\": \"hod\",\n \"SENSING_CURRENT_MINUTE\": \"min\",\n \"SENSING_CURRENT_SECOND\": \"s\",\n \"SENSING_DAYSSINCE2000\": \"dní od roku 2000\",\n \"SENSING_USERNAME\": \"používateľ\",\n \"SENSING_USERID\": \"užívateľské id\",\n \"SOUND_PLAY\": \"zahraj zvuk %1\",\n \"SOUND_PLAYUNTILDONE\": \"zahraj zvuk %1 až do konca\",\n \"SOUND_STOPALLSOUNDS\": \"zastav všetky zvuky\",\n \"SOUND_SETEFFECTO\": \"nastav efekt %1 na %2\",\n \"SOUND_CHANGEEFFECTBY\": \"zmeň efekt %1 o %2\",\n \"SOUND_CLEAREFFECTS\": \"zruš zvukové efekty\",\n \"SOUND_EFFECTS_PITCH\": \"frekvencia\",\n \"SOUND_EFFECTS_PAN\": \"stereo\",\n \"SOUND_CHANGEVOLUMEBY\": \"zmeň hlasitosť o %1 %\",\n \"SOUND_SETVOLUMETO\": \"nastav hlasitosť na %1% %\",\n \"SOUND_VOLUME\": \"hlasitosť\",\n \"SOUND_RECORD\": \"nahraj...\",\n \"CATEGORY_MOTION\": \"Pohyb\",\n \"CATEGORY_LOOKS\": \"Vzhľad\",\n \"CATEGORY_SOUND\": \"Zvuk\",\n \"CATEGORY_EVENTS\": \"Udalosti\",\n \"CATEGORY_CONTROL\": \"Riadenie\",\n \"CATEGORY_SENSING\": \"Zisťovanie\",\n \"CATEGORY_OPERATORS\": \"Operácie\",\n \"CATEGORY_VARIABLES\": \"Premenné\",\n \"CATEGORY_MYBLOCKS\": \"Nové bloky\",\n \"DUPLICATE\": \"duplikuj\",\n \"DELETE\": \"zruš\",\n \"ADD_COMMENT\": \"pridaj komentár\",\n \"REMOVE_COMMENT\": \"zruš komentár\",\n \"DELETE_BLOCK\": \"zruš blok\",\n \"DELETE_X_BLOCKS\": \"zruš %1 blokov\",\n \"DELETE_ALL_BLOCKS\": \"Naozaj chceš zrušiť %1 blokov?\",\n \"CLEAN_UP\": \"uprac\",\n \"HELP\": \"pomoc\",\n \"UNDO\": \"späť\",\n \"REDO\": \"znovu\",\n \"EDIT_PROCEDURE\": \"uprav\",\n \"SHOW_PROCEDURE_DEFINITION\": \"zobraz definíciu\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Poznámka\",\n \"COLOUR_HUE_LABEL\": \"farba\",\n \"COLOUR_SATURATION_LABEL\": \"sýtosť\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"jas\",\n \"CHANGE_VALUE_TITLE\": \"Zmeň hodnotu:\",\n \"RENAME_VARIABLE\": \"premenuj\",\n \"RENAME_VARIABLE_TITLE\": \"Premenuj všetky výskyty premennej \\\"%1\\\":\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Premenuj premennú\",\n \"NEW_VARIABLE\": \"Nová premenná\",\n \"NEW_VARIABLE_TITLE\": \"Meno premennej:\",\n \"VARIABLE_MODAL_TITLE\": \"Nová premenná\",\n \"VARIABLE_ALREADY_EXISTS\": \"Premenná s menom \\\"%1\\\" už existuje.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Premenná s menom \\\"%1\\\" už existuje pre inú prememnú typu \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Naozaj mám zrušiť %1 výskytov premennej \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Nemôžem zrušiť premennú \\\"%1\\\", pretože je súčasťou definície funkcie \\\"%2\\\".\",\n \"DELETE_VARIABLE\": \"zruš premennú \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Nový blok\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Blok \\\"%1\\\" už existuje.\",\n \"PROCEDURE_DEFAULT_NAME\": \"meno bloku\",\n \"NEW_LIST\": \"Nový zoznam\",\n \"NEW_LIST_TITLE\": \"Meno nového zoznamu:\",\n \"LIST_MODAL_TITLE\": \"Nový zoznam\",\n \"LIST_ALREADY_EXISTS\": \"Zoznam \\\"%1\\\" už existuje.\",\n \"RENAME_LIST_TITLE\": \"Premenuj zoznam \\\"%1\\\" na:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Premenuj zoznam\",\n \"DEFAULT_LIST_ITEM\": \"hodnota\",\n \"DELETE_LIST\": \"zruš zoznam \\\"%1\\\"\",\n \"RENAME_LIST\": \"premenuj zoznam\",\n \"NEW_BROADCAST_MESSAGE\": \"nová správa...\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Meno novej správy:\",\n \"BROADCAST_MODAL_TITLE\": \"Nová správa\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"správa1\"\n};\n\nBlockly.ScratchMsgs.locales[\"sl\"] =\n{\n \"CONTROL_FOREVER\": \"ponavljaj\",\n \"CONTROL_REPEAT\": \"ponovi %1 krat\",\n \"CONTROL_IF\": \"če %1 potem\",\n \"CONTROL_ELSE\": \"sicer\",\n \"CONTROL_STOP\": \"ustavi\",\n \"CONTROL_STOP_ALL\": \"vse\",\n \"CONTROL_STOP_THIS\": \"te ukaze\",\n \"CONTROL_STOP_OTHER\": \"ostale ukaze za to figuro\",\n \"CONTROL_WAIT\": \"počakaj %1 sekund\",\n \"CONTROL_WAITUNTIL\": \"počakaj dokler ni %1\",\n \"CONTROL_REPEATUNTIL\": \"ponavljaj do %1\",\n \"CONTROL_WHILE\": \"dokler %1\",\n \"CONTROL_FOREACH\": \"za vsak %1 v %2\",\n \"CONTROL_STARTASCLONE\": \"ko začnem kot dvojnik\",\n \"CONTROL_CREATECLONEOF\": \"ustvari dvojnika %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"sebe\",\n \"CONTROL_DELETETHISCLONE\": \"zbriši tega dvojnika\",\n \"CONTROL_COUNTER\": \"števec\",\n \"CONTROL_INCRCOUNTER\": \"povečaj števec\",\n \"CONTROL_CLEARCOUNTER\": \"počisti števec\",\n \"CONTROL_ALLATONCE\": \"vse hkrati\",\n \"DATA_SETVARIABLETO\": \"nastavi %1 na %2\",\n \"DATA_CHANGEVARIABLEBY\": \"spremeni %1 za %2\",\n \"DATA_SHOWVARIABLE\": \"pokaži spremenljivko %1\",\n \"DATA_HIDEVARIABLE\": \"skrij spremenljivko %1\",\n \"DATA_ADDTOLIST\": \"dodaj %1 k %2\",\n \"DATA_DELETEOFLIST\": \"zbriši %1 v %2\",\n \"DATA_DELETEALLOFLIST\": \"izbriši vse v %1\",\n \"DATA_INSERTATLIST\": \"vstavi %1 na %2 v %3\",\n \"DATA_REPLACEITEMOFLIST\": \"zamenjaj %1 v %2 z %3\",\n \"DATA_ITEMOFLIST\": \"element %1 v %2\",\n \"DATA_ITEMNUMOFLIST\": \"predmet # od %1 v %2\",\n \"DATA_LENGTHOFLIST\": \"dolžina %1\",\n \"DATA_LISTCONTAINSITEM\": \"Ali %1 vsebuje %2?\",\n \"DATA_SHOWLIST\": \"pokaži seznam %1\",\n \"DATA_HIDELIST\": \"skrij seznam %1\",\n \"DATA_INDEX_ALL\": \"vse\",\n \"DATA_INDEX_LAST\": \"zadnji\",\n \"DATA_INDEX_RANDOM\": \"naključno\",\n \"EVENT_WHENFLAGCLICKED\": \"ko kliknemo na %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"ko kliknemo to figuro\",\n \"EVENT_WHENSTAGECLICKED\": \"ko kliknemo na oder\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"ko se ta figura dotika %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"ko prejmem %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"ko se ozadje zamenja na %1\",\n \"EVENT_WHENGREATERTHAN\": \"ko je %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"štoparica\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"glasnost\",\n \"EVENT_BROADCAST\": \"objavi %1\",\n \"EVENT_BROADCASTANDWAIT\": \"objavi %1 in čakaj\",\n \"EVENT_WHENKEYPRESSED\": \"ko je pritisnjena tipka %1 \",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"presledek\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"puščica levo\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"puščica desno\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"puščica dol\",\n \"EVENT_WHENKEYPRESSED_UP\": \"puščica gor\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"poljubna\",\n \"LOOKS_SAYFORSECS\": \"reci %1 za %2 sekund\",\n \"LOOKS_SAY\": \"reci %1\",\n \"LOOKS_HELLO\": \"Živjo!\",\n \"LOOKS_THINKFORSECS\": \"pomisli %1 za %2 sekund\",\n \"LOOKS_THINK\": \"pomisli %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"pokaži\",\n \"LOOKS_HIDE\": \"skrij\",\n \"LOOKS_HIDEALLSPRITES\": \"skrij vse figure\",\n \"LOOKS_EFFECT_COLOR\": \"barva\",\n \"LOOKS_EFFECT_FISHEYE\": \"ribje oko\",\n \"LOOKS_EFFECT_WHIRL\": \"vrtinec\",\n \"LOOKS_EFFECT_PIXELATE\": \"pikčasto\",\n \"LOOKS_EFFECT_MOSAIC\": \"mozaik\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"svetlost\",\n \"LOOKS_EFFECT_GHOST\": \"duh\",\n \"LOOKS_CHANGEEFFECTBY\": \"spremeni učinek %1 za %2\",\n \"LOOKS_SETEFFECTTO\": \"nastavi učinek %1 na %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"odstrani slikovne učinke\",\n \"LOOKS_CHANGESIZEBY\": \"spremeni velikost za %1\",\n \"LOOKS_SETSIZETO\": \"nastavi velikost na %1 %\",\n \"LOOKS_SIZE\": \"velikost\",\n \"LOOKS_CHANGESTRETCHBY\": \"spremeni razteg za %1\",\n \"LOOKS_SETSTRETCHTO\": \"nastavi razteg na %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"zamenjaj videz na %1\",\n \"LOOKS_NEXTCOSTUME\": \"naslednji videz\",\n \"LOOKS_SWITCHBACKDROPTO\": \"zamenjaj ozadje na %1\",\n \"LOOKS_GOTOFRONTBACK\": \"pojdi na %1 plast\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"spredaj\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"zadaj\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"pojdi %1 %2 plasti\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"naprej\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"nazaj\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"ozadje %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"videz %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"število\",\n \"LOOKS_NUMBERNAME_NAME\": \"ime\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"zamenjaj ozadje na %1 in počakaj\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"naslednje ozadje\",\n \"LOOKS_NEXTBACKDROP\": \"naslednje ozadje\",\n \"LOOKS_PREVIOUSBACKDROP\": \"prejšnje ozadje\",\n \"LOOKS_RANDOMBACKDROP\": \"naključno ozadje\",\n \"MOTION_MOVESTEPS\": \"pojdi %1 korakov\",\n \"MOTION_TURNLEFT\": \"obrni se za %1 %2 stopinj\",\n \"MOTION_TURNRIGHT\": \"obrni se za %1 %2 stopinj\",\n \"MOTION_POINTINDIRECTION\": \"obrni se v smer %1\",\n \"MOTION_POINTTOWARDS\": \"obrni se proti %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"kazalcu miške\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"naključna smer\",\n \"MOTION_GOTO\": \"pojdi na %1\",\n \"MOTION_GOTO_POINTER\": \"kazalcu miške\",\n \"MOTION_GOTO_RANDOM\": \"naključno mesto\",\n \"MOTION_GOTOXY\": \"pojdi na x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"drsi %1 sekund do x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"drsi %1 sekund do %2\",\n \"MOTION_GLIDETO_POINTER\": \"kazalca miške\",\n \"MOTION_GLIDETO_RANDOM\": \"naključnega mesta\",\n \"MOTION_CHANGEXBY\": \"spremeni x za %1\",\n \"MOTION_SETX\": \"nastavi x na %1\",\n \"MOTION_CHANGEYBY\": \"spremeni y za %1\",\n \"MOTION_SETY\": \"nastavi y na %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"odbij se, če si na robu\",\n \"MOTION_SETROTATIONSTYLE\": \"Način vrtenja %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"levo-desno\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"ne zasukaj\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"na vse strani\",\n \"MOTION_XPOSITION\": \"položaj x\",\n \"MOTION_YPOSITION\": \"položaj y\",\n \"MOTION_DIRECTION\": \"smer\",\n \"MOTION_SCROLLRIGHT\": \"premik desno %1\",\n \"MOTION_SCROLLUP\": \"premik gor%1\",\n \"MOTION_ALIGNSCENE\": \"poravnaj sceno %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"levo spodaj\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"desno spodaj\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"sredina\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"levo zgoraj\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"desno zgoraj\",\n \"MOTION_XSCROLL\": \"premik v smeri x\",\n \"MOTION_YSCROLL\": \"premik v smeri y\",\n \"MOTION_STAGE_SELECTED\": \"Izbran oder: ni blokov za premikanje\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"naključno število med %1 in %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 in %2\",\n \"OPERATORS_OR\": \"%1 ali %2\",\n \"OPERATORS_NOT\": \"ne %1\",\n \"OPERATORS_JOIN\": \"združi %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"jabolko\",\n \"OPERATORS_JOIN_BANANA\": \"banana\",\n \"OPERATORS_LETTEROF\": \"%1 črka v %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"b\",\n \"OPERATORS_LENGTH\": \"dolžina %1\",\n \"OPERATORS_CONTAINS\": \"%1 vsebuje %2?\",\n \"OPERATORS_MOD\": \"%1 mod %2\",\n \"OPERATORS_ROUND\": \"zaokroži %1\",\n \"OPERATORS_MATHOP\": \"%1 od %2\",\n \"OPERATORS_MATHOP_ABS\": \"absolutna vrednost\",\n \"OPERATORS_MATHOP_FLOOR\": \"zaokroženo navzdol\",\n \"OPERATORS_MATHOP_CEILING\": \"zaokroženo navzgor\",\n \"OPERATORS_MATHOP_SQRT\": \"kvadratni koren \",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tg\",\n \"OPERATORS_MATHOP_ASIN\": \"arcsin\",\n \"OPERATORS_MATHOP_ACOS\": \"arccos\",\n \"OPERATORS_MATHOP_ATAN\": \"arctg\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"definiraj %1\",\n \"SENSING_TOUCHINGOBJECT\": \"se dotika %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"kazalca miške\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"roba\",\n \"SENSING_TOUCHINGCOLOR\": \"se dotika barve %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"se barva %1 dotika %2?\",\n \"SENSING_DISTANCETO\": \"razdalja do %1\",\n \"SENSING_DISTANCETO_POINTER\": \"kazalca miške\",\n \"SENSING_ASKANDWAIT\": \"vprašaj %1 in počakaj\",\n \"SENSING_ASK_TEXT\": \"Kako ti je ime?\",\n \"SENSING_ANSWER\": \"odgovor\",\n \"SENSING_KEYPRESSED\": \"je pritisnjena tipka %1?\",\n \"SENSING_MOUSEDOWN\": \"je miškin gumb pritisnjen?\",\n \"SENSING_MOUSEX\": \"miškin x\",\n \"SENSING_MOUSEY\": \"miškin y\",\n \"SENSING_SETDRAGMODE\": \"Možnost premika naj bo %1 \",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"možno premikati\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"ne moremo premikati\",\n \"SENSING_LOUDNESS\": \"glasnost\",\n \"SENSING_LOUD\": \"glasno?\",\n \"SENSING_TIMER\": \"štoparica\",\n \"SENSING_RESETTIMER\": \"ponastavi štoparico\",\n \"SENSING_OF\": \"%1 od %2\",\n \"SENSING_OF_XPOSITION\": \"položaj x\",\n \"SENSING_OF_YPOSITION\": \"položaj y\",\n \"SENSING_OF_DIRECTION\": \"smer\",\n \"SENSING_OF_COSTUMENUMBER\": \"videz #\",\n \"SENSING_OF_COSTUMENAME\": \"ime videza\",\n \"SENSING_OF_SIZE\": \"velikost\",\n \"SENSING_OF_VOLUME\": \"glasnost\",\n \"SENSING_OF_BACKDROPNUMBER\": \"ozadje #\",\n \"SENSING_OF_BACKDROPNAME\": \"ime ozadja\",\n \"SENSING_OF_STAGE\": \"Oder\",\n \"SENSING_CURRENT\": \"trenutni %1\",\n \"SENSING_CURRENT_YEAR\": \"leto\",\n \"SENSING_CURRENT_MONTH\": \"mesec\",\n \"SENSING_CURRENT_DATE\": \"datum\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"dan v tednu\",\n \"SENSING_CURRENT_HOUR\": \"ura\",\n \"SENSING_CURRENT_MINUTE\": \"minuta\",\n \"SENSING_CURRENT_SECOND\": \"sekunda\",\n \"SENSING_DAYSSINCE2000\": \"dni od leta 2000\",\n \"SENSING_USERNAME\": \"uporabniško ime\",\n \"SENSING_USERID\": \"uporabnikova številka\",\n \"SOUND_PLAY\": \"predvajaj zvok %1\",\n \"SOUND_PLAYUNTILDONE\": \"predvajaj zvok %1 do konca\",\n \"SOUND_STOPALLSOUNDS\": \"ustavi vse zvoke\",\n \"SOUND_SETEFFECTO\": \"nastavi učinek %1 na %2\",\n \"SOUND_CHANGEEFFECTBY\": \"spremeni učinek %1 za %2\",\n \"SOUND_CLEAREFFECTS\": \"izbriši zvočne učinke\",\n \"SOUND_EFFECTS_PITCH\": \"višina tona\",\n \"SOUND_EFFECTS_PAN\": \"premik levo/desno\",\n \"SOUND_CHANGEVOLUMEBY\": \"spremeni glasnost za %1\",\n \"SOUND_SETVOLUMETO\": \"nastavi glasnost na %1%\",\n \"SOUND_VOLUME\": \"glasnost\",\n \"SOUND_RECORD\": \"posnami...\",\n \"CATEGORY_MOTION\": \"Gibanje\",\n \"CATEGORY_LOOKS\": \"Videzi\",\n \"CATEGORY_SOUND\": \"Zvok\",\n \"CATEGORY_EVENTS\": \"Dogodki\",\n \"CATEGORY_CONTROL\": \"Krmiljenje\",\n \"CATEGORY_SENSING\": \"Zaznavanje\",\n \"CATEGORY_OPERATORS\": \"Operatorji\",\n \"CATEGORY_VARIABLES\": \"Spremenljivke\",\n \"CATEGORY_MYBLOCKS\": \"Moji bloki\",\n \"DUPLICATE\": \"Podvoji\",\n \"DELETE\": \"Izbriši\",\n \"ADD_COMMENT\": \"Dodaj komentar\",\n \"REMOVE_COMMENT\": \"Odstrani komentar\",\n \"DELETE_BLOCK\": \"Izbriši blok\",\n \"DELETE_X_BLOCKS\": \"Izbriši %1 blokov\",\n \"DELETE_ALL_BLOCKS\": \"Naj izbrišem vseh %1 blokov?\",\n \"CLEAN_UP\": \"Počisti bloke\",\n \"HELP\": \"Pomoč\",\n \"UNDO\": \"Razveljavi\",\n \"REDO\": \"Uveljavi\",\n \"EDIT_PROCEDURE\": \"Uredi\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Pojdi na definicijo\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Reci kaj ...\",\n \"COLOUR_HUE_LABEL\": \"Barva\",\n \"COLOUR_SATURATION_LABEL\": \"Nasičenost\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Svetlost\",\n \"CHANGE_VALUE_TITLE\": \"Spremeni vrednost: \",\n \"RENAME_VARIABLE\": \"Preimenuj spremenljivko\",\n \"RENAME_VARIABLE_TITLE\": \"Preimenuj vse spremenljivke \\\"%1\\\" v:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Preimenuj spremenljivko\",\n \"NEW_VARIABLE\": \"Ustvari spremenljivko\",\n \"NEW_VARIABLE_TITLE\": \"Novo ime spremenljivke:\",\n \"VARIABLE_MODAL_TITLE\": \"Nova spremenljivka\",\n \"VARIABLE_ALREADY_EXISTS\": \"Spremenljivka z imenom \\\"%1\\\" že obstaja.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Spremenljivka z imenom \\\"%1\\\" že obstaja in je tipa \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Izbrisati %1 uporab spremenljivke \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Ne morem izbrisati spremenljivke \\\"%1\\\", ker je del definicije funkcije \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Izbriši spremenljivko \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Ustvari blok\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Postopek z imenom \\\"%1\\\" že obstaja\",\n \"PROCEDURE_DEFAULT_NAME\": \"ime bloka\",\n \"NEW_LIST\": \"Ustvari seznam\",\n \"NEW_LIST_TITLE\": \"Novi ime seznama:\",\n \"LIST_MODAL_TITLE\": \"Nov seznam\",\n \"LIST_ALREADY_EXISTS\": \"Seznam z imenom \\\"%1\\\" že obstaja.\",\n \"RENAME_LIST_TITLE\": \"Preimenuj seznam \\\"%1\\\" v:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Preimenuj seznam\",\n \"DEFAULT_LIST_ITEM\": \"stvar\",\n \"DELETE_LIST\": \"Izbriši seznam \\\"%1\\\" \",\n \"RENAME_LIST\": \"Preimenuj seznam\",\n \"NEW_BROADCAST_MESSAGE\": \"Novo sporočilo\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Ime novega sporočila:\",\n \"BROADCAST_MODAL_TITLE\": \"Novo sporočilo\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"sporočilo1\"\n};\n\nBlockly.ScratchMsgs.locales[\"fi\"] =\n{\n \"CONTROL_FOREVER\": \"ikuisesti\",\n \"CONTROL_REPEAT\": \"toista %1 kertaa\",\n \"CONTROL_IF\": \"jos %1, niin\",\n \"CONTROL_ELSE\": \"tai muuten\",\n \"CONTROL_STOP\": \"pysäytä\",\n \"CONTROL_STOP_ALL\": \"kaikki\",\n \"CONTROL_STOP_THIS\": \"tämä skripti\",\n \"CONTROL_STOP_OTHER\": \"hahmon muut skriptit\",\n \"CONTROL_WAIT\": \"odota %1 sekuntia\",\n \"CONTROL_WAITUNTIL\": \"odota kunnes %1\",\n \"CONTROL_REPEATUNTIL\": \"toista kunnes %1\",\n \"CONTROL_WHILE\": \"kun %1\",\n \"CONTROL_FOREACH\": \"jokainen %1 joukossa %2\",\n \"CONTROL_STARTASCLONE\": \"kun aloitan kloonina\",\n \"CONTROL_CREATECLONEOF\": \"luo klooni hahmosta %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"minä itse\",\n \"CONTROL_DELETETHISCLONE\": \"poista tämä klooni\",\n \"CONTROL_COUNTER\": \"laskuri\",\n \"CONTROL_INCRCOUNTER\": \"lisäyslaskuri\",\n \"CONTROL_CLEARCOUNTER\": \"nollaa laskuri\",\n \"CONTROL_ALLATONCE\": \"kaikki kerralla\",\n \"DATA_SETVARIABLETO\": \"aseta %1 arvoon %2\",\n \"DATA_CHANGEVARIABLEBY\": \"lisää muuttujaan %1 arvo %2\",\n \"DATA_SHOWVARIABLE\": \"näytä muuttuja %1\",\n \"DATA_HIDEVARIABLE\": \"piilota muuttuja %1\",\n \"DATA_ADDTOLIST\": \"lisää %1 listaan %2\",\n \"DATA_DELETEOFLIST\": \"poista %1 listasta %2\",\n \"DATA_DELETEALLOFLIST\": \"poista kaikki listasta %1\",\n \"DATA_INSERTATLIST\": \"lisää %1 kohtaan %2 listassa %3\",\n \"DATA_REPLACEITEMOFLIST\": \"korvaa listan %2 kohdan %1 arvo arvolla %3\",\n \"DATA_ITEMOFLIST\": \"listan %2 %1. kohde\",\n \"DATA_ITEMNUMOFLIST\": \"kohteen %1 numero listassa %2\",\n \"DATA_LENGTHOFLIST\": \"listan %1 pituus\",\n \"DATA_LISTCONTAINSITEM\": \"%1 sisältää %2?\",\n \"DATA_SHOWLIST\": \"näytä lista %1\",\n \"DATA_HIDELIST\": \"piilota lista %1\",\n \"DATA_INDEX_ALL\": \"kaikki\",\n \"DATA_INDEX_LAST\": \"viimeinen\",\n \"DATA_INDEX_RANDOM\": \"satunnainen\",\n \"EVENT_WHENFLAGCLICKED\": \"kun klikataan %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"kun tätä hahmoa klikataan\",\n \"EVENT_WHENSTAGECLICKED\": \"kun esiintymislavaa klikataan\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"kun tämä hahmo koskettaa %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"kun vastaanotan %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"kun taustaksi vaihtuu %1\",\n \"EVENT_WHENGREATERTHAN\": \"kun %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"ajastin\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"äänentaso\",\n \"EVENT_BROADCAST\": \"lähetä %1\",\n \"EVENT_BROADCASTANDWAIT\": \"lähetä %1 ja odota\",\n \"EVENT_WHENKEYPRESSED\": \"kun painetaan %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"välilyönti\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"nuoli vasemmalle\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"nuoli oikealle\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"nuoli alas\",\n \"EVENT_WHENKEYPRESSED_UP\": \"nuoli ylös\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"mikä tahansa\",\n \"LOOKS_SAYFORSECS\": \"sano %1 %2 sekunnin ajan\",\n \"LOOKS_SAY\": \"sano %1\",\n \"LOOKS_HELLO\": \"Hei!\",\n \"LOOKS_THINKFORSECS\": \"ajattele %1 %2 sekunnin ajan\",\n \"LOOKS_THINK\": \"ajattele %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"näytä\",\n \"LOOKS_HIDE\": \"piilota\",\n \"LOOKS_HIDEALLSPRITES\": \"piilota kaikki hahmot\",\n \"LOOKS_EFFECT_COLOR\": \"väri\",\n \"LOOKS_EFFECT_FISHEYE\": \"kalansilmä\",\n \"LOOKS_EFFECT_WHIRL\": \"pyörre\",\n \"LOOKS_EFFECT_PIXELATE\": \"pikselöi\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaiikki\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"kirkkaus\",\n \"LOOKS_EFFECT_GHOST\": \"haamu\",\n \"LOOKS_CHANGEEFFECTBY\": \"lisää %1 tehostetta arvolla %2\",\n \"LOOKS_SETEFFECTTO\": \"aseta tehoste %1 arvoon %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"poista graafiset tehosteet\",\n \"LOOKS_CHANGESIZEBY\": \"kasvata kokoa arvolla %1\",\n \"LOOKS_SETSIZETO\": \"aseta koko arvoon %1 %\",\n \"LOOKS_SIZE\": \"koko\",\n \"LOOKS_CHANGESTRETCHBY\": \"lisää venytystä arvolla %1\",\n \"LOOKS_SETSTRETCHTO\": \"aseta venytys arvoon %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"vaihda asusteeksi %1\",\n \"LOOKS_NEXTCOSTUME\": \"seuraava asuste\",\n \"LOOKS_SWITCHBACKDROPTO\": \"vaihda taustaksi %1\",\n \"LOOKS_GOTOFRONTBACK\": \"mene %1 alalle\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"etu\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"taka\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"mene %2 tasoa %1\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"eteenpäin\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"taaksepäin\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"tausta %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"asuste %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"luku\",\n \"LOOKS_NUMBERNAME_NAME\": \"nimi\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"vaihda taustaksi %1 ja odota\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"seuraava tausta\",\n \"LOOKS_NEXTBACKDROP\": \"seuraava tausta\",\n \"LOOKS_PREVIOUSBACKDROP\": \"edellinen tausta\",\n \"LOOKS_RANDOMBACKDROP\": \"satunnainen tausta\",\n \"MOTION_MOVESTEPS\": \"liiku %1 askelta\",\n \"MOTION_TURNLEFT\": \"käänny %1 %2 astetta\",\n \"MOTION_TURNRIGHT\": \"käänny %1 %2 astetta\",\n \"MOTION_POINTINDIRECTION\": \"osoita suuntaan %1\",\n \"MOTION_POINTTOWARDS\": \"osoita kohti %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"hiiren osoitin\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"satunnainen suunta\",\n \"MOTION_GOTO\": \"mene sijaintiin %1\",\n \"MOTION_GOTO_POINTER\": \"hiiren osoitin\",\n \"MOTION_GOTO_RANDOM\": \"satunnainen sijainti\",\n \"MOTION_GOTOXY\": \"mene sijaintiin x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"liu'u %1 sekuntia sijaintiin x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"liu'u %1 sekuntia sijaintiin %2\",\n \"MOTION_GLIDETO_POINTER\": \"hiiren osoitin\",\n \"MOTION_GLIDETO_RANDOM\": \"satunnainen sijainti\",\n \"MOTION_CHANGEXBY\": \"lisää x:n arvoon %1\",\n \"MOTION_SETX\": \"aseta x:n arvoksi %1\",\n \"MOTION_CHANGEYBY\": \"lisää y:n arvoon %1\",\n \"MOTION_SETY\": \"aseta y:n arvoksi %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"pomppaa reunasta\",\n \"MOTION_SETROTATIONSTYLE\": \"aseta kiertotyyliksi %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"vasen-oikea\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"älä kierrä\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"joka suuntaan\",\n \"MOTION_XPOSITION\": \"x-sijainti\",\n \"MOTION_YPOSITION\": \"y-sijainti\",\n \"MOTION_DIRECTION\": \"suunta\",\n \"MOTION_SCROLLRIGHT\": \"kierrä oikealle %1\",\n \"MOTION_SCROLLUP\": \"kierrä ylös %1\",\n \"MOTION_ALIGNSCENE\": \"tasaa näkymä %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"alavasen\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"alaoikea\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"keskikohta\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"ylävasen\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"yläoikea\",\n \"MOTION_XSCROLL\": \"x-kierto\",\n \"MOTION_YSCROLL\": \"y-kierto\",\n \"MOTION_STAGE_SELECTED\": \"Esiintymislava valittu: ei liikelohkoja\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"valitse satunnaisluku väliltä %1 – %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 ja %2\",\n \"OPERATORS_OR\": \"%1 tai %2\",\n \"OPERATORS_NOT\": \"ei %1\",\n \"OPERATORS_JOIN\": \"yhdistä %1 ja %2\",\n \"OPERATORS_JOIN_APPLE\": \"omena\",\n \"OPERATORS_JOIN_BANANA\": \"banaani\",\n \"OPERATORS_LETTEROF\": \"%1. kirjain sanasta %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"o\",\n \"OPERATORS_LENGTH\": \"sanan %1 pituus\",\n \"OPERATORS_CONTAINS\": \"%1 sisältää %2?\",\n \"OPERATORS_MOD\": \"lukujen %1 ja %2 jakojäännös\",\n \"OPERATORS_ROUND\": \"pyöristä %1\",\n \"OPERATORS_MATHOP\": \"%1 luvusta %2\",\n \"OPERATORS_MATHOP_ABS\": \"itseisarvo\",\n \"OPERATORS_MATHOP_FLOOR\": \"pyöristä alaspäin\",\n \"OPERATORS_MATHOP_CEILING\": \"pyöristä ylöspäin\",\n \"OPERATORS_MATHOP_SQRT\": \"neliöjuuri\",\n \"OPERATORS_MATHOP_SIN\": \"sini\",\n \"OPERATORS_MATHOP_COS\": \"kosini\",\n \"OPERATORS_MATHOP_TAN\": \"tangentti\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"luonnollinen logaritmi\",\n \"OPERATORS_MATHOP_LOG\": \"10-kantainen logaritmi\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"määrittele %1\",\n \"SENSING_TOUCHINGOBJECT\": \"koskettaako %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"hiiren osoitin\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"reuna\",\n \"SENSING_TOUCHINGCOLOR\": \"koskettaako väriä %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"koskeeko väri %1 väriä %2?\",\n \"SENSING_DISTANCETO\": \"etäisyys kohteeseen %1\",\n \"SENSING_DISTANCETO_POINTER\": \"hiiren osoitin\",\n \"SENSING_ASKANDWAIT\": \"kysy %1 ja odota\",\n \"SENSING_ASK_TEXT\": \"Mikä on nimesi?\",\n \"SENSING_ANSWER\": \"vastaus\",\n \"SENSING_KEYPRESSED\": \"onko näppäin %1 painettu?\",\n \"SENSING_MOUSEDOWN\": \"onko hiiren nappi painettu?\",\n \"SENSING_MOUSEX\": \"hiiren x-sijainti\",\n \"SENSING_MOUSEY\": \"hiiren y-sijainti\",\n \"SENSING_SETDRAGMODE\": \"aseta raahaustilaksi %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"raahaus sallittu\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"raahaus ei sallittu\",\n \"SENSING_LOUDNESS\": \"äänentaso\",\n \"SENSING_LOUD\": \"kova äänentaso?\",\n \"SENSING_TIMER\": \"ajastin\",\n \"SENSING_RESETTIMER\": \"nollaa ajastin\",\n \"SENSING_OF\": \"kohteen %2 %1\",\n \"SENSING_OF_XPOSITION\": \"x-sijainti\",\n \"SENSING_OF_YPOSITION\": \"y-sijainti\",\n \"SENSING_OF_DIRECTION\": \"suunta\",\n \"SENSING_OF_COSTUMENUMBER\": \"asusteen numero\",\n \"SENSING_OF_COSTUMENAME\": \"asusteen nimi\",\n \"SENSING_OF_SIZE\": \"koko\",\n \"SENSING_OF_VOLUME\": \"äänenvoimakkuus\",\n \"SENSING_OF_BACKDROPNUMBER\": \"taustan numero\",\n \"SENSING_OF_BACKDROPNAME\": \"taustan nimi\",\n \"SENSING_OF_STAGE\": \"Esiintymislava\",\n \"SENSING_CURRENT\": \"nykyinen %1\",\n \"SENSING_CURRENT_YEAR\": \"vuosi\",\n \"SENSING_CURRENT_MONTH\": \"kuukausi\",\n \"SENSING_CURRENT_DATE\": \"päiväys\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"viikonpäivä\",\n \"SENSING_CURRENT_HOUR\": \"tunti\",\n \"SENSING_CURRENT_MINUTE\": \"minuutti\",\n \"SENSING_CURRENT_SECOND\": \"sekunti\",\n \"SENSING_DAYSSINCE2000\": \"päiviä vuoden 2000 jälkeen\",\n \"SENSING_USERNAME\": \"käyttäjänimi\",\n \"SENSING_USERID\": \"käyttäjä-id\",\n \"SOUND_PLAY\": \"soita ääni %1\",\n \"SOUND_PLAYUNTILDONE\": \"soita ääni %1 loppuun\",\n \"SOUND_STOPALLSOUNDS\": \"pysäytä kaikki äänet\",\n \"SOUND_SETEFFECTO\": \"aseta tehoste %1 arvoon %2\",\n \"SOUND_CHANGEEFFECTBY\": \" lisää tehosteeseen %1 arvo %2\",\n \"SOUND_CLEAREFFECTS\": \"poista ääniefektit\",\n \"SOUND_EFFECTS_PITCH\": \"sävelkorkeus\",\n \"SOUND_EFFECTS_PAN\": \"panoroi vasen/oikea\",\n \"SOUND_CHANGEVOLUMEBY\": \"lisää äänenvoimakkuutta arvolla %1\",\n \"SOUND_SETVOLUMETO\": \"aseta äänenvoimakkuudeksi %1%\",\n \"SOUND_VOLUME\": \"äänenvoimakkuus\",\n \"SOUND_RECORD\": \"nauhoita...\",\n \"CATEGORY_MOTION\": \"Liike\",\n \"CATEGORY_LOOKS\": \"Ulkonäkö\",\n \"CATEGORY_SOUND\": \"Ääni\",\n \"CATEGORY_EVENTS\": \"Tapahtumat\",\n \"CATEGORY_CONTROL\": \"Ohjaus\",\n \"CATEGORY_SENSING\": \"Tuntoaisti\",\n \"CATEGORY_OPERATORS\": \"Toiminnot\",\n \"CATEGORY_VARIABLES\": \"Muuttujat\",\n \"CATEGORY_MYBLOCKS\": \"Lohkoni\",\n \"DUPLICATE\": \"Kopioi\",\n \"DELETE\": \"Poista\",\n \"ADD_COMMENT\": \"Lisää kommentti\",\n \"REMOVE_COMMENT\": \"Poista kommentti\",\n \"DELETE_BLOCK\": \"Poista lohko\",\n \"DELETE_X_BLOCKS\": \"Poista %1 lohkoa\",\n \"DELETE_ALL_BLOCKS\": \"Poistetaanko kaikki %1 lohkoa?\",\n \"CLEAN_UP\": \"Siivoa lohkot\",\n \"HELP\": \"Apua\",\n \"UNDO\": \"Kumoa\",\n \"REDO\": \"Tee uudelleen\",\n \"EDIT_PROCEDURE\": \"Muokkaa\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Siirry määrittelyyn\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Sano jotakin...\",\n \"COLOUR_HUE_LABEL\": \"Väri\",\n \"COLOUR_SATURATION_LABEL\": \"Värikylläisyys\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Kirkkaus\",\n \"CHANGE_VALUE_TITLE\": \"Vaihda arvo:\",\n \"RENAME_VARIABLE\": \"Nimeä uudelleen muuttuja\",\n \"RENAME_VARIABLE_TITLE\": \"Nimeä uudelleen kaikki \\\"%1\\\" muuttujaa:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Nimeä uudelleen muuttuja\",\n \"NEW_VARIABLE\": \"Tee muuttuja\",\n \"NEW_VARIABLE_TITLE\": \"Uuden muuttujan nimi:\",\n \"VARIABLE_MODAL_TITLE\": \"Uusi muuttuja\",\n \"VARIABLE_ALREADY_EXISTS\": \"\\\"%1\\\"-niminen muuttuja on jo käytössä.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"\\\"%1\\\"-niminen muuttuja on jo käytössä toisella \\\"%2\\\"-tyyppisellä muuttujalla.\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Poistetaanko \\\"%2\\\"-muuttujan %1 käyttökohdetta?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Ei voitu poistaa \\\"%1\\\"-muuttujaa, koska se on osa \\\"%2\\\"-funktion määrittelyä\",\n \"DELETE_VARIABLE\": \"Poista \\\"%1\\\"-muuttuja\",\n \"NEW_PROCEDURE\": \"Tee lohko\",\n \"PROCEDURE_ALREADY_EXISTS\": \"\\\"%1\\\"-niminen aliohjelma on jo käytössä.\",\n \"PROCEDURE_DEFAULT_NAME\": \"lohkon nimi\",\n \"NEW_LIST\": \"Tee lista\",\n \"NEW_LIST_TITLE\": \"Uuden listan nimi:\",\n \"LIST_MODAL_TITLE\": \"Uusi lista\",\n \"LIST_ALREADY_EXISTS\": \"\\\"%1\\\"-niminen lista on jo käytössä.\",\n \"RENAME_LIST_TITLE\": \"Nimeä uudelleen kaikki \\\"%1\\\" listaa:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Nimeä uudelleen lista\",\n \"DEFAULT_LIST_ITEM\": \"asia\",\n \"DELETE_LIST\": \"Poista \\\"%1\\\"-lista\",\n \"RENAME_LIST\": \"Nimeä uudelleen lista\",\n \"NEW_BROADCAST_MESSAGE\": \"Uusi viesti\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Uuden viestin nimi:\",\n \"BROADCAST_MODAL_TITLE\": \"Uusi viesti\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"viesti1\"\n};\n\nBlockly.ScratchMsgs.locales[\"sv\"] =\n{\n \"CONTROL_FOREVER\": \"för alltid\",\n \"CONTROL_REPEAT\": \"repetera %1\",\n \"CONTROL_IF\": \"om %1 då\",\n \"CONTROL_ELSE\": \"annars\",\n \"CONTROL_STOP\": \"stoppa\",\n \"CONTROL_STOP_ALL\": \"alla\",\n \"CONTROL_STOP_THIS\": \"detta skript\",\n \"CONTROL_STOP_OTHER\": \"andra skript i sprajten\",\n \"CONTROL_WAIT\": \"vänta %1 sekunder\",\n \"CONTROL_WAITUNTIL\": \"vänta tills %1\",\n \"CONTROL_REPEATUNTIL\": \"repetera tills %1\",\n \"CONTROL_WHILE\": \"medan %1\",\n \"CONTROL_FOREACH\": \"för varje %1 i %2\",\n \"CONTROL_STARTASCLONE\": \"när jag startar som klon\",\n \"CONTROL_CREATECLONEOF\": \"skapa klon av %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"mig själv\",\n \"CONTROL_DELETETHISCLONE\": \"radera klonen\",\n \"CONTROL_COUNTER\": \"räknare\",\n \"CONTROL_INCRCOUNTER\": \"öka räknare\",\n \"CONTROL_CLEARCOUNTER\": \"nollställ räknare\",\n \"CONTROL_ALLATONCE\": \"alla samtidig\",\n \"DATA_SETVARIABLETO\": \"sätt %1 till %2\",\n \"DATA_CHANGEVARIABLEBY\": \"ändra %1 med %2\",\n \"DATA_SHOWVARIABLE\": \"visa variabel %1\",\n \"DATA_HIDEVARIABLE\": \"göm variabel %1\",\n \"DATA_ADDTOLIST\": \"lägg till %1 i %2\",\n \"DATA_DELETEOFLIST\": \"ta bort %1 från %2\",\n \"DATA_DELETEALLOFLIST\": \"ta bort alla %1\",\n \"DATA_INSERTATLIST\": \"infoga %1 vid %2 i %3\",\n \"DATA_REPLACEITEMOFLIST\": \"ersätt posten %1 i %2 med %3\",\n \"DATA_ITEMOFLIST\": \"post %1 i %2\",\n \"DATA_ITEMNUMOFLIST\": \"post # av %1 i %2\",\n \"DATA_LENGTHOFLIST\": \"längden av %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 innehåller %2\",\n \"DATA_SHOWLIST\": \"visa listan %1\",\n \"DATA_HIDELIST\": \"göm listan %1\",\n \"DATA_INDEX_ALL\": \"alla\",\n \"DATA_INDEX_LAST\": \"sista\",\n \"DATA_INDEX_RANDOM\": \"slumpmässig\",\n \"EVENT_WHENFLAGCLICKED\": \"när %1 klickas på\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"när denna sprajt klickas på\",\n \"EVENT_WHENSTAGECLICKED\": \"när scenen klickas på\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"när denna sprajt rör %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"när jag tar emot %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"när bakgrunden växlar till %1\",\n \"EVENT_WHENGREATERTHAN\": \"när %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"timer\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"ljudstyrka\",\n \"EVENT_BROADCAST\": \"skicka %1\",\n \"EVENT_BROADCASTANDWAIT\": \"skicka %1 och vänta\",\n \"EVENT_WHENKEYPRESSED\": \"när %1 tangenten trycks ned\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"mellanslag\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"vänsterpil\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"högerpil\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"nedåtpil\",\n \"EVENT_WHENKEYPRESSED_UP\": \"uppåtpil\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"någon\",\n \"LOOKS_SAYFORSECS\": \"säg %1 i %2 sekunder\",\n \"LOOKS_SAY\": \"säg %1\",\n \"LOOKS_HELLO\": \"Hej!\",\n \"LOOKS_THINKFORSECS\": \"tänk %1 i %2 sekunder\",\n \"LOOKS_THINK\": \"tänk %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"visa\",\n \"LOOKS_HIDE\": \"göm\",\n \"LOOKS_HIDEALLSPRITES\": \"göm alla sprajtar\",\n \"LOOKS_EFFECT_COLOR\": \"färg \",\n \"LOOKS_EFFECT_FISHEYE\": \"fisheye\",\n \"LOOKS_EFFECT_WHIRL\": \"virvel\",\n \"LOOKS_EFFECT_PIXELATE\": \"pixla\",\n \"LOOKS_EFFECT_MOSAIC\": \"mosaik\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"ljusstyrka\",\n \"LOOKS_EFFECT_GHOST\": \"genomskinlighet\",\n \"LOOKS_CHANGEEFFECTBY\": \"ändra %1 effekten med %2\",\n \"LOOKS_SETEFFECTTO\": \"sätt %1 effekten till %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"ta bort grafisk effekt\",\n \"LOOKS_CHANGESIZEBY\": \"ändra storlek med %1\",\n \"LOOKS_SETSIZETO\": \"sätt storleken till %1 %\",\n \"LOOKS_SIZE\": \"storlek\",\n \"LOOKS_CHANGESTRETCHBY\": \"ändra töjning med %1\",\n \"LOOKS_SETSTRETCHTO\": \"sätt töjning till %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"ändra klädsel till %1\",\n \"LOOKS_NEXTCOSTUME\": \"nästa klädsel\",\n \"LOOKS_SWITCHBACKDROPTO\": \"växla bakgrund till %1\",\n \"LOOKS_GOTOFRONTBACK\": \"gå till %1 lagret\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"översta\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"tillbaka\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"gå %1 %2 lager\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"upp\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"ned\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"bakgrund %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"klädsel %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"nummer\",\n \"LOOKS_NUMBERNAME_NAME\": \"namn \",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"byt bakgrund till %1 och vänta\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"nästa bakgrund\",\n \"LOOKS_NEXTBACKDROP\": \"nästa bakgrund\",\n \"LOOKS_PREVIOUSBACKDROP\": \"föregående bakgrund\",\n \"LOOKS_RANDOMBACKDROP\": \"slumpvis bakgrund\",\n \"MOTION_MOVESTEPS\": \"gå %1 steg\",\n \"MOTION_TURNLEFT\": \"rotera %1 %2 grader\",\n \"MOTION_TURNRIGHT\": \"rotera %1 %2 grader\",\n \"MOTION_POINTINDIRECTION\": \"peka i riktning %1\",\n \"MOTION_POINTTOWARDS\": \"peka mot %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"muspekare \",\n \"MOTION_POINTTOWARDS_RANDOM\": \"slumpmässig riktning\",\n \"MOTION_GOTO\": \"gå till %1\",\n \"MOTION_GOTO_POINTER\": \"muspekare \",\n \"MOTION_GOTO_RANDOM\": \"slumpmässig position\",\n \"MOTION_GOTOXY\": \"gå till x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"glid %1 sek till x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"glid %1 sekunder till %2\",\n \"MOTION_GLIDETO_POINTER\": \"muspekare \",\n \"MOTION_GLIDETO_RANDOM\": \"slumpmässig position\",\n \"MOTION_CHANGEXBY\": \"ändra x med %1\",\n \"MOTION_SETX\": \"sätt x till %1\",\n \"MOTION_CHANGEYBY\": \"ändra y med %1\",\n \"MOTION_SETY\": \"sätt y till %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"om vid kanten, studsa\",\n \"MOTION_SETROTATIONSTYLE\": \"sätt rotationsstil %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"vänster-höger\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"rotera inte\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"rotera\",\n \"MOTION_XPOSITION\": \"x position\",\n \"MOTION_YPOSITION\": \"y position\",\n \"MOTION_DIRECTION\": \"riktning\",\n \"MOTION_SCROLLRIGHT\": \"skrolla höger %1\",\n \"MOTION_SCROLLUP\": \"skrolla upp %1\",\n \"MOTION_ALIGNSCENE\": \"arrangera scen %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"nedre-vänster\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"nedre-höger\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"mitten\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"övre-vänster\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"övre-höger\",\n \"MOTION_XSCROLL\": \"x scroll\",\n \"MOTION_YSCROLL\": \"y scroll\",\n \"MOTION_STAGE_SELECTED\": \"Scen vald: inga rörelseblock\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"slumptal %1 till %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 och %2\",\n \"OPERATORS_OR\": \"%1 eller %2\",\n \"OPERATORS_NOT\": \"inte %1\",\n \"OPERATORS_JOIN\": \"sammanfoga %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"äpple\",\n \"OPERATORS_JOIN_BANANA\": \"banan\",\n \"OPERATORS_LETTEROF\": \"bokstav %1 av %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"ä\",\n \"OPERATORS_LENGTH\": \"längden av %1\",\n \"OPERATORS_CONTAINS\": \"%1 innehåller %2\",\n \"OPERATORS_MOD\": \"%1 mod %2\",\n \"OPERATORS_ROUND\": \"avrunda %1\",\n \"OPERATORS_MATHOP\": \"%1 av %2\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"golv\",\n \"OPERATORS_MATHOP_CEILING\": \"tak\",\n \"OPERATORS_MATHOP_SQRT\": \"sqrt\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"definiera %1\",\n \"SENSING_TOUCHINGOBJECT\": \"rör vid %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"muspekare \",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"kant\",\n \"SENSING_TOUCHINGCOLOR\": \"rör vid färgen %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"rör färgen %1 vid %2?\",\n \"SENSING_DISTANCETO\": \"avstånd till %1\",\n \"SENSING_DISTANCETO_POINTER\": \"muspekare \",\n \"SENSING_ASKANDWAIT\": \"fråga %1 och vänta\",\n \"SENSING_ASK_TEXT\": \"Vad heter du?\",\n \"SENSING_ANSWER\": \"svar\",\n \"SENSING_KEYPRESSED\": \"tangent %1 nedtryckt?\",\n \"SENSING_MOUSEDOWN\": \"musknappen nedtryckt?\",\n \"SENSING_MOUSEX\": \"mus x\",\n \"SENSING_MOUSEY\": \"mus y\",\n \"SENSING_SETDRAGMODE\": \"sätt dragläge %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"dragbar\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"inte dragbar\",\n \"SENSING_LOUDNESS\": \"ljudstyrka\",\n \"SENSING_LOUD\": \"högt ljud?\",\n \"SENSING_TIMER\": \"timer\",\n \"SENSING_RESETTIMER\": \"nollställ timer\",\n \"SENSING_OF\": \"%1 av %2\",\n \"SENSING_OF_XPOSITION\": \"x position\",\n \"SENSING_OF_YPOSITION\": \"y position\",\n \"SENSING_OF_DIRECTION\": \"riktning\",\n \"SENSING_OF_COSTUMENUMBER\": \"klädselnummer\",\n \"SENSING_OF_COSTUMENAME\": \"klädselnamn\",\n \"SENSING_OF_SIZE\": \"storlek\",\n \"SENSING_OF_VOLUME\": \"volym \",\n \"SENSING_OF_BACKDROPNUMBER\": \"bakgrundsnummer\",\n \"SENSING_OF_BACKDROPNAME\": \"bakgrundsnamn\",\n \"SENSING_OF_STAGE\": \"Scen\",\n \"SENSING_CURRENT\": \"aktuell %1\",\n \"SENSING_CURRENT_YEAR\": \"år \",\n \"SENSING_CURRENT_MONTH\": \"månad \",\n \"SENSING_CURRENT_DATE\": \"dag \",\n \"SENSING_CURRENT_DAYOFWEEK\": \"veckodag \",\n \"SENSING_CURRENT_HOUR\": \"timmar \",\n \"SENSING_CURRENT_MINUTE\": \"minuter \",\n \"SENSING_CURRENT_SECOND\": \"sekunder \",\n \"SENSING_DAYSSINCE2000\": \"dagar sedan år 2000\",\n \"SENSING_USERNAME\": \"användarnamn \",\n \"SENSING_USERID\": \"användarnamn\",\n \"SOUND_PLAY\": \"starta ljud %1\",\n \"SOUND_PLAYUNTILDONE\": \"spela ljudet %1 tills färdigt\",\n \"SOUND_STOPALLSOUNDS\": \"stoppa alla ljud\",\n \"SOUND_SETEFFECTO\": \"sätt %1 effekten till %2\",\n \"SOUND_CHANGEEFFECTBY\": \"ändra %1 effekten med %2\",\n \"SOUND_CLEAREFFECTS\": \"ta bort ljudeffekter\",\n \"SOUND_EFFECTS_PITCH\": \"tonhöjd\",\n \"SOUND_EFFECTS_PAN\": \"panorera vänster/höger\",\n \"SOUND_CHANGEVOLUMEBY\": \"ändra volymen med %1\",\n \"SOUND_SETVOLUMETO\": \"sätt volymen till %1%\",\n \"SOUND_VOLUME\": \"volym \",\n \"SOUND_RECORD\": \"spela in...\",\n \"CATEGORY_MOTION\": \"Rörelse\",\n \"CATEGORY_LOOKS\": \"Utseende\",\n \"CATEGORY_SOUND\": \"Ljud\",\n \"CATEGORY_EVENTS\": \"Händelser\",\n \"CATEGORY_CONTROL\": \"Kontroll\",\n \"CATEGORY_SENSING\": \"Känna av\",\n \"CATEGORY_OPERATORS\": \"Operatorer\",\n \"CATEGORY_VARIABLES\": \"Variabler\",\n \"CATEGORY_MYBLOCKS\": \"Mina block\",\n \"DUPLICATE\": \"Kopiera\",\n \"DELETE\": \"Radera\",\n \"ADD_COMMENT\": \"Lägg till kommentar\",\n \"REMOVE_COMMENT\": \"Ta bort kommentar\",\n \"DELETE_BLOCK\": \"Ta bort block\",\n \"DELETE_X_BLOCKS\": \"Ta bort %1 block\",\n \"DELETE_ALL_BLOCKS\": \"Ta bort alla %1 block?\",\n \"CLEAN_UP\": \"Rensa block\",\n \"HELP\": \"Hjälp\",\n \"UNDO\": \"Ångra\",\n \"REDO\": \"Gör om\",\n \"EDIT_PROCEDURE\": \"Redigera\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Gå till definition\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Säg något...\",\n \"COLOUR_HUE_LABEL\": \"Färg\",\n \"COLOUR_SATURATION_LABEL\": \"Mättnad\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Ljusstyrka\",\n \"CHANGE_VALUE_TITLE\": \"Ändra värde:\",\n \"RENAME_VARIABLE\": \"Döp om variabeln\",\n \"RENAME_VARIABLE_TITLE\": \"Döp om alla \\\"%1\\\" variabler till:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Döp om variabel\",\n \"NEW_VARIABLE\": \"Skapa en variabel\",\n \"NEW_VARIABLE_TITLE\": \"Nytt variabelnamn:\",\n \"VARIABLE_MODAL_TITLE\": \"Ny variabel\",\n \"VARIABLE_ALREADY_EXISTS\": \"En variabel \\\"%1\\\" finns redan.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"En variabel \\\"%1\\\" finns redan för en annan variabel av typ \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Ta bort %1 användningar av variabeln \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Kan inte ta bort variabel \\\"%1\\\" för att den är en del av definitionen av funktionen \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Ta bort \\\"%1\\\" variabeln\",\n \"NEW_PROCEDURE\": \"Skapa ett Block\",\n \"PROCEDURE_ALREADY_EXISTS\": \"En funktion \\\"%1\\\" finns redan.\",\n \"PROCEDURE_DEFAULT_NAME\": \"blocknamn\",\n \"NEW_LIST\": \"Skapa en lista\",\n \"NEW_LIST_TITLE\": \"Nytt listnamn:\",\n \"LIST_MODAL_TITLE\": \"Ny lista\",\n \"LIST_ALREADY_EXISTS\": \"En lista \\\"%1\\\" finns redan.\",\n \"RENAME_LIST_TITLE\": \"Döp om alla \\\"%1\\\" listor till:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Döp om lista\",\n \"DEFAULT_LIST_ITEM\": \"grej\",\n \"DELETE_LIST\": \"Radera \\\"%1\\\" listan\",\n \"RENAME_LIST\": \"Döp om listan\",\n \"NEW_BROADCAST_MESSAGE\": \"Nytt meddelande\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Nytt namn på meddelande:\",\n \"BROADCAST_MODAL_TITLE\": \"Nytt meddelande\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"meddelande1\"\n};\n\nBlockly.ScratchMsgs.locales[\"vi\"] =\n{\n \"CONTROL_FOREVER\": \"liên tục\",\n \"CONTROL_REPEAT\": \"lặp lại %1\",\n \"CONTROL_IF\": \"nếu %1 thì\",\n \"CONTROL_ELSE\": \"nếu không thì \",\n \"CONTROL_STOP\": \"dừng lại\",\n \"CONTROL_STOP_ALL\": \"tất cả\",\n \"CONTROL_STOP_THIS\": \"kịch bản này\",\n \"CONTROL_STOP_OTHER\": \"các kịch bản khác cho đối tượng \",\n \"CONTROL_WAIT\": \"đợi %1 giây\",\n \"CONTROL_WAITUNTIL\": \"đợi đến khi %1\",\n \"CONTROL_REPEATUNTIL\": \"lặp lại cho đến khi %1\",\n \"CONTROL_WHILE\": \"trong khi %1\",\n \"CONTROL_FOREACH\": \"với mỗi %1 trong %2\",\n \"CONTROL_STARTASCLONE\": \"khi tôi bắt đầu là một bản sao\",\n \"CONTROL_CREATECLONEOF\": \"tạo bản sao của %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"bản thân tôi\",\n \"CONTROL_DELETETHISCLONE\": \"xóa bản sao này\",\n \"CONTROL_COUNTER\": \"bộ đếm\",\n \"CONTROL_INCRCOUNTER\": \"bộ đếm tăng dần\",\n \"CONTROL_CLEARCOUNTER\": \"xóa bộ đếm\",\n \"CONTROL_ALLATONCE\": \"tất cả cùng một lúc\",\n \"DATA_SETVARIABLETO\": \"đặt %1 thành %2\",\n \"DATA_CHANGEVARIABLEBY\": \"thay đổi %1 một lượng %2\",\n \"DATA_SHOWVARIABLE\": \"hiện biến số %1\",\n \"DATA_HIDEVARIABLE\": \"ẩn biến số %1\",\n \"DATA_ADDTOLIST\": \"thêm phần tử %1 vào trong %2\",\n \"DATA_DELETEOFLIST\": \"xóa phần tử thứ %1 của %2\",\n \"DATA_DELETEALLOFLIST\": \"Xóa hết tất cả trong liệt kê %1\",\n \"DATA_INSERTATLIST\": \"thêm phần tử %1 tại vị trí %2 của %3\",\n \"DATA_REPLACEITEMOFLIST\": \"thay thế phần tử thứ %1 của danh sách %2 bằng %3\",\n \"DATA_ITEMOFLIST\": \"phần tử thứ %1 của %2\",\n \"DATA_ITEMNUMOFLIST\": \"phần tử thứ %1 trong tợp hợp %2\",\n \"DATA_LENGTHOFLIST\": \"kích thước của %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 chứa phần tử %2?\",\n \"DATA_SHOWLIST\": \"hiện danh sách %1\",\n \"DATA_HIDELIST\": \"ăn danh sách %1\",\n \"DATA_INDEX_ALL\": \"tất cả\",\n \"DATA_INDEX_LAST\": \"cuối cùng\",\n \"DATA_INDEX_RANDOM\": \"ngẫu nhiên\",\n \"EVENT_WHENFLAGCLICKED\": \"Khi bấm vào %1\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"Khi bấm vào đối tượng này\",\n \"EVENT_WHENSTAGECLICKED\": \"khi bấm vào phông nền\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"Khi đối tượng này chạm vào %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"khi nhận %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"khi phông nền chuyển thành %1\",\n \"EVENT_WHENGREATERTHAN\": \"khi %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"đồng hồ bấm giờ\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"độ ồn\",\n \"EVENT_BROADCAST\": \"phát tin %1\",\n \"EVENT_BROADCASTANDWAIT\": \"phát tin %1 và đợi\",\n \"EVENT_WHENKEYPRESSED\": \"khi bấm phím %1\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"phím trắng\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"mũi tên trái\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"mũi tên phải\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"mũi tên xuống\",\n \"EVENT_WHENKEYPRESSED_UP\": \"mũi tên lên\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"bất kỳ\",\n \"LOOKS_SAYFORSECS\": \"nói %1 trong %2 giây\",\n \"LOOKS_SAY\": \"nói %1\",\n \"LOOKS_HELLO\": \"Xin chào!\",\n \"LOOKS_THINKFORSECS\": \"nghĩ %1 trong %2 giây\",\n \"LOOKS_THINK\": \"nghĩ %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"hiện\",\n \"LOOKS_HIDE\": \"ẩn\",\n \"LOOKS_HIDEALLSPRITES\": \"ẩn tất cả đối tượng\",\n \"LOOKS_EFFECT_COLOR\": \"màu\",\n \"LOOKS_EFFECT_FISHEYE\": \"gương cầu\",\n \"LOOKS_EFFECT_WHIRL\": \"xoay\",\n \"LOOKS_EFFECT_PIXELATE\": \"nhòe\",\n \"LOOKS_EFFECT_MOSAIC\": \"khảm\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"độ sáng\",\n \"LOOKS_EFFECT_GHOST\": \"bóng ma\",\n \"LOOKS_CHANGEEFFECTBY\": \"thay đổi hiệu ứng %1 một lượng %2\",\n \"LOOKS_SETEFFECTTO\": \"thay đổi hiệu ứng %1 bằng %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"bỏ các hiệu ứng đồ họa\",\n \"LOOKS_CHANGESIZEBY\": \"đổi kích thước một lượng %1\",\n \"LOOKS_SETSIZETO\": \"đặt kích thước thành %1 %\",\n \"LOOKS_SIZE\": \"kích thước\",\n \"LOOKS_CHANGESTRETCHBY\": \"đổi kéo căng một lượng %1\",\n \"LOOKS_SETSTRETCHTO\": \"đặt kéo căng thành %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"chuyển sang thiết kế %1\",\n \"LOOKS_NEXTCOSTUME\": \"trang phục kế tiếp\",\n \"LOOKS_SWITCHBACKDROPTO\": \"đổi phông nền thành %1\",\n \"LOOKS_GOTOFRONTBACK\": \"đi tới lớp %1\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"phía trên cùng\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"phía sau cùng\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"đi %1 %2 lớp\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"tới\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"lùi\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"phông nền %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"thiết kế %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"số\",\n \"LOOKS_NUMBERNAME_NAME\": \"tên\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"đổi phông nền thành %1 và đợi\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"phông nền tiếp theo\",\n \"LOOKS_NEXTBACKDROP\": \"phông nền tiếp theo\",\n \"LOOKS_PREVIOUSBACKDROP\": \"phông nền trước\",\n \"LOOKS_RANDOMBACKDROP\": \"phông nền ngẫu nhiên\",\n \"MOTION_MOVESTEPS\": \"di chuyển %1 bước\",\n \"MOTION_TURNLEFT\": \"xoay %1 %2 độ\",\n \"MOTION_TURNRIGHT\": \"xoay %1 %2 độ\",\n \"MOTION_POINTINDIRECTION\": \"hướng về phía %1\",\n \"MOTION_POINTTOWARDS\": \"hướng về vị trí %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"con trỏ chuột\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"random direction\",\n \"MOTION_GOTO\": \"đi tới %1\",\n \"MOTION_GOTO_POINTER\": \"con trỏ chuột\",\n \"MOTION_GOTO_RANDOM\": \"vị trí ngẫu nhiên\",\n \"MOTION_GOTOXY\": \"đi tới điểm x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"lướt trong %1 giây tới điểm x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"lướt trong %1 giây tới %2\",\n \"MOTION_GLIDETO_POINTER\": \"con trỏ chuột\",\n \"MOTION_GLIDETO_RANDOM\": \"vị trí ngẫu nhiên\",\n \"MOTION_CHANGEXBY\": \"thay đổi hoành độ một lượng %1\",\n \"MOTION_SETX\": \"đặt hoàng độ bằng %1\",\n \"MOTION_CHANGEYBY\": \"thay đổi tung độ một lượng%1\",\n \"MOTION_SETY\": \"đặt tung độ bằng %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"nếu tiếp xúc với cạnh, bật lại\",\n \"MOTION_SETROTATIONSTYLE\": \"đặt kiểu xoay %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"trái - phải\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"không xoay\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"xung quanh\",\n \"MOTION_XPOSITION\": \"hoành độ\",\n \"MOTION_YPOSITION\": \"tung độ\",\n \"MOTION_DIRECTION\": \"hướng\",\n \"MOTION_SCROLLRIGHT\": \"cuộn phải %1\",\n \"MOTION_SCROLLUP\": \"cuộn lên %1\",\n \"MOTION_ALIGNSCENE\": \"căn chỉnh phân cảnh %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"góc trái dưới\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"góc phải dưới\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"giữa\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"góc trái trên\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"góc phải trên\",\n \"MOTION_XSCROLL\": \"cuộn x\",\n \"MOTION_YSCROLL\": \"cuộn y\",\n \"MOTION_STAGE_SELECTED\": \"Đã chọn nền: không có khối lập trình chuyển động\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"lấy ngẫu nhiên từ %1 đến %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 và %2\",\n \"OPERATORS_OR\": \"%1 hoặc %2\",\n \"OPERATORS_NOT\": \"không phải %1\",\n \"OPERATORS_JOIN\": \"kết hợp %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"táo\",\n \"OPERATORS_JOIN_BANANA\": \"chuối\",\n \"OPERATORS_LETTEROF\": \"ký tự thứ %1 của chuỗi %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"t\",\n \"OPERATORS_LENGTH\": \"độ dài của %1\",\n \"OPERATORS_CONTAINS\": \"%1 chứa ký tự %2?\",\n \"OPERATORS_MOD\": \"%1 chia lấy dư %2\",\n \"OPERATORS_ROUND\": \"làm tròn %1\",\n \"OPERATORS_MATHOP\": \"%1 của %2\",\n \"OPERATORS_MATHOP_ABS\": \"giá trị tuyệt đối\",\n \"OPERATORS_MATHOP_FLOOR\": \"làm tròn xuống\",\n \"OPERATORS_MATHOP_CEILING\": \"trần\",\n \"OPERATORS_MATHOP_SQRT\": \"căn bậc hai\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"trong\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"định nghĩa %1\",\n \"SENSING_TOUCHINGOBJECT\": \"đang chạm %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"con trỏ chuột\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"cạnh\",\n \"SENSING_TOUCHINGCOLOR\": \"đang chạm màu %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"màu %1 đang chạm %2?\",\n \"SENSING_DISTANCETO\": \"khoảng cách đến %1\",\n \"SENSING_DISTANCETO_POINTER\": \"con trỏ chuột\",\n \"SENSING_ASKANDWAIT\": \"hỏi %1 và đợi\",\n \"SENSING_ASK_TEXT\": \"Tên của bạn là gì?\",\n \"SENSING_ANSWER\": \"trả lời\",\n \"SENSING_KEYPRESSED\": \"phím %1 được bấm?\",\n \"SENSING_MOUSEDOWN\": \"chuột được nhấn?\",\n \"SENSING_MOUSEX\": \"hoành độ con trỏ chuột\",\n \"SENSING_MOUSEY\": \"tung độ con trỏ chuột\",\n \"SENSING_SETDRAGMODE\": \"đặt chế độ kéo %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"kéo thả được\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"không kéo thả được\",\n \"SENSING_LOUDNESS\": \"độ ồn\",\n \"SENSING_LOUD\": \"tiếng to?\",\n \"SENSING_TIMER\": \"đồng hồ bấm giờ\",\n \"SENSING_RESETTIMER\": \"đặt lại đống hồ bấm giờ\",\n \"SENSING_OF\": \"%1 của %2\",\n \"SENSING_OF_XPOSITION\": \"hoành độ\",\n \"SENSING_OF_YPOSITION\": \"tung độ\",\n \"SENSING_OF_DIRECTION\": \"hướng\",\n \"SENSING_OF_COSTUMENUMBER\": \"thiết kế #\",\n \"SENSING_OF_COSTUMENAME\": \"tên thiết kế\",\n \"SENSING_OF_SIZE\": \"kích thước\",\n \"SENSING_OF_VOLUME\": \"âm lượng\",\n \"SENSING_OF_BACKDROPNUMBER\": \"phông nền #\",\n \"SENSING_OF_BACKDROPNAME\": \"tên phông nền\",\n \"SENSING_OF_STAGE\": \"Sân khấu\",\n \"SENSING_CURRENT\": \"%1 hiện tại\",\n \"SENSING_CURRENT_YEAR\": \"năm\",\n \"SENSING_CURRENT_MONTH\": \"tháng\",\n \"SENSING_CURRENT_DATE\": \"ngày\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"ngày trong tuần\",\n \"SENSING_CURRENT_HOUR\": \"giờ\",\n \"SENSING_CURRENT_MINUTE\": \"phút\",\n \"SENSING_CURRENT_SECOND\": \"giây\",\n \"SENSING_DAYSSINCE2000\": \"số ngày từ năm 2000\",\n \"SENSING_USERNAME\": \"tên đăng nhập\",\n \"SENSING_USERID\": \"id người dùng\",\n \"SOUND_PLAY\": \"bắt đầu âm thanh %1\",\n \"SOUND_PLAYUNTILDONE\": \"phát âm thanh %1 đến hết\",\n \"SOUND_STOPALLSOUNDS\": \"ngừng mọi âm thanh\",\n \"SOUND_SETEFFECTO\": \"đặt hiệu ứng %1 thành %2\",\n \"SOUND_CHANGEEFFECTBY\": \"thay đổi hiệu ứng %1 một lượng %2\",\n \"SOUND_CLEAREFFECTS\": \"xóa hiệu ứng âm thanh\",\n \"SOUND_EFFECTS_PITCH\": \"cao độ\",\n \"SOUND_EFFECTS_PAN\": \"pan trái/phải\",\n \"SOUND_CHANGEVOLUMEBY\": \"thay đổi âm lượng một lượng %1\",\n \"SOUND_SETVOLUMETO\": \"đặt âm lượng %1%\",\n \"SOUND_VOLUME\": \"âm lượng\",\n \"SOUND_RECORD\": \"lưu lại...\",\n \"CATEGORY_MOTION\": \"Chuyển động\",\n \"CATEGORY_LOOKS\": \"Hiển thị\",\n \"CATEGORY_SOUND\": \"Âm thanh\",\n \"CATEGORY_EVENTS\": \"Sự kiện\",\n \"CATEGORY_CONTROL\": \"Điều khiển\",\n \"CATEGORY_SENSING\": \"Cảm biến\",\n \"CATEGORY_OPERATORS\": \"Các phép toán\",\n \"CATEGORY_VARIABLES\": \"Các biến số\",\n \"CATEGORY_MYBLOCKS\": \"Khối của tôi\",\n \"DUPLICATE\": \"Nhân bản\",\n \"DELETE\": \"Xóa\",\n \"ADD_COMMENT\": \"Thêm chú thích\",\n \"REMOVE_COMMENT\": \"Xóa chú thích\",\n \"DELETE_BLOCK\": \"Xóa khối\",\n \"DELETE_X_BLOCKS\": \"Xóa %1 khối\",\n \"DELETE_ALL_BLOCKS\": \"Xóa toàn bộ %1 khối?\",\n \"CLEAN_UP\": \"Xóa hết khối\",\n \"HELP\": \"Trợ giúp\",\n \"UNDO\": \"Hoàn tác\",\n \"REDO\": \"Làm lại \",\n \"EDIT_PROCEDURE\": \"Chỉnh sửa\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Tìm định nghĩa\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Nói gì đó...\",\n \"COLOUR_HUE_LABEL\": \"Màu sắc\",\n \"COLOUR_SATURATION_LABEL\": \"Độ bão hòa\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Độ sáng\",\n \"CHANGE_VALUE_TITLE\": \"Thay đổi giá trị:\",\n \"RENAME_VARIABLE\": \"Đặt tên cho biến\",\n \"RENAME_VARIABLE_TITLE\": \"Đặt tên tất cả biến \\\"%1\\\" thành:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Đặt tên biến\",\n \"NEW_VARIABLE\": \"Tạo một biến\",\n \"NEW_VARIABLE_TITLE\": \"Tên biến mới:\",\n \"VARIABLE_MODAL_TITLE\": \"Biến mới\",\n \"VARIABLE_ALREADY_EXISTS\": \"Một biến với tên\\\"%1\\\" đã tồn tại.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Một biến số tên là \\\"%1\\\" đã có ở trong một biến số khác tên \\\"%2\\\"\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Xóa %1 cách dùng của biến số \\\"%2\\\"\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Không thể xóa biến số \\\"%1\\\" tại vì nó là một phần của chức vụ lập trình \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Xóa biến \\\"%1\\\"\",\n \"NEW_PROCEDURE\": \"Tạo một khối\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Một thủ tục có tên \\\"%1\\\" đã tồn tại.\",\n \"PROCEDURE_DEFAULT_NAME\": \"Tên khối\",\n \"NEW_LIST\": \"Tạo một Danh sách\",\n \"NEW_LIST_TITLE\": \"Tên danh sách mới:\",\n \"LIST_MODAL_TITLE\": \"Danh sách mới\",\n \"LIST_ALREADY_EXISTS\": \"Một danh sách có tên \\\"%1\\\" đã tồn tại.\",\n \"RENAME_LIST_TITLE\": \"Đặt tên tất cả danh sách \\\"%1\\\" thành:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Đặt tên danh sách\",\n \"DEFAULT_LIST_ITEM\": \"cụm\",\n \"DELETE_LIST\": \"Delete the \\\"%1\\\" list\",\n \"RENAME_LIST\": \"Rename list\",\n \"NEW_BROADCAST_MESSAGE\": \"Thông báo mới\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Tên thông báo mới:\",\n \"BROADCAST_MODAL_TITLE\": \"Tin nhắn mới\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"tin nhắn 1\"\n};\n\nBlockly.ScratchMsgs.locales[\"tr\"] =\n{\n \"CONTROL_FOREVER\": \"sürekli tekrarla\",\n \"CONTROL_REPEAT\": \"%1 defa tekrarla\",\n \"CONTROL_IF\": \"eğer %1 ise\",\n \"CONTROL_ELSE\": \"değilse\",\n \"CONTROL_STOP\": \"durdur\",\n \"CONTROL_STOP_ALL\": \"tümü\",\n \"CONTROL_STOP_THIS\": \"bu dizi\",\n \"CONTROL_STOP_OTHER\": \"Kukladaki diğer diziler\",\n \"CONTROL_WAIT\": \"%1 saniye bekle\",\n \"CONTROL_WAITUNTIL\": \"%1 olana kadar bekle\",\n \"CONTROL_REPEATUNTIL\": \"%1 olana kadar tekrarla\",\n \"CONTROL_WHILE\": \"%1 olduğu sürece tekrarla\",\n \"CONTROL_FOREACH\": \"%2 deki her %1 için\",\n \"CONTROL_STARTASCLONE\": \"ikiz olarak başladığımda\",\n \"CONTROL_CREATECLONEOF\": \"%1'in ikizini yarat\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"kendim\",\n \"CONTROL_DELETETHISCLONE\": \"bu ikizi sil\",\n \"CONTROL_COUNTER\": \"sayaç\",\n \"CONTROL_INCRCOUNTER\": \"sayacı artır\",\n \"CONTROL_CLEARCOUNTER\": \"sayacı sıfırla\",\n \"CONTROL_ALLATONCE\": \"tümü tek seferde\",\n \"DATA_SETVARIABLETO\": \"%1 i %2 yap\",\n \"DATA_CHANGEVARIABLEBY\": \"%1 i %2 kadar değiştir\",\n \"DATA_SHOWVARIABLE\": \"%1 değişkenini göster\",\n \"DATA_HIDEVARIABLE\": \"%1 değişkenini gizle\",\n \"DATA_ADDTOLIST\": \"%1 i %2 ye ekle\",\n \"DATA_DELETEOFLIST\": \"%2 nin %1 ini sil\",\n \"DATA_DELETEALLOFLIST\": \"%1'in herşeyini sil\",\n \"DATA_INSERTATLIST\": \"%1 i %3 ün %2 pozisyonuna ekle\",\n \"DATA_REPLACEITEMOFLIST\": \"%2 öğesinin %1 öğesini %3 ile değiştir\",\n \"DATA_ITEMOFLIST\": \"%2 nin %1 öğesi\",\n \"DATA_ITEMNUMOFLIST\": \"%2 nin %1 öğesi\",\n \"DATA_LENGTHOFLIST\": \"%1'in uzunluğu\",\n \"DATA_LISTCONTAINSITEM\": \"%1 %2'yi içeriyor mu? \",\n \"DATA_SHOWLIST\": \"%1 listesini göster\",\n \"DATA_HIDELIST\": \"%1 listesini gizle\",\n \"DATA_INDEX_ALL\": \"tümü\",\n \"DATA_INDEX_LAST\": \"son\",\n \"DATA_INDEX_RANDOM\": \"rastgele\",\n \"EVENT_WHENFLAGCLICKED\": \"%1 tıklandığında\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"bu kukla tıklandığında\",\n \"EVENT_WHENSTAGECLICKED\": \"sahne tıklandığında\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"bu kukla %1 e dokunduğunda\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"%1 haberini aldığımda\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"dekor %1 olarak değiştiğinde\",\n \"EVENT_WHENGREATERTHAN\": \"%1 > %2 olduğunda\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"zamanlayıcı\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"ses yüksekliği\",\n \"EVENT_BROADCAST\": \"%1 haberini sal\",\n \"EVENT_BROADCASTANDWAIT\": \"%1 haberini sal ve bekle\",\n \"EVENT_WHENKEYPRESSED\": \"%1 tuşuna basılınca\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"boşluk\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"sol ok\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"sağ ok\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"aşağı ok\",\n \"EVENT_WHENKEYPRESSED_UP\": \"yukarı ok\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"herhangi\",\n \"LOOKS_SAYFORSECS\": \"%2 saniye boyunca %1 de \",\n \"LOOKS_SAY\": \"%1 de\",\n \"LOOKS_HELLO\": \"Merhaba!\",\n \"LOOKS_THINKFORSECS\": \"%2 saniye boyunca %1 diye düşün\",\n \"LOOKS_THINK\": \"%1 diye düşün\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"göster\",\n \"LOOKS_HIDE\": \"gizle\",\n \"LOOKS_HIDEALLSPRITES\": \"tüm kuklaları gizle\",\n \"LOOKS_EFFECT_COLOR\": \"renk\",\n \"LOOKS_EFFECT_FISHEYE\": \"balık gözü\",\n \"LOOKS_EFFECT_WHIRL\": \"fırıl fırıl döndür\",\n \"LOOKS_EFFECT_PIXELATE\": \"benekleştir\",\n \"LOOKS_EFFECT_MOSAIC\": \"mozaik\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"parlaklık\",\n \"LOOKS_EFFECT_GHOST\": \"hayalet\",\n \"LOOKS_CHANGEEFFECTBY\": \"%1 etkisini %2 değiştir\",\n \"LOOKS_SETEFFECTTO\": \"%1 etkisini %2 yap\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"görsel etkileri temizle\",\n \"LOOKS_CHANGESIZEBY\": \"boyutu %1 birim değiştir\",\n \"LOOKS_SETSIZETO\": \"boyutu % %1 yap\",\n \"LOOKS_SIZE\": \"büyüklük\",\n \"LOOKS_CHANGESTRETCHBY\": \"esnekliği %1 kadar değiştir\",\n \"LOOKS_SETSTRETCHTO\": \"esnekliği % %1 olarak ayarla\",\n \"LOOKS_SWITCHCOSTUMETO\": \"%1 kılığına geç\",\n \"LOOKS_NEXTCOSTUME\": \"sonraki kostüm\",\n \"LOOKS_SWITCHBACKDROPTO\": \"%1 dekoruna geç\",\n \"LOOKS_GOTOFRONTBACK\": \"%1 katmanına git\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"ön\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"arka\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"%2 katman %1 git\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"ileri\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"geri\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"dekor %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"kostüm %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"sayı\",\n \"LOOKS_NUMBERNAME_NAME\": \"isim\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"%1 dekoruna geç ve bekle\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"sonraki dekor\",\n \"LOOKS_NEXTBACKDROP\": \"sonraki dekor\",\n \"LOOKS_PREVIOUSBACKDROP\": \"önceki dekor\",\n \"LOOKS_RANDOMBACKDROP\": \"Rastgele dekor\",\n \"MOTION_MOVESTEPS\": \"%1 adım git\",\n \"MOTION_TURNLEFT\": \"%1 %2 derece dön\",\n \"MOTION_TURNRIGHT\": \"%1 %2 derece dön\",\n \"MOTION_POINTINDIRECTION\": \"%1 yönüne yönel\",\n \"MOTION_POINTTOWARDS\": \"%1 yönüne doğru yönel\",\n \"MOTION_POINTTOWARDS_POINTER\": \"fare-imleci\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"rastgele yön\",\n \"MOTION_GOTO\": \"%1'e git\",\n \"MOTION_GOTO_POINTER\": \"fare-imleci\",\n \"MOTION_GOTO_RANDOM\": \"rastgele konuma\",\n \"MOTION_GOTOXY\": \"x: %1 y: %2 konumuna git\",\n \"MOTION_GLIDESECSTOXY\": \"%1 sn.de x: %2 y: %3'a git\",\n \"MOTION_GLIDETO\": \"%1 saniyede %2 noktasına git\",\n \"MOTION_GLIDETO_POINTER\": \"fare-imleci\",\n \"MOTION_GLIDETO_RANDOM\": \"rastgele konum\",\n \"MOTION_CHANGEXBY\": \"x konumunu %1 değiştir\",\n \"MOTION_SETX\": \"x konumunu %1 yap\",\n \"MOTION_CHANGEYBY\": \"y konumunu %1 değiştir\",\n \"MOTION_SETY\": \"y konumunu %1 yap\",\n \"MOTION_IFONEDGEBOUNCE\": \"kenara geldiyse sektir\",\n \"MOTION_SETROTATIONSTYLE\": \"dönüş stilini %1 yap\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"sol-sağ\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"döndürme\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"tüm yönlere\",\n \"MOTION_XPOSITION\": \"x konumu\",\n \"MOTION_YPOSITION\": \"y konumu\",\n \"MOTION_DIRECTION\": \"yön\",\n \"MOTION_SCROLLRIGHT\": \"sağa %1 kaydır\",\n \"MOTION_SCROLLUP\": \"yukarı %1 kaydır\",\n \"MOTION_ALIGNSCENE\": \"%1 sahnesini hizala\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"sol-alt\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"sağ-alt\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"orta\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"sol-üst\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"sağ-üst\",\n \"MOTION_XSCROLL\": \"x ekseninde kaydır\",\n \"MOTION_YSCROLL\": \"y ekseninde kaydır\",\n \"MOTION_STAGE_SELECTED\": \"Sahne seçildi: Hareket blokları yok\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"%1 ile %2 arasında rastgele sayı seç\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 ve %2\",\n \"OPERATORS_OR\": \"%1 veya %2\",\n \"OPERATORS_NOT\": \"%1 değil\",\n \"OPERATORS_JOIN\": \"%1 ve %2'i birleştir\",\n \"OPERATORS_JOIN_APPLE\": \"elma\",\n \"OPERATORS_JOIN_BANANA\": \"muz\",\n \"OPERATORS_LETTEROF\": \"%2 in %1. harfi\",\n \"OPERATORS_LETTEROF_APPLE\": \"bir\",\n \"OPERATORS_LENGTH\": \"%1'in uzunluğu\",\n \"OPERATORS_CONTAINS\": \"%1 %2'i içeriyor mu?\",\n \"OPERATORS_MOD\": \"%1 mod %2\",\n \"OPERATORS_ROUND\": \"%1'i yuvarla\",\n \"OPERATORS_MATHOP\": \"%2 nin %1 i\",\n \"OPERATORS_MATHOP_ABS\": \"mutlak değer\",\n \"OPERATORS_MATHOP_FLOOR\": \"aşağı yuvarla\",\n \"OPERATORS_MATHOP_CEILING\": \"yukarı yuvarla\",\n \"OPERATORS_MATHOP_SQRT\": \"karekök\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"%1 tanımla\",\n \"SENSING_TOUCHINGOBJECT\": \"%1 değiyor mu?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"fare-imlecine\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"kenara\",\n \"SENSING_TOUCHINGCOLOR\": \"%1 rengine dokunuyor mu?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"%1 rengi %2 rengine değiyor mu?\",\n \"SENSING_DISTANCETO\": \"%1'e mesafe\",\n \"SENSING_DISTANCETO_POINTER\": \"fare-imleci\",\n \"SENSING_ASKANDWAIT\": \"%1 diye sor ve bekle\",\n \"SENSING_ASK_TEXT\": \"Adın ne?\",\n \"SENSING_ANSWER\": \"cevap\",\n \"SENSING_KEYPRESSED\": \"%1 tuşuna basıldı mı?\",\n \"SENSING_MOUSEDOWN\": \"fareye basılı mı?\",\n \"SENSING_MOUSEX\": \"farenin x'i\",\n \"SENSING_MOUSEY\": \"farenin y'si\",\n \"SENSING_SETDRAGMODE\": \"sürükleme modunu %1 yap\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"sürüklenebilir\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"sürüklenmez\",\n \"SENSING_LOUDNESS\": \"ses yüksekliği\",\n \"SENSING_LOUD\": \"yüksek ses?\",\n \"SENSING_TIMER\": \"zamanlayıcı\",\n \"SENSING_RESETTIMER\": \"zamanlayıcıyı sıfırla\",\n \"SENSING_OF\": \"%2 nin %1 i\",\n \"SENSING_OF_XPOSITION\": \"x konumu\",\n \"SENSING_OF_YPOSITION\": \"y konumu\",\n \"SENSING_OF_DIRECTION\": \"yön\",\n \"SENSING_OF_COSTUMENUMBER\": \"kostüm #\",\n \"SENSING_OF_COSTUMENAME\": \"kostüm ismi\",\n \"SENSING_OF_SIZE\": \"büyüklük\",\n \"SENSING_OF_VOLUME\": \"ses düzeyi\",\n \"SENSING_OF_BACKDROPNUMBER\": \"dekor #\",\n \"SENSING_OF_BACKDROPNAME\": \"dekorun adı\",\n \"SENSING_OF_STAGE\": \"Sahne\",\n \"SENSING_CURRENT\": \"şimdiki %1\",\n \"SENSING_CURRENT_YEAR\": \"yıl\",\n \"SENSING_CURRENT_MONTH\": \"ay\",\n \"SENSING_CURRENT_DATE\": \"tarih\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"haftanın günü\",\n \"SENSING_CURRENT_HOUR\": \"saat\",\n \"SENSING_CURRENT_MINUTE\": \"dakika\",\n \"SENSING_CURRENT_SECOND\": \"saniye\",\n \"SENSING_DAYSSINCE2000\": \"2000 yılından beri geçen gün\",\n \"SENSING_USERNAME\": \"kullanıcı adı\",\n \"SENSING_USERID\": \"kullanıcı kimliği\",\n \"SOUND_PLAY\": \"%1 sesini başlat\",\n \"SOUND_PLAYUNTILDONE\": \"%1 sesini bitene kadar çal\",\n \"SOUND_STOPALLSOUNDS\": \"tüm sesleri durdur\",\n \"SOUND_SETEFFECTO\": \"%1 etkisini %2 yap\",\n \"SOUND_CHANGEEFFECTBY\": \"%1 etkisini %2 değiştir\",\n \"SOUND_CLEAREFFECTS\": \"ses etkilerini temizle\",\n \"SOUND_EFFECTS_PITCH\": \"ses perdesi\",\n \"SOUND_EFFECTS_PAN\": \"sağa-sola kaydır\",\n \"SOUND_CHANGEVOLUMEBY\": \"ses düzeyini %1 değiştir\",\n \"SOUND_SETVOLUMETO\": \"ses düzeyini %1% yap\",\n \"SOUND_VOLUME\": \"ses düzeyi\",\n \"SOUND_RECORD\": \"kaydet...\",\n \"CATEGORY_MOTION\": \"Hareket\",\n \"CATEGORY_LOOKS\": \"Görünüm\",\n \"CATEGORY_SOUND\": \"Ses\",\n \"CATEGORY_EVENTS\": \"Olaylar\",\n \"CATEGORY_CONTROL\": \"Kontrol\",\n \"CATEGORY_SENSING\": \"Algılama\",\n \"CATEGORY_OPERATORS\": \"Operatörler\",\n \"CATEGORY_VARIABLES\": \"Değişkenler\",\n \"CATEGORY_MYBLOCKS\": \"Bloklarım\",\n \"DUPLICATE\": \"Kopyasını çıkart\",\n \"DELETE\": \"Sil\",\n \"ADD_COMMENT\": \"Yorum Ekle\",\n \"REMOVE_COMMENT\": \"Yorumu Sil\",\n \"DELETE_BLOCK\": \"Bloğu Sil\",\n \"DELETE_X_BLOCKS\": \"%1 Bloklarını Sil\",\n \"DELETE_ALL_BLOCKS\": \"Tüm %1 blokları silinsin mi?\",\n \"CLEAN_UP\": \"Blokları temizle\",\n \"HELP\": \"Yardım\",\n \"UNDO\": \"Geri Al\",\n \"REDO\": \"İleri Al\",\n \"EDIT_PROCEDURE\": \"Düzenle\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Tanımlamaya git\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Birşey söyle...\",\n \"COLOUR_HUE_LABEL\": \"Renk\",\n \"COLOUR_SATURATION_LABEL\": \"Doygunluk\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Parlaklık\",\n \"CHANGE_VALUE_TITLE\": \"Değeri değiştir:\",\n \"RENAME_VARIABLE\": \"Değişkeni yeniden adlandır\",\n \"RENAME_VARIABLE_TITLE\": \"Tüm \\\"%1\\\" değişkenlerini şununla adlandır:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Değişkeni Yeniden Adlandır\",\n \"NEW_VARIABLE\": \"Bir Değişken Oluştur\",\n \"NEW_VARIABLE_TITLE\": \"Yeni değişken adı:\",\n \"VARIABLE_MODAL_TITLE\": \"Yeni Değişken\",\n \"VARIABLE_ALREADY_EXISTS\": \"\\\"%1\\\" adlı değişken zaten var.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"\\\"%1\\\" adlı değişken \\\"%2\\\" tipinde zaten var.\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"%2 değişkeninin %1 kullanımı silinsin mi?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"\\\"%1\\\" değişkenini \\\"%2\\\" fonksiyonunun bir parçası olduğundan dolayı silinemez\",\n \"DELETE_VARIABLE\": \"\\\"%1\\\" değişkenini sil\",\n \"NEW_PROCEDURE\": \"Bir Blok Oluştur\",\n \"PROCEDURE_ALREADY_EXISTS\": \"\\\"%1\\\" adlı prosedür zaten var.\",\n \"PROCEDURE_DEFAULT_NAME\": \"blok adı\",\n \"NEW_LIST\": \"Bir Liste Oluştur\",\n \"NEW_LIST_TITLE\": \"Yeni liste adı:\",\n \"LIST_MODAL_TITLE\": \"Yeni Liste\",\n \"LIST_ALREADY_EXISTS\": \"'%1' adlı liste mevcuttur\",\n \"RENAME_LIST_TITLE\": \"Tüm \\\"%1\\\" listesini şöyle adlandır:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Listeyi Yeniden Adlandır\",\n \"DEFAULT_LIST_ITEM\": \"şey\",\n \"DELETE_LIST\": \"\\\"%1\\\" listesini sil\",\n \"RENAME_LIST\": \"Listeyi yeniden adlandır\",\n \"NEW_BROADCAST_MESSAGE\": \"Yeni haber\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Yeni haber adı:\",\n \"BROADCAST_MODAL_TITLE\": \"Yeni Haber\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"haber1\"\n};\n\nBlockly.ScratchMsgs.locales[\"uk\"] =\n{\n \"CONTROL_FOREVER\": \"завжди\",\n \"CONTROL_REPEAT\": \"повторити %1\",\n \"CONTROL_IF\": \"якщо %1 то\",\n \"CONTROL_ELSE\": \"інакше\",\n \"CONTROL_STOP\": \"зупинити\",\n \"CONTROL_STOP_ALL\": \"все\",\n \"CONTROL_STOP_THIS\": \"цей скрипт\",\n \"CONTROL_STOP_OTHER\": \"інші скрипти цього спрайту\",\n \"CONTROL_WAIT\": \"чекати %1 секунд\",\n \"CONTROL_WAITUNTIL\": \"чекати поки %1\",\n \"CONTROL_REPEATUNTIL\": \"повторити до %1\",\n \"CONTROL_WHILE\": \"поки %1\",\n \"CONTROL_FOREACH\": \"для кожного %1 в %2\",\n \"CONTROL_STARTASCLONE\": \"коли я починаю як клон\",\n \"CONTROL_CREATECLONEOF\": \"створити клон з %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"myself\",\n \"CONTROL_DELETETHISCLONE\": \"вилучити цей клон\",\n \"CONTROL_COUNTER\": \"лічильник\",\n \"CONTROL_INCRCOUNTER\": \"збільшити лічильник\",\n \"CONTROL_CLEARCOUNTER\": \"очистити лічильник\",\n \"CONTROL_ALLATONCE\": \"всі одночасно\",\n \"DATA_SETVARIABLETO\": \"надати %1 значення %2\",\n \"DATA_CHANGEVARIABLEBY\": \"змінити %1 на %2\",\n \"DATA_SHOWVARIABLE\": \"показати змінну %1\",\n \"DATA_HIDEVARIABLE\": \"сховати змінну %1\",\n \"DATA_ADDTOLIST\": \"додати %1 до %2\",\n \"DATA_DELETEOFLIST\": \"вилучити %1 з %2\",\n \"DATA_DELETEALLOFLIST\": \"вилучити все з %1\",\n \"DATA_INSERTATLIST\": \"вставити %1 на місці %2 списку %3\",\n \"DATA_REPLACEITEMOFLIST\": \"замінити елемент %1 в %2 на %3\",\n \"DATA_ITEMOFLIST\": \"елемент %1 з %2\",\n \"DATA_ITEMNUMOFLIST\": \"елемент # %1 з %2\",\n \"DATA_LENGTHOFLIST\": \"довжина %1\",\n \"DATA_LISTCONTAINSITEM\": \"%1 містить %2?\",\n \"DATA_SHOWLIST\": \"показати список %1\",\n \"DATA_HIDELIST\": \"сховати список %1\",\n \"DATA_INDEX_ALL\": \"все\",\n \"DATA_INDEX_LAST\": \"останні\",\n \"DATA_INDEX_RANDOM\": \"випадково\",\n \"EVENT_WHENFLAGCLICKED\": \"коли %1 натиснуто\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"коли спрайт натиснуто\",\n \"EVENT_WHENSTAGECLICKED\": \"коли сцену натиснуто\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"коли цей спрайт торкнеться %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"коли я отримую %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"коли тло зміниться на %1\",\n \"EVENT_WHENGREATERTHAN\": \"коли %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"таймер\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"гучність\",\n \"EVENT_BROADCAST\": \"оповістити %1\",\n \"EVENT_BROADCASTANDWAIT\": \"оповістити %1 і чекати\",\n \"EVENT_WHENKEYPRESSED\": \"коли клавішу %1 натиснуто \",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"пропуск\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"стрілка ліворуч\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"стрілка праворуч\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"стрілка вниз\",\n \"EVENT_WHENKEYPRESSED_UP\": \"стрілка вгору\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"будь-яка\",\n \"LOOKS_SAYFORSECS\": \"говорити %1 %2 сек\",\n \"LOOKS_SAY\": \"говорити %1\",\n \"LOOKS_HELLO\": \"Привіт!\",\n \"LOOKS_THINKFORSECS\": \"подумати %1 %2 сек\",\n \"LOOKS_THINK\": \"подумати %1\",\n \"LOOKS_HMM\": \"Хмм...\",\n \"LOOKS_SHOW\": \"показати\",\n \"LOOKS_HIDE\": \"сховати\",\n \"LOOKS_HIDEALLSPRITES\": \"сховати усі спрайти\",\n \"LOOKS_EFFECT_COLOR\": \"колір\",\n \"LOOKS_EFFECT_FISHEYE\": \"роздуття\",\n \"LOOKS_EFFECT_WHIRL\": \"закручування\",\n \"LOOKS_EFFECT_PIXELATE\": \"пікселями\",\n \"LOOKS_EFFECT_MOSAIC\": \"мозаїка\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"яскравість\",\n \"LOOKS_EFFECT_GHOST\": \"привид\",\n \"LOOKS_CHANGEEFFECTBY\": \"змінити ефект %1 на %2\",\n \"LOOKS_SETEFFECTTO\": \"встановити ефект %1 в %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"очистити графічні ефекти\",\n \"LOOKS_CHANGESIZEBY\": \"змінити розмір на %1\",\n \"LOOKS_SETSIZETO\": \"задати розмір %1\",\n \"LOOKS_SIZE\": \"розмір\",\n \"LOOKS_CHANGESTRETCHBY\": \"змінити розтяг на %1\",\n \"LOOKS_SETSTRETCHTO\": \"задати розтяг %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"змінити образ на %1\",\n \"LOOKS_NEXTCOSTUME\": \"наступний образ\",\n \"LOOKS_SWITCHBACKDROPTO\": \"змінити тло на %1\",\n \"LOOKS_GOTOFRONTBACK\": \"помістити на %1 план\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"передній\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"задній\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"перемістити %1 на %2 шар\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"вперед\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"назад\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"тло %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"образ %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"номер\",\n \"LOOKS_NUMBERNAME_NAME\": \"назва\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"змінити тло на %1 та чекати\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"наступне тло\",\n \"LOOKS_NEXTBACKDROP\": \"наступне тло\",\n \"LOOKS_PREVIOUSBACKDROP\": \"попереднє тло\",\n \"LOOKS_RANDOMBACKDROP\": \"випадкове тло\",\n \"MOTION_MOVESTEPS\": \"перемістити на %1 кроків\",\n \"MOTION_TURNLEFT\": \"поворот %1 на %2 градусів\",\n \"MOTION_TURNRIGHT\": \"поворот %1 на %2 градусів\",\n \"MOTION_POINTINDIRECTION\": \"повернути в напрямку %1\",\n \"MOTION_POINTTOWARDS\": \"слідувати за %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"вказівник\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"випадковий напрям\",\n \"MOTION_GOTO\": \"перейти до %1\",\n \"MOTION_GOTO_POINTER\": \"вказівник\",\n \"MOTION_GOTO_RANDOM\": \"випадкова позиція\",\n \"MOTION_GOTOXY\": \"перемістити в x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"ковзати %1 сек до x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"ковзати %1 сек до %2\",\n \"MOTION_GLIDETO_POINTER\": \"вказівник\",\n \"MOTION_GLIDETO_RANDOM\": \"випадкова позиція\",\n \"MOTION_CHANGEXBY\": \"змінити x на %1\",\n \"MOTION_SETX\": \"задати x %1\",\n \"MOTION_CHANGEYBY\": \"змінити y на %1\",\n \"MOTION_SETY\": \"задати y %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"якщо на межі, відбити\",\n \"MOTION_SETROTATIONSTYLE\": \"стиль обертання %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"зліва-направо\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"не обертати\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"навколо\",\n \"MOTION_XPOSITION\": \"значення x\",\n \"MOTION_YPOSITION\": \"значення y\",\n \"MOTION_DIRECTION\": \"напрям\",\n \"MOTION_SCROLLRIGHT\": \"прокрутити праворуч %1\",\n \"MOTION_SCROLLUP\": \"прокрутити вгору %1\",\n \"MOTION_ALIGNSCENE\": \"вирівняти сцену %1\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"внизу-ліворуч\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"вниз-праворуч\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"посередині\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"зверху-ліворуч\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"зверху-праворуч\",\n \"MOTION_XSCROLL\": \"x прокрутка\",\n \"MOTION_YSCROLL\": \"y прокрутка\",\n \"MOTION_STAGE_SELECTED\": \"Обрано Сцену: немає блоків руху\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"випадкове від %1 до %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 і %2\",\n \"OPERATORS_OR\": \"%1 або %2\",\n \"OPERATORS_NOT\": \"не %1\",\n \"OPERATORS_JOIN\": \"з'єднати %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"яблуко\",\n \"OPERATORS_JOIN_BANANA\": \"банан\",\n \"OPERATORS_LETTEROF\": \"символ %1 у %2\",\n \"OPERATORS_LETTEROF_APPLE\": \"я\",\n \"OPERATORS_LENGTH\": \"довжина %1\",\n \"OPERATORS_CONTAINS\": \"%1 містить %2?\",\n \"OPERATORS_MOD\": \"остача %1 на %2\",\n \"OPERATORS_ROUND\": \"округлити %1\",\n \"OPERATORS_MATHOP\": \"%1 з %2\",\n \"OPERATORS_MATHOP_ABS\": \"abs\",\n \"OPERATORS_MATHOP_FLOOR\": \"менше ціле\",\n \"OPERATORS_MATHOP_CEILING\": \"більше ціле\",\n \"OPERATORS_MATHOP_SQRT\": \"sqrt\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"визначити %1\",\n \"SENSING_TOUCHINGOBJECT\": \"торкається %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"вказівник\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"межа\",\n \"SENSING_TOUCHINGCOLOR\": \"торкається кольору %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"колір %1 торкається %2?\",\n \"SENSING_DISTANCETO\": \"відстань до %1\",\n \"SENSING_DISTANCETO_POINTER\": \"вказівник\",\n \"SENSING_ASKANDWAIT\": \"запитати %1 і чекати\",\n \"SENSING_ASK_TEXT\": \"Як вас звати?\",\n \"SENSING_ANSWER\": \"відповідь\",\n \"SENSING_KEYPRESSED\": \"клавішу %1 натиснуто?\",\n \"SENSING_MOUSEDOWN\": \"мишку натиснуто?\",\n \"SENSING_MOUSEX\": \"мишка x\",\n \"SENSING_MOUSEY\": \"мишка y\",\n \"SENSING_SETDRAGMODE\": \"перетягувати %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"дозволено\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"не дозволено\",\n \"SENSING_LOUDNESS\": \"гучність\",\n \"SENSING_LOUD\": \"гучно?\",\n \"SENSING_TIMER\": \"таймер\",\n \"SENSING_RESETTIMER\": \"перезапустити таймер\",\n \"SENSING_OF\": \"%1 з %2\",\n \"SENSING_OF_XPOSITION\": \"значення x\",\n \"SENSING_OF_YPOSITION\": \"значення y\",\n \"SENSING_OF_DIRECTION\": \"напрям\",\n \"SENSING_OF_COSTUMENUMBER\": \"образ #\",\n \"SENSING_OF_COSTUMENAME\": \"ім’я образу\",\n \"SENSING_OF_SIZE\": \"розмір\",\n \"SENSING_OF_VOLUME\": \"гучність\",\n \"SENSING_OF_BACKDROPNUMBER\": \"тло #\",\n \"SENSING_OF_BACKDROPNAME\": \"ім’я тла\",\n \"SENSING_OF_STAGE\": \"Сцена\",\n \"SENSING_CURRENT\": \"сьогодні %1\",\n \"SENSING_CURRENT_YEAR\": \"рік\",\n \"SENSING_CURRENT_MONTH\": \"місяць\",\n \"SENSING_CURRENT_DATE\": \"дата\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"день тижня\",\n \"SENSING_CURRENT_HOUR\": \"година\",\n \"SENSING_CURRENT_MINUTE\": \"хвилина \",\n \"SENSING_CURRENT_SECOND\": \"секунда\",\n \"SENSING_DAYSSINCE2000\": \"днів після 2000\",\n \"SENSING_USERNAME\": \"користувач\",\n \"SENSING_USERID\": \"користувач ID\",\n \"SOUND_PLAY\": \"відтворити звук %1\",\n \"SOUND_PLAYUNTILDONE\": \"відтворити звук %1 до кінця\",\n \"SOUND_STOPALLSOUNDS\": \"зупинити всі звуки\",\n \"SOUND_SETEFFECTO\": \"встановити ефект %1 в %2\",\n \"SOUND_CHANGEEFFECTBY\": \"змінити ефект %1 на %2\",\n \"SOUND_CLEAREFFECTS\": \"очистити звукові ефекти\",\n \"SOUND_EFFECTS_PITCH\": \"висота\",\n \"SOUND_EFFECTS_PAN\": \"панорама\",\n \"SOUND_CHANGEVOLUMEBY\": \"змінити гучність на %1\",\n \"SOUND_SETVOLUMETO\": \"встановити гучність %1%\",\n \"SOUND_VOLUME\": \"гучність\",\n \"SOUND_RECORD\": \"запис...\",\n \"CATEGORY_MOTION\": \"Рух\",\n \"CATEGORY_LOOKS\": \"Вигляд\",\n \"CATEGORY_SOUND\": \"Звук\",\n \"CATEGORY_EVENTS\": \"Події\",\n \"CATEGORY_CONTROL\": \"Керування\",\n \"CATEGORY_SENSING\": \"Датчики\",\n \"CATEGORY_OPERATORS\": \"Оператори\",\n \"CATEGORY_VARIABLES\": \"Змінні\",\n \"CATEGORY_MYBLOCKS\": \"Мої блоки\",\n \"DUPLICATE\": \"Дублювати\",\n \"DELETE\": \"Вилучити\",\n \"ADD_COMMENT\": \"Додати коментар\",\n \"REMOVE_COMMENT\": \"Вилучити коментар\",\n \"DELETE_BLOCK\": \"Вилучити блок\",\n \"DELETE_X_BLOCKS\": \"Вилучити %1 блоки\",\n \"DELETE_ALL_BLOCKS\": \"Вилучити всі %1 блоки?\",\n \"CLEAN_UP\": \"Впорядкувати блоки\",\n \"HELP\": \"Допомога\",\n \"UNDO\": \"Скасувати\",\n \"REDO\": \"Повернути\",\n \"EDIT_PROCEDURE\": \"Правка\",\n \"SHOW_PROCEDURE_DEFINITION\": \"Перейти до визначення\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"Скажіть щось...\",\n \"COLOUR_HUE_LABEL\": \"Колір\",\n \"COLOUR_SATURATION_LABEL\": \"Насиченість\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"Яскравість\",\n \"CHANGE_VALUE_TITLE\": \"Змінити значення:\",\n \"RENAME_VARIABLE\": \"Перейменувати змінну\",\n \"RENAME_VARIABLE_TITLE\": \"Перейменувати усі \\\"%1\\\" змінні на:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"Перейменувати змінну\",\n \"NEW_VARIABLE\": \"Створити змінну\",\n \"NEW_VARIABLE_TITLE\": \"Нове ім'я змінної:\",\n \"VARIABLE_MODAL_TITLE\": \"Нова змінна\",\n \"VARIABLE_ALREADY_EXISTS\": \"Змінна з іменем \\\"%1\\\" вже існує.\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"Ім'я змінної \\\"%1\\\" вже використано для змінної з типом \\\"%2\\\".\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"Вилучити %1 використання змінної \\\"%2\\\"?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"Не можна вилучити змінну \\\"%1\\\" оскільки вона визначена у функції \\\"%2\\\"\",\n \"DELETE_VARIABLE\": \"Вилучити змінну '%1'\",\n \"NEW_PROCEDURE\": \"Створити блок\",\n \"PROCEDURE_ALREADY_EXISTS\": \"Процедура з іменем '%1' вже існує\",\n \"PROCEDURE_DEFAULT_NAME\": \"назва блоку\",\n \"NEW_LIST\": \"Створити список\",\n \"NEW_LIST_TITLE\": \"Нове ім’я списку:\",\n \"LIST_MODAL_TITLE\": \"Новий список\",\n \"LIST_ALREADY_EXISTS\": \"Список з іменем '%1' вже існує\",\n \"RENAME_LIST_TITLE\": \"Перейменувати усі списки \\\"%1\\\" на:\",\n \"RENAME_LIST_MODAL_TITLE\": \"Перейменувати список\",\n \"DEFAULT_LIST_ITEM\": \"щось\",\n \"DELETE_LIST\": \"Вилучити список \\\"%1\\\"\",\n \"RENAME_LIST\": \"Перейменувати список\",\n \"NEW_BROADCAST_MESSAGE\": \"Нове повідомлення\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"Нове ім’я повідомлення:\",\n \"BROADCAST_MODAL_TITLE\": \"Нове повідомлення\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"повідомлення1\"\n};\n\nBlockly.ScratchMsgs.locales[\"zh-cn\"] =\n{\n \"CONTROL_FOREVER\": \"重复执行\",\n \"CONTROL_REPEAT\": \"重复执行 %1 次\",\n \"CONTROL_IF\": \"如果 %1 那么\",\n \"CONTROL_ELSE\": \"否则\",\n \"CONTROL_STOP\": \"停止\",\n \"CONTROL_STOP_ALL\": \"全部脚本\",\n \"CONTROL_STOP_THIS\": \"这个脚本\",\n \"CONTROL_STOP_OTHER\": \"该角色的其他脚本\",\n \"CONTROL_WAIT\": \"等待 %1 秒\",\n \"CONTROL_WAITUNTIL\": \"等待 %1\",\n \"CONTROL_REPEATUNTIL\": \"重复执行直到 %1\",\n \"CONTROL_WHILE\": \"当 %1 重复执行\",\n \"CONTROL_FOREACH\": \"对于 %2 中的每个 %1\",\n \"CONTROL_STARTASCLONE\": \"当作为克隆体启动时\",\n \"CONTROL_CREATECLONEOF\": \"克隆 %1\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"自己\",\n \"CONTROL_DELETETHISCLONE\": \"删除此克隆体\",\n \"CONTROL_COUNTER\": \"计数器\",\n \"CONTROL_INCRCOUNTER\": \"计数器加一\",\n \"CONTROL_CLEARCOUNTER\": \"计数器归零\",\n \"CONTROL_ALLATONCE\": \"所有脚本\",\n \"DATA_SETVARIABLETO\": \"将 %1 设为 %2\",\n \"DATA_CHANGEVARIABLEBY\": \"将 %1 增加 %2\",\n \"DATA_SHOWVARIABLE\": \"显示变量 %1\",\n \"DATA_HIDEVARIABLE\": \"隐藏变量 %1\",\n \"DATA_ADDTOLIST\": \"将 %1 加入 %2\",\n \"DATA_DELETEOFLIST\": \"删除 %2 的第 %1 项\",\n \"DATA_DELETEALLOFLIST\": \"删除 %1 的全部项目\",\n \"DATA_INSERTATLIST\": \"在 %3 的第 %2 项前插入 %1\",\n \"DATA_REPLACEITEMOFLIST\": \"将 %2 的第 %1 项替换为 %3\",\n \"DATA_ITEMOFLIST\": \"%2 的第 %1 项\",\n \"DATA_ITEMNUMOFLIST\": \"%2 中第一个 %1 的编号\",\n \"DATA_LENGTHOFLIST\": \"%1 的项目数\",\n \"DATA_LISTCONTAINSITEM\": \"%1 包含 %2 ?\",\n \"DATA_SHOWLIST\": \"显示列表 %1\",\n \"DATA_HIDELIST\": \"隐藏列表 %1\",\n \"DATA_INDEX_ALL\": \"全部\",\n \"DATA_INDEX_LAST\": \"末尾\",\n \"DATA_INDEX_RANDOM\": \"随机\",\n \"EVENT_WHENFLAGCLICKED\": \"当 %1 被点击\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"当角色被点击\",\n \"EVENT_WHENSTAGECLICKED\": \"当舞台被点击\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"当该角色碰到 %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"当接收到 %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"当背景换成 %1\",\n \"EVENT_WHENGREATERTHAN\": \"当 %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"计时器\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"响度\",\n \"EVENT_BROADCAST\": \"广播 %1\",\n \"EVENT_BROADCASTANDWAIT\": \"广播 %1 并等待\",\n \"EVENT_WHENKEYPRESSED\": \"当按下 %1 键\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"空格\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"←\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"→\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"↓\",\n \"EVENT_WHENKEYPRESSED_UP\": \"↑\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"任意\",\n \"LOOKS_SAYFORSECS\": \"说 %1 %2 秒\",\n \"LOOKS_SAY\": \"说 %1\",\n \"LOOKS_HELLO\": \"你好!\",\n \"LOOKS_THINKFORSECS\": \"思考 %1 %2 秒\",\n \"LOOKS_THINK\": \"思考 %1\",\n \"LOOKS_HMM\": \"嗯……\",\n \"LOOKS_SHOW\": \"显示\",\n \"LOOKS_HIDE\": \"隐藏\",\n \"LOOKS_HIDEALLSPRITES\": \"隐藏所有角色\",\n \"LOOKS_EFFECT_COLOR\": \"颜色\",\n \"LOOKS_EFFECT_FISHEYE\": \"鱼眼\",\n \"LOOKS_EFFECT_WHIRL\": \"漩涡\",\n \"LOOKS_EFFECT_PIXELATE\": \"像素化\",\n \"LOOKS_EFFECT_MOSAIC\": \"马赛克\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"亮度\",\n \"LOOKS_EFFECT_GHOST\": \"虚像\",\n \"LOOKS_CHANGEEFFECTBY\": \"将 %1 特效增加 %2\",\n \"LOOKS_SETEFFECTTO\": \"将 %1 特效设定为 %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"清除图形特效\",\n \"LOOKS_CHANGESIZEBY\": \"将大小增加 %1\",\n \"LOOKS_SETSIZETO\": \"将大小设为 %1\",\n \"LOOKS_SIZE\": \"大小\",\n \"LOOKS_CHANGESTRETCHBY\": \"伸缩%1\",\n \"LOOKS_SETSTRETCHTO\": \"设置伸缩为%1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"换成 %1 造型\",\n \"LOOKS_NEXTCOSTUME\": \"下一个造型\",\n \"LOOKS_SWITCHBACKDROPTO\": \"换成 %1 背景\",\n \"LOOKS_GOTOFRONTBACK\": \"移到最 %1 \",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"前面\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"后面\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"%1 %2 层\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"前移\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"后移\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"背景 %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"造型 %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"编号\",\n \"LOOKS_NUMBERNAME_NAME\": \"名称\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"换成 %1 背景并等待\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"下一个背景\",\n \"LOOKS_NEXTBACKDROP\": \"下一个背景\",\n \"LOOKS_PREVIOUSBACKDROP\": \"上一个背景\",\n \"LOOKS_RANDOMBACKDROP\": \"随机背景\",\n \"MOTION_MOVESTEPS\": \"移动 %1 步\",\n \"MOTION_TURNLEFT\": \"左转 %1 %2 度\",\n \"MOTION_TURNRIGHT\": \"右转 %1 %2 度\",\n \"MOTION_POINTINDIRECTION\": \"面向 %1 方向\",\n \"MOTION_POINTTOWARDS\": \"面向 %1\",\n \"MOTION_POINTTOWARDS_POINTER\": \"鼠标指针\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"随机方向\",\n \"MOTION_GOTO\": \"移到 %1\",\n \"MOTION_GOTO_POINTER\": \"鼠标指针\",\n \"MOTION_GOTO_RANDOM\": \"随机位置\",\n \"MOTION_GOTOXY\": \"移到 x: %1 y: %2\",\n \"MOTION_GLIDESECSTOXY\": \"在 %1 秒内滑行到 x: %2 y: %3\",\n \"MOTION_GLIDETO\": \"在 %1 秒内滑行到 %2\",\n \"MOTION_GLIDETO_POINTER\": \"鼠标指针\",\n \"MOTION_GLIDETO_RANDOM\": \"随机位置\",\n \"MOTION_CHANGEXBY\": \"将x坐标增加 %1\",\n \"MOTION_SETX\": \"将x坐标设为 %1\",\n \"MOTION_CHANGEYBY\": \"将y坐标增加 %1\",\n \"MOTION_SETY\": \"将y坐标设为 %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"碰到边缘就反弹\",\n \"MOTION_SETROTATIONSTYLE\": \"将旋转方式设为 %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"左右翻转\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"不可旋转\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"任意旋转\",\n \"MOTION_XPOSITION\": \"x 坐标\",\n \"MOTION_YPOSITION\": \"y 坐标\",\n \"MOTION_DIRECTION\": \"方向\",\n \"MOTION_SCROLLRIGHT\": \"向右滚动 %1\",\n \"MOTION_SCROLLUP\": \"向上滚动 %1\",\n \"MOTION_ALIGNSCENE\": \"和场景 %1 对齐\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"左下角\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"右下角\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"中间\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"左上角\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"右上角\",\n \"MOTION_XSCROLL\": \"x滚动位置\",\n \"MOTION_YSCROLL\": \"y滚动位置\",\n \"MOTION_STAGE_SELECTED\": \"选中了舞台:不可使用运动类积木\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"在 %1 和 %2 之间取随机数\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 与 %2\",\n \"OPERATORS_OR\": \"%1 或 %2\",\n \"OPERATORS_NOT\": \"%1 不成立\",\n \"OPERATORS_JOIN\": \"连接 %1 和 %2\",\n \"OPERATORS_JOIN_APPLE\": \"苹果\",\n \"OPERATORS_JOIN_BANANA\": \"香蕉\",\n \"OPERATORS_LETTEROF\": \"%2 的第 %1 个字符\",\n \"OPERATORS_LETTEROF_APPLE\": \"果\",\n \"OPERATORS_LENGTH\": \"%1 的字符数\",\n \"OPERATORS_CONTAINS\": \"%1 包含 %2 ?\",\n \"OPERATORS_MOD\": \"%1 除以 %2 的余数\",\n \"OPERATORS_ROUND\": \"四舍五入 %1\",\n \"OPERATORS_MATHOP\": \"%1 %2\",\n \"OPERATORS_MATHOP_ABS\": \"绝对值\",\n \"OPERATORS_MATHOP_FLOOR\": \"向下取整\",\n \"OPERATORS_MATHOP_CEILING\": \"向上取整\",\n \"OPERATORS_MATHOP_SQRT\": \"平方根\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"定义 %1\",\n \"SENSING_TOUCHINGOBJECT\": \"碰到 %1 ?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"鼠标指针\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"舞台边缘\",\n \"SENSING_TOUCHINGCOLOR\": \"碰到颜色 %1 ?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"颜色 %1 碰到 %2 ?\",\n \"SENSING_DISTANCETO\": \"到 %1 的距离\",\n \"SENSING_DISTANCETO_POINTER\": \"鼠标指针\",\n \"SENSING_ASKANDWAIT\": \"询问 %1 并等待\",\n \"SENSING_ASK_TEXT\": \"你叫什么名字?\",\n \"SENSING_ANSWER\": \"回答\",\n \"SENSING_KEYPRESSED\": \"按下 %1 键?\",\n \"SENSING_MOUSEDOWN\": \"按下鼠标?\",\n \"SENSING_MOUSEX\": \"鼠标的x坐标\",\n \"SENSING_MOUSEY\": \"鼠标的y坐标\",\n \"SENSING_SETDRAGMODE\": \"将拖动模式设为 %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"可拖动\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"不可拖动\",\n \"SENSING_LOUDNESS\": \"响度\",\n \"SENSING_LOUD\": \"响声?\",\n \"SENSING_TIMER\": \"计时器\",\n \"SENSING_RESETTIMER\": \"计时器归零\",\n \"SENSING_OF\": \"%2 的 %1\",\n \"SENSING_OF_XPOSITION\": \"x 坐标\",\n \"SENSING_OF_YPOSITION\": \"y 坐标\",\n \"SENSING_OF_DIRECTION\": \"方向\",\n \"SENSING_OF_COSTUMENUMBER\": \"造型编号\",\n \"SENSING_OF_COSTUMENAME\": \"造型名称\",\n \"SENSING_OF_SIZE\": \"大小\",\n \"SENSING_OF_VOLUME\": \"音量\",\n \"SENSING_OF_BACKDROPNUMBER\": \"背景编号\",\n \"SENSING_OF_BACKDROPNAME\": \"背景名称\",\n \"SENSING_OF_STAGE\": \"舞台\",\n \"SENSING_CURRENT\": \"当前时间的 %1\",\n \"SENSING_CURRENT_YEAR\": \"年\",\n \"SENSING_CURRENT_MONTH\": \"月\",\n \"SENSING_CURRENT_DATE\": \"日\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"星期\",\n \"SENSING_CURRENT_HOUR\": \"时\",\n \"SENSING_CURRENT_MINUTE\": \"分\",\n \"SENSING_CURRENT_SECOND\": \"秒\",\n \"SENSING_DAYSSINCE2000\": \"2000年至今的天数\",\n \"SENSING_USERNAME\": \"用户名\",\n \"SENSING_USERID\": \"用户id\",\n \"SOUND_PLAY\": \"播放声音 %1\",\n \"SOUND_PLAYUNTILDONE\": \"播放声音 %1 等待播完\",\n \"SOUND_STOPALLSOUNDS\": \"停止所有声音\",\n \"SOUND_SETEFFECTO\": \"将 %1 音效设为 %2\",\n \"SOUND_CHANGEEFFECTBY\": \"将 %1 音效增加 %2\",\n \"SOUND_CLEAREFFECTS\": \"清除音效\",\n \"SOUND_EFFECTS_PITCH\": \"音调\",\n \"SOUND_EFFECTS_PAN\": \"左右平衡\",\n \"SOUND_CHANGEVOLUMEBY\": \"将音量增加 %1\",\n \"SOUND_SETVOLUMETO\": \"将音量设为 %1%\",\n \"SOUND_VOLUME\": \"音量\",\n \"SOUND_RECORD\": \"录制…\",\n \"CATEGORY_MOTION\": \"运动\",\n \"CATEGORY_LOOKS\": \"外观\",\n \"CATEGORY_SOUND\": \"声音\",\n \"CATEGORY_EVENTS\": \"事件\",\n \"CATEGORY_CONTROL\": \"控制\",\n \"CATEGORY_SENSING\": \"侦测\",\n \"CATEGORY_OPERATORS\": \"运算\",\n \"CATEGORY_VARIABLES\": \"变量\",\n \"CATEGORY_MYBLOCKS\": \"自制积木\",\n \"DUPLICATE\": \"复制\",\n \"DELETE\": \"删除\",\n \"ADD_COMMENT\": \"添加注释\",\n \"REMOVE_COMMENT\": \"删除注释\",\n \"DELETE_BLOCK\": \"删除\",\n \"DELETE_X_BLOCKS\": \"删除 %1 积木\",\n \"DELETE_ALL_BLOCKS\": \"删除全部 %1 积木?\",\n \"CLEAN_UP\": \"整理积木\",\n \"HELP\": \"帮助\",\n \"UNDO\": \"撤销\",\n \"REDO\": \"重做\",\n \"EDIT_PROCEDURE\": \"编辑\",\n \"SHOW_PROCEDURE_DEFINITION\": \"查看定义\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"说些什么……\",\n \"COLOUR_HUE_LABEL\": \"颜色\",\n \"COLOUR_SATURATION_LABEL\": \"饱和度\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"亮度\",\n \"CHANGE_VALUE_TITLE\": \"更改变量:\",\n \"RENAME_VARIABLE\": \"修改变量名\",\n \"RENAME_VARIABLE_TITLE\": \"将所有的「%1」变量名改为:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"修改变量名\",\n \"NEW_VARIABLE\": \"建立一个变量\",\n \"NEW_VARIABLE_TITLE\": \"新变量名:\",\n \"VARIABLE_MODAL_TITLE\": \"新建变量\",\n \"VARIABLE_ALREADY_EXISTS\": \"已经存在名为「%1」的变量。\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"已经存在一个名为「%1」的变量,其类型为「%2」。\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"删除%1处「%2」变量吗?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"无法删除变量「%1」,因为函数「%2」的定义中用到了它\",\n \"DELETE_VARIABLE\": \"删除变量「%1」\",\n \"NEW_PROCEDURE\": \"制作新的积木\",\n \"PROCEDURE_ALREADY_EXISTS\": \"已经存在名为「%1」的程序。\",\n \"PROCEDURE_DEFAULT_NAME\": \"积木名称\",\n \"NEW_LIST\": \"建立一个列表\",\n \"NEW_LIST_TITLE\": \"新的列表名:\",\n \"LIST_MODAL_TITLE\": \"新建列表\",\n \"LIST_ALREADY_EXISTS\": \"名为 「%1」 的列表已存在。\",\n \"RENAME_LIST_TITLE\": \"将所有的「%1」列表改名为:\",\n \"RENAME_LIST_MODAL_TITLE\": \"修改列表名\",\n \"DEFAULT_LIST_ITEM\": \"东西\",\n \"DELETE_LIST\": \"删除「%1」列表\",\n \"RENAME_LIST\": \"修改列表名\",\n \"NEW_BROADCAST_MESSAGE\": \"新消息\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"新消息的名称:\",\n \"BROADCAST_MODAL_TITLE\": \"新消息\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"消息1\"\n};\n\nBlockly.ScratchMsgs.locales[\"zh-tw\"] =\n{\n \"CONTROL_FOREVER\": \"重複無限次\",\n \"CONTROL_REPEAT\": \"重複 %1 次\",\n \"CONTROL_IF\": \"如果 %1 那麼\",\n \"CONTROL_ELSE\": \"否則\",\n \"CONTROL_STOP\": \"停止\",\n \"CONTROL_STOP_ALL\": \"全部\",\n \"CONTROL_STOP_THIS\": \"這個程式\",\n \"CONTROL_STOP_OTHER\": \"這個物件的其它程式\",\n \"CONTROL_WAIT\": \"等待 %1 秒\",\n \"CONTROL_WAITUNTIL\": \"等待直到 %1\",\n \"CONTROL_REPEATUNTIL\": \"重複直到 %1\",\n \"CONTROL_WHILE\": \"當 %1\",\n \"CONTROL_FOREACH\": \"計數 %1 於 %2\",\n \"CONTROL_STARTASCLONE\": \"當分身產生\",\n \"CONTROL_CREATECLONEOF\": \"建立 %1 的分身\",\n \"CONTROL_CREATECLONEOF_MYSELF\": \"自己\",\n \"CONTROL_DELETETHISCLONE\": \"分身刪除\",\n \"CONTROL_COUNTER\": \"計數器\",\n \"CONTROL_INCRCOUNTER\": \"計數器累計\",\n \"CONTROL_CLEARCOUNTER\": \"計數器重置\",\n \"CONTROL_ALLATONCE\": \"全部一起\",\n \"DATA_SETVARIABLETO\": \"變數 %1 設為 %2\",\n \"DATA_CHANGEVARIABLEBY\": \"變數 %1 改變 %2\",\n \"DATA_SHOWVARIABLE\": \"變數 %1 顯示\",\n \"DATA_HIDEVARIABLE\": \"變數 %1 隱藏\",\n \"DATA_ADDTOLIST\": \"添加 %1 到 %2\",\n \"DATA_DELETEOFLIST\": \"刪除 %2 的第 %1 項\",\n \"DATA_DELETEALLOFLIST\": \"刪除 %1 的所有項目\",\n \"DATA_INSERTATLIST\": \"插入 %1 到 %3 的第 %2 項\",\n \"DATA_REPLACEITEMOFLIST\": \"替換 %2 的第 %1 項為 %3\",\n \"DATA_ITEMOFLIST\": \"%2 的第 %1 項\",\n \"DATA_ITEMNUMOFLIST\": \"%1 在 %2 裡的項目編號\",\n \"DATA_LENGTHOFLIST\": \"清單 %1 的長度\",\n \"DATA_LISTCONTAINSITEM\": \"清單 %1 包含 %2?\",\n \"DATA_SHOWLIST\": \"清單 %1 顯示\",\n \"DATA_HIDELIST\": \"清單 %1 隱藏\",\n \"DATA_INDEX_ALL\": \"全部\",\n \"DATA_INDEX_LAST\": \"末\",\n \"DATA_INDEX_RANDOM\": \"隨機\",\n \"EVENT_WHENFLAGCLICKED\": \"當 %1 被點擊\",\n \"EVENT_WHENTHISSPRITECLICKED\": \"當角色被點擊\",\n \"EVENT_WHENSTAGECLICKED\": \"當舞台被點擊\",\n \"EVENT_WHENTOUCHINGOBJECT\": \"當角色碰到 %1\",\n \"EVENT_WHENBROADCASTRECEIVED\": \"當收到訊息 %1\",\n \"EVENT_WHENBACKDROPSWITCHESTO\": \"當背景換成 %1\",\n \"EVENT_WHENGREATERTHAN\": \"當 %1 > %2\",\n \"EVENT_WHENGREATERTHAN_TIMER\": \"計時器\",\n \"EVENT_WHENGREATERTHAN_LOUDNESS\": \"聲音響度\",\n \"EVENT_BROADCAST\": \"廣播訊息 %1\",\n \"EVENT_BROADCASTANDWAIT\": \"廣播訊息 %1 並等待\",\n \"EVENT_WHENKEYPRESSED\": \"當 %1 鍵被按下\",\n \"EVENT_WHENKEYPRESSED_SPACE\": \"空白\",\n \"EVENT_WHENKEYPRESSED_LEFT\": \"向左\",\n \"EVENT_WHENKEYPRESSED_RIGHT\": \"向右\",\n \"EVENT_WHENKEYPRESSED_DOWN\": \"向下\",\n \"EVENT_WHENKEYPRESSED_UP\": \"向上\",\n \"EVENT_WHENKEYPRESSED_ANY\": \"任何\",\n \"LOOKS_SAYFORSECS\": \"說出 %1 持續 %2 秒\",\n \"LOOKS_SAY\": \"說出 %1\",\n \"LOOKS_HELLO\": \"Hello!\",\n \"LOOKS_THINKFORSECS\": \"想著 %1 持續 %2 秒\",\n \"LOOKS_THINK\": \"想著 %1\",\n \"LOOKS_HMM\": \"Hmm...\",\n \"LOOKS_SHOW\": \"顯示\",\n \"LOOKS_HIDE\": \"隱藏\",\n \"LOOKS_HIDEALLSPRITES\": \"隱藏所有角色\",\n \"LOOKS_EFFECT_COLOR\": \"顏色\",\n \"LOOKS_EFFECT_FISHEYE\": \"魚眼\",\n \"LOOKS_EFFECT_WHIRL\": \"漩渦\",\n \"LOOKS_EFFECT_PIXELATE\": \"像素化\",\n \"LOOKS_EFFECT_MOSAIC\": \"馬賽克\",\n \"LOOKS_EFFECT_BRIGHTNESS\": \"亮度\",\n \"LOOKS_EFFECT_GHOST\": \"幻影\",\n \"LOOKS_CHANGEEFFECTBY\": \"圖像效果 %1 改變 %2\",\n \"LOOKS_SETEFFECTTO\": \"圖像效果 %1 設為 %2\",\n \"LOOKS_CLEARGRAPHICEFFECTS\": \"圖像效果清除\",\n \"LOOKS_CHANGESIZEBY\": \"尺寸改變 %1\",\n \"LOOKS_SETSIZETO\": \"尺寸設為 %1 %\",\n \"LOOKS_SIZE\": \"尺寸\",\n \"LOOKS_CHANGESTRETCHBY\": \"伸縮改變 %1\",\n \"LOOKS_SETSTRETCHTO\": \"伸縮設為 %1 %\",\n \"LOOKS_SWITCHCOSTUMETO\": \"造型換成 %1\",\n \"LOOKS_NEXTCOSTUME\": \"造型換成下一個\",\n \"LOOKS_SWITCHBACKDROPTO\": \"背景換成 %1\",\n \"LOOKS_GOTOFRONTBACK\": \"圖層移到 %1 層\",\n \"LOOKS_GOTOFRONTBACK_FRONT\": \"最上\",\n \"LOOKS_GOTOFRONTBACK_BACK\": \"最下\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS\": \"圖層 %1 移 %2 層\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD\": \"上\",\n \"LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD\": \"下\",\n \"LOOKS_BACKDROPNUMBERNAME\": \"背景 %1\",\n \"LOOKS_COSTUMENUMBERNAME\": \"造型 %1\",\n \"LOOKS_NUMBERNAME_NUMBER\": \"編號\",\n \"LOOKS_NUMBERNAME_NAME\": \"名稱\",\n \"LOOKS_SWITCHBACKDROPTOANDWAIT\": \"背景換成 %1 並等待\",\n \"LOOKS_NEXTBACKDROP_BLOCK\": \"背景換成下一個\",\n \"LOOKS_NEXTBACKDROP\": \"下一個背景\",\n \"LOOKS_PREVIOUSBACKDROP\": \"上一個背景\",\n \"LOOKS_RANDOMBACKDROP\": \"任一個背景\",\n \"MOTION_MOVESTEPS\": \"移動 %1 點\",\n \"MOTION_TURNLEFT\": \"左轉 %1 %2 度\",\n \"MOTION_TURNRIGHT\": \"右轉 %1 %2 度\",\n \"MOTION_POINTINDIRECTION\": \"面朝 %1 度\",\n \"MOTION_POINTTOWARDS\": \"面朝 %1 向\",\n \"MOTION_POINTTOWARDS_POINTER\": \"鼠標\",\n \"MOTION_POINTTOWARDS_RANDOM\": \"隨機\",\n \"MOTION_GOTO\": \"定位到 %1 位置\",\n \"MOTION_GOTO_POINTER\": \"鼠標\",\n \"MOTION_GOTO_RANDOM\": \"隨機\",\n \"MOTION_GOTOXY\": \"定位到 x:%1 y:%2\",\n \"MOTION_GLIDESECSTOXY\": \"滑行 %1 秒到 x:%2 y:%3\",\n \"MOTION_GLIDETO\": \"滑行 %1 秒到 %2 位置\",\n \"MOTION_GLIDETO_POINTER\": \"鼠標\",\n \"MOTION_GLIDETO_RANDOM\": \"隨機\",\n \"MOTION_CHANGEXBY\": \"x 改變 %1\",\n \"MOTION_SETX\": \"x 設為 %1\",\n \"MOTION_CHANGEYBY\": \"y 改變 %1\",\n \"MOTION_SETY\": \"y 設為 %1\",\n \"MOTION_IFONEDGEBOUNCE\": \"碰到邊緣就反彈\",\n \"MOTION_SETROTATIONSTYLE\": \"迴轉方式設為 %1\",\n \"MOTION_SETROTATIONSTYLE_LEFTRIGHT\": \"左-右\",\n \"MOTION_SETROTATIONSTYLE_DONTROTATE\": \"不旋轉\",\n \"MOTION_SETROTATIONSTYLE_ALLAROUND\": \"不設限\",\n \"MOTION_XPOSITION\": \"x 座標\",\n \"MOTION_YPOSITION\": \"y 座標\",\n \"MOTION_DIRECTION\": \"方向\",\n \"MOTION_SCROLLRIGHT\": \"滾動向右 %1\",\n \"MOTION_SCROLLUP\": \"滾動向上 %1\",\n \"MOTION_ALIGNSCENE\": \"場景 %1 對齊\",\n \"MOTION_ALIGNSCENE_BOTTOMLEFT\": \"左下\",\n \"MOTION_ALIGNSCENE_BOTTOMRIGHT\": \"右下\",\n \"MOTION_ALIGNSCENE_MIDDLE\": \"中間\",\n \"MOTION_ALIGNSCENE_TOPLEFT\": \"左上\",\n \"MOTION_ALIGNSCENE_TOPRIGHT\": \"右上\",\n \"MOTION_XSCROLL\": \"x 捲軸\",\n \"MOTION_YSCROLL\": \"y 捲軸\",\n \"MOTION_STAGE_SELECTED\": \"目前選擇的物件是「舞台」:無可用的動作積木\",\n \"OPERATORS_ADD\": \"%1 + %2\",\n \"OPERATORS_SUBTRACT\": \"%1 - %2\",\n \"OPERATORS_MULTIPLY\": \"%1 * %2\",\n \"OPERATORS_DIVIDE\": \"%1 / %2\",\n \"OPERATORS_RANDOM\": \"隨機取數 %1 到 %2\",\n \"OPERATORS_GT\": \"%1 > %2\",\n \"OPERATORS_LT\": \"%1 < %2\",\n \"OPERATORS_EQUALS\": \"%1 = %2\",\n \"OPERATORS_AND\": \"%1 且 %2\",\n \"OPERATORS_OR\": \"%1 或 %2\",\n \"OPERATORS_NOT\": \"%1 不成立\",\n \"OPERATORS_JOIN\": \"字串組合 %1 %2\",\n \"OPERATORS_JOIN_APPLE\": \"apple\",\n \"OPERATORS_JOIN_BANANA\": \"banana\",\n \"OPERATORS_LETTEROF\": \"字串 %2 的第 %1 字\",\n \"OPERATORS_LETTEROF_APPLE\": \"a\",\n \"OPERATORS_LENGTH\": \"字串 %1 的長度\",\n \"OPERATORS_CONTAINS\": \"字串 %1 包含 %2?\",\n \"OPERATORS_MOD\": \"%1 除以 %2 的餘數\",\n \"OPERATORS_ROUND\": \"四捨五入數值 %1\",\n \"OPERATORS_MATHOP\": \"%1 數值 %2\",\n \"OPERATORS_MATHOP_ABS\": \"絕對值\",\n \"OPERATORS_MATHOP_FLOOR\": \"無條件捨去\",\n \"OPERATORS_MATHOP_CEILING\": \"無條件進位\",\n \"OPERATORS_MATHOP_SQRT\": \"平方根\",\n \"OPERATORS_MATHOP_SIN\": \"sin\",\n \"OPERATORS_MATHOP_COS\": \"cos\",\n \"OPERATORS_MATHOP_TAN\": \"tan\",\n \"OPERATORS_MATHOP_ASIN\": \"asin\",\n \"OPERATORS_MATHOP_ACOS\": \"acos\",\n \"OPERATORS_MATHOP_ATAN\": \"atan\",\n \"OPERATORS_MATHOP_LN\": \"ln\",\n \"OPERATORS_MATHOP_LOG\": \"log\",\n \"OPERATORS_MATHOP_EEXP\": \"e ^\",\n \"OPERATORS_MATHOP_10EXP\": \"10 ^\",\n \"PROCEDURES_DEFINITION\": \"定義 %1\",\n \"SENSING_TOUCHINGOBJECT\": \"碰到 %1?\",\n \"SENSING_TOUCHINGOBJECT_POINTER\": \"鼠標\",\n \"SENSING_TOUCHINGOBJECT_EDGE\": \"邊緣\",\n \"SENSING_TOUCHINGCOLOR\": \"碰到顏色 %1?\",\n \"SENSING_COLORISTOUCHINGCOLOR\": \"顏色 %1 碰到 顏色 %2?\",\n \"SENSING_DISTANCETO\": \"與 %1 的間距\",\n \"SENSING_DISTANCETO_POINTER\": \"鼠標\",\n \"SENSING_ASKANDWAIT\": \"詢問 %1 並等待\",\n \"SENSING_ASK_TEXT\": \"你的名字是?\",\n \"SENSING_ANSWER\": \"詢問的答案\",\n \"SENSING_KEYPRESSED\": \"%1 鍵被按下?\",\n \"SENSING_MOUSEDOWN\": \"滑鼠鍵被按下?\",\n \"SENSING_MOUSEX\": \"鼠標的 x\",\n \"SENSING_MOUSEY\": \"鼠標的 y\",\n \"SENSING_SETDRAGMODE\": \"拖曳方式設為 %1\",\n \"SENSING_SETDRAGMODE_DRAGGABLE\": \"可拖曳\",\n \"SENSING_SETDRAGMODE_NOTDRAGGABLE\": \"不可拖曳\",\n \"SENSING_LOUDNESS\": \"聲音響度\",\n \"SENSING_LOUD\": \"大聲?\",\n \"SENSING_TIMER\": \"計時器\",\n \"SENSING_RESETTIMER\": \"計時器重置\",\n \"SENSING_OF\": \"%2 的 %1\",\n \"SENSING_OF_XPOSITION\": \"x 座標\",\n \"SENSING_OF_YPOSITION\": \"y 座標\",\n \"SENSING_OF_DIRECTION\": \"方向\",\n \"SENSING_OF_COSTUMENUMBER\": \"造型編號\",\n \"SENSING_OF_COSTUMENAME\": \"造型名稱\",\n \"SENSING_OF_SIZE\": \"尺寸\",\n \"SENSING_OF_VOLUME\": \"音量\",\n \"SENSING_OF_BACKDROPNUMBER\": \"背景編號\",\n \"SENSING_OF_BACKDROPNAME\": \"背景名稱\",\n \"SENSING_OF_STAGE\": \"舞台\",\n \"SENSING_CURRENT\": \"目前時間的 %1\",\n \"SENSING_CURRENT_YEAR\": \"年\",\n \"SENSING_CURRENT_MONTH\": \"月\",\n \"SENSING_CURRENT_DATE\": \"日\",\n \"SENSING_CURRENT_DAYOFWEEK\": \"週\",\n \"SENSING_CURRENT_HOUR\": \"時\",\n \"SENSING_CURRENT_MINUTE\": \"分\",\n \"SENSING_CURRENT_SECOND\": \"秒\",\n \"SENSING_DAYSSINCE2000\": \"2000年迄今日數\",\n \"SENSING_USERNAME\": \"用戶名稱\",\n \"SENSING_USERID\": \"用戶 ID\",\n \"SOUND_PLAY\": \"播放音效 %1\",\n \"SOUND_PLAYUNTILDONE\": \"播放音效 %1 直到結束\",\n \"SOUND_STOPALLSOUNDS\": \"停播所有音效\",\n \"SOUND_SETEFFECTO\": \"聲音效果 %1 設為 %2\",\n \"SOUND_CHANGEEFFECTBY\": \"聲音效果 %1 改變 %2\",\n \"SOUND_CLEAREFFECTS\": \"聲音效果清除\",\n \"SOUND_EFFECTS_PITCH\": \"音高\",\n \"SOUND_EFFECTS_PAN\": \"聲道左/右\",\n \"SOUND_CHANGEVOLUMEBY\": \"音量改變 %1\",\n \"SOUND_SETVOLUMETO\": \"音量設為 %1%\",\n \"SOUND_VOLUME\": \"音量\",\n \"SOUND_RECORD\": \"錄音…\",\n \"CATEGORY_MOTION\": \"動作\",\n \"CATEGORY_LOOKS\": \"外觀\",\n \"CATEGORY_SOUND\": \"音效\",\n \"CATEGORY_EVENTS\": \"事件\",\n \"CATEGORY_CONTROL\": \"控制\",\n \"CATEGORY_SENSING\": \"偵測\",\n \"CATEGORY_OPERATORS\": \"運算\",\n \"CATEGORY_VARIABLES\": \"變數\",\n \"CATEGORY_MYBLOCKS\": \"函式積木\",\n \"DUPLICATE\": \"複製\",\n \"DELETE\": \"刪除\",\n \"ADD_COMMENT\": \"添加註解\",\n \"REMOVE_COMMENT\": \"移除註解\",\n \"DELETE_BLOCK\": \"刪除積木\",\n \"DELETE_X_BLOCKS\": \"刪除 %1 個積木\",\n \"DELETE_ALL_BLOCKS\": \"要刪除全部(%1 個)積木?\",\n \"CLEAN_UP\": \"整理積木\",\n \"HELP\": \"幫助\",\n \"UNDO\": \"復原\",\n \"REDO\": \"重做\",\n \"EDIT_PROCEDURE\": \"編輯\",\n \"SHOW_PROCEDURE_DEFINITION\": \"移至定義\",\n \"WORKSPACE_COMMENT_DEFAULT_TEXT\": \"說些什麼…\",\n \"COLOUR_HUE_LABEL\": \"顏色\",\n \"COLOUR_SATURATION_LABEL\": \"彩度\",\n \"COLOUR_BRIGHTNESS_LABEL\": \"亮度\",\n \"CHANGE_VALUE_TITLE\": \"改成:\",\n \"RENAME_VARIABLE\": \"重新命名變數\",\n \"RENAME_VARIABLE_TITLE\": \"將變數 %1 重新命名為:\",\n \"RENAME_VARIABLE_MODAL_TITLE\": \"重新命名變數\",\n \"NEW_VARIABLE\": \"建立一個變數\",\n \"NEW_VARIABLE_TITLE\": \"新變數的名稱\",\n \"VARIABLE_MODAL_TITLE\": \"新的變數\",\n \"VARIABLE_ALREADY_EXISTS\": \"變數名稱「%1」已經被使用。\",\n \"VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE\": \"變數名稱「%1」已經被使用在 %2 型別了。\",\n \"DELETE_VARIABLE_CONFIRMATION\": \"刪除正在使用的變數 %2 的 %1 個地方?\",\n \"CANNOT_DELETE_VARIABLE_PROCEDURE\": \"無法刪除變數 %1,因為它是函式 %2 定義中的一部分。\",\n \"DELETE_VARIABLE\": \"刪除變數 %1\",\n \"NEW_PROCEDURE\": \"建立一個積木\",\n \"PROCEDURE_ALREADY_EXISTS\": \"程序名稱「%1」已經被使用。\",\n \"PROCEDURE_DEFAULT_NAME\": \"積木名稱\",\n \"NEW_LIST\": \"建立一個清單\",\n \"NEW_LIST_TITLE\": \"新清單的名稱\",\n \"LIST_MODAL_TITLE\": \"新的清單\",\n \"LIST_ALREADY_EXISTS\": \"清單名稱「%1」已經被使用。\",\n \"RENAME_LIST_TITLE\": \"將清單 %1 重新命名為:\",\n \"RENAME_LIST_MODAL_TITLE\": \"重新命名清單\",\n \"DEFAULT_LIST_ITEM\": \"thing\",\n \"DELETE_LIST\": \"刪除清單 %1\",\n \"RENAME_LIST\": \"重新命名清單\",\n \"NEW_BROADCAST_MESSAGE\": \"新的訊息\",\n \"NEW_BROADCAST_MESSAGE_TITLE\": \"新訊息的名稱\",\n \"BROADCAST_MODAL_TITLE\": \"新的訊息\",\n \"DEFAULT_BROADCAST_MESSAGE_NAME\": \"message1\"\n};\n// End of combined translations\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = Blockly;\n","/*** IMPORTS FROM imports-loader ***/\nvar Blockly = require(\"./shim/blockly_compressed_vertical.Blockly\");\n\n// Do not edit this file; automatically generated by build.py.\n'use strict';\n\n\nBlockly.constants={};Blockly.DRAG_RADIUS=3;Blockly.FLYOUT_DRAG_RADIUS=10;Blockly.SNAP_RADIUS=48;Blockly.CONNECTING_SNAP_RADIUS=68;Blockly.CURRENT_CONNECTION_PREFERENCE=20;Blockly.BUMP_DELAY=0;Blockly.COLLAPSE_CHARS=30;Blockly.LONGPRESS=750;Blockly.LINE_SCROLL_MULTIPLIER=15;Blockly.SOUND_LIMIT=100;Blockly.DRAG_STACK=!0;Blockly.HSV_SATURATION=.45;Blockly.HSV_VALUE=.65;Blockly.SPRITE={width:96,height:124,url:\"sprites.png\"};Blockly.SVG_NS=\"http://www.w3.org/2000/svg\";Blockly.HTML_NS=\"http://www.w3.org/1999/xhtml\";\nBlockly.INPUT_VALUE=1;Blockly.OUTPUT_VALUE=2;Blockly.NEXT_STATEMENT=3;Blockly.PREVIOUS_STATEMENT=4;Blockly.DUMMY_INPUT=5;Blockly.ALIGN_LEFT=-1;Blockly.ALIGN_CENTRE=0;Blockly.ALIGN_RIGHT=1;Blockly.DRAG_NONE=0;Blockly.DRAG_STICKY=1;Blockly.DRAG_BEGIN=1;Blockly.DRAG_FREE=2;Blockly.OPPOSITE_TYPE=[];Blockly.OPPOSITE_TYPE[Blockly.INPUT_VALUE]=Blockly.OUTPUT_VALUE;Blockly.OPPOSITE_TYPE[Blockly.OUTPUT_VALUE]=Blockly.INPUT_VALUE;Blockly.OPPOSITE_TYPE[Blockly.NEXT_STATEMENT]=Blockly.PREVIOUS_STATEMENT;\nBlockly.OPPOSITE_TYPE[Blockly.PREVIOUS_STATEMENT]=Blockly.NEXT_STATEMENT;Blockly.TOOLBOX_AT_TOP=0;Blockly.TOOLBOX_AT_BOTTOM=1;Blockly.TOOLBOX_AT_LEFT=2;Blockly.TOOLBOX_AT_RIGHT=3;Blockly.OUTPUT_SHAPE_HEXAGONAL=1;Blockly.OUTPUT_SHAPE_ROUND=2;Blockly.OUTPUT_SHAPE_SQUARE=3;Blockly.Categories={motion:\"motion\",looks:\"looks\",sound:\"sounds\",pen:\"pen\",data:\"data\",dataLists:\"data-lists\",event:\"events\",control:\"control\",sensing:\"sensing\",operators:\"operators\",more:\"more\"};Blockly.DELETE_AREA_NONE=null;\nBlockly.DELETE_AREA_TRASH=1;Blockly.DELETE_AREA_TOOLBOX=2;Blockly.VARIABLE_CATEGORY_NAME=\"VARIABLE\";Blockly.PROCEDURE_CATEGORY_NAME=\"PROCEDURE\";Blockly.RENAME_VARIABLE_ID=\"RENAME_VARIABLE_ID\";Blockly.DELETE_VARIABLE_ID=\"DELETE_VARIABLE_ID\";Blockly.NEW_BROADCAST_MESSAGE_ID=\"NEW_BROADCAST_MESSAGE_ID\";Blockly.BROADCAST_MESSAGE_VARIABLE_TYPE=\"broadcast_msg\";Blockly.LIST_VARIABLE_TYPE=\"list\";Blockly.SCALAR_VARIABLE_TYPE=\"\";Blockly.PROCEDURES_DEFINITION_BLOCK_TYPE=\"procedures_definition\";\nBlockly.PROCEDURES_PROTOTYPE_BLOCK_TYPE=\"procedures_prototype\";Blockly.PROCEDURES_CALL_BLOCK_TYPE=\"procedures_call\";Blockly.StatusButtonState={READY:\"ready\",NOT_READY:\"not ready\"};\nBlockly.Blocks.colour={};function randomColour(){return\"#\"+(\"00000\"+Math.floor(Math.random()*Math.pow(2,24)).toString(16)).substr(-6)}Blockly.Blocks.colour_picker={init:function(){this.jsonInit({message0:\"%1\",args0:[{type:\"field_colour_slider\",name:\"COLOUR\",colour:randomColour()}],outputShape:Blockly.OUTPUT_SHAPE_ROUND,output:\"Colour\"})}};/*\n\n Visual Blocks Editor\n\n Copyright 2016 Massachusetts Institute of Technology\n All rights reserved.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\nBlockly.Colours={motion:{primary:\"#4C97FF\",secondary:\"#4280D7\",tertiary:\"#3373CC\"},looks:{primary:\"#9966FF\",secondary:\"#855CD6\",tertiary:\"#774DCB\"},sounds:{primary:\"#CF63CF\",secondary:\"#C94FC9\",tertiary:\"#BD42BD\"},control:{primary:\"#FFAB19\",secondary:\"#EC9C13\",tertiary:\"#CF8B17\"},event:{primary:\"#FFBF00\",secondary:\"#E6AC00\",tertiary:\"#CC9900\"},sensing:{primary:\"#5CB1D6\",secondary:\"#47A8D1\",tertiary:\"#2E8EB8\"},pen:{primary:\"#0fBD8C\",secondary:\"#0DA57A\",tertiary:\"#0B8E69\"},operators:{primary:\"#59C059\",\nsecondary:\"#46B946\",tertiary:\"#389438\"},data:{primary:\"#FF8C1A\",secondary:\"#FF8000\",tertiary:\"#DB6E00\"},data_lists:{primary:\"#FF661A\",secondary:\"#FF5500\",tertiary:\"#E64D00\"},more:{primary:\"#FF6680\",secondary:\"#FF4D6A\",tertiary:\"#FF3355\"},text:\"#575E75\",workspace:\"#F9F9F9\",toolboxHover:\"#4C97FF\",toolboxSelected:\"#e9eef2\",toolboxText:\"#575E75\",toolbox:\"#FFFFFF\",flyout:\"#F9F9F9\",scrollbar:\"#CECDCE\",scrollbarHover:\"#CECDCE\",textField:\"#FFFFFF\",insertionMarker:\"#000000\",insertionMarkerOpacity:.2,dragShadowOpacity:.3,\nstackGlow:\"#FFF200\",stackGlowSize:4,stackGlowOpacity:1,replacementGlow:\"#FFFFFF\",replacementGlowSize:2,replacementGlowOpacity:1,colourPickerStroke:\"#FFFFFF\",fieldShadow:\"rgba(0,0,0,0.1)\",dropDownShadow:\"rgba(0, 0, 0, .3)\",numPadBackground:\"#547AB2\",numPadBorder:\"#435F91\",numPadActiveBackground:\"#435F91\",numPadText:\"white\",valueReportBackground:\"#FFFFFF\",valueReportBorder:\"#AAAAAA\"};\nBlockly.Colours.overrideColours=function(c){if(c)for(var a in c)if(c.hasOwnProperty(a)&&Blockly.Colours.hasOwnProperty(a)){var b=c[a];if(goog.isObject(b))for(var d in b)b.hasOwnProperty(d)&&Blockly.Colours[a].hasOwnProperty(d)&&(Blockly.Colours[a][d]=b[d]);else Blockly.Colours[a]=b}};Blockly.Blocks.math={};Blockly.Blocks.math_number={init:function(){this.jsonInit({message0:\"%1\",args0:[{type:\"field_number\",name:\"NUM\",value:\"0\"}],output:\"Number\",outputShape:Blockly.OUTPUT_SHAPE_ROUND,colour:Blockly.Colours.textField,colourSecondary:Blockly.Colours.textField,colourTertiary:Blockly.Colours.textField})}};\nBlockly.Blocks.math_integer={init:function(){this.jsonInit({message0:\"%1\",args0:[{type:\"field_number\",name:\"NUM\",precision:1}],output:\"Number\",outputShape:Blockly.OUTPUT_SHAPE_ROUND,colour:Blockly.Colours.textField,colourSecondary:Blockly.Colours.textField,colourTertiary:Blockly.Colours.textField})}};\nBlockly.Blocks.math_whole_number={init:function(){this.jsonInit({message0:\"%1\",args0:[{type:\"field_number\",name:\"NUM\",min:0,precision:1}],output:\"Number\",outputShape:Blockly.OUTPUT_SHAPE_ROUND,colour:Blockly.Colours.textField,colourSecondary:Blockly.Colours.textField,colourTertiary:Blockly.Colours.textField})}};\nBlockly.Blocks.math_positive_number={init:function(){this.jsonInit({message0:\"%1\",args0:[{type:\"field_number\",name:\"NUM\",min:0}],output:\"Number\",outputShape:Blockly.OUTPUT_SHAPE_ROUND,colour:Blockly.Colours.textField,colourSecondary:Blockly.Colours.textField,colourTertiary:Blockly.Colours.textField})}};\nBlockly.Blocks.math_angle={init:function(){this.jsonInit({message0:\"%1\",args0:[{type:\"field_angle\",name:\"NUM\",value:90}],output:\"Number\",outputShape:Blockly.OUTPUT_SHAPE_ROUND,colour:Blockly.Colours.textField,colourSecondary:Blockly.Colours.textField,colourTertiary:Blockly.Colours.textField})}};Blockly.Blocks.matrix={};Blockly.Blocks.matrix={init:function(){this.jsonInit({message0:\"%1\",args0:[{type:\"field_matrix\",name:\"MATRIX\"}],outputShape:Blockly.OUTPUT_SHAPE_ROUND,output:\"Number\",extensions:[\"colours_pen\"]})}};Blockly.Blocks.note={};Blockly.Blocks.note={init:function(){this.jsonInit({message0:\"%1\",args0:[{type:\"field_note\",name:\"NOTE\",value:60}],outputShape:Blockly.OUTPUT_SHAPE_ROUND,output:\"Number\",colour:Blockly.Colours.textField,colourSecondary:Blockly.Colours.textField,colourTertiary:Blockly.Colours.textField})}};Blockly.Blocks.texts={};Blockly.Blocks.text={init:function(){this.jsonInit({message0:\"%1\",args0:[{type:\"field_input\",name:\"TEXT\"}],output:\"String\",outputShape:Blockly.OUTPUT_SHAPE_ROUND,colour:Blockly.Colours.textField,colourSecondary:Blockly.Colours.textField,colourTertiary:Blockly.Colours.textField})}};\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = Blockly;\n","/*** IMPORTS FROM imports-loader ***/\nvar goog = require(\"./shim/blockly_compressed_vertical.goog\");\nvar Blockly = require(\"./shim/blockly_compressed_vertical-blocks_compressed\");\n\n// Do not edit this file; automatically generated by build.py.\n'use strict';\n\n/*\n\n Visual Blocks Editor\n\n Copyright 2016 Massachusetts Institute of Technology\n All rights reserved.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\nBlockly.Colours={motion:{primary:\"#4C97FF\",secondary:\"#4280D7\",tertiary:\"#3373CC\"},looks:{primary:\"#9966FF\",secondary:\"#855CD6\",tertiary:\"#774DCB\"},sounds:{primary:\"#CF63CF\",secondary:\"#C94FC9\",tertiary:\"#BD42BD\"},control:{primary:\"#FFAB19\",secondary:\"#EC9C13\",tertiary:\"#CF8B17\"},event:{primary:\"#FFBF00\",secondary:\"#E6AC00\",tertiary:\"#CC9900\"},sensing:{primary:\"#5CB1D6\",secondary:\"#47A8D1\",tertiary:\"#2E8EB8\"},pen:{primary:\"#0fBD8C\",secondary:\"#0DA57A\",tertiary:\"#0B8E69\"},operators:{primary:\"#59C059\",\nsecondary:\"#46B946\",tertiary:\"#389438\"},data:{primary:\"#FF8C1A\",secondary:\"#FF8000\",tertiary:\"#DB6E00\"},data_lists:{primary:\"#FF661A\",secondary:\"#FF5500\",tertiary:\"#E64D00\"},more:{primary:\"#FF6680\",secondary:\"#FF4D6A\",tertiary:\"#FF3355\"},text:\"#575E75\",workspace:\"#F9F9F9\",toolboxHover:\"#4C97FF\",toolboxSelected:\"#e9eef2\",toolboxText:\"#575E75\",toolbox:\"#FFFFFF\",flyout:\"#F9F9F9\",scrollbar:\"#CECDCE\",scrollbarHover:\"#CECDCE\",textField:\"#FFFFFF\",insertionMarker:\"#000000\",insertionMarkerOpacity:.2,dragShadowOpacity:.3,\nstackGlow:\"#FFF200\",stackGlowSize:4,stackGlowOpacity:1,replacementGlow:\"#FFFFFF\",replacementGlowSize:2,replacementGlowOpacity:1,colourPickerStroke:\"#FFFFFF\",fieldShadow:\"rgba(0,0,0,0.1)\",dropDownShadow:\"rgba(0, 0, 0, .3)\",numPadBackground:\"#547AB2\",numPadBorder:\"#435F91\",numPadActiveBackground:\"#435F91\",numPadText:\"white\",valueReportBackground:\"#FFFFFF\",valueReportBorder:\"#AAAAAA\"};\nBlockly.Colours.overrideColours=function(a){if(a)for(var b in a)if(a.hasOwnProperty(b)&&Blockly.Colours.hasOwnProperty(b)){var c=a[b];if(goog.isObject(c))for(var d in c)c.hasOwnProperty(d)&&Blockly.Colours[b].hasOwnProperty(d)&&(Blockly.Colours[b][d]=c[d]);else Blockly.Colours[b]=c}};\nBlockly.constants={};Blockly.DRAG_RADIUS=3;Blockly.FLYOUT_DRAG_RADIUS=10;Blockly.SNAP_RADIUS=48;Blockly.CONNECTING_SNAP_RADIUS=68;Blockly.CURRENT_CONNECTION_PREFERENCE=20;Blockly.BUMP_DELAY=0;Blockly.COLLAPSE_CHARS=30;Blockly.LONGPRESS=750;Blockly.LINE_SCROLL_MULTIPLIER=15;Blockly.SOUND_LIMIT=100;Blockly.DRAG_STACK=!0;Blockly.HSV_SATURATION=.45;Blockly.HSV_VALUE=.65;Blockly.SPRITE={width:96,height:124,url:\"sprites.png\"};Blockly.SVG_NS=\"http://www.w3.org/2000/svg\";Blockly.HTML_NS=\"http://www.w3.org/1999/xhtml\";\nBlockly.INPUT_VALUE=1;Blockly.OUTPUT_VALUE=2;Blockly.NEXT_STATEMENT=3;Blockly.PREVIOUS_STATEMENT=4;Blockly.DUMMY_INPUT=5;Blockly.ALIGN_LEFT=-1;Blockly.ALIGN_CENTRE=0;Blockly.ALIGN_RIGHT=1;Blockly.DRAG_NONE=0;Blockly.DRAG_STICKY=1;Blockly.DRAG_BEGIN=1;Blockly.DRAG_FREE=2;Blockly.OPPOSITE_TYPE=[];Blockly.OPPOSITE_TYPE[Blockly.INPUT_VALUE]=Blockly.OUTPUT_VALUE;Blockly.OPPOSITE_TYPE[Blockly.OUTPUT_VALUE]=Blockly.INPUT_VALUE;Blockly.OPPOSITE_TYPE[Blockly.NEXT_STATEMENT]=Blockly.PREVIOUS_STATEMENT;\nBlockly.OPPOSITE_TYPE[Blockly.PREVIOUS_STATEMENT]=Blockly.NEXT_STATEMENT;Blockly.TOOLBOX_AT_TOP=0;Blockly.TOOLBOX_AT_BOTTOM=1;Blockly.TOOLBOX_AT_LEFT=2;Blockly.TOOLBOX_AT_RIGHT=3;Blockly.OUTPUT_SHAPE_HEXAGONAL=1;Blockly.OUTPUT_SHAPE_ROUND=2;Blockly.OUTPUT_SHAPE_SQUARE=3;Blockly.Categories={motion:\"motion\",looks:\"looks\",sound:\"sounds\",pen:\"pen\",data:\"data\",dataLists:\"data-lists\",event:\"events\",control:\"control\",sensing:\"sensing\",operators:\"operators\",more:\"more\"};Blockly.DELETE_AREA_NONE=null;\nBlockly.DELETE_AREA_TRASH=1;Blockly.DELETE_AREA_TOOLBOX=2;Blockly.VARIABLE_CATEGORY_NAME=\"VARIABLE\";Blockly.PROCEDURE_CATEGORY_NAME=\"PROCEDURE\";Blockly.RENAME_VARIABLE_ID=\"RENAME_VARIABLE_ID\";Blockly.DELETE_VARIABLE_ID=\"DELETE_VARIABLE_ID\";Blockly.NEW_BROADCAST_MESSAGE_ID=\"NEW_BROADCAST_MESSAGE_ID\";Blockly.BROADCAST_MESSAGE_VARIABLE_TYPE=\"broadcast_msg\";Blockly.LIST_VARIABLE_TYPE=\"list\";Blockly.SCALAR_VARIABLE_TYPE=\"\";Blockly.PROCEDURES_DEFINITION_BLOCK_TYPE=\"procedures_definition\";\nBlockly.PROCEDURES_PROTOTYPE_BLOCK_TYPE=\"procedures_prototype\";Blockly.PROCEDURES_CALL_BLOCK_TYPE=\"procedures_call\";Blockly.StatusButtonState={READY:\"ready\",NOT_READY:\"not ready\"};\nBlockly.ScratchBlocks={};Blockly.ScratchBlocks.VerticalExtensions={};Blockly.ScratchBlocks.VerticalExtensions.colourHelper=function(a){var b=Blockly.Colours[a];if(!(b&&b.primary&&b.secondary&&b.tertiary))throw Error('Could not find colours for category \"'+a+'\"');return function(){this.setColourFromRawValues_(b.primary,b.secondary,b.tertiary)}};Blockly.ScratchBlocks.VerticalExtensions.COLOUR_TEXTFIELD=function(){this.setColourFromRawValues_(Blockly.Colours.textField,Blockly.Colours.textField,Blockly.Colours.textField)};\nBlockly.ScratchBlocks.VerticalExtensions.SHAPE_STATEMENT=function(){this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null)};Blockly.ScratchBlocks.VerticalExtensions.SHAPE_HAT=function(){this.setInputsInline(!0);this.setNextStatement(!0,null)};Blockly.ScratchBlocks.VerticalExtensions.SHAPE_END=function(){this.setInputsInline(!0);this.setPreviousStatement(!0,null)};\nBlockly.ScratchBlocks.VerticalExtensions.OUTPUT_NUMBER=function(){this.setInputsInline(!0);this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND);this.setOutput(!0,\"Number\")};Blockly.ScratchBlocks.VerticalExtensions.OUTPUT_STRING=function(){this.setInputsInline(!0);this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND);this.setOutput(!0,\"String\")};Blockly.ScratchBlocks.VerticalExtensions.OUTPUT_BOOLEAN=function(){this.setInputsInline(!0);this.setOutputShape(Blockly.OUTPUT_SHAPE_HEXAGONAL);this.setOutput(!0,\"Boolean\")};\nBlockly.ScratchBlocks.VerticalExtensions.PROCEDURE_DEF_CONTEXTMENU={customContextMenu:function(a){a.push(Blockly.Procedures.makeEditOption(this));for(var b=0,c;c=a[b];b++)if(c.text==Blockly.Msg.DELETE_BLOCK){var d=this.getInput(\"custom_block\");if(d&&d.connection&&d.connection.targetBlock())var e=d.connection.targetBlock().getProcCode();else return;var f=this;c.callback=function(){Blockly.Procedures.deleteProcedureDefCallback(e,f)||alert(\"To delete a block definition, first remove all uses of the block\")}}for(b=\n0;c=a[b];b++)if(c.text==Blockly.Msg.DUPLICATE){a.splice(b,1);break}}};Blockly.ScratchBlocks.VerticalExtensions.PROCEDURE_CALL_CONTEXTMENU={customContextMenu:function(a){a.push(Blockly.Procedures.makeEditOption(this))}};Blockly.ScratchBlocks.VerticalExtensions.SCRATCH_EXTENSION=function(){this.isScratchExtension=!0};\nBlockly.ScratchBlocks.VerticalExtensions.registerAll=function(){for(var a=\"control data data_lists sounds motion looks event sensing pen operators more\".split(\" \"),b=0;b10151590001001100100101010100110100-1010010110110helloworld1worldworldhelloworld10101010101100010101000100600.25';Blockly.Blocks.event={};Blockly.Blocks.event_whentouchingobject={init:function(){this.jsonInit({message0:Blockly.Msg.EVENT_WHENTOUCHINGOBJECT,args0:[{type:\"input_value\",name:\"TOUCHINGOBJECTMENU\"}],category:Blockly.Categories.event,extensions:[\"colours_event\",\"shape_hat\"]})}};\nBlockly.Blocks.event_touchingobjectmenu={init:function(){this.jsonInit({message0:\"%1\",args0:[{type:\"field_dropdown\",name:\"TOUCHINGOBJECTMENU\",options:[[Blockly.Msg.SENSING_TOUCHINGOBJECT_POINTER,\"_mouse_\"],[Blockly.Msg.SENSING_TOUCHINGOBJECT_EDGE,\"_edge_\"]]}],extensions:[\"colours_event\",\"output_string\"]})}};\nBlockly.Blocks.event_whenflagclicked={init:function(){this.jsonInit({id:\"event_whenflagclicked\",message0:Blockly.Msg.EVENT_WHENFLAGCLICKED,args0:[{type:\"field_image\",src:Blockly.mainWorkspace.options.pathToMedia+\"green-flag.svg\",width:24,height:24,alt:\"flag\"}],category:Blockly.Categories.event,extensions:[\"colours_event\",\"shape_hat\"]})}};\nBlockly.Blocks.event_whenthisspriteclicked={init:function(){this.jsonInit({message0:Blockly.Msg.EVENT_WHENTHISSPRITECLICKED,category:Blockly.Categories.event,extensions:[\"colours_event\",\"shape_hat\"]})}};Blockly.Blocks.event_whenstageclicked={init:function(){this.jsonInit({message0:Blockly.Msg.EVENT_WHENSTAGECLICKED,category:Blockly.Categories.event,extensions:[\"colours_event\",\"shape_hat\"]})}};\nBlockly.Blocks.event_whenbroadcastreceived={init:function(){this.jsonInit({id:\"event_whenbroadcastreceived\",message0:Blockly.Msg.EVENT_WHENBROADCASTRECEIVED,args0:[{type:\"field_variable\",name:\"BROADCAST_OPTION\",variableTypes:[Blockly.BROADCAST_MESSAGE_VARIABLE_TYPE],variable:Blockly.Msg.DEFAULT_BROADCAST_MESSAGE_NAME}],category:Blockly.Categories.event,extensions:[\"colours_event\",\"shape_hat\"]})}};\nBlockly.Blocks.event_whenbackdropswitchesto={init:function(){this.jsonInit({message0:Blockly.Msg.EVENT_WHENBACKDROPSWITCHESTO,args0:[{type:\"field_dropdown\",name:\"BACKDROP\",options:[[\"backdrop1\",\"BACKDROP1\"]]}],category:Blockly.Categories.event,extensions:[\"colours_event\",\"shape_hat\"]})}};\nBlockly.Blocks.event_whengreaterthan={init:function(){this.jsonInit({message0:Blockly.Msg.EVENT_WHENGREATERTHAN,args0:[{type:\"field_dropdown\",name:\"WHENGREATERTHANMENU\",options:[[Blockly.Msg.EVENT_WHENGREATERTHAN_LOUDNESS,\"LOUDNESS\"],[Blockly.Msg.EVENT_WHENGREATERTHAN_TIMER,\"TIMER\"]]},{type:\"input_value\",name:\"VALUE\"}],category:Blockly.Categories.event,extensions:[\"colours_event\",\"shape_hat\"]})}};\nBlockly.Blocks.event_broadcast_menu={init:function(){this.jsonInit({message0:\"%1\",args0:[{type:\"field_variable\",name:\"BROADCAST_OPTION\",variableTypes:[Blockly.BROADCAST_MESSAGE_VARIABLE_TYPE],variable:Blockly.Msg.DEFAULT_BROADCAST_MESSAGE_NAME}],colour:Blockly.Colours.event.secondary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary,extensions:[\"output_string\"]})}};\nBlockly.Blocks.event_broadcast={init:function(){this.jsonInit({id:\"event_broadcast\",message0:Blockly.Msg.EVENT_BROADCAST,args0:[{type:\"input_value\",name:\"BROADCAST_INPUT\"}],category:Blockly.Categories.event,extensions:[\"colours_event\",\"shape_statement\"]})}};Blockly.Blocks.event_broadcastandwait={init:function(){this.jsonInit({message0:Blockly.Msg.EVENT_BROADCASTANDWAIT,args0:[{type:\"input_value\",name:\"BROADCAST_INPUT\"}],category:Blockly.Categories.event,extensions:[\"colours_event\",\"shape_statement\"]})}};\nBlockly.Blocks.event_whenkeypressed={init:function(){this.jsonInit({id:\"event_whenkeypressed\",message0:Blockly.Msg.EVENT_WHENKEYPRESSED,args0:[{type:\"field_dropdown\",name:\"KEY_OPTION\",options:[[Blockly.Msg.EVENT_WHENKEYPRESSED_SPACE,\"space\"],[Blockly.Msg.EVENT_WHENKEYPRESSED_UP,\"up arrow\"],[Blockly.Msg.EVENT_WHENKEYPRESSED_DOWN,\"down arrow\"],[Blockly.Msg.EVENT_WHENKEYPRESSED_RIGHT,\"right arrow\"],[Blockly.Msg.EVENT_WHENKEYPRESSED_LEFT,\"left arrow\"],[Blockly.Msg.EVENT_WHENKEYPRESSED_ANY,\"any\"],[\"a\",\n\"a\"],[\"b\",\"b\"],[\"c\",\"c\"],[\"d\",\"d\"],[\"e\",\"e\"],[\"f\",\"f\"],[\"g\",\"g\"],[\"h\",\"h\"],[\"i\",\"i\"],[\"j\",\"j\"],[\"k\",\"k\"],[\"l\",\"l\"],[\"m\",\"m\"],[\"n\",\"n\"],[\"o\",\"o\"],[\"p\",\"p\"],[\"q\",\"q\"],[\"r\",\"r\"],[\"s\",\"s\"],[\"t\",\"t\"],[\"u\",\"u\"],[\"v\",\"v\"],[\"w\",\"w\"],[\"x\",\"x\"],[\"y\",\"y\"],[\"z\",\"z\"],[\"0\",\"0\"],[\"1\",\"1\"],[\"2\",\"2\"],[\"3\",\"3\"],[\"4\",\"4\"],[\"5\",\"5\"],[\"6\",\"6\"],[\"7\",\"7\"],[\"8\",\"8\"],[\"9\",\"9\"]]}],category:Blockly.Categories.event,extensions:[\"colours_event\",\"shape_hat\"]})}};Blockly.Blocks.extensions={};Blockly.Blocks.extension_pen_down={init:function(){this.jsonInit({message0:\"%1 %2 pen down\",args0:[{type:\"field_image\",src:Blockly.mainWorkspace.options.pathToMedia+\"extensions/pen-block-icon.svg\",width:40,height:40},{type:\"field_vertical_separator\"}],category:Blockly.Categories.more,extensions:[\"colours_more\",\"shape_statement\",\"scratch_extension\"]})}};\nBlockly.Blocks.extension_music_drum={init:function(){this.jsonInit({message0:\"%1 %2 play drum %3\",args0:[{type:\"field_image\",src:Blockly.mainWorkspace.options.pathToMedia+\"extensions/music-block-icon.svg\",width:40,height:40},{type:\"field_vertical_separator\"},{type:\"input_value\",name:\"NUMBER\"}],category:Blockly.Categories.more,extensions:[\"colours_more\",\"shape_statement\",\"scratch_extension\"]})}};\nBlockly.Blocks.extension_wedo_motor={init:function(){this.jsonInit({message0:\"%1 %2 turn a motor %3\",args0:[{type:\"field_image\",src:Blockly.mainWorkspace.options.pathToMedia+\"extensions/wedo2-block-icon.svg\",width:40,height:40},{type:\"field_vertical_separator\"},{type:\"field_image\",src:Blockly.mainWorkspace.options.pathToMedia+\"rotate-right.svg\",width:24,height:24}],category:Blockly.Categories.more,extensions:[\"colours_more\",\"shape_statement\",\"scratch_extension\"]})}};\nBlockly.Blocks.extension_wedo_hat={init:function(){this.jsonInit({message0:\"%1 %2 when I am wearing a hat\",args0:[{type:\"field_image\",src:Blockly.mainWorkspace.options.pathToMedia+\"extensions/wedo2-block-icon.svg\",width:40,height:40},{type:\"field_vertical_separator\"}],category:Blockly.Categories.more,extensions:[\"colours_more\",\"shape_hat\",\"scratch_extension\"]})}};\nBlockly.Blocks.extension_wedo_boolean={init:function(){this.jsonInit({message0:\"%1 %2 O RLY?\",args0:[{type:\"field_image\",src:Blockly.mainWorkspace.options.pathToMedia+\"extensions/wedo2-block-icon.svg\",width:40,height:40},{type:\"field_vertical_separator\"}],category:Blockly.Categories.more,extensions:[\"colours_more\",\"output_boolean\",\"scratch_extension\"]})}};\nBlockly.Blocks.extension_wedo_tilt_reporter={init:function(){this.jsonInit({message0:\"%1 %2 tilt angle %3\",args0:[{type:\"field_image\",src:Blockly.mainWorkspace.options.pathToMedia+\"extensions/wedo2-block-icon.svg\",width:40,height:40},{type:\"field_vertical_separator\"},{type:\"input_value\",name:\"TILT\"}],category:Blockly.Categories.more,extensions:[\"colours_more\",\"output_number\",\"scratch_extension\"]})}};\nBlockly.Blocks.extension_wedo_tilt_menu={init:function(){this.jsonInit({message0:\"%1\",args0:[{type:\"field_dropdown\",name:\"TILT\",options:[[\"Any\",\"Any\"],[\"Whirl\",\"Whirl\"],[\"South\",\"South\"],[\"Back in time\",\"Back in time\"]]}],extensions:[\"colours_more\",\"output_string\"]})}};\nBlockly.Blocks.extension_music_reporter={init:function(){this.jsonInit({message0:\"%1 %2 hey now, you're an all-star\",args0:[{type:\"field_image\",src:Blockly.mainWorkspace.options.pathToMedia+\"extensions/music-block-icon.svg\",width:40,height:40},{type:\"field_vertical_separator\"}],category:Blockly.Categories.more,extensions:[\"colours_more\",\"output_number\",\"scratch_extension\"]})}};\nBlockly.Blocks.extension_microbit_display={init:function(){this.jsonInit({message0:\"%1 %2 display %3\",args0:[{type:\"field_image\",src:Blockly.mainWorkspace.options.pathToMedia+\"extensions/microbit-block-icon.svg\",width:40,height:40},{type:\"field_vertical_separator\"},{type:\"input_value\",name:\"MATRIX\"}],category:Blockly.Categories.pen,extensions:[\"colours_pen\",\"shape_statement\",\"scratch_extension\"]})}};\nBlockly.Blocks.extension_music_play_note={init:function(){this.jsonInit({message0:\"%1 %2 play note %3 for %4 beats\",args0:[{type:\"field_image\",src:Blockly.mainWorkspace.options.pathToMedia+\"extensions/music-block-icon.svg\",width:40,height:40},{type:\"field_vertical_separator\"},{type:\"input_value\",name:\"NOTE\"},{type:\"input_value\",name:\"BEATS\"}],category:Blockly.Categories.pen,extensions:[\"colours_pen\",\"shape_statement\",\"scratch_extension\"]})}};Blockly.Blocks.looks={};Blockly.Blocks.looks_sayforsecs={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_SAYFORSECS,args0:[{type:\"input_value\",name:\"MESSAGE\"},{type:\"input_value\",name:\"SECS\"}],category:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};Blockly.Blocks.looks_say={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_SAY,args0:[{type:\"input_value\",name:\"MESSAGE\"}],category:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};\nBlockly.Blocks.looks_thinkforsecs={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_THINKFORSECS,args0:[{type:\"input_value\",name:\"MESSAGE\"},{type:\"input_value\",name:\"SECS\"}],category:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};Blockly.Blocks.looks_think={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_THINK,args0:[{type:\"input_value\",name:\"MESSAGE\"}],category:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};\nBlockly.Blocks.looks_show={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_SHOW,category:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};Blockly.Blocks.looks_hide={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_HIDE,category:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};\nBlockly.Blocks.looks_hideallsprites={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_HIDEALLSPRITES,category:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};\nBlockly.Blocks.looks_changeeffectby={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_CHANGEEFFECTBY,args0:[{type:\"field_dropdown\",name:\"EFFECT\",options:[[Blockly.Msg.LOOKS_EFFECT_COLOR,\"COLOR\"],[Blockly.Msg.LOOKS_EFFECT_FISHEYE,\"FISHEYE\"],[Blockly.Msg.LOOKS_EFFECT_WHIRL,\"WHIRL\"],[Blockly.Msg.LOOKS_EFFECT_PIXELATE,\"PIXELATE\"],[Blockly.Msg.LOOKS_EFFECT_MOSAIC,\"MOSAIC\"],[Blockly.Msg.LOOKS_EFFECT_BRIGHTNESS,\"BRIGHTNESS\"],[Blockly.Msg.LOOKS_EFFECT_GHOST,\"GHOST\"]]},{type:\"input_value\",name:\"CHANGE\"}],\ncategory:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};\nBlockly.Blocks.looks_seteffectto={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_SETEFFECTTO,args0:[{type:\"field_dropdown\",name:\"EFFECT\",options:[[Blockly.Msg.LOOKS_EFFECT_COLOR,\"COLOR\"],[Blockly.Msg.LOOKS_EFFECT_FISHEYE,\"FISHEYE\"],[Blockly.Msg.LOOKS_EFFECT_WHIRL,\"WHIRL\"],[Blockly.Msg.LOOKS_EFFECT_PIXELATE,\"PIXELATE\"],[Blockly.Msg.LOOKS_EFFECT_MOSAIC,\"MOSAIC\"],[Blockly.Msg.LOOKS_EFFECT_BRIGHTNESS,\"BRIGHTNESS\"],[Blockly.Msg.LOOKS_EFFECT_GHOST,\"GHOST\"]]},{type:\"input_value\",name:\"VALUE\"}],\ncategory:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};Blockly.Blocks.looks_cleargraphiceffects={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_CLEARGRAPHICEFFECTS,category:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};\nBlockly.Blocks.looks_changesizeby={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_CHANGESIZEBY,args0:[{type:\"input_value\",name:\"CHANGE\"}],category:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};Blockly.Blocks.looks_setsizeto={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_SETSIZETO,args0:[{type:\"input_value\",name:\"SIZE\"}],category:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};\nBlockly.Blocks.looks_size={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_SIZE,category:Blockly.Categories.looks,checkboxInFlyout:!0,extensions:[\"colours_looks\",\"output_number\"]})}};Blockly.Blocks.looks_changestretchby={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_CHANGESTRETCHBY,args0:[{type:\"input_value\",name:\"CHANGE\"}],category:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};\nBlockly.Blocks.looks_setstretchto={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_SETSTRETCHTO,args0:[{type:\"input_value\",name:\"STRETCH\"}],category:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};\nBlockly.Blocks.looks_costume={init:function(){this.jsonInit({message0:\"%1\",args0:[{type:\"field_dropdown\",name:\"COSTUME\",options:[[\"costume1\",\"COSTUME1\"],[\"costume2\",\"COSTUME2\"]]}],colour:Blockly.Colours.looks.secondary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary,extensions:[\"output_string\"]})}};\nBlockly.Blocks.looks_switchcostumeto={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_SWITCHCOSTUMETO,args0:[{type:\"input_value\",name:\"COSTUME\"}],category:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};Blockly.Blocks.looks_nextcostume={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_NEXTCOSTUME,category:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};\nBlockly.Blocks.looks_switchbackdropto={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_SWITCHBACKDROPTO,args0:[{type:\"input_value\",name:\"BACKDROP\"}],category:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};\nBlockly.Blocks.looks_backdrops={init:function(){this.jsonInit({id:\"looks_backdrops\",message0:\"%1\",args0:[{type:\"field_dropdown\",name:\"BACKDROP\",options:[[\"backdrop1\",\"BACKDROP1\"]]}],colour:Blockly.Colours.looks.secondary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary,extensions:[\"output_string\"]})}};\nBlockly.Blocks.looks_gotofrontback={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_GOTOFRONTBACK,args0:[{type:\"field_dropdown\",name:\"FRONT_BACK\",options:[[Blockly.Msg.LOOKS_GOTOFRONTBACK_FRONT,\"front\"],[Blockly.Msg.LOOKS_GOTOFRONTBACK_BACK,\"back\"]]}],category:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};\nBlockly.Blocks.looks_goforwardbackwardlayers={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_GOFORWARDBACKWARDLAYERS,args0:[{type:\"field_dropdown\",name:\"FORWARD_BACKWARD\",options:[[Blockly.Msg.LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD,\"forward\"],[Blockly.Msg.LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD,\"backward\"]]},{type:\"input_value\",name:\"NUM\"}],category:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};\nBlockly.Blocks.looks_backdropnumbername={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_BACKDROPNUMBERNAME,args0:[{type:\"field_dropdown\",name:\"NUMBER_NAME\",options:[[Blockly.Msg.LOOKS_NUMBERNAME_NUMBER,\"number\"],[Blockly.Msg.LOOKS_NUMBERNAME_NAME,\"name\"]]}],category:Blockly.Categories.looks,checkboxInFlyout:!0,extensions:[\"colours_looks\",\"output_number\"]})}};\nBlockly.Blocks.looks_costumenumbername={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_COSTUMENUMBERNAME,args0:[{type:\"field_dropdown\",name:\"NUMBER_NAME\",options:[[Blockly.Msg.LOOKS_NUMBERNAME_NUMBER,\"number\"],[Blockly.Msg.LOOKS_NUMBERNAME_NAME,\"name\"]]}],category:Blockly.Categories.looks,checkboxInFlyout:!0,extensions:[\"colours_looks\",\"output_number\"]})}};\nBlockly.Blocks.looks_switchbackdroptoandwait={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_SWITCHBACKDROPTOANDWAIT,args0:[{type:\"input_value\",name:\"BACKDROP\"}],category:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};Blockly.Blocks.looks_nextbackdrop={init:function(){this.jsonInit({message0:Blockly.Msg.LOOKS_NEXTBACKDROP_BLOCK,category:Blockly.Categories.looks,extensions:[\"colours_looks\",\"shape_statement\"]})}};Blockly.Blocks.motion={};Blockly.Blocks.motion_movesteps={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_MOVESTEPS,args0:[{type:\"input_value\",name:\"STEPS\"}],category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"shape_statement\"]})}};\nBlockly.Blocks.motion_turnright={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_TURNRIGHT,args0:[{type:\"field_image\",src:Blockly.mainWorkspace.options.pathToMedia+\"rotate-right.svg\",width:24,height:24},{type:\"input_value\",name:\"DEGREES\"}],category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"shape_statement\"]})}};\nBlockly.Blocks.motion_turnleft={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_TURNLEFT,args0:[{type:\"field_image\",src:Blockly.mainWorkspace.options.pathToMedia+\"rotate-left.svg\",width:24,height:24},{type:\"input_value\",name:\"DEGREES\"}],category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"shape_statement\"]})}};\nBlockly.Blocks.motion_pointindirection={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_POINTINDIRECTION,args0:[{type:\"input_value\",name:\"DIRECTION\"}],category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"shape_statement\"]})}};\nBlockly.Blocks.motion_pointtowards_menu={init:function(){this.jsonInit({message0:\"%1\",args0:[{type:\"field_dropdown\",name:\"TOWARDS\",options:[[Blockly.Msg.MOTION_POINTTOWARDS_POINTER,\"_mouse_\"],[Blockly.Msg.MOTION_POINTTOWARDS_RANDOM,\"_random_\"]]}],colour:Blockly.Colours.motion.secondary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary,extensions:[\"output_string\"]})}};\nBlockly.Blocks.motion_pointtowards={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_POINTTOWARDS,args0:[{type:\"input_value\",name:\"TOWARDS\"}],category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"shape_statement\"]})}};\nBlockly.Blocks.motion_goto_menu={init:function(){this.jsonInit({message0:\"%1\",args0:[{type:\"field_dropdown\",name:\"TO\",options:[[Blockly.Msg.MOTION_GOTO_POINTER,\"_mouse_\"],[Blockly.Msg.MOTION_GOTO_RANDOM,\"_random_\"]]}],colour:Blockly.Colours.motion.secondary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary,extensions:[\"output_string\"]})}};\nBlockly.Blocks.motion_gotoxy={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_GOTOXY,args0:[{type:\"input_value\",name:\"X\"},{type:\"input_value\",name:\"Y\"}],category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"shape_statement\"]})}};Blockly.Blocks.motion_goto={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_GOTO,args0:[{type:\"input_value\",name:\"TO\"}],category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"shape_statement\"]})}};\nBlockly.Blocks.motion_glidesecstoxy={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_GLIDESECSTOXY,args0:[{type:\"input_value\",name:\"SECS\"},{type:\"input_value\",name:\"X\"},{type:\"input_value\",name:\"Y\"}],category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"shape_statement\"]})}};\nBlockly.Blocks.motion_glideto_menu={init:function(){this.jsonInit({message0:\"%1\",args0:[{type:\"field_dropdown\",name:\"TO\",options:[[Blockly.Msg.MOTION_GLIDETO_POINTER,\"_mouse_\"],[Blockly.Msg.MOTION_GLIDETO_RANDOM,\"_random_\"]]}],colour:Blockly.Colours.motion.secondary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary,extensions:[\"output_string\"]})}};\nBlockly.Blocks.motion_glideto={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_GLIDETO,args0:[{type:\"input_value\",name:\"SECS\"},{type:\"input_value\",name:\"TO\"}],category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"shape_statement\"]})}};Blockly.Blocks.motion_changexby={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_CHANGEXBY,args0:[{type:\"input_value\",name:\"DX\"}],category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"shape_statement\"]})}};\nBlockly.Blocks.motion_setx={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_SETX,args0:[{type:\"input_value\",name:\"X\"}],category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"shape_statement\"]})}};Blockly.Blocks.motion_changeyby={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_CHANGEYBY,args0:[{type:\"input_value\",name:\"DY\"}],category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"shape_statement\"]})}};\nBlockly.Blocks.motion_sety={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_SETY,args0:[{type:\"input_value\",name:\"Y\"}],category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"shape_statement\"]})}};Blockly.Blocks.motion_ifonedgebounce={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_IFONEDGEBOUNCE,category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"shape_statement\"]})}};\nBlockly.Blocks.motion_setrotationstyle={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_SETROTATIONSTYLE,args0:[{type:\"field_dropdown\",name:\"STYLE\",options:[[Blockly.Msg.MOTION_SETROTATIONSTYLE_LEFTRIGHT,\"left-right\"],[Blockly.Msg.MOTION_SETROTATIONSTYLE_DONTROTATE,\"don't rotate\"],[Blockly.Msg.MOTION_SETROTATIONSTYLE_ALLAROUND,\"all around\"]]}],category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"shape_statement\"]})}};\nBlockly.Blocks.motion_xposition={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_XPOSITION,category:Blockly.Categories.motion,checkboxInFlyout:!0,extensions:[\"colours_motion\",\"output_number\"]})}};Blockly.Blocks.motion_yposition={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_YPOSITION,category:Blockly.Categories.motion,checkboxInFlyout:!0,extensions:[\"colours_motion\",\"output_number\"]})}};\nBlockly.Blocks.motion_direction={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_DIRECTION,category:Blockly.Categories.motion,checkboxInFlyout:!0,extensions:[\"colours_motion\",\"output_number\"]})}};Blockly.Blocks.motion_scroll_right={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_SCROLLRIGHT,args0:[{type:\"input_value\",name:\"DISTANCE\"}],category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"shape_statement\"]})}};\nBlockly.Blocks.motion_scroll_up={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_SCROLLUP,args0:[{type:\"input_value\",name:\"DISTANCE\"}],category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"shape_statement\"]})}};\nBlockly.Blocks.motion_align_scene={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_ALIGNSCENE,args0:[{type:\"field_dropdown\",name:\"ALIGNMENT\",options:[[Blockly.Msg.MOTION_ALIGNSCENE_BOTTOMLEFT,\"bottom-left\"],[Blockly.Msg.MOTION_ALIGNSCENE_BOTTOMRIGHT,\"bottom-right\"],[Blockly.Msg.MOTION_ALIGNSCENE_MIDDLE,\"middle\"],[Blockly.Msg.MOTION_ALIGNSCENE_TOPLEFT,\"top-left\"],[Blockly.Msg.MOTION_ALIGNSCENE_TOPRIGHT,\"top-right\"]]}],category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"shape_statement\"]})}};\nBlockly.Blocks.motion_xscroll={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_XSCROLL,category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"output_number\"]})}};Blockly.Blocks.motion_yscroll={init:function(){this.jsonInit({message0:Blockly.Msg.MOTION_YSCROLL,category:Blockly.Categories.motion,extensions:[\"colours_motion\",\"output_number\"]})}};\nBlockly.Blocks.operators={};Blockly.Blocks.operator_add={init:function(){this.jsonInit({message0:Blockly.Msg.OPERATORS_ADD,args0:[{type:\"input_value\",name:\"NUM1\"},{type:\"input_value\",name:\"NUM2\"}],category:Blockly.Categories.operators,extensions:[\"colours_operators\",\"output_number\"]})}};\nBlockly.Blocks.operator_subtract={init:function(){this.jsonInit({message0:Blockly.Msg.OPERATORS_SUBTRACT,args0:[{type:\"input_value\",name:\"NUM1\"},{type:\"input_value\",name:\"NUM2\"}],category:Blockly.Categories.operators,extensions:[\"colours_operators\",\"output_number\"]})}};\nBlockly.Blocks.operator_multiply={init:function(){this.jsonInit({message0:Blockly.Msg.OPERATORS_MULTIPLY,args0:[{type:\"input_value\",name:\"NUM1\"},{type:\"input_value\",name:\"NUM2\"}],category:Blockly.Categories.operators,extensions:[\"colours_operators\",\"output_number\"]})}};\nBlockly.Blocks.operator_divide={init:function(){this.jsonInit({message0:Blockly.Msg.OPERATORS_DIVIDE,args0:[{type:\"input_value\",name:\"NUM1\"},{type:\"input_value\",name:\"NUM2\"}],category:Blockly.Categories.operators,extensions:[\"colours_operators\",\"output_number\"]})}};\nBlockly.Blocks.operator_random={init:function(){this.jsonInit({message0:Blockly.Msg.OPERATORS_RANDOM,args0:[{type:\"input_value\",name:\"FROM\"},{type:\"input_value\",name:\"TO\"}],category:Blockly.Categories.operators,extensions:[\"colours_operators\",\"output_number\"]})}};\nBlockly.Blocks.operator_lt={init:function(){this.jsonInit({message0:Blockly.Msg.OPERATORS_LT,args0:[{type:\"input_value\",name:\"OPERAND1\"},{type:\"input_value\",name:\"OPERAND2\"}],category:Blockly.Categories.operators,extensions:[\"colours_operators\",\"output_boolean\"]})}};\nBlockly.Blocks.operator_equals={init:function(){this.jsonInit({message0:Blockly.Msg.OPERATORS_EQUALS,args0:[{type:\"input_value\",name:\"OPERAND1\"},{type:\"input_value\",name:\"OPERAND2\"}],category:Blockly.Categories.operators,extensions:[\"colours_operators\",\"output_boolean\"]})}};\nBlockly.Blocks.operator_gt={init:function(){this.jsonInit({message0:Blockly.Msg.OPERATORS_GT,args0:[{type:\"input_value\",name:\"OPERAND1\"},{type:\"input_value\",name:\"OPERAND2\"}],category:Blockly.Categories.operators,extensions:[\"colours_operators\",\"output_boolean\"]})}};\nBlockly.Blocks.operator_and={init:function(){this.jsonInit({message0:Blockly.Msg.OPERATORS_AND,args0:[{type:\"input_value\",name:\"OPERAND1\",check:\"Boolean\"},{type:\"input_value\",name:\"OPERAND2\",check:\"Boolean\"}],category:Blockly.Categories.operators,extensions:[\"colours_operators\",\"output_boolean\"]})}};\nBlockly.Blocks.operator_or={init:function(){this.jsonInit({message0:Blockly.Msg.OPERATORS_OR,args0:[{type:\"input_value\",name:\"OPERAND1\",check:\"Boolean\"},{type:\"input_value\",name:\"OPERAND2\",check:\"Boolean\"}],category:Blockly.Categories.operators,extensions:[\"colours_operators\",\"output_boolean\"]})}};\nBlockly.Blocks.operator_not={init:function(){this.jsonInit({message0:Blockly.Msg.OPERATORS_NOT,args0:[{type:\"input_value\",name:\"OPERAND\",check:\"Boolean\"}],category:Blockly.Categories.operators,extensions:[\"colours_operators\",\"output_boolean\"]})}};Blockly.Blocks.operator_join={init:function(){this.jsonInit({message0:Blockly.Msg.OPERATORS_JOIN,args0:[{type:\"input_value\",name:\"STRING1\"},{type:\"input_value\",name:\"STRING2\"}],category:Blockly.Categories.operators,extensions:[\"colours_operators\",\"output_string\"]})}};\nBlockly.Blocks.operator_letter_of={init:function(){this.jsonInit({message0:Blockly.Msg.OPERATORS_LETTEROF,args0:[{type:\"input_value\",name:\"LETTER\"},{type:\"input_value\",name:\"STRING\"}],category:Blockly.Categories.operators,extensions:[\"colours_operators\",\"output_string\"]})}};Blockly.Blocks.operator_length={init:function(){this.jsonInit({message0:Blockly.Msg.OPERATORS_LENGTH,args0:[{type:\"input_value\",name:\"STRING\"}],category:Blockly.Categories.operators,extensions:[\"colours_operators\",\"output_string\"]})}};\nBlockly.Blocks.operator_contains={init:function(){this.jsonInit({message0:Blockly.Msg.OPERATORS_CONTAINS,args0:[{type:\"input_value\",name:\"STRING1\"},{type:\"input_value\",name:\"STRING2\"}],category:Blockly.Categories.operators,extensions:[\"colours_operators\",\"output_boolean\"]})}};\nBlockly.Blocks.operator_mod={init:function(){this.jsonInit({message0:Blockly.Msg.OPERATORS_MOD,args0:[{type:\"input_value\",name:\"NUM1\"},{type:\"input_value\",name:\"NUM2\"}],category:Blockly.Categories.operators,extensions:[\"colours_operators\",\"output_number\"]})}};Blockly.Blocks.operator_round={init:function(){this.jsonInit({message0:Blockly.Msg.OPERATORS_ROUND,args0:[{type:\"input_value\",name:\"NUM\"}],category:Blockly.Categories.operators,extensions:[\"colours_operators\",\"output_number\"]})}};\nBlockly.Blocks.operator_mathop={init:function(){this.jsonInit({message0:Blockly.Msg.OPERATORS_MATHOP,args0:[{type:\"field_dropdown\",name:\"OPERATOR\",options:[[Blockly.Msg.OPERATORS_MATHOP_ABS,\"abs\"],[Blockly.Msg.OPERATORS_MATHOP_FLOOR,\"floor\"],[Blockly.Msg.OPERATORS_MATHOP_CEILING,\"ceiling\"],[Blockly.Msg.OPERATORS_MATHOP_SQRT,\"sqrt\"],[Blockly.Msg.OPERATORS_MATHOP_SIN,\"sin\"],[Blockly.Msg.OPERATORS_MATHOP_COS,\"cos\"],[Blockly.Msg.OPERATORS_MATHOP_TAN,\"tan\"],[Blockly.Msg.OPERATORS_MATHOP_ASIN,\"asin\"],[Blockly.Msg.OPERATORS_MATHOP_ACOS,\n\"acos\"],[Blockly.Msg.OPERATORS_MATHOP_ATAN,\"atan\"],[Blockly.Msg.OPERATORS_MATHOP_LN,\"ln\"],[Blockly.Msg.OPERATORS_MATHOP_LOG,\"log\"],[Blockly.Msg.OPERATORS_MATHOP_EEXP,\"e ^\"],[Blockly.Msg.OPERATORS_MATHOP_10EXP,\"10 ^\"]]},{type:\"input_value\",name:\"NUM\"}],category:Blockly.Categories.operators,extensions:[\"colours_operators\",\"output_number\"]})}};Blockly.ScratchBlocks.ProcedureUtils={};Blockly.ScratchBlocks.ProcedureUtils.callerMutationToDom=function(){var a=document.createElement(\"mutation\");a.setAttribute(\"proccode\",this.procCode_);a.setAttribute(\"argumentids\",JSON.stringify(this.argumentIds_));a.setAttribute(\"warp\",JSON.stringify(this.warp_));return a};\nBlockly.ScratchBlocks.ProcedureUtils.callerDomToMutation=function(a){this.procCode_=a.getAttribute(\"proccode\");this.generateShadows_=JSON.parse(a.getAttribute(\"generateshadows\"));this.argumentIds_=JSON.parse(a.getAttribute(\"argumentids\"));this.warp_=JSON.parse(a.getAttribute(\"warp\"));this.updateDisplay_()};\nBlockly.ScratchBlocks.ProcedureUtils.definitionMutationToDom=function(a){var b=document.createElement(\"mutation\");a&&b.setAttribute(\"generateshadows\",!0);b.setAttribute(\"proccode\",this.procCode_);b.setAttribute(\"argumentids\",JSON.stringify(this.argumentIds_));b.setAttribute(\"argumentnames\",JSON.stringify(this.displayNames_));b.setAttribute(\"argumentdefaults\",JSON.stringify(this.argumentDefaults_));b.setAttribute(\"warp\",JSON.stringify(this.warp_));return b};\nBlockly.ScratchBlocks.ProcedureUtils.definitionDomToMutation=function(a){this.procCode_=a.getAttribute(\"proccode\");this.warp_=JSON.parse(a.getAttribute(\"warp\"));var b=this.argumentIds_,c=this.displayNames_;this.argumentIds_=JSON.parse(a.getAttribute(\"argumentids\"));this.displayNames_=JSON.parse(a.getAttribute(\"argumentnames\"));this.argumentDefaults_=JSON.parse(a.getAttribute(\"argumentdefaults\"));this.updateDisplay_();this.updateArgumentReporterNames_&&this.updateArgumentReporterNames_(b,c)};\nBlockly.ScratchBlocks.ProcedureUtils.getProcCode=function(){return this.procCode_};Blockly.ScratchBlocks.ProcedureUtils.updateDisplay_=function(){var a=this.rendered;this.rendered=!1;var b=this.disconnectOldBlocks_();this.removeAllInputs_();this.createAllInputs_(b);this.deleteShadows_(b);(this.rendered=a)&&!this.isInsertionMarker()&&(this.initSvg(),this.render())};\nBlockly.ScratchBlocks.ProcedureUtils.disconnectOldBlocks_=function(){for(var a={},b=0,c;c=this.inputList[b];b++)if(c.connection){var d=c.connection.targetBlock(),e={shadow:c.connection.getShadowDom(),block:d};a[c.name]=e;c.connection.setShadowDom(null);d&&c.connection.disconnect()}return a};Blockly.ScratchBlocks.ProcedureUtils.removeAllInputs_=function(){for(var a=0,b;b=this.inputList[a];a++)b.dispose();this.inputList=[]};\nBlockly.ScratchBlocks.ProcedureUtils.createAllInputs_=function(a){var b=this.procCode_.split(/(?=[^\\\\]%[nbs])/);b=b.map(function(a){return a.trim()});for(var c=0,d=0,e;e=b[d];d++){if(\"%\"==e.substring(0,1)){var f=e.substring(1,2);if(\"n\"!=f&&\"b\"!=f&&\"s\"!=f)throw Error(\"Found an custom procedure with an invalid type: \"+f);e=e.substring(2).trim();var g=this.argumentIds_[c],h=this.appendValueInput(g);\"b\"==f&&h.setCheck(\"Boolean\");this.populateArgument_(f,c,a,g,h);c++}else e=e.trim();this.addProcedureLabel_(e.replace(/\\\\%/,\n\"%\"))}};Blockly.ScratchBlocks.ProcedureUtils.deleteShadows_=function(a){if(a)for(var b in a){var c=a[b];c&&(c=c.block)&&c.isShadow()&&(c.dispose(),a[b]=null)}};Blockly.ScratchBlocks.ProcedureUtils.addLabelField_=function(a){this.appendDummyInput().appendField(a)};Blockly.ScratchBlocks.ProcedureUtils.addLabelEditor_=function(a){a&&this.appendDummyInput(Blockly.utils.genUid()).appendField(new Blockly.FieldTextInputRemovable(a))};\nBlockly.ScratchBlocks.ProcedureUtils.buildShadowDom_=function(a){var b=goog.dom.createDom(\"shadow\");if(\"n\"==a){var c=\"math_number\";a=\"NUM\";var d=\"1\"}else c=\"text\",a=\"TEXT\",d=\"\";b.setAttribute(\"type\",c);c=goog.dom.createDom(\"field\",null,d);c.setAttribute(\"name\",a);b.appendChild(c);return b};\nBlockly.ScratchBlocks.ProcedureUtils.attachShadow_=function(a,b){if(\"n\"==b||\"s\"==b){var c=\"n\"==b?\"math_number\":\"text\";Blockly.Events.disable();try{var d=this.workspace.newBlock(c);\"n\"==b?d.setFieldValue(\"1\",\"NUM\"):d.setFieldValue(\"\",\"TEXT\");d.setShadow(!0);this.isInsertionMarker()||(d.initSvg(),d.render(!1))}finally{Blockly.Events.enable()}Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.BlockCreate(d));d.outputConnection.connect(a.connection)}};\nBlockly.ScratchBlocks.ProcedureUtils.createArgumentReporter_=function(a,b){a=\"n\"==a||\"s\"==a?\"argument_reporter_string_number\":\"argument_reporter_boolean\";Blockly.Events.disable();try{var c=this.workspace.newBlock(a);c.setShadow(!0);c.setFieldValue(b,\"VALUE\");this.isInsertionMarker()||(c.initSvg(),c.render(!1))}finally{Blockly.Events.enable()}Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.BlockCreate(c));return c};\nBlockly.ScratchBlocks.ProcedureUtils.populateArgumentOnCaller_=function(a,b,c,d,e){var f=b=null;c&&d in c&&(d=c[d],b=d.block,f=d.shadow);c&&b?(c[e.name]=null,b.outputConnection.connect(e.connection),\"b\"!=a&&this.generateShadows_&&(a=f||this.buildShadowDom_(a),console.log(\"setting shadow dom: \"+a),e.connection.setShadowDom(a))):this.generateShadows_&&this.attachShadow_(e,a)};\nBlockly.ScratchBlocks.ProcedureUtils.populateArgumentOnPrototype_=function(a,b,c,d,e){var f=null;c&&d in c&&(f=c[d].block);d=Blockly.ScratchBlocks.ProcedureUtils.checkOldTypeMatches_(f,a);b=this.displayNames_[b];c&&f&&d?(a=f,a.setFieldValue(b,\"VALUE\"),c[e.name]=null):a=this.createArgumentReporter_(a,b);e.connection.connect(a.outputConnection)};\nBlockly.ScratchBlocks.ProcedureUtils.populateArgumentOnDeclaration_=function(a,b,c,d,e){var f=null;c&&d in c&&(f=c[d].block);d=Blockly.ScratchBlocks.ProcedureUtils.checkOldTypeMatches_(f,a);b=this.displayNames_[b];f&&d?(a=f,f.setFieldValue(b,\"TEXT\"),c[e.name]=null):a=this.createArgumentEditor_(a,b);e.connection.connect(a.outputConnection)};\nBlockly.ScratchBlocks.ProcedureUtils.checkOldTypeMatches_=function(a,b){return a?(\"n\"==b||\"s\"==b)&&\"argument_reporter_string_number\"==a.type||\"b\"==b&&\"argument_reporter_boolean\"==a.type?!0:!1:!1};\nBlockly.ScratchBlocks.ProcedureUtils.createArgumentEditor_=function(a,b){Blockly.Events.disable();try{var c=\"n\"==a||\"s\"==a?this.workspace.newBlock(\"argument_editor_string_number\"):this.workspace.newBlock(\"argument_editor_boolean\");c.setFieldValue(b,\"TEXT\");c.setShadow(!0);this.isInsertionMarker()||(c.initSvg(),c.render(!1))}finally{Blockly.Events.enable()}Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.BlockCreate(c));return c};\nBlockly.ScratchBlocks.ProcedureUtils.updateDeclarationProcCode_=function(){this.procCode_=\"\";this.displayNames_=[];this.argumentIds_=[];for(var a=0;a>>0);goog.uidCounter_=0;goog.getHashCode=goog.getUid;\ngoog.removeHashCode=goog.removeUid;goog.cloneObject=function(a){var b=goog.typeOf(a);if(\"object\"==b||\"array\"==b){if(a.clone)return a.clone();b=\"array\"==b?[]:{};for(var c in a)b[c]=goog.cloneObject(a[c]);return b}return a};goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)};\ngoog.bindJs_=function(a,b,c){if(!a)throw Error();if(2Number(a[1])?!1:b('(()=>{\"use strict\";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')});a(\"es6-impl\",function(){return!0});a(\"es7\",function(){return b(\"2 ** 2 == 4\")});a(\"es8\",function(){return b(\"async () => 1, true\")});a(\"es_next\",function(){return b(\"({...rest} = {}), true\")});\nreturn c},goog.Transpiler.prototype.needsTranspile=function(a){if(\"always\"==goog.TRANSPILE)return!0;if(\"never\"==goog.TRANSPILE)return!1;this.requiresTranspilation_||(this.requiresTranspilation_=this.createRequiresTranspilation_());if(a in this.requiresTranspilation_)return this.requiresTranspilation_[a];throw Error(\"Unknown language mode: \"+a);},goog.Transpiler.prototype.transpile=function(a,b){return goog.transpile_(a,b)},goog.transpiler_=new goog.Transpiler,goog.DebugLoader=function(){this.dependencies_=\n{loadFlags:{},nameToPath:{},requires:{},visited:{},written:{},deferred:{}};this.oldIeWaiting_=!1;this.queuedModules_=[];this.lastNonModuleScriptIndex_=0},goog.DebugLoader.IS_OLD_IE_=!(goog.global.atob||!goog.global.document||!goog.global.document.all),goog.DebugLoader.prototype.earlyProcessLoad=function(a){goog.DebugLoader.IS_OLD_IE_&&this.maybeProcessDeferredDep_(a)},goog.DebugLoader.prototype.load=function(a){var b=this.getPathFromDeps_(a);if(b){var c=[],d={},e=this.dependencies_,f=this,g=function(a){if(!(a in\ne.written||a in e.visited)){e.visited[a]=!0;if(a in e.requires)for(var b in e.requires[a])if(!f.isProvided(b))if(b in e.nameToPath)g(e.nameToPath[b]);else throw Error(\"Undefined nameToPath for \"+b);a in d||(d[a]=!0,c.push(a))}};g(b);for(a=0;a\\x3c/script>')},goog.DebugLoader.prototype.appendScriptSrcNode_=function(a){var b=goog.global.document,c=b.createElement(\"script\");c.type=\"text/javascript\";c.src=a;c.defer=!1;c.async=!1;b.head.appendChild(c)},goog.DebugLoader.prototype.writeScriptTag_=function(a,b){if(this.inHtmlDocument()){var c=goog.global.document;\nif(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&\"complete\"==c.readyState){if(/\\bdeps.js$/.test(a))return!1;throw Error('Cannot write \"'+a+'\" after document load');}void 0===b?goog.DebugLoader.IS_OLD_IE_?(this.oldIeWaiting_=!0,b=\" onreadystatechange='goog.debugLoader_.onScriptLoad_(this, \"+ ++this.lastNonModuleScriptIndex_+\")' \",c.write('');\n\n return svgString;\n};\n","/**\n * @fileOverview Convert 2.0 fonts to 3.0 fonts.\n */\n\n/**\n * Given an SVG, replace Scratch 2.0 fonts with new 3.0 fonts. Add defaults where there are none.\n * @param {SVGElement} svgTag The SVG dom object\n * @return {void}\n */\nconst convertFonts = function (svgTag) {\n // Collect all text elements into a list.\n const textElements = [];\n const collectText = domElement => {\n if (domElement.localName === 'text') {\n textElements.push(domElement);\n }\n for (let i = 0; i < domElement.childNodes.length; i++) {\n collectText(domElement.childNodes[i]);\n }\n };\n collectText(svgTag);\n // If there's an old font-family, switch to the new one.\n for (const textElement of textElements) {\n // If there's no font-family provided, provide one.\n if (!textElement.getAttribute('font-family') ||\n textElement.getAttribute('font-family') === 'Helvetica') {\n textElement.setAttribute('font-family', 'Sans Serif');\n } else if (textElement.getAttribute('font-family') === 'Mystery') {\n textElement.setAttribute('font-family', 'Curly');\n } else if (textElement.getAttribute('font-family') === 'Gloria') {\n textElement.setAttribute('font-family', 'Handwriting');\n } else if (textElement.getAttribute('font-family') === 'Donegal') {\n textElement.setAttribute('font-family', 'Serif');\n }\n }\n};\n\nmodule.exports = convertFonts;\n","/**\n * @fileOverview Import bitmap data into Scratch 3.0, resizing image as necessary.\n */\nconst {FONTS} = require('scratch-render-fonts');\n\n/**\n * Given SVG data, inline the fonts. This allows them to be rendered correctly when set\n * as the source of an HTMLImageElement. Here is a note from tmickel:\n * // Inject fonts that are needed.\n * // It would be nice if there were another way to get the SVG-in-canvas\n * // to render the correct font family, but I couldn't find any other way.\n * // Other things I tried:\n * // Just injecting the font-family into the document: no effect.\n * // External stylesheet linked to by SVG: no effect.\n * // Using a or to link to font-family\n * // injected into the document: no effect.\n * @param {string} svgString The string representation of the svg to modify\n * @return {string} The svg with any needed fonts inlined\n */\nconst inlineSvgFonts = function (svgString) {\n // Make it clear that this function only operates on strings.\n // If we don't explicitly throw this here, the function silently fails.\n if (typeof svgString !== 'string') {\n throw new Error('SVG to be inlined is not a string');\n }\n\n // Collect fonts that need injection.\n const fontsNeeded = new Set();\n const fontRegex = /font-family=\"([^\"]*)\"/g;\n let matches = fontRegex.exec(svgString);\n while (matches) {\n fontsNeeded.add(matches[1]);\n matches = fontRegex.exec(svgString);\n }\n if (fontsNeeded.size > 0) {\n let str = '';\n svgString = svgString.replace(/]*>/, `$&${str}`);\n return svgString;\n }\n return svgString;\n};\n\nmodule.exports = inlineSvgFonts;\n","const SVGRenderer = require('./svg-renderer');\nconst BitmapAdapter = require('./bitmap-adapter');\nconst inlineSvgFonts = require('./font-inliner');\nconst SvgElement = require('./svg-element');\nconst convertFonts = require('./font-converter');\n// /**\n// * Export for NPM & Node.js\n// * @type {RenderWebGL}\n// */\nmodule.exports = {\n BitmapAdapter: BitmapAdapter,\n convertFonts: convertFonts,\n inlineSvgFonts: inlineSvgFonts,\n SvgElement: SvgElement,\n SVGRenderer: SVGRenderer\n};\n","/* Adapted from\n * Paper.js - The Swiss Army Knife of Vector Graphics Scripting.\n * http://paperjs.org/\n *\n * Copyright (c) 2011 - 2016, Juerg Lehni & Jonathan Puckey\n * http://scratchdisk.com/ & http://jonathanpuckey.com/\n *\n * Distributed under the MIT license. See LICENSE file for details.\n *\n * All rights reserved.\n */\n\n/**\n * @name SvgElement\n * @namespace\n * @private\n */\nclass SvgElement {\n // SVG related namespaces\n static get svg () {\n return 'http://www.w3.org/2000/svg';\n }\n static get xmlns () {\n return 'http://www.w3.org/2000/xmlns';\n }\n static get xlink () {\n return 'http://www.w3.org/1999/xlink';\n }\n\n // Mapping of attribute names to required namespaces:\n static attributeNamespace () {\n return {\n 'href': SvgElement.xlink,\n 'xlink': SvgElement.xmlns,\n // Only the xmlns attribute needs the trailing slash. See #984\n 'xmlns': `${SvgElement.xmlns}/`,\n // IE needs the xmlns namespace when setting 'xmlns:xlink'. See #984\n 'xmlns:xlink': `${SvgElement.xmlns}/`\n };\n }\n\n static create (tag, attributes, formatter) {\n return SvgElement.set(document.createElementNS(SvgElement.svg, tag), attributes, formatter);\n }\n\n static get (node, name) {\n const namespace = SvgElement.attributeNamespace[name];\n const value = namespace ?\n node.getAttributeNS(namespace, name) :\n node.getAttribute(name);\n return value === 'null' ? null : value;\n }\n\n static set (node, attributes, formatter) {\n for (const name in attributes) {\n let value = attributes[name];\n const namespace = SvgElement.attributeNamespace[name];\n if (typeof value === 'number' && formatter) {\n value = formatter.number(value);\n }\n if (namespace) {\n node.setAttributeNS(namespace, name, value);\n } else {\n node.setAttribute(name, value);\n }\n }\n return node;\n }\n}\n\nmodule.exports = SvgElement;\n","const DOMPurify = require('dompurify');\nconst inlineSvgFonts = require('./font-inliner');\nconst SvgElement = require('./svg-element');\nconst convertFonts = require('./font-converter');\nconst fixupSvgString = require('./fixup-svg-string');\nconst transformStrokeWidths = require('./transform-applier');\n\n/**\n * Main quirks-mode SVG rendering code.\n */\nclass SvgRenderer {\n /**\n * Create a quirks-mode SVG renderer for a particular canvas.\n * @param {HTMLCanvasElement} [canvas] An optional canvas element to draw to. If this is not provided, the renderer\n * will create a new canvas.\n * @constructor\n */\n constructor (canvas) {\n this._canvas = canvas || document.createElement('canvas');\n this._context = this._canvas.getContext('2d');\n this._measurements = {x: 0, y: 0, width: 0, height: 0};\n this._cachedImage = null;\n this.loaded = false;\n }\n\n /**\n * @returns {!HTMLCanvasElement} this renderer's target canvas.\n */\n get canvas () {\n return this._canvas;\n }\n\n /**\n * Load an SVG from a string and draw it.\n * This will be parsed and transformed, and finally drawn.\n * When drawing is finished, the `onFinish` callback is called.\n * @param {string} svgString String of SVG data to draw in quirks-mode.\n * @param {number} [scale] - Optionally, also scale the image by this factor.\n * @param {Function} [onFinish] Optional callback for when drawing finished.\n * @deprecated Use the `loadSVG` method and public `draw` method instead.\n */\n fromString (svgString, scale, onFinish) {\n this.loadSVG(svgString, false, () => {\n this.draw(scale);\n if (onFinish) onFinish();\n });\n }\n\n /**\n * Load an SVG from a string and measure it.\n * @param {string} svgString String of SVG data to draw in quirks-mode.\n * @return {object} the natural size, in Scratch units, of this SVG.\n */\n measure (svgString) {\n this.loadString(svgString);\n return this._measurements;\n }\n\n /**\n * @return {Array} the natural size, in Scratch units, of this SVG.\n */\n get size () {\n return [this._measurements.width, this._measurements.height];\n }\n\n /**\n * @return {Array} the offset (upper left corner) of the SVG's view box.\n */\n get viewOffset () {\n return [this._measurements.x, this._measurements.y];\n }\n\n /**\n * Load an SVG string and normalize it. All the steps before drawing/measuring.\n * @param {!string} svgString String of SVG data to draw in quirks-mode.\n * @param {?boolean} fromVersion2 True if we should perform conversion from\n * version 2 to version 3 svg.\n */\n loadString (svgString, fromVersion2) {\n // New svg string invalidates the cached image\n this._cachedImage = null;\n\n // Parse string into SVG XML.\n const parser = new DOMParser();\n svgString = fixupSvgString(svgString);\n this._svgDom = parser.parseFromString(svgString, 'text/xml');\n if (this._svgDom.childNodes.length < 1 ||\n this._svgDom.documentElement.localName !== 'svg') {\n throw new Error('Document does not appear to be SVG.');\n }\n this._svgTag = this._svgDom.documentElement;\n if (fromVersion2) {\n // Fix gradients. Scratch 2 exports no x2 when x2 = 0, but\n // SVG default is that x2 is 1. This must be done before\n // transformStrokeWidths since transformStrokeWidths affects\n // gradients.\n this._transformGradients();\n }\n transformStrokeWidths(this._svgTag, window);\n this._transformImages(this._svgTag);\n if (fromVersion2) {\n // Transform all text elements.\n this._transformText();\n // Transform measurements.\n this._transformMeasurements();\n // Fix stroke roundedness.\n this._setGradientStrokeRoundedness();\n } else if (!this._svgTag.getAttribute('viewBox')) {\n // Renderer expects a view box.\n this._transformMeasurements();\n } else if (!this._svgTag.getAttribute('width') || !this._svgTag.getAttribute('height')) {\n this._svgTag.setAttribute('width', this._svgTag.viewBox.baseVal.width);\n this._svgTag.setAttribute('height', this._svgTag.viewBox.baseVal.height);\n }\n this._measurements = {\n width: this._svgTag.viewBox.baseVal.width,\n height: this._svgTag.viewBox.baseVal.height,\n x: this._svgTag.viewBox.baseVal.x,\n y: this._svgTag.viewBox.baseVal.y\n };\n }\n\n /**\n * Load an SVG string, normalize it, and prepare it for (synchronous) rendering.\n * @param {!string} svgString String of SVG data to draw in quirks-mode.\n * @param {?boolean} fromVersion2 True if we should perform conversion from version 2 to version 3 svg.\n * @param {Function} [onFinish] - An optional callback to call when the SVG is loaded and can be rendered.\n */\n loadSVG (svgString, fromVersion2, onFinish) {\n this.loadString(svgString, fromVersion2);\n this._createSVGImage(onFinish);\n }\n\n /**\n * Creates an element for the currently loaded SVG string, then calls the callback once it's loaded.\n * @param {Function} [onFinish] - An optional callback to call when the has loaded.\n */\n _createSVGImage (onFinish) {\n if (this._cachedImage === null) this._cachedImage = new Image();\n const img = this._cachedImage;\n\n img.onload = () => {\n this.loaded = true;\n if (onFinish) onFinish();\n };\n const svgText = this.toString(true /* shouldInjectFonts */);\n img.src = `data:image/svg+xml;utf8,${encodeURIComponent(svgText)}`;\n this.loaded = false;\n }\n\n /**\n * Transforms an SVG's text elements for Scratch 2.0 quirks.\n * These quirks include:\n * 1. `x` and `y` properties are removed/ignored.\n * 2. Alignment is set to `text-before-edge`.\n * 3. Line-breaks are converted to explicit elements.\n * 4. Any required fonts are injected.\n */\n _transformText () {\n // Collect all text elements into a list.\n const textElements = [];\n const collectText = domElement => {\n if (domElement.localName === 'text') {\n textElements.push(domElement);\n }\n for (let i = 0; i < domElement.childNodes.length; i++) {\n collectText(domElement.childNodes[i]);\n }\n };\n collectText(this._svgTag);\n convertFonts(this._svgTag);\n // For each text element, apply quirks.\n for (const textElement of textElements) {\n // Remove x and y attributes - they are not used in Scratch.\n textElement.removeAttribute('x');\n textElement.removeAttribute('y');\n // Set text-before-edge alignment:\n // Scratch renders all text like this.\n textElement.setAttribute('alignment-baseline', 'text-before-edge');\n textElement.setAttribute('xml:space', 'preserve');\n // If there's no font size provided, provide one.\n if (!textElement.getAttribute('font-size')) {\n textElement.setAttribute('font-size', '18');\n }\n let text = textElement.textContent;\n\n // Fix line breaks in text, which are not natively supported by SVG.\n // Only fix if text does not have child tspans.\n // @todo this will not work for font sizes with units such as em, percent\n // However, text made in scratch 2 should only ever export size 22 font.\n const fontSize = parseFloat(textElement.getAttribute('font-size'));\n const tx = 2;\n let ty = 0;\n let spacing = 1.2;\n // Try to match the position and spacing of Scratch 2.0's fonts.\n // Different fonts seem to use different line spacing.\n // Scratch 2 always uses alignment-baseline=text-before-edge\n // However, most SVG readers don't support this attribute\n // or don't support it alongside use of tspan, so the translations\n // here are to make up for that.\n if (textElement.getAttribute('font-family') === 'Handwriting') {\n spacing = 2;\n ty = -11 * fontSize / 22;\n } else if (textElement.getAttribute('font-family') === 'Scratch') {\n spacing = 0.89;\n ty = -3 * fontSize / 22;\n } else if (textElement.getAttribute('font-family') === 'Curly') {\n spacing = 1.38;\n ty = -6 * fontSize / 22;\n } else if (textElement.getAttribute('font-family') === 'Marker') {\n spacing = 1.45;\n ty = -6 * fontSize / 22;\n } else if (textElement.getAttribute('font-family') === 'Sans Serif') {\n spacing = 1.13;\n ty = -3 * fontSize / 22;\n } else if (textElement.getAttribute('font-family') === 'Serif') {\n spacing = 1.25;\n ty = -4 * fontSize / 22;\n }\n\n if (textElement.transform.baseVal.numberOfItems === 0) {\n const transform = this._svgTag.createSVGTransform();\n textElement.transform.baseVal.appendItem(transform);\n }\n\n // Right multiply matrix by a translation of (tx, ty)\n const mtx = textElement.transform.baseVal.getItem(0).matrix;\n mtx.e += (mtx.a * tx) + (mtx.c * ty);\n mtx.f += (mtx.b * tx) + (mtx.d * ty);\n\n if (text && textElement.childElementCount === 0) {\n textElement.textContent = '';\n const lines = text.split('\\n');\n text = '';\n for (const line of lines) {\n const tspanNode = SvgElement.create('tspan');\n tspanNode.setAttribute('x', '0');\n tspanNode.setAttribute('style', 'white-space: pre');\n tspanNode.setAttribute('dy', `${spacing}em`);\n tspanNode.textContent = line ? line : ' ';\n textElement.appendChild(tspanNode);\n }\n }\n }\n }\n\n /**\n * @param {string} [tagName] svg tag to search for (or collect all elements if not given)\n * @return {Array} a list of elements with the given tagname in _svgTag\n */\n _collectElements (tagName) {\n const elts = [];\n const collectElements = domElement => {\n if ((domElement.localName === tagName || typeof tagName === 'undefined') && domElement.getAttribute) {\n elts.push(domElement);\n }\n for (let i = 0; i < domElement.childNodes.length; i++) {\n collectElements(domElement.childNodes[i]);\n }\n };\n collectElements(this._svgTag);\n return elts;\n }\n\n /**\n * Fix SVGs to comply with SVG spec. Scratch 2 defaults to x2 = 0 when x2 is missing, but\n * SVG defaults to x2 = 1 when missing.\n */\n _transformGradients () {\n const linearGradientElements = this._collectElements('linearGradient');\n\n // For each gradient element, supply x2 if necessary.\n for (const gradientElement of linearGradientElements) {\n if (!gradientElement.getAttribute('x2')) {\n gradientElement.setAttribute('x2', '0');\n }\n }\n }\n\n /**\n * Fix SVGs to match appearance in Scratch 2, which used nearest neighbor scaling for bitmaps\n * within SVGs.\n */\n _transformImages () {\n const imageElements = this._collectElements('image');\n\n // For each image element, set image rendering to pixelated\n const pixelatedImages = 'image-rendering: optimizespeed; image-rendering: pixelated;';\n for (const elt of imageElements) {\n if (elt.getAttribute('style')) {\n elt.setAttribute('style',\n `${pixelatedImages} ${elt.getAttribute('style')}`);\n } else {\n elt.setAttribute('style', pixelatedImages);\n }\n }\n }\n\n /**\n * Find the largest stroke width in the svg. If a shape has no\n * `stroke` property, it has a stroke-width of 0. If it has a `stroke`,\n * it is by default a stroke-width of 1.\n * This is used to enlarge the computed bounding box, which doesn't take\n * stroke width into account.\n * @param {SVGSVGElement} rootNode The root SVG node to traverse.\n * @return {number} The largest stroke width in the SVG.\n */\n _findLargestStrokeWidth (rootNode) {\n let largestStrokeWidth = 0;\n const collectStrokeWidths = domElement => {\n if (domElement.getAttribute) {\n if (domElement.getAttribute('stroke')) {\n largestStrokeWidth = Math.max(largestStrokeWidth, 1);\n }\n if (domElement.getAttribute('stroke-width')) {\n largestStrokeWidth = Math.max(\n largestStrokeWidth,\n Number(domElement.getAttribute('stroke-width')) || 0\n );\n }\n }\n for (let i = 0; i < domElement.childNodes.length; i++) {\n collectStrokeWidths(domElement.childNodes[i]);\n }\n };\n collectStrokeWidths(rootNode);\n return largestStrokeWidth;\n }\n\n /**\n * Find all instances of a URL-referenced `stroke` in the svg. In 2.0, all gradient strokes\n * have a round `stroke-linejoin` and `stroke-linecap`... for some reason.\n */\n _setGradientStrokeRoundedness () {\n const elements = this._collectElements();\n\n for (const elt of elements) {\n if (!elt.style) continue;\n const stroke = elt.style.stroke || elt.getAttribute('stroke');\n if (stroke && stroke.match(/^url\\(#.*\\)$/)) {\n elt.style['stroke-linejoin'] = 'round';\n elt.style['stroke-linecap'] = 'round';\n }\n }\n }\n\n /**\n * Transform the measurements of the SVG.\n * In Scratch 2.0, SVGs are drawn without respect to the width,\n * height, and viewBox attribute on the tag. The exporter\n * does output these properties - but they appear to be incorrect often.\n * To address the incorrect measurements, we append the DOM to the\n * document, and then use SVG's native `getBBox` to find the real\n * drawn dimensions. This ensures things drawn in negative dimensions,\n * outside the given viewBox, etc., are all eventually drawn to the canvas.\n * I tried to do this several other ways: stripping the width/height/viewBox\n * attributes and then drawing (Firefox won't draw anything),\n * or inflating them and then measuring a canvas. But this seems to be\n * a natural and performant way.\n */\n _transformMeasurements () {\n // Append the SVG dom to the document.\n // This allows us to use `getBBox` on the page,\n // which returns the full bounding-box of all drawn SVG\n // elements, similar to how Scratch 2.0 did measurement.\n const svgSpot = document.createElement('span');\n // Since we're adding user-provided SVG to document.body,\n // sanitizing is required. This should not affect bounding box calculation.\n // outerHTML is attribute of Element (and not HTMLElement), so use it instead of\n // calling serializer or toString()\n // NOTE: this._svgTag remains untouched!\n const rawValue = this._svgTag.outerHTML;\n const sanitizedValue = DOMPurify.sanitize(rawValue, {\n // Use SVG profile (no HTML elements)\n USE_PROFILES: {svg: true},\n // Remove some tags that Scratch does not use.\n FORBID_TAGS: ['a', 'audio', 'canvas', 'video'],\n // Allow data URI in image tags (e.g. SVGs converted from bitmap)\n ADD_DATA_URI_TAGS: ['image']\n });\n let bbox;\n try {\n // Insert sanitized value.\n svgSpot.innerHTML = sanitizedValue;\n document.body.appendChild(svgSpot);\n // Take the bounding box. We have to get elements via svgSpot\n // because we added it via innerHTML.\n bbox = svgSpot.children[0].getBBox();\n } finally {\n // Always destroy the element, even if, for example, getBBox throws.\n document.body.removeChild(svgSpot);\n }\n\n // Enlarge the bbox from the largest found stroke width\n // This may have false-positives, but at least the bbox will always\n // contain the full graphic including strokes.\n // If the width or height is zero however, don't enlarge since\n // they won't have a stroke width that needs to be enlarged.\n let halfStrokeWidth;\n if (bbox.width === 0 || bbox.height === 0) {\n halfStrokeWidth = 0;\n } else {\n halfStrokeWidth = this._findLargestStrokeWidth(this._svgTag) / 2;\n }\n const width = bbox.width + (halfStrokeWidth * 2);\n const height = bbox.height + (halfStrokeWidth * 2);\n const x = bbox.x - halfStrokeWidth;\n const y = bbox.y - halfStrokeWidth;\n\n // Set the correct measurements on the SVG tag\n this._svgTag.setAttribute('width', width);\n this._svgTag.setAttribute('height', height);\n this._svgTag.setAttribute('viewBox',\n `${x} ${y} ${width} ${height}`);\n }\n\n /**\n * Serialize the active SVG DOM to a string.\n * @param {?boolean} shouldInjectFonts True if fonts should be included in the SVG as\n * base64 data.\n * @returns {string} String representing current SVG data.\n */\n toString (shouldInjectFonts) {\n const serializer = new XMLSerializer();\n let string = serializer.serializeToString(this._svgDom);\n if (shouldInjectFonts) {\n string = inlineSvgFonts(string);\n }\n return string;\n }\n\n /**\n * Synchronously draw the loaded SVG to this renderer's `canvas`.\n * @param {number} [scale] - Optionally, also scale the image by this factor.\n */\n draw (scale) {\n if (!this.loaded) throw new Error('SVG image has not finished loading');\n this._drawFromImage(scale);\n }\n\n /**\n * Asynchronously draw the (possibly non-loaded) SVG to a canvas.\n * @param {number} [scale] - Optionally, also scale the image by this factor.\n * @param {Function} [onFinish] - An optional callback to call when the draw operation is complete.\n * @deprecated Use the `loadSVG` and public `draw` method instead.\n */\n _draw (scale, onFinish) {\n // Convert the SVG text to an Image, and then draw it to the canvas.\n if (this._cachedImage === null) {\n this._createSVGImage(() => {\n this._drawFromImage(scale);\n onFinish();\n });\n } else {\n this._drawFromImage(scale);\n onFinish();\n }\n }\n\n /**\n * Draw to the canvas from a loaded image element.\n * @param {number} [scale] - Optionally, also scale the image by this factor.\n **/\n _drawFromImage (scale) {\n if (this._cachedImage === null) return;\n\n const ratio = Number.isFinite(scale) ? scale : 1;\n const bbox = this._measurements;\n this._canvas.width = bbox.width * ratio;\n this._canvas.height = bbox.height * ratio;\n // Even if the canvas at the current scale has a nonzero size, the image's dimensions are floored pre-scaling.\n // e.g. if an image has a width of 0.4 and is being rendered at 3x scale, the canvas will have a width of 1, but\n // the image's width will be rounded down to 0 on some browsers (Firefox) prior to being drawn at that scale.\n if (\n this._canvas.width <= 0 ||\n this._canvas.height <= 0 ||\n this._cachedImage.naturalWidth <= 0 ||\n this._cachedImage.naturalHeight <= 0\n ) return;\n this._context.clearRect(0, 0, this._canvas.width, this._canvas.height);\n this._context.scale(ratio, ratio);\n this._context.drawImage(this._cachedImage, 0, 0);\n // Reset the canvas transform after drawing.\n this._context.setTransform(1, 0, 0, 1, 0, 0);\n // Set the CSS style of the canvas to the actual measurements.\n this._canvas.style.width = bbox.width;\n this._canvas.style.height = bbox.height;\n }\n}\n\nmodule.exports = SvgRenderer;\n","const Matrix = require('transformation-matrix');\nconst SvgElement = require('./svg-element');\nconst log = require('./util/log');\n\n/**\n * @fileOverview Apply transforms to match stroke width appearance in 2.0 and 3.0\n */\n\n// Adapted from paper.js's Path.applyTransform\nconst _parseTransform = function (domElement) {\n let matrix = Matrix.identity();\n const string = domElement.attributes && domElement.attributes.transform && domElement.attributes.transform.value;\n if (!string) return matrix;\n // https://www.w3.org/TR/SVG/types.html#DataTypeTransformList\n // Parse SVG transform string. First we split at /)\\s*/, to separate\n // commands\n const transforms = string.split(/\\)\\s*/g);\n for (const transform of transforms) {\n if (!transform) break;\n // Command come before the '(', values after\n const parts = transform.split(/\\(\\s*/);\n const command = parts[0].trim();\n const v = parts[1].split(/[\\s,]+/g);\n // Convert values to floats\n for (let j = 0; j < v.length; j++) {\n v[j] = parseFloat(v[j]);\n }\n switch (command) {\n case 'matrix':\n matrix = Matrix.compose(matrix, {a: v[0], b: v[1], c: v[2], d: v[3], e: v[4], f: v[5]});\n break;\n case 'rotate':\n matrix = Matrix.compose(matrix, Matrix.rotateDEG(v[0], v[1] || 0, v[2] || 0));\n break;\n case 'translate':\n matrix = Matrix.compose(matrix, Matrix.translate(v[0], v[1] || 0));\n break;\n case 'scale':\n matrix = Matrix.compose(matrix, Matrix.scale(v[0], v[1] || v[0]));\n break;\n case 'skewX':\n matrix = Matrix.compose(matrix, Matrix.skewDEG(v[0], 0));\n break;\n case 'skewY':\n matrix = Matrix.compose(matrix, Matrix.skewDEG(0, v[0]));\n break;\n default:\n log.error(`Couldn't parse: ${command}`);\n }\n }\n return matrix;\n};\n\n// Adapted from paper.js's Matrix.decompose\n// Given a matrix, return the x and y scale factors of the matrix\nconst _getScaleFactor = function (matrix) {\n const a = matrix.a;\n const b = matrix.b;\n const c = matrix.c;\n const d = matrix.d;\n const det = (a * d) - (b * c);\n\n if (a !== 0 || b !== 0) {\n const r = Math.sqrt((a * a) + (b * b));\n return {x: r, y: det / r};\n }\n if (c !== 0 || d !== 0) {\n const s = Math.sqrt((c * c) + (d * d));\n return {x: det / s, y: s};\n }\n // a = b = c = d = 0\n return {x: 0, y: 0};\n};\n\n// Returns null if matrix is not invertible. Otherwise returns given ellipse\n// transformed by transform, an object {radiusX, radiusY, rotation}.\nconst _calculateTransformedEllipse = function (radiusX, radiusY, theta, transform) {\n theta = -theta * Math.PI / 180;\n const a = transform.a;\n const b = -transform.c;\n const c = -transform.b;\n const d = transform.d;\n // Since other parameters determine the translation of the ellipse in SVG, we do not need to worry\n // about what e and f are.\n const det = (a * d) - (b * c);\n // Non-invertible matrix\n if (det === 0) return null;\n\n // rotA, rotB, and rotC represent Ax^2 + Bxy + Cy^2 = 1 coefficients for a rotated ellipse formula\n const sinT = Math.sin(theta);\n const cosT = Math.cos(theta);\n const sin2T = Math.sin(2 * theta);\n const rotA = (cosT * cosT / radiusX / radiusX) + (sinT * sinT / radiusY / radiusY);\n const rotB = (sin2T / radiusX / radiusX) - (sin2T / radiusY / radiusY);\n const rotC = (sinT * sinT / radiusX / radiusX) + (cosT * cosT / radiusY / radiusY);\n\n // Calculate the ellipse formula of the transformed ellipse\n // A, B, and C represent Ax^2 + Bxy + Cy^2 = 1 / det / det coefficients in a transformed ellipse formula\n // scaled by inverse det squared (to preserve accuracy)\n const A = ((rotA * d * d) - (rotB * d * c) + (rotC * c * c));\n const B = ((-2 * rotA * b * d) + (rotB * a * d) + (rotB * b * c) - (2 * rotC * a * c));\n const C = ((rotA * b * b) - (rotB * a * b) + (rotC * a * a));\n\n // Derive new radii and theta from the transformed ellipse formula\n const newRadiusXOverDet = Math.sqrt(2) *\n Math.sqrt(\n (A + C - Math.sqrt((A * A) + (B * B) - (2 * A * C) + (C * C))) /\n ((-B * B) + (4 * A * C))\n );\n const newRadiusYOverDet = 1 / Math.sqrt(A + C - (1 / newRadiusXOverDet / newRadiusXOverDet));\n let temp = (A - (1 / newRadiusXOverDet / newRadiusXOverDet)) /\n ((1 / newRadiusYOverDet / newRadiusYOverDet) - (1 / newRadiusXOverDet / newRadiusXOverDet));\n if (temp < 0 && Math.abs(temp) < 1e-8) temp = 0; // Fix floating point issue\n temp = Math.sqrt(temp);\n if (Math.abs(1 - temp) < 1e-8) temp = 1; // Fix floating point issue\n // Solve for which of the two possible thetas is correct\n let newTheta = Math.asin(temp);\n temp = (B / (\n (1 / newRadiusXOverDet / newRadiusXOverDet) -\n (1 / newRadiusYOverDet / newRadiusYOverDet)));\n const newTheta2 = -newTheta;\n if (Math.abs(Math.sin(2 * newTheta2) - temp) <\n Math.abs(Math.sin(2 * newTheta) - temp)) {\n newTheta = newTheta2;\n }\n\n return {\n radiusX: newRadiusXOverDet * det,\n radiusY: newRadiusYOverDet * det,\n rotation: -newTheta * 180 / Math.PI\n };\n};\n\n// Adapted from paper.js's PathItem.setPathData\nconst _transformPath = function (pathString, transform) {\n if (!transform || Matrix.toString(transform) === Matrix.toString(Matrix.identity())) return pathString;\n // First split the path data into parts of command-coordinates pairs\n // Commands are any of these characters: mzlhvcsqta\n const parts = pathString && pathString.match(/[mlhvcsqtaz][^mlhvcsqtaz]*/ig);\n let coords;\n let relative = false;\n let previous;\n let control;\n let current = {x: 0, y: 0};\n let start = {x: 0, y: 0};\n let result = '';\n\n const getCoord = function (index, coord) {\n let val = +coords[index];\n if (relative) {\n val += current[coord];\n }\n return val;\n };\n\n const getPoint = function (index) {\n return {x: getCoord(index, 'x'), y: getCoord(index + 1, 'y')};\n };\n\n const roundTo4Places = function (num) {\n return Number(num.toFixed(4));\n };\n\n // Returns the transformed point as a string\n const getString = function (point) {\n const transformed = Matrix.applyToPoint(transform, point);\n return `${roundTo4Places(transformed.x)} ${roundTo4Places(transformed.y)} `;\n };\n\n for (let i = 0, l = parts && parts.length; i < l; i++) {\n const part = parts[i];\n const command = part[0];\n const lower = command.toLowerCase();\n // Match all coordinate values\n coords = part.match(/[+-]?(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][+-]?\\d+)?/g);\n const length = coords && coords.length;\n relative = command === lower;\n // Fix issues with z in the middle of SVG path data, not followed by\n // a m command, see paper.js#413:\n if (previous === 'z' && !/[mz]/.test(lower)) {\n result += `M ${current.x} ${current.y} `;\n }\n switch (lower) {\n case 'm': // Move to\n case 'l': // Line to\n {\n let move = lower === 'm';\n for (let j = 0; j < length; j += 2) {\n result += move ? 'M ' : 'L ';\n current = getPoint(j);\n result += getString(current);\n if (move) {\n start = current;\n move = false;\n }\n }\n control = current;\n break;\n }\n case 'h': // Horizontal line\n case 'v': // Vertical line\n {\n const coord = lower === 'h' ? 'x' : 'y';\n current = {x: current.x, y: current.y}; // Clone as we're going to modify it.\n for (let j = 0; j < length; j++) {\n current[coord] = getCoord(j, coord);\n result += `L ${getString(current)}`;\n }\n control = current;\n break;\n }\n case 'c':\n // Cubic Bezier curve\n for (let j = 0; j < length; j += 6) {\n const handle1 = getPoint(j);\n control = getPoint(j + 2);\n current = getPoint(j + 4);\n result += `C ${getString(handle1)}${getString(control)}${getString(current)}`;\n }\n break;\n case 's':\n // Smooth cubic Bezier curve\n for (let j = 0; j < length; j += 4) {\n const handle1 = /[cs]/.test(previous) ?\n {x: (current.x * 2) - control.x, y: (current.y * 2) - control.y} :\n current;\n control = getPoint(j);\n current = getPoint(j + 2);\n\n result += `C ${getString(handle1)}${getString(control)}${getString(current)}`;\n previous = lower;\n }\n break;\n case 'q':\n // Quadratic Bezier curve\n for (let j = 0; j < length; j += 4) {\n control = getPoint(j);\n current = getPoint(j + 2);\n result += `Q ${getString(control)}${getString(current)}`;\n }\n break;\n case 't':\n // Smooth quadratic Bezier curve\n for (let j = 0; j < length; j += 2) {\n control = /[qt]/.test(previous) ?\n {x: (current.x * 2) - control.x, y: (current.y * 2) - control.y} :\n current;\n current = getPoint(j);\n\n result += `Q ${getString(control)}${getString(current)}`;\n previous = lower;\n }\n break;\n case 'a':\n // Elliptical arc curve\n for (let j = 0; j < length; j += 7) {\n current = getPoint(j + 5);\n const rx = +coords[j];\n const ry = +coords[j + 1];\n const rotation = +coords[j + 2];\n const largeArcFlag = +coords[j + 3];\n let clockwiseFlag = +coords[j + 4];\n const newEllipse = _calculateTransformedEllipse(rx, ry, rotation, transform);\n const matrixScale = _getScaleFactor(transform);\n if (newEllipse) {\n if ((matrixScale.x > 0 && matrixScale.y < 0) ||\n (matrixScale.x < 0 && matrixScale.y > 0)) {\n clockwiseFlag = clockwiseFlag ^ 1;\n }\n result += `A ${roundTo4Places(Math.abs(newEllipse.radiusX))} ` +\n `${roundTo4Places(Math.abs(newEllipse.radiusY))} ` +\n `${roundTo4Places(newEllipse.rotation)} ${largeArcFlag} ` +\n `${clockwiseFlag} ${getString(current)}`;\n } else {\n result += `L ${getString(current)}`;\n }\n }\n break;\n case 'z':\n // Close path\n result += `Z `;\n // Correctly handle relative m commands, see paper.js#1101:\n current = start;\n break;\n }\n previous = lower;\n }\n return result;\n};\n\nconst GRAPHICS_ELEMENTS = ['circle', 'ellipse', 'image', 'line', 'path', 'polygon', 'polyline', 'rect', 'text', 'use'];\nconst CONTAINER_ELEMENTS = ['a', 'defs', 'g', 'marker', 'glyph', 'missing-glyph', 'pattern', 'svg', 'switch', 'symbol'];\nconst _isContainerElement = function (element) {\n return element.tagName && CONTAINER_ELEMENTS.includes(element.tagName.toLowerCase());\n};\nconst _isGraphicsElement = function (element) {\n return element.tagName && GRAPHICS_ELEMENTS.includes(element.tagName.toLowerCase());\n};\nconst _isPathWithTransformAndStroke = function (element, strokeWidth) {\n if (!element.attributes) return false;\n strokeWidth = element.attributes['stroke-width'] ?\n Number(element.attributes['stroke-width'].value) : Number(strokeWidth);\n return strokeWidth &&\n element.tagName && element.tagName.toLowerCase() === 'path' &&\n element.attributes.d && element.attributes.d.value;\n};\nconst _quadraticMean = function (a, b) {\n return Math.sqrt(((a * a) + (b * b)) / 2);\n};\n\nconst _createGradient = function (gradientId, svgTag, bbox, matrix) {\n // Adapted from Paper.js's SvgImport.getValue\n const getValue = function (node, name, isString, allowNull, allowPercent, defaultValue) {\n // Interpret value as number. Never return NaN, but 0 instead.\n // If the value is a sequence of numbers, parseFloat will\n // return the first occurring number, which is enough for now.\n let value = SvgElement.get(node, name);\n let res;\n if (value === null) {\n if (defaultValue) {\n res = defaultValue;\n if (/%\\s*$/.test(res)) {\n value = defaultValue;\n res = parseFloat(value);\n }\n } else if (allowNull) {\n res = null;\n } else if (isString) {\n res = '';\n } else {\n res = 0;\n }\n } else if (isString) {\n res = value;\n } else {\n res = parseFloat(value);\n }\n // Support for dimensions in percentage of the root size. If root-size\n // is not set (e.g. during ), just scale the percentage value to\n // 0..1, as required by gradients with gradientUnits=\"objectBoundingBox\"\n if (/%\\s*$/.test(value)) {\n const size = allowPercent ? 1 : bbox[/x|^width/.test(name) ? 'width' : 'height'];\n return res / 100 * size;\n }\n return res;\n };\n const getPoint = function (node, x, y, allowNull, allowPercent, defaultX, defaultY) {\n x = getValue(node, x || 'x', false, allowNull, allowPercent, defaultX);\n y = getValue(node, y || 'y', false, allowNull, allowPercent, defaultY);\n return allowNull && (x === null || y === null) ? null : {x, y};\n };\n\n let defs = svgTag.getElementsByTagName('defs');\n if (defs.length === 0) {\n defs = SvgElement.create('defs');\n svgTag.appendChild(defs);\n } else {\n defs = defs[0];\n }\n\n // Clone the old gradient. We'll make a new one, since the gradient might be reused elsewhere\n // with different transform matrix\n const oldGradient = svgTag.getElementById(gradientId);\n if (!oldGradient) return;\n\n const radial = oldGradient.tagName.toLowerCase() === 'radialgradient';\n const newGradient = svgTag.getElementById(gradientId).cloneNode(true /* deep */);\n\n // Give the new gradient a new ID\n let matrixString = Matrix.toString(matrix);\n matrixString = matrixString.substring(8, matrixString.length - 1);\n const newGradientId = `${gradientId}-${matrixString}`;\n newGradient.setAttribute('id', newGradientId);\n\n // This gradient already exists and was transformed before. Just reuse the already-transformed one.\n if (svgTag.getElementById(newGradientId)) {\n // This is the same code as in the end of the function, but I don't feel like wrapping the next 80 lines\n // in an `if (!svgTag.getElementById(newGradientId))` block\n return `url(#${newGradientId})`;\n }\n\n const scaleToBounds = getValue(newGradient, 'gradientUnits', true) !==\n 'userSpaceOnUse';\n let origin;\n let destination;\n let radius;\n let focal;\n if (radial) {\n origin = getPoint(newGradient, 'cx', 'cy', false, scaleToBounds, '50%', '50%');\n radius = getValue(newGradient, 'r', false, false, scaleToBounds, '50%');\n focal = getPoint(newGradient, 'fx', 'fy', true, scaleToBounds);\n } else {\n origin = getPoint(newGradient, 'x1', 'y1', false, scaleToBounds);\n destination = getPoint(newGradient, 'x2', 'y2', false, scaleToBounds, '1');\n if (origin.x === destination.x && origin.y === destination.y) {\n // If it's degenerate, use the color of the last stop, as described by\n // https://www.w3.org/TR/SVG/pservers.html#LinearGradientNotes\n const stops = newGradient.getElementsByTagName('stop');\n if (!stops.length || !stops[stops.length - 1].attributes ||\n !stops[stops.length - 1].attributes['stop-color']) {\n return null;\n }\n return stops[stops.length - 1].attributes['stop-color'].value;\n }\n }\n\n // Transform points\n // Emulate SVG's gradientUnits=\"objectBoundingBox\"\n if (scaleToBounds) {\n const boundsMatrix = Matrix.compose(Matrix.translate(bbox.x, bbox.y), Matrix.scale(bbox.width, bbox.height));\n origin = Matrix.applyToPoint(boundsMatrix, origin);\n if (destination) destination = Matrix.applyToPoint(boundsMatrix, destination);\n if (radius) {\n radius = _quadraticMean(bbox.width, bbox.height) * radius;\n }\n if (focal) focal = Matrix.applyToPoint(boundsMatrix, focal);\n }\n\n if (radial) {\n origin = Matrix.applyToPoint(matrix, origin);\n const matrixScale = _getScaleFactor(matrix);\n radius = _quadraticMean(matrixScale.x, matrixScale.y) * radius;\n if (focal) focal = Matrix.applyToPoint(matrix, focal);\n } else {\n const dot = (a, b) => (a.x * b.x) + (a.y * b.y);\n const multiply = (coefficient, v) => ({x: coefficient * v.x, y: coefficient * v.y});\n const add = (a, b) => ({x: a.x + b.x, y: a.y + b.y});\n const subtract = (a, b) => ({x: a.x - b.x, y: a.y - b.y});\n\n // The line through origin and gradientPerpendicular is the line at which the gradient starts\n let gradientPerpendicular = Math.abs(origin.x - destination.x) < 1e-8 ?\n add(origin, {x: 1, y: (origin.x - destination.x) / (destination.y - origin.y)}) :\n add(origin, {x: (destination.y - origin.y) / (origin.x - destination.x), y: 1});\n\n // Transform points\n gradientPerpendicular = Matrix.applyToPoint(matrix, gradientPerpendicular);\n origin = Matrix.applyToPoint(matrix, origin);\n destination = Matrix.applyToPoint(matrix, destination);\n\n // Calculate the direction that the gradient has changed to\n const originToPerpendicular = subtract(gradientPerpendicular, origin);\n const originToDestination = subtract(destination, origin);\n const gradientDirection = Math.abs(originToPerpendicular.x) < 1e-8 ?\n {x: 1, y: -originToPerpendicular.x / originToPerpendicular.y} :\n {x: -originToPerpendicular.y / originToPerpendicular.x, y: 1};\n\n // Set the destination so that the gradient moves in the correct direction, by projecting the destination vector\n // onto the gradient direction vector\n const projectionCoeff = dot(originToDestination, gradientDirection) / dot(gradientDirection, gradientDirection);\n const projection = multiply(projectionCoeff, gradientDirection);\n destination = {x: origin.x + projection.x, y: origin.y + projection.y};\n }\n\n // Put values back into svg\n if (radial) {\n newGradient.setAttribute('cx', Number(origin.x.toFixed(4)));\n newGradient.setAttribute('cy', Number(origin.y.toFixed(4)));\n newGradient.setAttribute('r', Number(radius.toFixed(4)));\n if (focal) {\n newGradient.setAttribute('fx', Number(focal.x.toFixed(4)));\n newGradient.setAttribute('fy', Number(focal.y.toFixed(4)));\n }\n } else {\n newGradient.setAttribute('x1', Number(origin.x.toFixed(4)));\n newGradient.setAttribute('y1', Number(origin.y.toFixed(4)));\n newGradient.setAttribute('x2', Number(destination.x.toFixed(4)));\n newGradient.setAttribute('y2', Number(destination.y.toFixed(4)));\n }\n newGradient.setAttribute('gradientUnits', 'userSpaceOnUse');\n defs.appendChild(newGradient);\n\n return `url(#${newGradientId})`;\n};\n\n// Adapted from paper.js's SvgImport.getDefinition\nconst _parseUrl = (value, windowRef) => {\n // When url() comes from a style property, '#'' seems to be missing on\n // WebKit. We also get variations of quotes or no quotes, single or\n // double, so handle it all with one regular expression:\n const match = value && value.match(/\\((?:[\"'#]*)([^\"')]+)/);\n const name = match && match[1];\n const res = name && windowRef ?\n // This is required by Firefox, which can produce absolute\n // urls for local gradients, see paperjs#1001:\n name.replace(`${windowRef.location.href.split('#')[0]}#`, '') :\n name;\n return res;\n};\n\n/**\n * Scratch 2.0 displays stroke widths in a \"normalized\" way, that is,\n * if a shape with a stroke width has a transform applied, it will be\n * rendered with a stroke that is the same width all the way around,\n * instead of stretched looking.\n *\n * The vector paint editor also prefers to normalize the stroke width,\n * rather than keep track of transforms at the group level, as this\n * simplifies editing (e.g. stroke width 3 always means the same thickness)\n *\n * This function performs that normalization process, pushing transforms\n * on groups down to the leaf level and averaging out the stroke width\n * around the shapes. Note that this doens't just change stroke widths, it\n * changes path data and attributes throughout the SVG.\n *\n * @param {SVGElement} svgTag The SVG dom object\n * @param {Window} windowRef The window to use. Need to pass in for\n * tests to work, as they get angry at even the mention of window.\n * @param {object} bboxForTesting The bounds to use. Need to pass in for\n * tests only, because getBBox doesn't work in Node. This should\n * be the bounds of the svgTag without including stroke width or transforms.\n * @return {void}\n */\nconst transformStrokeWidths = function (svgTag, windowRef, bboxForTesting) {\n const inherited = Matrix.identity();\n\n const applyTransforms = (element, matrix, strokeWidth, fill, stroke) => {\n if (_isContainerElement(element)) {\n // Push fills and stroke width down to leaves\n if (element.attributes['stroke-width']) {\n strokeWidth = element.attributes['stroke-width'].value;\n }\n if (element.attributes) {\n if (element.attributes.fill) fill = element.attributes.fill.value;\n if (element.attributes.stroke) stroke = element.attributes.stroke.value;\n }\n\n // If any child nodes don't take attributes, leave the attributes\n // at the parent level.\n for (let i = 0; i < element.childNodes.length; i++) {\n applyTransforms(\n element.childNodes[i],\n Matrix.compose(matrix, _parseTransform(element)),\n strokeWidth,\n fill,\n stroke\n );\n }\n element.removeAttribute('transform');\n element.removeAttribute('stroke-width');\n element.removeAttribute('fill');\n element.removeAttribute('stroke');\n } else if (_isPathWithTransformAndStroke(element, strokeWidth)) {\n if (element.attributes['stroke-width']) {\n strokeWidth = element.attributes['stroke-width'].value;\n }\n if (element.attributes.fill) fill = element.attributes.fill.value;\n if (element.attributes.stroke) stroke = element.attributes.stroke.value;\n matrix = Matrix.compose(matrix, _parseTransform(element));\n if (Matrix.toString(matrix) === Matrix.toString(Matrix.identity())) {\n element.removeAttribute('transform');\n element.setAttribute('stroke-width', strokeWidth);\n if (fill) element.setAttribute('fill', fill);\n if (stroke) element.setAttribute('stroke', stroke);\n return;\n }\n\n // Transform gradient\n const fillGradientId = _parseUrl(fill, windowRef);\n const strokeGradientId = _parseUrl(stroke, windowRef);\n\n if (fillGradientId || strokeGradientId) {\n const doc = windowRef.document;\n // Need path bounds to transform gradient\n const svgSpot = doc.createElement('span');\n let bbox;\n if (bboxForTesting) {\n bbox = bboxForTesting;\n } else {\n try {\n doc.body.appendChild(svgSpot);\n const svg = SvgElement.set(doc.createElementNS(SvgElement.svg, 'svg'));\n const path = SvgElement.set(doc.createElementNS(SvgElement.svg, 'path'));\n path.setAttribute('d', element.attributes.d.value);\n svg.appendChild(path);\n svgSpot.appendChild(svg);\n // Take the bounding box.\n bbox = svg.getBBox();\n } finally {\n // Always destroy the element, even if, for example, getBBox throws.\n doc.body.removeChild(svgSpot);\n }\n }\n\n if (fillGradientId) {\n const newFillRef = _createGradient(fillGradientId, svgTag, bbox, matrix);\n if (newFillRef) fill = newFillRef;\n }\n\n if (strokeGradientId) {\n const newStrokeRef = _createGradient(strokeGradientId, svgTag, bbox, matrix);\n if (newStrokeRef) stroke = newStrokeRef;\n }\n }\n\n // Transform path data\n element.setAttribute('d', _transformPath(element.attributes.d.value, matrix));\n element.removeAttribute('transform');\n\n // Transform stroke width\n const matrixScale = _getScaleFactor(matrix);\n element.setAttribute('stroke-width', _quadraticMean(matrixScale.x, matrixScale.y) * strokeWidth);\n if (fill) element.setAttribute('fill', fill);\n if (stroke) element.setAttribute('stroke', stroke);\n } else if (_isGraphicsElement(element)) {\n // Push stroke width, fill, and stroke down to leaves\n if (strokeWidth && !element.attributes['stroke-width']) {\n element.setAttribute('stroke-width', strokeWidth);\n }\n if (fill && !element.attributes.fill) {\n element.setAttribute('fill', fill);\n }\n if (stroke && !element.attributes.stroke) {\n element.setAttribute('stroke', stroke);\n }\n\n // Push transform down to leaves\n matrix = Matrix.compose(matrix, _parseTransform(element));\n if (Matrix.toString(matrix) === Matrix.toString(Matrix.identity())) {\n element.removeAttribute('transform');\n } else {\n element.setAttribute('transform', Matrix.toString(matrix));\n }\n }\n };\n applyTransforms(svgTag, inherited, 1 /* default SVG stroke width */);\n};\n\nmodule.exports = transformStrokeWidths;\n","const minilog = require('minilog');\nminilog.enable();\n\nmodule.exports = minilog('scratch-svg-render');\n","/**\n * Copyright (c) 2019 Vernier Software. All rights reserved.\n * This code may only be used under the BSD 3-Clause license found at\n * https://raw.githubusercontent.com/VernierST/godirect-js/master/LICENSE\n */\n\n!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=e||self).godirect=t()}(this,function(){\"use strict\";function e(e,t,n,r,i,a,o){try{var s=e[a](o),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}function t(t){return function(){var n=this,r=arguments;return new Promise(function(i,a){var o=t.apply(n,r);function s(t){e(o,i,a,s,u,\"next\",t)}function u(t){e(o,i,a,s,u,\"throw\",t)}s(void 0)})}}function n(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function r(e,t){for(var n=0;n=0;--a){var o=this.tryEntries[a],s=o.completion;if(\"root\"===o.tryLoc)return i(\"end\");if(o.tryLoc<=this.prev){var u=r.call(o,\"catchLoc\"),c=r.call(o,\"finallyLoc\");if(u&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,\"finallyLoc\")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),M(n),d}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if(\"throw\"===r.type){var i=r.arg;M(n)}return i}}throw new Error(\"illegal catch attempt\")},delegateYield:function(e,n,r){return this.delegate={iterator:C(e),resultName:n,nextLoc:r},\"next\"===this.method&&(this.arg=t),d}}}function b(e,t,n,r){var i=t&&t.prototype instanceof _?t:_,a=Object.create(i.prototype),o=new A(r||[]);return a._invoke=function(e,t,n){var r=f;return function(i,a){if(r===l)throw new Error(\"Generator is already running\");if(r===p){if(\"throw\"===i)throw a;return L()}for(n.method=i,n.arg=a;;){var o=n.delegate;if(o){var s=R(o,n);if(s){if(s===d)continue;return s}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(r===f)throw r=p,n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=l;var u=w(e,t,n);if(\"normal\"===u.type){if(r=n.done?p:h,u.arg===d)continue;return{value:u.arg,done:n.done}}\"throw\"===u.type&&(r=p,n.method=\"throw\",n.arg=u.arg)}}}(e,n,o),a}function w(e,t,n){try{return{type:\"normal\",arg:e.call(t,n)}}catch(e){return{type:\"throw\",arg:e}}}function _(){}function k(){}function x(){}function E(e){[\"next\",\"throw\",\"return\"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function S(e){var t;this._invoke=function(n,i){function a(){return new Promise(function(t,a){!function t(n,i,a,o){var s=w(e[n],e,i);if(\"throw\"!==s.type){var u=s.arg,c=u.value;return c&&\"object\"==typeof c&&r.call(c,\"__await\")?Promise.resolve(c.__await).then(function(e){t(\"next\",e,a,o)},function(e){t(\"throw\",e,a,o)}):Promise.resolve(c).then(function(e){u.value=e,a(u)},function(e){return t(\"throw\",e,a,o)})}o(s.arg)}(n,i,t,a)})}return t=t?t.then(a,a):a()}}function R(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,\"throw\"===n.method){if(e.iterator.return&&(n.method=\"return\",n.arg=t,R(e,n),\"throw\"===n.method))return d;n.method=\"throw\",n.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return d}var i=w(r,e.iterator,n.arg);if(\"throw\"===i.type)return n.method=\"throw\",n.arg=i.arg,n.delegate=null,d;var a=i.arg;return a?a.done?(n[e.resultName]=a.value,n.next=e.nextLoc,\"return\"!==n.method&&(n.method=\"next\",n.arg=t),n.delegate=null,d):a:(n.method=\"throw\",n.arg=new TypeError(\"iterator result is not an object\"),n.delegate=null,d)}function U(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function M(e){var t=e.completion||{};t.type=\"normal\",delete t.arg,e.completion=t}function A(e){this.tryEntries=[{tryLoc:\"root\"}],e.forEach(U,this),this.reset(!0)}function C(e){if(e){var n=e[a];if(n)return n.call(e);if(\"function\"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,o=function n(){for(;++i-1)return n.splice(r,1),this._listenerMap.set(e,n),!0}return!1}},{key:\"unbind\",value:function(){this._listenerMap.clear()}},{key:\"emit\",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{};n(this,e),this.type=t.type,this.mode=t.mode,this.minValue=t.minValue,this.maxValue=t.maxValue,this.uncertainty=t.uncertainty,this.minPeriod=t.minPeriod,this.maxPeriod=t.maxPeriod,this.typicalPeriod=t.typicalPeriod,this.granularity=t.granularity},P=function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};n(this,e),this.number=t.number,this.name=t.name,this.unit=t.unit,this.id=t.id,this.mutalExclusionMask=t.mutalExclusionMask,this.measurementInfo=t.measurementInfo},T=function(e){function t(e){var r;return n(this,t),(r=u(this,o(t).call(this))).number=e.number,r.name=e.name,r.unit=e.unit,r.specs=e,r.enabled=!1,r.values=[],r.value=null,r}return a(t,R),i(t,[{key:\"clear\",value:function(){this.value=null,this.values=[]}},{key:\"setValue\",value:function(e,t){this.value=e,t&&this.values.push(this.value),this.emit(\"value-changed\",this)}},{key:\"setEnabled\",value:function(e){this.enabled!==e&&(this.enabled=e,this.emit(\"state-changed\",this))}}]),t}(),N=function(e){function r(e){var t;if(n(this,r),t=u(this,o(r).call(this)),\"undefined\"==typeof TextDecoder){var i=require(\"text-encoding\");C=i.TextDecoder}else C=TextDecoder;return t.device=e,t.sensors=[],t.opened=!1,t.rollingCounter=0,t.collecting=!1,t.measurementPeriod=10,t.response=null,t.remainingResponseLength=0,t.defaultSensorsMask=0,t.keepValues=!0,t.minMeasurementPeriod=10,t.serialNumber=\"\",t.orderCode=\"\",t.name=\"\",t}return a(r,R),i(r,[{key:\"getBatteryLevel\",value:function(){var e=t(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getStatus();case 2:return t=e.sent,e.abrupt(\"return\",t.battery);case 4:case\"end\":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:\"getChargingState\",value:function(){var e=t(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getStatus();case 2:return t=e.sent,e.abrupt(\"return\",t.chargingStatus);case 4:case\"end\":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:\"open\",value:function(){var e=t(regeneratorRuntime.mark(function e(){var t,n=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]&&n[0],e.prev=1,e.next=4,this._connect();case 4:return e.next=6,this._init();case 6:return e.next=8,this._getStatus();case 8:return e.next=10,this._getDeviceInfo();case 10:return e.next=12,this._getDefaultSensorsMask();case 12:return e.next=14,this._getAvailableSensors();case 14:this._onOpened(),t&&this.start(),e.next=21;break;case 18:e.prev=18,e.t0=e.catch(1),console.error(e.t0);case 21:case\"end\":return e.stop()}},e,this,[[1,18]])}));return function(){return e.apply(this,arguments)}}()},{key:\"close\",value:function(){var e=t(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._stopMeasurements();case 2:return e.next=4,this._sendCommand(d.DISCONNECT);case 4:return e.abrupt(\"return\",this._disconnect());case 5:case\"end\":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:\"enableDefaultSensors\",value:function(){for(var e=1,t=0;t<32;++t){if((this.defaultSensorsMask&e)===e){var n=this.getSensor(t);n&&n.setEnabled(!0)}e<<=1}}},{key:\"start\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this.sensors.filter(function(e){return e.enabled});0===t.length&&(this.enableDefaultSensors(),t=this.sensors.filter(function(e){return e.enabled})),t.forEach(function(e){return e.clear()}),e&&(this.measurementPeriod=e),this._startMeasurements()}},{key:\"stop\",value:function(){this._stopMeasurements()}},{key:\"getSensor\",value:function(e){return this.sensors.find(function(t){return t.number===e})}},{key:\"_connect\",value:function(){var e=t(regeneratorRuntime.mark(function e(){var t=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt(\"return\",this.device.setup({onClosed:function(){return t._onClosed()},onResponse:function(e){return t._handleResponse(e)}}));case 1:case\"end\":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:\"_disconnect\",value:function(){var e=t(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt(\"return\",this.device.close());case 1:case\"end\":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:\"_init\",value:function(){return this.collecting=!1,this.rollingCounter=255,this.writeQueue=[],this._sendCommand(d.INIT)}},{key:\"_handleResponse\",value:function(e){if(U(\"command notified: \".concat(A(e.buffer))),this.remainingResponseLegnth>0){if(this.remainingResponseLegnth-=e.buffer.byteLength,this.response=new DataView((t=this.response.buffer,n=e.buffer.slice(0),(r=new Uint8Array(t.byteLength+n.byteLength)).set(new Uint8Array(t),0),r.set(new Uint8Array(n),t.byteLength),r.buffer)),this.remainingResponseLegnth>0)return}else this.response=e;var t,n,r,i=this.response.getUint8(1);if(i>this.response.buffer.byteLength)this.remainingResponseLegnth=i-this.response.buffer.byteLength;else switch(U(\"handle command: \".concat(A(this.response.buffer))),this.response.getUint8(0)){case E:this._processMeasurements(this.response);break;default:var a=this.response.getUint8(4),o=this.response.getUint8(5),s=new DataView(this.response.buffer,6);this._resolveWriteCommand(a,o,s),this.remainingResponseLegnth=0,this.response=null}}},{key:\"_getSensorsWithMask\",value:function(e){for(var t=[],n=1,r=0;r<32;++r){if((e&n)===n){var i=this.getSensor(r);i&&(t.push(i),U(\"available: [\".concat(e,\"] \").concat(t[t.length-1].number)))}n<<=1}return t}},{key:\"_processMeasurements\",value:function(e){var t=[],n=!0,r=0,i=0,a=e.getUint8(4);switch(a){case m:t=this._getSensorsWithMask(e.getUint16(5,!0)),r=e.getUint8(7,!0),i=9;break;case v:t=this._getSensorsWithMask(e.getUint32(5,!0)),r=e.getUint8(9,!0),i=11;break;case g:case y:t[0]=this.getSensor(e.getUint8(6)),r=e.getUint8(7,!0),i=8;break;case w:case b:t[0]=this.getSensor(e.getUint8(6)),r=e.getUint8(7,!0),i=8,n=!1;break;case _:case k:case x:U(\"Purposely Ignoring packet type: \".concat(a));break;default:U(\"Unknown packet type: \".concat(a))}for(var o=0;o255?(U(\"Checksum failed!\"),0):n}},{key:\"_sendCommand\",value:function(e){var t=new Uint8Array(d.HEADER.byteLength+e.byteLength);return t.set(new Uint8Array(d.HEADER),0),t.set(new Uint8Array(e),d.HEADER.byteLength),t[1]=t.length,t[2]=this._decRollingCounter(),t[3]=this._calculateChecksum(t),this._queueWriteCommand(t,0,t.length)}},{key:\"_writeCommand\",value:function(){var e=t(regeneratorRuntime.mark(function e(t,n,r){var i;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!(r>0)){e.next=12;break}return e.prev=1,r>20?(i=t.subarray(n,n+20),r-=20,n+=20):(i=t.subarray(n,n+r),r=0),e.next=5,this.device.writeCommand(i);case 5:e.next=10;break;case 7:e.prev=7,e.t0=e.catch(1),U(\"Write Failure: \".concat(e.t0));case 10:e.next=0;break;case 12:case\"end\":return e.stop()}},e,this,[[1,7]])}));return function(t,n,r){return e.apply(this,arguments)}}()},{key:\"_queueWriteCommand\",value:function(e,t,n){var r=this;U(\"command queued: \".concat(A(e)));var i=new Promise(function(t,n){r.writeQueue.push({command:e[4],rollingCounter:e[2],resolve:t,reject:n}),setTimeout(function(){r.writeQueue=r.writeQueue.filter(function(t){return t.command===e[4]&&t.rollingCounter!==e[2]}),n(new Error(\"write command timed out after 5s. Command: \".concat(e[4].toString(16),\" Rolling Counter: \").concat(e[2].toString(16))))},1e4)});return this._writeCommand(e,t,n),i}},{key:\"_getStatus\",value:function(){var e=t(regeneratorRuntime.mark(function e(){var t,n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._sendCommand(d.GET_STATUS);case 2:return t=e.sent,n={masterFirmwareVersion:\"\".concat(t.getUint8(2),\".\").concat(t.getUint8(3)),bleFirmwareVersion:\"\".concat(t.getUint8(6),\".\").concat(t.getUint8(9)),battery:t.getUint8(10),chargingStatus:\"\".concat(t.getUint8(11))},e.abrupt(\"return\",n);case 5:case\"end\":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:\"_getAvailableSensors\",value:function(){var e=t(regeneratorRuntime.mark(function e(){var t,n,r=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._sendCommand(d.GET_SENSOR_IDS).then(function(e){r.availableSensors=e.getUint32(0,!0),U(\"Get Available Sensors Returned \".concat(r.availableSensors))});case 2:t=1,n=0;case 4:if(!(n<31)){e.next=12;break}if((this.availableSensors&t)!==t){e.next=8;break}return e.next=8,this._getSensorInfo(n);case 8:t<<=1;case 9:++n,e.next=4;break;case 12:case\"end\":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:\"_getDefaultSensorsMask\",value:function(){var e=this;return this._sendCommand(d.GET_DEFAULT_SENSORS_MASK).then(function(t){e.defaultSensorsMask=t.getUint32(0,!0),U(\"Default Sensors:\"),M(e)})}},{key:\"_getDeviceInfo\",value:function(){var e=this;return this._sendCommand(d.GET_INFO).then(function(t){var n=new C(\"utf-8\");e.orderCode=n.decode(new Uint8Array(t.buffer,6,16).filter(S)),e.serialNumber=n.decode(new Uint8Array(t.buffer,22,16).filter(S)),e.name=n.decode(new Uint8Array(t.buffer,38,32).filter(S)),U(\"Device Info:\"),M(e)})}},{key:\"_getSensorInfo\",value:function(){var e=t(regeneratorRuntime.mark(function e(t){var n,r=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return(n=new Uint8Array(d.GET_SENSOR_INFO))[1]=t,e.abrupt(\"return\",this._sendCommand(n).then(function(e){var t=e.getUint32(2,!0);if(t>0){var n=new C(\"utf-8\"),i=new L({type:e.getUint8(6),mode:e.getUint8(7),minValue:e.getFloat64(108,!0),maxValue:e.getFloat64(116,!0),uncertainty:e.getFloat64(100,!0),minPeriod:e.getUint32(124,!0)/1e3,maxPeriod:((e.getUint32(132,!0)<<32)+e.getUint32(128,!0))/1e3,typicalPeriod:e.getUint32(136,!0)/1e3,granularity:e.getUint32(140,!0)/1e3}),a=new P({number:e.getUint8(0),name:n.decode(new Uint8Array(e.buffer,14,60).filter(S)),unit:n.decode(new Uint8Array(e.buffer,74,32).filter(S)),mutalExclusiveMask:e.getUint32(144,!0),measurementInfo:i,sensorId:t}),o=new T(a);U(\"Get Sensor Info Returned\"),M(o),r.sensors.push(o),o.on(\"state-changed\",function(){U(\"Sensor Restart: \".concat(o.number)),o.enabled&&(r.measurementPeriod=o.specs.measurementInfo.typicalPeriod,r.sensors.forEach(function(e){if(o.number!==e.number&&e.enabled){var t=1<r.measurementPeriod&&(r.measurementPeriod=e.specs.measurementInfo.typicalPeriod)}})),r._restartMeasurements()})}}));case 3:case\"end\":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:\"_restartMeasurements\",value:function(){var e=t(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.collecting,!this.collecting){e.next=10;break}return e.prev=2,e.next=5,this._stopMeasurements();case 5:e.next=10;break;case 7:e.prev=7,e.t0=e.catch(2),console.error(e.t0);case 10:if(this.collecting||!t){e.next=19;break}return e.prev=11,e.next=14,this._startMeasurements();case 14:e.next=19;break;case 16:e.prev=16,e.t1=e.catch(11),console.error(e.t1);case 19:case\"end\":return e.stop()}},e,this,[[2,7],[11,16]])}));return function(){return e.apply(this,arguments)}}()},{key:\"_setMeasurementPeriod\",value:function(e){var t=new Uint8Array(d.SET_MEASUREMENT_PERIOD),n=1e3*this.minMeasurementPeriod;return e>0&255,t[4]=e>>8&255,t[5]=e>>16&255,t[6]=e>>24&255,this._sendCommand(t)}},{key:\"_getEnabledChannelMask\",value:function(){var e=0;return this.sensors.filter(function(e){return e.enabled}).forEach(function(t){e+=1<>0&255,n[4]=t>>8&255,n[5]=t>>16&255,n[6]=t>>24&255,e._sendCommand(n).then(function(t){0===t.getUint8(0)&&(e.collecting=!0,e.emit(\"measurements-started\"))})})}},{key:\"_stopMeasurements\",value:function(){var e=this;return this._sendCommand(d.STOP_MEASUREMENTS).then(function(t){0===t.getUint8(0)&&(e.collecting=!1,e.emit(\"measurements-stopped\"))})}}]),r}(),O=function(){function e(t){n(this,e),this.webBluetoothNativeDevice=t,this.deviceCommand=null,this.deviceResponse=null}return i(e,[{key:\"writeCommand\",value:function(){var e=t(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt(\"return\",this.deviceCommand.writeValue(t));case 1:case\"end\":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:\"setup\",value:function(){var e=t(regeneratorRuntime.mark(function e(t){var n,r,i,a,o=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.onClosed,r=t.onResponse,this.webBluetoothNativeDevice.addEventListener(\"gattserverdisconnected\",n),e.prev=2,e.next=5,this.webBluetoothNativeDevice.gatt.connect();case 5:return i=e.sent,e.next=8,i.getPrimaryService(\"d91714ef-28b9-4f91-ba16-f0d9a604f112\");case 8:return a=e.sent,e.next=11,a.getCharacteristics();case 11:e.sent.forEach(function(e){switch(e.uuid){case\"f4bf14a6-c7d5-4b6d-8aa8-df1a7c83adcb\":o.deviceCommand=e;break;case\"b41e6675-a329-40e0-aa01-44d2f444babe\":o.deviceResponse=e,o.deviceResponse.addEventListener(\"characteristicvaluechanged\",function(e){var t=e.target.value;r(t)}),o.deviceResponse.startNotifications();break;default:U(\"No case found for \".concat(e.uuid))}}),e.next=18;break;case 15:e.prev=15,e.t0=e.catch(2),console.error(e.t0);case 18:if(this.deviceCommand&&this.deviceResponse){e.next=20;break}throw new Error(\"Expected command and response characteristics not found.\");case 20:case\"end\":return e.stop()}},e,this,[[2,15]])}));return function(t){return e.apply(this,arguments)}}()},{key:\"close\",value:function(){var e=t(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt(\"return\",this.webBluetoothNativeDevice.gatt.disconnect());case 1:case\"end\":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:\"godirectAdapter\",get:function(){return!0}}]),e}(),D={createDevice:function(){var e=t(regeneratorRuntime.mark(function e(t){var n,r,i,a,o,s,u,c=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=c.length>1&&void 0!==c[1]?c[1]:{},r=n.open,i=void 0===r||r,a=n.startMeasurements,o=void 0===a||a,(s=t).godirectAdapter||(s=new O(t)),u=new N(s),!i){e.next=14;break}return e.prev=5,e.next=8,u.open(o);case 8:e.next=14;break;case 10:throw e.prev=10,e.t0=e.catch(5),console.error(e.t0),e.t0;case 14:return e.abrupt(\"return\",u);case 15:case\"end\":return e.stop()}},e,this,[[5,10]])}));return function(t){return e.apply(this,arguments)}}(),selectDevice:function(){var e=t(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.bluetooth){e.next=2;break}return e.abrupt(\"return\",Promise.reject(new Error(\"No Web Bluetooth support.\")));case 2:return e.next=4,navigator.bluetooth.requestDevice({filters:[{namePrefix:\"GDX\"}],optionalServices:[\"d91714ef-28b9-4f91-ba16-f0d9a604f112\"]});case 4:return t=e.sent,e.abrupt(\"return\",D.createDevice(t));case 6:case\"end\":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()};return D});\n","(function (w) {\n \"use strict\";\n\n function findBest(atobNative) {\n // normal window\n if ('function' === typeof atobNative) { return atobNative; }\n\n\n // browserify (web worker)\n if ('function' === typeof Buffer) {\n return function atobBrowserify(a) {\n //!! Deliberately using an API that's deprecated in node.js because\n //!! this file is for browsers and we expect them to cope with it.\n //!! Discussion: github.com/node-browser-compat/atob/pull/9\n return new Buffer(a, 'base64').toString('binary');\n };\n }\n\n // ios web worker with base64js\n if ('object' === typeof w.base64js) {\n // bufferToBinaryString\n // https://git.coolaj86.com/coolaj86/unibabel.js/blob/master/index.js#L50\n return function atobWebWorker_iOS(a) {\n var buf = w.base64js.b64ToByteArray(a);\n return Array.prototype.map.call(buf, function (ch) {\n return String.fromCharCode(ch);\n }).join('');\n };\n }\n\n\t\treturn function () {\n\t\t\t// ios web worker without base64js\n\t\t\tthrow new Error(\"You're probably in an old browser or an iOS webworker.\" +\n\t\t\t\t\" It might help to include beatgammit's base64-js.\");\n };\n }\n\n var atobBest = findBest(w.atob);\n w.atob = atobBest;\n\n if ((typeof module === 'object') && module && module.exports) {\n module.exports = atobBest;\n }\n}(window));\n","(function () {\n \"use strict\";\n\n function btoa(str) {\n var buffer;\n\n if (str instanceof Buffer) {\n buffer = str;\n } else {\n buffer = Buffer.from(str.toString(), 'binary');\n }\n\n return buffer.toString('base64');\n }\n\n module.exports = btoa;\n}());\n","/* canvas-toBlob.js\n * A canvas.toBlob() implementation.\n * 2016-05-26\n * \n * By Eli Grey, http://eligrey.com and Devin Samarin, https://github.com/eboyjr\n * License: MIT\n * See https://github.com/eligrey/canvas-toBlob.js/blob/master/LICENSE.md\n */\n\n/*global self */\n/*jslint bitwise: true, regexp: true, confusion: true, es5: true, vars: true, white: true,\n plusplus: true */\n\n/*! @source http://purl.eligrey.com/github/canvas-toBlob.js/blob/master/canvas-toBlob.js */\n\n(function(view) {\n\"use strict\";\nvar\n\t Uint8Array = view.Uint8Array\n\t, HTMLCanvasElement = view.HTMLCanvasElement\n\t, canvas_proto = HTMLCanvasElement && HTMLCanvasElement.prototype\n\t, is_base64_regex = /\\s*;\\s*base64\\s*(?:;|$)/i\n\t, to_data_url = \"toDataURL\"\n\t, base64_ranks\n\t, decode_base64 = function(base64) {\n\t\tvar\n\t\t\t len = base64.length\n\t\t\t, buffer = new Uint8Array(len / 4 * 3 | 0)\n\t\t\t, i = 0\n\t\t\t, outptr = 0\n\t\t\t, last = [0, 0]\n\t\t\t, state = 0\n\t\t\t, save = 0\n\t\t\t, rank\n\t\t\t, code\n\t\t\t, undef\n\t\t;\n\t\twhile (len--) {\n\t\t\tcode = base64.charCodeAt(i++);\n\t\t\trank = base64_ranks[code-43];\n\t\t\tif (rank !== 255 && rank !== undef) {\n\t\t\t\tlast[1] = last[0];\n\t\t\t\tlast[0] = code;\n\t\t\t\tsave = (save << 6) | rank;\n\t\t\t\tstate++;\n\t\t\t\tif (state === 4) {\n\t\t\t\t\tbuffer[outptr++] = save >>> 16;\n\t\t\t\t\tif (last[1] !== 61 /* padding character */) {\n\t\t\t\t\t\tbuffer[outptr++] = save >>> 8;\n\t\t\t\t\t}\n\t\t\t\t\tif (last[0] !== 61 /* padding character */) {\n\t\t\t\t\t\tbuffer[outptr++] = save;\n\t\t\t\t\t}\n\t\t\t\t\tstate = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// 2/3 chance there's going to be some null bytes at the end, but that\n\t\t// doesn't really matter with most image formats.\n\t\t// If it somehow matters for you, truncate the buffer up outptr.\n\t\treturn buffer;\n\t}\n;\nif (Uint8Array) {\n\tbase64_ranks = new Uint8Array([\n\t\t 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1\n\t\t, -1, -1, 0, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9\n\t\t, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25\n\t\t, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35\n\t\t, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51\n\t]);\n}\nif (HTMLCanvasElement && (!canvas_proto.toBlob || !canvas_proto.toBlobHD)) {\n\tif (!canvas_proto.toBlob)\n\tcanvas_proto.toBlob = function(callback, type /*, ...args*/) {\n\t\t if (!type) {\n\t\t\ttype = \"image/png\";\n\t\t} if (this.mozGetAsFile) {\n\t\t\tcallback(this.mozGetAsFile(\"canvas\", type));\n\t\t\treturn;\n\t\t} if (this.msToBlob && /^\\s*image\\/png\\s*(?:$|;)/i.test(type)) {\n\t\t\tcallback(this.msToBlob());\n\t\t\treturn;\n\t\t}\n\n\t\tvar\n\t\t\t args = Array.prototype.slice.call(arguments, 1)\n\t\t\t, dataURI = this[to_data_url].apply(this, args)\n\t\t\t, header_end = dataURI.indexOf(\",\")\n\t\t\t, data = dataURI.substring(header_end + 1)\n\t\t\t, is_base64 = is_base64_regex.test(dataURI.substring(0, header_end))\n\t\t\t, blob\n\t\t;\n\t\tif (Blob.fake) {\n\t\t\t// no reason to decode a data: URI that's just going to become a data URI again\n\t\t\tblob = new Blob\n\t\t\tif (is_base64) {\n\t\t\t\tblob.encoding = \"base64\";\n\t\t\t} else {\n\t\t\t\tblob.encoding = \"URI\";\n\t\t\t}\n\t\t\tblob.data = data;\n\t\t\tblob.size = data.length;\n\t\t} else if (Uint8Array) {\n\t\t\tif (is_base64) {\n\t\t\t\tblob = new Blob([decode_base64(data)], {type: type});\n\t\t\t} else {\n\t\t\t\tblob = new Blob([decodeURIComponent(data)], {type: type});\n\t\t\t}\n\t\t}\n\t\tcallback(blob);\n\t};\n\n\tif (!canvas_proto.toBlobHD && canvas_proto.toDataURLHD) {\n\t\tcanvas_proto.toBlobHD = function() {\n\t\t\tto_data_url = \"toDataURLHD\";\n\t\t\tvar blob = this.toBlob();\n\t\t\tto_data_url = \"toDataURL\";\n\t\t\treturn blob;\n\t\t}\n\t} else {\n\t\tcanvas_proto.toBlobHD = canvas_proto.toBlob;\n\t}\n}\n}(typeof self !== \"undefined\" && self || typeof window !== \"undefined\" && window || this.content || this));\n","// Store markers outside of the function scope,\n// not to recreate them on every call\nvar entities = {\n 'amp': '&',\n 'apos': '\\'',\n 'lt': '<',\n 'gt': '>',\n 'quot': '\"',\n 'nbsp': '\\xa0'\n};\nvar entityPattern = /&([a-z]+);/ig;\n\nmodule.exports = function decodeHTMLEntities(text) {\n // A single replace pass with a static RegExp is faster than a loop\n return text.replace(entityPattern, function(match, entity) {\n entity = entity.toLowerCase();\n if (entities.hasOwnProperty(entity)) {\n return entities[entity];\n }\n // return original string if there is no matching entity (no replace)\n return match;\n });\n};\n","/*\n Module dependencies\n*/\nvar ElementType = require('domelementtype');\nvar entities = require('entities');\n\n/* mixed-case SVG and MathML tags & attributes\n recognized by the HTML parser, see\n https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n*/\nvar foreignNames = require('./foreignNames.json');\nforeignNames.elementNames.__proto__ = null; /* use as a simple dictionary */\nforeignNames.attributeNames.__proto__ = null;\n\nvar unencodedElements = {\n __proto__: null,\n style: true,\n script: true,\n xmp: true,\n iframe: true,\n noembed: true,\n noframes: true,\n plaintext: true,\n noscript: true\n};\n\n/*\n Format attributes\n*/\nfunction formatAttrs(attributes, opts) {\n if (!attributes) return;\n\n var output = '';\n var value;\n\n // Loop through the attributes\n for (var key in attributes) {\n value = attributes[key];\n if (output) {\n output += ' ';\n }\n\n if (opts.xmlMode === 'foreign') {\n /* fix up mixed-case attribute names */\n key = foreignNames.attributeNames[key] || key;\n }\n output += key;\n if ((value !== null && value !== '') || opts.xmlMode) {\n output +=\n '=\"' +\n (opts.decodeEntities\n ? entities.encodeXML(value)\n : value.replace(/\\\"/g, '"')) +\n '\"';\n }\n }\n\n return output;\n}\n\n/*\n Self-enclosing tags (stolen from node-htmlparser)\n*/\nvar singleTag = {\n __proto__: null,\n area: true,\n base: true,\n basefont: true,\n br: true,\n col: true,\n command: true,\n embed: true,\n frame: true,\n hr: true,\n img: true,\n input: true,\n isindex: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true\n};\n\nvar render = (module.exports = function(dom, opts) {\n if (!Array.isArray(dom) && !dom.cheerio) dom = [dom];\n opts = opts || {};\n\n var output = '';\n\n for (var i = 0; i < dom.length; i++) {\n var elem = dom[i];\n\n if (elem.type === 'root') output += render(elem.children, opts);\n else if (ElementType.isTag(elem)) output += renderTag(elem, opts);\n else if (elem.type === ElementType.Directive)\n output += renderDirective(elem);\n else if (elem.type === ElementType.Comment) output += renderComment(elem);\n else if (elem.type === ElementType.CDATA) output += renderCdata(elem);\n else output += renderText(elem, opts);\n }\n\n return output;\n});\n\nvar foreignModeIntegrationPoints = [\n 'mi',\n 'mo',\n 'mn',\n 'ms',\n 'mtext',\n 'annotation-xml',\n 'foreignObject',\n 'desc',\n 'title'\n];\n\nfunction renderTag(elem, opts) {\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === 'foreign') {\n /* fix up mixed-case element names */\n elem.name = foreignNames.elementNames[elem.name] || elem.name;\n /* exit foreign mode at integration points */\n if (\n elem.parent &&\n foreignModeIntegrationPoints.indexOf(elem.parent.name) >= 0\n )\n opts = Object.assign({}, opts, { xmlMode: false });\n }\n if (!opts.xmlMode && ['svg', 'math'].indexOf(elem.name) >= 0) {\n opts = Object.assign({}, opts, { xmlMode: 'foreign' });\n }\n\n var tag = '<' + elem.name;\n var attribs = formatAttrs(elem.attribs, opts);\n\n if (attribs) {\n tag += ' ' + attribs;\n }\n\n if (opts.xmlMode && (!elem.children || elem.children.length === 0)) {\n tag += '/>';\n } else {\n tag += '>';\n if (elem.children) {\n tag += render(elem.children, opts);\n }\n\n if (!singleTag[elem.name] || opts.xmlMode) {\n tag += '';\n }\n }\n\n return tag;\n}\n\nfunction renderDirective(elem) {\n return '<' + elem.data + '>';\n}\n\nfunction renderText(elem, opts) {\n var data = elem.data || '';\n\n // if entities weren't decoded, no need to encode them back\n if (\n opts.decodeEntities &&\n !(elem.parent && elem.parent.name in unencodedElements)\n ) {\n data = entities.encodeXML(data);\n }\n\n return data;\n}\n\nfunction renderCdata(elem) {\n return '';\n}\n\nfunction renderComment(elem) {\n return '';\n}\n","/** Types of elements found in htmlparser2's DOM */\nexport var ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for \n //\n // Has one line before it which is invalid according to GLSL ES 3.00\n //\n\n var lineOffset = 0;\n\n if (spaceRE.test(shaderSource)) {\n lineOffset = 1;\n shaderSource = shaderSource.replace(spaceRE, '');\n } // Load the shader source\n\n\n gl.shaderSource(shader, shaderSource); // Compile the shader\n\n gl.compileShader(shader); // Check the compile status\n\n var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n\n if (!compiled) {\n // Something went wrong during compilation; get the error\n var lastError = gl.getShaderInfoLog(shader);\n errFn(addLineNumbers(shaderSource, lineOffset) + \"\\n*** Error compiling shader: \" + lastError);\n gl.deleteShader(shader);\n return null;\n }\n\n return shader;\n}\n/**\n * @typedef {Object} ProgramOptions\n * @property {function(string)} [errorCallback] callback for errors\n * @property {Object.} [attribLocations] a attribute name to location map\n * @property {(module:twgl.BufferInfo|Object.|string[])} [transformFeedbackVaryings] If passed\n * a BufferInfo will use the attribs names inside. If passed an object of AttribInfos will use the names from that object. Otherwise\n * you can pass an array of names.\n * @property {number} [transformFeedbackMode] the mode to pass `gl.transformFeedbackVaryings`. Defaults to `SEPARATE_ATTRIBS`.\n * @memberOf module:twgl\n */\n\n/**\n * Gets the program options based on all these optional arguments\n * @param {module:twgl.ProgramOptions|string[]} [opt_attribs] Options for the program or an array of attribs names. Locations will be assigned by index if not passed in\n * @param {number[]} [opt_locations] The locations for the. A parallel array to opt_attribs letting you assign locations.\n * @param {module:twgl.ErrorCallback} [opt_errorCallback] callback for errors. By default it just prints an error to the console\n * on error. If you want something else pass an callback. It's passed an error message.\n * @return {module:twgl.ProgramOptions} an instance of ProgramOptions based on the arguments pased on\n */\n\n\nfunction getProgramOptions(opt_attribs, opt_locations, opt_errorCallback) {\n var transformFeedbackVaryings;\n\n if (typeof opt_locations === 'function') {\n opt_errorCallback = opt_locations;\n opt_locations = undefined;\n }\n\n if (typeof opt_attribs === 'function') {\n opt_errorCallback = opt_attribs;\n opt_attribs = undefined;\n } else if (opt_attribs && !Array.isArray(opt_attribs)) {\n // If we have an errorCallback we can just return this object\n // Otherwise we need to construct one with default errorCallback\n if (opt_attribs.errorCallback) {\n return opt_attribs;\n }\n\n var opt = opt_attribs;\n opt_errorCallback = opt.errorCallback;\n opt_attribs = opt.attribLocations;\n transformFeedbackVaryings = opt.transformFeedbackVaryings;\n }\n\n var options = {\n errorCallback: opt_errorCallback || error,\n transformFeedbackVaryings: transformFeedbackVaryings\n };\n\n if (opt_attribs) {\n var attribLocations = {};\n\n if (Array.isArray(opt_attribs)) {\n opt_attribs.forEach(function (attrib, ndx) {\n attribLocations[attrib] = opt_locations ? opt_locations[ndx] : ndx;\n });\n } else {\n attribLocations = opt_attribs;\n }\n\n options.attribLocations = attribLocations;\n }\n\n return options;\n}\n\nvar defaultShaderType = [\"VERTEX_SHADER\", \"FRAGMENT_SHADER\"];\n\nfunction getShaderTypeFromScriptType(scriptType) {\n if (scriptType.indexOf(\"frag\") >= 0) {\n return gl.FRAGMENT_SHADER;\n } else if (scriptType.indexOf(\"vert\") >= 0) {\n return gl.VERTEX_SHADER;\n }\n\n return undefined;\n}\n\nfunction deleteShaders(gl, shaders) {\n shaders.forEach(function (shader) {\n gl.deleteShader(shader);\n });\n}\n/**\n * Creates a program, attaches (and/or compiles) shaders, binds attrib locations, links the\n * program and calls useProgram.\n *\n * NOTE: There are 4 signatures for this function\n *\n * twgl.createProgram(gl, [vs, fs], options);\n * twgl.createProgram(gl, [vs, fs], opt_errFunc);\n * twgl.createProgram(gl, [vs, fs], opt_attribs, opt_errFunc);\n * twgl.createProgram(gl, [vs, fs], opt_attribs, opt_locations, opt_errFunc);\n *\n * @param {WebGLShader[]|string[]} shaders The shaders to attach, or element ids for their source, or strings that contain their source\n * @param {module:twgl.ProgramOptions|string[]} [opt_attribs] Options for the program or an array of attribs names. Locations will be assigned by index if not passed in\n * @param {number[]} [opt_locations] The locations for the. A parallel array to opt_attribs letting you assign locations.\n * @param {module:twgl.ErrorCallback} [opt_errorCallback] callback for errors. By default it just prints an error to the console\n * on error. If you want something else pass an callback. It's passed an error message.\n * @return {WebGLProgram?} the created program or null if error.\n * @memberOf module:twgl/programs\n */\n\n\nfunction createProgram(gl, shaders, opt_attribs, opt_locations, opt_errorCallback) {\n var progOptions = getProgramOptions(opt_attribs, opt_locations, opt_errorCallback);\n var realShaders = [];\n var newShaders = [];\n\n for (var ndx = 0; ndx < shaders.length; ++ndx) {\n var shader = shaders[ndx];\n\n if (typeof shader === 'string') {\n var elem = getElementById(shader);\n var src = elem ? elem.text : shader;\n var type = gl[defaultShaderType[ndx]];\n\n if (elem && elem.type) {\n type = getShaderTypeFromScriptType(elem.type) || type;\n }\n\n shader = loadShader(gl, src, type, progOptions.errorCallback);\n newShaders.push(shader);\n }\n\n if (helper.isShader(gl, shader)) {\n realShaders.push(shader);\n }\n }\n\n if (realShaders.length !== shaders.length) {\n progOptions.errorCallback(\"not enough shaders for program\");\n deleteShaders(gl, newShaders);\n return null;\n }\n\n var program = gl.createProgram();\n realShaders.forEach(function (shader) {\n gl.attachShader(program, shader);\n });\n\n if (progOptions.attribLocations) {\n Object.keys(progOptions.attribLocations).forEach(function (attrib) {\n gl.bindAttribLocation(program, progOptions.attribLocations[attrib], attrib);\n });\n }\n\n var varyings = progOptions.transformFeedbackVaryings;\n\n if (varyings) {\n if (varyings.attribs) {\n varyings = varyings.attribs;\n }\n\n if (!Array.isArray(varyings)) {\n varyings = Object.keys(varyings);\n }\n\n gl.transformFeedbackVaryings(program, varyings, progOptions.transformFeedbackMode || gl.SEPARATE_ATTRIBS);\n }\n\n gl.linkProgram(program); // Check the link status\n\n var linked = gl.getProgramParameter(program, gl.LINK_STATUS);\n\n if (!linked) {\n // something went wrong with the link\n var lastError = gl.getProgramInfoLog(program);\n progOptions.errorCallback(\"Error in program linking:\" + lastError);\n gl.deleteProgram(program);\n deleteShaders(gl, newShaders);\n return null;\n }\n\n return program;\n}\n/**\n * Loads a shader from a script tag.\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext to use.\n * @param {string} scriptId The id of the script tag.\n * @param {number} [opt_shaderType] The type of shader. If not passed in it will\n * be derived from the type of the script tag.\n * @param {module:twgl.ErrorCallback} [opt_errorCallback] callback for errors.\n * @return {WebGLShader?} The created shader or null if error.\n */\n\n\nfunction createShaderFromScript(gl, scriptId, opt_shaderType, opt_errorCallback) {\n var shaderSource = \"\";\n var shaderScript = getElementById(scriptId);\n\n if (!shaderScript) {\n throw \"*** Error: unknown script element\" + scriptId;\n }\n\n shaderSource = shaderScript.text;\n var shaderType = opt_shaderType || getShaderTypeFromScriptType(shaderScript.type);\n\n if (!shaderType) {\n throw \"*** Error: unknown shader type\";\n }\n\n return loadShader(gl, shaderSource, shaderType, opt_errorCallback);\n}\n/**\n * Creates a program from 2 script tags.\n *\n * NOTE: There are 4 signatures for this function\n *\n * twgl.createProgramFromScripts(gl, [vs, fs], opt_options);\n * twgl.createProgramFromScripts(gl, [vs, fs], opt_errFunc);\n * twgl.createProgramFromScripts(gl, [vs, fs], opt_attribs, opt_errFunc);\n * twgl.createProgramFromScripts(gl, [vs, fs], opt_attribs, opt_locations, opt_errFunc);\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext\n * to use.\n * @param {string[]} shaderScriptIds Array of ids of the script\n * tags for the shaders. The first is assumed to be the\n * vertex shader, the second the fragment shader.\n * @param {string[]} [opt_attribs] An array of attribs names. Locations will be assigned by index if not passed in\n * @param {number[]} [opt_locations] The locations for the. A parallel array to opt_attribs letting you assign locations.\n * @param {module:twgl.ErrorCallback} opt_errorCallback callback for errors. By default it just prints an error to the console\n * on error. If you want something else pass an callback. It's passed an error message.\n * @return {WebGLProgram} The created program.\n * @memberOf module:twgl/programs\n */\n\n\nfunction createProgramFromScripts(gl, shaderScriptIds, opt_attribs, opt_locations, opt_errorCallback) {\n var progOptions = getProgramOptions(opt_attribs, opt_locations, opt_errorCallback);\n var shaders = [];\n\n for (var ii = 0; ii < shaderScriptIds.length; ++ii) {\n var shader = createShaderFromScript(gl, shaderScriptIds[ii], gl[defaultShaderType[ii]], progOptions.errorCallback);\n\n if (!shader) {\n return null;\n }\n\n shaders.push(shader);\n }\n\n return createProgram(gl, shaders, progOptions);\n}\n/**\n * Creates a program from 2 sources.\n *\n * NOTE: There are 4 signatures for this function\n *\n * twgl.createProgramFromSource(gl, [vs, fs], opt_options);\n * twgl.createProgramFromSource(gl, [vs, fs], opt_errFunc);\n * twgl.createProgramFromSource(gl, [vs, fs], opt_attribs, opt_errFunc);\n * twgl.createProgramFromSource(gl, [vs, fs], opt_attribs, opt_locations, opt_errFunc);\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext\n * to use.\n * @param {string[]} shaderSources Array of sources for the\n * shaders. The first is assumed to be the vertex shader,\n * the second the fragment shader.\n * @param {string[]} [opt_attribs] An array of attribs names. Locations will be assigned by index if not passed in\n * @param {number[]} [opt_locations] The locations for the. A parallel array to opt_attribs letting you assign locations.\n * @param {module:twgl.ErrorCallback} opt_errorCallback callback for errors. By default it just prints an error to the console\n * on error. If you want something else pass an callback. It's passed an error message.\n * @return {WebGLProgram} The created program.\n * @memberOf module:twgl/programs\n */\n\n\nfunction createProgramFromSources(gl, shaderSources, opt_attribs, opt_locations, opt_errorCallback) {\n var progOptions = getProgramOptions(opt_attribs, opt_locations, opt_errorCallback);\n var shaders = [];\n\n for (var ii = 0; ii < shaderSources.length; ++ii) {\n var shader = loadShader(gl, shaderSources[ii], gl[defaultShaderType[ii]], progOptions.errorCallback);\n\n if (!shader) {\n return null;\n }\n\n shaders.push(shader);\n }\n\n return createProgram(gl, shaders, progOptions);\n}\n/**\n * Returns true if attribute/uniform is a reserved/built in\n *\n * It makes no sense to me why GL returns these because it's\n * illegal to call `gl.getUniformLocation` and `gl.getAttribLocation`\n * with names that start with `gl_` (and `webgl_` in WebGL)\n *\n * I can only assume they are there because they might count\n * when computing the number of uniforms/attributes used when you want to\n * know if you are near the limit. That doesn't really make sense\n * to me but the fact that these get returned are in the spec.\n *\n * @param {WebGLActiveInfo} info As returned from `gl.getActiveUniform` or\n * `gl.getActiveAttrib`.\n * @return {bool} true if it's reserved\n */\n\n\nfunction isBuiltIn(info) {\n var name = info.name;\n return name.startsWith(\"gl_\") || name.startsWith(\"webgl_\");\n}\n/**\n * Creates setter functions for all uniforms of a shader\n * program.\n *\n * @see {@link module:twgl.setUniforms}\n *\n * @param {WebGLProgram} program the program to create setters for.\n * @returns {Object.} an object with a setter by name for each uniform\n * @memberOf module:twgl/programs\n */\n\n\nfunction createUniformSetters(gl, program) {\n var textureUnit = 0;\n /**\n * Creates a setter for a uniform of the given program with it's\n * location embedded in the setter.\n * @param {WebGLProgram} program\n * @param {WebGLUniformInfo} uniformInfo\n * @returns {function} the created setter.\n */\n\n function createUniformSetter(program, uniformInfo) {\n var location = gl.getUniformLocation(program, uniformInfo.name);\n var isArray = uniformInfo.size > 1 && uniformInfo.name.substr(-3) === \"[0]\";\n var type = uniformInfo.type;\n var typeInfo = typeMap[type];\n\n if (!typeInfo) {\n throw \"unknown type: 0x\" + type.toString(16); // we should never get here.\n }\n\n var setter;\n\n if (typeInfo.bindPoint) {\n // it's a sampler\n var unit = textureUnit;\n textureUnit += uniformInfo.size;\n\n if (isArray) {\n setter = typeInfo.arraySetter(gl, type, unit, location, uniformInfo.size);\n } else {\n setter = typeInfo.setter(gl, type, unit, location, uniformInfo.size);\n }\n } else {\n if (typeInfo.arraySetter && isArray) {\n setter = typeInfo.arraySetter(gl, location);\n } else {\n setter = typeInfo.setter(gl, location);\n }\n }\n\n setter.location = location;\n return setter;\n }\n\n var uniformSetters = {};\n var numUniforms = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);\n\n for (var ii = 0; ii < numUniforms; ++ii) {\n var uniformInfo = gl.getActiveUniform(program, ii);\n\n if (isBuiltIn(uniformInfo)) {\n continue;\n }\n\n var name = uniformInfo.name; // remove the array suffix.\n\n if (name.substr(-3) === \"[0]\") {\n name = name.substr(0, name.length - 3);\n }\n\n var setter = createUniformSetter(program, uniformInfo);\n uniformSetters[name] = setter;\n }\n\n return uniformSetters;\n}\n/**\n * @typedef {Object} TransformFeedbackInfo\n * @property {number} index index of transform feedback\n * @property {number} type GL type\n * @property {number} size 1 - 4\n * @memberOf module:twgl\n */\n\n/**\n * Create TransformFeedbackInfo for passing to bind/unbindTransformFeedbackInfo.\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext to use.\n * @param {WebGLProgram} program an existing WebGLProgram.\n * @return {Object}\n * @memberOf module:twgl\n */\n\n\nfunction createTransformFeedbackInfo(gl, program) {\n var info = {};\n var numVaryings = gl.getProgramParameter(program, gl.TRANSFORM_FEEDBACK_VARYINGS);\n\n for (var ii = 0; ii < numVaryings; ++ii) {\n var varying = gl.getTransformFeedbackVarying(program, ii);\n info[varying.name] = {\n index: ii,\n type: varying.type,\n size: varying.size\n };\n }\n\n return info;\n}\n/**\n * Binds buffers for transform feedback.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext to use.\n * @param {(module:twgl.ProgramInfo|Object)} transformFeedbackInfo A ProgramInfo or TransformFeedbackInfo.\n * @param {(module:twgl.BufferInfo|Object)} [bufferInfo] A BufferInfo or set of AttribInfos.\n * @memberOf module:twgl\n */\n\n\nfunction bindTransformFeedbackInfo(gl, transformFeedbackInfo, bufferInfo) {\n if (transformFeedbackInfo.transformFeedbackInfo) {\n transformFeedbackInfo = transformFeedbackInfo.transformFeedbackInfo;\n }\n\n if (bufferInfo.attribs) {\n bufferInfo = bufferInfo.attribs;\n }\n\n for (var name in bufferInfo) {\n var varying = transformFeedbackInfo[name];\n\n if (varying) {\n var buf = bufferInfo[name];\n\n if (buf.offset) {\n gl.bindBufferRange(gl.TRANSFORM_FEEDBACK_BUFFER, varying.index, buf.buffer, buf.offset, buf.size);\n } else {\n gl.bindBufferBase(gl.TRANSFORM_FEEDBACK_BUFFER, varying.index, buf.buffer);\n }\n }\n }\n}\n/**\n * Unbinds buffers afetr transform feedback.\n *\n * Buffers can not be bound to 2 bind points so if you try to bind a buffer used\n * in a transform feedback as an ARRAY_BUFFER for an attribute it will fail.\n *\n * This function unbinds all buffers that were bound with {@link module:twgl.bindTransformFeedbackInfo}.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext to use.\n * @param {(module:twgl.ProgramInfo|Object)} transformFeedbackInfo A ProgramInfo or TransformFeedbackInfo.\n * @param {(module:twgl.BufferInfo|Object)} [bufferInfo] A BufferInfo or set of AttribInfos.\n */\n\n\nfunction unbindTransformFeedbackInfo(gl, transformFeedbackInfo, bufferInfo) {\n if (transformFeedbackInfo.transformFeedbackInfo) {\n transformFeedbackInfo = transformFeedbackInfo.transformFeedbackInfo;\n }\n\n if (bufferInfo.attribs) {\n bufferInfo = bufferInfo.attribs;\n }\n\n for (var name in bufferInfo) {\n var varying = transformFeedbackInfo[name];\n\n if (varying) {\n gl.bindBufferBase(gl.TRANSFORM_FEEDBACK_BUFFER, varying.index, null);\n }\n }\n}\n/**\n * Creates a transform feedback and sets the buffers\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext to use.\n * @param {module:twgl.ProgramInfo} programInfo A ProgramInfo as returned from {@link module:twgl.createProgramInfo}\n * @param {(module:twgl.BufferInfo|Object)} [bufferInfo] A BufferInfo or set of AttribInfos.\n * @return {WebGLTransformFeedback} the created transform feedback\n * @memberOf module:twgl\n */\n\n\nfunction createTransformFeedback(gl, programInfo, bufferInfo) {\n var tf = gl.createTransformFeedback();\n gl.bindTransformFeedback(gl.TRANSFORM_FEEDBACK, tf);\n gl.useProgram(programInfo.program);\n bindTransformFeedbackInfo(gl, programInfo, bufferInfo);\n gl.bindTransformFeedback(gl.TRANSFORM_FEEDBACK, null); // This is only needed because of a bug in Chrome 56. Will remove\n // when chrome fixes it.\n\n unbindTransformFeedbackInfo(gl, programInfo, bufferInfo);\n return tf;\n}\n/**\n * @typedef {Object} UniformData\n * @property {number} type The WebGL type enum for this uniform\n * @property {number} size The number of elements for this uniform\n * @property {number} blockNdx The block index this uniform appears in\n * @property {number} offset The byte offset in the block for this uniform's value\n * @memberOf module:twgl\n */\n\n/**\n * The specification for one UniformBlockObject\n *\n * @typedef {Object} BlockSpec\n * @property {number} index The index of the block.\n * @property {number} size The size in bytes needed for the block\n * @property {number[]} uniformIndices The indices of the uniforms used by the block. These indices\n * correspond to entries in a UniformData array in the {@link module:twgl.UniformBlockSpec}.\n * @property {bool} usedByVertexShader Self explanitory\n * @property {bool} usedByFragmentShader Self explanitory\n * @property {bool} used Self explanitory\n * @memberOf module:twgl\n */\n\n/**\n * A `UniformBlockSpec` represents the data needed to create and bind\n * UniformBlockObjects for a given program\n *\n * @typedef {Object} UniformBlockSpec\n * @property {Object. blockSpecs The BlockSpec for each block by block name\n * @property {UniformData[]} uniformData An array of data for each uniform by uniform index.\n * @memberOf module:twgl\n */\n\n/**\n * Creates a UniformBlockSpec for the given program.\n *\n * A UniformBlockSpec represents the data needed to create and bind\n * UniformBlockObjects\n *\n * @param {WebGL2RenderingContext} gl A WebGL2 Rendering Context\n * @param {WebGLProgram} program A WebGLProgram for a successfully linked program\n * @return {module:twgl.UniformBlockSpec} The created UniformBlockSpec\n * @memberOf module:twgl/programs\n */\n\n\nfunction createUniformBlockSpecFromProgram(gl, program) {\n var numUniforms = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);\n var uniformData = [];\n var uniformIndices = [];\n\n for (var ii = 0; ii < numUniforms; ++ii) {\n uniformIndices.push(ii);\n uniformData.push({});\n var uniformInfo = gl.getActiveUniform(program, ii);\n\n if (isBuiltIn(uniformInfo)) {\n break;\n } // REMOVE [0]?\n\n\n uniformData[ii].name = uniformInfo.name;\n }\n\n [[\"UNIFORM_TYPE\", \"type\"], [\"UNIFORM_SIZE\", \"size\"], // num elements\n [\"UNIFORM_BLOCK_INDEX\", \"blockNdx\"], [\"UNIFORM_OFFSET\", \"offset\"]].forEach(function (pair) {\n var pname = pair[0];\n var key = pair[1];\n gl.getActiveUniforms(program, uniformIndices, gl[pname]).forEach(function (value, ndx) {\n uniformData[ndx][key] = value;\n });\n });\n var blockSpecs = {};\n var numUniformBlocks = gl.getProgramParameter(program, gl.ACTIVE_UNIFORM_BLOCKS);\n\n for (var _ii = 0; _ii < numUniformBlocks; ++_ii) {\n var name = gl.getActiveUniformBlockName(program, _ii);\n var blockSpec = {\n index: _ii,\n usedByVertexShader: gl.getActiveUniformBlockParameter(program, _ii, gl.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),\n usedByFragmentShader: gl.getActiveUniformBlockParameter(program, _ii, gl.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),\n size: gl.getActiveUniformBlockParameter(program, _ii, gl.UNIFORM_BLOCK_DATA_SIZE),\n uniformIndices: gl.getActiveUniformBlockParameter(program, _ii, gl.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES)\n };\n blockSpec.used = blockSpec.usedByVertexSahder || blockSpec.usedByFragmentShader;\n blockSpecs[name] = blockSpec;\n }\n\n return {\n blockSpecs: blockSpecs,\n uniformData: uniformData\n };\n}\n\nvar arraySuffixRE = /\\[\\d+\\]\\.$/; // better way to check?\n\n/**\n * Represents a UniformBlockObject including an ArrayBuffer with all the uniform values\n * and a corresponding WebGLBuffer to hold those values on the GPU\n *\n * @typedef {Object} UniformBlockInfo\n * @property {string} name The name of the block\n * @property {ArrayBuffer} array The array buffer that contains the uniform values\n * @property {Float32Array} asFloat A float view on the array buffer. This is useful\n * inspecting the contents of the buffer in the debugger.\n * @property {WebGLBuffer} buffer A WebGL buffer that will hold a copy of the uniform values for rendering.\n * @property {number} [offset] offset into buffer\n * @property {Object.} uniforms A uniform name to ArrayBufferView map.\n * each Uniform has a correctly typed `ArrayBufferView` into array at the correct offset\n * and length of that uniform. So for example a float uniform would have a 1 float `Float32Array`\n * view. A single mat4 would have a 16 element `Float32Array` view. An ivec2 would have an\n * `Int32Array` view, etc.\n * @memberOf module:twgl\n */\n\n/**\n * Creates a `UniformBlockInfo` for the specified block\n *\n * Note: **If the blockName matches no existing blocks a warning is printed to the console and a dummy\n * `UniformBlockInfo` is returned**. This is because when debugging GLSL\n * it is common to comment out large portions of a shader or for example set\n * the final output to a constant. When that happens blocks get optimized out.\n * If this function did not create dummy blocks your code would crash when debugging.\n *\n * @param {WebGL2RenderingContext} gl A WebGL2RenderingContext\n * @param {WebGLProgram} program A WebGLProgram\n * @param {module:twgl.UniformBlockSpec} uinformBlockSpec. A UniformBlockSpec as returned\n * from {@link module:twgl.createUniformBlockSpecFromProgram}.\n * @param {string} blockName The name of the block.\n * @return {module:twgl.UniformBlockInfo} The created UniformBlockInfo\n * @memberOf module:twgl/programs\n */\n\nfunction createUniformBlockInfoFromProgram(gl, program, uniformBlockSpec, blockName) {\n var blockSpecs = uniformBlockSpec.blockSpecs;\n var uniformData = uniformBlockSpec.uniformData;\n var blockSpec = blockSpecs[blockName];\n\n if (!blockSpec) {\n warn(\"no uniform block object named:\", blockName);\n return {\n name: blockName,\n uniforms: {}\n };\n }\n\n var array = new ArrayBuffer(blockSpec.size);\n var buffer = gl.createBuffer();\n var uniformBufferIndex = blockSpec.index;\n gl.bindBuffer(gl.UNIFORM_BUFFER, buffer);\n gl.uniformBlockBinding(program, blockSpec.index, uniformBufferIndex);\n var prefix = blockName + \".\";\n\n if (arraySuffixRE.test(prefix)) {\n prefix = prefix.replace(arraySuffixRE, \".\");\n }\n\n var uniforms = {};\n blockSpec.uniformIndices.forEach(function (uniformNdx) {\n var data = uniformData[uniformNdx];\n var typeInfo = typeMap[data.type];\n var Type = typeInfo.Type;\n var length = data.size * typeInfo.size;\n var name = data.name;\n\n if (name.substr(0, prefix.length) === prefix) {\n name = name.substr(prefix.length);\n }\n\n uniforms[name] = new Type(array, data.offset, length / Type.BYTES_PER_ELEMENT);\n });\n return {\n name: blockName,\n array: array,\n asFloat: new Float32Array(array),\n // for debugging\n buffer: buffer,\n uniforms: uniforms\n };\n}\n/**\n * Creates a `UniformBlockInfo` for the specified block\n *\n * Note: **If the blockName matches no existing blocks a warning is printed to the console and a dummy\n * `UniformBlockInfo` is returned**. This is because when debugging GLSL\n * it is common to comment out large portions of a shader or for example set\n * the final output to a constant. When that happens blocks get optimized out.\n * If this function did not create dummy blocks your code would crash when debugging.\n *\n * @param {WebGL2RenderingContext} gl A WebGL2RenderingContext\n * @param {module:twgl.ProgramInfo} programInfo a `ProgramInfo`\n * as returned from {@link module:twgl.createProgramInfo}\n * @param {string} blockName The name of the block.\n * @return {module:twgl.UniformBlockInfo} The created UniformBlockInfo\n * @memberOf module:twgl/programs\n */\n\n\nfunction createUniformBlockInfo(gl, programInfo, blockName) {\n return createUniformBlockInfoFromProgram(gl, programInfo.program, programInfo.uniformBlockSpec, blockName);\n}\n/**\n * Binds a unform block to the matching uniform block point.\n * Matches by blocks by name so blocks must have the same name not just the same\n * structure.\n *\n * If you have changed any values and you upload the valus into the corresponding WebGLBuffer\n * call {@link module:twgl.setUniformBlock} instead.\n *\n * @param {WebGL2RenderingContext} gl A WebGL 2 rendering context.\n * @param {(module:twgl.ProgramInfo|module:twgl.UniformBlockSpec)} programInfo a `ProgramInfo`\n * as returned from {@link module:twgl.createProgramInfo} or or `UniformBlockSpec` as\n * returned from {@link module:twgl.createUniformBlockSpecFromProgram}.\n * @param {module:twgl.UniformBlockInfo} uniformBlockInfo a `UniformBlockInfo` as returned from\n * {@link module:twgl.createUniformBlockInfo}.\n * @return {bool} true if buffer was bound. If the programInfo has no block with the same block name\n * no buffer is bound.\n * @memberOf module:twgl/programs\n */\n\n\nfunction bindUniformBlock(gl, programInfo, uniformBlockInfo) {\n var uniformBlockSpec = programInfo.uniformBlockSpec || programInfo;\n var blockSpec = uniformBlockSpec.blockSpecs[uniformBlockInfo.name];\n\n if (blockSpec) {\n var bufferBindIndex = blockSpec.index;\n gl.bindBufferRange(gl.UNIFORM_BUFFER, bufferBindIndex, uniformBlockInfo.buffer, uniformBlockInfo.offset || 0, uniformBlockInfo.array.byteLength);\n return true;\n }\n\n return false;\n}\n/**\n * Uploads the current uniform values to the corresponding WebGLBuffer\n * and binds that buffer to the program's corresponding bind point for the uniform block object.\n *\n * If you haven't changed any values and you only need to bind the uniform block object\n * call {@link module:twgl.bindUniformBlock} instead.\n *\n * @param {WebGL2RenderingContext} gl A WebGL 2 rendering context.\n * @param {(module:twgl.ProgramInfo|module:twgl.UniformBlockSpec)} programInfo a `ProgramInfo`\n * as returned from {@link module:twgl.createProgramInfo} or or `UniformBlockSpec` as\n * returned from {@link module:twgl.createUniformBlockSpecFromProgram}.\n * @param {module:twgl.UniformBlockInfo} uniformBlockInfo a `UniformBlockInfo` as returned from\n * {@link module:twgl.createUniformBlockInfo}.\n * @memberOf module:twgl/programs\n */\n\n\nfunction setUniformBlock(gl, programInfo, uniformBlockInfo) {\n if (bindUniformBlock(gl, programInfo, uniformBlockInfo)) {\n gl.bufferData(gl.UNIFORM_BUFFER, uniformBlockInfo.array, gl.DYNAMIC_DRAW);\n }\n}\n/**\n * Sets values of a uniform block object\n *\n * @param {module:twgl.UniformBlockInfo} uniformBlockInfo A UniformBlockInfo as returned by {@link module:twgl.createUniformBlockInfo}.\n * @param {Object.} values A uniform name to value map where the value is correct for the given\n * type of uniform. So for example given a block like\n *\n * uniform SomeBlock {\n * float someFloat;\n * vec2 someVec2;\n * vec3 someVec3Array[2];\n * int someInt;\n * }\n *\n * You can set the values of the uniform block with\n *\n * twgl.setBlockUniforms(someBlockInfo, {\n * someFloat: 12.3,\n * someVec2: [1, 2],\n * someVec3Array: [1, 2, 3, 4, 5, 6],\n * someInt: 5,\n * }\n *\n * Arrays can be JavaScript arrays or typed arrays\n *\n * Any name that doesn't match will be ignored\n * @memberOf module:twgl/programs\n */\n\n\nfunction setBlockUniforms(uniformBlockInfo, values) {\n var uniforms = uniformBlockInfo.uniforms;\n\n for (var name in values) {\n var array = uniforms[name];\n\n if (array) {\n var value = values[name];\n\n if (value.length) {\n array.set(value);\n } else {\n array[0] = value;\n }\n }\n }\n}\n/**\n * Set uniforms and binds related textures.\n *\n * example:\n *\n * const programInfo = createProgramInfo(\n * gl, [\"some-vs\", \"some-fs\"]);\n *\n * const tex1 = gl.createTexture();\n * const tex2 = gl.createTexture();\n *\n * ... assume we setup the textures with data ...\n *\n * const uniforms = {\n * u_someSampler: tex1,\n * u_someOtherSampler: tex2,\n * u_someColor: [1,0,0,1],\n * u_somePosition: [0,1,1],\n * u_someMatrix: [\n * 1,0,0,0,\n * 0,1,0,0,\n * 0,0,1,0,\n * 0,0,0,0,\n * ],\n * };\n *\n * gl.useProgram(program);\n *\n * This will automatically bind the textures AND set the\n * uniforms.\n *\n * twgl.setUniforms(programInfo, uniforms);\n *\n * For the example above it is equivalent to\n *\n * var texUnit = 0;\n * gl.activeTexture(gl.TEXTURE0 + texUnit);\n * gl.bindTexture(gl.TEXTURE_2D, tex1);\n * gl.uniform1i(u_someSamplerLocation, texUnit++);\n * gl.activeTexture(gl.TEXTURE0 + texUnit);\n * gl.bindTexture(gl.TEXTURE_2D, tex2);\n * gl.uniform1i(u_someSamplerLocation, texUnit++);\n * gl.uniform4fv(u_someColorLocation, [1, 0, 0, 1]);\n * gl.uniform3fv(u_somePositionLocation, [0, 1, 1]);\n * gl.uniformMatrix4fv(u_someMatrix, false, [\n * 1,0,0,0,\n * 0,1,0,0,\n * 0,0,1,0,\n * 0,0,0,0,\n * ]);\n *\n * Note it is perfectly reasonable to call `setUniforms` multiple times. For example\n *\n * const uniforms = {\n * u_someSampler: tex1,\n * u_someOtherSampler: tex2,\n * };\n *\n * const moreUniforms {\n * u_someColor: [1,0,0,1],\n * u_somePosition: [0,1,1],\n * u_someMatrix: [\n * 1,0,0,0,\n * 0,1,0,0,\n * 0,0,1,0,\n * 0,0,0,0,\n * ],\n * };\n *\n * twgl.setUniforms(programInfo, uniforms);\n * twgl.setUniforms(programInfo, moreUniforms);\n *\n * You can also add WebGLSamplers to uniform samplers as in\n *\n * const uniforms = {\n * u_someSampler: {\n * texture: someWebGLTexture,\n * sampler: someWebGLSampler,\n * },\n * };\n *\n * In which case both the sampler and texture will be bound to the\n * same unit.\n *\n * @param {(module:twgl.ProgramInfo|Object.)} setters a `ProgramInfo` as returned from `createProgramInfo` or the setters returned from\n * `createUniformSetters`.\n * @param {Object.} values an object with values for the\n * uniforms.\n * You can pass multiple objects by putting them in an array or by calling with more arguments.For example\n *\n * const sharedUniforms = {\n * u_fogNear: 10,\n * u_projection: ...\n * ...\n * };\n *\n * const localUniforms = {\n * u_world: ...\n * u_diffuseColor: ...\n * };\n *\n * twgl.setUniforms(programInfo, sharedUniforms, localUniforms);\n *\n * // is the same as\n *\n * twgl.setUniforms(programInfo, [sharedUniforms, localUniforms]);\n *\n * // is the same as\n *\n * twgl.setUniforms(programInfo, sharedUniforms);\n * twgl.setUniforms(programInfo, localUniforms};\n *\n * @memberOf module:twgl/programs\n */\n\n\nfunction setUniforms(setters, values) {\n // eslint-disable-line\n var actualSetters = setters.uniformSetters || setters;\n var numArgs = arguments.length;\n\n for (var andx = 1; andx < numArgs; ++andx) {\n var vals = arguments[andx];\n\n if (Array.isArray(vals)) {\n var numValues = vals.length;\n\n for (var ii = 0; ii < numValues; ++ii) {\n setUniforms(actualSetters, vals[ii]);\n }\n } else {\n for (var name in vals) {\n var setter = actualSetters[name];\n\n if (setter) {\n setter(vals[name]);\n }\n }\n }\n }\n}\n/**\n * Creates setter functions for all attributes of a shader\n * program. You can pass this to {@link module:twgl.setBuffersAndAttributes} to set all your buffers and attributes.\n *\n * @see {@link module:twgl.setAttributes} for example\n * @param {WebGLProgram} program the program to create setters for.\n * @return {Object.} an object with a setter for each attribute by name.\n * @memberOf module:twgl/programs\n */\n\n\nfunction createAttributeSetters(gl, program) {\n var attribSetters = {};\n var numAttribs = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);\n\n for (var ii = 0; ii < numAttribs; ++ii) {\n var attribInfo = gl.getActiveAttrib(program, ii);\n\n if (isBuiltIn(attribInfo)) {\n continue;\n }\n\n var index = gl.getAttribLocation(program, attribInfo.name);\n var typeInfo = attrTypeMap[attribInfo.type];\n var setter = typeInfo.setter(gl, index, typeInfo);\n setter.location = index;\n attribSetters[attribInfo.name] = setter;\n }\n\n return attribSetters;\n}\n/**\n * Sets attributes and binds buffers (deprecated... use {@link module:twgl.setBuffersAndAttributes})\n *\n * Example:\n *\n * const program = createProgramFromScripts(\n * gl, [\"some-vs\", \"some-fs\");\n *\n * const attribSetters = createAttributeSetters(program);\n *\n * const positionBuffer = gl.createBuffer();\n * const texcoordBuffer = gl.createBuffer();\n *\n * const attribs = {\n * a_position: {buffer: positionBuffer, numComponents: 3},\n * a_texcoord: {buffer: texcoordBuffer, numComponents: 2},\n * };\n *\n * gl.useProgram(program);\n *\n * This will automatically bind the buffers AND set the\n * attributes.\n *\n * setAttributes(attribSetters, attribs);\n *\n * Properties of attribs. For each attrib you can add\n * properties:\n *\n * * type: the type of data in the buffer. Default = gl.FLOAT\n * * normalize: whether or not to normalize the data. Default = false\n * * stride: the stride. Default = 0\n * * offset: offset into the buffer. Default = 0\n * * divisor: the divisor for instances. Default = undefined\n *\n * For example if you had 3 value float positions, 2 value\n * float texcoord and 4 value uint8 colors you'd setup your\n * attribs like this\n *\n * const attribs = {\n * a_position: {buffer: positionBuffer, numComponents: 3},\n * a_texcoord: {buffer: texcoordBuffer, numComponents: 2},\n * a_color: {\n * buffer: colorBuffer,\n * numComponents: 4,\n * type: gl.UNSIGNED_BYTE,\n * normalize: true,\n * },\n * };\n *\n * @param {Object.} setters Attribute setters as returned from createAttributeSetters\n * @param {Object.} buffers AttribInfos mapped by attribute name.\n * @memberOf module:twgl/programs\n * @deprecated use {@link module:twgl.setBuffersAndAttributes}\n */\n\n\nfunction setAttributes(setters, buffers) {\n for (var name in buffers) {\n var setter = setters[name];\n\n if (setter) {\n setter(buffers[name]);\n }\n }\n}\n/**\n * Sets attributes and buffers including the `ELEMENT_ARRAY_BUFFER` if appropriate\n *\n * Example:\n *\n * const programInfo = createProgramInfo(\n * gl, [\"some-vs\", \"some-fs\");\n *\n * const arrays = {\n * position: { numComponents: 3, data: [0, 0, 0, 10, 0, 0, 0, 10, 0, 10, 10, 0], },\n * texcoord: { numComponents: 2, data: [0, 0, 0, 1, 1, 0, 1, 1], },\n * };\n *\n * const bufferInfo = createBufferInfoFromArrays(gl, arrays);\n *\n * gl.useProgram(programInfo.program);\n *\n * This will automatically bind the buffers AND set the\n * attributes.\n *\n * setBuffersAndAttributes(gl, programInfo, bufferInfo);\n *\n * For the example above it is equivilent to\n *\n * gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);\n * gl.enableVertexAttribArray(a_positionLocation);\n * gl.vertexAttribPointer(a_positionLocation, 3, gl.FLOAT, false, 0, 0);\n * gl.bindBuffer(gl.ARRAY_BUFFER, texcoordBuffer);\n * gl.enableVertexAttribArray(a_texcoordLocation);\n * gl.vertexAttribPointer(a_texcoordLocation, 4, gl.FLOAT, false, 0, 0);\n *\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext.\n * @param {(module:twgl.ProgramInfo|Object.)} setters A `ProgramInfo` as returned from {@link module:twgl.createProgrmaInfo} or Attribute setters as returned from {@link module:twgl.createAttributeSetters}\n * @param {(module:twgl.BufferInfo|module:twgl.vertexArrayInfo)} buffers a `BufferInfo` as returned from {@link module:twgl.createBufferInfoFromArrays}.\n * or a `VertexArrayInfo` as returned from {@link module:twgl.createVertexArrayInfo}\n * @memberOf module:twgl/programs\n */\n\n\nfunction setBuffersAndAttributes(gl, programInfo, buffers) {\n if (buffers.vertexArrayObject) {\n gl.bindVertexArray(buffers.vertexArrayObject);\n } else {\n setAttributes(programInfo.attribSetters || programInfo, buffers.attribs);\n\n if (buffers.indices) {\n gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffers.indices);\n }\n }\n}\n/**\n * @typedef {Object} ProgramInfo\n * @property {WebGLProgram} program A shader program\n * @property {Object} uniformSetters object of setters as returned from createUniformSetters,\n * @property {Object} attribSetters object of setters as returned from createAttribSetters,\n * @propetty {module:twgl.UniformBlockSpec} [uniformBlockSpace] a uniform block spec for making UniformBlockInfos with createUniformBlockInfo etc..\n * @property {Object} [transformFeedbackInfo] info for transform feedbacks\n * @memberOf module:twgl\n */\n\n/**\n * Creates a ProgramInfo from an existing program.\n *\n * A ProgramInfo contains\n *\n * programInfo = {\n * program: WebGLProgram,\n * uniformSetters: object of setters as returned from createUniformSetters,\n * attribSetters: object of setters as returned from createAttribSetters,\n * }\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext\n * to use.\n * @param {WebGLProgram} program an existing WebGLProgram.\n * @return {module:twgl.ProgramInfo} The created ProgramInfo.\n * @memberOf module:twgl/programs\n */\n\n\nfunction createProgramInfoFromProgram(gl, program) {\n var uniformSetters = createUniformSetters(gl, program);\n var attribSetters = createAttributeSetters(gl, program);\n var programInfo = {\n program: program,\n uniformSetters: uniformSetters,\n attribSetters: attribSetters\n };\n\n if (utils.isWebGL2(gl)) {\n programInfo.uniformBlockSpec = createUniformBlockSpecFromProgram(gl, program);\n programInfo.transformFeedbackInfo = createTransformFeedbackInfo(gl, program);\n }\n\n return programInfo;\n}\n/**\n * Creates a ProgramInfo from 2 sources.\n *\n * A ProgramInfo contains\n *\n * programInfo = {\n * program: WebGLProgram,\n * uniformSetters: object of setters as returned from createUniformSetters,\n * attribSetters: object of setters as returned from createAttribSetters,\n * }\n *\n * NOTE: There are 4 signatures for this function\n *\n * twgl.createProgramInfo(gl, [vs, fs], options);\n * twgl.createProgramInfo(gl, [vs, fs], opt_errFunc);\n * twgl.createProgramInfo(gl, [vs, fs], opt_attribs, opt_errFunc);\n * twgl.createProgramInfo(gl, [vs, fs], opt_attribs, opt_locations, opt_errFunc);\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext\n * to use.\n * @param {string[]} shaderSources Array of sources for the\n * shaders or ids. The first is assumed to be the vertex shader,\n * the second the fragment shader.\n * @param {module:twgl.ProgramOptions|string[]} [opt_attribs] Options for the program or an array of attribs names. Locations will be assigned by index if not passed in\n * @param {number[]} [opt_locations] The locations for the attributes. A parallel array to opt_attribs letting you assign locations.\n * @param {module:twgl.ErrorCallback} opt_errorCallback callback for errors. By default it just prints an error to the console\n * on error. If you want something else pass an callback. It's passed an error message.\n * @return {module:twgl.ProgramInfo?} The created ProgramInfo or null if it failed to link or compile\n * @memberOf module:twgl/programs\n */\n\n\nfunction createProgramInfo(gl, shaderSources, opt_attribs, opt_locations, opt_errorCallback) {\n var progOptions = getProgramOptions(opt_attribs, opt_locations, opt_errorCallback);\n var good = true;\n shaderSources = shaderSources.map(function (source) {\n // Lets assume if there is no \\n it's an id\n if (source.indexOf(\"\\n\") < 0) {\n var script = getElementById(source);\n\n if (!script) {\n progOptions.errorCallback(\"no element with id: \" + source);\n good = false;\n } else {\n source = script.text;\n }\n }\n\n return source;\n });\n\n if (!good) {\n return null;\n }\n\n var program = createProgramFromSources(gl, shaderSources, progOptions);\n\n if (!program) {\n return null;\n }\n\n return createProgramInfoFromProgram(gl, program);\n}\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.axisRotate = axisRotate;\nexports.axisRotation = axisRotation;\nexports.copy = copy;\nexports.frustum = frustum;\nexports.getAxis = getAxis;\nexports.getTranslation = getTranslation;\nexports.identity = identity;\nexports.inverse = inverse;\nexports.lookAt = lookAt;\nexports.multiply = multiply;\nexports.negate = negate;\nexports.ortho = ortho;\nexports.perspective = perspective;\nexports.rotateX = rotateX;\nexports.rotateY = rotateY;\nexports.rotateZ = rotateZ;\nexports.rotationX = rotationX;\nexports.rotationY = rotationY;\nexports.rotationZ = rotationZ;\nexports.scale = scale;\nexports.scaling = scaling;\nexports.setAxis = setAxis;\nexports.setDefaultType = setDefaultType;\nexports.setTranslation = setTranslation;\nexports.transformDirection = transformDirection;\nexports.transformNormal = transformNormal;\nexports.transformPoint = transformPoint;\nexports.translate = translate;\nexports.translation = translation;\nexports.transpose = transpose;\n\nvar v3 = _interopRequireWildcard(__webpack_require__(3));\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\n/*\n * Copyright 2015, Gregg Tavares.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following disclaimer\n * in the documentation and/or other materials provided with the\n * distribution.\n * * Neither the name of Gregg Tavares. nor the names of his\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/**\n * 4x4 Matrix math math functions.\n *\n * Almost all functions take an optional `dst` argument. If it is not passed in the\n * functions will create a new matrix. In other words you can do this\n *\n * const mat = m4.translation([1, 2, 3]); // Creates a new translation matrix\n *\n * or\n *\n * const mat = m4.create();\n * m4.translation([1, 2, 3], mat); // Puts translation matrix in mat.\n *\n * The first style is often easier but depending on where it's used it generates garbage where\n * as there is almost never allocation with the second style.\n *\n * It is always save to pass any matrix as the destination. So for example\n *\n * const mat = m4.identity();\n * const trans = m4.translation([1, 2, 3]);\n * m4.multiply(mat, trans, mat); // Multiplies mat * trans and puts result in mat.\n *\n * @module twgl/m4\n */\nvar MatType = Float32Array;\nvar tempV3a = v3.create();\nvar tempV3b = v3.create();\nvar tempV3c = v3.create();\n/**\n * A JavaScript array with 16 values or a Float32Array with 16 values.\n * When created by the library will create the default type which is `Float32Array`\n * but can be set by calling {@link module:twgl/m4.setDefaultType}.\n * @typedef {(number[]|Float32Array)} Mat4\n * @memberOf module:twgl/m4\n */\n\n/**\n * Sets the type this library creates for a Mat4\n * @param {constructor} ctor the constructor for the type. Either `Float32Array` or `Array`\n * @return {constructor} previous constructor for Mat4\n */\n\nfunction setDefaultType(ctor) {\n var oldType = MatType;\n MatType = ctor;\n return oldType;\n}\n/**\n * Negates a matrix.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} -m.\n * @memberOf module:twgl/m4\n */\n\n\nfunction negate(m, dst) {\n dst = dst || new MatType(16);\n dst[0] = -m[0];\n dst[1] = -m[1];\n dst[2] = -m[2];\n dst[3] = -m[3];\n dst[4] = -m[4];\n dst[5] = -m[5];\n dst[6] = -m[6];\n dst[7] = -m[7];\n dst[8] = -m[8];\n dst[9] = -m[9];\n dst[10] = -m[10];\n dst[11] = -m[11];\n dst[12] = -m[12];\n dst[13] = -m[13];\n dst[14] = -m[14];\n dst[15] = -m[15];\n return dst;\n}\n/**\n * Copies a matrix.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {module:twgl/m4.Mat4} [dst] The matrix.\n * @return {module:twgl/m4.Mat4} A copy of m.\n * @memberOf module:twgl/m4\n */\n\n\nfunction copy(m, dst) {\n dst = dst || new MatType(16);\n dst[0] = m[0];\n dst[1] = m[1];\n dst[2] = m[2];\n dst[3] = m[3];\n dst[4] = m[4];\n dst[5] = m[5];\n dst[6] = m[6];\n dst[7] = m[7];\n dst[8] = m[8];\n dst[9] = m[9];\n dst[10] = m[10];\n dst[11] = m[11];\n dst[12] = m[12];\n dst[13] = m[13];\n dst[14] = m[14];\n dst[15] = m[15];\n return dst;\n}\n/**\n * Creates an n-by-n identity matrix.\n *\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} An n-by-n identity matrix.\n * @memberOf module:twgl/m4\n */\n\n\nfunction identity(dst) {\n dst = dst || new MatType(16);\n dst[0] = 1;\n dst[1] = 0;\n dst[2] = 0;\n dst[3] = 0;\n dst[4] = 0;\n dst[5] = 1;\n dst[6] = 0;\n dst[7] = 0;\n dst[8] = 0;\n dst[9] = 0;\n dst[10] = 1;\n dst[11] = 0;\n dst[12] = 0;\n dst[13] = 0;\n dst[14] = 0;\n dst[15] = 1;\n return dst;\n}\n/**\n * Takes the transpose of a matrix.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} The transpose of m.\n * @memberOf module:twgl/m4\n */\n\n\nfunction transpose(m, dst) {\n dst = dst || new MatType(16);\n\n if (dst === m) {\n var t;\n t = m[1];\n m[1] = m[4];\n m[4] = t;\n t = m[2];\n m[2] = m[8];\n m[8] = t;\n t = m[3];\n m[3] = m[12];\n m[12] = t;\n t = m[6];\n m[6] = m[9];\n m[9] = t;\n t = m[7];\n m[7] = m[13];\n m[13] = t;\n t = m[11];\n m[11] = m[14];\n m[14] = t;\n return dst;\n }\n\n var m00 = m[0 * 4 + 0];\n var m01 = m[0 * 4 + 1];\n var m02 = m[0 * 4 + 2];\n var m03 = m[0 * 4 + 3];\n var m10 = m[1 * 4 + 0];\n var m11 = m[1 * 4 + 1];\n var m12 = m[1 * 4 + 2];\n var m13 = m[1 * 4 + 3];\n var m20 = m[2 * 4 + 0];\n var m21 = m[2 * 4 + 1];\n var m22 = m[2 * 4 + 2];\n var m23 = m[2 * 4 + 3];\n var m30 = m[3 * 4 + 0];\n var m31 = m[3 * 4 + 1];\n var m32 = m[3 * 4 + 2];\n var m33 = m[3 * 4 + 3];\n dst[0] = m00;\n dst[1] = m10;\n dst[2] = m20;\n dst[3] = m30;\n dst[4] = m01;\n dst[5] = m11;\n dst[6] = m21;\n dst[7] = m31;\n dst[8] = m02;\n dst[9] = m12;\n dst[10] = m22;\n dst[11] = m32;\n dst[12] = m03;\n dst[13] = m13;\n dst[14] = m23;\n dst[15] = m33;\n return dst;\n}\n/**\n * Computes the inverse of a 4-by-4 matrix.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} The inverse of m.\n * @memberOf module:twgl/m4\n */\n\n\nfunction inverse(m, dst) {\n dst = dst || new MatType(16);\n var m00 = m[0 * 4 + 0];\n var m01 = m[0 * 4 + 1];\n var m02 = m[0 * 4 + 2];\n var m03 = m[0 * 4 + 3];\n var m10 = m[1 * 4 + 0];\n var m11 = m[1 * 4 + 1];\n var m12 = m[1 * 4 + 2];\n var m13 = m[1 * 4 + 3];\n var m20 = m[2 * 4 + 0];\n var m21 = m[2 * 4 + 1];\n var m22 = m[2 * 4 + 2];\n var m23 = m[2 * 4 + 3];\n var m30 = m[3 * 4 + 0];\n var m31 = m[3 * 4 + 1];\n var m32 = m[3 * 4 + 2];\n var m33 = m[3 * 4 + 3];\n var tmp_0 = m22 * m33;\n var tmp_1 = m32 * m23;\n var tmp_2 = m12 * m33;\n var tmp_3 = m32 * m13;\n var tmp_4 = m12 * m23;\n var tmp_5 = m22 * m13;\n var tmp_6 = m02 * m33;\n var tmp_7 = m32 * m03;\n var tmp_8 = m02 * m23;\n var tmp_9 = m22 * m03;\n var tmp_10 = m02 * m13;\n var tmp_11 = m12 * m03;\n var tmp_12 = m20 * m31;\n var tmp_13 = m30 * m21;\n var tmp_14 = m10 * m31;\n var tmp_15 = m30 * m11;\n var tmp_16 = m10 * m21;\n var tmp_17 = m20 * m11;\n var tmp_18 = m00 * m31;\n var tmp_19 = m30 * m01;\n var tmp_20 = m00 * m21;\n var tmp_21 = m20 * m01;\n var tmp_22 = m00 * m11;\n var tmp_23 = m10 * m01;\n var t0 = tmp_0 * m11 + tmp_3 * m21 + tmp_4 * m31 - (tmp_1 * m11 + tmp_2 * m21 + tmp_5 * m31);\n var t1 = tmp_1 * m01 + tmp_6 * m21 + tmp_9 * m31 - (tmp_0 * m01 + tmp_7 * m21 + tmp_8 * m31);\n var t2 = tmp_2 * m01 + tmp_7 * m11 + tmp_10 * m31 - (tmp_3 * m01 + tmp_6 * m11 + tmp_11 * m31);\n var t3 = tmp_5 * m01 + tmp_8 * m11 + tmp_11 * m21 - (tmp_4 * m01 + tmp_9 * m11 + tmp_10 * m21);\n var d = 1.0 / (m00 * t0 + m10 * t1 + m20 * t2 + m30 * t3);\n dst[0] = d * t0;\n dst[1] = d * t1;\n dst[2] = d * t2;\n dst[3] = d * t3;\n dst[4] = d * (tmp_1 * m10 + tmp_2 * m20 + tmp_5 * m30 - (tmp_0 * m10 + tmp_3 * m20 + tmp_4 * m30));\n dst[5] = d * (tmp_0 * m00 + tmp_7 * m20 + tmp_8 * m30 - (tmp_1 * m00 + tmp_6 * m20 + tmp_9 * m30));\n dst[6] = d * (tmp_3 * m00 + tmp_6 * m10 + tmp_11 * m30 - (tmp_2 * m00 + tmp_7 * m10 + tmp_10 * m30));\n dst[7] = d * (tmp_4 * m00 + tmp_9 * m10 + tmp_10 * m20 - (tmp_5 * m00 + tmp_8 * m10 + tmp_11 * m20));\n dst[8] = d * (tmp_12 * m13 + tmp_15 * m23 + tmp_16 * m33 - (tmp_13 * m13 + tmp_14 * m23 + tmp_17 * m33));\n dst[9] = d * (tmp_13 * m03 + tmp_18 * m23 + tmp_21 * m33 - (tmp_12 * m03 + tmp_19 * m23 + tmp_20 * m33));\n dst[10] = d * (tmp_14 * m03 + tmp_19 * m13 + tmp_22 * m33 - (tmp_15 * m03 + tmp_18 * m13 + tmp_23 * m33));\n dst[11] = d * (tmp_17 * m03 + tmp_20 * m13 + tmp_23 * m23 - (tmp_16 * m03 + tmp_21 * m13 + tmp_22 * m23));\n dst[12] = d * (tmp_14 * m22 + tmp_17 * m32 + tmp_13 * m12 - (tmp_16 * m32 + tmp_12 * m12 + tmp_15 * m22));\n dst[13] = d * (tmp_20 * m32 + tmp_12 * m02 + tmp_19 * m22 - (tmp_18 * m22 + tmp_21 * m32 + tmp_13 * m02));\n dst[14] = d * (tmp_18 * m12 + tmp_23 * m32 + tmp_15 * m02 - (tmp_22 * m32 + tmp_14 * m02 + tmp_19 * m12));\n dst[15] = d * (tmp_22 * m22 + tmp_16 * m02 + tmp_21 * m12 - (tmp_20 * m12 + tmp_23 * m22 + tmp_17 * m02));\n return dst;\n}\n/**\n * Multiplies two 4-by-4 matrices with a on the left and b on the right\n * @param {module:twgl/m4.Mat4} a The matrix on the left.\n * @param {module:twgl/m4.Mat4} b The matrix on the right.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} The matrix product of a and b.\n * @memberOf module:twgl/m4\n */\n\n\nfunction multiply(a, b, dst) {\n dst = dst || new MatType(16);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a10 = a[4 + 0];\n var a11 = a[4 + 1];\n var a12 = a[4 + 2];\n var a13 = a[4 + 3];\n var a20 = a[8 + 0];\n var a21 = a[8 + 1];\n var a22 = a[8 + 2];\n var a23 = a[8 + 3];\n var a30 = a[12 + 0];\n var a31 = a[12 + 1];\n var a32 = a[12 + 2];\n var a33 = a[12 + 3];\n var b00 = b[0];\n var b01 = b[1];\n var b02 = b[2];\n var b03 = b[3];\n var b10 = b[4 + 0];\n var b11 = b[4 + 1];\n var b12 = b[4 + 2];\n var b13 = b[4 + 3];\n var b20 = b[8 + 0];\n var b21 = b[8 + 1];\n var b22 = b[8 + 2];\n var b23 = b[8 + 3];\n var b30 = b[12 + 0];\n var b31 = b[12 + 1];\n var b32 = b[12 + 2];\n var b33 = b[12 + 3];\n dst[0] = a00 * b00 + a10 * b01 + a20 * b02 + a30 * b03;\n dst[1] = a01 * b00 + a11 * b01 + a21 * b02 + a31 * b03;\n dst[2] = a02 * b00 + a12 * b01 + a22 * b02 + a32 * b03;\n dst[3] = a03 * b00 + a13 * b01 + a23 * b02 + a33 * b03;\n dst[4] = a00 * b10 + a10 * b11 + a20 * b12 + a30 * b13;\n dst[5] = a01 * b10 + a11 * b11 + a21 * b12 + a31 * b13;\n dst[6] = a02 * b10 + a12 * b11 + a22 * b12 + a32 * b13;\n dst[7] = a03 * b10 + a13 * b11 + a23 * b12 + a33 * b13;\n dst[8] = a00 * b20 + a10 * b21 + a20 * b22 + a30 * b23;\n dst[9] = a01 * b20 + a11 * b21 + a21 * b22 + a31 * b23;\n dst[10] = a02 * b20 + a12 * b21 + a22 * b22 + a32 * b23;\n dst[11] = a03 * b20 + a13 * b21 + a23 * b22 + a33 * b23;\n dst[12] = a00 * b30 + a10 * b31 + a20 * b32 + a30 * b33;\n dst[13] = a01 * b30 + a11 * b31 + a21 * b32 + a31 * b33;\n dst[14] = a02 * b30 + a12 * b31 + a22 * b32 + a32 * b33;\n dst[15] = a03 * b30 + a13 * b31 + a23 * b32 + a33 * b33;\n return dst;\n}\n/**\n * Sets the translation component of a 4-by-4 matrix to the given\n * vector.\n * @param {module:twgl/m4.Mat4} a The matrix.\n * @param {Vec3} v The vector.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} a once modified.\n * @memberOf module:twgl/m4\n */\n\n\nfunction setTranslation(a, v, dst) {\n dst = dst || identity();\n\n if (a !== dst) {\n dst[0] = a[0];\n dst[1] = a[1];\n dst[2] = a[2];\n dst[3] = a[3];\n dst[4] = a[4];\n dst[5] = a[5];\n dst[6] = a[6];\n dst[7] = a[7];\n dst[8] = a[8];\n dst[9] = a[9];\n dst[10] = a[10];\n dst[11] = a[11];\n }\n\n dst[12] = v[0];\n dst[13] = v[1];\n dst[14] = v[2];\n dst[15] = 1;\n return dst;\n}\n/**\n * Returns the translation component of a 4-by-4 matrix as a vector with 3\n * entries.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {Vec3} [dst] vector..\n * @return {Vec3} The translation component of m.\n * @memberOf module:twgl/m4\n */\n\n\nfunction getTranslation(m, dst) {\n dst = dst || v3.create();\n dst[0] = m[12];\n dst[1] = m[13];\n dst[2] = m[14];\n return dst;\n}\n/**\n * Returns an axis of a 4x4 matrix as a vector with 3 entries\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {number} axis The axis 0 = x, 1 = y, 2 = z;\n * @return {Vec3} [dst] vector.\n * @return {Vec3} The axis component of m.\n * @memberOf module:twgl/m4\n */\n\n\nfunction getAxis(m, axis, dst) {\n dst = dst || v3.create();\n var off = axis * 4;\n dst[0] = m[off + 0];\n dst[1] = m[off + 1];\n dst[2] = m[off + 2];\n return dst;\n}\n/**\n * Sets an axis of a 4x4 matrix as a vector with 3 entries\n * @param {Vec3} v the axis vector\n * @param {number} axis The axis 0 = x, 1 = y, 2 = z;\n * @param {module:twgl/m4.Mat4} [dst] The matrix to set. If none a new one is created\n * @return {module:twgl/m4.Mat4} dst\n * @memberOf module:twgl/m4\n */\n\n\nfunction setAxis(a, v, axis, dst) {\n if (dst !== a) {\n dst = copy(a, dst);\n }\n\n var off = axis * 4;\n dst[off + 0] = v[0];\n dst[off + 1] = v[1];\n dst[off + 2] = v[2];\n return dst;\n}\n/**\n * Computes a 4-by-4 perspective transformation matrix given the angular height\n * of the frustum, the aspect ratio, and the near and far clipping planes. The\n * arguments define a frustum extending in the negative z direction. The given\n * angle is the vertical angle of the frustum, and the horizontal angle is\n * determined to produce the given aspect ratio. The arguments near and far are\n * the distances to the near and far clipping planes. Note that near and far\n * are not z coordinates, but rather they are distances along the negative\n * z-axis. The matrix generated sends the viewing frustum to the unit box.\n * We assume a unit box extending from -1 to 1 in the x and y dimensions and\n * from 0 to 1 in the z dimension.\n * @param {number} fieldOfViewYInRadians The camera angle from top to bottom (in radians).\n * @param {number} aspect The aspect ratio width / height.\n * @param {number} zNear The depth (negative z coordinate)\n * of the near clipping plane.\n * @param {number} zFar The depth (negative z coordinate)\n * of the far clipping plane.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} The perspective matrix.\n * @memberOf module:twgl/m4\n */\n\n\nfunction perspective(fieldOfViewYInRadians, aspect, zNear, zFar, dst) {\n dst = dst || new MatType(16);\n var f = Math.tan(Math.PI * 0.5 - 0.5 * fieldOfViewYInRadians);\n var rangeInv = 1.0 / (zNear - zFar);\n dst[0] = f / aspect;\n dst[1] = 0;\n dst[2] = 0;\n dst[3] = 0;\n dst[4] = 0;\n dst[5] = f;\n dst[6] = 0;\n dst[7] = 0;\n dst[8] = 0;\n dst[9] = 0;\n dst[10] = (zNear + zFar) * rangeInv;\n dst[11] = -1;\n dst[12] = 0;\n dst[13] = 0;\n dst[14] = zNear * zFar * rangeInv * 2;\n dst[15] = 0;\n return dst;\n}\n/**\n * Computes a 4-by-4 othogonal transformation matrix given the left, right,\n * bottom, and top dimensions of the near clipping plane as well as the\n * near and far clipping plane distances.\n * @param {number} left Left side of the near clipping plane viewport.\n * @param {number} right Right side of the near clipping plane viewport.\n * @param {number} top Top of the near clipping plane viewport.\n * @param {number} bottom Bottom of the near clipping plane viewport.\n * @param {number} near The depth (negative z coordinate)\n * of the near clipping plane.\n * @param {number} far The depth (negative z coordinate)\n * of the far clipping plane.\n * @param {module:twgl/m4.Mat4} [dst] Output matrix.\n * @return {module:twgl/m4.Mat4} The perspective matrix.\n * @memberOf module:twgl/m4\n */\n\n\nfunction ortho(left, right, bottom, top, near, far, dst) {\n dst = dst || new MatType(16);\n dst[0] = 2 / (right - left);\n dst[1] = 0;\n dst[2] = 0;\n dst[3] = 0;\n dst[4] = 0;\n dst[5] = 2 / (top - bottom);\n dst[6] = 0;\n dst[7] = 0;\n dst[8] = 0;\n dst[9] = 0;\n dst[10] = 2 / (near - far);\n dst[11] = 0;\n dst[12] = (right + left) / (left - right);\n dst[13] = (top + bottom) / (bottom - top);\n dst[14] = (far + near) / (near - far);\n dst[15] = 1;\n return dst;\n}\n/**\n * Computes a 4-by-4 perspective transformation matrix given the left, right,\n * top, bottom, near and far clipping planes. The arguments define a frustum\n * extending in the negative z direction. The arguments near and far are the\n * distances to the near and far clipping planes. Note that near and far are not\n * z coordinates, but rather they are distances along the negative z-axis. The\n * matrix generated sends the viewing frustum to the unit box. We assume a unit\n * box extending from -1 to 1 in the x and y dimensions and from 0 to 1 in the z\n * dimension.\n * @param {number} left The x coordinate of the left plane of the box.\n * @param {number} right The x coordinate of the right plane of the box.\n * @param {number} bottom The y coordinate of the bottom plane of the box.\n * @param {number} top The y coordinate of the right plane of the box.\n * @param {number} near The negative z coordinate of the near plane of the box.\n * @param {number} far The negative z coordinate of the far plane of the box.\n * @param {module:twgl/m4.Mat4} [dst] Output matrix.\n * @return {module:twgl/m4.Mat4} The perspective projection matrix.\n * @memberOf module:twgl/m4\n */\n\n\nfunction frustum(left, right, bottom, top, near, far, dst) {\n dst = dst || new MatType(16);\n var dx = right - left;\n var dy = top - bottom;\n var dz = near - far;\n dst[0] = 2 * near / dx;\n dst[1] = 0;\n dst[2] = 0;\n dst[3] = 0;\n dst[4] = 0;\n dst[5] = 2 * near / dy;\n dst[6] = 0;\n dst[7] = 0;\n dst[8] = (left + right) / dx;\n dst[9] = (top + bottom) / dy;\n dst[10] = far / dz;\n dst[11] = -1;\n dst[12] = 0;\n dst[13] = 0;\n dst[14] = near * far / dz;\n dst[15] = 0;\n return dst;\n}\n/**\n * Computes a 4-by-4 look-at transformation.\n *\n * This is a matrix which positions the camera itself. If you want\n * a view matrix (a matrix which moves things in front of the camera)\n * take the inverse of this.\n *\n * @param {Vec3} eye The position of the eye.\n * @param {Vec3} target The position meant to be viewed.\n * @param {Vec3} up A vector pointing up.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} The look-at matrix.\n * @memberOf module:twgl/m4\n */\n\n\nfunction lookAt(eye, target, up, dst) {\n dst = dst || new MatType(16);\n var xAxis = tempV3a;\n var yAxis = tempV3b;\n var zAxis = tempV3c;\n v3.normalize(v3.subtract(eye, target, zAxis), zAxis);\n v3.normalize(v3.cross(up, zAxis, xAxis), xAxis);\n v3.normalize(v3.cross(zAxis, xAxis, yAxis), yAxis);\n dst[0] = xAxis[0];\n dst[1] = xAxis[1];\n dst[2] = xAxis[2];\n dst[3] = 0;\n dst[4] = yAxis[0];\n dst[5] = yAxis[1];\n dst[6] = yAxis[2];\n dst[7] = 0;\n dst[8] = zAxis[0];\n dst[9] = zAxis[1];\n dst[10] = zAxis[2];\n dst[11] = 0;\n dst[12] = eye[0];\n dst[13] = eye[1];\n dst[14] = eye[2];\n dst[15] = 1;\n return dst;\n}\n/**\n * Creates a 4-by-4 matrix which translates by the given vector v.\n * @param {Vec3} v The vector by\n * which to translate.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} The translation matrix.\n * @memberOf module:twgl/m4\n */\n\n\nfunction translation(v, dst) {\n dst = dst || new MatType(16);\n dst[0] = 1;\n dst[1] = 0;\n dst[2] = 0;\n dst[3] = 0;\n dst[4] = 0;\n dst[5] = 1;\n dst[6] = 0;\n dst[7] = 0;\n dst[8] = 0;\n dst[9] = 0;\n dst[10] = 1;\n dst[11] = 0;\n dst[12] = v[0];\n dst[13] = v[1];\n dst[14] = v[2];\n dst[15] = 1;\n return dst;\n}\n/**\n * Modifies the given 4-by-4 matrix by translation by the given vector v.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {Vec3} v The vector by\n * which to translate.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} m once modified.\n * @memberOf module:twgl/m4\n */\n\n\nfunction translate(m, v, dst) {\n dst = dst || new MatType(16);\n var v0 = v[0];\n var v1 = v[1];\n var v2 = v[2];\n var m00 = m[0];\n var m01 = m[1];\n var m02 = m[2];\n var m03 = m[3];\n var m10 = m[1 * 4 + 0];\n var m11 = m[1 * 4 + 1];\n var m12 = m[1 * 4 + 2];\n var m13 = m[1 * 4 + 3];\n var m20 = m[2 * 4 + 0];\n var m21 = m[2 * 4 + 1];\n var m22 = m[2 * 4 + 2];\n var m23 = m[2 * 4 + 3];\n var m30 = m[3 * 4 + 0];\n var m31 = m[3 * 4 + 1];\n var m32 = m[3 * 4 + 2];\n var m33 = m[3 * 4 + 3];\n\n if (m !== dst) {\n dst[0] = m00;\n dst[1] = m01;\n dst[2] = m02;\n dst[3] = m03;\n dst[4] = m10;\n dst[5] = m11;\n dst[6] = m12;\n dst[7] = m13;\n dst[8] = m20;\n dst[9] = m21;\n dst[10] = m22;\n dst[11] = m23;\n }\n\n dst[12] = m00 * v0 + m10 * v1 + m20 * v2 + m30;\n dst[13] = m01 * v0 + m11 * v1 + m21 * v2 + m31;\n dst[14] = m02 * v0 + m12 * v1 + m22 * v2 + m32;\n dst[15] = m03 * v0 + m13 * v1 + m23 * v2 + m33;\n return dst;\n}\n/**\n * Creates a 4-by-4 matrix which rotates around the x-axis by the given angle.\n * @param {number} angleInRadians The angle by which to rotate (in radians).\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} The rotation matrix.\n * @memberOf module:twgl/m4\n */\n\n\nfunction rotationX(angleInRadians, dst) {\n dst = dst || new MatType(16);\n var c = Math.cos(angleInRadians);\n var s = Math.sin(angleInRadians);\n dst[0] = 1;\n dst[1] = 0;\n dst[2] = 0;\n dst[3] = 0;\n dst[4] = 0;\n dst[5] = c;\n dst[6] = s;\n dst[7] = 0;\n dst[8] = 0;\n dst[9] = -s;\n dst[10] = c;\n dst[11] = 0;\n dst[12] = 0;\n dst[13] = 0;\n dst[14] = 0;\n dst[15] = 1;\n return dst;\n}\n/**\n * Modifies the given 4-by-4 matrix by a rotation around the x-axis by the given\n * angle.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {number} angleInRadians The angle by which to rotate (in radians).\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} m once modified.\n * @memberOf module:twgl/m4\n */\n\n\nfunction rotateX(m, angleInRadians, dst) {\n dst = dst || new MatType(16);\n var m10 = m[4];\n var m11 = m[5];\n var m12 = m[6];\n var m13 = m[7];\n var m20 = m[8];\n var m21 = m[9];\n var m22 = m[10];\n var m23 = m[11];\n var c = Math.cos(angleInRadians);\n var s = Math.sin(angleInRadians);\n dst[4] = c * m10 + s * m20;\n dst[5] = c * m11 + s * m21;\n dst[6] = c * m12 + s * m22;\n dst[7] = c * m13 + s * m23;\n dst[8] = c * m20 - s * m10;\n dst[9] = c * m21 - s * m11;\n dst[10] = c * m22 - s * m12;\n dst[11] = c * m23 - s * m13;\n\n if (m !== dst) {\n dst[0] = m[0];\n dst[1] = m[1];\n dst[2] = m[2];\n dst[3] = m[3];\n dst[12] = m[12];\n dst[13] = m[13];\n dst[14] = m[14];\n dst[15] = m[15];\n }\n\n return dst;\n}\n/**\n * Creates a 4-by-4 matrix which rotates around the y-axis by the given angle.\n * @param {number} angleInRadians The angle by which to rotate (in radians).\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} The rotation matrix.\n * @memberOf module:twgl/m4\n */\n\n\nfunction rotationY(angleInRadians, dst) {\n dst = dst || new MatType(16);\n var c = Math.cos(angleInRadians);\n var s = Math.sin(angleInRadians);\n dst[0] = c;\n dst[1] = 0;\n dst[2] = -s;\n dst[3] = 0;\n dst[4] = 0;\n dst[5] = 1;\n dst[6] = 0;\n dst[7] = 0;\n dst[8] = s;\n dst[9] = 0;\n dst[10] = c;\n dst[11] = 0;\n dst[12] = 0;\n dst[13] = 0;\n dst[14] = 0;\n dst[15] = 1;\n return dst;\n}\n/**\n * Modifies the given 4-by-4 matrix by a rotation around the y-axis by the given\n * angle.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {number} angleInRadians The angle by which to rotate (in radians).\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} m once modified.\n * @memberOf module:twgl/m4\n */\n\n\nfunction rotateY(m, angleInRadians, dst) {\n dst = dst || new MatType(16);\n var m00 = m[0 * 4 + 0];\n var m01 = m[0 * 4 + 1];\n var m02 = m[0 * 4 + 2];\n var m03 = m[0 * 4 + 3];\n var m20 = m[2 * 4 + 0];\n var m21 = m[2 * 4 + 1];\n var m22 = m[2 * 4 + 2];\n var m23 = m[2 * 4 + 3];\n var c = Math.cos(angleInRadians);\n var s = Math.sin(angleInRadians);\n dst[0] = c * m00 - s * m20;\n dst[1] = c * m01 - s * m21;\n dst[2] = c * m02 - s * m22;\n dst[3] = c * m03 - s * m23;\n dst[8] = c * m20 + s * m00;\n dst[9] = c * m21 + s * m01;\n dst[10] = c * m22 + s * m02;\n dst[11] = c * m23 + s * m03;\n\n if (m !== dst) {\n dst[4] = m[4];\n dst[5] = m[5];\n dst[6] = m[6];\n dst[7] = m[7];\n dst[12] = m[12];\n dst[13] = m[13];\n dst[14] = m[14];\n dst[15] = m[15];\n }\n\n return dst;\n}\n/**\n * Creates a 4-by-4 matrix which rotates around the z-axis by the given angle.\n * @param {number} angleInRadians The angle by which to rotate (in radians).\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} The rotation matrix.\n * @memberOf module:twgl/m4\n */\n\n\nfunction rotationZ(angleInRadians, dst) {\n dst = dst || new MatType(16);\n var c = Math.cos(angleInRadians);\n var s = Math.sin(angleInRadians);\n dst[0] = c;\n dst[1] = s;\n dst[2] = 0;\n dst[3] = 0;\n dst[4] = -s;\n dst[5] = c;\n dst[6] = 0;\n dst[7] = 0;\n dst[8] = 0;\n dst[9] = 0;\n dst[10] = 1;\n dst[11] = 0;\n dst[12] = 0;\n dst[13] = 0;\n dst[14] = 0;\n dst[15] = 1;\n return dst;\n}\n/**\n * Modifies the given 4-by-4 matrix by a rotation around the z-axis by the given\n * angle.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {number} angleInRadians The angle by which to rotate (in radians).\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} m once modified.\n * @memberOf module:twgl/m4\n */\n\n\nfunction rotateZ(m, angleInRadians, dst) {\n dst = dst || new MatType(16);\n var m00 = m[0 * 4 + 0];\n var m01 = m[0 * 4 + 1];\n var m02 = m[0 * 4 + 2];\n var m03 = m[0 * 4 + 3];\n var m10 = m[1 * 4 + 0];\n var m11 = m[1 * 4 + 1];\n var m12 = m[1 * 4 + 2];\n var m13 = m[1 * 4 + 3];\n var c = Math.cos(angleInRadians);\n var s = Math.sin(angleInRadians);\n dst[0] = c * m00 + s * m10;\n dst[1] = c * m01 + s * m11;\n dst[2] = c * m02 + s * m12;\n dst[3] = c * m03 + s * m13;\n dst[4] = c * m10 - s * m00;\n dst[5] = c * m11 - s * m01;\n dst[6] = c * m12 - s * m02;\n dst[7] = c * m13 - s * m03;\n\n if (m !== dst) {\n dst[8] = m[8];\n dst[9] = m[9];\n dst[10] = m[10];\n dst[11] = m[11];\n dst[12] = m[12];\n dst[13] = m[13];\n dst[14] = m[14];\n dst[15] = m[15];\n }\n\n return dst;\n}\n/**\n * Creates a 4-by-4 matrix which rotates around the given axis by the given\n * angle.\n * @param {Vec3} axis The axis\n * about which to rotate.\n * @param {number} angleInRadians The angle by which to rotate (in radians).\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} A matrix which rotates angle radians\n * around the axis.\n * @memberOf module:twgl/m4\n */\n\n\nfunction axisRotation(axis, angleInRadians, dst) {\n dst = dst || new MatType(16);\n var x = axis[0];\n var y = axis[1];\n var z = axis[2];\n var n = Math.sqrt(x * x + y * y + z * z);\n x /= n;\n y /= n;\n z /= n;\n var xx = x * x;\n var yy = y * y;\n var zz = z * z;\n var c = Math.cos(angleInRadians);\n var s = Math.sin(angleInRadians);\n var oneMinusCosine = 1 - c;\n dst[0] = xx + (1 - xx) * c;\n dst[1] = x * y * oneMinusCosine + z * s;\n dst[2] = x * z * oneMinusCosine - y * s;\n dst[3] = 0;\n dst[4] = x * y * oneMinusCosine - z * s;\n dst[5] = yy + (1 - yy) * c;\n dst[6] = y * z * oneMinusCosine + x * s;\n dst[7] = 0;\n dst[8] = x * z * oneMinusCosine + y * s;\n dst[9] = y * z * oneMinusCosine - x * s;\n dst[10] = zz + (1 - zz) * c;\n dst[11] = 0;\n dst[12] = 0;\n dst[13] = 0;\n dst[14] = 0;\n dst[15] = 1;\n return dst;\n}\n/**\n * Modifies the given 4-by-4 matrix by rotation around the given axis by the\n * given angle.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {Vec3} axis The axis\n * about which to rotate.\n * @param {number} angleInRadians The angle by which to rotate (in radians).\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} m once modified.\n * @memberOf module:twgl/m4\n */\n\n\nfunction axisRotate(m, axis, angleInRadians, dst) {\n dst = dst || new MatType(16);\n var x = axis[0];\n var y = axis[1];\n var z = axis[2];\n var n = Math.sqrt(x * x + y * y + z * z);\n x /= n;\n y /= n;\n z /= n;\n var xx = x * x;\n var yy = y * y;\n var zz = z * z;\n var c = Math.cos(angleInRadians);\n var s = Math.sin(angleInRadians);\n var oneMinusCosine = 1 - c;\n var r00 = xx + (1 - xx) * c;\n var r01 = x * y * oneMinusCosine + z * s;\n var r02 = x * z * oneMinusCosine - y * s;\n var r10 = x * y * oneMinusCosine - z * s;\n var r11 = yy + (1 - yy) * c;\n var r12 = y * z * oneMinusCosine + x * s;\n var r20 = x * z * oneMinusCosine + y * s;\n var r21 = y * z * oneMinusCosine - x * s;\n var r22 = zz + (1 - zz) * c;\n var m00 = m[0];\n var m01 = m[1];\n var m02 = m[2];\n var m03 = m[3];\n var m10 = m[4];\n var m11 = m[5];\n var m12 = m[6];\n var m13 = m[7];\n var m20 = m[8];\n var m21 = m[9];\n var m22 = m[10];\n var m23 = m[11];\n dst[0] = r00 * m00 + r01 * m10 + r02 * m20;\n dst[1] = r00 * m01 + r01 * m11 + r02 * m21;\n dst[2] = r00 * m02 + r01 * m12 + r02 * m22;\n dst[3] = r00 * m03 + r01 * m13 + r02 * m23;\n dst[4] = r10 * m00 + r11 * m10 + r12 * m20;\n dst[5] = r10 * m01 + r11 * m11 + r12 * m21;\n dst[6] = r10 * m02 + r11 * m12 + r12 * m22;\n dst[7] = r10 * m03 + r11 * m13 + r12 * m23;\n dst[8] = r20 * m00 + r21 * m10 + r22 * m20;\n dst[9] = r20 * m01 + r21 * m11 + r22 * m21;\n dst[10] = r20 * m02 + r21 * m12 + r22 * m22;\n dst[11] = r20 * m03 + r21 * m13 + r22 * m23;\n\n if (m !== dst) {\n dst[12] = m[12];\n dst[13] = m[13];\n dst[14] = m[14];\n dst[15] = m[15];\n }\n\n return dst;\n}\n/**\n * Creates a 4-by-4 matrix which scales in each dimension by an amount given by\n * the corresponding entry in the given vector; assumes the vector has three\n * entries.\n * @param {Vec3} v A vector of\n * three entries specifying the factor by which to scale in each dimension.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} The scaling matrix.\n * @memberOf module:twgl/m4\n */\n\n\nfunction scaling(v, dst) {\n dst = dst || new MatType(16);\n dst[0] = v[0];\n dst[1] = 0;\n dst[2] = 0;\n dst[3] = 0;\n dst[4] = 0;\n dst[5] = v[1];\n dst[6] = 0;\n dst[7] = 0;\n dst[8] = 0;\n dst[9] = 0;\n dst[10] = v[2];\n dst[11] = 0;\n dst[12] = 0;\n dst[13] = 0;\n dst[14] = 0;\n dst[15] = 1;\n return dst;\n}\n/**\n * Modifies the given 4-by-4 matrix, scaling in each dimension by an amount\n * given by the corresponding entry in the given vector; assumes the vector has\n * three entries.\n * @param {module:twgl/m4.Mat4} m The matrix to be modified.\n * @param {Vec3} v A vector of three entries specifying the\n * factor by which to scale in each dimension.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If none new one is created..\n * @return {module:twgl/m4.Mat4} m once modified.\n * @memberOf module:twgl/m4\n */\n\n\nfunction scale(m, v, dst) {\n dst = dst || new MatType(16);\n var v0 = v[0];\n var v1 = v[1];\n var v2 = v[2];\n dst[0] = v0 * m[0 * 4 + 0];\n dst[1] = v0 * m[0 * 4 + 1];\n dst[2] = v0 * m[0 * 4 + 2];\n dst[3] = v0 * m[0 * 4 + 3];\n dst[4] = v1 * m[1 * 4 + 0];\n dst[5] = v1 * m[1 * 4 + 1];\n dst[6] = v1 * m[1 * 4 + 2];\n dst[7] = v1 * m[1 * 4 + 3];\n dst[8] = v2 * m[2 * 4 + 0];\n dst[9] = v2 * m[2 * 4 + 1];\n dst[10] = v2 * m[2 * 4 + 2];\n dst[11] = v2 * m[2 * 4 + 3];\n\n if (m !== dst) {\n dst[12] = m[12];\n dst[13] = m[13];\n dst[14] = m[14];\n dst[15] = m[15];\n }\n\n return dst;\n}\n/**\n * Takes a 4-by-4 matrix and a vector with 3 entries,\n * interprets the vector as a point, transforms that point by the matrix, and\n * returns the result as a vector with 3 entries.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {Vec3} v The point.\n * @param {Vec3} dst optional vec3 to store result\n * @return {Vec3} dst or new vec3 if not provided\n * @memberOf module:twgl/m4\n */\n\n\nfunction transformPoint(m, v, dst) {\n dst = dst || v3.create();\n var v0 = v[0];\n var v1 = v[1];\n var v2 = v[2];\n var d = v0 * m[0 * 4 + 3] + v1 * m[1 * 4 + 3] + v2 * m[2 * 4 + 3] + m[3 * 4 + 3];\n dst[0] = (v0 * m[0 * 4 + 0] + v1 * m[1 * 4 + 0] + v2 * m[2 * 4 + 0] + m[3 * 4 + 0]) / d;\n dst[1] = (v0 * m[0 * 4 + 1] + v1 * m[1 * 4 + 1] + v2 * m[2 * 4 + 1] + m[3 * 4 + 1]) / d;\n dst[2] = (v0 * m[0 * 4 + 2] + v1 * m[1 * 4 + 2] + v2 * m[2 * 4 + 2] + m[3 * 4 + 2]) / d;\n return dst;\n}\n/**\n * Takes a 4-by-4 matrix and a vector with 3 entries, interprets the vector as a\n * direction, transforms that direction by the matrix, and returns the result;\n * assumes the transformation of 3-dimensional space represented by the matrix\n * is parallel-preserving, i.e. any combination of rotation, scaling and\n * translation, but not a perspective distortion. Returns a vector with 3\n * entries.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {Vec3} v The direction.\n * @param {Vec3} dst optional Vec3 to store result\n * @return {Vec3} dst or new Vec3 if not provided\n * @memberOf module:twgl/m4\n */\n\n\nfunction transformDirection(m, v, dst) {\n dst = dst || v3.create();\n var v0 = v[0];\n var v1 = v[1];\n var v2 = v[2];\n dst[0] = v0 * m[0 * 4 + 0] + v1 * m[1 * 4 + 0] + v2 * m[2 * 4 + 0];\n dst[1] = v0 * m[0 * 4 + 1] + v1 * m[1 * 4 + 1] + v2 * m[2 * 4 + 1];\n dst[2] = v0 * m[0 * 4 + 2] + v1 * m[1 * 4 + 2] + v2 * m[2 * 4 + 2];\n return dst;\n}\n/**\n * Takes a 4-by-4 matrix m and a vector v with 3 entries, interprets the vector\n * as a normal to a surface, and computes a vector which is normal upon\n * transforming that surface by the matrix. The effect of this function is the\n * same as transforming v (as a direction) by the inverse-transpose of m. This\n * function assumes the transformation of 3-dimensional space represented by the\n * matrix is parallel-preserving, i.e. any combination of rotation, scaling and\n * translation, but not a perspective distortion. Returns a vector with 3\n * entries.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {Vec3} v The normal.\n * @param {Vec3} [dst] The direction.\n * @return {Vec3} The transformed direction.\n * @memberOf module:twgl/m4\n */\n\n\nfunction transformNormal(m, v, dst) {\n dst = dst || v3.create();\n var mi = inverse(m);\n var v0 = v[0];\n var v1 = v[1];\n var v2 = v[2];\n dst[0] = v0 * mi[0 * 4 + 0] + v1 * mi[0 * 4 + 1] + v2 * mi[0 * 4 + 2];\n dst[1] = v0 * mi[1 * 4 + 0] + v1 * mi[1 * 4 + 1] + v2 * mi[1 * 4 + 2];\n dst[2] = v0 * mi[2 * 4 + 0] + v1 * mi[2 * 4 + 1] + v2 * mi[2 * 4 + 2];\n return dst;\n}\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.createAttribsFromArrays = createAttribsFromArrays;\nexports.createBuffersFromArrays = createBuffersFromArrays;\nexports.createBufferFromArray = createBufferFromArray;\nexports.createBufferFromTypedArray = createBufferFromTypedArray;\nexports.createBufferInfoFromArrays = createBufferInfoFromArrays;\nexports.setAttribInfoBufferFromArray = setAttribInfoBufferFromArray;\nexports.setAttributePrefix = setAttributePrefix;\nexports.setAttributeDefaults_ = setDefaults;\nexports.getNumComponents_ = getNumComponents;\nexports.getArray_ = getArray;\n\nvar typedArrays = _interopRequireWildcard(__webpack_require__(1));\n\nvar helper = _interopRequireWildcard(__webpack_require__(0));\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\n/*\n * Copyright 2015, Gregg Tavares.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following disclaimer\n * in the documentation and/or other materials provided with the\n * distribution.\n * * Neither the name of Gregg Tavares. nor the names of his\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/**\n * Low level attribute and buffer related functions\n *\n * You should generally not need to use these functions. They are provided\n * for those cases where you're doing something out of the ordinary\n * and you need lower level access.\n *\n * For backward compatibily they are available at both `twgl.attributes` and `twgl`\n * itself\n *\n * See {@link module:twgl} for core functions\n *\n * @module twgl/attributes\n */\n// make sure we don't see a global gl\nvar gl = undefined; // eslint-disable-line\n\nvar defaults = {\n attribPrefix: \"\"\n};\n/**\n * Sets the default attrib prefix\n *\n * When writing shaders I prefer to name attributes with `a_`, uniforms with `u_` and varyings with `v_`\n * as it makes it clear where they came from. But, when building geometry I prefer using unprefixed names.\n *\n * In otherwords I'll create arrays of geometry like this\n *\n * var arrays = {\n * position: ...\n * normal: ...\n * texcoord: ...\n * };\n *\n * But need those mapped to attributes and my attributes start with `a_`.\n *\n * @deprecated see {@link module:twgl.setDefaults}\n * @param {string} prefix prefix for attribs\n * @memberOf module:twgl/attributes\n */\n\nfunction setAttributePrefix(prefix) {\n defaults.attribPrefix = prefix;\n}\n\nfunction setDefaults(newDefaults) {\n helper.copyExistingProperties(newDefaults, defaults);\n}\n\nfunction setBufferFromTypedArray(gl, type, buffer, array, drawType) {\n gl.bindBuffer(type, buffer);\n gl.bufferData(type, array, drawType || gl.STATIC_DRAW);\n}\n/**\n * Given typed array creates a WebGLBuffer and copies the typed array\n * into it.\n *\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext\n * @param {ArrayBuffer|SharedArrayBuffer|ArrayBufferView|WebGLBuffer} typedArray the typed array. Note: If a WebGLBuffer is passed in it will just be returned. No action will be taken\n * @param {number} [type] the GL bind type for the buffer. Default = `gl.ARRAY_BUFFER`.\n * @param {number} [drawType] the GL draw type for the buffer. Default = 'gl.STATIC_DRAW`.\n * @return {WebGLBuffer} the created WebGLBuffer\n * @memberOf module:twgl/attributes\n */\n\n\nfunction createBufferFromTypedArray(gl, typedArray, type, drawType) {\n if (helper.isBuffer(gl, typedArray)) {\n return typedArray;\n }\n\n type = type || gl.ARRAY_BUFFER;\n var buffer = gl.createBuffer();\n setBufferFromTypedArray(gl, type, buffer, typedArray, drawType);\n return buffer;\n}\n\nfunction isIndices(name) {\n return name === \"indices\";\n} // This is really just a guess. Though I can't really imagine using\n// anything else? Maybe for some compression?\n\n\nfunction getNormalizationForTypedArray(typedArray) {\n if (typedArray instanceof Int8Array) {\n return true;\n } // eslint-disable-line\n\n\n if (typedArray instanceof Uint8Array) {\n return true;\n } // eslint-disable-line\n\n\n return false;\n} // This is really just a guess. Though I can't really imagine using\n// anything else? Maybe for some compression?\n\n\nfunction getNormalizationForTypedArrayType(typedArrayType) {\n if (typedArrayType === Int8Array) {\n return true;\n } // eslint-disable-line\n\n\n if (typedArrayType === Uint8Array) {\n return true;\n } // eslint-disable-line\n\n\n return false;\n}\n\nfunction getArray(array) {\n return array.length ? array : array.data;\n}\n\nvar texcoordRE = /coord|texture/i;\nvar colorRE = /color|colour/i;\n\nfunction guessNumComponentsFromName(name, length) {\n var numComponents;\n\n if (texcoordRE.test(name)) {\n numComponents = 2;\n } else if (colorRE.test(name)) {\n numComponents = 4;\n } else {\n numComponents = 3; // position, normals, indices ...\n }\n\n if (length % numComponents > 0) {\n throw \"Can not guess numComponents for attribute '\" + name + \"'. Tried \" + numComponents + \" but \" + length + \" values is not evenly divisible by \" + numComponents + \". You should specify it.\";\n }\n\n return numComponents;\n}\n\nfunction getNumComponents(array, arrayName) {\n return array.numComponents || array.size || guessNumComponentsFromName(arrayName, getArray(array).length);\n}\n\nfunction makeTypedArray(array, name) {\n if (typedArrays.isArrayBuffer(array)) {\n return array;\n }\n\n if (typedArrays.isArrayBuffer(array.data)) {\n return array.data;\n }\n\n if (Array.isArray(array)) {\n array = {\n data: array\n };\n }\n\n var Type = array.type;\n\n if (!Type) {\n if (isIndices(name)) {\n Type = Uint16Array;\n } else {\n Type = Float32Array;\n }\n }\n\n return new Type(array.data);\n}\n/**\n * The info for an attribute. This is effectively just the arguments to `gl.vertexAttribPointer` plus the WebGLBuffer\n * for the attribute.\n *\n * @typedef {Object} AttribInfo\n * @property {number} [numComponents] the number of components for this attribute.\n * @property {number} [size] synonym for `numComponents`.\n * @property {number} [type] the type of the attribute (eg. `gl.FLOAT`, `gl.UNSIGNED_BYTE`, etc...) Default = `gl.FLOAT`\n * @property {boolean} [normalize] whether or not to normalize the data. Default = false\n * @property {number} [offset] offset into buffer in bytes. Default = 0\n * @property {number} [stride] the stride in bytes per element. Default = 0\n * @property {number} [divisor] the divisor in instances. Default = undefined. Note: undefined = don't call gl.vertexAttribDivisor\n * where as anything else = do call it with this value\n * @property {WebGLBuffer} buffer the buffer that contains the data for this attribute\n * @property {number} [drawType] the draw type passed to gl.bufferData. Default = gl.STATIC_DRAW\n * @memberOf module:twgl\n */\n\n/**\n * Use this type of array spec when TWGL can't guess the type or number of compoments of an array\n * @typedef {Object} FullArraySpec\n * @property {(number|number[]|ArrayBufferView)} data The data of the array. A number alone becomes the number of elements of type.\n * @property {number} [numComponents] number of components for `vertexAttribPointer`. Default is based on the name of the array.\n * If `coord` is in the name assumes `numComponents = 2`.\n * If `color` is in the name assumes `numComponents = 4`.\n * otherwise assumes `numComponents = 3`\n * @property {constructor} type The type. This is only used if `data` is a JavaScript array. It is the constructor for the typedarray. (eg. `Uint8Array`).\n * For example if you want colors in a `Uint8Array` you might have a `FullArraySpec` like `{ type: Uint8Array, data: [255,0,255,255, ...], }`.\n * @property {number} [size] synonym for `numComponents`.\n * @property {boolean} [normalize] normalize for `vertexAttribPointer`. Default is true if type is `Int8Array` or `Uint8Array` otherwise false.\n * @property {number} [stride] stride for `vertexAttribPointer`. Default = 0\n * @property {number} [offset] offset for `vertexAttribPointer`. Default = 0\n * @property {number} [divisor] divisor for `vertexAttribDivisor`. Default = undefined. Note: undefined = don't call gl.vertexAttribDivisor\n * where as anything else = do call it with this value\n * @property {string} [attrib] name of attribute this array maps to. Defaults to same name as array prefixed by the default attribPrefix.\n * @property {string} [name] synonym for `attrib`.\n * @property {string} [attribName] synonym for `attrib`.\n * @memberOf module:twgl\n */\n\n/**\n * An individual array in {@link module:twgl.Arrays}\n *\n * When passed to {@link module:twgl.createBufferInfoFromArrays} if an ArraySpec is `number[]` or `ArrayBufferView`\n * the types will be guessed based on the name. `indices` will be `Uint16Array`, everything else will\n * be `Float32Array`. If an ArraySpec is a number it's the number of floats for an empty (zeroed) buffer.\n *\n * @typedef {(number|number[]|ArrayBufferView|module:twgl.FullArraySpec)} ArraySpec\n * @memberOf module:twgl\n */\n\n/**\n * This is a JavaScript object of arrays by name. The names should match your shader's attributes. If your\n * attributes have a common prefix you can specify it by calling {@link module:twgl.setAttributePrefix}.\n *\n * Bare JavaScript Arrays\n *\n * var arrays = {\n * position: [-1, 1, 0],\n * normal: [0, 1, 0],\n * ...\n * }\n *\n * Bare TypedArrays\n *\n * var arrays = {\n * position: new Float32Array([-1, 1, 0]),\n * color: new Uint8Array([255, 128, 64, 255]),\n * ...\n * }\n *\n * * Will guess at `numComponents` if not specified based on name.\n *\n * If `coord` is in the name assumes `numComponents = 2`\n *\n * If `color` is in the name assumes `numComponents = 4`\n *\n * otherwise assumes `numComponents = 3`\n *\n * Objects with various fields. See {@link module:twgl.FullArraySpec}.\n *\n * var arrays = {\n * position: { numComponents: 3, data: [0, 0, 0, 10, 0, 0, 0, 10, 0, 10, 10, 0], },\n * texcoord: { numComponents: 2, data: [0, 0, 0, 1, 1, 0, 1, 1], },\n * normal: { numComponents: 3, data: [0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1], },\n * indices: { numComponents: 3, data: [0, 1, 2, 1, 2, 3], },\n * };\n *\n * @typedef {Object.} Arrays\n * @memberOf module:twgl\n */\n\n/**\n * Creates a set of attribute data and WebGLBuffers from set of arrays\n *\n * Given\n *\n * var arrays = {\n * position: { numComponents: 3, data: [0, 0, 0, 10, 0, 0, 0, 10, 0, 10, 10, 0], },\n * texcoord: { numComponents: 2, data: [0, 0, 0, 1, 1, 0, 1, 1], },\n * normal: { numComponents: 3, data: [0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1], },\n * color: { numComponents: 4, data: [255, 255, 255, 255, 255, 0, 0, 255, 0, 0, 255, 255], type: Uint8Array, },\n * indices: { numComponents: 3, data: [0, 1, 2, 1, 2, 3], },\n * };\n *\n * returns something like\n *\n * var attribs = {\n * position: { numComponents: 3, type: gl.FLOAT, normalize: false, buffer: WebGLBuffer, },\n * texcoord: { numComponents: 2, type: gl.FLOAT, normalize: false, buffer: WebGLBuffer, },\n * normal: { numComponents: 3, type: gl.FLOAT, normalize: false, buffer: WebGLBuffer, },\n * color: { numComponents: 4, type: gl.UNSIGNED_BYTE, normalize: true, buffer: WebGLBuffer, },\n * };\n *\n * notes:\n *\n * * Arrays can take various forms\n *\n * Bare JavaScript Arrays\n *\n * var arrays = {\n * position: [-1, 1, 0],\n * normal: [0, 1, 0],\n * ...\n * }\n *\n * Bare TypedArrays\n *\n * var arrays = {\n * position: new Float32Array([-1, 1, 0]),\n * color: new Uint8Array([255, 128, 64, 255]),\n * ...\n * }\n *\n * * Will guess at `numComponents` if not specified based on name.\n *\n * If `coord` is in the name assumes `numComponents = 2`\n *\n * If `color` is in the name assumes `numComponents = 4`\n *\n * otherwise assumes `numComponents = 3`\n *\n * @param {WebGLRenderingContext} gl The webgl rendering context.\n * @param {module:twgl.Arrays} arrays The arrays\n * @return {Object.} the attribs\n * @memberOf module:twgl/attributes\n */\n\n\nfunction createAttribsFromArrays(gl, arrays) {\n var attribs = {};\n Object.keys(arrays).forEach(function (arrayName) {\n if (!isIndices(arrayName)) {\n var array = arrays[arrayName];\n var attribName = array.attrib || array.name || array.attribName || defaults.attribPrefix + arrayName;\n var buffer;\n var type;\n var normalization;\n var numComponents;\n var numValues;\n\n if (typeof array === \"number\" || typeof array.data === \"number\") {\n numValues = array.data || array;\n var arrayType = array.type || Float32Array;\n var numBytes = numValues * arrayType.BYTES_PER_ELEMENT;\n type = typedArrays.getGLTypeForTypedArrayType(arrayType);\n normalization = array.normalize !== undefined ? array.normalize : getNormalizationForTypedArrayType(arrayType);\n numComponents = array.numComponents || array.size || guessNumComponentsFromName(arrayName, numValues);\n buffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ARRAY_BUFFER, numBytes, array.drawType || gl.STATIC_DRAW);\n } else {\n var typedArray = makeTypedArray(array, arrayName);\n buffer = createBufferFromTypedArray(gl, typedArray, undefined, array.drawType);\n type = typedArrays.getGLTypeForTypedArray(typedArray);\n normalization = array.normalize !== undefined ? array.normalize : getNormalizationForTypedArray(typedArray);\n numComponents = getNumComponents(array, arrayName);\n numValues = typedArray.length;\n }\n\n attribs[attribName] = {\n buffer: buffer,\n numComponents: numComponents,\n type: type,\n normalize: normalization,\n stride: array.stride || 0,\n offset: array.offset || 0,\n divisor: array.divisor === undefined ? undefined : array.divisor,\n drawType: array.drawType\n };\n }\n });\n gl.bindBuffer(gl.ARRAY_BUFFER, null);\n return attribs;\n}\n/**\n * Sets the contents of a buffer attached to an attribInfo\n *\n * This is helper function to dynamically update a buffer.\n *\n * Let's say you make a bufferInfo\n *\n * var arrays = {\n * position: new Float32Array([0, 0, 0, 10, 0, 0, 0, 10, 0, 10, 10, 0]),\n * texcoord: new Float32Array([0, 0, 0, 1, 1, 0, 1, 1]),\n * normal: new Float32Array([0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1]),\n * indices: new Uint16Array([0, 1, 2, 1, 2, 3]),\n * };\n * var bufferInfo = twgl.createBufferInfoFromArrays(gl, arrays);\n *\n * And you want to dynamically upate the positions. You could do this\n *\n * // assuming arrays.position has already been updated with new data.\n * twgl.setAttribInfoBufferFromArray(gl, bufferInfo.attribs.position, arrays.position);\n *\n * @param {WebGLRenderingContext} gl\n * @param {AttribInfo} attribInfo The attribInfo who's buffer contents to set. NOTE: If you have an attribute prefix\n * the name of the attribute will include the prefix.\n * @param {ArraySpec} array Note: it is arguably ineffient to pass in anything but a typed array because anything\n * else will have to be converted to a typed array before it can be used by WebGL. During init time that\n * inefficiency is usually not important but if you're updating data dynamically best to be efficient.\n * @param {number} [offset] an optional offset into the buffer. This is only an offset into the WebGL buffer\n * not the array. To pass in an offset into the array itself use a typed array and create an `ArrayBufferView`\n * for the portion of the array you want to use.\n *\n * var someArray = new Float32Array(1000); // an array with 1000 floats\n * var someSubArray = new Float32Array(someArray.buffer, offsetInBytes, sizeInUnits); // a view into someArray\n *\n * Now you can pass `someSubArray` into setAttribInfoBufferFromArray`\n * @memberOf module:twgl/attributes\n */\n\n\nfunction setAttribInfoBufferFromArray(gl, attribInfo, array, offset) {\n array = makeTypedArray(array);\n\n if (offset !== undefined) {\n gl.bindBuffer(gl.ARRAY_BUFFER, attribInfo.buffer);\n gl.bufferSubData(gl.ARRAY_BUFFER, offset, array);\n } else {\n setBufferFromTypedArray(gl, gl.ARRAY_BUFFER, attribInfo.buffer, array, attribInfo.drawType);\n }\n}\n\nfunction getBytesPerValueForGLType(gl, type) {\n if (type === gl.BYTE) return 1; // eslint-disable-line\n\n if (type === gl.UNSIGNED_BYTE) return 1; // eslint-disable-line\n\n if (type === gl.SHORT) return 2; // eslint-disable-line\n\n if (type === gl.UNSIGNED_SHORT) return 2; // eslint-disable-line\n\n if (type === gl.INT) return 4; // eslint-disable-line\n\n if (type === gl.UNSIGNED_INT) return 4; // eslint-disable-line\n\n if (type === gl.FLOAT) return 4; // eslint-disable-line\n\n return 0;\n}\n/**\n * tries to get the number of elements from a set of arrays.\n */\n\n\nvar positionKeys = ['position', 'positions', 'a_position'];\n\nfunction getNumElementsFromNonIndexedArrays(arrays) {\n var key;\n\n for (var _ii = 0; _ii < positionKeys.length; ++_ii) {\n key = positionKeys[_ii];\n\n if (key in arrays) {\n break;\n }\n }\n\n if (ii === positionKeys.length) {\n key = Object.keys(arrays)[0];\n }\n\n var array = arrays[key];\n var length = getArray(array).length;\n var numComponents = getNumComponents(array, key);\n var numElements = length / numComponents;\n\n if (length % numComponents > 0) {\n throw \"numComponents \" + numComponents + \" not correct for length \" + length;\n }\n\n return numElements;\n}\n\nfunction getNumElementsFromAttributes(gl, attribs) {\n var key;\n var ii;\n\n for (ii = 0; ii < positionKeys.length; ++ii) {\n key = positionKeys[ii];\n\n if (key in attribs) {\n break;\n }\n\n key = defaults.attribPrefix + key;\n\n if (key in attribs) {\n break;\n }\n }\n\n if (ii === positionKeys.length) {\n key = Object.keys(attribs)[0];\n }\n\n var attrib = attribs[key];\n gl.bindBuffer(gl.ARRAY_BUFFER, attrib.buffer);\n var numBytes = gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE);\n gl.bindBuffer(gl.ARRAY_BUFFER, null);\n var bytesPerValue = getBytesPerValueForGLType(gl, attrib.type);\n var totalElements = numBytes / bytesPerValue;\n var numComponents = attrib.numComponents || attrib.size; // TODO: check stride\n\n var numElements = totalElements / numComponents;\n\n if (numElements % 1 !== 0) {\n throw \"numComponents \" + numComponents + \" not correct for length \" + length;\n }\n\n return numElements;\n}\n/**\n * @typedef {Object} BufferInfo\n * @property {number} numElements The number of elements to pass to `gl.drawArrays` or `gl.drawElements`.\n * @property {number} [elementType] The type of indices `UNSIGNED_BYTE`, `UNSIGNED_SHORT` etc..\n * @property {WebGLBuffer} [indices] The indices `ELEMENT_ARRAY_BUFFER` if any indices exist.\n * @property {Object.} [attribs] The attribs approriate to call `setAttributes`\n * @memberOf module:twgl\n */\n\n/**\n * Creates a BufferInfo from an object of arrays.\n *\n * This can be passed to {@link module:twgl.setBuffersAndAttributes} and to\n * {@link module:twgl:drawBufferInfo}.\n *\n * Given an object like\n *\n * var arrays = {\n * position: { numComponents: 3, data: [0, 0, 0, 10, 0, 0, 0, 10, 0, 10, 10, 0], },\n * texcoord: { numComponents: 2, data: [0, 0, 0, 1, 1, 0, 1, 1], },\n * normal: { numComponents: 3, data: [0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1], },\n * indices: { numComponents: 3, data: [0, 1, 2, 1, 2, 3], },\n * };\n *\n * Creates an BufferInfo like this\n *\n * bufferInfo = {\n * numElements: 4, // or whatever the number of elements is\n * indices: WebGLBuffer, // this property will not exist if there are no indices\n * attribs: {\n * a_position: { buffer: WebGLBuffer, numComponents: 3, },\n * a_normal: { buffer: WebGLBuffer, numComponents: 3, },\n * a_texcoord: { buffer: WebGLBuffer, numComponents: 2, },\n * },\n * };\n *\n * The properties of arrays can be JavaScript arrays in which case the number of components\n * will be guessed.\n *\n * var arrays = {\n * position: [0, 0, 0, 10, 0, 0, 0, 10, 0, 10, 10, 0],\n * texcoord: [0, 0, 0, 1, 1, 0, 1, 1],\n * normal: [0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1],\n * indices: [0, 1, 2, 1, 2, 3],\n * };\n *\n * They can also by TypedArrays\n *\n * var arrays = {\n * position: new Float32Array([0, 0, 0, 10, 0, 0, 0, 10, 0, 10, 10, 0]),\n * texcoord: new Float32Array([0, 0, 0, 1, 1, 0, 1, 1]),\n * normal: new Float32Array([0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1]),\n * indices: new Uint16Array([0, 1, 2, 1, 2, 3]),\n * };\n *\n * Or augmentedTypedArrays\n *\n * var positions = createAugmentedTypedArray(3, 4);\n * var texcoords = createAugmentedTypedArray(2, 4);\n * var normals = createAugmentedTypedArray(3, 4);\n * var indices = createAugmentedTypedArray(3, 2, Uint16Array);\n *\n * positions.push([0, 0, 0, 10, 0, 0, 0, 10, 0, 10, 10, 0]);\n * texcoords.push([0, 0, 0, 1, 1, 0, 1, 1]);\n * normals.push([0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1]);\n * indices.push([0, 1, 2, 1, 2, 3]);\n *\n * var arrays = {\n * position: positions,\n * texcoord: texcoords,\n * normal: normals,\n * indices: indices,\n * };\n *\n * For the last example it is equivalent to\n *\n * var bufferInfo = {\n * attribs: {\n * a_position: { numComponents: 3, buffer: gl.createBuffer(), },\n * a_texcoods: { numComponents: 2, buffer: gl.createBuffer(), },\n * a_normals: { numComponents: 3, buffer: gl.createBuffer(), },\n * },\n * indices: gl.createBuffer(),\n * numElements: 6,\n * };\n *\n * gl.bindBuffer(gl.ARRAY_BUFFER, bufferInfo.attribs.a_position.buffer);\n * gl.bufferData(gl.ARRAY_BUFFER, arrays.position, gl.STATIC_DRAW);\n * gl.bindBuffer(gl.ARRAY_BUFFER, bufferInfo.attribs.a_texcoord.buffer);\n * gl.bufferData(gl.ARRAY_BUFFER, arrays.texcoord, gl.STATIC_DRAW);\n * gl.bindBuffer(gl.ARRAY_BUFFER, bufferInfo.attribs.a_normal.buffer);\n * gl.bufferData(gl.ARRAY_BUFFER, arrays.normal, gl.STATIC_DRAW);\n * gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferInfo.indices);\n * gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, arrays.indices, gl.STATIC_DRAW);\n *\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext\n * @param {module:twgl.Arrays} arrays Your data\n * @return {module:twgl.BufferInfo} A BufferInfo\n * @memberOf module:twgl/attributes\n */\n\n\nfunction createBufferInfoFromArrays(gl, arrays) {\n var bufferInfo = {\n attribs: createAttribsFromArrays(gl, arrays)\n };\n var indices = arrays.indices;\n\n if (indices) {\n var newIndices = makeTypedArray(indices, \"indices\");\n bufferInfo.indices = createBufferFromTypedArray(gl, newIndices, gl.ELEMENT_ARRAY_BUFFER);\n bufferInfo.numElements = newIndices.length;\n bufferInfo.elementType = typedArrays.getGLTypeForTypedArray(newIndices);\n } else {\n bufferInfo.numElements = getNumElementsFromAttributes(gl, bufferInfo.attribs);\n }\n\n return bufferInfo;\n}\n/**\n * Creates a buffer from an array, typed array, or array spec\n *\n * Given something like this\n *\n * [1, 2, 3],\n *\n * or\n *\n * new Uint16Array([1,2,3]);\n *\n * or\n *\n * {\n * data: [1, 2, 3],\n * type: Uint8Array,\n * }\n *\n * returns a WebGLBuffer that constains the given data.\n *\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext.\n * @param {module:twgl.ArraySpec} array an array, typed array, or array spec.\n * @param {string} arrayName name of array. Used to guess the type if type can not be dervied other wise.\n * @return {WebGLBuffer} a WebGLBuffer containing the data in array.\n * @memberOf module:twgl/attributes\n */\n\n\nfunction createBufferFromArray(gl, array, arrayName) {\n var type = arrayName === \"indices\" ? gl.ELEMENT_ARRAY_BUFFER : gl.ARRAY_BUFFER;\n var typedArray = makeTypedArray(array, arrayName);\n return createBufferFromTypedArray(gl, typedArray, type);\n}\n/**\n * Creates buffers from arrays or typed arrays\n *\n * Given something like this\n *\n * var arrays = {\n * positions: [1, 2, 3],\n * normals: [0, 0, 1],\n * }\n *\n * returns something like\n *\n * buffers = {\n * positions: WebGLBuffer,\n * normals: WebGLBuffer,\n * }\n *\n * If the buffer is named 'indices' it will be made an ELEMENT_ARRAY_BUFFER.\n *\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext.\n * @param {module:twgl.Arrays} arrays\n * @return {Object} returns an object with one WebGLBuffer per array\n * @memberOf module:twgl/attributes\n */\n\n\nfunction createBuffersFromArrays(gl, arrays) {\n var buffers = {};\n Object.keys(arrays).forEach(function (key) {\n buffers[key] = createBufferFromArray(gl, arrays[key], key);\n }); // Ugh!\n\n if (arrays.indices) {\n buffers.numElements = arrays.indices.length;\n buffers.elementType = typedArrays.getGLTypeForTypedArray(makeTypedArray(arrays.indices), 'indices');\n } else {\n buffers.numElements = getNumElementsFromNonIndexedArrays(arrays);\n }\n\n return buffers;\n}\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.setTextureDefaults_ = setDefaults;\nexports.createSampler = createSampler;\nexports.createSamplers = createSamplers;\nexports.setSamplerParameters = setSamplerParameters;\nexports.createTexture = createTexture;\nexports.setEmptyTexture = setEmptyTexture;\nexports.setTextureFromArray = setTextureFromArray;\nexports.loadTextureFromUrl = loadTextureFromUrl;\nexports.setTextureFromElement = setTextureFromElement;\nexports.setTextureFilteringForSize = setTextureFilteringForSize;\nexports.setTextureParameters = setTextureParameters;\nexports.setDefaultTextureColor = setDefaultTextureColor;\nexports.createTextures = createTextures;\nexports.resizeTexture = resizeTexture;\nexports.getNumComponentsForFormat = getNumComponentsForFormat;\nexports.getBytesPerElementForInternalFormat = getBytesPerElementForInternalFormat;\n\nvar utils = _interopRequireWildcard(__webpack_require__(4));\n\nvar typedArrays = _interopRequireWildcard(__webpack_require__(1));\n\nvar helper = _interopRequireWildcard(__webpack_require__(0));\n\nvar _globalObject = _interopRequireDefault(__webpack_require__(2));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\n/*\n * Copyright 2015, Gregg Tavares.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following disclaimer\n * in the documentation and/or other materials provided with the\n * distribution.\n * * Neither the name of Gregg Tavares. nor the names of his\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/**\n * Low level texture related functions\n *\n * You should generally not need to use these functions. They are provided\n * for those cases where you're doing something out of the ordinary\n * and you need lower level access.\n *\n * For backward compatibily they are available at both `twgl.textures` and `twgl`\n * itself\n *\n * See {@link module:twgl} for core functions\n *\n * @module twgl/textures\n */\n// make sure we don't see a global gl\nvar gl = undefined; // eslint-disable-line\n\nvar defaults = {\n textureColor: new Uint8Array([128, 192, 255, 255]),\n textureOptions: {},\n crossOrigin: undefined\n};\nvar isArrayBuffer = typedArrays.isArrayBuffer; // Should we make this on demand?\n\nvar ctx = _globalObject.default.document && _globalObject.default.document.createElement ? _globalObject.default.document.createElement(\"canvas\").getContext(\"2d\") : null; // NOTE: Chrome supports 2D canvas in a Worker (behind flag as of v64 but\n// not only does Firefox NOT support it but Firefox freezes immediately\n// if you try to create one instead of just returning null and continuing.\n// : (global.OffscreenCanvas && (new global.OffscreenCanvas(1, 1)).getContext(\"2d\")); // OffscreenCanvas may not support 2d\n// NOTE: We can maybe remove some of the need for the 2d canvas. In WebGL2\n// we can use the various unpack settings. Otherwise we could try using\n// the ability of an imagebitmap to be cut. Unfortunately cutting an imagebitmap\n// is async and the current TWGL code expects a non-Async result though that\n// might not be a problem. ImageBitmap though is not available in Edge or Safari\n// as of 2018-01-02\n\n/* PixelFormat */\n\nvar ALPHA = 0x1906;\nvar RGB = 0x1907;\nvar RGBA = 0x1908;\nvar LUMINANCE = 0x1909;\nvar LUMINANCE_ALPHA = 0x190A;\nvar DEPTH_COMPONENT = 0x1902;\nvar DEPTH_STENCIL = 0x84F9;\n/* TextureWrapMode */\n\nvar REPEAT = 0x2901; // eslint-disable-line\n\nvar MIRRORED_REPEAT = 0x8370; // eslint-disable-line\n\n/* TextureMagFilter */\n\nvar NEAREST = 0x2600; // eslint-disable-line\n\n/* TextureMinFilter */\n\nvar NEAREST_MIPMAP_NEAREST = 0x2700; // eslint-disable-line\n\nvar LINEAR_MIPMAP_NEAREST = 0x2701; // eslint-disable-line\n\nvar NEAREST_MIPMAP_LINEAR = 0x2702; // eslint-disable-line\n\nvar LINEAR_MIPMAP_LINEAR = 0x2703; // eslint-disable-line\n\nvar R8 = 0x8229;\nvar R8_SNORM = 0x8F94;\nvar R16F = 0x822D;\nvar R32F = 0x822E;\nvar R8UI = 0x8232;\nvar R8I = 0x8231;\nvar RG16UI = 0x823A;\nvar RG16I = 0x8239;\nvar RG32UI = 0x823C;\nvar RG32I = 0x823B;\nvar RG8 = 0x822B;\nvar RG8_SNORM = 0x8F95;\nvar RG16F = 0x822F;\nvar RG32F = 0x8230;\nvar RG8UI = 0x8238;\nvar RG8I = 0x8237;\nvar R16UI = 0x8234;\nvar R16I = 0x8233;\nvar R32UI = 0x8236;\nvar R32I = 0x8235;\nvar RGB8 = 0x8051;\nvar SRGB8 = 0x8C41;\nvar RGB565 = 0x8D62;\nvar RGB8_SNORM = 0x8F96;\nvar R11F_G11F_B10F = 0x8C3A;\nvar RGB9_E5 = 0x8C3D;\nvar RGB16F = 0x881B;\nvar RGB32F = 0x8815;\nvar RGB8UI = 0x8D7D;\nvar RGB8I = 0x8D8F;\nvar RGB16UI = 0x8D77;\nvar RGB16I = 0x8D89;\nvar RGB32UI = 0x8D71;\nvar RGB32I = 0x8D83;\nvar RGBA8 = 0x8058;\nvar SRGB8_ALPHA8 = 0x8C43;\nvar RGBA8_SNORM = 0x8F97;\nvar RGB5_A1 = 0x8057;\nvar RGBA4 = 0x8056;\nvar RGB10_A2 = 0x8059;\nvar RGBA16F = 0x881A;\nvar RGBA32F = 0x8814;\nvar RGBA8UI = 0x8D7C;\nvar RGBA8I = 0x8D8E;\nvar RGB10_A2UI = 0x906F;\nvar RGBA16UI = 0x8D76;\nvar RGBA16I = 0x8D88;\nvar RGBA32I = 0x8D82;\nvar RGBA32UI = 0x8D70;\nvar DEPTH_COMPONENT16 = 0x81A5;\nvar DEPTH_COMPONENT24 = 0x81A6;\nvar DEPTH_COMPONENT32F = 0x8CAC;\nvar DEPTH32F_STENCIL8 = 0x8CAD;\nvar DEPTH24_STENCIL8 = 0x88F0;\n/* DataType */\n\nvar BYTE = 0x1400;\nvar UNSIGNED_BYTE = 0x1401;\nvar SHORT = 0x1402;\nvar UNSIGNED_SHORT = 0x1403;\nvar INT = 0x1404;\nvar UNSIGNED_INT = 0x1405;\nvar FLOAT = 0x1406;\nvar UNSIGNED_SHORT_4_4_4_4 = 0x8033;\nvar UNSIGNED_SHORT_5_5_5_1 = 0x8034;\nvar UNSIGNED_SHORT_5_6_5 = 0x8363;\nvar HALF_FLOAT = 0x140B;\nvar HALF_FLOAT_OES = 0x8D61; // Thanks Khronos for making this different >:(\n\nvar UNSIGNED_INT_2_10_10_10_REV = 0x8368;\nvar UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B;\nvar UNSIGNED_INT_5_9_9_9_REV = 0x8C3E;\nvar FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD;\nvar UNSIGNED_INT_24_8 = 0x84FA;\nvar RG = 0x8227;\nvar RG_INTEGER = 0x8228;\nvar RED = 0x1903;\nvar RED_INTEGER = 0x8D94;\nvar RGB_INTEGER = 0x8D98;\nvar RGBA_INTEGER = 0x8D99;\nvar formatInfo = {};\n{\n // NOTE: this is named `numColorComponents` vs `numComponents` so we can let Uglify mangle\n // the name.\n var f = formatInfo;\n f[ALPHA] = {\n numColorComponents: 1\n };\n f[LUMINANCE] = {\n numColorComponents: 1\n };\n f[LUMINANCE_ALPHA] = {\n numColorComponents: 2\n };\n f[RGB] = {\n numColorComponents: 3\n };\n f[RGBA] = {\n numColorComponents: 4\n };\n f[RED] = {\n numColorComponents: 1\n };\n f[RED_INTEGER] = {\n numColorComponents: 1\n };\n f[RG] = {\n numColorComponents: 2\n };\n f[RG_INTEGER] = {\n numColorComponents: 2\n };\n f[RGB] = {\n numColorComponents: 3\n };\n f[RGB_INTEGER] = {\n numColorComponents: 3\n };\n f[RGBA] = {\n numColorComponents: 4\n };\n f[RGBA_INTEGER] = {\n numColorComponents: 4\n };\n f[DEPTH_COMPONENT] = {\n numColorComponents: 1\n };\n f[DEPTH_STENCIL] = {\n numColorComponents: 2\n };\n}\nvar textureInternalFormatInfo = {};\n{\n // NOTE: these properties need unique names so we can let Uglify mangle the name.\n var t = textureInternalFormatInfo; // unsized formats\n\n t[ALPHA] = {\n textureFormat: ALPHA,\n colorRenderable: true,\n textureFilterable: true,\n bytesPerElement: [1, 2, 2, 4],\n type: [UNSIGNED_BYTE, HALF_FLOAT, HALF_FLOAT_OES, FLOAT]\n };\n t[LUMINANCE] = {\n textureFormat: LUMINANCE,\n colorRenderable: true,\n textureFilterable: true,\n bytesPerElement: [1, 2, 2, 4],\n type: [UNSIGNED_BYTE, HALF_FLOAT, HALF_FLOAT_OES, FLOAT]\n };\n t[LUMINANCE_ALPHA] = {\n textureFormat: LUMINANCE_ALPHA,\n colorRenderable: true,\n textureFilterable: true,\n bytesPerElement: [2, 4, 4, 8],\n type: [UNSIGNED_BYTE, HALF_FLOAT, HALF_FLOAT_OES, FLOAT]\n };\n t[RGB] = {\n textureFormat: RGB,\n colorRenderable: true,\n textureFilterable: true,\n bytesPerElement: [3, 6, 6, 12, 2],\n type: [UNSIGNED_BYTE, HALF_FLOAT, HALF_FLOAT_OES, FLOAT, UNSIGNED_SHORT_5_6_5]\n };\n t[RGBA] = {\n textureFormat: RGBA,\n colorRenderable: true,\n textureFilterable: true,\n bytesPerElement: [4, 8, 8, 16, 2, 2],\n type: [UNSIGNED_BYTE, HALF_FLOAT, HALF_FLOAT_OES, FLOAT, UNSIGNED_SHORT_4_4_4_4, UNSIGNED_SHORT_5_5_5_1]\n }; // sized formats\n\n t[R8] = {\n textureFormat: RED,\n colorRenderable: true,\n textureFilterable: true,\n bytesPerElement: 1,\n type: UNSIGNED_BYTE\n };\n t[R8_SNORM] = {\n textureFormat: RED,\n colorRenderable: false,\n textureFilterable: true,\n bytesPerElement: 1,\n type: BYTE\n };\n t[R16F] = {\n textureFormat: RED,\n colorRenderable: false,\n textureFilterable: true,\n bytesPerElement: [4, 2],\n type: [FLOAT, HALF_FLOAT]\n };\n t[R32F] = {\n textureFormat: RED,\n colorRenderable: false,\n textureFilterable: false,\n bytesPerElement: 4,\n type: FLOAT\n };\n t[R8UI] = {\n textureFormat: RED_INTEGER,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 1,\n type: UNSIGNED_BYTE\n };\n t[R8I] = {\n textureFormat: RED_INTEGER,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 1,\n type: BYTE\n };\n t[R16UI] = {\n textureFormat: RED_INTEGER,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 2,\n type: UNSIGNED_SHORT\n };\n t[R16I] = {\n textureFormat: RED_INTEGER,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 2,\n type: SHORT\n };\n t[R32UI] = {\n textureFormat: RED_INTEGER,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 4,\n type: UNSIGNED_INT\n };\n t[R32I] = {\n textureFormat: RED_INTEGER,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 4,\n type: INT\n };\n t[RG8] = {\n textureFormat: RG,\n colorRenderable: true,\n textureFilterable: true,\n bytesPerElement: 2,\n type: UNSIGNED_BYTE\n };\n t[RG8_SNORM] = {\n textureFormat: RG,\n colorRenderable: false,\n textureFilterable: true,\n bytesPerElement: 2,\n type: BYTE\n };\n t[RG16F] = {\n textureFormat: RG,\n colorRenderable: false,\n textureFilterable: true,\n bytesPerElement: [8, 4],\n type: [FLOAT, HALF_FLOAT]\n };\n t[RG32F] = {\n textureFormat: RG,\n colorRenderable: false,\n textureFilterable: false,\n bytesPerElement: 8,\n type: FLOAT\n };\n t[RG8UI] = {\n textureFormat: RG_INTEGER,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 2,\n type: UNSIGNED_BYTE\n };\n t[RG8I] = {\n textureFormat: RG_INTEGER,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 2,\n type: BYTE\n };\n t[RG16UI] = {\n textureFormat: RG_INTEGER,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 4,\n type: UNSIGNED_SHORT\n };\n t[RG16I] = {\n textureFormat: RG_INTEGER,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 4,\n type: SHORT\n };\n t[RG32UI] = {\n textureFormat: RG_INTEGER,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 8,\n type: UNSIGNED_INT\n };\n t[RG32I] = {\n textureFormat: RG_INTEGER,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 8,\n type: INT\n };\n t[RGB8] = {\n textureFormat: RGB,\n colorRenderable: true,\n textureFilterable: true,\n bytesPerElement: 3,\n type: UNSIGNED_BYTE\n };\n t[SRGB8] = {\n textureFormat: RGB,\n colorRenderable: false,\n textureFilterable: true,\n bytesPerElement: 3,\n type: UNSIGNED_BYTE\n };\n t[RGB565] = {\n textureFormat: RGB,\n colorRenderable: true,\n textureFilterable: true,\n bytesPerElement: [3, 2],\n type: [UNSIGNED_BYTE, UNSIGNED_SHORT_5_6_5]\n };\n t[RGB8_SNORM] = {\n textureFormat: RGB,\n colorRenderable: false,\n textureFilterable: true,\n bytesPerElement: 3,\n type: BYTE\n };\n t[R11F_G11F_B10F] = {\n textureFormat: RGB,\n colorRenderable: false,\n textureFilterable: true,\n bytesPerElement: [12, 6, 4],\n type: [FLOAT, HALF_FLOAT, UNSIGNED_INT_10F_11F_11F_REV]\n };\n t[RGB9_E5] = {\n textureFormat: RGB,\n colorRenderable: false,\n textureFilterable: true,\n bytesPerElement: [12, 6, 4],\n type: [FLOAT, HALF_FLOAT, UNSIGNED_INT_5_9_9_9_REV]\n };\n t[RGB16F] = {\n textureFormat: RGB,\n colorRenderable: false,\n textureFilterable: true,\n bytesPerElement: [12, 6],\n type: [FLOAT, HALF_FLOAT]\n };\n t[RGB32F] = {\n textureFormat: RGB,\n colorRenderable: false,\n textureFilterable: false,\n bytesPerElement: 12,\n type: FLOAT\n };\n t[RGB8UI] = {\n textureFormat: RGB_INTEGER,\n colorRenderable: false,\n textureFilterable: false,\n bytesPerElement: 3,\n type: UNSIGNED_BYTE\n };\n t[RGB8I] = {\n textureFormat: RGB_INTEGER,\n colorRenderable: false,\n textureFilterable: false,\n bytesPerElement: 3,\n type: BYTE\n };\n t[RGB16UI] = {\n textureFormat: RGB_INTEGER,\n colorRenderable: false,\n textureFilterable: false,\n bytesPerElement: 6,\n type: UNSIGNED_SHORT\n };\n t[RGB16I] = {\n textureFormat: RGB_INTEGER,\n colorRenderable: false,\n textureFilterable: false,\n bytesPerElement: 6,\n type: SHORT\n };\n t[RGB32UI] = {\n textureFormat: RGB_INTEGER,\n colorRenderable: false,\n textureFilterable: false,\n bytesPerElement: 12,\n type: UNSIGNED_INT\n };\n t[RGB32I] = {\n textureFormat: RGB_INTEGER,\n colorRenderable: false,\n textureFilterable: false,\n bytesPerElement: 12,\n type: INT\n };\n t[RGBA8] = {\n textureFormat: RGBA,\n colorRenderable: true,\n textureFilterable: true,\n bytesPerElement: 4,\n type: UNSIGNED_BYTE\n };\n t[SRGB8_ALPHA8] = {\n textureFormat: RGBA,\n colorRenderable: true,\n textureFilterable: true,\n bytesPerElement: 4,\n type: UNSIGNED_BYTE\n };\n t[RGBA8_SNORM] = {\n textureFormat: RGBA,\n colorRenderable: false,\n textureFilterable: true,\n bytesPerElement: 4,\n type: BYTE\n };\n t[RGB5_A1] = {\n textureFormat: RGBA,\n colorRenderable: true,\n textureFilterable: true,\n bytesPerElement: [4, 2, 4],\n type: [UNSIGNED_BYTE, UNSIGNED_SHORT_5_5_5_1, UNSIGNED_INT_2_10_10_10_REV]\n };\n t[RGBA4] = {\n textureFormat: RGBA,\n colorRenderable: true,\n textureFilterable: true,\n bytesPerElement: [4, 2],\n type: [UNSIGNED_BYTE, UNSIGNED_SHORT_4_4_4_4]\n };\n t[RGB10_A2] = {\n textureFormat: RGBA,\n colorRenderable: true,\n textureFilterable: true,\n bytesPerElement: 4,\n type: UNSIGNED_INT_2_10_10_10_REV\n };\n t[RGBA16F] = {\n textureFormat: RGBA,\n colorRenderable: false,\n textureFilterable: true,\n bytesPerElement: [16, 8],\n type: [FLOAT, HALF_FLOAT]\n };\n t[RGBA32F] = {\n textureFormat: RGBA,\n colorRenderable: false,\n textureFilterable: false,\n bytesPerElement: 16,\n type: FLOAT\n };\n t[RGBA8UI] = {\n textureFormat: RGBA_INTEGER,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 4,\n type: UNSIGNED_BYTE\n };\n t[RGBA8I] = {\n textureFormat: RGBA_INTEGER,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 4,\n type: BYTE\n };\n t[RGB10_A2UI] = {\n textureFormat: RGBA_INTEGER,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 4,\n type: UNSIGNED_INT_2_10_10_10_REV\n };\n t[RGBA16UI] = {\n textureFormat: RGBA_INTEGER,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 8,\n type: UNSIGNED_SHORT\n };\n t[RGBA16I] = {\n textureFormat: RGBA_INTEGER,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 8,\n type: SHORT\n };\n t[RGBA32I] = {\n textureFormat: RGBA_INTEGER,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 16,\n type: INT\n };\n t[RGBA32UI] = {\n textureFormat: RGBA_INTEGER,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 16,\n type: UNSIGNED_INT\n }; // Sized Internal\n\n t[DEPTH_COMPONENT16] = {\n textureFormat: DEPTH_COMPONENT,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: [2, 4],\n type: [UNSIGNED_SHORT, UNSIGNED_INT]\n };\n t[DEPTH_COMPONENT24] = {\n textureFormat: DEPTH_COMPONENT,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 4,\n type: UNSIGNED_INT\n };\n t[DEPTH_COMPONENT32F] = {\n textureFormat: DEPTH_COMPONENT,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 4,\n type: FLOAT\n };\n t[DEPTH24_STENCIL8] = {\n textureFormat: DEPTH_STENCIL,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 4,\n type: UNSIGNED_INT_24_8\n };\n t[DEPTH32F_STENCIL8] = {\n textureFormat: DEPTH_STENCIL,\n colorRenderable: true,\n textureFilterable: false,\n bytesPerElement: 4,\n type: FLOAT_32_UNSIGNED_INT_24_8_REV\n };\n Object.keys(t).forEach(function (internalFormat) {\n var info = t[internalFormat];\n info.bytesPerElementMap = {};\n\n if (Array.isArray(info.bytesPerElement)) {\n info.bytesPerElement.forEach(function (bytesPerElement, ndx) {\n var type = info.type[ndx];\n info.bytesPerElementMap[type] = bytesPerElement;\n });\n } else {\n var type = info.type;\n info.bytesPerElementMap[type] = info.bytesPerElement;\n }\n });\n}\n/**\n * Gets the number of bytes per element for a given internalFormat / type\n * @param {number} internalFormat The internalFormat parameter from texImage2D etc..\n * @param {number} type The type parameter for texImage2D etc..\n * @return {number} the number of bytes per element for the given internalFormat, type combo\n * @memberOf module:twgl/textures\n */\n\nfunction getBytesPerElementForInternalFormat(internalFormat, type) {\n var info = textureInternalFormatInfo[internalFormat];\n\n if (!info) {\n throw \"unknown internal format\";\n }\n\n var bytesPerElement = info.bytesPerElementMap[type];\n\n if (bytesPerElement === undefined) {\n throw \"unknown internal format\";\n }\n\n return bytesPerElement;\n}\n/**\n * Gets the format for a given internalFormat\n *\n * @param {number} internalFormat The internal format\n * @return {{format:number, type:number}} the corresponding format and type\n */\n\n\nfunction getFormatAndTypeForInternalFormat(internalFormat) {\n var info = textureInternalFormatInfo[internalFormat];\n\n if (!info) {\n throw \"unknown internal format\";\n }\n\n return {\n format: info.textureFormat,\n type: Array.isArray(info.type) ? info.type[0] : info.type\n };\n}\n/**\n * Returns true if value is power of 2\n * @param {number} value number to check.\n * @return true if value is power of 2\n */\n\n\nfunction isPowerOf2(value) {\n return (value & value - 1) === 0;\n}\n/**\n * Gets whether or not we can generate mips for the given format\n * @param {number} internalFormat The internalFormat parameter from texImage2D etc..\n * @param {number} type The type parameter for texImage2D etc..\n * @return {boolean} true if we can generate mips\n */\n\n\nfunction canGenerateMipmap(gl, width, height, internalFormat\n/*, type */\n) {\n if (!utils.isWebGL2(gl)) {\n return isPowerOf2(width) && isPowerOf2(height);\n }\n\n var info = textureInternalFormatInfo[internalFormat];\n\n if (!info) {\n throw \"unknown internal format\";\n }\n\n return info.colorRenderable && info.textureFilterable;\n}\n/**\n * Gets whether or not we can generate mips for the given format\n * @param {number} internalFormat The internalFormat parameter from texImage2D etc..\n * @param {number} type The type parameter for texImage2D etc..\n * @return {boolean} true if we can generate mips\n */\n\n\nfunction canFilter(internalFormat\n/*, type */\n) {\n var info = textureInternalFormatInfo[internalFormat];\n\n if (!info) {\n throw \"unknown internal format\";\n }\n\n return info.textureFilterable;\n}\n/**\n * Gets the number of compontents for a given image format.\n * @param {number} format the format.\n * @return {number} the number of components for the format.\n * @memberOf module:twgl/textures\n */\n\n\nfunction getNumComponentsForFormat(format) {\n var info = formatInfo[format];\n\n if (!info) {\n throw \"unknown format: \" + format;\n }\n\n return info.numColorComponents;\n}\n/**\n * Gets the texture type for a given array type.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @return {number} the gl texture type\n */\n\n\nfunction getTextureTypeForArrayType(gl, src, defaultType) {\n if (isArrayBuffer(src)) {\n return typedArrays.getGLTypeForTypedArray(src);\n }\n\n return defaultType || gl.UNSIGNED_BYTE;\n}\n\nfunction guessDimensions(gl, target, width, height, numElements) {\n if (numElements % 1 !== 0) {\n throw \"can't guess dimensions\";\n }\n\n if (!width && !height) {\n var size = Math.sqrt(numElements / (target === gl.TEXTURE_CUBE_MAP ? 6 : 1));\n\n if (size % 1 === 0) {\n width = size;\n height = size;\n } else {\n width = numElements;\n height = 1;\n }\n } else if (!height) {\n height = numElements / width;\n\n if (height % 1) {\n throw \"can't guess dimensions\";\n }\n } else if (!width) {\n width = numElements / height;\n\n if (width % 1) {\n throw \"can't guess dimensions\";\n }\n }\n\n return {\n width: width,\n height: height\n };\n}\n/**\n * Sets the default texture color.\n *\n * The default texture color is used when loading textures from\n * urls. Because the URL will be loaded async we'd like to be\n * able to use the texture immediately. By putting a 1x1 pixel\n * color in the texture we can start using the texture before\n * the URL has loaded.\n *\n * @param {number[]} color Array of 4 values in the range 0 to 1\n * @deprecated see {@link module:twgl.setDefaults}\n * @memberOf module:twgl/textures\n */\n\n\nfunction setDefaultTextureColor(color) {\n defaults.textureColor = new Uint8Array([color[0] * 255, color[1] * 255, color[2] * 255, color[3] * 255]);\n}\n\nfunction setDefaults(newDefaults) {\n helper.copyExistingProperties(newDefaults, defaults);\n\n if (newDefaults.textureColor) {\n setDefaultTextureColor(newDefaults.textureColor);\n }\n}\n/**\n * A function to generate the source for a texture.\n * @callback TextureFunc\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext\n * @param {module:twgl.TextureOptions} options the texture options\n * @return {*} Returns any of the things documentented for `src` for {@link module:twgl.TextureOptions}.\n * @memberOf module:twgl\n */\n\n/**\n * Texture options passed to most texture functions. Each function will use whatever options\n * are appropriate for its needs. This lets you pass the same options to all functions.\n *\n * Note: A `TexImageSource` is defined in the WebGL spec as a `HTMLImageElement`, `HTMLVideoElement`,\n * `HTMLCanvasElement`, `ImageBitmap`, or `ImageData`.\n *\n * @typedef {Object} TextureOptions\n * @property {number} [target] the type of texture `gl.TEXTURE_2D` or `gl.TEXTURE_CUBE_MAP`. Defaults to `gl.TEXTURE_2D`.\n * @property {number} [level] the mip level to affect. Defaults to 0. Note, if set auto will be considered false unless explicitly set to true.\n * @property {number} [width] the width of the texture. Only used if src is an array or typed array or null.\n * @property {number} [height] the height of a texture. Only used if src is an array or typed array or null.\n * @property {number} [depth] the depth of a texture. Only used if src is an array or type array or null and target is `TEXTURE_3D` .\n * @property {number} [min] the min filter setting (eg. `gl.LINEAR`). Defaults to `gl.NEAREST_MIPMAP_LINEAR`\n * or if texture is not a power of 2 on both dimensions then defaults to `gl.LINEAR`.\n * @property {number} [mag] the mag filter setting (eg. `gl.LINEAR`). Defaults to `gl.LINEAR`\n * @property {number} [minMag] both the min and mag filter settings.\n * @property {number} [internalFormat] internal format for texture. Defaults to `gl.RGBA`\n * @property {number} [format] format for texture. Defaults to `gl.RGBA`.\n * @property {number} [type] type for texture. Defaults to `gl.UNSIGNED_BYTE` unless `src` is ArrayBufferView. If `src`\n * is ArrayBufferView defaults to type that matches ArrayBufferView type.\n * @property {number} [wrap] Texture wrapping for both S and T (and R if TEXTURE_3D or WebGLSampler). Defaults to `gl.REPEAT` for 2D unless src is WebGL1 and src not npot and `gl.CLAMP_TO_EDGE` for cube\n * @property {number} [wrapS] Texture wrapping for S. Defaults to `gl.REPEAT` and `gl.CLAMP_TO_EDGE` for cube. If set takes precedence over `wrap`.\n * @property {number} [wrapT] Texture wrapping for T. Defaults to `gl.REPEAT` and `gl.CLAMP_TO_EDGE` for cube. If set takes precedence over `wrap`.\n * @property {number} [wrapR] Texture wrapping for R. Defaults to `gl.REPEAT` and `gl.CLAMP_TO_EDGE` for cube. If set takes precedence over `wrap`.\n * @property {number} [minLod] TEXTURE_MIN_LOD setting\n * @property {number} [maxLod] TEXTURE_MAX_LOD setting\n * @property {number} [baseLevel] TEXTURE_BASE_LEVEL setting\n * @property {number} [maxLevel] TEXTURE_MAX_LEVEL setting\n * @property {number} [unpackAlignment] The `gl.UNPACK_ALIGNMENT` used when uploading an array. Defaults to 1.\n * @property {number} [premultiplyAlpha] Whether or not to premultiply alpha. Defaults to whatever the current setting is.\n * This lets you set it once before calling `twgl.createTexture` or `twgl.createTextures` and only override\n * the current setting for specific textures.\n * @property {number} [flipY] Whether or not to flip the texture vertically on upload. Defaults to whatever the current setting is.\n * This lets you set it once before calling `twgl.createTexture` or `twgl.createTextures` and only override\n * the current setting for specific textures.\n * @property {number} [colorspaceConversion] Whether or not to let the browser do colorspace conversion of the texture on upload. Defaults to whatever the current setting is.\n * This lets you set it once before calling `twgl.createTexture` or `twgl.createTextures` and only override\n * the current setting for specific textures.\n * @property {(number[]|ArrayBufferView)} color color used as temporary 1x1 pixel color for textures loaded async when src is a string.\n * If it's a JavaScript array assumes color is 0 to 1 like most GL colors as in `[1, 0, 0, 1] = red=1, green=0, blue=0, alpha=0`.\n * Defaults to `[0.5, 0.75, 1, 1]`. See {@link module:twgl.setDefaultTextureColor}. If `false` texture is set. Can be used to re-load a texture\n * @property {boolean} [auto] If `undefined` or `true`, in WebGL1, texture filtering is set automatically for non-power of 2 images and\n * mips are generated for power of 2 images. In WebGL2 mips are generated if they can be. Note: if `level` is set above\n * then then `auto` is assumed to be `false` unless explicity set to `true`.\n * @property {number[]} [cubeFaceOrder] The order that cube faces are pulled out of an img or set of images. The default is\n *\n * [gl.TEXTURE_CUBE_MAP_POSITIVE_X,\n * gl.TEXTURE_CUBE_MAP_NEGATIVE_X,\n * gl.TEXTURE_CUBE_MAP_POSITIVE_Y,\n * gl.TEXTURE_CUBE_MAP_NEGATIVE_Y,\n * gl.TEXTURE_CUBE_MAP_POSITIVE_Z,\n * gl.TEXTURE_CUBE_MAP_NEGATIVE_Z]\n *\n * @property {(number[]|ArrayBufferView|TexImageSource|TexImageSource[]|string|string[]|module:twgl.TextureFunc)} [src] source for texture\n *\n * If `string` then it's assumed to be a URL to an image. The image will be downloaded async. A usable\n * 1x1 pixel texture will be returned immediatley. The texture will be updated once the image has downloaded.\n * If `target` is `gl.TEXTURE_CUBE_MAP` will attempt to divide image into 6 square pieces. 1x6, 6x1, 3x2, 2x3.\n * The pieces will be uploaded in `cubeFaceOrder`\n *\n * If `string[]` or `TexImageSource[]` and target is `gl.TEXTURE_CUBE_MAP` then it must have 6 entries, one for each face of a cube map.\n *\n * If `string[]` or `TexImageSource[]` and target is `gl.TEXTURE_2D_ARRAY` then eact entry is a slice of the a 2d array texture\n * and will be scaled to the specified width and height OR to the size of the first image that loads.\n *\n * If `TexImageSource` then it wil be used immediately to create the contents of the texture. Examples `HTMLImageElement`,\n * `HTMLCanvasElement`, `HTMLVideoElement`.\n *\n * If `number[]` or `ArrayBufferView` it's assumed to be data for a texture. If `width` or `height` is\n * not specified it is guessed as follows. First the number of elements is computed by `src.length / numComponents`\n * where `numComponents` is derived from `format`. If `target` is `gl.TEXTURE_CUBE_MAP` then `numElements` is divided\n * by 6. Then\n *\n * * If neither `width` nor `height` are specified and `sqrt(numElements)` is an integer then width and height\n * are set to `sqrt(numElements)`. Otherwise `width = numElements` and `height = 1`.\n *\n * * If only one of `width` or `height` is specified then the other equals `numElements / specifiedDimension`.\n *\n * If `number[]` will be converted to `type`.\n *\n * If `src` is a function it will be called with a `WebGLRenderingContext` and these options.\n * Whatever it returns is subject to these rules. So it can return a string url, an `HTMLElement`\n * an array etc...\n *\n * If `src` is undefined then an empty texture will be created of size `width` by `height`.\n *\n * @property {string} [crossOrigin] What to set the crossOrigin property of images when they are downloaded.\n * default: undefined. Also see {@link module:twgl.setDefaults}.\n *\n * @memberOf module:twgl\n */\n// NOTE: While querying GL is considered slow it's not remotely as slow\n// as uploading a texture. On top of that you're unlikely to call this in\n// a perf critical loop. Even if upload a texture every frame that's unlikely\n// to be more than 1 or 2 textures a frame. In other words, the benefits of\n// making the API easy to use outweigh any supposed perf benefits\n//\n// Also note I get that having one global of these is bad practice.\n// As long as it's used correctly it means no garbage which probably\n// doesn't matter when dealing with textures but old habits die hard.\n\n\nvar lastPackState = {};\n/**\n * Saves any packing state that will be set based on the options.\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n */\n\nfunction savePackState(gl, options) {\n if (options.colorspaceConversion !== undefined) {\n lastPackState.colorspaceConversion = gl.getParameter(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL);\n gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, options.colorspaceConversion);\n }\n\n if (options.premultiplyAlpha !== undefined) {\n lastPackState.premultiplyAlpha = gl.getParameter(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, options.premultiplyAlpha);\n }\n\n if (options.flipY !== undefined) {\n lastPackState.flipY = gl.getParameter(gl.UNPACK_FLIP_Y_WEBGL);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, options.flipY);\n }\n}\n/**\n * Restores any packing state that was set based on the options.\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n */\n\n\nfunction restorePackState(gl, options) {\n if (options.colorspaceConversion !== undefined) {\n gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, lastPackState.colorspaceConversion);\n }\n\n if (options.premultiplyAlpha !== undefined) {\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, lastPackState.premultiplyAlpha);\n }\n\n if (options.flipY !== undefined) {\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, lastPackState.flipY);\n }\n}\n/**\n * Saves state related to data size\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n */\n\n\nfunction saveSkipState(gl) {\n lastPackState.unpackAlignment = gl.getParameter(gl.UNPACK_ALIGNMENT);\n\n if (utils.isWebGL2(gl)) {\n lastPackState.unpackRowLength = gl.getParameter(gl.UNPACK_ROW_LENGTH);\n lastPackState.unpackImageHeight = gl.getParameter(gl.UNPACK_IMAGE_HEIGHT);\n lastPackState.unpackSkipPixels = gl.getParameter(gl.UNPACK_SKIP_PIXELS);\n lastPackState.unpackSkipRows = gl.getParameter(gl.UNPACK_SKIP_ROWS);\n lastPackState.unpackSkipImages = gl.getParameter(gl.UNPACK_SKIP_IMAGES);\n }\n}\n/**\n * Restores state related to data size\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n */\n\n\nfunction restoreSkipState(gl) {\n gl.pixelStorei(gl.UNPACK_ALIGNMENT, lastPackState.unpackAlignment);\n\n if (utils.isWebGL2(gl)) {\n gl.pixelStorei(gl.UNPACK_ROW_LENGTH, lastPackState.unpackRowLength);\n gl.pixelStorei(gl.UNPACK_IMAGE_HEIGHT, lastPackState.unpackImageHeight);\n gl.pixelStorei(gl.UNPACK_SKIP_PIXELS, lastPackState.unpackSkipPixels);\n gl.pixelStorei(gl.UNPACK_SKIP_ROWS, lastPackState.unpackSkipRows);\n gl.pixelStorei(gl.UNPACK_SKIP_IMAGES, lastPackState.unpackSkipImages);\n }\n}\n/**\n * Sets the parameters of a texture or sampler\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {number|WebGLSampler} target texture target or sampler\n * @param {function()} parameteriFn texParamteri or samplerParameteri fn\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n * This is often the same options you passed in when you created the texture.\n */\n\n\nfunction setTextureSamplerParameters(gl, target, parameteriFn, options) {\n if (options.minMag) {\n parameteriFn.call(gl, target, gl.TEXTURE_MIN_FILTER, options.minMag);\n parameteriFn.call(gl, target, gl.TEXTURE_MAG_FILTER, options.minMag);\n }\n\n if (options.min) {\n parameteriFn.call(gl, target, gl.TEXTURE_MIN_FILTER, options.min);\n }\n\n if (options.mag) {\n parameteriFn.call(gl, target, gl.TEXTURE_MAG_FILTER, options.mag);\n }\n\n if (options.wrap) {\n parameteriFn.call(gl, target, gl.TEXTURE_WRAP_S, options.wrap);\n parameteriFn.call(gl, target, gl.TEXTURE_WRAP_T, options.wrap);\n\n if (target === gl.TEXTURE_3D || helper.isSampler(gl, target)) {\n parameteriFn.call(gl, target, gl.TEXTURE_WRAP_R, options.wrap);\n }\n }\n\n if (options.wrapR) {\n parameteriFn.call(gl, target, gl.TEXTURE_WRAP_R, options.wrapR);\n }\n\n if (options.wrapS) {\n parameteriFn.call(gl, target, gl.TEXTURE_WRAP_S, options.wrapS);\n }\n\n if (options.wrapT) {\n parameteriFn.call(gl, target, gl.TEXTURE_WRAP_T, options.wrapT);\n }\n\n if (options.minLod) {\n parameteriFn.call(gl, target, gl.TEXTURE_MIN_LOD, options.minLod);\n }\n\n if (options.maxLod) {\n parameteriFn.call(gl, target, gl.TEXTURE_MAX_LOD, options.maxLod);\n }\n\n if (options.baseLevel) {\n parameteriFn.call(gl, target, gl.TEXTURE_BASE_LEVEL, options.baseLevel);\n }\n\n if (options.maxLevel) {\n parameteriFn.call(gl, target, gl.TEXTURE_MAX_LEVEL, options.maxLevel);\n }\n}\n/**\n * Sets the texture parameters of a texture.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n * This is often the same options you passed in when you created the texture.\n * @memberOf module:twgl/textures\n */\n\n\nfunction setTextureParameters(gl, tex, options) {\n var target = options.target || gl.TEXTURE_2D;\n gl.bindTexture(target, tex);\n setTextureSamplerParameters(gl, target, gl.texParameteri, options);\n}\n/**\n * Sets the sampler parameters of a sampler.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLSampler} sampler the WebGLSampler to set parameters for\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n * @memberOf module:twgl/textures\n */\n\n\nfunction setSamplerParameters(gl, sampler, options) {\n setTextureSamplerParameters(gl, sampler, gl.samplerParameteri, options);\n}\n/**\n * Creates a new sampler object and sets parameters.\n *\n * Example:\n *\n * const sampler = twgl.createSampler(gl, {\n * minMag: gl.NEAREST, // sets both TEXTURE_MIN_FILTER and TEXTURE_MAG_FILTER\n * wrap: gl.CLAMP_TO_NEAREST, // sets both TEXTURE_WRAP_S and TEXTURE_WRAP_T and TEXTURE_WRAP_R\n * });\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {Object.} options A object of TextureOptions one per sampler.\n * @return {Object.} the created samplers by name\n */\n\n\nfunction createSampler(gl, options) {\n var sampler = gl.createSampler();\n setSamplerParameters(gl, sampler, options);\n return sampler;\n}\n/**\n * Creates a multiple sampler objects and sets parameters on each.\n *\n * Example:\n *\n * const samplers = twgl.createSamplers(gl, {\n * nearest: {\n * minMag: gl.NEAREST,\n * },\n * nearestClampS: {\n * minMag: gl.NEAREST,\n * wrapS: gl.CLAMP_TO_NEAREST,\n * },\n * linear: {\n * minMag: gl.LINEAR,\n * },\n * nearestClamp: {\n * minMag: gl.NEAREST,\n * wrap: gl.CLAMP_TO_EDGE,\n * },\n * linearClamp: {\n * minMag: gl.LINEAR,\n * wrap: gl.CLAMP_TO_EDGE,\n * },\n * linearClampT: {\n * minMag: gl.LINEAR,\n * wrapT: gl.CLAMP_TO_EDGE,\n * },\n * });\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {module:twgl.TextureOptions} [options] A TextureOptions object with whatever parameters you want set on the sampler\n */\n\n\nfunction createSamplers(gl, samplerOptions) {\n var samplers = {};\n Object.keys(samplerOptions).forEach(function (name) {\n samplers[name] = createSampler(gl, samplerOptions[name]);\n });\n return samplers;\n}\n/**\n * Makes a 1x1 pixel\n * If no color is passed in uses the default color which can be set by calling `setDefaultTextureColor`.\n * @param {(number[]|ArrayBufferView)} [color] The color using 0-1 values\n * @return {Uint8Array} Unit8Array with color.\n */\n\n\nfunction make1Pixel(color) {\n color = color || defaults.textureColor;\n\n if (isArrayBuffer(color)) {\n return color;\n }\n\n return new Uint8Array([color[0] * 255, color[1] * 255, color[2] * 255, color[3] * 255]);\n}\n/**\n * Sets filtering or generates mips for texture based on width or height\n * If width or height is not passed in uses `options.width` and//or `options.height`\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {module:twgl.TextureOptions} [options] A TextureOptions object with whatever parameters you want set.\n * This is often the same options you passed in when you created the texture.\n * @param {number} [width] width of texture\n * @param {number} [height] height of texture\n * @param {number} [internalFormat] The internalFormat parameter from texImage2D etc..\n * @param {number} [type] The type parameter for texImage2D etc..\n * @memberOf module:twgl/textures\n */\n\n\nfunction setTextureFilteringForSize(gl, tex, options, width, height, internalFormat, type) {\n options = options || defaults.textureOptions;\n internalFormat = internalFormat || gl.RGBA;\n type = type || gl.UNSIGNED_BYTE;\n var target = options.target || gl.TEXTURE_2D;\n width = width || options.width;\n height = height || options.height;\n gl.bindTexture(target, tex);\n\n if (canGenerateMipmap(gl, width, height, internalFormat, type)) {\n gl.generateMipmap(target);\n } else {\n var filtering = canFilter(internalFormat, type) ? gl.LINEAR : gl.NEAREST;\n gl.texParameteri(target, gl.TEXTURE_MIN_FILTER, filtering);\n gl.texParameteri(target, gl.TEXTURE_MAG_FILTER, filtering);\n gl.texParameteri(target, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(target, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n }\n}\n\nfunction shouldAutomaticallySetTextureFilteringForSize(options) {\n return options.auto === true || options.auto === undefined && options.level === undefined;\n}\n/**\n * Gets an array of cubemap face enums\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n * This is often the same options you passed in when you created the texture.\n * @return {number[]} cubemap face enums\n */\n\n\nfunction getCubeFaceOrder(gl, options) {\n options = options || {};\n return options.cubeFaceOrder || [gl.TEXTURE_CUBE_MAP_POSITIVE_X, gl.TEXTURE_CUBE_MAP_NEGATIVE_X, gl.TEXTURE_CUBE_MAP_POSITIVE_Y, gl.TEXTURE_CUBE_MAP_NEGATIVE_Y, gl.TEXTURE_CUBE_MAP_POSITIVE_Z, gl.TEXTURE_CUBE_MAP_NEGATIVE_Z];\n}\n/**\n * @typedef {Object} FaceInfo\n * @property {number} face gl enum for texImage2D\n * @property {number} ndx face index (0 - 5) into source data\n * @ignore\n */\n\n/**\n * Gets an array of FaceInfos\n * There's a bug in some NVidia drivers that will crash the driver if\n * `gl.TEXTURE_CUBE_MAP_POSITIVE_X` is not uploaded first. So, we take\n * the user's desired order from his faces to WebGL and make sure we\n * do the faces in WebGL order\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n * @return {FaceInfo[]} cubemap face infos. Arguably the `face` property of each element is redundent but\n * it's needed internally to sort the array of `ndx` properties by `face`.\n */\n\n\nfunction getCubeFacesWithNdx(gl, options) {\n var faces = getCubeFaceOrder(gl, options); // work around bug in NVidia drivers. We have to upload the first face first else the driver crashes :(\n\n var facesWithNdx = faces.map(function (face, ndx) {\n return {\n face: face,\n ndx: ndx\n };\n });\n facesWithNdx.sort(function (a, b) {\n return a.face - b.face;\n });\n return facesWithNdx;\n}\n/**\n * Set a texture from the contents of an element. Will also set\n * texture filtering or generate mips based on the dimensions of the element\n * unless `options.auto === false`. If `target === gl.TEXTURE_CUBE_MAP` will\n * attempt to slice image into 1x6, 2x3, 3x2, or 6x1 images, one for each face.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {HTMLElement} element a canvas, img, or video element.\n * @param {module:twgl.TextureOptions} [options] A TextureOptions object with whatever parameters you want set.\n * This is often the same options you passed in when you created the texture.\n * @memberOf module:twgl/textures\n * @kind function\n */\n\n\nfunction setTextureFromElement(gl, tex, element, options) {\n options = options || defaults.textureOptions;\n var target = options.target || gl.TEXTURE_2D;\n var level = options.level || 0;\n var width = element.width;\n var height = element.height;\n var internalFormat = options.internalFormat || options.format || gl.RGBA;\n var formatType = getFormatAndTypeForInternalFormat(internalFormat);\n var format = options.format || formatType.format;\n var type = options.type || formatType.type;\n savePackState(gl, options);\n gl.bindTexture(target, tex);\n\n if (target === gl.TEXTURE_CUBE_MAP) {\n // guess the parts\n var imgWidth = element.width;\n var imgHeight = element.height;\n var size;\n var slices;\n\n if (imgWidth / 6 === imgHeight) {\n // It's 6x1\n size = imgHeight;\n slices = [0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0];\n } else if (imgHeight / 6 === imgWidth) {\n // It's 1x6\n size = imgWidth;\n slices = [0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5];\n } else if (imgWidth / 3 === imgHeight / 2) {\n // It's 3x2\n size = imgWidth / 3;\n slices = [0, 0, 1, 0, 2, 0, 0, 1, 1, 1, 2, 1];\n } else if (imgWidth / 2 === imgHeight / 3) {\n // It's 2x3\n size = imgWidth / 2;\n slices = [0, 0, 1, 0, 0, 1, 1, 1, 0, 2, 1, 2];\n } else {\n throw \"can't figure out cube map from element: \" + (element.src ? element.src : element.nodeName);\n }\n\n if (ctx) {\n ctx.canvas.width = size;\n ctx.canvas.height = size;\n width = size;\n height = size;\n getCubeFacesWithNdx(gl, options).forEach(function (f) {\n var xOffset = slices[f.ndx * 2 + 0] * size;\n var yOffset = slices[f.ndx * 2 + 1] * size;\n ctx.drawImage(element, xOffset, yOffset, size, size, 0, 0, size, size);\n gl.texImage2D(f.face, level, internalFormat, format, type, ctx.canvas);\n }); // Free up the canvas memory\n\n ctx.canvas.width = 1;\n ctx.canvas.height = 1;\n } else if (_globalObject.default.createImageBitmap) {\n // NOTE: It seems like we should prefer ImageBitmap because unlike canvas it's\n // note lossy? (alpha is not premultiplied? although I'm not sure what\n width = size;\n height = size;\n getCubeFacesWithNdx(gl, options).forEach(function (f) {\n var xOffset = slices[f.ndx * 2 + 0] * size;\n var yOffset = slices[f.ndx * 2 + 1] * size; // We can't easily use a default texture color here as it would have to match\n // the type across all faces where as with a 2D one there's only one face\n // so we're replacing everything all at once. It also has to be the correct size.\n // On the other hand we need all faces to be the same size so as one face loads\n // the rest match else the texture will be unrenderable.\n\n gl.texImage2D(f.face, level, internalFormat, size, size, 0, format, type, null);\n\n _globalObject.default.createImageBitmap(element, xOffset, yOffset, size, size, {\n premultiplyAlpha: 'none',\n colorSpaceConversion: 'none'\n }).then(function (imageBitmap) {\n savePackState(gl, options);\n gl.bindTexture(target, tex);\n gl.texImage2D(f.face, level, internalFormat, format, type, imageBitmap);\n restorePackState(gl, options);\n\n if (shouldAutomaticallySetTextureFilteringForSize(options)) {\n setTextureFilteringForSize(gl, tex, options, width, height, internalFormat, type);\n }\n });\n });\n }\n } else if (target === gl.TEXTURE_3D || target === gl.TEXTURE_2D_ARRAY) {\n var smallest = Math.min(element.width, element.height);\n var largest = Math.max(element.width, element.height);\n var depth = largest / smallest;\n\n if (depth % 1 !== 0) {\n throw \"can not compute 3D dimensions of element\";\n }\n\n var xMult = element.width === largest ? 1 : 0;\n var yMult = element.height === largest ? 1 : 0;\n saveSkipState(gl);\n gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);\n gl.pixelStorei(gl.UNPACK_ROW_LENGTH, element.width);\n gl.pixelStorei(gl.UNPACK_IMAGE_HEIGHT, 0);\n gl.pixelStorei(gl.UNPACK_SKIP_IMAGES, 0);\n gl.texImage3D(target, level, internalFormat, smallest, smallest, smallest, 0, format, type, null);\n\n for (var d = 0; d < depth; ++d) {\n var srcX = d * smallest * xMult;\n var srcY = d * smallest * yMult;\n gl.pixelStorei(gl.UNPACK_SKIP_PIXELS, srcX);\n gl.pixelStorei(gl.UNPACK_SKIP_ROWS, srcY);\n gl.texSubImage3D(target, level, 0, 0, d, smallest, smallest, 1, format, type, element);\n }\n\n restoreSkipState(gl);\n } else {\n gl.texImage2D(target, level, internalFormat, format, type, element);\n }\n\n restorePackState(gl, options);\n\n if (shouldAutomaticallySetTextureFilteringForSize(options)) {\n setTextureFilteringForSize(gl, tex, options, width, height, internalFormat, type);\n }\n\n setTextureParameters(gl, tex, options);\n}\n\nfunction noop() {}\n/**\n * Loads an image\n * @param {string} url url to image\n * @param {string} crossOrigin\n * @param {function(err, img)} [callback] a callback that's passed an error and the image. The error will be non-null\n * if there was an error\n * @return {HTMLImageElement} the image being loaded.\n */\n\n\nfunction loadImage(url, crossOrigin, callback) {\n callback = callback || noop;\n var img;\n\n if (_globalObject.default.Image) {\n img = new _globalObject.default.Image();\n crossOrigin = crossOrigin !== undefined ? crossOrigin : defaults.crossOrigin;\n\n if (crossOrigin !== undefined) {\n img.crossOrigin = crossOrigin;\n }\n\n var clearEventHandlers = function clearEventHandlers() {\n img.removeEventListener('error', onError); // eslint-disable-line\n\n img.removeEventListener('load', onLoad); // eslint-disable-line\n\n img = null;\n };\n\n var onError = function onError() {\n var msg = \"couldn't load image: \" + url;\n helper.error(msg);\n callback(msg, img);\n clearEventHandlers();\n };\n\n var onLoad = function onLoad() {\n callback(null, img);\n clearEventHandlers();\n };\n\n img.addEventListener('error', onError);\n img.addEventListener('load', onLoad);\n img.src = url;\n return img;\n } else if (_globalObject.default.ImageBitmap) {\n var err;\n var bm;\n\n var cb = function cb() {\n callback(err, bm);\n };\n\n var options = {};\n\n if (crossOrigin) {\n options.mode = 'cors'; // TODO: not sure how to translate image.crossOrigin\n }\n\n fetch(url, options).then(function (response) {\n if (!response.ok) {\n throw response;\n }\n\n return response.blob();\n }).then(function (blob) {\n return _globalObject.default.createImageBitmap(blob, {\n premultiplyAlpha: 'none',\n colorSpaceConversion: 'none'\n });\n }).then(function (bitmap) {\n // not sure if this works. We don't want\n // to catch the user's error. So, call\n // the callback in a timeout so we're\n // not in this scope inside the promise.\n bm = bitmap;\n setTimeout(cb);\n }).catch(function (e) {\n err = e;\n setTimeout(cb);\n });\n img = null;\n }\n\n return img;\n}\n/**\n * check if object is a TexImageSource\n *\n * @param {Object} obj Object to test\n * @return {boolean} true if object is a TexImageSource\n */\n\n\nfunction isTexImageSource(obj) {\n return _globalObject.default.ImageBitmap && obj instanceof _globalObject.default.ImageBitmap || _globalObject.default.ImageData && obj instanceof _globalObject.default.ImageData || _globalObject.default.HTMLElement && obj instanceof _globalObject.default.HTMLElement;\n}\n/**\n * if obj is an TexImageSource then just\n * uses it otherwise if obj is a string\n * then load it first.\n *\n * @param {string|TexImageSource} obj\n * @param {string} crossOrigin\n * @param {function(err, img)} [callback] a callback that's passed an error and the image. The error will be non-null\n * if there was an error\n */\n\n\nfunction loadAndUseImage(obj, crossOrigin, callback) {\n if (isTexImageSource(obj)) {\n setTimeout(function () {\n callback(null, obj);\n });\n return obj;\n }\n\n return loadImage(obj, crossOrigin, callback);\n}\n/**\n * Sets a texture to a 1x1 pixel color. If `options.color === false` is nothing happens. If it's not set\n * the default texture color is used which can be set by calling `setDefaultTextureColor`.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {module:twgl.TextureOptions} [options] A TextureOptions object with whatever parameters you want set.\n * This is often the same options you passed in when you created the texture.\n * @memberOf module:twgl/textures\n */\n\n\nfunction setTextureTo1PixelColor(gl, tex, options) {\n options = options || defaults.textureOptions;\n var target = options.target || gl.TEXTURE_2D;\n gl.bindTexture(target, tex);\n\n if (options.color === false) {\n return;\n } // Assume it's a URL\n // Put 1x1 pixels in texture. That makes it renderable immediately regardless of filtering.\n\n\n var color = make1Pixel(options.color);\n\n if (target === gl.TEXTURE_CUBE_MAP) {\n for (var ii = 0; ii < 6; ++ii) {\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + ii, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, color);\n }\n } else if (target === gl.TEXTURE_3D || target === gl.TEXTURE_2D_ARRAY) {\n gl.texImage3D(target, 0, gl.RGBA, 1, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, color);\n } else {\n gl.texImage2D(target, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, color);\n }\n}\n/**\n * The src image(s) used to create a texture.\n *\n * When you call {@link module:twgl.createTexture} or {@link module:twgl.createTextures}\n * you can pass in urls for images to load into the textures. If it's a single url\n * then this will be a single HTMLImageElement. If it's an array of urls used for a cubemap\n * this will be a corresponding array of images for the cubemap.\n *\n * @typedef {HTMLImageElement|HTMLImageElement[]} TextureSrc\n * @memberOf module:twgl\n */\n\n/**\n * A callback for when an image finished downloading and been uploaded into a texture\n * @callback TextureReadyCallback\n * @param {*} err If truthy there was an error.\n * @param {WebGLTexture} texture the texture.\n * @param {module:twgl.TextureSrc} souce image(s) used to as the src for the texture\n * @memberOf module:twgl\n */\n\n/**\n * A callback for when all images have finished downloading and been uploaded into their respective textures\n * @callback TexturesReadyCallback\n * @param {*} err If truthy there was an error.\n * @param {Object.} textures the created textures by name. Same as returned by {@link module:twgl.createTextures}.\n * @param {Object.} sources the image(s) used for the texture by name.\n * @memberOf module:twgl\n */\n\n/**\n * A callback for when an image finished downloading and been uploaded into a texture\n * @callback CubemapReadyCallback\n * @param {*} err If truthy there was an error.\n * @param {WebGLTexture} tex the texture.\n * @param {HTMLImageElement[]} imgs the images for each face.\n * @memberOf module:twgl\n */\n\n/**\n * A callback for when an image finished downloading and been uploaded into a texture\n * @callback ThreeDReadyCallback\n * @param {*} err If truthy there was an error.\n * @param {WebGLTexture} tex the texture.\n * @param {HTMLImageElement[]} imgs the images for each slice.\n * @memberOf module:twgl\n */\n\n/**\n * Loads a texture from an image from a Url as specified in `options.src`\n * If `options.color !== false` will set the texture to a 1x1 pixel color so that the texture is\n * immediately useable. It will be updated with the contents of the image once the image has finished\n * downloading. Filtering options will be set as approriate for image unless `options.auto === false`.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {module:twgl.TextureOptions} [options] A TextureOptions object with whatever parameters you want set.\n * @param {module:twgl.TextureReadyCallback} [callback] A function to be called when the image has finished loading. err will\n * be non null if there was an error.\n * @return {HTMLImageElement} the image being downloaded.\n * @memberOf module:twgl/textures\n */\n\n\nfunction loadTextureFromUrl(gl, tex, options, callback) {\n callback = callback || noop;\n options = options || defaults.textureOptions;\n setTextureTo1PixelColor(gl, tex, options); // Because it's async we need to copy the options.\n\n options = Object.assign({}, options);\n var img = loadAndUseImage(options.src, options.crossOrigin, function (err, img) {\n if (err) {\n callback(err, tex, img);\n } else {\n setTextureFromElement(gl, tex, img, options);\n callback(null, tex, img);\n }\n });\n return img;\n}\n/**\n * Loads a cubemap from 6 urls or TexImageSources as specified in `options.src`. Will set the cubemap to a 1x1 pixel color\n * so that it is usable immediately unless `option.color === false`.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n * @param {module:twgl.CubemapReadyCallback} [callback] A function to be called when all the images have finished loading. err will\n * be non null if there was an error.\n * @memberOf module:twgl/textures\n */\n\n\nfunction loadCubemapFromUrls(gl, tex, options, callback) {\n callback = callback || noop;\n var urls = options.src;\n\n if (urls.length !== 6) {\n throw \"there must be 6 urls for a cubemap\";\n }\n\n var level = options.level || 0;\n var internalFormat = options.internalFormat || options.format || gl.RGBA;\n var formatType = getFormatAndTypeForInternalFormat(internalFormat);\n var format = options.format || formatType.format;\n var type = options.type || gl.UNSIGNED_BYTE;\n var target = options.target || gl.TEXTURE_2D;\n\n if (target !== gl.TEXTURE_CUBE_MAP) {\n throw \"target must be TEXTURE_CUBE_MAP\";\n }\n\n setTextureTo1PixelColor(gl, tex, options); // Because it's async we need to copy the options.\n\n options = Object.assign({}, options);\n var numToLoad = 6;\n var errors = [];\n var faces = getCubeFaceOrder(gl, options);\n var imgs; // eslint-disable-line\n\n function uploadImg(faceTarget) {\n return function (err, img) {\n --numToLoad;\n\n if (err) {\n errors.push(err);\n } else {\n if (img.width !== img.height) {\n errors.push(\"cubemap face img is not a square: \" + img.src);\n } else {\n savePackState(gl, options);\n gl.bindTexture(target, tex); // So assuming this is the first image we now have one face that's img sized\n // and 5 faces that are 1x1 pixel so size the other faces\n\n if (numToLoad === 5) {\n // use the default order\n getCubeFaceOrder(gl).forEach(function (otherTarget) {\n // Should we re-use the same face or a color?\n gl.texImage2D(otherTarget, level, internalFormat, format, type, img);\n });\n } else {\n gl.texImage2D(faceTarget, level, internalFormat, format, type, img);\n }\n\n restorePackState(gl, options);\n\n if (shouldAutomaticallySetTextureFilteringForSize(options)) {\n gl.generateMipmap(target);\n }\n }\n }\n\n if (numToLoad === 0) {\n callback(errors.length ? errors : undefined, tex, imgs);\n }\n };\n }\n\n imgs = urls.map(function (url, ndx) {\n return loadAndUseImage(url, options.crossOrigin, uploadImg(faces[ndx]));\n });\n}\n/**\n * Loads a 2d array or 3d texture from urls OR TexImageSources as specified in `options.src`.\n * Will set the texture to a 1x1 pixel color\n * so that it is usable immediately unless `option.color === false`.\n *\n * If the width and height is not specified the width and height of the first\n * image loaded will be used. Note that since images are loaded async\n * which image downloads first is unknown.\n *\n * If an image is not the same size as the width and height it will be scaled\n * to that width and height.\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n * @param {module:twgl.ThreeDReadyCallback} [callback] A function to be called when all the images have finished loading. err will\n * be non null if there was an error.\n * @memberOf module:twgl/textures\n */\n\n\nfunction loadSlicesFromUrls(gl, tex, options, callback) {\n callback = callback || noop;\n var urls = options.src;\n var internalFormat = options.internalFormat || options.format || gl.RGBA;\n var formatType = getFormatAndTypeForInternalFormat(internalFormat);\n var format = options.format || formatType.format;\n var type = options.type || gl.UNSIGNED_BYTE;\n var target = options.target || gl.TEXTURE_2D_ARRAY;\n\n if (target !== gl.TEXTURE_3D && target !== gl.TEXTURE_2D_ARRAY) {\n throw \"target must be TEXTURE_3D or TEXTURE_2D_ARRAY\";\n }\n\n setTextureTo1PixelColor(gl, tex, options); // Because it's async we need to copy the options.\n\n options = Object.assign({}, options);\n var numToLoad = urls.length;\n var errors = [];\n var imgs; // eslint-disable-line\n\n var level = options.level || 0;\n var width = options.width;\n var height = options.height;\n var depth = urls.length;\n var firstImage = true;\n\n function uploadImg(slice) {\n return function (err, img) {\n --numToLoad;\n\n if (err) {\n errors.push(err);\n } else {\n savePackState(gl, options);\n gl.bindTexture(target, tex);\n\n if (firstImage) {\n firstImage = false;\n width = options.width || img.width;\n height = options.height || img.height;\n gl.texImage3D(target, level, internalFormat, width, height, depth, 0, format, type, null); // put it in every slice otherwise some slices will be 0,0,0,0\n\n for (var s = 0; s < depth; ++s) {\n gl.texSubImage3D(target, level, 0, 0, s, width, height, 1, format, type, img);\n }\n } else {\n var src = img;\n\n if (img.width !== width || img.height !== height) {\n // Size the image to fix\n src = ctx.canvas;\n ctx.canvas.width = width;\n ctx.canvas.height = height;\n ctx.drawImage(img, 0, 0, width, height);\n }\n\n gl.texSubImage3D(target, level, 0, 0, slice, width, height, 1, format, type, src); // free the canvas memory\n\n if (src === ctx.canvas) {\n ctx.canvas.width = 0;\n ctx.canvas.height = 0;\n }\n }\n\n restorePackState(gl, options);\n\n if (shouldAutomaticallySetTextureFilteringForSize(options)) {\n gl.generateMipmap(target);\n }\n }\n\n if (numToLoad === 0) {\n callback(errors.length ? errors : undefined, tex, imgs);\n }\n };\n }\n\n imgs = urls.map(function (url, ndx) {\n return loadAndUseImage(url, options.crossOrigin, uploadImg(ndx));\n });\n}\n/**\n * Sets a texture from an array or typed array. If the width or height is not provided will attempt to\n * guess the size. See {@link module:twgl.TextureOptions}.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {(number[]|ArrayBufferView)} src An array or typed arry with texture data.\n * @param {module:twgl.TextureOptions} [options] A TextureOptions object with whatever parameters you want set.\n * This is often the same options you passed in when you created the texture.\n * @memberOf module:twgl/textures\n */\n\n\nfunction setTextureFromArray(gl, tex, src, options) {\n options = options || defaults.textureOptions;\n var target = options.target || gl.TEXTURE_2D;\n gl.bindTexture(target, tex);\n var width = options.width;\n var height = options.height;\n var depth = options.depth;\n var level = options.level || 0;\n var internalFormat = options.internalFormat || options.format || gl.RGBA;\n var formatType = getFormatAndTypeForInternalFormat(internalFormat);\n var format = options.format || formatType.format;\n var type = options.type || getTextureTypeForArrayType(gl, src, formatType.type);\n\n if (!isArrayBuffer(src)) {\n var Type = typedArrays.getTypedArrayTypeForGLType(type);\n src = new Type(src);\n } else if (src instanceof Uint8ClampedArray) {\n src = new Uint8Array(src.buffer);\n }\n\n var bytesPerElement = getBytesPerElementForInternalFormat(internalFormat, type);\n var numElements = src.byteLength / bytesPerElement; // TODO: check UNPACK_ALIGNMENT?\n\n if (numElements % 1) {\n throw \"length wrong size for format: \" + utils.glEnumToString(gl, format);\n }\n\n var dimensions;\n\n if (target === gl.TEXTURE_3D) {\n if (!width && !height && !depth) {\n var size = Math.cbrt(numElements);\n\n if (size % 1 !== 0) {\n throw \"can't guess cube size of array of numElements: \" + numElements;\n }\n\n width = size;\n height = size;\n depth = size;\n } else if (width && (!height || !depth)) {\n dimensions = guessDimensions(gl, target, height, depth, numElements / width);\n height = dimensions.width;\n depth = dimensions.height;\n } else if (height && (!width || !depth)) {\n dimensions = guessDimensions(gl, target, width, depth, numElements / height);\n width = dimensions.width;\n depth = dimensions.height;\n } else {\n dimensions = guessDimensions(gl, target, width, height, numElements / depth);\n width = dimensions.width;\n height = dimensions.height;\n }\n } else {\n dimensions = guessDimensions(gl, target, width, height, numElements);\n width = dimensions.width;\n height = dimensions.height;\n }\n\n saveSkipState(gl);\n gl.pixelStorei(gl.UNPACK_ALIGNMENT, options.unpackAlignment || 1);\n savePackState(gl, options);\n\n if (target === gl.TEXTURE_CUBE_MAP) {\n var elementsPerElement = bytesPerElement / src.BYTES_PER_ELEMENT;\n var faceSize = numElements / 6 * elementsPerElement;\n getCubeFacesWithNdx(gl, options).forEach(function (f) {\n var offset = faceSize * f.ndx;\n var data = src.subarray(offset, offset + faceSize);\n gl.texImage2D(f.face, level, internalFormat, width, height, 0, format, type, data);\n });\n } else if (target === gl.TEXTURE_3D) {\n gl.texImage3D(target, level, internalFormat, width, height, depth, 0, format, type, src);\n } else {\n gl.texImage2D(target, level, internalFormat, width, height, 0, format, type, src);\n }\n\n restorePackState(gl, options);\n restoreSkipState(gl);\n return {\n width: width,\n height: height,\n depth: depth,\n type: type\n };\n}\n/**\n * Sets a texture with no contents of a certain size. In other words calls `gl.texImage2D` with `null`.\n * You must set `options.width` and `options.height`.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n * @memberOf module:twgl/textures\n */\n\n\nfunction setEmptyTexture(gl, tex, options) {\n var target = options.target || gl.TEXTURE_2D;\n gl.bindTexture(target, tex);\n var level = options.level || 0;\n var internalFormat = options.internalFormat || options.format || gl.RGBA;\n var formatType = getFormatAndTypeForInternalFormat(internalFormat);\n var format = options.format || formatType.format;\n var type = options.type || formatType.type;\n savePackState(gl, options);\n\n if (target === gl.TEXTURE_CUBE_MAP) {\n for (var ii = 0; ii < 6; ++ii) {\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + ii, level, internalFormat, options.width, options.height, 0, format, type, null);\n }\n } else if (target === gl.TEXTURE_3D) {\n gl.texImage3D(target, level, internalFormat, options.width, options.height, options.depth, 0, format, type, null);\n } else {\n gl.texImage2D(target, level, internalFormat, options.width, options.height, 0, format, type, null);\n }\n\n restorePackState(gl, options);\n}\n/**\n * Creates a texture based on the options passed in.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {module:twgl.TextureOptions} [options] A TextureOptions object with whatever parameters you want set.\n * @param {module:twgl.TextureReadyCallback} [callback] A callback called when an image has been downloaded and uploaded to the texture.\n * @return {WebGLTexture} the created texture.\n * @memberOf module:twgl/textures\n */\n\n\nfunction createTexture(gl, options, callback) {\n callback = callback || noop;\n options = options || defaults.textureOptions;\n var tex = gl.createTexture();\n var target = options.target || gl.TEXTURE_2D;\n var width = options.width || 1;\n var height = options.height || 1;\n var internalFormat = options.internalFormat || gl.RGBA;\n var formatType = getFormatAndTypeForInternalFormat(internalFormat);\n var type = options.type || formatType.type;\n gl.bindTexture(target, tex);\n\n if (target === gl.TEXTURE_CUBE_MAP) {\n // this should have been the default for CUBEMAPS :(\n gl.texParameteri(target, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(target, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n }\n\n var src = options.src;\n\n if (src) {\n if (typeof src === \"function\") {\n src = src(gl, options);\n }\n\n if (typeof src === \"string\") {\n loadTextureFromUrl(gl, tex, options, callback);\n } else if (isArrayBuffer(src) || Array.isArray(src) && (typeof src[0] === 'number' || Array.isArray(src[0]) || isArrayBuffer(src[0]))) {\n var dimensions = setTextureFromArray(gl, tex, src, options);\n width = dimensions.width;\n height = dimensions.height;\n type = dimensions.type;\n } else if (Array.isArray(src) && (typeof src[0] === 'string' || isTexImageSource(src[0]))) {\n if (target === gl.TEXTURE_CUBE_MAP) {\n loadCubemapFromUrls(gl, tex, options, callback);\n } else {\n loadSlicesFromUrls(gl, tex, options, callback);\n }\n } else if (isTexImageSource(src)) {\n setTextureFromElement(gl, tex, src, options);\n width = src.width;\n height = src.height;\n } else {\n throw \"unsupported src type\";\n }\n } else {\n setEmptyTexture(gl, tex, options);\n }\n\n if (shouldAutomaticallySetTextureFilteringForSize(options)) {\n setTextureFilteringForSize(gl, tex, options, width, height, internalFormat, type);\n }\n\n setTextureParameters(gl, tex, options);\n return tex;\n}\n/**\n * Resizes a texture based on the options passed in.\n *\n * Note: This is not a generic resize anything function.\n * It's mostly used by {@link module:twgl.resizeFramebufferInfo}\n * It will use `options.src` if it exists to try to determine a `type`\n * otherwise it will assume `gl.UNSIGNED_BYTE`. No data is provided\n * for the texture. Texture parameters will be set accordingly\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the texture to resize\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n * @param {number} [width] the new width. If not passed in will use `options.width`\n * @param {number} [height] the new height. If not passed in will use `options.height`\n * @memberOf module:twgl/textures\n */\n\n\nfunction resizeTexture(gl, tex, options, width, height) {\n width = width || options.width;\n height = height || options.height;\n var target = options.target || gl.TEXTURE_2D;\n gl.bindTexture(target, tex);\n var level = options.level || 0;\n var internalFormat = options.internalFormat || options.format || gl.RGBA;\n var formatType = getFormatAndTypeForInternalFormat(internalFormat);\n var format = options.format || formatType.format;\n var type;\n var src = options.src;\n\n if (!src) {\n type = options.type || formatType.type;\n } else if (isArrayBuffer(src) || Array.isArray(src) && typeof src[0] === 'number') {\n type = options.type || getTextureTypeForArrayType(gl, src, formatType.type);\n } else {\n type = options.type || formatType.type;\n }\n\n if (target === gl.TEXTURE_CUBE_MAP) {\n for (var ii = 0; ii < 6; ++ii) {\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + ii, level, internalFormat, width, height, 0, format, type, null);\n }\n } else {\n gl.texImage2D(target, level, internalFormat, width, height, 0, format, type, null);\n }\n}\n/**\n * Check if a src is an async request.\n * if src is a string we're going to download an image\n * if src is an array of strings we're going to download cubemap images\n * @param {*} src The src from a TextureOptions\n * @returns {bool} true if src is async.\n */\n\n\nfunction isAsyncSrc(src) {\n return typeof src === 'string' || Array.isArray(src) && typeof src[0] === 'string';\n}\n/**\n * Creates a bunch of textures based on the passed in options.\n *\n * Example:\n *\n * const textures = twgl.createTextures(gl, {\n * // a power of 2 image\n * hftIcon: { src: \"images/hft-icon-16.png\", mag: gl.NEAREST },\n * // a non-power of 2 image\n * clover: { src: \"images/clover.jpg\" },\n * // From a canvas\n * fromCanvas: { src: ctx.canvas },\n * // A cubemap from 6 images\n * yokohama: {\n * target: gl.TEXTURE_CUBE_MAP,\n * src: [\n * 'images/yokohama/posx.jpg',\n * 'images/yokohama/negx.jpg',\n * 'images/yokohama/posy.jpg',\n * 'images/yokohama/negy.jpg',\n * 'images/yokohama/posz.jpg',\n * 'images/yokohama/negz.jpg',\n * ],\n * },\n * // A cubemap from 1 image (can be 1x6, 2x3, 3x2, 6x1)\n * goldengate: {\n * target: gl.TEXTURE_CUBE_MAP,\n * src: 'images/goldengate.jpg',\n * },\n * // A 2x2 pixel texture from a JavaScript array\n * checker: {\n * mag: gl.NEAREST,\n * min: gl.LINEAR,\n * src: [\n * 255,255,255,255,\n * 192,192,192,255,\n * 192,192,192,255,\n * 255,255,255,255,\n * ],\n * },\n * // a 1x2 pixel texture from a typed array.\n * stripe: {\n * mag: gl.NEAREST,\n * min: gl.LINEAR,\n * format: gl.LUMINANCE,\n * src: new Uint8Array([\n * 255,\n * 128,\n * 255,\n * 128,\n * 255,\n * 128,\n * 255,\n * 128,\n * ]),\n * width: 1,\n * },\n * });\n *\n * Now\n *\n * * `textures.hftIcon` will be a 2d texture\n * * `textures.clover` will be a 2d texture\n * * `textures.fromCanvas` will be a 2d texture\n * * `textures.yohohama` will be a cubemap texture\n * * `textures.goldengate` will be a cubemap texture\n * * `textures.checker` will be a 2d texture\n * * `textures.stripe` will be a 2d texture\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {Object.} options A object of TextureOptions one per texture.\n * @param {module:twgl.TexturesReadyCallback} [callback] A callback called when all textures have been downloaded.\n * @return {Object.} the created textures by name\n * @memberOf module:twgl/textures\n */\n\n\nfunction createTextures(gl, textureOptions, callback) {\n callback = callback || noop;\n var numDownloading = 0;\n var errors = [];\n var textures = {};\n var images = {};\n\n function callCallbackIfReady() {\n if (numDownloading === 0) {\n setTimeout(function () {\n callback(errors.length ? errors : undefined, textures, images);\n }, 0);\n }\n }\n\n Object.keys(textureOptions).forEach(function (name) {\n var options = textureOptions[name];\n var onLoadFn;\n\n if (isAsyncSrc(options.src)) {\n onLoadFn = function onLoadFn(err, tex, img) {\n images[name] = img;\n --numDownloading;\n\n if (err) {\n errors.push(err);\n }\n\n callCallbackIfReady();\n };\n\n ++numDownloading;\n }\n\n textures[name] = createTexture(gl, options, onLoadFn);\n }); // queue the callback if there are no images to download.\n // We do this because if your code is structured to wait for\n // images to download but then you comment out all the async\n // images your code would break.\n\n callCallbackIfReady();\n return textures;\n} // Using quotes prevents Uglify from changing the names.\n// No speed diff AFAICT.\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nvar _exportNames = {\n m4: true,\n v3: true,\n primitives: true\n};\nexports.primitives = exports.v3 = exports.m4 = void 0;\n\nvar m4 = _interopRequireWildcard(__webpack_require__(6));\n\nexports.m4 = m4;\n\nvar v3 = _interopRequireWildcard(__webpack_require__(3));\n\nexports.v3 = v3;\n\nvar primitives = _interopRequireWildcard(__webpack_require__(10));\n\nexports.primitives = primitives;\n\nvar _twgl = __webpack_require__(11);\n\nObject.keys(_twgl).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n exports[key] = _twgl[key];\n});\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.create3DFVertices = create3DFVertices;\nexports.createAugmentedTypedArray = createAugmentedTypedArray;\nexports.createCubeVertices = createCubeVertices;\nexports.createPlaneVertices = createPlaneVertices;\nexports.createSphereVertices = createSphereVertices;\nexports.createTruncatedConeVertices = createTruncatedConeVertices;\nexports.createXYQuadVertices = createXYQuadVertices;\nexports.createCresentVertices = createCresentVertices;\nexports.createCylinderVertices = createCylinderVertices;\nexports.createTorusVertices = createTorusVertices;\nexports.createDiscVertices = createDiscVertices;\nexports.deindexVertices = deindexVertices;\nexports.flattenNormals = flattenNormals;\nexports.makeRandomVertexColors = makeRandomVertexColors;\nexports.reorientDirections = reorientDirections;\nexports.reorientNormals = reorientNormals;\nexports.reorientPositions = reorientPositions;\nexports.reorientVertices = reorientVertices;\nexports.concatVertices = concatVertices;\nexports.duplicateVertices = duplicateVertices;\nexports.createDiscBuffers = exports.createDiscBufferInfo = exports.createTorusBuffers = exports.createTorusBufferInfo = exports.createCylinderBuffers = exports.createCylinderBufferInfo = exports.createCresentBuffers = exports.createCresentBufferInfo = exports.createXYQuadBuffers = exports.createXYQuadBufferInfo = exports.createTruncatedConeBuffers = exports.createTruncatedConeBufferInfo = exports.createSphereBuffers = exports.createSphereBufferInfo = exports.createPlaneBuffers = exports.createPlaneBufferInfo = exports.createCubeBuffers = exports.createCubeBufferInfo = exports.create3DFBuffers = exports.create3DFBufferInfo = void 0;\n\nvar attributes = _interopRequireWildcard(__webpack_require__(7));\n\nvar helper = _interopRequireWildcard(__webpack_require__(0));\n\nvar typedArrays = _interopRequireWildcard(__webpack_require__(1));\n\nvar m4 = _interopRequireWildcard(__webpack_require__(6));\n\nvar v3 = _interopRequireWildcard(__webpack_require__(3));\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\n/*\n * Copyright 2015, Gregg Tavares.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following disclaimer\n * in the documentation and/or other materials provided with the\n * distribution.\n * * Neither the name of Gregg Tavares. nor the names of his\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/**\n * Various functions to make simple primitives\n *\n * note: Most primitive functions come in 3 styles\n *\n * * `createSomeShapeBufferInfo`\n *\n * These functions are almost always the functions you want to call. They\n * create vertices then make WebGLBuffers and create {@link module:twgl.AttribInfo}s\n * returing a {@link module:twgl.BufferInfo} you can pass to {@link module:twgl.setBuffersAndAttributes}\n * and {@link module:twgl.drawBufferInfo} etc...\n *\n * * `createSomeShapeBuffers`\n *\n * These create WebGLBuffers and put your data in them but nothing else.\n * It's a shortcut to doing it yourself if you don't want to use\n * the higher level functions.\n *\n * * `createSomeShapeVertices`\n *\n * These just create vertices, no buffers. This allows you to manipulate the vertices\n * or add more data before generating a {@link module:twgl.BufferInfo}. Once you're finished\n * manipulating the vertices call {@link module:twgl.createBufferInfoFromArrays}.\n *\n * example:\n *\n * const arrays = twgl.primitives.createPlaneArrays(1);\n * twgl.primitives.reorientVertices(arrays, m4.rotationX(Math.PI * 0.5));\n * const bufferInfo = twgl.createBufferInfoFromArrays(gl, arrays);\n *\n * @module twgl/primitives\n */\nvar getArray = attributes.getArray_; // eslint-disable-line\n\nvar getNumComponents = attributes.getNumComponents_; // eslint-disable-line\n\n/**\n * Add `push` to a typed array. It just keeps a 'cursor'\n * and allows use to `push` values into the array so we\n * don't have to manually compute offsets\n * @param {TypedArray} typedArray TypedArray to augment\n * @param {number} numComponents number of components.\n */\n\nfunction augmentTypedArray(typedArray, numComponents) {\n var cursor = 0;\n\n typedArray.push = function () {\n for (var ii = 0; ii < arguments.length; ++ii) {\n var value = arguments[ii];\n\n if (value instanceof Array || typedArrays.isArrayBuffer(value)) {\n for (var jj = 0; jj < value.length; ++jj) {\n typedArray[cursor++] = value[jj];\n }\n } else {\n typedArray[cursor++] = value;\n }\n }\n };\n\n typedArray.reset = function (opt_index) {\n cursor = opt_index || 0;\n };\n\n typedArray.numComponents = numComponents;\n Object.defineProperty(typedArray, 'numElements', {\n get: function get() {\n return this.length / this.numComponents | 0;\n }\n });\n return typedArray;\n}\n/**\n * creates a typed array with a `push` function attached\n * so that you can easily *push* values.\n *\n * `push` can take multiple arguments. If an argument is an array each element\n * of the array will be added to the typed array.\n *\n * Example:\n *\n * const array = createAugmentedTypedArray(3, 2); // creates a Float32Array with 6 values\n * array.push(1, 2, 3);\n * array.push([4, 5, 6]);\n * // array now contains [1, 2, 3, 4, 5, 6]\n *\n * Also has `numComponents` and `numElements` properties.\n *\n * @param {number} numComponents number of components\n * @param {number} numElements number of elements. The total size of the array will be `numComponents * numElements`.\n * @param {constructor} opt_type A constructor for the type. Default = `Float32Array`.\n * @return {ArrayBufferView} A typed array.\n * @memberOf module:twgl/primitives\n */\n\n\nfunction createAugmentedTypedArray(numComponents, numElements, opt_type) {\n var Type = opt_type || Float32Array;\n return augmentTypedArray(new Type(numComponents * numElements), numComponents);\n}\n\nfunction allButIndices(name) {\n return name !== \"indices\";\n}\n/**\n * Given indexed vertices creates a new set of vertices unindexed by expanding the indexed vertices.\n * @param {Object.} vertices The indexed vertices to deindex\n * @return {Object.} The deindexed vertices\n * @memberOf module:twgl/primitives\n */\n\n\nfunction deindexVertices(vertices) {\n var indices = vertices.indices;\n var newVertices = {};\n var numElements = indices.length;\n\n function expandToUnindexed(channel) {\n var srcBuffer = vertices[channel];\n var numComponents = srcBuffer.numComponents;\n var dstBuffer = createAugmentedTypedArray(numComponents, numElements, srcBuffer.constructor);\n\n for (var ii = 0; ii < numElements; ++ii) {\n var ndx = indices[ii];\n var offset = ndx * numComponents;\n\n for (var jj = 0; jj < numComponents; ++jj) {\n dstBuffer.push(srcBuffer[offset + jj]);\n }\n }\n\n newVertices[channel] = dstBuffer;\n }\n\n Object.keys(vertices).filter(allButIndices).forEach(expandToUnindexed);\n return newVertices;\n}\n/**\n * flattens the normals of deindexed vertices in place.\n * @param {Object.} vertices The deindexed vertices who's normals to flatten\n * @return {Object.} The flattened vertices (same as was passed in)\n * @memberOf module:twgl/primitives\n */\n\n\nfunction flattenNormals(vertices) {\n if (vertices.indices) {\n throw \"can't flatten normals of indexed vertices. deindex them first\";\n }\n\n var normals = vertices.normal;\n var numNormals = normals.length;\n\n for (var ii = 0; ii < numNormals; ii += 9) {\n // pull out the 3 normals for this triangle\n var nax = normals[ii + 0];\n var nay = normals[ii + 1];\n var naz = normals[ii + 2];\n var nbx = normals[ii + 3];\n var nby = normals[ii + 4];\n var nbz = normals[ii + 5];\n var ncx = normals[ii + 6];\n var ncy = normals[ii + 7];\n var ncz = normals[ii + 8]; // add them\n\n var nx = nax + nbx + ncx;\n var ny = nay + nby + ncy;\n var nz = naz + nbz + ncz; // normalize them\n\n var length = Math.sqrt(nx * nx + ny * ny + nz * nz);\n nx /= length;\n ny /= length;\n nz /= length; // copy them back in\n\n normals[ii + 0] = nx;\n normals[ii + 1] = ny;\n normals[ii + 2] = nz;\n normals[ii + 3] = nx;\n normals[ii + 4] = ny;\n normals[ii + 5] = nz;\n normals[ii + 6] = nx;\n normals[ii + 7] = ny;\n normals[ii + 8] = nz;\n }\n\n return vertices;\n}\n\nfunction applyFuncToV3Array(array, matrix, fn) {\n var len = array.length;\n var tmp = new Float32Array(3);\n\n for (var ii = 0; ii < len; ii += 3) {\n fn(matrix, [array[ii], array[ii + 1], array[ii + 2]], tmp);\n array[ii] = tmp[0];\n array[ii + 1] = tmp[1];\n array[ii + 2] = tmp[2];\n }\n}\n\nfunction transformNormal(mi, v, dst) {\n dst = dst || v3.create();\n var v0 = v[0];\n var v1 = v[1];\n var v2 = v[2];\n dst[0] = v0 * mi[0 * 4 + 0] + v1 * mi[0 * 4 + 1] + v2 * mi[0 * 4 + 2];\n dst[1] = v0 * mi[1 * 4 + 0] + v1 * mi[1 * 4 + 1] + v2 * mi[1 * 4 + 2];\n dst[2] = v0 * mi[2 * 4 + 0] + v1 * mi[2 * 4 + 1] + v2 * mi[2 * 4 + 2];\n return dst;\n}\n/**\n * Reorients directions by the given matrix..\n * @param {number[]|TypedArray} array The array. Assumes value floats per element.\n * @param {Matrix} matrix A matrix to multiply by.\n * @return {number[]|TypedArray} the same array that was passed in\n * @memberOf module:twgl/primitives\n */\n\n\nfunction reorientDirections(array, matrix) {\n applyFuncToV3Array(array, matrix, m4.transformDirection);\n return array;\n}\n/**\n * Reorients normals by the inverse-transpose of the given\n * matrix..\n * @param {number[]|TypedArray} array The array. Assumes value floats per element.\n * @param {Matrix} matrix A matrix to multiply by.\n * @return {number[]|TypedArray} the same array that was passed in\n * @memberOf module:twgl/primitives\n */\n\n\nfunction reorientNormals(array, matrix) {\n applyFuncToV3Array(array, m4.inverse(matrix), transformNormal);\n return array;\n}\n/**\n * Reorients positions by the given matrix. In other words, it\n * multiplies each vertex by the given matrix.\n * @param {number[]|TypedArray} array The array. Assumes value floats per element.\n * @param {Matrix} matrix A matrix to multiply by.\n * @return {number[]|TypedArray} the same array that was passed in\n * @memberOf module:twgl/primitives\n */\n\n\nfunction reorientPositions(array, matrix) {\n applyFuncToV3Array(array, matrix, m4.transformPoint);\n return array;\n}\n/**\n * Reorients arrays by the given matrix. Assumes arrays have\n * names that contains 'pos' could be reoriented as positions,\n * 'binorm' or 'tan' as directions, and 'norm' as normals.\n *\n * @param {Object.} arrays The vertices to reorient\n * @param {Matrix} matrix matrix to reorient by.\n * @return {Object.} same arrays that were passed in.\n * @memberOf module:twgl/primitives\n */\n\n\nfunction reorientVertices(arrays, matrix) {\n Object.keys(arrays).forEach(function (name) {\n var array = arrays[name];\n\n if (name.indexOf(\"pos\") >= 0) {\n reorientPositions(array, matrix);\n } else if (name.indexOf(\"tan\") >= 0 || name.indexOf(\"binorm\") >= 0) {\n reorientDirections(array, matrix);\n } else if (name.indexOf(\"norm\") >= 0) {\n reorientNormals(array, matrix);\n }\n });\n return arrays;\n}\n/**\n * Creates XY quad BufferInfo\n *\n * The default with no parameters will return a 2x2 quad with values from -1 to +1.\n * If you want a unit quad with that goes from 0 to 1 you'd call it with\n *\n * twgl.primitives.createXYQuadBufferInfo(gl, 1, 0.5, 0.5);\n *\n * If you want a unit quad centered above 0,0 you'd call it with\n *\n * twgl.primitives.createXYQuadBufferInfo(gl, 1, 0, 0.5);\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} [size] the size across the quad. Defaults to 2 which means vertices will go from -1 to +1\n * @param {number} [xOffset] the amount to offset the quad in X\n * @param {number} [yOffset] the amount to offset the quad in Y\n * @return {Object.} the created XY Quad BufferInfo\n * @memberOf module:twgl/primitives\n * @function createXYQuadBufferInfo\n */\n\n/**\n * Creates XY quad Buffers\n *\n * The default with no parameters will return a 2x2 quad with values from -1 to +1.\n * If you want a unit quad with that goes from 0 to 1 you'd call it with\n *\n * twgl.primitives.createXYQuadBufferInfo(gl, 1, 0.5, 0.5);\n *\n * If you want a unit quad centered above 0,0 you'd call it with\n *\n * twgl.primitives.createXYQuadBufferInfo(gl, 1, 0, 0.5);\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} [size] the size across the quad. Defaults to 2 which means vertices will go from -1 to +1\n * @param {number} [xOffset] the amount to offset the quad in X\n * @param {number} [yOffset] the amount to offset the quad in Y\n * @return {module:twgl.BufferInfo} the created XY Quad buffers\n * @memberOf module:twgl/primitives\n * @function createXYQuadBuffers\n */\n\n/**\n * Creates XY quad vertices\n *\n * The default with no parameters will return a 2x2 quad with values from -1 to +1.\n * If you want a unit quad with that goes from 0 to 1 you'd call it with\n *\n * twgl.primitives.createXYQuadVertices(1, 0.5, 0.5);\n *\n * If you want a unit quad centered above 0,0 you'd call it with\n *\n * twgl.primitives.createXYQuadVertices(1, 0, 0.5);\n *\n * @param {number} [size] the size across the quad. Defaults to 2 which means vertices will go from -1 to +1\n * @param {number} [xOffset] the amount to offset the quad in X\n * @param {number} [yOffset] the amount to offset the quad in Y\n * @return {Object. the created XY Quad vertices\n * @memberOf module:twgl/primitives\n */\n\n\nfunction createXYQuadVertices(size, xOffset, yOffset) {\n size = size || 2;\n xOffset = xOffset || 0;\n yOffset = yOffset || 0;\n size *= 0.5;\n return {\n position: {\n numComponents: 2,\n data: [xOffset + -1 * size, yOffset + -1 * size, xOffset + 1 * size, yOffset + -1 * size, xOffset + -1 * size, yOffset + 1 * size, xOffset + 1 * size, yOffset + 1 * size]\n },\n normal: [0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1],\n texcoord: [0, 0, 1, 0, 0, 1, 1, 1],\n indices: [0, 1, 2, 2, 1, 3]\n };\n}\n/**\n * Creates XZ plane BufferInfo.\n *\n * The created plane has position, normal, and texcoord data\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} [width] Width of the plane. Default = 1\n * @param {number} [depth] Depth of the plane. Default = 1\n * @param {number} [subdivisionsWidth] Number of steps across the plane. Default = 1\n * @param {number} [subdivisionsDepth] Number of steps down the plane. Default = 1\n * @param {Matrix4} [matrix] A matrix by which to multiply all the vertices.\n * @return {@module:twgl.BufferInfo} The created plane BufferInfo.\n * @memberOf module:twgl/primitives\n * @function createPlaneBufferInfo\n */\n\n/**\n * Creates XZ plane buffers.\n *\n * The created plane has position, normal, and texcoord data\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} [width] Width of the plane. Default = 1\n * @param {number} [depth] Depth of the plane. Default = 1\n * @param {number} [subdivisionsWidth] Number of steps across the plane. Default = 1\n * @param {number} [subdivisionsDepth] Number of steps down the plane. Default = 1\n * @param {Matrix4} [matrix] A matrix by which to multiply all the vertices.\n * @return {Object.} The created plane buffers.\n * @memberOf module:twgl/primitives\n * @function createPlaneBuffers\n */\n\n/**\n * Creates XZ plane vertices.\n *\n * The created plane has position, normal, and texcoord data\n *\n * @param {number} [width] Width of the plane. Default = 1\n * @param {number} [depth] Depth of the plane. Default = 1\n * @param {number} [subdivisionsWidth] Number of steps across the plane. Default = 1\n * @param {number} [subdivisionsDepth] Number of steps down the plane. Default = 1\n * @param {Matrix4} [matrix] A matrix by which to multiply all the vertices.\n * @return {Object.} The created plane vertices.\n * @memberOf module:twgl/primitives\n */\n\n\nfunction createPlaneVertices(width, depth, subdivisionsWidth, subdivisionsDepth, matrix) {\n width = width || 1;\n depth = depth || 1;\n subdivisionsWidth = subdivisionsWidth || 1;\n subdivisionsDepth = subdivisionsDepth || 1;\n matrix = matrix || m4.identity();\n var numVertices = (subdivisionsWidth + 1) * (subdivisionsDepth + 1);\n var positions = createAugmentedTypedArray(3, numVertices);\n var normals = createAugmentedTypedArray(3, numVertices);\n var texcoords = createAugmentedTypedArray(2, numVertices);\n\n for (var z = 0; z <= subdivisionsDepth; z++) {\n for (var x = 0; x <= subdivisionsWidth; x++) {\n var u = x / subdivisionsWidth;\n var v = z / subdivisionsDepth;\n positions.push(width * u - width * 0.5, 0, depth * v - depth * 0.5);\n normals.push(0, 1, 0);\n texcoords.push(u, v);\n }\n }\n\n var numVertsAcross = subdivisionsWidth + 1;\n var indices = createAugmentedTypedArray(3, subdivisionsWidth * subdivisionsDepth * 2, Uint16Array);\n\n for (var _z = 0; _z < subdivisionsDepth; _z++) {\n // eslint-disable-line\n for (var _x = 0; _x < subdivisionsWidth; _x++) {\n // eslint-disable-line\n // Make triangle 1 of quad.\n indices.push((_z + 0) * numVertsAcross + _x, (_z + 1) * numVertsAcross + _x, (_z + 0) * numVertsAcross + _x + 1); // Make triangle 2 of quad.\n\n indices.push((_z + 1) * numVertsAcross + _x, (_z + 1) * numVertsAcross + _x + 1, (_z + 0) * numVertsAcross + _x + 1);\n }\n }\n\n var arrays = reorientVertices({\n position: positions,\n normal: normals,\n texcoord: texcoords,\n indices: indices\n }, matrix);\n return arrays;\n}\n/**\n * Creates sphere BufferInfo.\n *\n * The created sphere has position, normal, and texcoord data\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} radius radius of the sphere.\n * @param {number} subdivisionsAxis number of steps around the sphere.\n * @param {number} subdivisionsHeight number of vertically on the sphere.\n * @param {number} [opt_startLatitudeInRadians] where to start the\n * top of the sphere. Default = 0.\n * @param {number} [opt_endLatitudeInRadians] Where to end the\n * bottom of the sphere. Default = Math.PI.\n * @param {number} [opt_startLongitudeInRadians] where to start\n * wrapping the sphere. Default = 0.\n * @param {number} [opt_endLongitudeInRadians] where to end\n * wrapping the sphere. Default = 2 * Math.PI.\n * @return {module:twgl.BufferInfo} The created sphere BufferInfo.\n * @memberOf module:twgl/primitives\n * @function createSphereBufferInfo\n */\n\n/**\n * Creates sphere buffers.\n *\n * The created sphere has position, normal, and texcoord data\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} radius radius of the sphere.\n * @param {number} subdivisionsAxis number of steps around the sphere.\n * @param {number} subdivisionsHeight number of vertically on the sphere.\n * @param {number} [opt_startLatitudeInRadians] where to start the\n * top of the sphere. Default = 0.\n * @param {number} [opt_endLatitudeInRadians] Where to end the\n * bottom of the sphere. Default = Math.PI.\n * @param {number} [opt_startLongitudeInRadians] where to start\n * wrapping the sphere. Default = 0.\n * @param {number} [opt_endLongitudeInRadians] where to end\n * wrapping the sphere. Default = 2 * Math.PI.\n * @return {Object.} The created sphere buffers.\n * @memberOf module:twgl/primitives\n * @function createSphereBuffers\n */\n\n/**\n * Creates sphere vertices.\n *\n * The created sphere has position, normal, and texcoord data\n *\n * @param {number} radius radius of the sphere.\n * @param {number} subdivisionsAxis number of steps around the sphere.\n * @param {number} subdivisionsHeight number of vertically on the sphere.\n * @param {number} [opt_startLatitudeInRadians] where to start the\n * top of the sphere. Default = 0.\n * @param {number} [opt_endLatitudeInRadians] Where to end the\n * bottom of the sphere. Default = Math.PI.\n * @param {number} [opt_startLongitudeInRadians] where to start\n * wrapping the sphere. Default = 0.\n * @param {number} [opt_endLongitudeInRadians] where to end\n * wrapping the sphere. Default = 2 * Math.PI.\n * @return {Object.} The created sphere vertices.\n * @memberOf module:twgl/primitives\n */\n\n\nfunction createSphereVertices(radius, subdivisionsAxis, subdivisionsHeight, opt_startLatitudeInRadians, opt_endLatitudeInRadians, opt_startLongitudeInRadians, opt_endLongitudeInRadians) {\n if (subdivisionsAxis <= 0 || subdivisionsHeight <= 0) {\n throw Error('subdivisionAxis and subdivisionHeight must be > 0');\n }\n\n opt_startLatitudeInRadians = opt_startLatitudeInRadians || 0;\n opt_endLatitudeInRadians = opt_endLatitudeInRadians || Math.PI;\n opt_startLongitudeInRadians = opt_startLongitudeInRadians || 0;\n opt_endLongitudeInRadians = opt_endLongitudeInRadians || Math.PI * 2;\n var latRange = opt_endLatitudeInRadians - opt_startLatitudeInRadians;\n var longRange = opt_endLongitudeInRadians - opt_startLongitudeInRadians; // We are going to generate our sphere by iterating through its\n // spherical coordinates and generating 2 triangles for each quad on a\n // ring of the sphere.\n\n var numVertices = (subdivisionsAxis + 1) * (subdivisionsHeight + 1);\n var positions = createAugmentedTypedArray(3, numVertices);\n var normals = createAugmentedTypedArray(3, numVertices);\n var texcoords = createAugmentedTypedArray(2, numVertices); // Generate the individual vertices in our vertex buffer.\n\n for (var y = 0; y <= subdivisionsHeight; y++) {\n for (var x = 0; x <= subdivisionsAxis; x++) {\n // Generate a vertex based on its spherical coordinates\n var u = x / subdivisionsAxis;\n var v = y / subdivisionsHeight;\n var theta = longRange * u;\n var phi = latRange * v;\n var sinTheta = Math.sin(theta);\n var cosTheta = Math.cos(theta);\n var sinPhi = Math.sin(phi);\n var cosPhi = Math.cos(phi);\n var ux = cosTheta * sinPhi;\n var uy = cosPhi;\n var uz = sinTheta * sinPhi;\n positions.push(radius * ux, radius * uy, radius * uz);\n normals.push(ux, uy, uz);\n texcoords.push(1 - u, v);\n }\n }\n\n var numVertsAround = subdivisionsAxis + 1;\n var indices = createAugmentedTypedArray(3, subdivisionsAxis * subdivisionsHeight * 2, Uint16Array);\n\n for (var _x2 = 0; _x2 < subdivisionsAxis; _x2++) {\n // eslint-disable-line\n for (var _y = 0; _y < subdivisionsHeight; _y++) {\n // eslint-disable-line\n // Make triangle 1 of quad.\n indices.push((_y + 0) * numVertsAround + _x2, (_y + 0) * numVertsAround + _x2 + 1, (_y + 1) * numVertsAround + _x2); // Make triangle 2 of quad.\n\n indices.push((_y + 1) * numVertsAround + _x2, (_y + 0) * numVertsAround + _x2 + 1, (_y + 1) * numVertsAround + _x2 + 1);\n }\n }\n\n return {\n position: positions,\n normal: normals,\n texcoord: texcoords,\n indices: indices\n };\n}\n/**\n * Array of the indices of corners of each face of a cube.\n * @type {Array.}\n */\n\n\nvar CUBE_FACE_INDICES = [[3, 7, 5, 1], // right\n[6, 2, 0, 4], // left\n[6, 7, 3, 2], // ??\n[0, 1, 5, 4], // ??\n[7, 6, 4, 5], // front\n[2, 3, 1, 0]];\n/**\n * Creates a BufferInfo for a cube.\n *\n * The cube is created around the origin. (-size / 2, size / 2).\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} [size] width, height and depth of the cube.\n * @return {module:twgl.BufferInfo} The created BufferInfo.\n * @memberOf module:twgl/primitives\n * @function createCubeBufferInfo\n */\n\n/**\n * Creates the buffers and indices for a cube.\n *\n * The cube is created around the origin. (-size / 2, size / 2).\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} [size] width, height and depth of the cube.\n * @return {Object.} The created buffers.\n * @memberOf module:twgl/primitives\n * @function createCubeBuffers\n */\n\n/**\n * Creates the vertices and indices for a cube.\n *\n * The cube is created around the origin. (-size / 2, size / 2).\n *\n * @param {number} [size] width, height and depth of the cube.\n * @return {Object.} The created vertices.\n * @memberOf module:twgl/primitives\n */\n\nfunction createCubeVertices(size) {\n size = size || 1;\n var k = size / 2;\n var cornerVertices = [[-k, -k, -k], [+k, -k, -k], [-k, +k, -k], [+k, +k, -k], [-k, -k, +k], [+k, -k, +k], [-k, +k, +k], [+k, +k, +k]];\n var faceNormals = [[+1, +0, +0], [-1, +0, +0], [+0, +1, +0], [+0, -1, +0], [+0, +0, +1], [+0, +0, -1]];\n var uvCoords = [[1, 0], [0, 0], [0, 1], [1, 1]];\n var numVertices = 6 * 4;\n var positions = createAugmentedTypedArray(3, numVertices);\n var normals = createAugmentedTypedArray(3, numVertices);\n var texcoords = createAugmentedTypedArray(2, numVertices);\n var indices = createAugmentedTypedArray(3, 6 * 2, Uint16Array);\n\n for (var f = 0; f < 6; ++f) {\n var faceIndices = CUBE_FACE_INDICES[f];\n\n for (var v = 0; v < 4; ++v) {\n var position = cornerVertices[faceIndices[v]];\n var normal = faceNormals[f];\n var uv = uvCoords[v]; // Each face needs all four vertices because the normals and texture\n // coordinates are not all the same.\n\n positions.push(position);\n normals.push(normal);\n texcoords.push(uv);\n } // Two triangles make a square face.\n\n\n var offset = 4 * f;\n indices.push(offset + 0, offset + 1, offset + 2);\n indices.push(offset + 0, offset + 2, offset + 3);\n }\n\n return {\n position: positions,\n normal: normals,\n texcoord: texcoords,\n indices: indices\n };\n}\n/**\n * Creates a BufferInfo for a truncated cone, which is like a cylinder\n * except that it has different top and bottom radii. A truncated cone\n * can also be used to create cylinders and regular cones. The\n * truncated cone will be created centered about the origin, with the\n * y axis as its vertical axis.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} bottomRadius Bottom radius of truncated cone.\n * @param {number} topRadius Top radius of truncated cone.\n * @param {number} height Height of truncated cone.\n * @param {number} radialSubdivisions The number of subdivisions around the\n * truncated cone.\n * @param {number} verticalSubdivisions The number of subdivisions down the\n * truncated cone.\n * @param {boolean} [opt_topCap] Create top cap. Default = true.\n * @param {boolean} [opt_bottomCap] Create bottom cap. Default = true.\n * @return {module:twgl.BufferInfo} The created cone BufferInfo.\n * @memberOf module:twgl/primitives\n * @function createTruncatedConeBufferInfo\n */\n\n/**\n * Creates buffers for a truncated cone, which is like a cylinder\n * except that it has different top and bottom radii. A truncated cone\n * can also be used to create cylinders and regular cones. The\n * truncated cone will be created centered about the origin, with the\n * y axis as its vertical axis.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} bottomRadius Bottom radius of truncated cone.\n * @param {number} topRadius Top radius of truncated cone.\n * @param {number} height Height of truncated cone.\n * @param {number} radialSubdivisions The number of subdivisions around the\n * truncated cone.\n * @param {number} verticalSubdivisions The number of subdivisions down the\n * truncated cone.\n * @param {boolean} [opt_topCap] Create top cap. Default = true.\n * @param {boolean} [opt_bottomCap] Create bottom cap. Default = true.\n * @return {Object.} The created cone buffers.\n * @memberOf module:twgl/primitives\n * @function createTruncatedConeBuffers\n */\n\n/**\n * Creates vertices for a truncated cone, which is like a cylinder\n * except that it has different top and bottom radii. A truncated cone\n * can also be used to create cylinders and regular cones. The\n * truncated cone will be created centered about the origin, with the\n * y axis as its vertical axis. .\n *\n * @param {number} bottomRadius Bottom radius of truncated cone.\n * @param {number} topRadius Top radius of truncated cone.\n * @param {number} height Height of truncated cone.\n * @param {number} radialSubdivisions The number of subdivisions around the\n * truncated cone.\n * @param {number} verticalSubdivisions The number of subdivisions down the\n * truncated cone.\n * @param {boolean} [opt_topCap] Create top cap. Default = true.\n * @param {boolean} [opt_bottomCap] Create bottom cap. Default = true.\n * @return {Object.} The created cone vertices.\n * @memberOf module:twgl/primitives\n */\n\n\nfunction createTruncatedConeVertices(bottomRadius, topRadius, height, radialSubdivisions, verticalSubdivisions, opt_topCap, opt_bottomCap) {\n if (radialSubdivisions < 3) {\n throw Error('radialSubdivisions must be 3 or greater');\n }\n\n if (verticalSubdivisions < 1) {\n throw Error('verticalSubdivisions must be 1 or greater');\n }\n\n var topCap = opt_topCap === undefined ? true : opt_topCap;\n var bottomCap = opt_bottomCap === undefined ? true : opt_bottomCap;\n var extra = (topCap ? 2 : 0) + (bottomCap ? 2 : 0);\n var numVertices = (radialSubdivisions + 1) * (verticalSubdivisions + 1 + extra);\n var positions = createAugmentedTypedArray(3, numVertices);\n var normals = createAugmentedTypedArray(3, numVertices);\n var texcoords = createAugmentedTypedArray(2, numVertices);\n var indices = createAugmentedTypedArray(3, radialSubdivisions * (verticalSubdivisions + extra) * 2, Uint16Array);\n var vertsAroundEdge = radialSubdivisions + 1; // The slant of the cone is constant across its surface\n\n var slant = Math.atan2(bottomRadius - topRadius, height);\n var cosSlant = Math.cos(slant);\n var sinSlant = Math.sin(slant);\n var start = topCap ? -2 : 0;\n var end = verticalSubdivisions + (bottomCap ? 2 : 0);\n\n for (var yy = start; yy <= end; ++yy) {\n var v = yy / verticalSubdivisions;\n var y = height * v;\n var ringRadius = void 0;\n\n if (yy < 0) {\n y = 0;\n v = 1;\n ringRadius = bottomRadius;\n } else if (yy > verticalSubdivisions) {\n y = height;\n v = 1;\n ringRadius = topRadius;\n } else {\n ringRadius = bottomRadius + (topRadius - bottomRadius) * (yy / verticalSubdivisions);\n }\n\n if (yy === -2 || yy === verticalSubdivisions + 2) {\n ringRadius = 0;\n v = 0;\n }\n\n y -= height / 2;\n\n for (var ii = 0; ii < vertsAroundEdge; ++ii) {\n var sin = Math.sin(ii * Math.PI * 2 / radialSubdivisions);\n var cos = Math.cos(ii * Math.PI * 2 / radialSubdivisions);\n positions.push(sin * ringRadius, y, cos * ringRadius);\n normals.push(yy < 0 || yy > verticalSubdivisions ? 0 : sin * cosSlant, yy < 0 ? -1 : yy > verticalSubdivisions ? 1 : sinSlant, yy < 0 || yy > verticalSubdivisions ? 0 : cos * cosSlant);\n texcoords.push(ii / radialSubdivisions, 1 - v);\n }\n }\n\n for (var _yy = 0; _yy < verticalSubdivisions + extra; ++_yy) {\n // eslint-disable-line\n for (var _ii = 0; _ii < radialSubdivisions; ++_ii) {\n // eslint-disable-line\n indices.push(vertsAroundEdge * (_yy + 0) + 0 + _ii, vertsAroundEdge * (_yy + 0) + 1 + _ii, vertsAroundEdge * (_yy + 1) + 1 + _ii);\n indices.push(vertsAroundEdge * (_yy + 0) + 0 + _ii, vertsAroundEdge * (_yy + 1) + 1 + _ii, vertsAroundEdge * (_yy + 1) + 0 + _ii);\n }\n }\n\n return {\n position: positions,\n normal: normals,\n texcoord: texcoords,\n indices: indices\n };\n}\n/**\n * Expands RLE data\n * @param {number[]} rleData data in format of run-length, x, y, z, run-length, x, y, z\n * @param {number[]} [padding] value to add each entry with.\n * @return {number[]} the expanded rleData\n */\n\n\nfunction expandRLEData(rleData, padding) {\n padding = padding || [];\n var data = [];\n\n for (var ii = 0; ii < rleData.length; ii += 4) {\n var runLength = rleData[ii];\n var element = rleData.slice(ii + 1, ii + 4);\n element.push.apply(element, padding);\n\n for (var jj = 0; jj < runLength; ++jj) {\n data.push.apply(data, element);\n }\n }\n\n return data;\n}\n/**\n * Creates 3D 'F' BufferInfo.\n * An 'F' is useful because you can easily tell which way it is oriented.\n * The created 'F' has position, normal, texcoord, and color buffers.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @return {module:twgl.BufferInfo} The created BufferInfo.\n * @memberOf module:twgl/primitives\n * @function create3DFBufferInfo\n */\n\n/**\n * Creates 3D 'F' buffers.\n * An 'F' is useful because you can easily tell which way it is oriented.\n * The created 'F' has position, normal, texcoord, and color buffers.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @return {Object.} The created buffers.\n * @memberOf module:twgl/primitives\n * @function create3DFBuffers\n */\n\n/**\n * Creates 3D 'F' vertices.\n * An 'F' is useful because you can easily tell which way it is oriented.\n * The created 'F' has position, normal, texcoord, and color arrays.\n *\n * @return {Object.} The created vertices.\n * @memberOf module:twgl/primitives\n */\n\n\nfunction create3DFVertices() {\n var positions = [// left column front\n 0, 0, 0, 0, 150, 0, 30, 0, 0, 0, 150, 0, 30, 150, 0, 30, 0, 0, // top rung front\n 30, 0, 0, 30, 30, 0, 100, 0, 0, 30, 30, 0, 100, 30, 0, 100, 0, 0, // middle rung front\n 30, 60, 0, 30, 90, 0, 67, 60, 0, 30, 90, 0, 67, 90, 0, 67, 60, 0, // left column back\n 0, 0, 30, 30, 0, 30, 0, 150, 30, 0, 150, 30, 30, 0, 30, 30, 150, 30, // top rung back\n 30, 0, 30, 100, 0, 30, 30, 30, 30, 30, 30, 30, 100, 0, 30, 100, 30, 30, // middle rung back\n 30, 60, 30, 67, 60, 30, 30, 90, 30, 30, 90, 30, 67, 60, 30, 67, 90, 30, // top\n 0, 0, 0, 100, 0, 0, 100, 0, 30, 0, 0, 0, 100, 0, 30, 0, 0, 30, // top rung front\n 100, 0, 0, 100, 30, 0, 100, 30, 30, 100, 0, 0, 100, 30, 30, 100, 0, 30, // under top rung\n 30, 30, 0, 30, 30, 30, 100, 30, 30, 30, 30, 0, 100, 30, 30, 100, 30, 0, // between top rung and middle\n 30, 30, 0, 30, 60, 30, 30, 30, 30, 30, 30, 0, 30, 60, 0, 30, 60, 30, // top of middle rung\n 30, 60, 0, 67, 60, 30, 30, 60, 30, 30, 60, 0, 67, 60, 0, 67, 60, 30, // front of middle rung\n 67, 60, 0, 67, 90, 30, 67, 60, 30, 67, 60, 0, 67, 90, 0, 67, 90, 30, // bottom of middle rung.\n 30, 90, 0, 30, 90, 30, 67, 90, 30, 30, 90, 0, 67, 90, 30, 67, 90, 0, // front of bottom\n 30, 90, 0, 30, 150, 30, 30, 90, 30, 30, 90, 0, 30, 150, 0, 30, 150, 30, // bottom\n 0, 150, 0, 0, 150, 30, 30, 150, 30, 0, 150, 0, 30, 150, 30, 30, 150, 0, // left side\n 0, 0, 0, 0, 0, 30, 0, 150, 30, 0, 0, 0, 0, 150, 30, 0, 150, 0];\n var texcoords = [// left column front\n 0.22, 0.19, 0.22, 0.79, 0.34, 0.19, 0.22, 0.79, 0.34, 0.79, 0.34, 0.19, // top rung front\n 0.34, 0.19, 0.34, 0.31, 0.62, 0.19, 0.34, 0.31, 0.62, 0.31, 0.62, 0.19, // middle rung front\n 0.34, 0.43, 0.34, 0.55, 0.49, 0.43, 0.34, 0.55, 0.49, 0.55, 0.49, 0.43, // left column back\n 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, // top rung back\n 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, // middle rung back\n 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, // top\n 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, // top rung front\n 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, // under top rung\n 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, // between top rung and middle\n 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, // top of middle rung\n 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, // front of middle rung\n 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, // bottom of middle rung.\n 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, // front of bottom\n 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, // bottom\n 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, // left side\n 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0];\n var normals = expandRLEData([// left column front\n // top rung front\n // middle rung front\n 18, 0, 0, 1, // left column back\n // top rung back\n // middle rung back\n 18, 0, 0, -1, // top\n 6, 0, 1, 0, // top rung front\n 6, 1, 0, 0, // under top rung\n 6, 0, -1, 0, // between top rung and middle\n 6, 1, 0, 0, // top of middle rung\n 6, 0, 1, 0, // front of middle rung\n 6, 1, 0, 0, // bottom of middle rung.\n 6, 0, -1, 0, // front of bottom\n 6, 1, 0, 0, // bottom\n 6, 0, -1, 0, // left side\n 6, -1, 0, 0]);\n var colors = expandRLEData([// left column front\n // top rung front\n // middle rung front\n 18, 200, 70, 120, // left column back\n // top rung back\n // middle rung back\n 18, 80, 70, 200, // top\n 6, 70, 200, 210, // top rung front\n 6, 200, 200, 70, // under top rung\n 6, 210, 100, 70, // between top rung and middle\n 6, 210, 160, 70, // top of middle rung\n 6, 70, 180, 210, // front of middle rung\n 6, 100, 70, 210, // bottom of middle rung.\n 6, 76, 210, 100, // front of bottom\n 6, 140, 210, 80, // bottom\n 6, 90, 130, 110, // left side\n 6, 160, 160, 220], [255]);\n var numVerts = positions.length / 3;\n var arrays = {\n position: createAugmentedTypedArray(3, numVerts),\n texcoord: createAugmentedTypedArray(2, numVerts),\n normal: createAugmentedTypedArray(3, numVerts),\n color: createAugmentedTypedArray(4, numVerts, Uint8Array),\n indices: createAugmentedTypedArray(3, numVerts / 3, Uint16Array)\n };\n arrays.position.push(positions);\n arrays.texcoord.push(texcoords);\n arrays.normal.push(normals);\n arrays.color.push(colors);\n\n for (var ii = 0; ii < numVerts; ++ii) {\n arrays.indices.push(ii);\n }\n\n return arrays;\n}\n/**\n * Creates cresent BufferInfo.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} verticalRadius The vertical radius of the cresent.\n * @param {number} outerRadius The outer radius of the cresent.\n * @param {number} innerRadius The inner radius of the cresent.\n * @param {number} thickness The thickness of the cresent.\n * @param {number} subdivisionsDown number of steps around the cresent.\n * @param {number} subdivisionsThick number of vertically on the cresent.\n * @param {number} [startOffset] Where to start arc. Default 0.\n * @param {number} [endOffset] Where to end arg. Default 1.\n * @return {module:twgl.BufferInfo} The created BufferInfo.\n * @memberOf module:twgl/primitives\n * @function createCresentBufferInfo\n */\n\n/**\n * Creates cresent buffers.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} verticalRadius The vertical radius of the cresent.\n * @param {number} outerRadius The outer radius of the cresent.\n * @param {number} innerRadius The inner radius of the cresent.\n * @param {number} thickness The thickness of the cresent.\n * @param {number} subdivisionsDown number of steps around the cresent.\n * @param {number} subdivisionsThick number of vertically on the cresent.\n * @param {number} [startOffset] Where to start arc. Default 0.\n * @param {number} [endOffset] Where to end arg. Default 1.\n * @return {Object.} The created buffers.\n * @memberOf module:twgl/primitives\n * @function createCresentBuffers\n */\n\n/**\n * Creates cresent vertices.\n *\n * @param {number} verticalRadius The vertical radius of the cresent.\n * @param {number} outerRadius The outer radius of the cresent.\n * @param {number} innerRadius The inner radius of the cresent.\n * @param {number} thickness The thickness of the cresent.\n * @param {number} subdivisionsDown number of steps around the cresent.\n * @param {number} subdivisionsThick number of vertically on the cresent.\n * @param {number} [startOffset] Where to start arc. Default 0.\n * @param {number} [endOffset] Where to end arg. Default 1.\n * @return {Object.} The created vertices.\n * @memberOf module:twgl/primitives\n */\n\n\nfunction createCresentVertices(verticalRadius, outerRadius, innerRadius, thickness, subdivisionsDown, startOffset, endOffset) {\n if (subdivisionsDown <= 0) {\n throw Error('subdivisionDown must be > 0');\n }\n\n startOffset = startOffset || 0;\n endOffset = endOffset || 1;\n var subdivisionsThick = 2;\n var offsetRange = endOffset - startOffset;\n var numVertices = (subdivisionsDown + 1) * 2 * (2 + subdivisionsThick);\n var positions = createAugmentedTypedArray(3, numVertices);\n var normals = createAugmentedTypedArray(3, numVertices);\n var texcoords = createAugmentedTypedArray(2, numVertices);\n\n function lerp(a, b, s) {\n return a + (b - a) * s;\n }\n\n function createArc(arcRadius, x, normalMult, normalAdd, uMult, uAdd) {\n for (var z = 0; z <= subdivisionsDown; z++) {\n var uBack = x / (subdivisionsThick - 1);\n var v = z / subdivisionsDown;\n var xBack = (uBack - 0.5) * 2;\n var angle = (startOffset + v * offsetRange) * Math.PI;\n var s = Math.sin(angle);\n var c = Math.cos(angle);\n var radius = lerp(verticalRadius, arcRadius, s);\n var px = xBack * thickness;\n var py = c * verticalRadius;\n var pz = s * radius;\n positions.push(px, py, pz);\n var n = v3.add(v3.multiply([0, s, c], normalMult), normalAdd);\n normals.push(n);\n texcoords.push(uBack * uMult + uAdd, v);\n }\n } // Generate the individual vertices in our vertex buffer.\n\n\n for (var x = 0; x < subdivisionsThick; x++) {\n var uBack = (x / (subdivisionsThick - 1) - 0.5) * 2;\n createArc(outerRadius, x, [1, 1, 1], [0, 0, 0], 1, 0);\n createArc(outerRadius, x, [0, 0, 0], [uBack, 0, 0], 0, 0);\n createArc(innerRadius, x, [1, 1, 1], [0, 0, 0], 1, 0);\n createArc(innerRadius, x, [0, 0, 0], [uBack, 0, 0], 0, 1);\n } // Do outer surface.\n\n\n var indices = createAugmentedTypedArray(3, subdivisionsDown * 2 * (2 + subdivisionsThick), Uint16Array);\n\n function createSurface(leftArcOffset, rightArcOffset) {\n for (var z = 0; z < subdivisionsDown; ++z) {\n // Make triangle 1 of quad.\n indices.push(leftArcOffset + z + 0, leftArcOffset + z + 1, rightArcOffset + z + 0); // Make triangle 2 of quad.\n\n indices.push(leftArcOffset + z + 1, rightArcOffset + z + 1, rightArcOffset + z + 0);\n }\n }\n\n var numVerticesDown = subdivisionsDown + 1; // front\n\n createSurface(numVerticesDown * 0, numVerticesDown * 4); // right\n\n createSurface(numVerticesDown * 5, numVerticesDown * 7); // back\n\n createSurface(numVerticesDown * 6, numVerticesDown * 2); // left\n\n createSurface(numVerticesDown * 3, numVerticesDown * 1);\n return {\n position: positions,\n normal: normals,\n texcoord: texcoords,\n indices: indices\n };\n}\n/**\n * Creates cylinder BufferInfo. The cylinder will be created around the origin\n * along the y-axis.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} radius Radius of cylinder.\n * @param {number} height Height of cylinder.\n * @param {number} radialSubdivisions The number of subdivisions around the cylinder.\n * @param {number} verticalSubdivisions The number of subdivisions down the cylinder.\n * @param {boolean} [topCap] Create top cap. Default = true.\n * @param {boolean} [bottomCap] Create bottom cap. Default = true.\n * @return {module:twgl.BufferInfo} The created BufferInfo.\n * @memberOf module:twgl/primitives\n * @function createCylinderBufferInfo\n */\n\n/**\n * Creates cylinder buffers. The cylinder will be created around the origin\n * along the y-axis.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} radius Radius of cylinder.\n * @param {number} height Height of cylinder.\n * @param {number} radialSubdivisions The number of subdivisions around the cylinder.\n * @param {number} verticalSubdivisions The number of subdivisions down the cylinder.\n * @param {boolean} [topCap] Create top cap. Default = true.\n * @param {boolean} [bottomCap] Create bottom cap. Default = true.\n * @return {Object.} The created buffers.\n * @memberOf module:twgl/primitives\n * @function createCylinderBuffers\n */\n\n/**\n * Creates cylinder vertices. The cylinder will be created around the origin\n * along the y-axis.\n *\n * @param {number} radius Radius of cylinder.\n * @param {number} height Height of cylinder.\n * @param {number} radialSubdivisions The number of subdivisions around the cylinder.\n * @param {number} verticalSubdivisions The number of subdivisions down the cylinder.\n * @param {boolean} [topCap] Create top cap. Default = true.\n * @param {boolean} [bottomCap] Create bottom cap. Default = true.\n * @return {Object.} The created vertices.\n * @memberOf module:twgl/primitives\n */\n\n\nfunction createCylinderVertices(radius, height, radialSubdivisions, verticalSubdivisions, topCap, bottomCap) {\n return createTruncatedConeVertices(radius, radius, height, radialSubdivisions, verticalSubdivisions, topCap, bottomCap);\n}\n/**\n * Creates BufferInfo for a torus\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} radius radius of center of torus circle.\n * @param {number} thickness radius of torus ring.\n * @param {number} radialSubdivisions The number of subdivisions around the torus.\n * @param {number} bodySubdivisions The number of subdivisions around the body torus.\n * @param {boolean} [startAngle] start angle in radians. Default = 0.\n * @param {boolean} [endAngle] end angle in radians. Default = Math.PI * 2.\n * @return {module:twgl.BufferInfo} The created BufferInfo.\n * @memberOf module:twgl/primitives\n * @function createTorusBufferInfo\n */\n\n/**\n * Creates buffers for a torus\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} radius radius of center of torus circle.\n * @param {number} thickness radius of torus ring.\n * @param {number} radialSubdivisions The number of subdivisions around the torus.\n * @param {number} bodySubdivisions The number of subdivisions around the body torus.\n * @param {boolean} [startAngle] start angle in radians. Default = 0.\n * @param {boolean} [endAngle] end angle in radians. Default = Math.PI * 2.\n * @return {Object.} The created buffers.\n * @memberOf module:twgl/primitives\n * @function createTorusBuffers\n */\n\n/**\n * Creates vertices for a torus\n *\n * @param {number} radius radius of center of torus circle.\n * @param {number} thickness radius of torus ring.\n * @param {number} radialSubdivisions The number of subdivisions around the torus.\n * @param {number} bodySubdivisions The number of subdivisions around the body torus.\n * @param {boolean} [startAngle] start angle in radians. Default = 0.\n * @param {boolean} [endAngle] end angle in radians. Default = Math.PI * 2.\n * @return {Object.} The created vertices.\n * @memberOf module:twgl/primitives\n */\n\n\nfunction createTorusVertices(radius, thickness, radialSubdivisions, bodySubdivisions, startAngle, endAngle) {\n if (radialSubdivisions < 3) {\n throw Error('radialSubdivisions must be 3 or greater');\n }\n\n if (bodySubdivisions < 3) {\n throw Error('verticalSubdivisions must be 3 or greater');\n }\n\n startAngle = startAngle || 0;\n endAngle = endAngle || Math.PI * 2;\n var range = endAngle - startAngle;\n var radialParts = radialSubdivisions + 1;\n var bodyParts = bodySubdivisions + 1;\n var numVertices = radialParts * bodyParts;\n var positions = createAugmentedTypedArray(3, numVertices);\n var normals = createAugmentedTypedArray(3, numVertices);\n var texcoords = createAugmentedTypedArray(2, numVertices);\n var indices = createAugmentedTypedArray(3, radialSubdivisions * bodySubdivisions * 2, Uint16Array);\n\n for (var slice = 0; slice < bodyParts; ++slice) {\n var v = slice / bodySubdivisions;\n var sliceAngle = v * Math.PI * 2;\n var sliceSin = Math.sin(sliceAngle);\n var ringRadius = radius + sliceSin * thickness;\n var ny = Math.cos(sliceAngle);\n var y = ny * thickness;\n\n for (var ring = 0; ring < radialParts; ++ring) {\n var u = ring / radialSubdivisions;\n var ringAngle = startAngle + u * range;\n var xSin = Math.sin(ringAngle);\n var zCos = Math.cos(ringAngle);\n var x = xSin * ringRadius;\n var z = zCos * ringRadius;\n var nx = xSin * sliceSin;\n var nz = zCos * sliceSin;\n positions.push(x, y, z);\n normals.push(nx, ny, nz);\n texcoords.push(u, 1 - v);\n }\n }\n\n for (var _slice = 0; _slice < bodySubdivisions; ++_slice) {\n // eslint-disable-line\n for (var _ring = 0; _ring < radialSubdivisions; ++_ring) {\n // eslint-disable-line\n var nextRingIndex = 1 + _ring;\n var nextSliceIndex = 1 + _slice;\n indices.push(radialParts * _slice + _ring, radialParts * nextSliceIndex + _ring, radialParts * _slice + nextRingIndex);\n indices.push(radialParts * nextSliceIndex + _ring, radialParts * nextSliceIndex + nextRingIndex, radialParts * _slice + nextRingIndex);\n }\n }\n\n return {\n position: positions,\n normal: normals,\n texcoord: texcoords,\n indices: indices\n };\n}\n/**\n * Creates a disc BufferInfo. The disc will be in the xz plane, centered at\n * the origin. When creating, at least 3 divisions, or pie\n * pieces, need to be specified, otherwise the triangles making\n * up the disc will be degenerate. You can also specify the\n * number of radial pieces `stacks`. A value of 1 for\n * stacks will give you a simple disc of pie pieces. If you\n * want to create an annulus you can set `innerRadius` to a\n * value > 0. Finally, `stackPower` allows you to have the widths\n * increase or decrease as you move away from the center. This\n * is particularly useful when using the disc as a ground plane\n * with a fixed camera such that you don't need the resolution\n * of small triangles near the perimeter. For example, a value\n * of 2 will produce stacks whose ouside radius increases with\n * the square of the stack index. A value of 1 will give uniform\n * stacks.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} radius Radius of the ground plane.\n * @param {number} divisions Number of triangles in the ground plane (at least 3).\n * @param {number} [stacks] Number of radial divisions (default=1).\n * @param {number} [innerRadius] Default 0.\n * @param {number} [stackPower] Power to raise stack size to for decreasing width.\n * @return {module:twgl.BufferInfo} The created BufferInfo.\n * @memberOf module:twgl/primitives\n * @function createDiscBufferInfo\n */\n\n/**\n * Creates disc buffers. The disc will be in the xz plane, centered at\n * the origin. When creating, at least 3 divisions, or pie\n * pieces, need to be specified, otherwise the triangles making\n * up the disc will be degenerate. You can also specify the\n * number of radial pieces `stacks`. A value of 1 for\n * stacks will give you a simple disc of pie pieces. If you\n * want to create an annulus you can set `innerRadius` to a\n * value > 0. Finally, `stackPower` allows you to have the widths\n * increase or decrease as you move away from the center. This\n * is particularly useful when using the disc as a ground plane\n * with a fixed camera such that you don't need the resolution\n * of small triangles near the perimeter. For example, a value\n * of 2 will produce stacks whose ouside radius increases with\n * the square of the stack index. A value of 1 will give uniform\n * stacks.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} radius Radius of the ground plane.\n * @param {number} divisions Number of triangles in the ground plane (at least 3).\n * @param {number} [stacks] Number of radial divisions (default=1).\n * @param {number} [innerRadius] Default 0.\n * @param {number} [stackPower] Power to raise stack size to for decreasing width.\n * @return {Object.} The created buffers.\n * @memberOf module:twgl/primitives\n * @function createDiscBuffers\n */\n\n/**\n * Creates disc vertices. The disc will be in the xz plane, centered at\n * the origin. When creating, at least 3 divisions, or pie\n * pieces, need to be specified, otherwise the triangles making\n * up the disc will be degenerate. You can also specify the\n * number of radial pieces `stacks`. A value of 1 for\n * stacks will give you a simple disc of pie pieces. If you\n * want to create an annulus you can set `innerRadius` to a\n * value > 0. Finally, `stackPower` allows you to have the widths\n * increase or decrease as you move away from the center. This\n * is particularly useful when using the disc as a ground plane\n * with a fixed camera such that you don't need the resolution\n * of small triangles near the perimeter. For example, a value\n * of 2 will produce stacks whose ouside radius increases with\n * the square of the stack index. A value of 1 will give uniform\n * stacks.\n *\n * @param {number} radius Radius of the ground plane.\n * @param {number} divisions Number of triangles in the ground plane (at least 3).\n * @param {number} [stacks] Number of radial divisions (default=1).\n * @param {number} [innerRadius] Default 0.\n * @param {number} [stackPower] Power to raise stack size to for decreasing width.\n * @return {Object.} The created vertices.\n * @memberOf module:twgl/primitives\n */\n\n\nfunction createDiscVertices(radius, divisions, stacks, innerRadius, stackPower) {\n if (divisions < 3) {\n throw Error('divisions must be at least 3');\n }\n\n stacks = stacks ? stacks : 1;\n stackPower = stackPower ? stackPower : 1;\n innerRadius = innerRadius ? innerRadius : 0; // Note: We don't share the center vertex because that would\n // mess up texture coordinates.\n\n var numVertices = (divisions + 1) * (stacks + 1);\n var positions = createAugmentedTypedArray(3, numVertices);\n var normals = createAugmentedTypedArray(3, numVertices);\n var texcoords = createAugmentedTypedArray(2, numVertices);\n var indices = createAugmentedTypedArray(3, stacks * divisions * 2, Uint16Array);\n var firstIndex = 0;\n var radiusSpan = radius - innerRadius;\n var pointsPerStack = divisions + 1; // Build the disk one stack at a time.\n\n for (var stack = 0; stack <= stacks; ++stack) {\n var stackRadius = innerRadius + radiusSpan * Math.pow(stack / stacks, stackPower);\n\n for (var i = 0; i <= divisions; ++i) {\n var theta = 2.0 * Math.PI * i / divisions;\n var x = stackRadius * Math.cos(theta);\n var z = stackRadius * Math.sin(theta);\n positions.push(x, 0, z);\n normals.push(0, 1, 0);\n texcoords.push(1 - i / divisions, stack / stacks);\n\n if (stack > 0 && i !== divisions) {\n // a, b, c and d are the indices of the vertices of a quad. unless\n // the current stack is the one closest to the center, in which case\n // the vertices a and b connect to the center vertex.\n var a = firstIndex + (i + 1);\n var b = firstIndex + i;\n var c = firstIndex + i - pointsPerStack;\n var d = firstIndex + (i + 1) - pointsPerStack; // Make a quad of the vertices a, b, c, d.\n\n indices.push(a, b, c);\n indices.push(a, c, d);\n }\n }\n\n firstIndex += divisions + 1;\n }\n\n return {\n position: positions,\n normal: normals,\n texcoord: texcoords,\n indices: indices\n };\n}\n/**\n * creates a random integer between 0 and range - 1 inclusive.\n * @param {number} range\n * @return {number} random value between 0 and range - 1 inclusive.\n */\n\n\nfunction randInt(range) {\n return Math.random() * range | 0;\n}\n/**\n * Used to supply random colors\n * @callback RandomColorFunc\n * @param {number} ndx index of triangle/quad if unindexed or index of vertex if indexed\n * @param {number} channel 0 = red, 1 = green, 2 = blue, 3 = alpha\n * @return {number} a number from 0 to 255\n * @memberOf module:twgl/primitives\n */\n\n/**\n * @typedef {Object} RandomVerticesOptions\n * @property {number} [vertsPerColor] Defaults to 3 for non-indexed vertices\n * @property {module:twgl/primitives.RandomColorFunc} [rand] A function to generate random numbers\n * @memberOf module:twgl/primitives\n */\n\n/**\n * Creates an augmentedTypedArray of random vertex colors.\n * If the vertices are indexed (have an indices array) then will\n * just make random colors. Otherwise assumes they are triangles\n * and makes one random color for every 3 vertices.\n * @param {Object.} vertices Vertices as returned from one of the createXXXVertices functions.\n * @param {module:twgl/primitives.RandomVerticesOptions} [options] options.\n * @return {Object.} same vertices as passed in with `color` added.\n * @memberOf module:twgl/primitives\n */\n\n\nfunction makeRandomVertexColors(vertices, options) {\n options = options || {};\n var numElements = vertices.position.numElements;\n var vcolors = createAugmentedTypedArray(4, numElements, Uint8Array);\n\n var rand = options.rand || function (ndx, channel) {\n return channel < 3 ? randInt(256) : 255;\n };\n\n vertices.color = vcolors;\n\n if (vertices.indices) {\n // just make random colors if index\n for (var ii = 0; ii < numElements; ++ii) {\n vcolors.push(rand(ii, 0), rand(ii, 1), rand(ii, 2), rand(ii, 3));\n }\n } else {\n // make random colors per triangle\n var numVertsPerColor = options.vertsPerColor || 3;\n var numSets = numElements / numVertsPerColor;\n\n for (var _ii2 = 0; _ii2 < numSets; ++_ii2) {\n // eslint-disable-line\n var color = [rand(_ii2, 0), rand(_ii2, 1), rand(_ii2, 2), rand(_ii2, 3)];\n\n for (var jj = 0; jj < numVertsPerColor; ++jj) {\n vcolors.push(color);\n }\n }\n }\n\n return vertices;\n}\n/**\n * creates a function that calls fn to create vertices and then\n * creates a buffers for them\n */\n\n\nfunction createBufferFunc(fn) {\n return function (gl) {\n var arrays = fn.apply(this, Array.prototype.slice.call(arguments, 1));\n return attributes.createBuffersFromArrays(gl, arrays);\n };\n}\n/**\n * creates a function that calls fn to create vertices and then\n * creates a bufferInfo object for them\n */\n\n\nfunction createBufferInfoFunc(fn) {\n return function (gl) {\n var arrays = fn.apply(null, Array.prototype.slice.call(arguments, 1));\n return attributes.createBufferInfoFromArrays(gl, arrays);\n };\n}\n\nvar arraySpecPropertyNames = [\"numComponents\", \"size\", \"type\", \"normalize\", \"stride\", \"offset\", \"attrib\", \"name\", \"attribName\"];\n/**\n * Copy elements from one array to another\n *\n * @param {Array|TypedArray} src source array\n * @param {Array|TypedArray} dst dest array\n * @param {number} dstNdx index in dest to copy src\n * @param {number} [offset] offset to add to copied values\n */\n\nfunction copyElements(src, dst, dstNdx, offset) {\n offset = offset || 0;\n var length = src.length;\n\n for (var ii = 0; ii < length; ++ii) {\n dst[dstNdx + ii] = src[ii] + offset;\n }\n}\n/**\n * Creates an array of the same time\n *\n * @param {(number[]|ArrayBufferView|module:twgl.FullArraySpec)} srcArray array who's type to copy\n * @param {number} length size of new array\n * @return {(number[]|ArrayBufferView|module:twgl.FullArraySpec)} array with same type as srcArray\n */\n\n\nfunction createArrayOfSameType(srcArray, length) {\n var arraySrc = getArray(srcArray);\n var newArray = new arraySrc.constructor(length);\n var newArraySpec = newArray; // If it appears to have been augmented make new one augemented\n\n if (arraySrc.numComponents && arraySrc.numElements) {\n augmentTypedArray(newArray, arraySrc.numComponents);\n } // If it was a fullspec make new one a fullspec\n\n\n if (srcArray.data) {\n newArraySpec = {\n data: newArray\n };\n helper.copyNamedProperties(arraySpecPropertyNames, srcArray, newArraySpec);\n }\n\n return newArraySpec;\n}\n/**\n * Concatinates sets of vertices\n *\n * Assumes the vertices match in composition. For example\n * if one set of vertices has positions, normals, and indices\n * all sets of vertices must have positions, normals, and indices\n * and of the same type.\n *\n * Example:\n *\n * const cubeVertices = twgl.primtiives.createCubeVertices(2);\n * const sphereVertices = twgl.primitives.createSphereVertices(1, 10, 10);\n * // move the sphere 2 units up\n * twgl.primitives.reorientVertices(\n * sphereVertices, twgl.m4.translation([0, 2, 0]));\n * // merge the sphere with the cube\n * const cubeSphereVertices = twgl.primitives.concatVertices(\n * [cubeVertices, sphereVertices]);\n * // turn them into WebGL buffers and attrib data\n * const bufferInfo = twgl.createBufferInfoFromArrays(gl, cubeSphereVertices);\n *\n * @param {module:twgl.Arrays[]} arrays Array of arrays of vertices\n * @return {module:twgl.Arrays} The concatinated vertices.\n * @memberOf module:twgl/primitives\n */\n\n\nfunction concatVertices(arrayOfArrays) {\n var names = {};\n var baseName; // get names of all arrays.\n // and numElements for each set of vertices\n\n var _loop = function _loop(ii) {\n var arrays = arrayOfArrays[ii];\n Object.keys(arrays).forEach(function (name) {\n // eslint-disable-line\n if (!names[name]) {\n names[name] = [];\n }\n\n if (!baseName && name !== 'indices') {\n baseName = name;\n }\n\n var arrayInfo = arrays[name];\n var numComponents = getNumComponents(arrayInfo, name);\n var array = getArray(arrayInfo);\n var numElements = array.length / numComponents;\n names[name].push(numElements);\n });\n };\n\n for (var ii = 0; ii < arrayOfArrays.length; ++ii) {\n _loop(ii);\n } // compute length of combined array\n // and return one for reference\n\n\n function getLengthOfCombinedArrays(name) {\n var length = 0;\n var arraySpec;\n\n for (var ii = 0; ii < arrayOfArrays.length; ++ii) {\n var arrays = arrayOfArrays[ii];\n var arrayInfo = arrays[name];\n var array = getArray(arrayInfo);\n length += array.length;\n\n if (!arraySpec || arrayInfo.data) {\n arraySpec = arrayInfo;\n }\n }\n\n return {\n length: length,\n spec: arraySpec\n };\n }\n\n function copyArraysToNewArray(name, base, newArray) {\n var baseIndex = 0;\n var offset = 0;\n\n for (var ii = 0; ii < arrayOfArrays.length; ++ii) {\n var arrays = arrayOfArrays[ii];\n var arrayInfo = arrays[name];\n var array = getArray(arrayInfo);\n\n if (name === 'indices') {\n copyElements(array, newArray, offset, baseIndex);\n baseIndex += base[ii];\n } else {\n copyElements(array, newArray, offset);\n }\n\n offset += array.length;\n }\n }\n\n var base = names[baseName];\n var newArrays = {};\n Object.keys(names).forEach(function (name) {\n var info = getLengthOfCombinedArrays(name);\n var newArraySpec = createArrayOfSameType(info.spec, info.length);\n copyArraysToNewArray(name, base, getArray(newArraySpec));\n newArrays[name] = newArraySpec;\n });\n return newArrays;\n}\n/**\n * Creates a duplicate set of vertices\n *\n * This is useful for calling reorientVertices when you\n * also want to keep the original available\n *\n * @param {module:twgl.Arrays} arrays of vertices\n * @return {module:twgl.Arrays} The dupilicated vertices.\n * @memberOf module:twgl/primitives\n */\n\n\nfunction duplicateVertices(arrays) {\n var newArrays = {};\n Object.keys(arrays).forEach(function (name) {\n var arraySpec = arrays[name];\n var srcArray = getArray(arraySpec);\n var newArraySpec = createArrayOfSameType(arraySpec, srcArray.length);\n copyElements(srcArray, getArray(newArraySpec), 0);\n newArrays[name] = newArraySpec;\n });\n return newArrays;\n}\n\nvar create3DFBufferInfo = createBufferInfoFunc(create3DFVertices);\nexports.create3DFBufferInfo = create3DFBufferInfo;\nvar create3DFBuffers = createBufferFunc(create3DFVertices);\nexports.create3DFBuffers = create3DFBuffers;\nvar createCubeBufferInfo = createBufferInfoFunc(createCubeVertices);\nexports.createCubeBufferInfo = createCubeBufferInfo;\nvar createCubeBuffers = createBufferFunc(createCubeVertices);\nexports.createCubeBuffers = createCubeBuffers;\nvar createPlaneBufferInfo = createBufferInfoFunc(createPlaneVertices);\nexports.createPlaneBufferInfo = createPlaneBufferInfo;\nvar createPlaneBuffers = createBufferFunc(createPlaneVertices);\nexports.createPlaneBuffers = createPlaneBuffers;\nvar createSphereBufferInfo = createBufferInfoFunc(createSphereVertices);\nexports.createSphereBufferInfo = createSphereBufferInfo;\nvar createSphereBuffers = createBufferFunc(createSphereVertices);\nexports.createSphereBuffers = createSphereBuffers;\nvar createTruncatedConeBufferInfo = createBufferInfoFunc(createTruncatedConeVertices);\nexports.createTruncatedConeBufferInfo = createTruncatedConeBufferInfo;\nvar createTruncatedConeBuffers = createBufferFunc(createTruncatedConeVertices);\nexports.createTruncatedConeBuffers = createTruncatedConeBuffers;\nvar createXYQuadBufferInfo = createBufferInfoFunc(createXYQuadVertices);\nexports.createXYQuadBufferInfo = createXYQuadBufferInfo;\nvar createXYQuadBuffers = createBufferFunc(createXYQuadVertices);\nexports.createXYQuadBuffers = createXYQuadBuffers;\nvar createCresentBufferInfo = createBufferInfoFunc(createCresentVertices);\nexports.createCresentBufferInfo = createCresentBufferInfo;\nvar createCresentBuffers = createBufferFunc(createCresentVertices);\nexports.createCresentBuffers = createCresentBuffers;\nvar createCylinderBufferInfo = createBufferInfoFunc(createCylinderVertices);\nexports.createCylinderBufferInfo = createCylinderBufferInfo;\nvar createCylinderBuffers = createBufferFunc(createCylinderVertices);\nexports.createCylinderBuffers = createCylinderBuffers;\nvar createTorusBufferInfo = createBufferInfoFunc(createTorusVertices);\nexports.createTorusBufferInfo = createTorusBufferInfo;\nvar createTorusBuffers = createBufferFunc(createTorusVertices);\nexports.createTorusBuffers = createTorusBuffers;\nvar createDiscBufferInfo = createBufferInfoFunc(createDiscVertices);\nexports.createDiscBufferInfo = createDiscBufferInfo;\nvar createDiscBuffers = createBufferFunc(createDiscVertices);\nexports.createDiscBuffers = createDiscBuffers;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nvar _exportNames = {\n addExtensionsToContext: true,\n getContext: true,\n getWebGLContext: true,\n resizeCanvasToDisplaySize: true,\n setDefaults: true\n};\nexports.addExtensionsToContext = addExtensionsToContext;\nexports.getContext = getContext;\nexports.getWebGLContext = getWebGLContext;\nexports.resizeCanvasToDisplaySize = resizeCanvasToDisplaySize;\nexports.setDefaults = setDefaults;\n\nvar attributes = _interopRequireWildcard(__webpack_require__(7));\n\nObject.keys(attributes).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n exports[key] = attributes[key];\n});\n\nvar textures = _interopRequireWildcard(__webpack_require__(8));\n\nObject.keys(textures).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n exports[key] = textures[key];\n});\n\nvar helper = _interopRequireWildcard(__webpack_require__(0));\n\nvar utils = _interopRequireWildcard(__webpack_require__(4));\n\nObject.keys(utils).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n exports[key] = utils[key];\n});\n\nvar _draw = __webpack_require__(12);\n\nObject.keys(_draw).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n exports[key] = _draw[key];\n});\n\nvar _framebuffers = __webpack_require__(13);\n\nObject.keys(_framebuffers).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n exports[key] = _framebuffers[key];\n});\n\nvar _programs = __webpack_require__(5);\n\nObject.keys(_programs).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n exports[key] = _programs[key];\n});\n\nvar _typedarrays = __webpack_require__(1);\n\nObject.keys(_typedarrays).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n exports[key] = _typedarrays[key];\n});\n\nvar _vertexArrays = __webpack_require__(14);\n\nObject.keys(_vertexArrays).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n exports[key] = _vertexArrays[key];\n});\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\n/*\n * Copyright 2015, Gregg Tavares.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following disclaimer\n * in the documentation and/or other materials provided with the\n * distribution.\n * * Neither the name of Gregg Tavares. nor the names of his\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/**\n * The main TWGL module.\n *\n * For most use cases you shouldn't need anything outside this module.\n * Exceptions between the stuff added to twgl-full (v3, m4, primitives)\n *\n * @module twgl\n * @borrows module:twgl/attributes.setAttribInfoBufferFromArray as setAttribInfoBufferFromArray\n * @borrows module:twgl/attributes.createBufferInfoFromArrays as createBufferInfoFromArrays\n * @borrows module:twgl/attributes.createVertexArrayInfo as createVertexArrayInfo\n * @borrows module:twgl/draw.drawBufferInfo as drawBufferInfo\n * @borrows module:twgl/draw.drawObjectList as drawObjectList\n * @borrows module:twgl/framebuffers.createFramebufferInfo as createFramebufferInfo\n * @borrows module:twgl/framebuffers.resizeFramebufferInfo as resizeFramebufferInfo\n * @borrows module:twgl/framebuffers.bindFramebufferInfo as bindFramebufferInfo\n * @borrows module:twgl/programs.createProgramInfo as createProgramInfo\n * @borrows module:twgl/programs.createUniformBlockInfo as createUniformBlockInfo\n * @borrows module:twgl/programs.bindUniformBlock as bindUniformBlock\n * @borrows module:twgl/programs.setUniformBlock as setUniformBlock\n * @borrows module:twgl/programs.setBlockUniforms as setBlockUniforms\n * @borrows module:twgl/programs.setUniforms as setUniforms\n * @borrows module:twgl/programs.setBuffersAndAttributes as setBuffersAndAttributes\n * @borrows module:twgl/textures.setTextureFromArray as setTextureFromArray\n * @borrows module:twgl/textures.createTexture as createTexture\n * @borrows module:twgl/textures.resizeTexture as resizeTexture\n * @borrows module:twgl/textures.createTextures as createTextures\n */\n// make sure we don't see a global gl\nvar gl = undefined; // eslint-disable-line\n\nvar defaults = {\n addExtensionsToContext: true\n};\n/**\n * Various default settings for twgl.\n *\n * Note: You can call this any number of times. Example:\n *\n * twgl.setDefaults({ textureColor: [1, 0, 0, 1] });\n * twgl.setDefaults({ attribPrefix: 'a_' });\n *\n * is equivalent to\n *\n * twgl.setDefaults({\n * textureColor: [1, 0, 0, 1],\n * attribPrefix: 'a_',\n * });\n *\n * @typedef {Object} Defaults\n * @property {string} attribPrefix The prefix to stick on attributes\n *\n * When writing shaders I prefer to name attributes with `a_`, uniforms with `u_` and varyings with `v_`\n * as it makes it clear where they came from. But, when building geometry I prefer using unprefixed names.\n *\n * In otherwords I'll create arrays of geometry like this\n *\n * const arrays = {\n * position: ...\n * normal: ...\n * texcoord: ...\n * };\n *\n * But need those mapped to attributes and my attributes start with `a_`.\n *\n * Default: `\"\"`\n *\n * @property {number[]} textureColor Array of 4 values in the range 0 to 1\n *\n * The default texture color is used when loading textures from\n * urls. Because the URL will be loaded async we'd like to be\n * able to use the texture immediately. By putting a 1x1 pixel\n * color in the texture we can start using the texture before\n * the URL has loaded.\n *\n * Default: `[0.5, 0.75, 1, 1]`\n *\n * @property {string} crossOrigin\n *\n * If not undefined sets the crossOrigin attribute on images\n * that twgl creates when downloading images for textures.\n *\n * Also see {@link module:twgl.TextureOptions}.\n *\n * @property {bool} addExtensionsToContext\n *\n * If true, then, when twgl will try to add any supported WebGL extensions\n * directly to the context under their normal GL names. For example\n * if ANGLE_instances_arrays exists then twgl would enable it,\n * add the functions `vertexAttribDivisor`, `drawArraysInstanced`,\n * `drawElementsInstanced`, and the constant `VERTEX_ATTRIB_ARRAY_DIVISOR`\n * to the `WebGLRenderingContext`.\n *\n * @memberOf module:twgl\n */\n\n/**\n * Sets various defaults for twgl.\n *\n * In the interest of terseness which is kind of the point\n * of twgl I've integrated a few of the older functions here\n *\n * @param {module:twgl.Defaults} newDefaults The default settings.\n * @memberOf module:twgl\n */\n\nfunction setDefaults(newDefaults) {\n helper.copyExistingProperties(newDefaults, defaults);\n attributes.setAttributeDefaults_(newDefaults); // eslint-disable-line\n\n textures.setTextureDefaults_(newDefaults); // eslint-disable-line\n}\n\nvar prefixRE = /^(.*?)_/;\n\nfunction addExtensionToContext(gl, extensionName) {\n utils.glEnumToString(gl, 0);\n var ext = gl.getExtension(extensionName);\n\n if (ext) {\n var enums = {};\n var fnSuffix = prefixRE.exec(extensionName)[1];\n var enumSuffix = '_' + fnSuffix;\n\n for (var key in ext) {\n var value = ext[key];\n var isFunc = typeof value === 'function';\n var suffix = isFunc ? fnSuffix : enumSuffix;\n var name = key; // examples of where this is not true are WEBGL_compressed_texture_s3tc\n // and WEBGL_compressed_texture_pvrtc\n\n if (key.endsWith(suffix)) {\n name = key.substring(0, key.length - suffix.length);\n }\n\n if (gl[name] !== undefined) {\n if (!isFunc && gl[name] !== value) {\n helper.warn(name, gl[name], value, key);\n }\n } else {\n if (isFunc) {\n gl[name] = function (origFn) {\n return function () {\n return origFn.apply(ext, arguments);\n };\n }(value);\n } else {\n gl[name] = value;\n enums[name] = value;\n }\n }\n } // pass the modified enums to glEnumToString\n\n\n enums.constructor = {\n name: ext.constructor.name\n };\n utils.glEnumToString(enums, 0);\n }\n\n return ext;\n}\n/*\n * If you're wondering why the code doesn't just iterate\n * over all extensions using `gl.getExtensions` is that it's possible\n * some future extension is incompatible with this code. Rather than\n * have thing suddenly break it seems better to manually add to this\n * list.\n *\n */\n\n\nvar supportedExtensions = ['ANGLE_instanced_arrays', 'EXT_blend_minmax', 'EXT_color_buffer_float', 'EXT_color_buffer_half_float', 'EXT_disjoint_timer_query', 'EXT_disjoint_timer_query_webgl2', 'EXT_frag_depth', 'EXT_sRGB', 'EXT_shader_texture_lod', 'EXT_texture_filter_anisotropic', 'OES_element_index_uint', 'OES_standard_derivatives', 'OES_texture_float', 'OES_texture_float_linear', 'OES_texture_half_float', 'OES_texture_half_float_linear', 'OES_vertex_array_object', 'WEBGL_color_buffer_float', 'WEBGL_compressed_texture_atc', 'WEBGL_compressed_texture_etc1', 'WEBGL_compressed_texture_pvrtc', 'WEBGL_compressed_texture_s3tc', 'WEBGL_compressed_texture_s3tc_srgb', 'WEBGL_depth_texture', 'WEBGL_draw_buffers'];\n/**\n * Attempts to enable all of the following extensions\n * and add their functions and constants to the\n * `WebGLRenderingContext` using their normal non-extension like names.\n *\n * ANGLE_instanced_arrays\n * EXT_blend_minmax\n * EXT_color_buffer_float\n * EXT_color_buffer_half_float\n * EXT_disjoint_timer_query\n * EXT_disjoint_timer_query_webgl2\n * EXT_frag_depth\n * EXT_sRGB\n * EXT_shader_texture_lod\n * EXT_texture_filter_anisotropic\n * OES_element_index_uint\n * OES_standard_derivatives\n * OES_texture_float\n * OES_texture_float_linear\n * OES_texture_half_float\n * OES_texture_half_float_linear\n * OES_vertex_array_object\n * WEBGL_color_buffer_float\n * WEBGL_compressed_texture_atc\n * WEBGL_compressed_texture_etc1\n * WEBGL_compressed_texture_pvrtc\n * WEBGL_compressed_texture_s3tc\n * WEBGL_compressed_texture_s3tc_srgb\n * WEBGL_depth_texture\n * WEBGL_draw_buffers\n *\n * For example if `ANGLE_instanced_arrays` exists then the functions\n * `drawArraysInstanced`, `drawElementsInstanced`, `vertexAttribDivisor`\n * and the constant `VERTEX_ATTRIB_ARRAY_DIVISOR` are added to the\n * `WebGLRenderingContext`.\n *\n * Note that if you want to know if the extension exists you should\n * probably call `gl.getExtension` for each extension. Alternatively\n * you can check for the existance of the functions or constants that\n * are expected to be added. For example\n *\n * if (gl.drawBuffers) {\n * // Either WEBGL_draw_buffers was enabled OR you're running in WebGL2\n * ....\n *\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext\n * @memberOf module:twgl\n */\n\nfunction addExtensionsToContext(gl) {\n for (var ii = 0; ii < supportedExtensions.length; ++ii) {\n addExtensionToContext(gl, supportedExtensions[ii]);\n }\n}\n/**\n * Creates a webgl context.\n * @param {HTMLCanvasElement} canvas The canvas tag to get\n * context from. If one is not passed in one will be\n * created.\n * @return {WebGLRenderingContext} The created context.\n */\n\n\nfunction create3DContext(canvas, opt_attribs) {\n var names = [\"webgl\", \"experimental-webgl\"];\n var context = null;\n\n for (var ii = 0; ii < names.length; ++ii) {\n context = canvas.getContext(names[ii], opt_attribs);\n\n if (context) {\n if (defaults.addExtensionsToContext) {\n addExtensionsToContext(context);\n }\n\n break;\n }\n }\n\n return context;\n}\n/**\n * Gets a WebGL1 context.\n *\n * Note: Will attempt to enable Vertex Array Objects\n * and add WebGL2 entry points. (unless you first set defaults with\n * `twgl.setDefaults({enableVertexArrayObjects: false})`;\n *\n * @param {HTMLCanvasElement} canvas a canvas element.\n * @param {WebGLContextCreationAttirbutes} [opt_attribs] optional webgl context creation attributes\n * @memberOf module:twgl\n */\n\n\nfunction getWebGLContext(canvas, opt_attribs) {\n var gl = create3DContext(canvas, opt_attribs);\n return gl;\n}\n/**\n * Creates a webgl context.\n *\n * Will return a WebGL2 context if possible.\n *\n * You can check if it's WebGL2 with\n *\n * twgl.isWebGL2(gl);\n *\n * @param {HTMLCanvasElement} canvas The canvas tag to get\n * context from. If one is not passed in one will be\n * created.\n * @return {WebGLRenderingContext} The created context.\n */\n\n\nfunction createContext(canvas, opt_attribs) {\n var names = [\"webgl2\", \"webgl\", \"experimental-webgl\"];\n var context = null;\n\n for (var ii = 0; ii < names.length; ++ii) {\n context = canvas.getContext(names[ii], opt_attribs);\n\n if (context) {\n if (defaults.addExtensionsToContext) {\n addExtensionsToContext(context);\n }\n\n break;\n }\n }\n\n return context;\n}\n/**\n * Gets a WebGL context. Will create a WebGL2 context if possible.\n *\n * You can check if it's WebGL2 with\n *\n * function isWebGL2(gl) {\n * return gl.getParameter(gl.VERSION).indexOf(\"WebGL 2.0 \") == 0;\n * }\n *\n * Note: For a WebGL1 context will attempt to enable Vertex Array Objects\n * and add WebGL2 entry points. (unless you first set defaults with\n * `twgl.setDefaults({enableVertexArrayObjects: false})`;\n *\n * @param {HTMLCanvasElement} canvas a canvas element.\n * @param {WebGLContextCreationAttirbutes} [opt_attribs] optional webgl context creation attributes\n * @return {WebGLRenderingContext} The created context.\n * @memberOf module:twgl\n */\n\n\nfunction getContext(canvas, opt_attribs) {\n var gl = createContext(canvas, opt_attribs);\n return gl;\n}\n/**\n * Resize a canvas to match the size it's displayed.\n * @param {HTMLCanvasElement} canvas The canvas to resize.\n * @param {number} [multiplier] So you can pass in `window.devicePixelRatio` or other scale value if you want to.\n * @return {boolean} true if the canvas was resized.\n * @memberOf module:twgl\n */\n\n\nfunction resizeCanvasToDisplaySize(canvas, multiplier) {\n multiplier = multiplier || 1;\n multiplier = Math.max(0, multiplier);\n var width = canvas.clientWidth * multiplier | 0;\n var height = canvas.clientHeight * multiplier | 0;\n\n if (canvas.width !== width || canvas.height !== height) {\n canvas.width = width;\n canvas.height = height;\n return true;\n }\n\n return false;\n}\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.drawBufferInfo = drawBufferInfo;\nexports.drawObjectList = drawObjectList;\n\nvar programs = _interopRequireWildcard(__webpack_require__(5));\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\n/*\n * Copyright 2015, Gregg Tavares.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following disclaimer\n * in the documentation and/or other materials provided with the\n * distribution.\n * * Neither the name of Gregg Tavares. nor the names of his\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/**\n * Drawing related functions\n *\n * For backward compatibily they are available at both `twgl.draw` and `twgl`\n * itself\n *\n * See {@link module:twgl} for core functions\n *\n * @module twgl/draw\n */\n\n/**\n * Calls `gl.drawElements` or `gl.drawArrays`, whichever is appropriate\n *\n * normally you'd call `gl.drawElements` or `gl.drawArrays` yourself\n * but calling this means if you switch from indexed data to non-indexed\n * data you don't have to remember to update your draw call.\n *\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext\n * @param {(module:twgl.BufferInfo|module:twgl.VertexArrayInfo)} bufferInfo A BufferInfo as returned from {@link module:twgl.createBufferInfoFromArrays} or\n * a VertexArrayInfo as returned from {@link module:twgl.createVertexArrayInfo}\n * @param {enum} [type] eg (gl.TRIANGLES, gl.LINES, gl.POINTS, gl.TRIANGLE_STRIP, ...). Defaults to `gl.TRIANGLES`\n * @param {number} [count] An optional count. Defaults to bufferInfo.numElements\n * @param {number} [offset] An optional offset. Defaults to 0.\n * @param {number} [instanceCount] An optional instanceCount. if set then `drawArraysInstanced` or `drawElementsInstanced` will be called\n * @memberOf module:twgl/draw\n */\nfunction drawBufferInfo(gl, bufferInfo, type, count, offset, instanceCount) {\n type = type === undefined ? gl.TRIANGLES : type;\n var indices = bufferInfo.indices;\n var elementType = bufferInfo.elementType;\n var numElements = count === undefined ? bufferInfo.numElements : count;\n offset = offset === undefined ? 0 : offset;\n\n if (elementType || indices) {\n if (instanceCount !== undefined) {\n gl.drawElementsInstanced(type, numElements, elementType === undefined ? gl.UNSIGNED_SHORT : bufferInfo.elementType, offset, instanceCount);\n } else {\n gl.drawElements(type, numElements, elementType === undefined ? gl.UNSIGNED_SHORT : bufferInfo.elementType, offset);\n }\n } else {\n if (instanceCount !== undefined) {\n gl.drawArraysInstanced(type, offset, numElements, instanceCount);\n } else {\n gl.drawArrays(type, offset, numElements);\n }\n }\n}\n/**\n * A DrawObject is useful for putting objects in to an array and passing them to {@link module:twgl.drawObjectList}.\n *\n * You need either a `BufferInfo` or a `VertexArrayInfo`.\n *\n * @typedef {Object} DrawObject\n * @property {boolean} [active] whether or not to draw. Default = `true` (must be `false` to be not true). In otherwords `undefined` = `true`\n * @property {number} [type] type to draw eg. `gl.TRIANGLES`, `gl.LINES`, etc...\n * @property {module:twgl.ProgramInfo} programInfo A ProgramInfo as returned from {@link module:twgl.createProgramInfo}\n * @property {module:twgl.BufferInfo} [bufferInfo] A BufferInfo as returned from {@link module:twgl.createBufferInfoFromArrays}\n * @property {module:twgl.VertexArrayInfo} [vertexArrayInfo] A VertexArrayInfo as returned from {@link module:twgl.createVertexArrayInfo}\n * @property {Object} uniforms The values for the uniforms.\n * You can pass multiple objects by putting them in an array. For example\n *\n * var sharedUniforms = {\n * u_fogNear: 10,\n * u_projection: ...\n * ...\n * };\n *\n * var localUniforms = {\n * u_world: ...\n * u_diffuseColor: ...\n * };\n *\n * var drawObj = {\n * ...\n * uniforms: [sharedUniforms, localUniforms],\n * };\n *\n * @property {number} [offset] the offset to pass to `gl.drawArrays` or `gl.drawElements`. Defaults to 0.\n * @property {number} [count] the count to pass to `gl.drawArrays` or `gl.drawElemnts`. Defaults to bufferInfo.numElements.\n * @property {number} [instanceCount] the number of instances. Defaults to undefined.\n * @memberOf module:twgl\n */\n\n/**\n * Draws a list of objects\n * @param {DrawObject[]} objectsToDraw an array of objects to draw.\n * @memberOf module:twgl/draw\n */\n\n\nfunction drawObjectList(gl, objectsToDraw) {\n var lastUsedProgramInfo = null;\n var lastUsedBufferInfo = null;\n objectsToDraw.forEach(function (object) {\n if (object.active === false) {\n return;\n }\n\n var programInfo = object.programInfo;\n var bufferInfo = object.vertexArrayInfo || object.bufferInfo;\n var bindBuffers = false;\n var type = object.type === undefined ? gl.TRIANGLES : object.type;\n\n if (programInfo !== lastUsedProgramInfo) {\n lastUsedProgramInfo = programInfo;\n gl.useProgram(programInfo.program); // We have to rebind buffers when changing programs because we\n // only bind buffers the program uses. So if 2 programs use the same\n // bufferInfo but the 1st one uses only positions the when the\n // we switch to the 2nd one some of the attributes will not be on.\n\n bindBuffers = true;\n } // Setup all the needed attributes.\n\n\n if (bindBuffers || bufferInfo !== lastUsedBufferInfo) {\n if (lastUsedBufferInfo && lastUsedBufferInfo.vertexArrayObject && !bufferInfo.vertexArrayObject) {\n gl.bindVertexArray(null);\n }\n\n lastUsedBufferInfo = bufferInfo;\n programs.setBuffersAndAttributes(gl, programInfo, bufferInfo);\n } // Set the uniforms.\n\n\n programs.setUniforms(programInfo, object.uniforms); // Draw\n\n drawBufferInfo(gl, bufferInfo, type, object.count, object.offset, object.instanceCount);\n });\n\n if (lastUsedBufferInfo.vertexArrayObject) {\n gl.bindVertexArray(null);\n }\n}\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.bindFramebufferInfo = bindFramebufferInfo;\nexports.createFramebufferInfo = createFramebufferInfo;\nexports.resizeFramebufferInfo = resizeFramebufferInfo;\n\nvar textures = _interopRequireWildcard(__webpack_require__(8));\n\nvar helper = _interopRequireWildcard(__webpack_require__(0));\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\n/*\n * Copyright 2015, Gregg Tavares.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following disclaimer\n * in the documentation and/or other materials provided with the\n * distribution.\n * * Neither the name of Gregg Tavares. nor the names of his\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/**\n * Framebuffer related functions\n *\n * For backward compatibily they are available at both `twgl.framebuffer` and `twgl`\n * itself\n *\n * See {@link module:twgl} for core functions\n *\n * @module twgl/framebuffers\n */\n// make sure we don't see a global gl\nvar gl = undefined; // eslint-disable-line\n\nvar UNSIGNED_BYTE = 0x1401;\n/* PixelFormat */\n\nvar DEPTH_COMPONENT = 0x1902;\nvar RGBA = 0x1908;\n/* Framebuffer Object. */\n\nvar RGBA4 = 0x8056;\nvar RGB5_A1 = 0x8057;\nvar RGB565 = 0x8D62;\nvar DEPTH_COMPONENT16 = 0x81A5;\nvar STENCIL_INDEX = 0x1901;\nvar STENCIL_INDEX8 = 0x8D48;\nvar DEPTH_STENCIL = 0x84F9;\nvar COLOR_ATTACHMENT0 = 0x8CE0;\nvar DEPTH_ATTACHMENT = 0x8D00;\nvar STENCIL_ATTACHMENT = 0x8D20;\nvar DEPTH_STENCIL_ATTACHMENT = 0x821A;\n/* TextureWrapMode */\n\nvar REPEAT = 0x2901; // eslint-disable-line\n\nvar CLAMP_TO_EDGE = 0x812F;\nvar MIRRORED_REPEAT = 0x8370; // eslint-disable-line\n\n/* TextureMagFilter */\n\nvar NEAREST = 0x2600; // eslint-disable-line\n\nvar LINEAR = 0x2601;\n/* TextureMinFilter */\n\nvar NEAREST_MIPMAP_NEAREST = 0x2700; // eslint-disable-line\n\nvar LINEAR_MIPMAP_NEAREST = 0x2701; // eslint-disable-line\n\nvar NEAREST_MIPMAP_LINEAR = 0x2702; // eslint-disable-line\n\nvar LINEAR_MIPMAP_LINEAR = 0x2703; // eslint-disable-line\n\n/**\n * The options for a framebuffer attachment.\n *\n * Note: For a `format` that is a texture include all the texture\n * options from {@link module:twgl.TextureOptions} for example\n * `min`, `mag`, `clamp`, etc... Note that unlike {@link module:twgl.TextureOptions}\n * `auto` defaults to `false` for attachment textures but `min` and `mag` default\n * to `gl.LINEAR` and `wrap` defaults to `CLAMP_TO_EDGE`\n *\n * @typedef {Object} AttachmentOptions\n * @property {number} [attach] The attachment point. Defaults\n * to `gl.COLOR_ATTACTMENT0 + ndx` unless type is a depth or stencil type\n * then it's gl.DEPTH_ATTACHMENT or `gl.DEPTH_STENCIL_ATTACHMENT` depending\n * on the format or attachment type.\n * @property {number} [format] The format. If one of `gl.RGBA4`,\n * `gl.RGB565`, `gl.RGB5_A1`, `gl.DEPTH_COMPONENT16`,\n * `gl.STENCIL_INDEX8` or `gl.DEPTH_STENCIL` then will create a\n * renderbuffer. Otherwise will create a texture. Default = `gl.RGBA`\n * @property {number} [type] The type. Used for texture. Default = `gl.UNSIGNED_BYTE`.\n * @property {number} [target] The texture target for `gl.framebufferTexture2D`.\n * Defaults to `gl.TEXTURE_2D`. Set to appropriate face for cube maps.\n * @property {number} [level] level for `gl.framebufferTexture2D`. Defaults to 0.\n * @property {WebGLObject} [attachment] An existing renderbuffer or texture.\n * If provided will attach this Object. This allows you to share\n * attachemnts across framebuffers.\n * @memberOf module:twgl\n */\n\nvar defaultAttachments = [{\n format: RGBA,\n type: UNSIGNED_BYTE,\n min: LINEAR,\n wrap: CLAMP_TO_EDGE\n}, {\n format: DEPTH_STENCIL\n}];\nvar attachmentsByFormat = {};\nattachmentsByFormat[DEPTH_STENCIL] = DEPTH_STENCIL_ATTACHMENT;\nattachmentsByFormat[STENCIL_INDEX] = STENCIL_ATTACHMENT;\nattachmentsByFormat[STENCIL_INDEX8] = STENCIL_ATTACHMENT;\nattachmentsByFormat[DEPTH_COMPONENT] = DEPTH_ATTACHMENT;\nattachmentsByFormat[DEPTH_COMPONENT16] = DEPTH_ATTACHMENT;\n\nfunction getAttachmentPointForFormat(format) {\n return attachmentsByFormat[format];\n}\n\nvar renderbufferFormats = {};\nrenderbufferFormats[RGBA4] = true;\nrenderbufferFormats[RGB5_A1] = true;\nrenderbufferFormats[RGB565] = true;\nrenderbufferFormats[DEPTH_STENCIL] = true;\nrenderbufferFormats[DEPTH_COMPONENT16] = true;\nrenderbufferFormats[STENCIL_INDEX] = true;\nrenderbufferFormats[STENCIL_INDEX8] = true;\n\nfunction isRenderbufferFormat(format) {\n return renderbufferFormats[format];\n}\n/**\n * @typedef {Object} FramebufferInfo\n * @property {WebGLFramebuffer} framebuffer The WebGLFramebuffer for this framebufferInfo\n * @property {WebGLObject[]} attachments The created attachments in the same order as passed in to {@link module:twgl.createFramebufferInfo}.\n * @memberOf module:twgl\n */\n\n/**\n * Creates a framebuffer and attachments.\n *\n * This returns a {@link module:twgl.FramebufferInfo} because it needs to return the attachments as well as the framebuffer.\n *\n * The simplest usage\n *\n * // create an RGBA/UNSIGNED_BYTE texture and DEPTH_STENCIL renderbuffer\n * const fbi = twgl.createFramebufferInfo(gl);\n *\n * More complex usage\n *\n * // create an RGB565 renderbuffer and a STENCIL_INDEX8 renderbuffer\n * const attachments = [\n * { format: RGB565, mag: NEAREST },\n * { format: STENCIL_INDEX8 },\n * ]\n * const fbi = twgl.createFramebufferInfo(gl, attachments);\n *\n * Passing in a specific size\n *\n * const width = 256;\n * const height = 256;\n * const fbi = twgl.createFramebufferInfo(gl, attachments, width, height);\n *\n * **Note!!** It is up to you to check if the framebuffer is renderable by calling `gl.checkFramebufferStatus`.\n * [WebGL only guarantees 3 combinations of attachments work](https://www.khronos.org/registry/webgl/specs/latest/1.0/#6.6).\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {module:twgl.AttachmentOptions[]} [attachments] which attachments to create. If not provided the default is a framebuffer with an\n * `RGBA`, `UNSIGNED_BYTE` texture `COLOR_ATTACHMENT0` and a `DEPTH_STENCIL` renderbuffer `DEPTH_STENCIL_ATTACHMENT`.\n * @param {number} [width] the width for the attachments. Default = size of drawingBuffer\n * @param {number} [height] the height for the attachments. Defautt = size of drawingBuffer\n * @return {module:twgl.FramebufferInfo} the framebuffer and attachments.\n * @memberOf module:twgl/framebuffers\n */\n\n\nfunction createFramebufferInfo(gl, attachments, width, height) {\n var target = gl.FRAMEBUFFER;\n var fb = gl.createFramebuffer();\n gl.bindFramebuffer(target, fb);\n width = width || gl.drawingBufferWidth;\n height = height || gl.drawingBufferHeight;\n attachments = attachments || defaultAttachments;\n var colorAttachmentCount = 0;\n var framebufferInfo = {\n framebuffer: fb,\n attachments: [],\n width: width,\n height: height\n };\n attachments.forEach(function (attachmentOptions) {\n var attachment = attachmentOptions.attachment;\n var format = attachmentOptions.format;\n var attachmentPoint = getAttachmentPointForFormat(format);\n\n if (!attachmentPoint) {\n attachmentPoint = COLOR_ATTACHMENT0 + colorAttachmentCount++;\n }\n\n if (!attachment) {\n if (isRenderbufferFormat(format)) {\n attachment = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, attachment);\n gl.renderbufferStorage(gl.RENDERBUFFER, format, width, height);\n } else {\n var textureOptions = Object.assign({}, attachmentOptions);\n textureOptions.width = width;\n textureOptions.height = height;\n\n if (textureOptions.auto === undefined) {\n textureOptions.auto = false;\n textureOptions.min = textureOptions.min || textureOptions.minMag || gl.LINEAR;\n textureOptions.mag = textureOptions.mag || textureOptions.minMag || gl.LINEAR;\n textureOptions.wrapS = textureOptions.wrapS || textureOptions.wrap || gl.CLAMP_TO_EDGE;\n textureOptions.wrapT = textureOptions.wrapT || textureOptions.wrap || gl.CLAMP_TO_EDGE;\n }\n\n attachment = textures.createTexture(gl, textureOptions);\n }\n }\n\n if (helper.isRenderbuffer(gl, attachment)) {\n gl.framebufferRenderbuffer(target, attachmentPoint, gl.RENDERBUFFER, attachment);\n } else if (helper.isTexture(gl, attachment)) {\n gl.framebufferTexture2D(target, attachmentPoint, attachmentOptions.texTarget || gl.TEXTURE_2D, attachment, attachmentOptions.level || 0);\n } else {\n throw \"unknown attachment type\";\n }\n\n framebufferInfo.attachments.push(attachment);\n });\n return framebufferInfo;\n}\n/**\n * Resizes the attachments of a framebuffer.\n *\n * You need to pass in the same `attachments` as you passed in {@link module:twgl.createFramebufferInfo}\n * because TWGL has no idea the format/type of each attachment.\n *\n * The simplest usage\n *\n * // create an RGBA/UNSIGNED_BYTE texture and DEPTH_STENCIL renderbuffer\n * const fbi = twgl.createFramebufferInfo(gl);\n *\n * ...\n *\n * function render() {\n * if (twgl.resizeCanvasToDisplaySize(gl.canvas)) {\n * // resize the attachments\n * twgl.resizeFramebufferInfo(gl, fbi);\n * }\n *\n * More complex usage\n *\n * // create an RGB565 renderbuffer and a STENCIL_INDEX8 renderbuffer\n * const attachments = [\n * { format: RGB565, mag: NEAREST },\n * { format: STENCIL_INDEX8 },\n * ]\n * const fbi = twgl.createFramebufferInfo(gl, attachments);\n *\n * ...\n *\n * function render() {\n * if (twgl.resizeCanvasToDisplaySize(gl.canvas)) {\n * // resize the attachments to match\n * twgl.resizeFramebufferInfo(gl, fbi, attachments);\n * }\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {module:twgl.FramebufferInfo} framebufferInfo a framebufferInfo as returned from {@link module:twgl.createFramebufferInfo}.\n * @param {module:twgl.AttachmentOptions[]} [attachments] the same attachments options as passed to {@link module:twgl.createFramebufferInfo}.\n * @param {number} [width] the width for the attachments. Default = size of drawingBuffer\n * @param {number} [height] the height for the attachments. Defautt = size of drawingBuffer\n * @memberOf module:twgl/framebuffers\n */\n\n\nfunction resizeFramebufferInfo(gl, framebufferInfo, attachments, width, height) {\n width = width || gl.drawingBufferWidth;\n height = height || gl.drawingBufferHeight;\n framebufferInfo.width = width;\n framebufferInfo.height = height;\n attachments = attachments || defaultAttachments;\n attachments.forEach(function (attachmentOptions, ndx) {\n var attachment = framebufferInfo.attachments[ndx];\n var format = attachmentOptions.format;\n\n if (helper.isRenderbuffer(gl, attachment)) {\n gl.bindRenderbuffer(gl.RENDERBUFFER, attachment);\n gl.renderbufferStorage(gl.RENDERBUFFER, format, width, height);\n } else if (helper.isTexture(gl, attachment)) {\n textures.resizeTexture(gl, attachment, attachmentOptions, width, height);\n } else {\n throw \"unknown attachment type\";\n }\n });\n}\n/**\n * Binds a framebuffer\n *\n * This function pretty much soley exists because I spent hours\n * trying to figure out why something I wrote wasn't working only\n * to realize I forget to set the viewport dimensions.\n * My hope is this function will fix that.\n *\n * It is effectively the same as\n *\n * gl.bindFramebuffer(gl.FRAMEBUFFER, someFramebufferInfo.framebuffer);\n * gl.viewport(0, 0, someFramebufferInfo.width, someFramebufferInfo.height);\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {module:twgl.FramebufferInfo} [framebufferInfo] a framebufferInfo as returned from {@link module:twgl.createFramebufferInfo}.\n * If not passed will bind the canvas.\n * @param {number} [target] The target. If not passed `gl.FRAMEBUFFER` will be used.\n * @memberOf module:twgl/framebuffers\n */\n\n\nfunction bindFramebufferInfo(gl, framebufferInfo, target) {\n target = target || gl.FRAMEBUFFER;\n\n if (framebufferInfo) {\n gl.bindFramebuffer(target, framebufferInfo.framebuffer);\n gl.viewport(0, 0, framebufferInfo.width, framebufferInfo.height);\n } else {\n gl.bindFramebuffer(target, null);\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n }\n}\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.createVertexArrayInfo = createVertexArrayInfo;\nexports.createVAOAndSetAttributes = createVAOAndSetAttributes;\nexports.createVAOFromBufferInfo = createVAOFromBufferInfo;\n\nvar programs = _interopRequireWildcard(__webpack_require__(5));\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\n/*\n * Copyright 2015, Gregg Tavares.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following disclaimer\n * in the documentation and/or other materials provided with the\n * distribution.\n * * Neither the name of Gregg Tavares. nor the names of his\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/**\n * vertex array object related functions\n *\n * You should generally not need to use these functions. They are provided\n * for those cases where you're doing something out of the ordinary\n * and you need lower level access.\n *\n * For backward compatibily they are available at both `twgl.attributes` and `twgl`\n * itself\n *\n * See {@link module:twgl} for core functions\n *\n * @module twgl/vertexArrays\n */\n\n/**\n * @typedef {Object} VertexArrayInfo\n * @property {number} numElements The number of elements to pass to `gl.drawArrays` or `gl.drawElements`.\n * @property {number} [elementType] The type of indices `UNSIGNED_BYTE`, `UNSIGNED_SHORT` etc..\n * @property {WebGLVertexArrayObject} [vertexArrayObject] a vertex array object\n * @memberOf module:twgl\n */\n\n/**\n * Creates a VertexArrayInfo from a BufferInfo and one or more ProgramInfos\n *\n * This can be passed to {@link module:twgl.setBuffersAndAttributes} and to\n * {@link module:twgl:drawBufferInfo}.\n *\n * > **IMPORTANT:** Vertex Array Objects are **not** a direct analog for a BufferInfo. Vertex Array Objects\n * assign buffers to specific attributes at creation time. That means they can only be used with programs\n * who's attributes use the same attribute locations for the same purposes.\n *\n * > Bind your attribute locations by passing an array of attribute names to {@link module:twgl.createProgramInfo}\n * or use WebGL 2's GLSL ES 3's `layout(location = )` to make sure locations match.\n *\n * also\n *\n * > **IMPORTANT:** After calling twgl.setBuffersAndAttribute with a BufferInfo that uses a Vertex Array Object\n * that Vertex Array Object will be bound. That means **ANY MANIPULATION OF ELEMENT_ARRAY_BUFFER or ATTRIBUTES**\n * will affect the Vertex Array Object state.\n *\n * > Call `gl.bindVertexArray(null)` to get back manipulating the global attributes and ELEMENT_ARRAY_BUFFER.\n *\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext\n * @param {module:twgl.ProgramInfo|module:twgl.ProgramInfo[]} programInfo a programInfo or array of programInfos\n * @param {module:twgl.BufferInfo} bufferInfo BufferInfo as returned from createBufferInfoFromArrays etc...\n *\n * You need to make sure every attribute that will be used is bound. So for example assume shader 1\n * uses attributes A, B, C and shader 2 uses attributes A, B, D. If you only pass in the programInfo\n * for shader 1 then only attributes A, B, and C will have their attributes set because TWGL doesn't\n * now attribute D's location.\n *\n * So, you can pass in both shader 1 and shader 2's programInfo\n *\n * @return {module:twgl.VertexArrayInfo} The created VertexArrayInfo\n *\n * @memberOf module:twgl/vertexArrays\n */\nfunction createVertexArrayInfo(gl, programInfos, bufferInfo) {\n var vao = gl.createVertexArray();\n gl.bindVertexArray(vao);\n\n if (!programInfos.length) {\n programInfos = [programInfos];\n }\n\n programInfos.forEach(function (programInfo) {\n programs.setBuffersAndAttributes(gl, programInfo, bufferInfo);\n });\n gl.bindVertexArray(null);\n return {\n numElements: bufferInfo.numElements,\n elementType: bufferInfo.elementType,\n vertexArrayObject: vao\n };\n}\n/**\n * Creates a vertex array object and then sets the attributes on it\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext to use.\n * @param {Object.} setters Attribute setters as returned from createAttributeSetters\n * @param {Object.} attribs AttribInfos mapped by attribute name.\n * @param {WebGLBuffer} [indices] an optional ELEMENT_ARRAY_BUFFER of indices\n * @memberOf module:twgl/vertexArrays\n */\n\n\nfunction createVAOAndSetAttributes(gl, setters, attribs, indices) {\n var vao = gl.createVertexArray();\n gl.bindVertexArray(vao);\n programs.setAttributes(setters, attribs);\n\n if (indices) {\n gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indices);\n } // We unbind this because otherwise any change to ELEMENT_ARRAY_BUFFER\n // like when creating buffers for other stuff will mess up this VAO's binding\n\n\n gl.bindVertexArray(null);\n return vao;\n}\n/**\n * Creates a vertex array object and then sets the attributes\n * on it\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext\n * to use.\n * @param {Object.| module:twgl.ProgramInfo} programInfo as returned from createProgramInfo or Attribute setters as returned from createAttributeSetters\n * @param {module:twgl.BufferInfo} bufferInfo BufferInfo as returned from createBufferInfoFromArrays etc...\n * @param {WebGLBuffer} [indices] an optional ELEMENT_ARRAY_BUFFER of indices\n * @memberOf module:twgl/vertexArrays\n */\n\n\nfunction createVAOFromBufferInfo(gl, programInfo, bufferInfo) {\n return createVAOAndSetAttributes(gl, programInfo.attribSetters || programInfo, bufferInfo.attribs, bufferInfo.indices);\n}\n\n/***/ })\n/******/ ]);\n});","// Generated by CoffeeScript 1.7.1\nvar UnicodeTrie, inflate;\n\ninflate = require('tiny-inflate');\n\nUnicodeTrie = (function() {\n var DATA_BLOCK_LENGTH, DATA_GRANULARITY, DATA_MASK, INDEX_1_OFFSET, INDEX_2_BLOCK_LENGTH, INDEX_2_BMP_LENGTH, INDEX_2_MASK, INDEX_SHIFT, LSCP_INDEX_2_LENGTH, LSCP_INDEX_2_OFFSET, OMITTED_BMP_INDEX_1_LENGTH, SHIFT_1, SHIFT_1_2, SHIFT_2, UTF8_2B_INDEX_2_LENGTH, UTF8_2B_INDEX_2_OFFSET;\n\n SHIFT_1 = 6 + 5;\n\n SHIFT_2 = 5;\n\n SHIFT_1_2 = SHIFT_1 - SHIFT_2;\n\n OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> SHIFT_1;\n\n INDEX_2_BLOCK_LENGTH = 1 << SHIFT_1_2;\n\n INDEX_2_MASK = INDEX_2_BLOCK_LENGTH - 1;\n\n INDEX_SHIFT = 2;\n\n DATA_BLOCK_LENGTH = 1 << SHIFT_2;\n\n DATA_MASK = DATA_BLOCK_LENGTH - 1;\n\n LSCP_INDEX_2_OFFSET = 0x10000 >> SHIFT_2;\n\n LSCP_INDEX_2_LENGTH = 0x400 >> SHIFT_2;\n\n INDEX_2_BMP_LENGTH = LSCP_INDEX_2_OFFSET + LSCP_INDEX_2_LENGTH;\n\n UTF8_2B_INDEX_2_OFFSET = INDEX_2_BMP_LENGTH;\n\n UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6;\n\n INDEX_1_OFFSET = UTF8_2B_INDEX_2_OFFSET + UTF8_2B_INDEX_2_LENGTH;\n\n DATA_GRANULARITY = 1 << INDEX_SHIFT;\n\n function UnicodeTrie(data) {\n var isBuffer, uncompressedLength, view;\n isBuffer = typeof data.readUInt32BE === 'function' && typeof data.slice === 'function';\n if (isBuffer || data instanceof Uint8Array) {\n if (isBuffer) {\n this.highStart = data.readUInt32BE(0);\n this.errorValue = data.readUInt32BE(4);\n uncompressedLength = data.readUInt32BE(8);\n data = data.slice(12);\n } else {\n view = new DataView(data.buffer);\n this.highStart = view.getUint32(0);\n this.errorValue = view.getUint32(4);\n uncompressedLength = view.getUint32(8);\n data = data.subarray(12);\n }\n data = inflate(data, new Uint8Array(uncompressedLength));\n data = inflate(data, new Uint8Array(uncompressedLength));\n this.data = new Uint32Array(data.buffer);\n } else {\n this.data = data.data, this.highStart = data.highStart, this.errorValue = data.errorValue;\n }\n }\n\n UnicodeTrie.prototype.get = function(codePoint) {\n var index;\n if (codePoint < 0 || codePoint > 0x10ffff) {\n return this.errorValue;\n }\n if (codePoint < 0xd800 || (codePoint > 0xdbff && codePoint <= 0xffff)) {\n index = (this.data[codePoint >> SHIFT_2] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n if (codePoint <= 0xffff) {\n index = (this.data[LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> SHIFT_2)] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n if (codePoint < this.highStart) {\n index = this.data[(INDEX_1_OFFSET - OMITTED_BMP_INDEX_1_LENGTH) + (codePoint >> SHIFT_1)];\n index = this.data[index + ((codePoint >> SHIFT_2) & INDEX_2_MASK)];\n index = (index << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n return this.data[this.data.length - DATA_GRANULARITY];\n };\n\n return UnicodeTrie;\n\n})();\n\nmodule.exports = UnicodeTrie;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","\"use strict\";\n\nfunction encodeSync(audioData, opts) {\n opts = opts || {};\n\n audioData = toAudioData(audioData);\n\n if (audioData === null) {\n throw new TypeError(\"Invalid AudioData\");\n }\n\n var floatingPoint = !!(opts.floatingPoint || opts.float);\n var bitDepth = floatingPoint ? 32 : ((opts.bitDepth|0) || 16);\n var bytes = bitDepth >> 3;\n var length = audioData.length * audioData.numberOfChannels * bytes;\n var dataView = new DataView(new Uint8Array(44 + length).buffer);\n var writer = createWriter(dataView);\n\n var format = {\n formatId: floatingPoint ? 0x0003 : 0x0001,\n floatingPoint: floatingPoint,\n numberOfChannels: audioData.numberOfChannels,\n sampleRate: audioData.sampleRate,\n bitDepth: bitDepth\n };\n\n writeHeader(writer, format, dataView.buffer.byteLength - 8);\n\n var err = writeData(writer, format, length, audioData, opts);\n\n if (err instanceof Error) {\n throw err;\n }\n\n return dataView.buffer;\n}\n\nfunction encode(audioData, opts) {\n return new Promise(function(resolve) {\n resolve(encodeSync(audioData, opts));\n });\n}\n\nfunction toAudioData(data) {\n var audioData = {};\n\n if (typeof data.sampleRate !== \"number\") {\n return null;\n }\n if (!Array.isArray(data.channelData)) {\n return null;\n }\n if (!(data.channelData[0] instanceof Float32Array)) {\n return null;\n }\n\n audioData.numberOfChannels = data.channelData.length;\n audioData.length = data.channelData[0].length|0;\n audioData.sampleRate = data.sampleRate|0;\n audioData.channelData = data.channelData;\n\n return audioData;\n}\n\nfunction writeHeader(writer, format, length) {\n var bytes = format.bitDepth >> 3;\n\n writer.string(\"RIFF\");\n writer.uint32(length);\n writer.string(\"WAVE\");\n\n writer.string(\"fmt \");\n writer.uint32(16);\n writer.uint16(format.floatingPoint ? 0x0003 : 0x0001);\n writer.uint16(format.numberOfChannels);\n writer.uint32(format.sampleRate);\n writer.uint32(format.sampleRate * format.numberOfChannels * bytes);\n writer.uint16(format.numberOfChannels * bytes);\n writer.uint16(format.bitDepth);\n}\n\nfunction writeData(writer, format, length, audioData, opts) {\n var bitDepth = format.bitDepth;\n var encoderOption = format.floatingPoint ? \"f\" : opts.symmetric ? \"s\" : \"\";\n var methodName = \"pcm\" + bitDepth + encoderOption;\n\n if (!writer[methodName]) {\n return new TypeError(\"Not supported bit depth: \" + bitDepth);\n }\n\n var write = writer[methodName].bind(writer);\n var numberOfChannels = format.numberOfChannels;\n var channelData = audioData.channelData;\n\n writer.string(\"data\");\n writer.uint32(length);\n\n for (var i = 0, imax = audioData.length; i < imax; i++) {\n for (var ch = 0; ch < numberOfChannels; ch++) {\n write(channelData[ch][i]);\n }\n }\n}\n\nfunction createWriter(dataView) {\n var pos = 0;\n\n return {\n int16: function(value) {\n dataView.setInt16(pos, value, true);\n pos += 2;\n },\n uint16: function(value) {\n dataView.setUint16(pos, value, true);\n pos += 2;\n },\n uint32: function(value) {\n dataView.setUint32(pos, value, true);\n pos += 4;\n },\n string: function(value) {\n for (var i = 0, imax = value.length; i < imax; i++) {\n dataView.setUint8(pos++, value.charCodeAt(i));\n }\n },\n pcm8: function(value) {\n value = Math.max(-1, Math.min(value, +1));\n value = (value * 0.5 + 0.5) * 255;\n value = Math.round(value)|0;\n dataView.setUint8(pos, value, true);\n pos += 1;\n },\n pcm8s: function(value) {\n value = Math.round(value * 128) + 128;\n value = Math.max(0, Math.min(value, 255));\n dataView.setUint8(pos, value, true);\n pos += 1;\n },\n pcm16: function(value) {\n value = Math.max(-1, Math.min(value, +1));\n value = value < 0 ? value * 32768 : value * 32767;\n value = Math.round(value)|0;\n dataView.setInt16(pos, value, true);\n pos += 2;\n },\n pcm16s: function(value) {\n value = Math.round(value * 32768);\n value = Math.max(-32768, Math.min(value, 32767));\n dataView.setInt16(pos, value, true);\n pos += 2;\n },\n pcm24: function(value) {\n value = Math.max(-1, Math.min(value, +1));\n value = value < 0 ? 0x1000000 + value * 8388608 : value * 8388607;\n value = Math.round(value)|0;\n\n var x0 = (value >> 0) & 0xFF;\n var x1 = (value >> 8) & 0xFF;\n var x2 = (value >> 16) & 0xFF;\n\n dataView.setUint8(pos + 0, x0);\n dataView.setUint8(pos + 1, x1);\n dataView.setUint8(pos + 2, x2);\n pos += 3;\n },\n pcm24s: function(value) {\n value = Math.round(value * 8388608);\n value = Math.max(-8388608, Math.min(value, 8388607));\n\n var x0 = (value >> 0) & 0xFF;\n var x1 = (value >> 8) & 0xFF;\n var x2 = (value >> 16) & 0xFF;\n\n dataView.setUint8(pos + 0, x0);\n dataView.setUint8(pos + 1, x1);\n dataView.setUint8(pos + 2, x2);\n pos += 3;\n },\n pcm32: function(value) {\n value = Math.max(-1, Math.min(value, +1));\n value = value < 0 ? value * 2147483648 : value * 2147483647;\n value = Math.round(value)|0;\n dataView.setInt32(pos, value, true);\n pos += 4;\n },\n pcm32s: function(value) {\n value = Math.round(value * 2147483648);\n value = Math.max(-2147483648, Math.min(value, +2147483647));\n dataView.setInt32(pos, value, true);\n pos += 4;\n },\n pcm32f: function(value) {\n dataView.setFloat32(pos, value, true);\n pos += 4;\n }\n };\n}\n\nmodule.exports.encode = encode;\nmodule.exports.encode.sync = encodeSync;\n","module.exports = function() {\n\tthrow new Error(\"define cannot be used indirect\");\n};\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","module.exports = function() {\n return require(\"!!/home/afy/WebstormProjects/s3onegpio/scratch-gui/node_modules/worker-loader/dist/workers/InlineWorker.js\")(\"/******/ (function(modules) { // webpackBootstrap\\n/******/ \\t// The module cache\\n/******/ \\tvar installedModules = {};\\n/******/\\n/******/ \\t// The require function\\n/******/ \\tfunction __webpack_require__(moduleId) {\\n/******/\\n/******/ \\t\\t// Check if module is in cache\\n/******/ \\t\\tif(installedModules[moduleId]) {\\n/******/ \\t\\t\\treturn installedModules[moduleId].exports;\\n/******/ \\t\\t}\\n/******/ \\t\\t// Create a new module (and put it into the cache)\\n/******/ \\t\\tvar module = installedModules[moduleId] = {\\n/******/ \\t\\t\\ti: moduleId,\\n/******/ \\t\\t\\tl: false,\\n/******/ \\t\\t\\texports: {}\\n/******/ \\t\\t};\\n/******/\\n/******/ \\t\\t// Execute the module function\\n/******/ \\t\\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\\n/******/\\n/******/ \\t\\t// Flag the module as loaded\\n/******/ \\t\\tmodule.l = true;\\n/******/\\n/******/ \\t\\t// Return the exports of the module\\n/******/ \\t\\treturn module.exports;\\n/******/ \\t}\\n/******/\\n/******/\\n/******/ \\t// expose the modules object (__webpack_modules__)\\n/******/ \\t__webpack_require__.m = modules;\\n/******/\\n/******/ \\t// expose the module cache\\n/******/ \\t__webpack_require__.c = installedModules;\\n/******/\\n/******/ \\t// define getter function for harmony exports\\n/******/ \\t__webpack_require__.d = function(exports, name, getter) {\\n/******/ \\t\\tif(!__webpack_require__.o(exports, name)) {\\n/******/ \\t\\t\\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\\n/******/ \\t\\t}\\n/******/ \\t};\\n/******/\\n/******/ \\t// define __esModule on exports\\n/******/ \\t__webpack_require__.r = function(exports) {\\n/******/ \\t\\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\\n/******/ \\t\\t\\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\\n/******/ \\t\\t}\\n/******/ \\t\\tObject.defineProperty(exports, '__esModule', { value: true });\\n/******/ \\t};\\n/******/\\n/******/ \\t// create a fake namespace object\\n/******/ \\t// mode & 1: value is a module id, require it\\n/******/ \\t// mode & 2: merge all properties of value into the ns\\n/******/ \\t// mode & 4: return value when already ns object\\n/******/ \\t// mode & 8|1: behave like require\\n/******/ \\t__webpack_require__.t = function(value, mode) {\\n/******/ \\t\\tif(mode & 1) value = __webpack_require__(value);\\n/******/ \\t\\tif(mode & 8) return value;\\n/******/ \\t\\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\\n/******/ \\t\\tvar ns = Object.create(null);\\n/******/ \\t\\t__webpack_require__.r(ns);\\n/******/ \\t\\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\\n/******/ \\t\\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\\n/******/ \\t\\treturn ns;\\n/******/ \\t};\\n/******/\\n/******/ \\t// getDefaultExport function for compatibility with non-harmony modules\\n/******/ \\t__webpack_require__.n = function(module) {\\n/******/ \\t\\tvar getter = module && module.__esModule ?\\n/******/ \\t\\t\\tfunction getDefault() { return module['default']; } :\\n/******/ \\t\\t\\tfunction getModuleExports() { return module; };\\n/******/ \\t\\t__webpack_require__.d(getter, 'a', getter);\\n/******/ \\t\\treturn getter;\\n/******/ \\t};\\n/******/\\n/******/ \\t// Object.prototype.hasOwnProperty.call\\n/******/ \\t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\\n/******/\\n/******/ \\t// __webpack_public_path__\\n/******/ \\t__webpack_require__.p = \\\"\\\";\\n/******/\\n/******/\\n/******/ \\t// Load entry module and return exports\\n/******/ \\treturn __webpack_require__(__webpack_require__.s = \\\"./node_modules/babel-loader/lib/index.js?!./node_modules/scratch-storage/src/FetchWorkerTool.worker.js\\\");\\n/******/ })\\n/************************************************************************/\\n/******/ ({\\n\\n/***/ \\\"./node_modules/babel-loader/lib/index.js?!./node_modules/scratch-storage/src/FetchWorkerTool.worker.js\\\":\\n/*!************************************************************************************************************!*\\\\\\n !*** ./node_modules/babel-loader/lib??ref--4!./node_modules/scratch-storage/src/FetchWorkerTool.worker.js ***!\\n \\\\************************************************************************************************************/\\n/*! no static exports found */\\n/***/ (function(module, exports) {\\n\\n/* eslint-env worker */\\nvar jobsActive = 0;\\nvar complete = [];\\nvar intervalId = null;\\n/**\\n * Register a step function.\\n *\\n * Step checks if there are completed jobs and if there are sends them to the\\n * parent. Then it checks the jobs count. If there are no further jobs, clear\\n * the step.\\n */\\n\\nvar registerStep = function registerStep() {\\n intervalId = setInterval(function () {\\n if (complete.length) {\\n // Send our chunk of completed requests and instruct postMessage to\\n // transfer the buffers instead of copying them.\\n postMessage(complete.slice(), // Instruct postMessage that these buffers in the sent message\\n // should use their Transferable trait. After the postMessage\\n // call the \\\"buffers\\\" will still be in complete if you looked,\\n // but they will all be length 0 as the data they reference has\\n // been sent to the window. This lets us send a lot of data\\n // without the normal postMessage behaviour of making a copy of\\n // all of the data for the window.\\n complete.map(function (response) {\\n return response.buffer;\\n }).filter(Boolean));\\n complete.length = 0;\\n }\\n\\n if (jobsActive === 0) {\\n clearInterval(intervalId);\\n intervalId = null;\\n }\\n }, 1);\\n};\\n/**\\n * Receive a job from the parent and fetch the requested data.\\n * @param {object} options.job A job id, url, and options descriptor to perform.\\n */\\n\\n\\nvar onMessage = function onMessage(_ref) {\\n var job = _ref.data;\\n\\n if (jobsActive === 0 && !intervalId) {\\n registerStep();\\n }\\n\\n jobsActive++;\\n fetch(job.url, job.options).then(function (response) {\\n return response.arrayBuffer();\\n }).then(function (buffer) {\\n return complete.push({\\n id: job.id,\\n buffer: buffer\\n });\\n }).catch(function (error) {\\n return complete.push({\\n id: job.id,\\n error: error\\n });\\n }).then(function () {\\n return jobsActive--;\\n });\\n};\\n\\nif (self.fetch) {\\n postMessage({\\n support: {\\n fetch: true\\n }\\n });\\n self.addEventListener('message', onMessage);\\n} else {\\n postMessage({\\n support: {\\n fetch: false\\n }\\n });\\n self.addEventListener('message', function (_ref2) {\\n var job = _ref2.data;\\n postMessage([{\\n id: job.id,\\n error: new Error('fetch is unavailable')\\n }]);\\n });\\n}\\n\\n/***/ })\\n\\n/******/ });\\n//# sourceMappingURL=326c5f98902ccd335b5b.worker.js.map\", __webpack_public_path__ + \"326c5f98902ccd335b5b.worker.js\");\n};","'use strict';\n\n// http://stackoverflow.com/questions/10343913/how-to-create-a-web-worker-from-a-string\n\nvar URL = window.URL || window.webkitURL;\n\nmodule.exports = function (content, url) {\n try {\n try {\n var blob;\n\n try {\n // BlobBuilder = Deprecated, but widely implemented\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n\n blob = new BlobBuilder();\n\n blob.append(content);\n\n blob = blob.getBlob();\n } catch (e) {\n // The proposed API\n blob = new Blob([content]);\n }\n\n return new Worker(URL.createObjectURL(blob));\n } catch (e) {\n return new Worker('data:application/javascript,' + encodeURIComponent(content));\n }\n } catch (e) {\n if (!url) {\n throw Error('Inline worker is not supported');\n }\n\n return new Worker(url);\n }\n};","\"use strict\";\nvar window = require(\"global/window\")\nvar isFunction = require(\"is-function\")\nvar parseHeaders = require(\"parse-headers\")\nvar xtend = require(\"xtend\")\n\nmodule.exports = createXHR\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = createXHR;\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop\ncreateXHR.XDomainRequest = \"withCredentials\" in (new createXHR.XMLHttpRequest()) ? createXHR.XMLHttpRequest : window.XDomainRequest\n\nforEachArray([\"get\", \"put\", \"post\", \"patch\", \"head\", \"delete\"], function(method) {\n createXHR[method === \"delete\" ? \"del\" : method] = function(uri, options, callback) {\n options = initParams(uri, options, callback)\n options.method = method.toUpperCase()\n return _createXHR(options)\n }\n})\n\nfunction forEachArray(array, iterator) {\n for (var i = 0; i < array.length; i++) {\n iterator(array[i])\n }\n}\n\nfunction isEmpty(obj){\n for(var i in obj){\n if(obj.hasOwnProperty(i)) return false\n }\n return true\n}\n\nfunction initParams(uri, options, callback) {\n var params = uri\n\n if (isFunction(options)) {\n callback = options\n if (typeof uri === \"string\") {\n params = {uri:uri}\n }\n } else {\n params = xtend(options, {uri: uri})\n }\n\n params.callback = callback\n return params\n}\n\nfunction createXHR(uri, options, callback) {\n options = initParams(uri, options, callback)\n return _createXHR(options)\n}\n\nfunction _createXHR(options) {\n if(typeof options.callback === \"undefined\"){\n throw new Error(\"callback argument missing\")\n }\n\n var called = false\n var callback = function cbOnce(err, response, body){\n if(!called){\n called = true\n options.callback(err, response, body)\n }\n }\n\n function readystatechange() {\n if (xhr.readyState === 4) {\n setTimeout(loadFunc, 0)\n }\n }\n\n function getBody() {\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\n var body = undefined\n\n if (xhr.response) {\n body = xhr.response\n } else {\n body = xhr.responseText || getXml(xhr)\n }\n\n if (isJson) {\n try {\n body = JSON.parse(body)\n } catch (e) {}\n }\n\n return body\n }\n\n function errorFunc(evt) {\n clearTimeout(timeoutTimer)\n if(!(evt instanceof Error)){\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\") )\n }\n evt.statusCode = 0\n return callback(evt, failureResponse)\n }\n\n // will load the data & process the response in a special response object\n function loadFunc() {\n if (aborted) return\n var status\n clearTimeout(timeoutTimer)\n if(options.useXDR && xhr.status===undefined) {\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\n status = 200\n } else {\n status = (xhr.status === 1223 ? 204 : xhr.status)\n }\n var response = failureResponse\n var err = null\n\n if (status !== 0){\n response = {\n body: getBody(),\n statusCode: status,\n method: method,\n headers: {},\n url: uri,\n rawRequest: xhr\n }\n if(xhr.getAllResponseHeaders){ //remember xhr can in fact be XDR for CORS in IE\n response.headers = parseHeaders(xhr.getAllResponseHeaders())\n }\n } else {\n err = new Error(\"Internal XMLHttpRequest Error\")\n }\n return callback(err, response, response.body)\n }\n\n var xhr = options.xhr || null\n\n if (!xhr) {\n if (options.cors || options.useXDR) {\n xhr = new createXHR.XDomainRequest()\n }else{\n xhr = new createXHR.XMLHttpRequest()\n }\n }\n\n var key\n var aborted\n var uri = xhr.url = options.uri || options.url\n var method = xhr.method = options.method || \"GET\"\n var body = options.body || options.data\n var headers = xhr.headers = options.headers || {}\n var sync = !!options.sync\n var isJson = false\n var timeoutTimer\n var failureResponse = {\n body: undefined,\n headers: {},\n statusCode: 0,\n method: method,\n url: uri,\n rawRequest: xhr\n }\n\n if (\"json\" in options && options.json !== false) {\n isJson = true\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\") //Don't override existing accept header declared by user\n if (method !== \"GET\" && method !== \"HEAD\") {\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\") //Don't override existing accept header declared by user\n body = JSON.stringify(options.json === true ? body : options.json)\n }\n }\n\n xhr.onreadystatechange = readystatechange\n xhr.onload = loadFunc\n xhr.onerror = errorFunc\n // IE9 must have onprogress be set to a unique function.\n xhr.onprogress = function () {\n // IE must die\n }\n xhr.onabort = function(){\n aborted = true;\n }\n xhr.ontimeout = errorFunc\n xhr.open(method, uri, !sync, options.username, options.password)\n //has to be after open\n if(!sync) {\n xhr.withCredentials = !!options.withCredentials\n }\n // Cannot set timeout with sync request\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n if (!sync && options.timeout > 0 ) {\n timeoutTimer = setTimeout(function(){\n if (aborted) return\n aborted = true//IE9 may still call readystatechange\n xhr.abort(\"timeout\")\n var e = new Error(\"XMLHttpRequest timeout\")\n e.code = \"ETIMEDOUT\"\n errorFunc(e)\n }, options.timeout )\n }\n\n if (xhr.setRequestHeader) {\n for(key in headers){\n if(headers.hasOwnProperty(key)){\n xhr.setRequestHeader(key, headers[key])\n }\n }\n } else if (options.headers && !isEmpty(options.headers)) {\n throw new Error(\"Headers cannot be set on an XDomainRequest object\")\n }\n\n if (\"responseType\" in options) {\n xhr.responseType = options.responseType\n }\n\n if (\"beforeSend\" in options &&\n typeof options.beforeSend === \"function\"\n ) {\n options.beforeSend(xhr)\n }\n\n // Microsoft Edge browser sends \"undefined\" when send is called with undefined value.\n // XMLHttpRequest spec says to pass null as body to indicate no body\n // See https://github.com/naugtur/xhr/issues/100.\n xhr.send(body || null)\n\n return xhr\n\n\n}\n\nfunction getXml(xhr) {\n // xhr.responseXML will throw Exception \"InvalidStateError\" or \"DOMException\"\n // See https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseXML.\n try {\n if (xhr.responseType === \"document\") {\n return xhr.responseXML\n }\n var firefoxBugTakenEffect = xhr.responseXML && xhr.responseXML.documentElement.nodeName === \"parsererror\"\n if (xhr.responseType === \"\" && !firefoxBugTakenEffect) {\n return xhr.responseXML\n }\n } catch (e) {}\n\n return null\n}\n\nfunction noop() {}\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./action-menu.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./action-menu.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./action-menu.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport bindAll from 'lodash.bindall';\nimport ReactTooltip from 'react-tooltip';\n\nimport styles from './action-menu.css';\n\nconst CLOSE_DELAY = 300; // ms\n\nclass ActionMenu extends React.Component {\n constructor (props) {\n super(props);\n bindAll(this, [\n 'clickDelayer',\n 'handleClosePopover',\n 'handleToggleOpenState',\n 'handleTouchStart',\n 'handleTouchOutside',\n 'setButtonRef',\n 'setContainerRef'\n ]);\n this.state = {\n isOpen: false,\n forceHide: false\n };\n this.mainTooltipId = `tooltip-${Math.random()}`;\n }\n componentDidMount () {\n // Touch start on the main button is caught to trigger open and not click\n this.buttonRef.addEventListener('touchstart', this.handleTouchStart);\n // Touch start on document is used to trigger close if it is outside\n document.addEventListener('touchstart', this.handleTouchOutside);\n }\n shouldComponentUpdate (newProps, newState) {\n // This check prevents re-rendering while the project is updating.\n // @todo check only the state and the title because it is enough to know\n // if anything substantial has changed\n // This is needed because of the sloppy way the props are passed as a new object,\n // which should be refactored.\n return newState.isOpen !== this.state.isOpen ||\n newState.forceHide !== this.state.forceHide ||\n newProps.title !== this.props.title;\n }\n componentWillUnmount () {\n this.buttonRef.removeEventListener('touchstart', this.handleTouchStart);\n document.removeEventListener('touchstart', this.handleTouchOutside);\n }\n handleClosePopover () {\n this.closeTimeoutId = setTimeout(() => {\n this.setState({isOpen: false});\n this.closeTimeoutId = null;\n }, CLOSE_DELAY);\n }\n handleToggleOpenState () {\n // Mouse enter back in after timeout was started prevents it from closing.\n if (this.closeTimeoutId) {\n clearTimeout(this.closeTimeoutId);\n this.closeTimeoutId = null;\n } else if (!this.state.isOpen) {\n this.setState({\n isOpen: true,\n forceHide: false\n });\n }\n }\n handleTouchOutside (e) {\n if (this.state.isOpen && !this.containerRef.contains(e.target)) {\n this.setState({isOpen: false});\n ReactTooltip.hide();\n }\n }\n clickDelayer (fn) {\n // Return a wrapped action that manages the menu closing.\n // @todo we may be able to use react-transition for this in the future\n // for now all this work is to ensure the menu closes BEFORE the\n // (possibly slow) action is started.\n return event => {\n ReactTooltip.hide();\n if (fn) fn(event);\n // Blur the button so it does not keep focus after being clicked\n // This prevents keyboard events from triggering the button\n this.buttonRef.blur();\n this.setState({forceHide: true, isOpen: false}, () => {\n setTimeout(() => this.setState({forceHide: false}));\n });\n };\n }\n handleTouchStart (e) {\n // Prevent this touch from becoming a click if menu is closed\n if (!this.state.isOpen) {\n e.preventDefault();\n this.handleToggleOpenState();\n }\n }\n setButtonRef (ref) {\n this.buttonRef = ref;\n }\n setContainerRef (ref) {\n this.containerRef = ref;\n }\n render () {\n const {\n className,\n img: mainImg,\n title: mainTitle,\n moreButtons,\n tooltipPlace,\n onClick\n } = this.props;\n\n return (\n \n \n \n \n \n
\n
\n {(moreButtons || []).map(({img, title, onClick: handleClick,\n fileAccept, fileChange, fileInput, fileMultiple}, keyId) => {\n const isComingSoon = !handleClick;\n const hasFileInput = fileInput;\n const tooltipId = `${this.mainTooltipId}-${title}`;\n return (\n
\n \n \n {hasFileInput ? (\n ) : null}\n \n \n
\n );\n })}\n
\n
\n \n );\n }\n}\n\nActionMenu.propTypes = {\n className: PropTypes.string,\n img: PropTypes.string,\n moreButtons: PropTypes.arrayOf(PropTypes.shape({\n img: PropTypes.string,\n title: PropTypes.node.isRequired,\n onClick: PropTypes.func, // Optional, \"coming soon\" if no callback provided\n fileAccept: PropTypes.string, // Optional, only for file upload\n fileChange: PropTypes.func, // Optional, only for file upload\n fileInput: PropTypes.func, // Optional, only for file upload\n fileMultiple: PropTypes.bool // Optional, only for file upload\n })),\n onClick: PropTypes.func.isRequired,\n title: PropTypes.node.isRequired,\n tooltipPlace: PropTypes.string\n};\n\nexport default ActionMenu;\n","module.exports = __webpack_public_path__ + \"static/assets/385aa4b73a425883b4f9e91501a52299.svg\";","module.exports = __webpack_public_path__ + \"static/assets/c3421543ab6c9e154f4294257ce0d078.svg\";","module.exports = __webpack_public_path__ + \"static/assets/e587d9d7e9a2f1f28041ba5c15db7a40.svg\";","module.exports = __webpack_public_path__ + \"static/assets/94b06fb716871f81bec601724e29a457.svg\";","module.exports = __webpack_public_path__ + \"static/assets/551aae506dfa65ce3b45713b5300a678.svg\";","module.exports = __webpack_public_path__ + \"static/assets/497f797eeffe5fa7e6a626abc0db08a1.svg\";","module.exports = __webpack_public_path__ + \"static/assets/301439e2e5ab88b658368ee525e6752b.svg\";","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./alert.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./alert.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./alert.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport {FormattedMessage} from 'react-intl';\n\nimport Box from '../box/box.jsx';\nimport CloseButton from '../close-button/close-button.jsx';\nimport Spinner from '../spinner/spinner.jsx';\nimport {AlertLevels} from '../../lib/alerts/index.jsx';\n\nimport styles from './alert.css';\n\nconst closeButtonColors = {\n [AlertLevels.SUCCESS]: CloseButton.COLOR_GREEN,\n [AlertLevels.WARN]: CloseButton.COLOR_ORANGE\n};\n\nconst AlertComponent = ({\n content,\n closeButton,\n extensionName,\n iconSpinner,\n iconURL,\n level,\n showDownload,\n showSaveNow,\n onCloseAlert,\n onDownload,\n onSaveNow,\n onReconnect,\n showReconnect\n}) => (\n \n {/* TODO: implement Rtl handling */}\n {(iconSpinner || iconURL) && (\n
\n {iconSpinner && (\n \n )}\n {iconURL && (\n \n )}\n
\n )}\n
\n {extensionName ? (\n \n ) : content}\n
\n
\n {showSaveNow && (\n \n \n \n )}\n {showDownload && (\n \n \n \n )}\n {showReconnect && (\n \n \n \n )}\n {closeButton && (\n \n \n \n )}\n
\n \n);\n\nAlertComponent.propTypes = {\n closeButton: PropTypes.bool,\n content: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n extensionName: PropTypes.string,\n iconSpinner: PropTypes.bool,\n iconURL: PropTypes.string,\n level: PropTypes.string,\n onCloseAlert: PropTypes.func.isRequired,\n onDownload: PropTypes.func,\n onReconnect: PropTypes.func,\n onSaveNow: PropTypes.func,\n showDownload: PropTypes.func,\n showReconnect: PropTypes.bool,\n showSaveNow: PropTypes.bool\n};\n\nAlertComponent.defaultProps = {\n level: AlertLevels.WARN\n};\n\nexport default AlertComponent;\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./alerts.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./alerts.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./alerts.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Box from '../box/box.jsx';\nimport Alert from '../../containers/alert.jsx';\n\nimport styles from './alerts.css';\n\nconst AlertsComponent = ({\n alertsList,\n className,\n onCloseAlert\n}) => (\n \n \n {alertsList.map((a, index) => (\n \n ))}\n \n \n);\n\nAlertsComponent.propTypes = {\n alertsList: PropTypes.arrayOf(PropTypes.object),\n className: PropTypes.string,\n onCloseAlert: PropTypes.func\n};\n\nexport default AlertsComponent;\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./inline-message.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./inline-message.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./inline-message.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport Spinner from '../spinner/spinner.jsx';\nimport {AlertLevels} from '../../lib/alerts/index.jsx';\n\nimport styles from './inline-message.css';\n\nconst InlineMessageComponent = ({\n content,\n iconSpinner,\n level\n}) => (\n \n {/* TODO: implement Rtl handling */}\n {iconSpinner && (\n \n )}\n {content}\n \n);\n\nInlineMessageComponent.propTypes = {\n content: PropTypes.element,\n iconSpinner: PropTypes.bool,\n level: PropTypes.string\n};\n\nInlineMessageComponent.defaultProps = {\n level: AlertLevels.INFO\n};\n\nexport default InlineMessageComponent;\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./asset-panel.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./asset-panel.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./asset-panel.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import React from 'react';\n\nimport Box from '../box/box.jsx';\nimport Selector from './selector.jsx';\nimport styles from './asset-panel.css';\n\nconst AssetPanel = props => (\n \n \n \n {props.children}\n \n \n);\n\nAssetPanel.propTypes = {\n ...Selector.propTypes\n};\n\nexport default AssetPanel;\n","module.exports = __webpack_public_path__ + \"static/assets/44e4859e354c81d66c73f741df2e5ec7.svg\";","module.exports = __webpack_public_path__ + \"static/assets/c9528ee4be1a12380a6c9caf73bd99e9.svg\";","module.exports = __webpack_public_path__ + \"static/assets/9cfdd378e4cc977fe663ca932e530ec6.svg\";","module.exports = __webpack_public_path__ + \"static/assets/35c6867250ec4f430624bc9e2e7072d7.svg\";","module.exports = __webpack_public_path__ + \"static/assets/38ac2210b486d930f72c951ad081e4c0.svg\";","module.exports = __webpack_public_path__ + \"static/assets/63e5827c1506216bd7c9927a4e5eb558.svg\";","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./selector.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./selector.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./selector.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport SpriteSelectorItem from '../../containers/sprite-selector-item.jsx';\nimport Box from '../box/box.jsx';\nimport ActionMenu from '../action-menu/action-menu.jsx';\nimport SortableAsset from './sortable-asset.jsx';\nimport SortableHOC from '../../lib/sortable-hoc.jsx';\nimport DragConstants from '../../lib/drag-constants';\n\nimport styles from './selector.css';\n\nconst Selector = props => {\n const {\n buttons,\n containerRef,\n dragType,\n isRtl,\n items,\n selectedItemIndex,\n draggingIndex,\n draggingType,\n ordering,\n onAddSortable,\n onRemoveSortable,\n onDeleteClick,\n onDuplicateClick,\n onExportClick,\n onItemClick\n } = props;\n\n const isRelevantDrag = draggingType === dragType;\n\n let newButtonSection = null;\n\n if (buttons.length > 0) {\n const {img, title, onClick} = buttons[0];\n const moreButtons = buttons.slice(1);\n newButtonSection = (\n \n \n \n );\n }\n\n return (\n \n \n {items.map((item, index) => (\n \n \n \n ))}\n \n {newButtonSection}\n \n );\n};\n\nSelector.propTypes = {\n buttons: PropTypes.arrayOf(PropTypes.shape({\n title: PropTypes.string.isRequired,\n img: PropTypes.string.isRequired,\n onClick: PropTypes.func\n })),\n containerRef: PropTypes.func,\n dragType: PropTypes.oneOf(Object.keys(DragConstants)),\n draggingIndex: PropTypes.number,\n draggingType: PropTypes.oneOf(Object.keys(DragConstants)),\n isRtl: PropTypes.bool,\n items: PropTypes.arrayOf(PropTypes.shape({\n url: PropTypes.string,\n name: PropTypes.string.isRequired\n })),\n onAddSortable: PropTypes.func,\n onDeleteClick: PropTypes.func,\n onDuplicateClick: PropTypes.func,\n onExportClick: PropTypes.func,\n onItemClick: PropTypes.func.isRequired,\n onRemoveSortable: PropTypes.func,\n ordering: PropTypes.arrayOf(PropTypes.number),\n selectedItemIndex: PropTypes.number.isRequired\n};\n\nexport default SortableHOC(Selector);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport bindAll from 'lodash.bindall';\n\nclass SortableAsset extends React.Component {\n constructor (props) {\n super(props);\n bindAll(this, [\n 'setRef'\n ]);\n }\n componentDidMount () {\n this.props.onAddSortable(this.ref);\n }\n componentWillUnmount () {\n this.props.onRemoveSortable(this.ref);\n }\n setRef (ref) {\n this.ref = ref;\n }\n render () {\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nSortableAsset.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n index: PropTypes.number.isRequired,\n onAddSortable: PropTypes.func.isRequired,\n onRemoveSortable: PropTypes.func.isRequired\n};\n\nexport default SortableAsset;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport Box from '../box/box.jsx';\nimport styles from './audio-trimmer.css';\nimport SelectionHandle from './selection-handle.jsx';\nimport Playhead from './playhead.jsx';\n\nconst AudioSelector = props => (\n \n {props.trimStart === null ? null : (\n \n \n \n \n \n )}\n {props.playhead ? (\n \n ) : null}\n \n);\n\nAudioSelector.propTypes = {\n containerRef: PropTypes.func,\n onNewSelectionMouseDown: PropTypes.func.isRequired,\n onTrimEndMouseDown: PropTypes.func.isRequired,\n onTrimStartMouseDown: PropTypes.func.isRequired,\n playhead: PropTypes.number,\n trimEnd: PropTypes.number,\n trimStart: PropTypes.number\n};\n\nexport default AudioSelector;\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./audio-trimmer.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./audio-trimmer.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./audio-trimmer.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport Box from '../box/box.jsx';\nimport styles from './audio-trimmer.css';\nimport SelectionHandle from './selection-handle.jsx';\nimport Playhead from './playhead.jsx';\n\nconst AudioTrimmer = props => (\n \n {props.trimStart === null ? null : (\n \n \n \n \n )}\n {props.playhead ? (\n \n ) : null}\n {props.trimEnd === null ? null : (\n \n \n \n \n )}\n \n);\n\nAudioTrimmer.propTypes = {\n containerRef: PropTypes.func,\n onTrimEndMouseDown: PropTypes.func.isRequired,\n onTrimStartMouseDown: PropTypes.func.isRequired,\n playhead: PropTypes.number,\n trimEnd: PropTypes.number,\n trimStart: PropTypes.number\n};\n\nexport default AudioTrimmer;\n","module.exports = __webpack_public_path__ + \"static/assets/610fb87d66b6749aeb96d475ceb62940.svg\";","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport styles from './audio-trimmer.css';\n\nconst Playhead = props => (\n
\n \n
\n);\n\nPlayhead.propTypes = {\n playbackPosition: PropTypes.number\n};\n\nexport default Playhead;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport Box from '../box/box.jsx';\nimport styles from './audio-trimmer.css';\nimport handleIcon from './icon--handle.svg';\n\nconst SelectionHandle = props => (\n \n \n \n \n \n \n \n \n);\n\nSelectionHandle.propTypes = {\n handleStyle: PropTypes.string,\n onMouseDown: PropTypes.func\n};\n\nexport default SelectionHandle;\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./backpack.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./backpack.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./backpack.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport {FormattedMessage} from 'react-intl';\nimport DragConstants from '../../lib/drag-constants';\nimport {ComingSoonTooltip} from '../coming-soon/coming-soon.jsx';\nimport SpriteSelectorItem from '../../containers/sprite-selector-item.jsx';\nimport styles from './backpack.css';\n\n// TODO make sprite selector item not require onClick\nconst noop = () => {};\n\nconst dragTypeMap = { // Keys correspond with the backpack-server item types\n costume: DragConstants.BACKPACK_COSTUME,\n sound: DragConstants.BACKPACK_SOUND,\n script: DragConstants.BACKPACK_CODE,\n sprite: DragConstants.BACKPACK_SPRITE\n};\n\nconst Backpack = ({\n blockDragOver,\n containerRef,\n contents,\n dragOver,\n error,\n expanded,\n loading,\n showMore,\n onToggle,\n onDelete,\n onMouseEnter,\n onMouseLeave,\n onMore\n}) => (\n
\n \n {onToggle ? (\n \n ) : (\n \n \n \n )}\n
\n {expanded ? (\n \n {error ? (\n
\n \n
\n ) : (\n loading ? (\n
\n \n
\n ) : (\n contents.length > 0 ? (\n
\n {contents.map(item => (\n \n ))}\n {showMore && (\n \n \n \n )}\n
\n ) : (\n
\n \n
\n )\n )\n )}\n \n ) : null}\n \n);\n\nBackpack.propTypes = {\n blockDragOver: PropTypes.bool,\n containerRef: PropTypes.func,\n contents: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string,\n thumbnailUrl: PropTypes.string,\n type: PropTypes.string,\n name: PropTypes.string\n })),\n dragOver: PropTypes.bool,\n error: PropTypes.bool,\n expanded: PropTypes.bool,\n loading: PropTypes.bool,\n onDelete: PropTypes.func,\n onMore: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onToggle: PropTypes.func,\n showMore: PropTypes.bool\n};\n\nBackpack.defaultProps = {\n blockDragOver: false,\n contents: [],\n dragOver: false,\n expanded: false,\n loading: false,\n showMore: false,\n onMore: null,\n onToggle: null\n};\n\nexport default Backpack;\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./blocks.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./blocks.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./blocks.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport React from 'react';\nimport Box from '../box/box.jsx';\nimport styles from './blocks.css';\n\nconst BlocksComponent = props => {\n const {\n containerRef,\n dragOver,\n ...componentProps\n } = props;\n return (\n \n );\n};\nBlocksComponent.propTypes = {\n containerRef: PropTypes.func,\n dragOver: PropTypes.bool\n};\nexport default BlocksComponent;\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./box.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./box.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./box.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport stylePropType from 'react-style-proptype';\nimport styles from './box.css';\n\nconst getRandomColor = (function () {\n // In \"DEBUG\" mode this is used to output a random background color for each\n // box. The function gives the same \"random\" set for each seed, allowing re-\n // renders of the same content to give the same random display.\n const random = (function (seed) {\n let mW = seed;\n let mZ = 987654321;\n const mask = 0xffffffff;\n return function () {\n mZ = ((36969 * (mZ & 65535)) + (mZ >> 16)) & mask;\n mW = ((18000 * (mW & 65535)) + (mW >> 16)) & mask;\n let result = ((mZ << 16) + mW) & mask;\n result /= 4294967296;\n return result + 1;\n };\n }(601));\n return function () {\n const r = Math.max(parseInt(random() * 100, 10) % 256, 1);\n const g = Math.max(parseInt(random() * 100, 10) % 256, 1);\n const b = Math.max(parseInt(random() * 100, 10) % 256, 1);\n return `rgb(${r},${g},${b})`;\n };\n}());\n\nconst Box = props => {\n const {\n alignContent,\n alignItems,\n alignSelf,\n basis,\n children,\n className,\n componentRef,\n direction,\n element,\n grow,\n height,\n justifyContent,\n width,\n wrap,\n shrink,\n style,\n ...componentProps\n } = props;\n return React.createElement(element, {\n className: classNames(className, styles.box),\n ref: componentRef,\n style: Object.assign(\n {\n alignContent: alignContent,\n alignItems: alignItems,\n alignSelf: alignSelf,\n flexBasis: basis,\n flexDirection: direction,\n flexGrow: grow,\n flexShrink: shrink,\n flexWrap: wrap,\n justifyContent: justifyContent,\n width: width,\n height: height\n },\n process.env.DEBUG ? {\n backgroundColor: getRandomColor(),\n outline: `1px solid black`\n } : {},\n style\n ),\n ...componentProps\n }, children);\n};\nBox.propTypes = {\n /** Defines how the browser distributes space between and around content items vertically within this box. */\n alignContent: PropTypes.oneOf([\n 'flex-start', 'flex-end', 'center', 'space-between', 'space-around', 'stretch'\n ]),\n /** Defines how the browser distributes space between and around flex items horizontally within this box. */\n alignItems: PropTypes.oneOf([\n 'flex-start', 'flex-end', 'center', 'baseline', 'stretch'\n ]),\n /** Specifies how this box should be aligned inside of its container (requires the container to be flexable). */\n alignSelf: PropTypes.oneOf([\n 'auto', 'flex-start', 'flex-end', 'center', 'baseline', 'stretch'\n ]),\n /** Specifies the initial length of this box */\n basis: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.oneOf(['auto'])\n ]),\n /** Specifies the the HTML nodes which will be child elements of this box. */\n children: PropTypes.node,\n /** Specifies the class name that will be set on this box */\n className: PropTypes.string,\n /**\n * A callback function whose first parameter is the underlying dom elements.\n * This call back will be executed immediately after the component is mounted or unmounted\n */\n componentRef: PropTypes.func,\n /** https://developer.mozilla.org/en-US/docs/Web/CSS/flex-direction */\n direction: PropTypes.oneOf([\n 'row', 'row-reverse', 'column', 'column-reverse'\n ]),\n /** Specifies the type of HTML element of this box. Defaults to div. */\n element: PropTypes.string,\n /** Specifies the flex grow factor of a flex item. */\n grow: PropTypes.number,\n /** The height in pixels (if specified as a number) or a string if different units are required. */\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n /** https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content */\n justifyContent: PropTypes.oneOf([\n 'flex-start', 'flex-end', 'center', 'space-between', 'space-around'\n ]),\n /** Specifies the flex shrink factor of a flex item. */\n shrink: PropTypes.number,\n /** An object whose keys are css property names and whose values correspond the the css property. */\n style: stylePropType,\n /** The width in pixels (if specified as a number) or a string if different units are required. */\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n /** How whitespace should wrap within this block. */\n wrap: PropTypes.oneOf([\n 'nowrap', 'wrap', 'wrap-reverse'\n ])\n};\nBox.defaultProps = {\n element: 'div',\n style: {}\n};\nexport default Box;\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./browser-modal.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./browser-modal.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./browser-modal.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactModal from 'react-modal';\nimport Box from '../box/box.jsx';\nimport {defineMessages, injectIntl, intlShape, FormattedMessage} from 'react-intl';\n\nimport styles from './browser-modal.css';\nimport unhappyBrowser from './unsupported-browser.svg';\n\nconst messages = defineMessages({\n label: {\n id: 'gui.unsupportedBrowser.label',\n defaultMessage: 'Browser is not supported',\n description: ''\n },\n error: {\n id: 'gui.unsupportedBrowser.errorLabel',\n defaultMessage: 'An Error Occurred',\n description: 'Heading shown when there is an unhandled exception in an unsupported browser'\n }\n});\n\nconst BrowserModal = ({intl, ...props}) => {\n const label = props.error ? messages.error : messages.label;\n return (\n \n
\n \n \n \n\n \n

\n \n

\n

\n { /* eslint-disable max-len */ }\n {\n props.error ? : \n }\n { /* eslint-enable max-len */ }\n

\n\n \n \n \n \n\n \n
\n \n \n \n )\n }}\n />\n
\n
\n
\n \n );\n};\n\nBrowserModal.propTypes = {\n error: PropTypes.bool,\n intl: intlShape.isRequired,\n isRtl: PropTypes.bool,\n onBack: PropTypes.func.isRequired\n};\n\nBrowserModal.defaultProps = {\n error: false\n};\n\nconst WrappedBrowserModal = injectIntl(BrowserModal);\n\nWrappedBrowserModal.setAppElement = ReactModal.setAppElement;\n\nexport default WrappedBrowserModal;\n","module.exports = __webpack_public_path__ + \"static/assets/89a5687599f173f2b910aa5fcd862b42.svg\";","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./button.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./button.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./button.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport styles from './button.css';\n\nconst ButtonComponent = ({\n className,\n disabled,\n iconClassName,\n iconSrc,\n onClick,\n children,\n ...props\n}) => {\n\n if (disabled) {\n onClick = function () {};\n }\n\n const icon = iconSrc && (\n \n );\n\n return (\n \n {icon}\n
{children}
\n \n );\n};\n\nButtonComponent.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n iconClassName: PropTypes.string,\n iconSrc: PropTypes.string,\n onClick: PropTypes.func\n};\n\nexport default ButtonComponent;\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./camera-modal.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./camera-modal.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./camera-modal.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PropTypes from 'prop-types';\nimport React from 'react';\nimport {defineMessages, injectIntl, intlShape} from 'react-intl';\nimport Box from '../box/box.jsx';\nimport Modal from '../../containers/modal.jsx';\nimport styles from './camera-modal.css';\nimport backIcon from './icon--back.svg';\nimport cameraIcon from '../action-menu/icon--camera.svg';\n\nconst messages = defineMessages({\n cameraModalTitle: {\n defaultMessage: 'Take a Photo',\n description: 'Title for prompt to take a picture (to add as a new costume).',\n id: 'gui.cameraModal.cameraModalTitle'\n },\n loadingCameraMessage: {\n defaultMessage: 'Loading Camera...',\n description: 'Notification to the user that the camera is loading',\n id: 'gui.cameraModal.loadingCameraMessage'\n },\n permissionRequest: {\n defaultMessage: 'We need your permission to use your camera',\n description: 'Notification to the user that the app needs camera access',\n id: 'gui.cameraModal.permissionRequest'\n },\n retakePhoto: {\n defaultMessage: 'Retake Photo',\n description: 'A button that allows the user to take the picture again, replacing the old one',\n id: 'gui.cameraModal.retakePhoto'\n },\n save: {\n defaultMessage: 'Save',\n description: 'A button that allows the user to save the photo they took as a costume',\n id: 'gui.cameraModal.save'\n },\n takePhotoButton: {\n defaultMessage: 'Take Photo',\n description: 'A button to take a photo',\n id: 'gui.cameraModal.takePhoto'\n },\n loadingCaption: {\n defaultMessage: 'Loading...',\n description: 'A caption for a disabled button while the video from the camera is still loading',\n id: 'gui.cameraModal.loadingCaption'\n },\n enableCameraCaption: {\n defaultMessage: 'Enable Camera',\n description: 'A caption for a disabled button prompting the user to enable camera access',\n id: 'gui.cameraModal.enableCameraCaption'\n }\n});\n\nconst CameraModal = ({intl, ...props}) => (\n \n \n \n
\n {props.access ? intl.formatMessage(messages.loadingCameraMessage) :\n `↖️ \\u00A0${intl.formatMessage(messages.permissionRequest)}`}\n
\n \n {props.capture ? (\n
\n ) : null}\n \n {props.capture ?\n \n \n {intl.formatMessage(messages.retakePhoto)}\n \n {intl.formatMessage(messages.save)}\n \n :\n \n \n \n \n
\n {props.access ?\n \n {props.loaded ?\n intl.formatMessage(messages.takePhotoButton) :\n intl.formatMessage(messages.loadingCaption)}\n :\n \n {intl.formatMessage(messages.enableCameraCaption)}\n \n }\n
\n\n
\n }\n \n \n);\n\nCameraModal.propTypes = {\n access: PropTypes.bool,\n canvasRef: PropTypes.func.isRequired,\n capture: PropTypes.string,\n intl: intlShape.isRequired,\n loaded: PropTypes.bool,\n onBack: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n onCapture: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired\n};\n\nexport default injectIntl(CameraModal);\n","module.exports = __webpack_public_path__ + \"static/assets/21988681fa28c8ce37982ca26463a6f5.svg\";","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./card.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./card.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./card.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PropTypes from 'prop-types';\nimport React, {Fragment} from 'react';\nimport classNames from 'classnames';\nimport {FormattedMessage} from 'react-intl';\nimport Draggable from 'react-draggable';\n\nimport styles from './card.css';\n\nimport shrinkIcon from './icon--shrink.svg';\nimport expandIcon from './icon--expand.svg';\n\nimport rightArrow from './icon--next.svg';\nimport leftArrow from './icon--prev.svg';\n\nimport helpIcon from '../../lib/assets/icon--tutorials.svg';\nimport closeIcon from './icon--close.svg';\n\nimport {translateVideo} from '../../lib/libraries/decks/translate-video.js';\nimport {translateImage} from '../../lib/libraries/decks/translate-image.js';\n\nconst CardHeader = ({onCloseCards, onShrinkExpandCards, onShowAll, totalSteps, step, expanded}) => (\n
\n \n \n \n
\n {totalSteps > 1 ? (\n
\n {Array(totalSteps).fill(0)\n .map((_, i) => (\n \n ))}\n
\n ) : null}\n
\n \n \n {expanded ?\n :\n \n }\n
\n \n \n \n
\n \n \n);\n\nclass VideoStep extends React.Component {\n\n componentDidMount () {\n const script = document.createElement('script');\n script.src = `https://fast.wistia.com/embed/medias/${this.props.video}.jsonp`;\n script.async = true;\n script.setAttribute('id', 'wistia-video-content');\n document.body.appendChild(script);\n\n const script2 = document.createElement('script');\n script2.src = 'https://fast.wistia.com/assets/external/E-v1.js';\n script2.async = true;\n script2.setAttribute('id', 'wistia-video-api');\n document.body.appendChild(script2);\n }\n\n // We use the Wistia API here to update or pause the video dynamically:\n // https://wistia.com/support/developers/player-api\n componentDidUpdate (prevProps) {\n // Ensure the wistia API is loaded and available\n if (!(window.Wistia && window.Wistia.api)) return;\n\n // Get a handle on the currently loaded video\n const video = window.Wistia.api(prevProps.video);\n\n // Reset the video source if a new video has been chosen from the library\n if (prevProps.video !== this.props.video) {\n video.replaceWith(this.props.video);\n }\n\n // Pause the video if the modal is being shrunken\n if (!this.props.expanded) {\n video.pause();\n }\n }\n\n componentWillUnmount () {\n const script = document.getElementById('wistia-video-content');\n script.parentNode.removeChild(script);\n\n const script2 = document.getElementById('wistia-video-api');\n script2.parentNode.removeChild(script2);\n }\n\n render () {\n return (\n
\n \n  \n
\n \n );\n }\n}\n\nVideoStep.propTypes = {\n expanded: PropTypes.bool.isRequired,\n video: PropTypes.string.isRequired\n};\n\nconst ImageStep = ({title, image}) => (\n \n
\n {title}\n
\n
\n \n
\n
\n);\n\nImageStep.propTypes = {\n image: PropTypes.string.isRequired,\n title: PropTypes.node.isRequired\n};\n\nconst NextPrevButtons = ({isRtl, onNextStep, onPrevStep, expanded}) => (\n \n {onNextStep ? (\n
\n
\n \n \n
\n
\n ) : null}\n {onPrevStep ? (\n
\n
\n \n \n
\n
\n ) : null}\n
\n);\n\nNextPrevButtons.propTypes = {\n expanded: PropTypes.bool.isRequired,\n isRtl: PropTypes.bool,\n onNextStep: PropTypes.func,\n onPrevStep: PropTypes.func\n};\nCardHeader.propTypes = {\n expanded: PropTypes.bool.isRequired,\n onCloseCards: PropTypes.func.isRequired,\n onShowAll: PropTypes.func.isRequired,\n onShrinkExpandCards: PropTypes.func.isRequired,\n step: PropTypes.number,\n totalSteps: PropTypes.number\n};\n\nconst PreviewsStep = ({deckIds, content, onActivateDeckFactory, onShowAll}) => (\n \n
\n \n
\n
\n {deckIds.slice(0, 2).map(id => (\n \n \n
{content[id].name}
\n
\n ))}\n \n
\n \n \n
\n \n
\n);\n\nPreviewsStep.propTypes = {\n content: PropTypes.shape({\n id: PropTypes.shape({\n name: PropTypes.node.isRequired,\n img: PropTypes.string.isRequired,\n steps: PropTypes.arrayOf(PropTypes.shape({\n title: PropTypes.node,\n image: PropTypes.string,\n video: PropTypes.string,\n deckIds: PropTypes.arrayOf(PropTypes.string)\n }))\n })\n }).isRequired,\n deckIds: PropTypes.arrayOf(PropTypes.string).isRequired,\n onActivateDeckFactory: PropTypes.func.isRequired,\n onShowAll: PropTypes.func.isRequired\n};\n\nconst Cards = props => {\n const {\n activeDeckId,\n content,\n dragging,\n isRtl,\n locale,\n onActivateDeckFactory,\n onCloseCards,\n onShrinkExpandCards,\n onDrag,\n onStartDrag,\n onEndDrag,\n onShowAll,\n onNextStep,\n onPrevStep,\n showVideos,\n step,\n expanded,\n ...posProps\n } = props;\n let {x, y} = posProps;\n\n if (activeDeckId === null) return;\n\n // Tutorial cards need to calculate their own dragging bounds\n // to allow for dragging the cards off the left, right and bottom\n // edges of the workspace.\n const cardHorizontalDragOffset = 400; // ~80% of card width\n const cardVerticalDragOffset = expanded ? 257 : 0; // ~80% of card height, if expanded\n const menuBarHeight = 48; // TODO: get pre-calculated from elsewhere?\n const wideCardWidth = 500;\n\n if (x === 0 && y === 0) {\n // initialize positions\n x = isRtl ? (-190 - wideCardWidth - cardHorizontalDragOffset) : 292;\n x += cardHorizontalDragOffset;\n // The tallest cards are about 320px high, and the default position is pinned\n // to near the bottom of the blocks palette to allow room to work above.\n const tallCardHeight = 320;\n const bottomMargin = 60; // To avoid overlapping the backpack region\n y = window.innerHeight - tallCardHeight - bottomMargin - menuBarHeight;\n }\n\n const steps = content[activeDeckId].steps;\n\n return (\n // Custom overlay to act as the bounding parent for the draggable, using values from above\n \n \n
\n
\n \n
\n {steps[step].deckIds ? (\n \n ) : (\n steps[step].video ? (\n showVideos ? (\n \n ) : ( // Else show the deck image and title\n \n )\n ) : (\n \n )\n )}\n {steps[step].trackingPixel && steps[step].trackingPixel}\n
\n 0 ? onPrevStep : null}\n />\n
\n
\n \n \n );\n};\n\nCards.propTypes = {\n activeDeckId: PropTypes.string.isRequired,\n content: PropTypes.shape({\n id: PropTypes.shape({\n name: PropTypes.node.isRequired,\n img: PropTypes.string.isRequired,\n steps: PropTypes.arrayOf(PropTypes.shape({\n title: PropTypes.node,\n image: PropTypes.string,\n video: PropTypes.string,\n deckIds: PropTypes.arrayOf(PropTypes.string)\n }))\n })\n }),\n dragging: PropTypes.bool.isRequired,\n expanded: PropTypes.bool.isRequired,\n isRtl: PropTypes.bool.isRequired,\n locale: PropTypes.string.isRequired,\n onActivateDeckFactory: PropTypes.func.isRequired,\n onCloseCards: PropTypes.func.isRequired,\n onDrag: PropTypes.func,\n onEndDrag: PropTypes.func,\n onNextStep: PropTypes.func.isRequired,\n onPrevStep: PropTypes.func.isRequired,\n onShowAll: PropTypes.func,\n onShrinkExpandCards: PropTypes.func.isRequired,\n onStartDrag: PropTypes.func,\n showVideos: PropTypes.bool,\n step: PropTypes.number.isRequired,\n x: PropTypes.number,\n y: PropTypes.number\n};\n\nCards.defaultProps = {\n showVideos: true\n};\n\nexport {\n Cards as default,\n // Others exported for testability\n ImageStep,\n VideoStep\n};\n","module.exports = __webpack_public_path__ + \"static/assets/a3e689235188ba10c5cfd75730cb88a7.svg\";","module.exports = __webpack_public_path__ + \"static/assets/04e28ba12fe914cf4f131dcb85ae82d6.svg\";","module.exports = __webpack_public_path__ + \"static/assets/a80790c977586cc0595b5fe2f0bcb39a.svg\";","module.exports = __webpack_public_path__ + \"static/assets/33592a76d0d0fdaa4a32b2ea41db5e16.svg\";","module.exports = __webpack_public_path__ + \"static/assets/76121b7f4eff7d7ca0d49a45479d3f3f.svg\";","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./close-button.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./close-button.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./close-button.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport styles from './close-button.css';\nimport closeIcon from './icon--close.svg';\nimport closeIconOrange from './icon--close-orange.svg';\nimport backIcon from '../../lib/assets/icon--back.svg';\n\nlet closeIcons = {};\n\nconst CloseButton = props => (\n \n {props.buttonType === 'back' ?\n :\n \n }\n \n);\n\nCloseButton.SIZE_SMALL = 'small';\nCloseButton.SIZE_LARGE = 'large';\n\nCloseButton.COLOR_NEUTRAL = 'neutral';\nCloseButton.COLOR_GREEN = 'green';\nCloseButton.COLOR_ORANGE = 'orange';\ncloseIcons = {\n [CloseButton.COLOR_NEUTRAL]: closeIcon,\n [CloseButton.COLOR_GREEN]: closeIcon, // TODO: temporary, need green icon\n [CloseButton.COLOR_ORANGE]: closeIconOrange\n};\n\n\nCloseButton.propTypes = {\n buttonType: PropTypes.oneOf(['back', 'close']),\n className: PropTypes.string,\n color: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n size: PropTypes.oneOf([CloseButton.SIZE_SMALL, CloseButton.SIZE_LARGE])\n};\n\nCloseButton.defaultProps = {\n color: CloseButton.COLOR_NEUTRAL,\n size: CloseButton.SIZE_LARGE,\n buttonType: 'close'\n};\n\nexport default CloseButton;\n","module.exports = __webpack_public_path__ + \"static/assets/ee54d776d2cda9a3c537ac7e8f144037.svg\";","module.exports = __webpack_public_path__ + \"static/assets/cb666b99d3528f91b52f985dfb102afa.svg\";","module.exports = __webpack_public_path__ + \"static/assets/97926439955086f8ee4aabbd81580f17.png\";","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./coming-soon.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./coming-soon.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./coming-soon.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import bindAll from 'lodash.bindall';\nimport classNames from 'classnames';\nimport {defineMessages, injectIntl, intlShape, FormattedMessage} from 'react-intl';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactTooltip from 'react-tooltip';\n\nimport styles from './coming-soon.css';\n\nimport awwCatIcon from './aww-cat.png';\nimport coolCatIcon from './cool-cat.png';\n\nconst messages = defineMessages({\n message1: {\n defaultMessage: 'Don\\'t worry, we\\'re on it {emoji}',\n description: 'One of the \"coming soon\" random messages for yet-to-be-done features',\n id: 'gui.comingSoon.message1'\n },\n message2: {\n defaultMessage: 'Coming Soon...',\n description: 'One of the \"coming soon\" random messages for yet-to-be-done features',\n id: 'gui.comingSoon.message2'\n },\n message3: {\n defaultMessage: 'We\\'re working on it {emoji}',\n description: 'One of the \"coming soon\" random messages for yet-to-be-done features',\n id: 'gui.comingSoon.message3'\n }\n});\n\nclass ComingSoonContent extends React.Component {\n constructor (props) {\n super(props);\n bindAll(this, [\n 'setHide',\n 'setShow',\n 'getRandomMessage'\n ]);\n this.state = {\n isShowing: false\n };\n }\n setShow () {\n // needed to set the opacity to 1, since the default is .9 on show\n this.setState({isShowing: true});\n }\n setHide () {\n this.setState({isShowing: false});\n }\n getRandomMessage () {\n // randomly chooses a messages from `messages` to display in the tooltip.\n const images = [awwCatIcon, coolCatIcon];\n const messageNumber = Math.floor(Math.random() * Object.keys(messages).length) + 1;\n const imageNumber = Math.floor(Math.random() * Object.keys(images).length);\n return (\n \n )\n }}\n />\n );\n }\n render () {\n return (\n \n );\n }\n}\n\nComingSoonContent.propTypes = {\n className: PropTypes.string,\n intl: intlShape,\n place: PropTypes.oneOf(['top', 'right', 'bottom', 'left']),\n tooltipId: PropTypes.string.isRequired\n};\n\nComingSoonContent.defaultProps = {\n place: 'bottom'\n};\n\nconst ComingSoon = injectIntl(ComingSoonContent);\n\nconst ComingSoonTooltip = props => (\n
\n \n {props.children}\n
\n \n \n);\n\nComingSoonTooltip.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n delayHide: PropTypes.number,\n delayShow: PropTypes.number,\n place: PropTypes.oneOf(['top', 'right', 'bottom', 'left']),\n tooltipClassName: PropTypes.string,\n tooltipId: PropTypes.string.isRequired\n};\n\nComingSoonTooltip.defaultProps = {\n delayHide: 0,\n delayShow: 0\n};\n\nexport {\n ComingSoon as ComingSoonComponent,\n ComingSoonTooltip\n};\n","module.exports = __webpack_public_path__ + \"static/assets/3e83d9d800459175308f0b45b117af16.png\";","import {FormattedMessage} from 'react-intl';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport keyMirror from 'keymirror';\nimport classNames from 'classnames';\n\nimport Box from '../box/box.jsx';\nimport Dots from './dots.jsx';\n\nimport closeIcon from '../close-button/icon--close.svg';\n\nimport radarIcon from './icons/searching.png';\nimport bluetoothIcon from './icons/bluetooth-white.svg';\nimport backIcon from './icons/back.svg';\n\nimport styles from './connection-modal.css';\n\nconst PHASES = keyMirror({\n prescan: null,\n pressbutton: null,\n notfound: null\n});\n\nconst AutoScanningStep = props => (\n \n \n
\n
\n {props.phase === PHASES.prescan && (\n \n \n \n \n )}\n {props.phase === PHASES.pressbutton && (\n \n \n \n \n )}\n {props.phase === PHASES.notfound && (\n \n \n \n )}\n
\n
\n
\n \n \n {props.phase === PHASES.prescan && (\n \n )}\n {props.phase === PHASES.pressbutton && (\n \n )}\n \n \n \n {props.phase === PHASES.prescan && (\n \n \n \n )}\n {props.phase === PHASES.pressbutton && (\n
\n \n \n \n \n \n \n
\n )}\n {props.phase === PHASES.notfound && (\n \n \n \n \n )}\n
\n
\n
\n);\n\nAutoScanningStep.propTypes = {\n connectionTipIconURL: PropTypes.string,\n onRefresh: PropTypes.func,\n onStartScan: PropTypes.func,\n phase: PropTypes.oneOf(Object.keys(PHASES))\n};\n\nAutoScanningStep.defaultProps = {\n phase: PHASES.prescan\n};\n\nexport {\n AutoScanningStep as default,\n PHASES\n};\n","import {FormattedMessage} from 'react-intl';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport Box from '../box/box.jsx';\nimport Dots from './dots.jsx';\nimport bluetoothIcon from './icons/bluetooth-white.svg';\nimport styles from './connection-modal.css';\nimport classNames from 'classnames';\n\nconst ConnectedStep = props => (\n \n \n \n
\n \n \n
\n
\n
\n \n \n \n \n \n
\n \n \n \n \n \n \n
\n
\n
\n);\n\nConnectedStep.propTypes = {\n connectionIconURL: PropTypes.string.isRequired,\n onCancel: PropTypes.func,\n onDisconnect: PropTypes.func\n};\n\nexport default ConnectedStep;\n","import {FormattedMessage} from 'react-intl';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport Box from '../box/box.jsx';\nimport Dots from './dots.jsx';\n\nimport bluetoothIcon from './icons/bluetooth-white.svg';\nimport closeIcon from '../close-button/icon--close.svg';\n\nimport styles from './connection-modal.css';\n\nconst ConnectingStep = props => (\n \n \n \n
\n \n \n
\n
\n
\n \n \n {props.connectingMessage}\n \n \n
\n \n \n \n \n \n \n
\n
\n
\n);\n\nConnectingStep.propTypes = {\n connectingMessage: PropTypes.node.isRequired,\n connectionIconURL: PropTypes.string.isRequired,\n onDisconnect: PropTypes.func\n};\n\nexport default ConnectingStep;\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./connection-modal.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./connection-modal.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./connection-modal.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PropTypes from 'prop-types';\nimport React from 'react';\nimport keyMirror from 'keymirror';\n\nimport Box from '../box/box.jsx';\nimport Modal from '../../containers/modal.jsx';\n\nimport ScanningStep from '../../containers/scanning-step.jsx';\nimport AutoScanningStep from '../../containers/auto-scanning-step.jsx';\nimport ConnectingStep from './connecting-step.jsx';\nimport ConnectedStep from './connected-step.jsx';\nimport ErrorStep from './error-step.jsx';\nimport UnavailableStep from './unavailable-step.jsx';\n\nimport styles from './connection-modal.css';\n\nconst PHASES = keyMirror({\n scanning: null,\n connecting: null,\n connected: null,\n error: null,\n unavailable: null\n});\n\nconst ConnectionModalComponent = props => (\n \n \n {props.phase === PHASES.scanning && !props.useAutoScan && }\n {props.phase === PHASES.scanning && props.useAutoScan && }\n {props.phase === PHASES.connecting && }\n {props.phase === PHASES.connected && }\n {props.phase === PHASES.error && }\n {props.phase === PHASES.unavailable && }\n \n \n);\n\nConnectionModalComponent.propTypes = {\n connectingMessage: PropTypes.node.isRequired,\n connectionSmallIconURL: PropTypes.string,\n connectionTipIconURL: PropTypes.string,\n name: PropTypes.node,\n onCancel: PropTypes.func.isRequired,\n onHelp: PropTypes.func.isRequired,\n phase: PropTypes.oneOf(Object.keys(PHASES)).isRequired,\n title: PropTypes.string.isRequired,\n useAutoScan: PropTypes.bool.isRequired\n};\n\nConnectionModalComponent.defaultProps = {\n connectingMessage: 'Connecting'\n};\n\nexport {\n ConnectionModalComponent as default,\n PHASES\n};\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport Box from '../box/box.jsx';\nimport styles from './connection-modal.css';\n\nconst Dots = props => (\n \n \n {Array(props.total).fill(0)\n .map((_, i) => {\n let type = 'inactive';\n if (props.counter === i) type = 'active';\n if (props.success) type = 'success';\n if (props.error) type = 'error';\n return ();\n })}\n \n
\n);\n\nDots.propTypes = {\n className: PropTypes.string,\n counter: PropTypes.number,\n error: PropTypes.bool,\n success: PropTypes.bool,\n total: PropTypes.number\n};\n\nconst Dot = props => (\n \n);\n\nDot.propTypes = {\n type: PropTypes.string\n};\n\nexport default Dots;\n","import {FormattedMessage} from 'react-intl';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport React from 'react';\n\nimport Box from '../box/box.jsx';\nimport Dots from './dots.jsx';\nimport helpIcon from './icons/help.svg';\nimport backIcon from './icons/back.svg';\n\nimport styles from './connection-modal.css';\n\nconst ErrorStep = props => (\n \n \n \n
\n \n
\n
\n
\n \n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n);\n\nErrorStep.propTypes = {\n connectionIconURL: PropTypes.string.isRequired,\n onHelp: PropTypes.func,\n onScanning: PropTypes.func\n};\n\nexport default ErrorStep;\n","module.exports = __webpack_public_path__ + \"static/assets/42157e6edddc19588c3c2ff188703799.svg\";","module.exports = __webpack_public_path__ + \"static/assets/0fd9fd69a38ab79358df5a77b29702c8.svg\";","module.exports = __webpack_public_path__ + \"static/assets/8b8f2d052b4092ec47ad66c30c8b1642.svg\";","module.exports = __webpack_public_path__ + \"static/assets/4b6100c9f591be6470cdfd4697de0b54.svg\";","module.exports = __webpack_public_path__ + \"static/assets/71655cde34ae75f48cb8820abf4b31e7.svg\";","module.exports = __webpack_public_path__ + \"static/assets/05e05756b592740a3670417b4df19ca9.svg\";","module.exports = __webpack_public_path__ + \"static/assets/572a212c2e777e3a9061c97453497009.png\";","import {FormattedMessage} from 'react-intl';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport React from 'react';\nimport bindAll from 'lodash.bindall';\nimport Box from '../box/box.jsx';\n\nimport styles from './connection-modal.css';\n\nclass PeripheralTile extends React.Component {\n constructor (props) {\n super(props);\n bindAll(this, [\n 'handleConnecting'\n ]);\n }\n handleConnecting () {\n this.props.onConnecting(this.props.peripheralId);\n }\n render () {\n return (\n \n \n \n \n \n \n \n \n {this.props.name}\n \n \n \n \n \n -80\n })}\n />\n -60\n })}\n />\n -40\n })}\n />\n -20\n })}\n />\n \n \n \n \n \n \n );\n }\n}\n\nPeripheralTile.propTypes = {\n connectionSmallIconURL: PropTypes.string,\n name: PropTypes.string,\n onConnecting: PropTypes.func,\n peripheralId: PropTypes.string,\n rssi: PropTypes.number\n};\n\nexport default PeripheralTile;\n","import {FormattedMessage} from 'react-intl';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport Box from '../box/box.jsx';\nimport PeripheralTile from './peripheral-tile.jsx';\nimport Dots from './dots.jsx';\n\nimport radarIcon from './icons/searching.png';\nimport refreshIcon from './icons/refresh.svg';\n\nimport styles from './connection-modal.css';\n\nconst ScanningStep = props => (\n \n \n {props.scanning ? (\n props.peripheralList.length === 0 ? (\n
\n
\n \n \n
\n
\n ) : (\n
\n {props.peripheralList.map(peripheral =>\n ()\n )}\n
\n )\n ) : (\n \n \n \n )}\n
\n \n \n \n \n \n \n \n \n \n \n
\n);\n\nScanningStep.propTypes = {\n connectionSmallIconURL: PropTypes.string,\n onConnecting: PropTypes.func,\n onRefresh: PropTypes.func,\n peripheralList: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n rssi: PropTypes.number,\n peripheralId: PropTypes.string\n })),\n scanning: PropTypes.bool.isRequired\n};\n\nScanningStep.defaultProps = {\n peripheralList: [],\n scanning: true\n};\n\nexport default ScanningStep;\n","import {FormattedMessage} from 'react-intl';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport React from 'react';\n\nimport Box from '../box/box.jsx';\nimport Dots from './dots.jsx';\nimport helpIcon from './icons/help.svg';\nimport backIcon from './icons/back.svg';\nimport bluetoothIcon from './icons/bluetooth.svg';\nimport scratchLinkIcon from './icons/scratchlink.svg';\n\nimport styles from './connection-modal.css';\n\nconst UnavailableStep = props => (\n \n \n
\n
\n
\n {'1'}\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n {'2'}\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n);\n\nUnavailableStep.propTypes = {\n onHelp: PropTypes.func,\n onScanning: PropTypes.func\n};\n\nexport default UnavailableStep;\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./context-menu.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./context-menu.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./context-menu.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import React from 'react';\nimport {ContextMenu, MenuItem} from 'react-contextmenu';\nimport classNames from 'classnames';\n\nimport styles from './context-menu.css';\n\nconst StyledContextMenu = props => (\n \n);\n\nconst StyledMenuItem = props => (\n \n);\n\nconst BorderedMenuItem = props => (\n \n);\n\nconst DangerousMenuItem = props => (\n \n);\n\n\nexport {\n BorderedMenuItem,\n DangerousMenuItem,\n StyledContextMenu as ContextMenu,\n StyledMenuItem as MenuItem\n};\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./controls.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./controls.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./controls.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {defineMessages, injectIntl, intlShape} from 'react-intl';\n\nimport GreenFlag from '../green-flag/green-flag.jsx';\nimport StopAll from '../stop-all/stop-all.jsx';\nimport TurboMode from '../turbo-mode/turbo-mode.jsx';\n\nimport styles from './controls.css';\n\nconst messages = defineMessages({\n goTitle: {\n id: 'gui.controls.go',\n defaultMessage: 'Go',\n description: 'Green flag button title'\n },\n stopTitle: {\n id: 'gui.controls.stop',\n defaultMessage: 'Stop',\n description: 'Stop button title'\n }\n});\n\nconst Controls = function (props) {\n const {\n active,\n className,\n intl,\n onGreenFlagClick,\n onStopAllClick,\n turbo,\n ...componentProps\n } = props;\n return (\n \n \n \n {turbo ? (\n \n ) : null}\n \n );\n};\n\nControls.propTypes = {\n active: PropTypes.bool,\n className: PropTypes.string,\n intl: intlShape.isRequired,\n onGreenFlagClick: PropTypes.func.isRequired,\n onStopAllClick: PropTypes.func.isRequired,\n turbo: PropTypes.bool\n};\n\nControls.defaultProps = {\n active: false,\n turbo: false\n};\n\nexport default injectIntl(Controls);\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./crash-message.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./crash-message.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./crash-message.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PropTypes from 'prop-types';\nimport React from 'react';\nimport Box from '../box/box.jsx';\nimport {FormattedMessage} from 'react-intl';\n\nimport styles from './crash-message.css';\nimport reloadIcon from './reload.svg';\n\nconst CrashMessage = props => (\n
\n \n \n

\n \n

\n

\n \n

\n {props.eventId && (\n

\n \n

\n )}\n \n \n \n
\n
\n);\n\nCrashMessage.propTypes = {\n eventId: PropTypes.string,\n onReload: PropTypes.func.isRequired\n};\n\nexport default CrashMessage;\n","module.exports = __webpack_public_path__ + \"static/assets/dd98971c2c185caf86144b6b5234d0fa.svg\";","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./custom-procedures.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./custom-procedures.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./custom-procedures.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PropTypes from 'prop-types';\nimport React from 'react';\nimport Modal from '../../containers/modal.jsx';\nimport Box from '../box/box.jsx';\nimport {defineMessages, injectIntl, intlShape, FormattedMessage} from 'react-intl';\n\nimport booleanInputIcon from './icon--boolean-input.svg';\nimport textInputIcon from './icon--text-input.svg';\nimport labelIcon from './icon--label.svg';\n\nimport styles from './custom-procedures.css';\n\nconst messages = defineMessages({\n myblockModalTitle: {\n defaultMessage: 'Make a Block',\n description: 'Title for the modal where you create a custom block.',\n id: 'gui.customProcedures.myblockModalTitle'\n }\n});\n\nconst CustomProcedures = props => (\n \n \n \n
\n \n \n
\n \n
\n
\n \n
\n
\n \n \n
\n \n
\n
\n \n
\n \n \n \n
\n \n
\n \n \n
\n \n
\n \n \n \n \n \n \n \n \n
\n \n);\n\nCustomProcedures.propTypes = {\n componentRef: PropTypes.func.isRequired,\n intl: intlShape,\n onAddBoolean: PropTypes.func.isRequired,\n onAddLabel: PropTypes.func.isRequired,\n onAddTextNumber: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n onOk: PropTypes.func.isRequired,\n onToggleWarp: PropTypes.func.isRequired,\n warp: PropTypes.bool.isRequired\n};\n\nexport default injectIntl(CustomProcedures);\n","module.exports = __webpack_public_path__ + \"static/assets/10811a978de201353d564df7ba1ddb58.svg\";","module.exports = __webpack_public_path__ + \"static/assets/8beb9da10f72d02b48baf0b24ac72449.svg\";","module.exports = __webpack_public_path__ + \"static/assets/2a70b21aaaed0619bdfcdec91db1ebe8.svg\";","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./delete-button.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./delete-button.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./delete-button.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport styles from './delete-button.css';\nimport deleteIcon from './icon--delete.svg';\n\nconst DeleteButton = props => (\n \n
\n \n
\n \n\n);\n\nDeleteButton.propTypes = {\n className: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n tabIndex: PropTypes.number\n};\n\nDeleteButton.defaultProps = {\n tabIndex: 0\n};\n\nexport default DeleteButton;\n","module.exports = __webpack_public_path__ + \"static/assets/a5787bb7364d8131ed49a8f53037d7f4.svg\";","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./dial.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./dial.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./dial.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PropTypes from 'prop-types';\nimport bindAll from 'lodash.bindall';\nimport React from 'react';\nimport {getEventXY} from '../../lib/touch-utils';\n\nimport styles from './dial.css';\n\nimport dialFace from './icon--dial.svg';\nimport dialHandle from './icon--handle.svg';\n\nclass Dial extends React.Component {\n constructor (props) {\n super(props);\n bindAll(this, [\n 'handleMouseDown',\n 'handleMouseMove',\n 'containerRef',\n 'handleRef',\n 'unbindMouseEvents'\n ]);\n }\n\n componentDidMount () {\n // Manually add touch/mouse handlers so that preventDefault can be used\n // to prevent scrolling on touch.\n // Tracked as a react issue https://github.com/facebook/react/issues/6436\n this.handleElement.addEventListener('mousedown', this.handleMouseDown);\n this.handleElement.addEventListener('touchstart', this.handleMouseDown);\n }\n\n componentWillUnmount () {\n this.unbindMouseEvents();\n this.handleElement.removeEventListener('mousedown', this.handleMouseDown);\n this.handleElement.removeEventListener('touchstart', this.handleMouseDown);\n }\n\n /**\n * Get direction from dial center to mouse move event.\n * @param {Event} e - Mouse move event.\n * @returns {number} Direction in degrees, clockwise, 90=horizontal.\n */\n directionToMouseEvent (e) {\n const {x: mx, y: my} = getEventXY(e);\n const bbox = this.containerElement.getBoundingClientRect();\n const cy = bbox.top + (bbox.height / 2);\n const cx = bbox.left + (bbox.width / 2);\n const angle = Math.atan2(my - cy, mx - cx);\n const degrees = angle * (180 / Math.PI);\n return degrees + 90; // To correspond with scratch coordinate system\n }\n\n /**\n * Create SVG path data string for the dial \"gauge\", the overlaid arc slice.\n * @param {number} radius - The radius of the dial.\n * @param {number} direction - Direction in degrees, clockwise, 90=horizontal.\n * @returns {string} Path data string for the gauge.\n */\n gaugePath (radius, direction) {\n const rads = (direction) * (Math.PI / 180);\n const path = [];\n path.push(`M ${radius} 0`);\n path.push(`L ${radius} ${radius}`);\n path.push(`L ${radius + (radius * Math.sin(rads))} ${radius - (radius * Math.cos(rads))}`);\n path.push(`A ${radius} ${radius} 0 0 ${direction < 0 ? 1 : 0} ${radius} 0`);\n path.push(`Z`);\n return path.join(' ');\n }\n\n handleMouseMove (e) {\n this.props.onChange(this.directionToMouseEvent(e) + this.directionOffset);\n e.preventDefault();\n }\n\n unbindMouseEvents () {\n window.removeEventListener('mousemove', this.handleMouseMove);\n window.removeEventListener('mouseup', this.unbindMouseEvents);\n window.removeEventListener('touchmove', this.handleMouseMove);\n window.removeEventListener('touchend', this.unbindMouseEvents);\n }\n\n handleMouseDown (e) {\n // Because the drag handle is not a single point, there is some initial\n // difference between the current sprite direction and the direction to the mouse\n // Store this offset to prevent jumping when the mouse is moved.\n this.directionOffset = this.props.direction - this.directionToMouseEvent(e);\n window.addEventListener('mousemove', this.handleMouseMove);\n window.addEventListener('mouseup', this.unbindMouseEvents);\n window.addEventListener('touchmove', this.handleMouseMove);\n window.addEventListener('touchend', this.unbindMouseEvents);\n e.preventDefault();\n }\n\n containerRef (el) {\n this.containerElement = el;\n }\n\n handleRef (el) {\n this.handleElement = el;\n }\n\n render () {\n const {direction, radius} = this.props;\n return (\n
\n \n \n \n \n \n \n
\n \n );\n }\n}\n\nDial.propTypes = {\n direction: PropTypes.number,\n onChange: PropTypes.func.isRequired,\n radius: PropTypes.number\n};\n\nDial.defaultProps = {\n direction: 90, // degrees\n radius: 56 // px\n};\n\nexport default Dial;\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./direction-picker.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./direction-picker.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./direction-picker.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Popover from 'react-popover';\nimport {injectIntl, intlShape, defineMessages, FormattedMessage} from 'react-intl';\n\nimport Label from '../forms/label.jsx';\nimport Input from '../forms/input.jsx';\nimport BufferedInputHOC from '../forms/buffered-input-hoc.jsx';\nimport Dial from './dial.jsx';\n\nimport styles from './direction-picker.css';\n\nimport allAroundIcon from './icon--all-around.svg';\nimport leftRightIcon from './icon--left-right.svg';\nimport dontRotateIcon from './icon--dont-rotate.svg';\n\nconst BufferedInput = BufferedInputHOC(Input);\n\nconst directionLabel = (\n \n);\n\nconst RotationStyles = {\n ALL_AROUND: 'all around',\n LEFT_RIGHT: 'left-right',\n DONT_ROTATE: \"don't rotate\"\n};\n\nconst messages = defineMessages({\n allAround: {\n id: 'gui.directionPicker.rotationStyles.allAround',\n description: 'Button to change to the all around rotation style',\n defaultMessage: 'All Around'\n },\n leftRight: {\n id: 'gui.directionPicker.rotationStyles.leftRight',\n description: 'Button to change to the left-right rotation style',\n defaultMessage: 'Left/Right'\n },\n dontRotate: {\n id: 'gui.directionPicker.rotationStyles.dontRotate',\n description: 'Button to change to the dont rotate rotation style',\n defaultMessage: 'Do not rotate'\n }\n});\n\nconst DirectionPicker = props => (\n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n \n }\n isOpen={props.popoverOpen}\n preferPlace=\"above\"\n onOuterAction={props.onClosePopover}\n >\n \n \n \n\n);\n\nDirectionPicker.propTypes = {\n direction: PropTypes.number,\n disabled: PropTypes.bool.isRequired,\n intl: intlShape,\n labelAbove: PropTypes.bool,\n onChangeDirection: PropTypes.func.isRequired,\n onClickAllAround: PropTypes.func.isRequired,\n onClickDontRotate: PropTypes.func.isRequired,\n onClickLeftRight: PropTypes.func.isRequired,\n onClosePopover: PropTypes.func.isRequired,\n onOpenPopover: PropTypes.func.isRequired,\n popoverOpen: PropTypes.bool.isRequired,\n rotationStyle: PropTypes.string\n};\n\nDirectionPicker.defaultProps = {\n labelAbove: false\n};\n\nconst WrappedDirectionPicker = injectIntl(DirectionPicker);\n\nexport {\n WrappedDirectionPicker as default,\n RotationStyles\n};\n","module.exports = __webpack_public_path__ + \"static/assets/85288751058f7704ffdb91f15d189260.svg\";","module.exports = __webpack_public_path__ + \"static/assets/3732270cfcc864cbbd939ae7213f1a5a.svg\";","module.exports = __webpack_public_path__ + \"static/assets/e7c972c634096b89b182b99441a20b1d.svg\";","module.exports = __webpack_public_path__ + \"static/assets/14120e6444ca2744dad272d8ca2a4646.svg\";","module.exports = __webpack_public_path__ + \"static/assets/148e4f4cfc7a1a253eb52c50bbb635a0.svg\";","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./divider.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./divider.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./divider.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport styles from './divider.css';\n\nconst Divider = ({className}) => (\n
\n);\n\nDivider.propTypes = {\n className: PropTypes.string\n};\n\nexport default Divider;\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./drag-layer.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./drag-layer.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./drag-layer.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './drag-layer.css';\n\n/* eslint no-confusing-arrow: [\"error\", {\"allowParens\": true}] */\nconst DragLayer = ({dragging, img, currentOffset}) => (dragging ? (\n
\n \n \n
\n
\n) : null);\n\nDragLayer.propTypes = {\n currentOffset: PropTypes.shape({\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired\n }),\n dragging: PropTypes.bool.isRequired,\n img: PropTypes.string\n};\n\nexport default DragLayer;\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./filter.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./filter.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./filter.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport filterIcon from './icon--filter.svg';\nimport xIcon from './icon--x.svg';\nimport styles from './filter.css';\n\nconst FilterComponent = props => {\n const {\n className,\n onChange,\n onClear,\n placeholderText,\n filterQuery,\n inputClassName\n } = props;\n return (\n 0\n })}\n >\n \n \n \n \n \n \n );\n};\n\nFilterComponent.propTypes = {\n className: PropTypes.string,\n filterQuery: PropTypes.string,\n inputClassName: PropTypes.string,\n onChange: PropTypes.func,\n onClear: PropTypes.func,\n placeholderText: PropTypes.string\n};\nFilterComponent.defaultProps = {\n placeholderText: 'Search'\n};\nexport default FilterComponent;\n","module.exports = __webpack_public_path__ + \"static/assets/a4451ef35d29c4997f7c8e837da8af44.svg\";","module.exports = __webpack_public_path__ + \"static/assets/9c49ade683c0f0d75796136ff5d1030f.svg\";","import bindAll from 'lodash.bindall';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\n/**\n * Higher Order Component to manage inputs that submit on blur and \n * @param {React.Component} Input text input that consumes onChange, onBlur, onKeyPress\n * @returns {React.Component} Buffered input that calls onSubmit on blur and \n */\nexport default function (Input) {\n class BufferedInput extends React.Component {\n constructor (props) {\n super(props);\n bindAll(this, [\n 'handleChange',\n 'handleKeyPress',\n 'handleFlush'\n ]);\n this.state = {\n value: null\n };\n }\n handleKeyPress (e) {\n if (e.key === 'Enter') {\n this.handleFlush();\n e.target.blur();\n }\n }\n handleFlush () {\n const isNumeric = typeof this.props.value === 'number';\n const validatesNumeric = isNumeric ? !isNaN(this.state.value) : true;\n if (this.state.value !== null && validatesNumeric) {\n this.props.onSubmit(isNumeric ? Number(this.state.value) : this.state.value);\n }\n this.setState({value: null});\n }\n handleChange (e) {\n this.setState({value: e.target.value});\n }\n render () {\n const bufferedValue = this.state.value === null ? this.props.value : this.state.value;\n return (\n \n );\n }\n }\n\n BufferedInput.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n };\n\n return BufferedInput;\n}\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./input.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./input.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./input.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport styles from './input.css';\n\nconst Input = props => {\n const {small, ...componentProps} = props;\n return (\n \n );\n};\n\nInput.propTypes = {\n className: PropTypes.string,\n small: PropTypes.bool\n};\n\nInput.defaultProps = {\n small: false\n};\n\nexport default Input;\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./label.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./label.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./label.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport styles from './label.css';\n\nconst Label = props => (\n \n);\n\nLabel.propTypes = {\n above: PropTypes.bool,\n children: PropTypes.node,\n secondary: PropTypes.bool,\n text: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired\n};\n\nLabel.defaultProps = {\n above: false,\n secondary: false\n};\n\nexport default Label;\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./green-flag.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./green-flag.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./green-flag.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport greenFlagIcon from './icon--green-flag.svg';\nimport styles from './green-flag.css';\n\nconst GreenFlagComponent = function (props) {\n const {\n active,\n className,\n onClick,\n title,\n ...componentProps\n } = props;\n return (\n \n );\n};\nGreenFlagComponent.propTypes = {\n active: PropTypes.bool,\n className: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n title: PropTypes.string\n};\nGreenFlagComponent.defaultProps = {\n active: false,\n title: 'Go'\n};\nexport default GreenFlagComponent;\n","module.exports = __webpack_public_path__ + \"static/assets/2e0c4790f8f9cf28e3c346b9cef0fcb6.svg\";","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./gui.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./gui.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./gui.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import classNames from 'classnames';\nimport omit from 'lodash.omit';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {defineMessages, FormattedMessage, injectIntl, intlShape} from 'react-intl';\nimport {connect} from 'react-redux';\nimport MediaQuery from 'react-responsive';\nimport {Tab, Tabs, TabList, TabPanel} from 'react-tabs';\nimport tabStyles from 'react-tabs/style/react-tabs.css';\nimport VM from 'scratch-vm';\nimport Renderer from 'scratch-render';\n\nimport Blocks from '../../containers/blocks.jsx';\nimport CostumeTab from '../../containers/costume-tab.jsx';\nimport TargetPane from '../../containers/target-pane.jsx';\nimport SoundTab from '../../containers/sound-tab.jsx';\nimport StageWrapper from '../../containers/stage-wrapper.jsx';\nimport Loader from '../loader/loader.jsx';\nimport Box from '../box/box.jsx';\nimport MenuBar from '../menu-bar/menu-bar.jsx';\nimport CostumeLibrary from '../../containers/costume-library.jsx';\nimport BackdropLibrary from '../../containers/backdrop-library.jsx';\nimport Watermark from '../../containers/watermark.jsx';\n\nimport Backpack from '../../containers/backpack.jsx';\nimport WebGlModal from '../../containers/webgl-modal.jsx';\nimport TipsLibrary from '../../containers/tips-library.jsx';\nimport Cards from '../../containers/cards.jsx';\nimport Alerts from '../../containers/alerts.jsx';\nimport DragLayer from '../../containers/drag-layer.jsx';\nimport ConnectionModal from '../../containers/connection-modal.jsx';\nimport TelemetryModal from '../telemetry-modal/telemetry-modal.jsx';\n\nimport layout, {STAGE_SIZE_MODES} from '../../lib/layout-constants';\nimport {resolveStageSize} from '../../lib/screen-utils';\n\nimport styles from './gui.css';\nimport addExtensionIcon from './icon--extensions.svg';\nimport codeIcon from './icon--code.svg';\nimport costumesIcon from './icon--costumes.svg';\nimport soundsIcon from './icon--sounds.svg';\n\nconst messages = defineMessages({\n addExtension: {\n id: 'gui.gui.addExtension',\n description: 'Button to add an extension in the target pane',\n defaultMessage: 'Add Extension'\n }\n});\n\n// Cache this value to only retrieve it once the first time.\n// Assume that it doesn't change for a session.\nlet isRendererSupported = null;\n\nconst GUIComponent = props => {\n const {\n accountNavOpen,\n activeTabIndex,\n alertsVisible,\n authorId,\n authorThumbnailUrl,\n authorUsername,\n basePath,\n backdropLibraryVisible,\n backpackHost,\n backpackVisible,\n blocksTabVisible,\n cardsVisible,\n canChangeLanguage,\n canCreateNew,\n canEditTitle,\n canManageFiles,\n canRemix,\n canSave,\n canCreateCopy,\n canShare,\n canUseCloud,\n children,\n connectionModalVisible,\n costumeLibraryVisible,\n costumesTabVisible,\n enableCommunity,\n intl,\n isCreating,\n isFullScreen,\n isPlayerOnly,\n isRtl,\n isShared,\n loading,\n logo,\n renderLogin,\n onClickAccountNav,\n onCloseAccountNav,\n onLogOut,\n onOpenRegistration,\n onToggleLoginOpen,\n onUpdateProjectTitle,\n onActivateCostumesTab,\n onActivateSoundsTab,\n onActivateTab,\n onClickLogo,\n onExtensionButtonClick,\n onProjectTelemetryEvent,\n onRequestCloseBackdropLibrary,\n onRequestCloseCostumeLibrary,\n onRequestCloseTelemetryModal,\n onSeeCommunity,\n onShare,\n onTelemetryModalCancel,\n onTelemetryModalOptIn,\n onTelemetryModalOptOut,\n showComingSoon,\n soundsTabVisible,\n stageSizeMode,\n targetIsStage,\n telemetryModalVisible,\n tipsLibraryVisible,\n vm,\n ...componentProps\n } = omit(props, 'dispatch');\n if (children) {\n return {children};\n }\n\n const tabClassNames = {\n tabs: styles.tabs,\n tab: classNames(tabStyles.reactTabsTab, styles.tab),\n tabList: classNames(tabStyles.reactTabsTabList, styles.tabList),\n tabPanel: classNames(tabStyles.reactTabsTabPanel, styles.tabPanel),\n tabPanelSelected: classNames(tabStyles.reactTabsTabPanelSelected, styles.isSelected),\n tabSelected: classNames(tabStyles.reactTabsTabSelected, styles.isSelected)\n };\n\n if (isRendererSupported === null) {\n isRendererSupported = Renderer.isSupported();\n }\n\n return ({isFullSize => {\n const stageSize = resolveStageSize(stageSizeMode, isFullSize);\n\n return isPlayerOnly ? (\n \n {alertsVisible ? (\n \n ) : null}\n \n ) : (\n \n {telemetryModalVisible ? (\n \n ) : null}\n {loading ? (\n \n ) : null}\n {isCreating ? (\n \n ) : null}\n {isRendererSupported ? null : (\n \n )}\n {tipsLibraryVisible ? (\n \n ) : null}\n {cardsVisible ? (\n \n ) : null}\n {alertsVisible ? (\n \n ) : null}\n {connectionModalVisible ? (\n \n ) : null}\n {costumeLibraryVisible ? (\n \n ) : null}\n {backdropLibraryVisible ? (\n \n ) : null}\n \n \n \n \n \n \n \n \n \n \n \n \n {targetIsStage ? (\n \n ) : (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {costumesTabVisible ? : null}\n \n \n {soundsTabVisible ? : null}\n \n \n {backpackVisible ? (\n \n ) : null}\n \n\n \n \n \n \n \n \n \n \n \n
\n );\n }});\n};\n\nGUIComponent.propTypes = {\n accountNavOpen: PropTypes.bool,\n activeTabIndex: PropTypes.number,\n authorId: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), // can be false\n authorThumbnailUrl: PropTypes.string,\n authorUsername: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), // can be false\n backdropLibraryVisible: PropTypes.bool,\n backpackHost: PropTypes.string,\n backpackVisible: PropTypes.bool,\n basePath: PropTypes.string,\n blocksTabVisible: PropTypes.bool,\n canChangeLanguage: PropTypes.bool,\n canCreateCopy: PropTypes.bool,\n canCreateNew: PropTypes.bool,\n canEditTitle: PropTypes.bool,\n canManageFiles: PropTypes.bool,\n canRemix: PropTypes.bool,\n canSave: PropTypes.bool,\n canShare: PropTypes.bool,\n canUseCloud: PropTypes.bool,\n cardsVisible: PropTypes.bool,\n children: PropTypes.node,\n costumeLibraryVisible: PropTypes.bool,\n costumesTabVisible: PropTypes.bool,\n enableCommunity: PropTypes.bool,\n intl: intlShape.isRequired,\n isCreating: PropTypes.bool,\n isFullScreen: PropTypes.bool,\n isPlayerOnly: PropTypes.bool,\n isRtl: PropTypes.bool,\n isShared: PropTypes.bool,\n loading: PropTypes.bool,\n logo: PropTypes.string,\n onActivateCostumesTab: PropTypes.func,\n onActivateSoundsTab: PropTypes.func,\n onActivateTab: PropTypes.func,\n onClickAccountNav: PropTypes.func,\n onClickLogo: PropTypes.func,\n onCloseAccountNav: PropTypes.func,\n onExtensionButtonClick: PropTypes.func,\n onLogOut: PropTypes.func,\n onOpenRegistration: PropTypes.func,\n onRequestCloseBackdropLibrary: PropTypes.func,\n onRequestCloseCostumeLibrary: PropTypes.func,\n onRequestCloseTelemetryModal: PropTypes.func,\n onSeeCommunity: PropTypes.func,\n onShare: PropTypes.func,\n onTabSelect: PropTypes.func,\n onTelemetryModalCancel: PropTypes.func,\n onTelemetryModalOptIn: PropTypes.func,\n onTelemetryModalOptOut: PropTypes.func,\n onToggleLoginOpen: PropTypes.func,\n onUpdateProjectTitle: PropTypes.func,\n renderLogin: PropTypes.func,\n showComingSoon: PropTypes.bool,\n soundsTabVisible: PropTypes.bool,\n stageSizeMode: PropTypes.oneOf(Object.keys(STAGE_SIZE_MODES)),\n targetIsStage: PropTypes.bool,\n telemetryModalVisible: PropTypes.bool,\n tipsLibraryVisible: PropTypes.bool,\n vm: PropTypes.instanceOf(VM).isRequired\n};\nGUIComponent.defaultProps = {\n backpackHost: null,\n backpackVisible: false,\n basePath: './',\n canChangeLanguage: true,\n canCreateNew: false,\n canEditTitle: false,\n canManageFiles: true,\n canRemix: false,\n canSave: false,\n canCreateCopy: false,\n canShare: false,\n canUseCloud: false,\n enableCommunity: false,\n isCreating: false,\n isShared: false,\n loading: false,\n onUpdateProjectTitle: () => {},\n showComingSoon: false,\n stageSizeMode: STAGE_SIZE_MODES.large\n};\n\nconst mapStateToProps = state => ({\n // This is the button's mode, as opposed to the actual current state\n stageSizeMode: state.scratchGui.stageSize.stageSize\n});\n\nexport default injectIntl(connect(\n mapStateToProps\n)(GUIComponent));\n","module.exports = __webpack_public_path__ + \"static/assets/257e3788c5fbfe56c151a97e97dc20d8.svg\";","module.exports = __webpack_public_path__ + \"static/assets/1dfe5425b42628b6f1df1f39e97a319f.svg\";","module.exports = __webpack_public_path__ + \"static/assets/5f4208a6b7257c456c018d57efc8a7e9.svg\";","module.exports = __webpack_public_path__ + \"static/assets/2258ea6dfe9ad15440ca55aca291698d.svg\";","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./icon-button.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./icon-button.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./icon-button.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport styles from './icon-button.css';\n\nconst IconButton = ({\n img,\n disabled,\n className,\n title,\n onClick\n}) => (\n \n \n
\n {title}\n
\n \n);\n\nIconButton.propTypes = {\n className: PropTypes.string,\n disabled: PropTypes.bool,\n img: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n title: PropTypes.node.isRequired\n};\n\nexport default IconButton;\n","module.exports = __webpack_public_path__ + \"static/assets/1319094a51748798730f01d1dc0972ac.svg\";","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./language-selector.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./language-selector.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./language-selector.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport locales from 'scratch-l10n';\nimport styles from './language-selector.css';\n\n// supported languages to exclude from the menu, but allow as a URL option\nconst ignore = [];\n\nconst LanguageSelector = ({currentLocale, label, onChange}) => (\n \n {\n Object.keys(locales)\n .filter(l => !ignore.includes(l))\n .map(locale => (\n \n {locales[locale].name}\n \n ))\n }\n \n);\n\nLanguageSelector.propTypes = {\n currentLocale: PropTypes.string,\n label: PropTypes.string,\n onChange: PropTypes.func\n};\n\nexport default LanguageSelector;\n","module.exports = __webpack_public_path__ + \"static/assets/dfe35552790fb5ff38c78a43f5e62f30.svg\";","module.exports = __webpack_public_path__ + \"static/assets/1bb0adb555e07593962e9fc28ec7566d.svg\";","module.exports = __webpack_public_path__ + \"static/assets/582b9f12ce60392a8ef736c5dfabb4ce.svg\";","module.exports = __webpack_public_path__ + \"static/assets/7bd7487b704797cb5ab3cb441486ea70.svg\";","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./library-item.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./library-item.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./library-item.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import {FormattedMessage} from 'react-intl';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport Box from '../box/box.jsx';\nimport PlayButton from '../../containers/play-button.jsx';\nimport styles from './library-item.css';\nimport classNames from 'classnames';\n\nimport bluetoothIconURL from './bluetooth.svg';\nimport internetConnectionIconURL from './internet-connection.svg';\n\n/* eslint-disable react/prefer-stateless-function */\nclass LibraryItemComponent extends React.PureComponent {\n render () {\n return this.props.featured ? (\n \n
\n {this.props.disabled ? (\n
\n \n
\n ) : null}\n \n
\n {this.props.insetIconURL ? (\n
\n \n
\n ) : null}\n \n {this.props.name}\n
\n {this.props.description}\n \n {this.props.bluetoothRequired || this.props.internetConnectionRequired || this.props.collaborator ? (\n
\n
\n {this.props.bluetoothRequired || this.props.internetConnectionRequired ? (\n
\n
\n \n
\n \n {this.props.bluetoothRequired ? (\n \n ) : null}\n {this.props.internetConnectionRequired ? (\n \n ) : null}\n
\n
\n ) : null}\n
\n
\n {this.props.collaborator ? (\n
\n
\n \n
\n \n {this.props.collaborator}\n
\n
\n ) : null}\n \n \n ) : null}\n \n ) : (\n \n {/* Layers of wrapping is to prevent layout thrashing on animation */}\n \n \n \n \n \n {this.props.name}\n {this.props.showPlayButton ? (\n \n ) : null}\n \n );\n }\n}\n/* eslint-enable react/prefer-stateless-function */\n\n\nLibraryItemComponent.propTypes = {\n bluetoothRequired: PropTypes.bool,\n collaborator: PropTypes.string,\n description: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node\n ]),\n disabled: PropTypes.bool,\n extensionId: PropTypes.string,\n featured: PropTypes.bool,\n hidden: PropTypes.bool,\n iconURL: PropTypes.string,\n insetIconURL: PropTypes.string,\n internetConnectionRequired: PropTypes.bool,\n isPlaying: PropTypes.bool,\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node\n ]),\n onBlur: PropTypes.func.isRequired,\n onClick: PropTypes.func.isRequired,\n onFocus: PropTypes.func.isRequired,\n onKeyPress: PropTypes.func.isRequired,\n onMouseEnter: PropTypes.func.isRequired,\n onMouseLeave: PropTypes.func.isRequired,\n onPlay: PropTypes.func.isRequired,\n onStop: PropTypes.func.isRequired,\n showPlayButton: PropTypes.bool\n};\n\nLibraryItemComponent.defaultProps = {\n disabled: false,\n showPlayButton: false\n};\n\nexport default LibraryItemComponent;\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./library.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./library.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??postcss!./library.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import classNames from 'classnames';\nimport bindAll from 'lodash.bindall';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {defineMessages, injectIntl, intlShape} from 'react-intl';\n\nimport LibraryItem from '../../containers/library-item.jsx';\nimport Modal from '../../containers/modal.jsx';\nimport Divider from '../divider/divider.jsx';\nimport Filter from '../filter/filter.jsx';\nimport TagButton from '../../containers/tag-button.jsx';\nimport Spinner from '../spinner/spinner.jsx';\n\nimport styles from './library.css';\n\nconst messages = defineMessages({\n filterPlaceholder: {\n id: 'gui.library.filterPlaceholder',\n defaultMessage: 'Search',\n description: 'Placeholder text for library search field'\n },\n allTag: {\n id: 'gui.library.allTag',\n defaultMessage: 'All',\n description: 'Label for library tag to revert to all items after filtering by tag.'\n }\n});\n\nconst ALL_TAG = {tag: 'all', intlLabel: messages.allTag};\nconst tagListPrefix = [ALL_TAG];\n\nclass LibraryComponent extends React.Component {\n constructor (props) {\n super(props);\n bindAll(this, [\n 'handleClose',\n 'handleFilterChange',\n 'handleFilterClear',\n 'handleMouseEnter',\n 'handleMouseLeave',\n 'handlePlayingEnd',\n 'handleSelect',\n 'handleTagClick',\n 'setFilteredDataRef'\n ]);\n this.state = {\n playingItem: null,\n filterQuery: '',\n selectedTag: ALL_TAG.tag,\n loaded: false\n };\n }\n componentDidMount () {\n // Allow the spinner to display before loading the content\n setTimeout(() => {\n this.setState({loaded: true});\n });\n if (this.props.setStopHandler) this.props.setStopHandler(this.handlePlayingEnd);\n }\n componentDidUpdate (prevProps, prevState) {\n if (prevState.filterQuery !== this.state.filterQuery ||\n prevState.selectedTag !== this.state.selectedTag) {\n this.scrollToTop();\n }\n }\n handleSelect (id) {\n this.handleClose();\n this.props.onItemSelected(this.getFilteredData()[id]);\n }\n handleClose () {\n this.props.onRequestClose();\n }\n handleTagClick (tag) {\n if (this.state.playingItem === null) {\n this.setState({\n filterQuery: '',\n selectedTag: tag.toLowerCase()\n });\n } else {\n this.props.onItemMouseLeave(this.getFilteredData()[[this.state.playingItem]]);\n this.setState({\n filterQuery: '',\n playingItem: null,\n selectedTag: tag.toLowerCase()\n });\n }\n }\n handleMouseEnter (id) {\n // don't restart if mouse over already playing item\n if (this.props.onItemMouseEnter && this.state.playingItem !== id) {\n this.props.onItemMouseEnter(this.getFilteredData()[id]);\n this.setState({\n playingItem: id\n });\n }\n }\n handleMouseLeave (id) {\n if (this.props.onItemMouseLeave) {\n this.props.onItemMouseLeave(this.getFilteredData()[id]);\n this.setState({\n playingItem: null\n });\n }\n }\n handlePlayingEnd () {\n if (this.state.playingItem !== null) {\n this.setState({\n playingItem: null\n });\n }\n }\n handleFilterChange (event) {\n if (this.state.playingItem === null) {\n this.setState({\n filterQuery: event.target.value,\n selectedTag: ALL_TAG.tag\n });\n } else {\n this.props.onItemMouseLeave(this.getFilteredData()[[this.state.playingItem]]);\n this.setState({\n filterQuery: event.target.value,\n playingItem: null,\n selectedTag: ALL_TAG.tag\n });\n }\n }\n handleFilterClear () {\n this.setState({filterQuery: ''});\n }\n getFilteredData () {\n if (this.state.selectedTag === 'all') {\n if (!this.state.filterQuery) return this.props.data;\n return this.props.data.filter(dataItem => (\n (dataItem.tags || [])\n // Second argument to map sets `this`\n .map(String.prototype.toLowerCase.call, String.prototype.toLowerCase)\n .concat(dataItem.name ?\n (typeof dataItem.name === 'string' ?\n // Use the name if it is a string, else use formatMessage to get the translated name\n dataItem.name : this.props.intl.formatMessage(dataItem.name.props)\n ).toLowerCase() :\n null)\n .join('\\n') // unlikely to partially match newlines\n .indexOf(this.state.filterQuery.toLowerCase()) !== -1\n ));\n }\n return this.props.data.filter(dataItem => (\n dataItem.tags &&\n dataItem.tags\n .map(String.prototype.toLowerCase.call, String.prototype.toLowerCase)\n .indexOf(this.state.selectedTag) !== -1\n ));\n }\n scrollToTop () {\n this.filteredDataRef.scrollTop = 0;\n }\n setFilteredDataRef (ref) {\n this.filteredDataRef = ref;\n }\n render () {\n return (\n \n {(this.props.filterable || this.props.tags) && (\n
\n {this.props.filterable && (\n \n )}\n {this.props.filterable && this.props.tags && (\n \n )}\n {this.props.tags &&\n
\n {tagListPrefix.concat(this.props.tags).map((tagProps, id) => (\n \n ))}\n
\n }\n
\n )}\n \n {this.state.loaded ? this.getFilteredData().map((dataItem, index) => (\n