From 7952bdacf61bb5450646c2c030b7430f4dfd41ba Mon Sep 17 00:00:00 2001 From: Julien Verneuil Date: Wed, 17 May 2017 23:29:10 +0200 Subject: [PATCH] add session name validation to frontpage add some more exceptions to GLSL outline fix issue with invalid session name for sharedb with mongodb update prod files update documentation --- client/dist/fs.js | 416 +++++++++++++++-------- client/dist/fs.min.js | 23 +- client/dist/worker/audio_to_image.js | 22 ++ client/dist/worker/audio_to_image.min.js | 6 +- client/dist/worker/image_to_audio.js | 22 ++ client/dist/worker/image_to_audio.min.js | 2 +- client/dist/worker/parse_glsl.js | 5 +- client/dist/worker/parse_glsl.min.js | 4 +- client/js/app_fs.js | 2 + client/js/discuss.js | 12 +- client/js/inputs.js | 12 +- client/js/network.js | 4 +- client/js/ui.js | 86 ++++- client/js/worker/parse_glsl.js | 5 +- client/js/wui/wui.js | 265 ++++++++------- client/js/wui/wui.min.js | 2 +- documentation/documentation | 79 +++-- documentation/documentation.html | 86 +++-- documentation/fragment_documentation.pdf | Bin 1166071 -> 1159939 bytes documentation/images/toolbar.png | Bin 8500 -> 9413 bytes fsdb/fsdb.js | 40 ++- fss/fss.js | 2 - prod | 3 - prod_files | 2 +- www/css/app_fp.css | 7 + www/dist/fp.css | 7 + www/dist/fp.js | 33 +- www/dist/fp.min.css | 2 +- www/dist/fp.min.js | 2 +- www/index.html | 1 + www/js/main.js | 33 +- 31 files changed, 817 insertions(+), 368 deletions(-) diff --git a/client/dist/fs.js b/client/dist/fs.js index a67c1c0..116533f 100644 --- a/client/dist/fs.js +++ b/client/dist/fs.js @@ -10,22 +10,22 @@ var WUI_Dialog = new (function() { /*********************************************************** Private section. - + Fields. ************************************************************/ - + var _self = this, - + _widget_list = {}, - + _dragged_dialog = null, _resized_dialog = null, - + _touch_identifier = null, - + _drag_x = 0, _drag_y = 0, - + _resize_start_x = 0, _resize_start_y = 0, @@ -51,13 +51,13 @@ var WUI_Dialog = new (function() { modal: "wui-dialog-modal", status_bar: "wui-dialog-status-bar" }, - + _known_options = { title: "", - + width: "80%", height: "40%", - + open: true, closable: true, @@ -65,10 +65,12 @@ var WUI_Dialog = new (function() { draggable: false, resizable: false, detachable: false, - + min_width: "title", min_height: 32, + header_btn: null, + status_bar: false, status_bar_content: "", @@ -76,12 +78,12 @@ var WUI_Dialog = new (function() { halign: "left", // 'left', 'center', 'right' valign: "top", // 'top', 'center', 'bottom' - + top: 0, left: 0, modal: false, - + minimized: false, on_close: null, @@ -89,10 +91,10 @@ var WUI_Dialog = new (function() { on_pre_detach: null, on_resize: null }; - + /*********************************************************** Private section. - + Initialization. ************************************************************/ @@ -133,10 +135,10 @@ var WUI_Dialog = new (function() { Functions. ************************************************************/ - + var _removeDetachedWindow = function (widget) { var i = 0; - + for (i = 0; i < _detached_windows.length; i += 1) { if (_detached_windows[i] === widget.detachable_ref) { _detached_windows.splice(i, 1); @@ -200,7 +202,7 @@ var WUI_Dialog = new (function() { var cz_index = 0, tmp_dialog = null, - + elem = null, widget = _widget_list[dialog.id]; @@ -222,15 +224,15 @@ var WUI_Dialog = new (function() { } } } - + // traverse backward to see if it is contained by another dialog and focus all the parents, note: could be done once for performances elem = widget.dialog.parentElement; - + while (elem !== null) { if (elem.classList.contains(_class_name.dialog)) { elem.style.zIndex = 101; } - + elem = elem.parentElement; } @@ -283,9 +285,9 @@ var WUI_Dialog = new (function() { var _minimize = function (minimize_btn, dialog) { var widget = _widget_list[dialog.id], - + resize_handler = widget.resize_handler; - + if (widget.dialog !== dialog) { _minimize(widget.header_minimaxi_btn, widget.dialog); } @@ -294,7 +296,7 @@ var WUI_Dialog = new (function() { minimize_btn.classList.toggle(_class_name.maximize); dialog.classList.toggle(_class_name.minimized); - + if (dialog.classList.contains(_class_name.minimized)) { dialog.style.borderStyle = "solid"; dialog.style.borderColor = "#808080"; @@ -432,7 +434,7 @@ var WUI_Dialog = new (function() { child_window = widget.detachable_ref, css, css_html, i, dbc = dialog.getBoundingClientRect(); - + if (widget.opts.on_pre_detach) { widget.opts.on_pre_detach(); } @@ -465,7 +467,7 @@ var WUI_Dialog = new (function() { "height=" + h, "top=" + (dbc.top + screen_top + 32),//((window_h-h)/2 + screen_top), "left=" + (dbc.left + screen_left)].join(','));//((window_w-w) / 2 + screen_left)].join(',')); - + widget.detachable_ref = child_window; css_html = ""; @@ -509,7 +511,7 @@ var WUI_Dialog = new (function() { child_window.document.body.appendChild(new_status_bar); } - + child_window.addEventListener("keyup", function (ev) { if (ev.keyCode !== 27) { return; } _close(dialog, true, true, true); }, false); child_window.addEventListener("resize", function () { _onWindowResize(child_window); }, false); @@ -549,117 +551,117 @@ var WUI_Dialog = new (function() { _detach(dialog); } }; - + var _onKeyUp = function (ev) { if (ev.keyCode !== 27) { return; } - + var key, widget; - - for(key in _widget_list) { + + for(key in _widget_list) { if (_widget_list.hasOwnProperty(key)) { widget = _widget_list[key]; - + if (widget.opts.closable && - widget.dialog.style.zIndex === "101" && + widget.dialog.style.zIndex === "101" && widget.dialog.classList.contains(_class_name.open)) { _self.close(key, true); - + return; } } } }; - + var _windowMouseMove = function (ev) { if (!_dragged_dialog) { return; } ev.preventDefault(); - + var widget = _widget_list[_dragged_dialog.id], - + x = ev.clientX, y = ev.clientY, - + touches = ev.changedTouches, - + touch = null, - + i, - + new_x, new_y; - + if (touches) { for (i = 0; i < touches.length; i += 1) { touch = touches[i]; - + if (touch.identifier === _touch_identifier) { x = touches[i].clientX; y = touches[i].clientY; - + break; } } } - + new_x = x - _drag_x; new_y = y - _drag_y; _dragged_dialog.style.left = new_x + 'px'; _dragged_dialog.style.top = new_y + 'px'; - + if (widget.dialog !== _dragged_dialog) { widget.dialog.style.left = new_x + 'px'; widget.dialog.style.top = new_y + 'px'; } }; - + var _windowMouseUp = function (ev) { if (!_dragged_dialog) { return; } var touches = ev.changedTouches, - + touch = null, - + i, owner_doc = _dragged_dialog.ownerDocument, owner_win = owner_doc.defaultView || owner_doc.parentWindow; - + if (touches) { for (i = 0; i < touches.length; i += 1) { touch = touches[i]; - + if (touch.identifier === _touch_identifier) { _dragged_dialog = null; - + owner_doc.body.style.cursor = "default"; - + owner_win.removeEventListener('touchmove', _windowMouseMove, false); owner_win.removeEventListener('touchend', _windowMouseUp, false); - + break; } } } else { _dragged_dialog = null; - + owner_doc.body.style.cursor = "default"; - + owner_win.removeEventListener('mousemove', _windowMouseMove, false); owner_win.removeEventListener('mouseup', _windowMouseUp, false); } }; - + var _onMouseDown = function (ev) { var x = ev.clientX, y = ev.clientY, - + left = 0, top = 0, @@ -669,36 +671,36 @@ var WUI_Dialog = new (function() { owner_win, dragged_dialog; - + ev.preventDefault(); if (_dragged_dialog === null) { if (touches) { _touch_identifier = touches[0].identifier; - + x = touches[0].clientX; y = touches[0].clientY; } else if (ev.button !== 0) { return; } } - + dragged_dialog = ev.target.parentElement; if (dragged_dialog.classList.contains(_class_name.maximize) || !dragged_dialog.classList.contains(_class_name.draggable)) { return; } - + _dragged_dialog = dragged_dialog; owner_doc = _dragged_dialog.ownerDocument; owner_win = owner_doc.defaultView || owner_doc.parentWindow; _focus(_dragged_dialog); - + owner_doc.body.style.cursor = "move"; - + left = parseInt(_dragged_dialog.style.left, 10); top = parseInt(_dragged_dialog.style.top, 10); @@ -711,7 +713,7 @@ var WUI_Dialog = new (function() { owner_win.addEventListener('mouseup', _windowMouseUp, false); owner_win.addEventListener('touchend', _windowMouseUp, false); }; - + var _onStartResize = function (e) { e.preventDefault(); e.stopPropagation(); @@ -860,22 +862,22 @@ var WUI_Dialog = new (function() { } } }; - + var _createFailed = function () { console.log("WUI_RangeSlider 'create' failed, first argument not an id nor a DOM element."); }; /*********************************************************** Public section. - + Functions. ************************************************************/ - this.create = function (id, options) { + this.create = function (id, options) { var dialog, - + header = document.createElement("div"), - + resize_handler = null, header_detach_btn = null, @@ -884,42 +886,47 @@ var WUI_Dialog = new (function() { header_title = null, header_title_wrapper = null, + element = null, + opt = null, + status_bar = null, - + opts = {}, - + + i = 0, + key; - + if ((typeof id) === "string") { dialog = document.getElementById(id); } else if ((typeof id) === "object") { if ((typeof id.innerHTML) !== "string") { _createFailed(); - + return; } - + dialog = id; id = dialog.id; } else { _createFailed(); - + return; } - + if (_widget_list[id] !== undefined) { console.log("WUI_Dialog id '" + id + "' already created, aborting."); - + return; } - + for (key in _known_options) { if (_known_options.hasOwnProperty(key)) { opts[key] = _known_options[key]; } } - + if (options !== undefined) { for (key in options) { if (options.hasOwnProperty(key)) { @@ -929,41 +936,41 @@ var WUI_Dialog = new (function() { } } } - + var content = dialog.firstElementChild; - + if (content === null) { content = document.createElement("div"); - + dialog.appendChild(content); } - + // set dialog style dialog.style.width = opts.width; dialog.style.height = opts.height; dialog.classList.add(_class_name.dialog); - + content.classList.add(_class_name.content); - + // build the dialog header (btns and the title) header.className = _class_name.header; - + if (opts.status_bar) { content.style.height = dialog.offsetHeight - 64 + "px"; } else { content.style.height = dialog.offsetHeight - 32 + "px"; } - + //if (opts.title !== "") { header_title_wrapper = document.createElement("div"); header_title = document.createElement("div"); header_title_wrapper.style.display = "inline-block"; - + header_title.className = "wui-dialog-title"; header_title_wrapper.innerHTML = opts.title; - + header_title.appendChild(header_title_wrapper); header.appendChild(header_title); //} @@ -976,14 +983,14 @@ var WUI_Dialog = new (function() { } if (opts.closable) { - header_close_btn = document.createElement("div"); + header_close_btn = document.createElement("div"); header_close_btn.className = _class_name.btn + " " + _class_name.btn_close; header_close_btn.title = "Close"; header.appendChild(header_close_btn); } - + if (opts.minimizable) { header_minimaxi_btn = document.createElement("div"); header_minimaxi_btn.className = _class_name.btn + " " + _class_name.minimize; @@ -1004,6 +1011,32 @@ var WUI_Dialog = new (function() { header.appendChild(header_detach_btn); } + if (opts.header_btn) { + for (i = 0; i < opts.header_btn.length; i += 1) { + opt = opts.header_btn[i]; + element = document.createElement("div"); + + if (opt['title'] !== undefined) { + element.title = opt.title; + } + + if (opt['on_click'] !== undefined) { + element.addEventListener("touchstart", opt.on_click, false); + element.addEventListener("mousedown", opt.on_click, false); + } else { + continue; + } + + if (opt['class_name'] !== undefined) { + element.className = _class_name.btn + " " + opt.class_name; + } else { + continue; + } + + header.appendChild(element); + } + } + if (opts.status_bar) { status_bar = document.createElement("div"); @@ -1015,7 +1048,7 @@ var WUI_Dialog = new (function() { dialog.appendChild(status_bar); } - + header.addEventListener("click", _onClick, false); header.addEventListener("touchstart", _onClick, false); @@ -1027,7 +1060,7 @@ var WUI_Dialog = new (function() { // go! dialog.insertBefore(header, content); - + if (opts.resizable) { resize_handler = document.createElement("div"); @@ -1042,28 +1075,28 @@ var WUI_Dialog = new (function() { dialog.appendChild(resize_handler); } - + _widget_list[id] = { dialog: dialog, minimized_id: -1, resize_handler: resize_handler, - + header_minimaxi_btn: header_minimaxi_btn, opts: opts, - + detachable_ref: null, modal_element: null, status_bar: status_bar }; - + _computeThenSetPosition(dialog); - + _focus(dialog); - + if (opts.open) { this.open(id, false); } else { @@ -1072,10 +1105,10 @@ var WUI_Dialog = new (function() { return id; }; - + this.setStatusBarContent = function (id, content) { var widget = _widget_list[id], - + status_bar, detach_ref; @@ -1113,10 +1146,10 @@ var WUI_Dialog = new (function() { if (typeof console !== "undefined") { console.log("Cannot open WUI dialog \"" + id + "\"."); } - - return; + + return; } - + if (widget.detachable_ref) { if (!widget.detachable_ref.closed) { widget.detachable_ref.focus(); @@ -1154,7 +1187,7 @@ var WUI_Dialog = new (function() { _focus(dialog); }; - + this.focus = function (id) { var widget = _widget_list[id]; @@ -1165,7 +1198,7 @@ var WUI_Dialog = new (function() { return; } - + _focus(widget.dialog); }; @@ -1202,16 +1235,16 @@ var WUI_Dialog = new (function() { delete _widget_list[id]; }; - + // called from a dialog detached window, this basically ensure that the window is initialized before adding back listeners on elements this.childWindowLoaded = function (id) { var widget = _widget_list[id], child_window = widget.detachable_ref; - + if (!child_window) { return; } - + if (child_window.document.body.firstElementChild) { _addListenerWalk(widget.dialog.children[1], child_window.document.body.firstElementChild); @@ -1224,13 +1257,13 @@ var WUI_Dialog = new (function() { }, 500); } }; - + // get the corresponding detached dialog for dialog dialog_id this.getDetachedDialog = function (dialog_id) { var widget = _widget_list[dialog_id], - + i = 0; - + if (widget === undefined) { if (dialog_id !== undefined) { console.log("WUI_Dialog.getDetachedDialog: Element id '" + dialog_id + "' is not a WUI_Dialog."); @@ -1238,16 +1271,16 @@ var WUI_Dialog = new (function() { return null; } - + for (i = 0; i < _detached_windows.length; i += 1) { if (_detached_windows[i] === widget.detachable_ref) { return widget.detachable_ref; } } - + return null; }; - + document.addEventListener("keyup", _onKeyUp, false); })(); @@ -15238,6 +15271,17 @@ var _fp_main = function (join_cb) { localStorage.removeItem(_session_list_ls_key); }; + var _sessionFormNotification = function (msg) { + var validation_element = document.getElementById("fp_session_form_validation"); + validation_element.style.display = ""; + validation_element.innerHTML = msg; + }; + + var _hideSessionFormNotification = function () { + var validation_element = document.getElementById("fp_session_form_validation"); + validation_element.style.display = "none"; + }; + var _getSessionName = function () { if (_session_name_element.value === "") { return _session_name_element.placeholder; @@ -15256,18 +15300,28 @@ var _fp_main = function (join_cb) { var _setSession = function (name) { if (join_cb) { - return; + return false; } - if (name.length > 128) { // TODO : Handle notification about session validation - return; + if (name.length > 100) { + _sessionFormNotification("Session name is above the maximum limit of 100 characters.") + _session_btn_element.href = "#"; + return false; + } + + if (name.length === 0) { + name = _session_name_element.placeholder; } _session_btn_element.href = "app/" + name; + + _hideSessionFormNotification(); + + return true; }; var _isCompatibleBrowser = function () { - // check browser compatibility + // TODO: check browser compatibility }; var _joinSessionFn = function (name) { @@ -15275,7 +15329,9 @@ var _fp_main = function (join_cb) { if (join_cb) { join_cb(name); } else { - _setSession(name); + if (!_setSession(name)) { + return; + } location.href = "app/" + name; } @@ -15979,6 +16035,8 @@ _utter_fail_element.innerHTML = ""; ************************************************************/ var _fs_state = 1, + + _documentation_link = "https://www.fsynth.com/documentation.html", _username = localStorage.getItem('fs-user-name'), _local_session_settings = localStorage.getItem(_getSessionName()), @@ -18060,7 +18118,7 @@ var _shareDBConnect = function () { _sharedb_connection = new ShareDB.Connection(ws); - _sharedb_doc = _sharedb_connection.get(_session, "fs"); + _sharedb_doc = _sharedb_connection.get("_" + _session, "fs"); _sharedb_doc.on('error', _sharedbDocError); @@ -18107,7 +18165,7 @@ var _shareDBConnect = function () { _sharedb_doc_ready = true; }); - _sharedb_ctrl_doc = _sharedb_connection.get(_session, "ctrls"); + _sharedb_ctrl_doc = _sharedb_connection.get("_" + _session, "ctrls"); _sharedb_ctrl_doc.on('error', _sharedbDocError); _sharedb_ctrl_doc.subscribe(function(err) { @@ -18582,7 +18640,17 @@ _right_dialog = WUI_Dialog.create(_discuss_dialog_id, { detachable: false, min_width: 300, - min_height: 200 + min_height: 200, + + header_btn: [ + { + title: "Help", + on_click: function () { + window.open(_documentation_link + "#subsec5_12"); + }, + class_name: "fs-help-icon" + } + ] }); _setUsersList([]); @@ -18751,7 +18819,17 @@ var _createChannelSettingsDialog = function (input_channel_id) { detachable: false, min_width: 200, - min_height: 250 + min_height: 250, + + header_btn: [ + { + title: "Help", + on_click: function () { + window.open(_documentation_link + "#subsec5_5"); + }, + class_name: "fs-help-icon" + } + ] }); }; @@ -19505,7 +19583,17 @@ var _uiInit = function () { status_bar: false, detachable: false, - draggable: true + draggable: true, + + header_btn: [ + { + title: "Help", + on_click: function () { + window.open(_documentation_link + "#subsec5_8"); + }, + class_name: "fs-help-icon" + } + ] }); if (fs_settings_monophonic === "true") { @@ -19794,7 +19882,17 @@ var _uiInit = function () { status_bar: false, detachable: false, - draggable: true + draggable: true, + + header_btn: [ + { + title: "Help", + on_click: function () { + window.open(_documentation_link + "#subsec5_9"); + }, + class_name: "fs-help-icon" + } + ] }); _record_dialog = WUI_Dialog.create(_record_dialog_id, { @@ -19812,7 +19910,17 @@ var _uiInit = function () { detachable: false, draggable: true, - on_close: _onRecordDialogClose + on_close: _onRecordDialogClose, + + header_btn: [ + { + title: "Help", + on_click: function () { + window.open(_documentation_link + "#subsec5_10"); + }, + class_name: "fs-help-icon" + } + ] }); _import_dialog = WUI_Dialog.create(_import_dialog_id, { @@ -19830,7 +19938,17 @@ var _uiInit = function () { detachable: true, draggable: true, - on_close: _onImportDialogClose + on_close: _onImportDialogClose, + + header_btn: [ + { + title: "Help", + on_click: function () { + window.open(_documentation_link + "#subsec5_5"); + }, + class_name: "fs-help-icon" + } + ] }); WUI_ToolBar.create("fs_import_toolbar", { @@ -19878,9 +19996,19 @@ var _uiInit = function () { status_bar: false, detachable: true, - draggable: true + draggable: true, + + header_btn: [ + { + title: "Help", + on_click: function () { + window.open(_documentation_link + "#subsec5_11"); + }, + class_name: "fs-help-icon" + } + ] }); - +/* _analysis_dialog = WUI_Dialog.create(_analysis_dialog_id, { title: "Audio analysis", @@ -19898,7 +20026,7 @@ var _uiInit = function () { on_close: _disconnectAnalyserNode }); - +*/ _help_dialog = WUI_Dialog.create(_help_dialog_id, { title: "Fragment - Help", @@ -19929,7 +20057,17 @@ var _uiInit = function () { detachable: false, status_bar: true, - draggable: true + draggable: true, + + header_btn: [ + { + title: "Help", + on_click: function () { + window.open(_documentation_link + "#subsec5_3_1"); + }, + class_name: "fs-help-icon" + } + ] }); _controls_dialog = WUI_Dialog.create(_controls_dialog_id, { @@ -19977,6 +20115,16 @@ var _uiInit = function () { status_bar: false, detachable: true, + + header_btn: [ + { + title: "Help", + on_click: function () { + window.open(_documentation_link + "#subsec5_13"); + }, + class_name: "fs-help-icon" + } + ] }); WUI_ToolBar.create("fs_record_toolbar", { @@ -19987,7 +20135,7 @@ var _uiInit = function () { { icon: "fs-reset-icon", on_click: _rewindRecording, - tooltip: "Reset & clear" + tooltip: "Reset recording" }, ], opts: [ diff --git a/client/dist/fs.min.js b/client/dist/fs.min.js index dab433d..8beb240 100644 --- a/client/dist/fs.min.js +++ b/client/dist/fs.min.js @@ -1,11 +1,12 @@ -var WUI_Dialog=new function(){"use strict";var e=this,t={},n=null,i=null,r=null,o=0,l=0,s=0,a=0,c=null,u=[],d={dialog:"wui-dialog",content:"wui-dialog-content",btn:"wui-dialog-btn",btn_close:"wui-dialog-close",detach:"wui-dialog-detach",minimized:"wui-dialog-minimized",minimize:"wui-dialog-minimize",maximize:"wui-dialog-maximize",header:"wui-dialog-header",open:"wui-dialog-open",closed:"wui-dialog-closed",draggable:"wui-dialog-draggable",transition:"wui-dialog-transition",dim_transition:"wui-dialog-dim-transition",modal:"wui-dialog-modal",status_bar:"wui-dialog-status-bar"},h={title:"",width:"80%",height:"40%",open:!0,closable:!0,minimizable:!1,draggable:!1,resizable:!1,detachable:!1,min_width:"title",min_height:32,status_bar:!1,status_bar_content:"",keep_align_when_resized:!1,halign:"left",valign:"top",top:0,left:0,modal:!1,minimized:!1,on_close:null,on_detach:null,on_pre_detach:null,on_resize:null};Element.prototype._addEventListener||(Element.prototype._addEventListener=Element.prototype.addEventListener,Element.prototype.addEventListener=function(e,t,n){this._addEventListener(e,t,n),this.eventListenerList||(this.eventListenerList={}),this.eventListenerList[e]||(this.eventListenerList[e]=[]),this.eventListenerList[e].push(t)},Element.prototype._removeEventListener=Element.prototype.removeEventListener,Element.prototype.removeEventListener=function(e,t,n){if(this.eventListenerList){var i,r=this.eventListenerList[e];if(r)for(i=0;i100&&(i.style.zIndex=100)));for(r=o.dialog.parentElement;null!==r;)r.classList.contains(d.dialog)&&(r.style.zIndex=101),r=r.parentElement;e.style.zIndex=101}},m=function(e){var t=document.createElement("div");return t.className="wui-dialog-modal",t.addEventListener("click",function(t){t.preventDefault(),p(e,!0,!0,!0)}),t.style.zIndex=16777270,t},v=function(e){var n=t[e.id],i=n.opts,r=e.parentElement.offsetWidth,o=e.parentElement.offsetHeight,l=e.offsetWidth,s=e.offsetHeight;"center"===i.halign?e.style.left=Math.round((r-l)/2+i.left)+"px":"right"===i.halign?e.style.left=r-l+i.left+"px":e.style.left=i.left+"px","center"===i.valign?e.style.top=Math.round((o-s)/2+i.top)+"px":"bottom"===i.valign?e.style.top=o-s+i.top+"px":e.style.top=i.top+"px"},y=function(e,n){var i=t[n.id],r=i.resize_handler;i.dialog!==n&&y(i.header_minimaxi_btn,i.dialog),e.classList.toggle(d.minimize),e.classList.toggle(d.maximize),n.classList.toggle(d.minimized),n.classList.contains(d.minimized)?(n.style.borderStyle="solid",n.style.borderColor="#808080",n.style.borderWidth="1px"):(n.style.borderStyle="",n.style.borderColor="",n.style.borderWidth=""),r&&r.classList.toggle(d.open),i.status_bar&&i.status_bar.classList.toggle(d.open)},b=function(e){null===c&&(c=setTimeout(function(){c=null;var n,i,r,o,l,s,a,u=document;if(e)for(u=e.document,n=u.getElementsByClassName(d.content),a=0;a0?r.style.height=e.innerHeight-32+"px":r.style.height=e.innerHeight+"px",s=r.getBoundingClientRect(),i.opts.on_resize&&i.opts.on_resize(s.width,s.height);else for(n=u.getElementsByClassName(d.content),a=0;a0?r.style.height=o.offsetHeight-64+"px":r.style.height=o.offsetHeight-32+"px",v(o),s=r.getBoundingClientRect(),i=t[o.id],i.opts.on_resize&&i.opts.on_resize(s.width,s.height)},125))},_=function(e,t){var n,i;do{if(1==e.nodeType&&e.eventListenerList)for(n in e.eventListenerList)if("length"!==n&&e.eventListenerList.hasOwnProperty(n))for(i=0;i","",""+f+"",s,"",'',"",""].join("")),g.document.close(),g.document.body.appendChild(e.children[1].cloneNode(!0));var v=e.getElementsByClassName(d.status_bar);if(v.length>0){var y=v[0].cloneNode(!0);y.classList.add(d.open),g.document.body.appendChild(y)}g.addEventListener("keyup",function(t){27===t.keyCode&&p(e,!0,!0,!0)},!1),g.addEventListener("resize",function(){b(g)},!1),g.addEventListener("beforeunload",function(){p(e,!0,!0,!0)},!1),u.push(g)},x=function(e){e.preventDefault();var t=e.target,n=null;t.classList.contains(d.btn_close)?(n=t.parentElement.parentElement,p(n,!1,!0,!0)):t.classList.contains(d.maximize)||t.classList.contains(d.minimize)?(n=t.parentElement.parentElement,y(t,n)):t.classList.contains(d.detach)&&(n=t.parentElement.parentElement,w(n))},E=function(n){if(27===n.keyCode){var i,r;for(i in t)if(t.hasOwnProperty(i)&&(r=t[i],r.opts.closable&&"101"===r.dialog.style.zIndex&&r.dialog.classList.contains(d.open)))return void e.close(i,!0)}},L=function(e){if(n){e.preventDefault();var i,s,a,c=t[n.id],u=e.clientX,d=e.clientY,h=e.changedTouches,f=null;if(h)for(i=0;i0&&(i[0].innerHTML=n)))))},this.open=function(e,n){var i,r,o,l=t[e];if(void 0===l)return void("undefined"!=typeof console&&console.log('Cannot open WUI dialog "'+e+'".'));if(l.detachable_ref&&!l.detachable_ref.closed)return void l.detachable_ref.focus();if(o=l.dialog,l.opts.modal)for(i=m(o),l.dialog.style.zIndex=16777271,l.modal_element=i,document.body.appendChild(i),r=0;rd?(h=d,t=n.opts.max):h<0?(h=0,t=n.opts.min):t=Math.round((n.opts.min+h/d*n.opts.range)/n.opts.step)*n.opts.step,n.value===t)return;n.value=t,l=v(t,n.opts.decimals),c.value=l,n.value_input.value=l,n.opts.vertical?(s.style.height=h+"px",n.filler.style.height=h+"px"):(s.style.width=h+"px",n.filler.style.width=h+"px",i.style.left=h+"px",n.hook.style.left=h+"px"),m(n.opts.on_change,t)}},w=function(e){if(i){e.preventDefault();var t,o=e.changedTouches,l=null,s=!1,a=i.ownerDocument,c=a.defaultView||a.parentWindow;if(o){for(t=0;t=0?o+=r.opts.scroll_step:o-=r.opts.scroll_step,r.endless||(r.opts.max&&o>r.opts.max?o=r.opts.max:o0&&(o[0].style="")),r.learn_elem&&(r.learn_elem.style=""));h.learn=!0,a.style=l,s=d.id},I=function(t){t.preventDefault(),t.stopPropagation();var n,i,r,l,s,a,c,d,f=t.target,p=f.parentElement,m=e[p.id],v=m.opts,y=f.ownerDocument,b=m.element.id+o,_=1;if(document.getElementById(b)||(m.configure_panel_open=!1),m.configure_panel_open!==!0){s=y.createElement("div"),s.className="wui-rangeslider-configure-container",d=y.createElement("div"),d.className="wui-rangeslider-configure-close",n=function(e){m.configure_panel_open=!1;var t=document.getElementById(b),n=e.target.ownerDocument.getElementById(b);t&&t.parentElement&&t.parentElement.removeChild(t),n&&n.parentElement&&n.parentElement.removeChild(n)},d.addEventListener("click",n,!1),d.addEventListener("touchstart",n,!1),s.id=b,s.appendChild(d);for(r in v.configurable)v.configurable.hasOwnProperty(r)&&void 0!==h[r]&&(l=v.configurable[r],a=y.createElement("div"),a.style.display="inline-block",a.style.marginRight="8px",a.style.width="80px",a.style.textAlign="right",a.innerHTML=r.replace("_"," ")+" : ",c=y.createElement("input"),c.className=u.value_input,s.appendChild(a),s.appendChild(c),_%2===0&&s.appendChild(y.createElement("div")),c.setAttribute("type","number"),c.setAttribute("step","any"),void 0!==l&&(void 0!==l.min&&(c.setAttribute("min",l.min),c.title=c.title+" min: "+l.min),void 0!==l.max&&(c.setAttribute("max",l.max),c.title=c.title+" max: "+l.max),void 0!==l.val?c.setAttribute("value",l.val):"min"===r?c.setAttribute("value",v.min):"max"===r?c.setAttribute("value",v.max):"step"===r?c.setAttribute("value",v.step):"scroll_step"===r&&c.setAttribute("value",v.scroll_step)),c.addEventListener("input",T(t,m,r),!1),_+=1);i=g(f),p.insertBefore(s,f),m.configure_panel_open=!0}},M=function(){console.log("WUI_RangeSlider 'create' failed, first argument not an id nor a DOM element.")};this.create=function(t,n){var i,r,o={};if("string"==typeof t)i=document.getElementById(t);else{if("object"!=typeof t)return void M();if("string"!=typeof t.innerHTML)return void M();i=t,t=i.id}if(void 0!==e[t])return void console.log("WUI_RangeSlider id '"+t+"' already created, aborting.");for(r in d)d.hasOwnProperty(r)&&(o[r]=d[r]);if(void 0!==n){for(r in n)n.hasOwnProperty(r)&&void 0!==d[r]&&(o[r]=n[r]);void 0!==n.max&&(o.range=n.max),void 0!==n.step&&(o.step=n.step,void 0===n.scroll_step&&(o.scroll_step=o.step)),void 0!==n.title_on_top?o.title_on_top=n.title_on_top:o.vertical&&(o.title_on_top=!0),void 0!==n.default_value?o.default_value=n.default_value:void 0!==n.min&&void 0!==n.max&&(o.default_value=o.min+o.max/2)}o.min<0&&(o.range=o.max-o.min),e[t]=null,i.classList.add("wui-rangeslider"),o.title_on_top&&i.classList.add("wui-rangeslider-title-ontop");var l=document.createElement("div"),s=document.createElement("div"),a=document.createElement("div"),f=document.createElement("div"),p=document.createElement("div"),g=document.createElement("input"),m={element:i,opts:o,bar:null,filler:null,hook:null,endless:!1,midi:{device:null,controller:null,ctrl_type:"abs"},learn:!1,learn_elem:null,value_input:g,default_value:o.default_value,value:o.value};if(l.innerHTML=o.title,g.setAttribute("value",o.value),g.setAttribute("type","number"),g.setAttribute("step",o.step),g.classList.add(u.value_input),p.classList.add("wui-rangeslider-value"),l.classList.add("wui-rangeslider-title"),s.classList.add(u.bar),a.classList.add(u.filler),f.classList.add(u.hook),o.vertical&&(l.style.textAlign="center"),l.style.minWidth=o.title_min_width+"px",p.style.minWidth=o.value_min_width+"px",g.style.minWidth=o.value_min_width+"px",s.style.width=o.width+"px",s.style.height=o.height+"px",i.appendChild(l),o.bar||(s.style.display="none",g.style.marginTop="6px"),n.hasOwnProperty("min")?g.setAttribute("min",o.min):o.min=void 0,n.hasOwnProperty("max")?g.setAttribute("max",o.max):(o.max=void 0,void 0===o.min&&(m.endless=!0)),s.appendChild(a),a.appendChild(f),i.appendChild(s),m.bar=s,m.filler=a,m.hook=f,i.appendChild(g),o.configurable){var v=0;for(r in o.configurable)o.configurable.hasOwnProperty(r)&&void 0!==h[r]&&(v+=1);if(v>0){var y=document.createElement("div");y.classList.add("wui-rangeslider-configurable-btn"),y.addEventListener("click",I,!1),y.addEventListener("touchstart",I,!1),o.title_on_top&&!o.vertical?(y.style.bottom="0",l.style.marginBottom="4px"):o.title_on_top&&o.vertical?(l.style.marginLeft="16px",l.style.marginRight="16px",y.style.top="0"):(l.style.marginLeft="16px",y.style.top="0"),o.vertical?i.appendChild(y):i.insertBefore(y,l)}}if(o.midi)if(navigator.requestMIDIAccess){var _=document.createElement("div");_.classList.add(u.midi_learn_btn),_.title=c.midi_learn_btn,_.addEventListener("click",k,!1),_.addEventListener("touchstart",k,!1),m.learn_elem=_,o.midi.type&&(m.midi.ctrl_type=o.midi.type),i.appendChild(_)}else console.log("WUI_RangeSlider id '"+t+"' : Web MIDI API is disabled. (not supported by your browser?)");return o.bar?(s.addEventListener("mousedown",x,!1),s.addEventListener("touchstart",x,!1),s.addEventListener("mousewheel",L,!1),s.addEventListener("DOMMouseScroll",L,!1),f.addEventListener("dblclick",E,!1)):(g.addEventListener("mousewheel",L,!1),g.addEventListener("DOMMouseScroll",L,!1)),g.addEventListener("input",C,!1),e[t]=m,b(i,m,o.value),t},this.destroy=function(t){var n,i,r,l=e[t];return void 0===l?void console.log("Element id '"+t+"' is not a WUI_RangeSlider, destroying aborted."):(s===t&&(midi_learn_current=null),S(t),n=l.element,n.parentElement.removeChild(n),i=n.ownerDocument,r=i.getElementById(t+o),r&&i.removeChild(r),void delete e[t])},this.getParameters=function(t){var n,i=e[t],r={};if(void 0===i)return console.log("Element id '"+t+"' is not a WUI_RangeSlider, getParameters aborted."),null;for(n in i)i.hasOwnProperty(n)&&void 0!==f[n]&&(r[n]=i[n]);return r},this.setParameters=function(t,n){var i,r=e[t];if(void 0===r)return void console.log("Element id '"+t+"' is not a WUI_RangeSlider, setParameters aborted.");if(n){for(i in r)r.hasOwnProperty(i)&&void 0!==n[i]&&(r[i]=n[i]);r.midi.device&&r.midi.controller&&a["d"+r.midi.device]["c"+r.midi.controller].widgets.push(t),b(r.element,r,r.value)}},this.setValue=function(t,n,i){var r=e[t];return void 0===r?void console.log("Element id '"+t+"' is not a WUI_RangeSlider, setParameters aborted."):(b(r.element,r,n),void(i&&m(r.opts.on_change,n)))},this.submitMIDIMessage=function(t){var n,i,r,o,l,c,d=s,h=t.data[0],f=t.data[1],g=parseInt(t.data[2],10),v="d"+h,y="c"+f,_=0;if(s)return n=e[d],a[v]||(a[v]={}),a[v][y]||(a[v][y]={prev_value:g,widgets:[],increments:1}),a[v][y].widgets.push(d),l=p(d),l&&(r=l.getElementsByClassName(u.midi_learn_btn),r.length>0&&(r[0].style="",r[0].title=v+" "+y)),n.midi.device=h,n.midi.controller=f,n.learn=!1,n.learn_elem.style="",n.learn_elem.title=v+" "+y,void(s=null);if(a[v]&&a[v][y])for(i=a[v][y],_=0;_g){if(i.increments=-w,c=n.value-w,cn.opts.max&&!n.endless)continue; -i.prev_value=g}else if(c=n.value+i.increments,!n.endless){if(c>n.opts.max)continue;if(c0&&(l=o[0],s=l.element,s.parentElement.removeChild(s)));delete e[t]}},WUI_CircularMenu=new function(){"use strict";var e=[],t=0,n={item:"wui-circularmenu-item",show:"wui-circularmenu-show"},i={x:null,y:null,rx:64,ry:48,angle:0,item_width:32,item_height:32,window:null,element:null},r=function(t){var n,i;for(i=0;i0;--t)e.removeChild(e.firstChild);return e}function n(e,n){return t(e).appendChild(n)}function i(e,t,n,i){var r=document.createElement(e);if(n&&(r.className=n),i&&(r.style.cssText=i),"string"==typeof t)r.appendChild(document.createTextNode(t));else if(t)for(var o=0;o=t)return l+(t-o);l+=s-o,l+=n-l%n,o=s+1}}function d(){this.id=null}function h(e,t){for(var n=0;n=t)return i+Math.min(l,t-r);if(r+=o-i,r+=n-r%n,i=o+1,r>=t)return i}}function p(e){for(;Il.length<=e;)Il.push(g(Il)+" ");return Il[e]}function g(e){return e[e.length-1]}function m(e,t){for(var n=[],i=0;i"€"&&(e.toUpperCase()!=e.toLowerCase()||Ml.test(e))}function w(e,t){return t?!!(t.source.indexOf("\\w")>-1&&_(e))||t.test(e):_(e)}function x(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function E(e){return e.charCodeAt(0)>=768&&Dl.test(e)}function L(e,t,n){var r=this;this.input=n,r.scrollbarFiller=i("div",null,"CodeMirror-scrollbar-filler"),r.scrollbarFiller.setAttribute("cm-not-content","true"),r.gutterFiller=i("div",null,"CodeMirror-gutter-filler"),r.gutterFiller.setAttribute("cm-not-content","true"),r.lineDiv=i("div",null,"CodeMirror-code"),r.selectionDiv=i("div",null,null,"position: relative; z-index: 1"),r.cursorDiv=i("div",null,"CodeMirror-cursors"),r.measure=i("div",null,"CodeMirror-measure"),r.lineMeasure=i("div",null,"CodeMirror-measure"),r.lineSpace=i("div",[r.measure,r.lineMeasure,r.selectionDiv,r.cursorDiv,r.lineDiv],null,"position: relative; outline: none"),r.mover=i("div",[i("div",[r.lineSpace],"CodeMirror-lines")],null,"position: relative"),r.sizer=i("div",[r.mover],"CodeMirror-sizer"),r.sizerWidth=null,r.heightForcer=i("div",null,null,"position: absolute; height: "+Ll+"px; width: 1px;"),r.gutters=i("div",null,"CodeMirror-gutters"),r.lineGutter=null,r.scroller=i("div",[r.sizer,r.heightForcer,r.gutters],"CodeMirror-scroll"),r.scroller.setAttribute("tabIndex","-1"),r.wrapper=i("div",[r.scrollbarFiller,r.gutterFiller,r.scroller],"CodeMirror"),nl&&il<8&&(r.gutters.style.zIndex=-1,r.scroller.style.paddingRight=0),rl||Zo&&hl||(r.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(r.wrapper):e(r.wrapper)),r.viewFrom=r.viewTo=t.first,r.reportedViewFrom=r.reportedViewTo=t.first,r.view=[],r.renderedView=null,r.externalMeasured=null,r.viewOffset=0,r.lastWrapHeight=r.lastWrapWidth=0,r.updateLineNumbers=null,r.nativeBarWidth=r.barHeight=r.barWidth=0,r.scrollbarsClipped=!1,r.lineNumWidth=r.lineNumInnerWidth=r.lineNumChars=null,r.alignWidgets=!1,r.cachedCharWidth=r.cachedTextHeight=r.cachedPaddingH=null,r.maxLine=null,r.maxLineLength=0,r.maxLineChanged=!1,r.wheelDX=r.wheelDY=r.wheelStartX=r.wheelStartY=null,r.shift=!1,r.selForContextMenu=null,r.activeTouch=null,n.init(r)}function C(e,t){if(t-=e.first,t<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var n=e;!n.lines;)for(var i=0;;++i){var r=n.children[i],o=r.chunkSize();if(t=e.first&&tn?O(n,C(e,n).text.length):H(t,C(e,t.line).text.length)}function H(e,t){var n=e.ch;return null==n||n>t?O(e.line,t):n<0?O(e.line,0):e}function F(e,t){for(var n=[],i=0;i=t:o.to>t);(i||(i=[])).push(new q(l,o.from,a?null:o.to))}}return i}function K(e,t,n){var i;if(e)for(var r=0;r=t:o.to>t);if(s||o.from==t&&"bookmark"==l.type&&(!n||o.marker.insertLeft)){var a=null==o.from||(l.inclusiveLeft?o.from<=t:o.from0&&s)for(var w=0;w0)){var u=[a,1],d=W(c.from,s.from),f=W(c.to,s.to);(d<0||!l.inclusiveLeft&&!d)&&u.push({from:c.from,to:s.from}),(f>0||!l.inclusiveRight&&!f)&&u.push({from:s.to,to:c.to}),r.splice.apply(r,u),a+=u.length-1}}return r}function Z(e){var t=e.markedSpans;if(t){for(var n=0;n=0&&d<=0||u<=0&&d>=0)&&(u<=0&&(a.marker.inclusiveRight&&r.inclusiveLeft?W(c.to,n)>=0:W(c.to,n)>0)||u>=0&&(a.marker.inclusiveRight&&r.inclusiveLeft?W(c.from,i)<=0:W(c.from,i)<0)))return!0}}}function ae(e){for(var t;t=oe(e);)e=t.find(-1,!0).line;return e}function ce(e){for(var t,n;t=le(e);)e=t.find(1,!0).line,(n||(n=[])).push(e);return n}function ue(e,t){var n=C(e,t),i=ae(n);return n==i?t:I(i)}function de(e,t){if(t>e.lastLine())return t;var n,i=C(e,t);if(!he(e,i))return t;for(;n=le(i);)i=n.find(1,!0).line;return I(i)+1}function he(e,t){var n=Ol&&t.markedSpans;if(n)for(var i=void 0,r=0;rt.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)})}function ve(e,t,n,i){if(!e)return i(t,n,"ltr");for(var r=!1,o=0;ot||t==n&&l.to==t)&&(i(Math.max(l.from,t),Math.min(l.to,n),1==l.level?"rtl":"ltr"),r=!0)}r||i(t,n,"ltr")}function ye(e){return e.level%2?e.to:e.from}function be(e){return e.level%2?e.from:e.to}function _e(e){var t=Se(e);return t?ye(t[0]):0}function we(e){var t=Se(e);return t?be(g(t)):e.text.length}function xe(e,t,n){var i=e[0].level;return t==i||n!=i&&tt)return i;if(r.from==t||r.to==t){if(null!=n)return xe(e,r.level,e[n].level)?(r.from!=r.to&&(Wl=n),i):(r.from!=r.to&&(Wl=i),n);n=i}}return n}function Le(e,t,n,i){if(!i)return t+n;do t+=n;while(t>0&&E(e.text.charAt(t)));return t}function Ce(e,t,n,i){var r=Se(e);if(!r)return Te(e,t,n,i);for(var o=Ee(r,t),l=r[o],s=Le(e,t,l.level%2?-n:n,i);;){if(s>l.from&&s0==l.level%2?l.to:l.from);if(l=r[o+=n],!l)return null;s=n>0==l.level%2?Le(e,l.to,-1,i):Le(e,l.from,1,i)}}function Te(e,t,n,i){var r=t+n;if(i)for(;r>0&&E(e.text.charAt(r));)r+=n;return r<0||r>e.text.length?null:r}function Se(e){var t=e.order;return null==t&&(t=e.order=Rl(e.text)),t}function ke(e,t){return e._handlers&&e._handlers[t]||Nl}function Ie(e,t,n){if(e.removeEventListener)e.removeEventListener(t,n,!1);else if(e.detachEvent)e.detachEvent("on"+t,n);else{var i=e._handlers,r=i&&i[t];if(r){var o=h(r,n);o>-1&&(i[t]=r.slice(0,o).concat(r.slice(o+1)))}}}function Me(e,t){var n=ke(e,t);if(n.length)for(var i=Array.prototype.slice.call(arguments,2),r=0;r0}function We(e){e.prototype.on=function(e,t){Pl(this,e,t)},e.prototype.off=function(e,t){Ie(this,e,t)}}function Re(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function Ne(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function Pe(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function Be(e){Re(e),Ne(e)}function Ue(e){return e.target||e.srcElement}function He(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),fl&&e.ctrlKey&&1==t&&(t=3),t}function Fe(e){if(null==xl){var t=i("span","​");n(e,i("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(xl=t.offsetWidth<=1&&t.offsetHeight>2&&!(nl&&il<8))}var r=xl?i("span","​"):i("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return r.setAttribute("cm-text",""),r}function ze(e){if(null!=El)return El;var i=n(e,document.createTextNode("AخA")),r=vl(i,0,1).getBoundingClientRect(),o=vl(i,1,2).getBoundingClientRect();return t(e),!(!r||r.left==r.right)&&(El=o.right-r.right<3)}function Xe(e){if(null!=zl)return zl;var t=n(e,i("span","x")),r=t.getBoundingClientRect(),o=vl(t,0,1).getBoundingClientRect();return zl=Math.abs(r.left-o.left)>1}function qe(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),Xl[e]=t}function je(e,t){ql[e]=t}function Ge(e){if("string"==typeof e&&ql.hasOwnProperty(e))e=ql[e];else if(e&&"string"==typeof e.name&&ql.hasOwnProperty(e.name)){var t=ql[e.name];"string"==typeof t&&(t={name:t}),e=b(t,e),e.name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Ge("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Ge("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function Ve(e,t){t=Ge(t);var n=Xl[t.name];if(!n)return Ve(e,"text/plain");var i=n(e,t);if(jl.hasOwnProperty(t.name)){var r=jl[t.name];for(var o in r)r.hasOwnProperty(o)&&(i.hasOwnProperty(o)&&(i["_"+o]=i[o]),i[o]=r[o])}if(i.name=t.name,t.helperType&&(i.helperType=t.helperType),t.modeProps)for(var l in t.modeProps)i[l]=t.modeProps[l];return i}function Ye(e,t){var n=jl.hasOwnProperty(e)?jl[e]:jl[e]={};c(t,n)}function Ke(e,t){if(t===!0)return t;if(e.copyState)return e.copyState(t);var n={};for(var i in t){var r=t[i];r instanceof Array&&(r=r.concat([])),n[i]=r}return n}function Je(e,t){for(var n;e.innerMode&&(n=e.innerMode(t),n&&n.mode!=e);)t=n.state,e=n.mode;return n||{mode:e,state:t}}function $e(e,t,n){return!e.startState||e.startState(t,n)}function Qe(e,t,n,i){var r=[e.state.modeGen],o={};lt(e,t.text,e.doc.mode,n,function(e,t){return r.push(e,t)},o,i);for(var l=function(n){var i=e.state.overlays[n],l=1,s=0;lt(e,t.text,i.mode,!0,function(e,t){for(var n=l;se&&r.splice(l,1,e,r[l+1],o),l+=2,s=Math.min(e,o)}if(t)if(i.opaque)r.splice(n,l-n,e,"overlay "+t),l=n+2;else for(;ne.options.maxHighlightLength?Ke(e.doc.mode,i):i);t.stateAfter=i,t.styles=r.styles,r.classes?t.styleClasses=r.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.frontier&&e.doc.frontier++}return t.styles}function et(e,t,n){var i=e.doc,r=e.display;if(!i.mode.startState)return!0;var o=st(e,t,n),l=o>i.first&&C(i,o-1).stateAfter;return l=l?Ke(i.mode,l):$e(i.mode),i.iter(o,t,function(n){tt(e,n.text,l);var s=o==t-1||o%5==0||o>=r.viewFrom&&ot.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}function rt(e,t,n,i){var r,o=function(e){return{start:d.start,end:d.pos,string:d.current(),type:r||null,state:e?Ke(l.mode,u):u}},l=e.doc,s=l.mode;t=U(l,t);var a,c=C(l,t.line),u=et(e,t.line,n),d=new Gl(c.text,e.options.tabSize);for(i&&(a=[]);(i||d.pose.options.maxHighlightLength?(s=!1,l&&tt(e,t,i,d.pos),d.pos=t.length,a=null):a=ot(it(n,d,i,h),o),h){var f=h[0].name;f&&(a="m-"+(a?f+" "+a:f))}if(!s||u!=a){for(;cl;--s){if(s<=o.first)return o.first;var a=C(o,s-1);if(a.stateAfter&&(!n||s<=o.frontier))return s;var c=u(a.text,null,e.options.tabSize);(null==r||i>c)&&(r=s-1,i=c)}return r}function at(e,t,n){this.text=e,ee(this,t),this.height=n?n(this):1}function ct(e,t,n,i){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),Z(e),ee(e,n);var r=i?i(e):1;r!=e.height&&k(e,r)}function ut(e){e.parent=null,Z(e)}function dt(e,t){if(!e||/^\s*$/.test(e))return null;var n=t.addModeClass?Kl:Yl;return n[e]||(n[e]=e.replace(/\S+/g,"cm-$&"))}function ht(e,t){var n=i("span",null,null,rl?"padding-right: .1px":null),r={pre:i("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:(nl||rl)&&e.getOption("lineWrapping")};n.setAttribute("role","presentation"),r.pre.setAttribute("role","presentation"),t.measure={};for(var o=0;o<=(t.rest?t.rest.length:0);o++){var l=o?t.rest[o-1]:t.line,a=void 0;r.pos=0,r.addToken=pt,ze(e.display.measure)&&(a=Se(l))&&(r.addToken=mt(r.addToken,a)),r.map=[];var c=t!=e.display.externalMeasured&&I(l);yt(l,r,Ze(e,l,c)),l.styleClasses&&(l.styleClasses.bgClass&&(r.bgClass=s(l.styleClasses.bgClass,r.bgClass||"")),l.styleClasses.textClass&&(r.textClass=s(l.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(Fe(e.display.measure))),0==o?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(rl){var u=r.content.lastChild;(/\bcm-tab\b/.test(u.className)||u.querySelector&&u.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return Me(e,"renderLine",e,t.line,r.pre),r.pre.className&&(r.textClass=s(r.pre.className,r.textClass||"")),r}function ft(e){var t=i("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function pt(e,t,n,r,o,l,s){if(t){var a,c=e.splitSpaces?gt(t,e.trailingSpace):t,u=e.cm.state.specialChars,d=!1;if(u.test(t)){a=document.createDocumentFragment();for(var h=0;;){u.lastIndex=h;var f=u.exec(t),g=f?f.index-h:t.length-h;if(g){var m=document.createTextNode(c.slice(h,h+g));nl&&il<9?a.appendChild(i("span",[m])):a.appendChild(m),e.map.push(e.pos,e.pos+g,m),e.col+=g,e.pos+=g}if(!f)break;h+=g+1;var v=void 0;if("\t"==f[0]){var y=e.cm.options.tabSize,b=y-e.col%y;v=a.appendChild(i("span",p(b),"cm-tab")),v.setAttribute("role","presentation"),v.setAttribute("cm-text","\t"),e.col+=b}else"\r"==f[0]||"\n"==f[0]?(v=a.appendChild(i("span","\r"==f[0]?"␍":"␤","cm-invalidchar")),v.setAttribute("cm-text",f[0]),e.col+=1):(v=e.cm.options.specialCharPlaceholder(f[0]),v.setAttribute("cm-text",f[0]),nl&&il<9?a.appendChild(i("span",[v])):a.appendChild(v),e.col+=1);e.map.push(e.pos,e.pos+1,v),e.pos++}}else e.col+=t.length,a=document.createTextNode(c),e.map.push(e.pos,e.pos+t.length,a),nl&&il<9&&(d=!0),e.pos+=t.length;if(e.trailingSpace=32==c.charCodeAt(t.length-1),n||r||o||d||s){var _=n||"";r&&(_+=r),o&&(_+=o);var w=i("span",[a],_,s);return l&&(w.title=l),e.content.appendChild(w)}e.content.appendChild(a)}}function gt(e,t){if(e.length>1&&!/ /.test(e))return e;for(var n=t,i="",r=0;rc&&d.from<=c));h++);if(d.to>=u)return e(n,i,r,o,l,s,a);e(n,i.slice(0,d.to-c),r,o,null,s,a),o=null,i=i.slice(d.to-c),c=d.to}}}function vt(e,t,n,i){var r=!i&&n.widgetNode;r&&e.map.push(e.pos,e.pos+t,r),!i&&e.cm.display.input.needsContentAttribute&&(r||(r=e.content.appendChild(document.createElement("span"))),r.setAttribute("cm-marker",n.id)),r&&(e.cm.display.input.setUneditable(r),e.content.appendChild(r)),e.pos+=t,e.trailingSpace=!1}function yt(e,t,n){var i=e.markedSpans,r=e.text,o=0;if(i)for(var l,s,a,c,u,d,h,f=r.length,p=0,g=1,m="",v=0;;){if(v==p){a=c=u=d=s="",h=null,v=1/0;for(var y=[],b=void 0,_=0;_p||x.collapsed&&w.to==p&&w.from==p)?(null!=w.to&&w.to!=p&&v>w.to&&(v=w.to,c=""),x.className&&(a+=" "+x.className),x.css&&(s=(s?s+";":"")+x.css),x.startStyle&&w.from==p&&(u+=" "+x.startStyle),x.endStyle&&w.to==v&&(b||(b=[])).push(x.endStyle,w.to),x.title&&!d&&(d=x.title),x.collapsed&&(!h||ie(h.marker,x)<0)&&(h=w)):w.from>p&&v>w.from&&(v=w.from)}if(b)for(var E=0;E=f)break;for(var C=Math.min(f,v);;){if(m){var T=p+m.length;if(!h){var S=T>C?m.slice(0,C-p):m;t.addToken(t,S,l?l+a:a,u,p+S.length==v?c:"",d,s)}if(T>=C){m=m.slice(C-p),p=C;break}p=T,u=""}m=r.slice(o,o=n[g++]),l=dt(n[g++],t.cm.options)}}else for(var k=1;k2&&o.push((a.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}function Vt(e,t,n){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var i=0;in)return{map:e.measure.maps[r],cache:e.measure.caches[r],before:!0}}function Yt(e,t){t=ae(t);var i=I(t),r=e.display.externalMeasured=new bt(e.doc,t,i);r.lineN=i;var o=r.built=ht(e,r);return r.text=o.pre,n(e.display.lineMeasure,o.pre),r}function Kt(e,t,n,i){return Qt(e,$t(e,t),n,i)}function Jt(e,t){if(t>=e.display.viewFrom&&t=n.lineN&&tt)&&(o=a-s,r=o-1,t>=a&&(l="right")),null!=r){if(i=e[c+2],s==a&&n==(i.insertLeft?"left":"right")&&(l=n),"left"==n&&0==r)for(;c&&e[c-2]==e[c-3]&&e[c-1].insertLeft;)i=e[(c-=3)+2],l="left";if("right"==n&&r==a-s)for(;c=0&&(n=e[r]).left==n.right;r--);return n}function tn(e,t,n,i){var r,o=Zt(t.map,n,i),l=o.node,s=o.start,a=o.end,c=o.collapse;if(3==l.nodeType){for(var u=0;u<4;u++){for(;s&&E(t.line.text.charAt(o.coverStart+s));)--s;for(;o.coverStart+a0&&(c=i="right");var d;r=e.options.lineWrapping&&(d=l.getClientRects()).length>1?d["right"==i?d.length-1:0]:l.getBoundingClientRect()}if(nl&&il<9&&!s&&(!r||!r.left&&!r.right)){var h=l.parentNode.getClientRects()[0];r=h?{left:h.left,right:h.left+yn(e.display),top:h.top,bottom:h.bottom}:Ql}for(var f=r.top-t.rect.top,p=r.bottom-t.rect.top,g=(f+p)/2,m=t.view.measure.heights,v=0;vn.from?l(e-1):l(e,i)}i=i||C(e.doc,t.line),r||(r=$t(e,i));var a=Se(i),c=t.ch;if(!a)return l(c);var u=Ee(a,c),d=s(c,u);return null!=Wl&&(d.other=s(c,Wl)),d}function fn(e,t){var n=0;t=U(e.doc,t),e.options.lineWrapping||(n=yn(e.display)*t.ch);var i=C(e.doc,t.line),r=pe(i)+Ht(e.display);return{left:n,right:n,top:r,bottom:r+i.height}}function pn(e,t,n,i){var r=O(e,t);return r.xRel=i,n&&(r.outside=!0),r}function gn(e,t,n){var i=e.doc;if(n+=e.display.viewOffset,n<0)return pn(i.first,0,!0,-1);var r=M(i,n),o=i.first+i.size-1;if(r>o)return pn(i.first+i.size-1,C(i,o).text.length,!0,1);t<0&&(t=0);for(var l=C(i,r);;){var s=mn(e,l,r,t,n),a=le(l),c=a&&a.find(0,!0);if(!a||!(s.ch>c.from.ch||s.ch==c.from.ch&&s.xRel>0))return s;r=I(l=c.to.line)}}function mn(e,t,n,i,r){function o(i){var r=hn(e,O(n,i),"line",t,c);return s=!0,l>r.bottom?r.left-a:lm)return pn(n,f,v,1);for(;;){if(u?f==h||f==Ce(t,h,1):f-h<=1){var y=i0&&y1){var w=Qt(e,c,y,"right");l<=w.bottom&&l>=w.top&&Math.abs(i-w.right)<_&&(b=!1,y++,_=i-w.right)}for(;E(t.text.charAt(y));)++y;var x=pn(n,y,b,_<-1?-1:_>1?1:0);return x}var L=Math.ceil(d/2),C=h+L;if(u){C=h;for(var T=0;Ti?(f=C,m=S,(v=s)&&(m+=1e3),d=L):(h=C,p=S,g=s,d-=L)}}function vn(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Vl){Vl=i("pre");for(var r=0;r<49;++r)Vl.appendChild(document.createTextNode("x")),Vl.appendChild(i("br"));Vl.appendChild(document.createTextNode("x"))}n(e.measure,Vl);var o=Vl.offsetHeight/50;return o>3&&(e.cachedTextHeight=o),t(e.measure),o||1}function yn(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=i("span","xxxxxxxxxx"),r=i("pre",[t]);n(e.measure,r);var o=t.getBoundingClientRect(),l=(o.right-o.left)/10;return l>2&&(e.cachedCharWidth=l),l||10}function bn(e){for(var t=e.display,n={},i={},r=t.gutters.clientLeft,o=t.gutters.firstChild,l=0;o;o=o.nextSibling,++l)n[e.options.gutters[l]]=o.offsetLeft+o.clientLeft+r,i[e.options.gutters[l]]=o.clientWidth;return{fixedPos:_n(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:i,wrapperWidth:t.wrapper.clientWidth}}function _n(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function wn(e){var t=vn(e.display),n=e.options.lineWrapping,i=n&&Math.max(5,e.display.scroller.clientWidth/yn(e.display)-3);return function(r){if(he(e.doc,r))return 0;var o=0;if(r.widgets)for(var l=0;l=e.display.viewTo)return null;if(t-=e.display.viewFrom,t<0)return null;for(var n=e.display.view,i=0;i=e.display.viewTo||s.to().line3&&(r(f,g.top,null,g.bottom),f=u,g.bottoma.bottom||c.bottom==a.bottom&&c.right>a.right)&&(a=c),f0?t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(n=!n)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Mn(e){e.state.focused||(e.display.input.focus(),An(e))}function Dn(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,On(e))},100)}function An(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(Me(e,"focus",e,t),e.state.focused=!0,l(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),rl&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),In(e))}function On(e,t){e.state.delayingBlurEvent||(e.state.focused&&(Me(e,"blur",e,t),e.state.focused=!1,_l(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function Wn(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var i=_n(t)-t.scroller.scrollLeft+e.doc.scrollLeft,r=t.gutters.offsetWidth,o=i+"px",l=0;l.001||a<-.001)&&(k(r.line,o),Pn(r.line),r.rest))for(var c=0;c=l&&(o=M(t,pe(C(t,a))-e.wrapper.clientHeight),l=a)}return{from:o,to:Math.max(l,o+1)}}function Un(e,t){Math.abs(e.doc.scrollTop-t)<2||(e.doc.scrollTop=t,Zo||Li(e,{top:t}),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t),e.display.scrollbars.setScrollTop(t),Zo&&Li(e),bi(e,100))}function Hn(e,t,n){(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)||(t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),e.doc.scrollLeft=t,Wn(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function Fn(e){var t=e.wheelDeltaX,n=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==n&&e.detail&&e.axis==e.VERTICAL_AXIS?n=e.detail:null==n&&(n=e.wheelDelta),{x:t,y:n}}function zn(e){var t=Fn(e);return t.x*=es,t.y*=es,t}function Xn(e,t){var n=Fn(t),i=n.x,r=n.y,o=e.display,l=o.scroller,s=l.scrollWidth>l.clientWidth,a=l.scrollHeight>l.clientHeight;if(i&&s||r&&a){if(r&&fl&&rl)e:for(var c=t.target,u=o.view;c!=l;c=c.parentNode)for(var d=0;d(window.innerHeight||document.documentElement.clientHeight)&&(o=!1),null!=o&&!ul){var l=i("div","​",null,"position: absolute;\n top: "+(t.top-n.viewOffset-Ht(e.display))+"px;\n height: "+(t.bottom-t.top+Xt(e)+n.barHeight)+"px;\n left: "+t.left+"px; width: 2px;");e.display.lineSpace.appendChild(l),l.scrollIntoView(o),e.display.lineSpace.removeChild(l)}}}function Kn(e,t,n,i){null==i&&(i=0);for(var r,o=0;o<5;o++){var l=!1;r=hn(e,t);var s=n&&n!=t?hn(e,n):r,a=$n(e,Math.min(r.left,s.left),Math.min(r.top,s.top)-i,Math.max(r.left,s.left),Math.max(r.bottom,s.bottom)+i),c=e.doc.scrollTop,u=e.doc.scrollLeft;if(null!=a.scrollTop&&(Un(e,a.scrollTop),Math.abs(e.doc.scrollTop-c)>1&&(l=!0)),null!=a.scrollLeft&&(Hn(e,a.scrollLeft),Math.abs(e.doc.scrollLeft-u)>1&&(l=!0)),!l)break}return r}function Jn(e,t,n,i,r){var o=$n(e,t,n,i,r);null!=o.scrollTop&&Un(e,o.scrollTop),null!=o.scrollLeft&&Hn(e,o.scrollLeft)}function $n(e,t,n,i,r){var o=e.display,l=vn(e.display);n<0&&(n=0);var s=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:o.scroller.scrollTop,a=jt(e),c={};r-n>a&&(r=n+a);var u=e.doc.height+Ft(o),d=nu-l;if(ns+a){var f=Math.min(n,(h?u:r)-a);f!=s&&(c.scrollTop=f)}var p=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:o.scroller.scrollLeft,g=qt(e)-(e.options.fixedGutter?o.gutters.offsetWidth:0),m=i-t>g;return m&&(i=t+g),t<10?c.scrollLeft=0:tg+p-3&&(c.scrollLeft=i+(m?0:10)-g),c}function Qn(e,t,n){null==t&&null==n||ei(e),null!=t&&(e.curOp.scrollLeft=(null==e.curOp.scrollLeft?e.doc.scrollLeft:e.curOp.scrollLeft)+t),null!=n&&(e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+n)}function Zn(e){ei(e);var t=e.getCursor(),n=t,i=t;e.options.lineWrapping||(n=t.ch?O(t.line,t.ch-1):t,i=O(t.line,t.ch+1)),e.curOp.scrollToPos={from:n,to:i,margin:e.options.cursorScrollMargin,isCursor:!0}}function ei(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;var n=fn(e,t.from),i=fn(e,t.to),r=$n(e,Math.min(n.left,i.left),Math.min(n.top,i.top)-t.margin,Math.max(n.right,i.right),Math.max(n.bottom,i.bottom)+t.margin);e.scrollTo(r.scrollLeft,r.scrollTop)}}function ti(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++rs},wt(e.curOp)}function ni(e){var t=e.curOp;Et(t,function(e){for(var t=0;t=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new os(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function oi(e){e.updatedDisplay=e.mustUpdate&&xi(e.cm,e.update)}function li(e){var t=e.cm,n=t.display;e.updatedDisplay&&Nn(t),e.barMeasure=qn(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Kt(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+Xt(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-qt(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection(e.focus))}function si(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeftt)&&(r.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=r.viewTo)Ol&&ue(e.doc,t)r.viewFrom?gi(e):(r.viewFrom+=i,r.viewTo+=i);else if(t<=r.viewFrom&&n>=r.viewTo)gi(e);else if(t<=r.viewFrom){var o=mi(e,n,n+i,1);o?(r.view=r.view.slice(o.index),r.viewFrom=o.lineN,r.viewTo+=i):gi(e)}else if(n>=r.viewTo){var l=mi(e,t,t,-1);l?(r.view=r.view.slice(0,l.index),r.viewTo=l.lineN):gi(e)}else{var s=mi(e,t,t,-1),a=mi(e,n,n+i,1);s&&a?(r.view=r.view.slice(0,s.index).concat(_t(e,s.lineN,a.lineN)).concat(r.view.slice(a.index)),r.viewTo+=i):gi(e)}var c=r.externalMeasured;c&&(n=r.lineN&&t=i.viewTo)){var o=i.view[Ln(e,t)];if(null!=o.node){var l=o.changes||(o.changes=[]);h(l,n)==-1&&l.push(n)}}}function gi(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function mi(e,t,n,i){var r,o=Ln(e,t),l=e.display.view;if(!Ol||n==e.doc.first+e.doc.size)return{index:o,lineN:n};for(var s=e.display.viewFrom,a=0;a0){if(o==l.length-1)return null;r=s+l[o].size-t,o++}else r=s-t;t+=r,n+=r}for(;ue(e.doc,n)!=n;){if(o==(i<0?0:l.length-1))return null;n+=i*l[o-(i<0?1:0)].size,o+=i}return{index:o,lineN:n}}function vi(e,t,n){var i=e.display,r=i.view;0==r.length||t>=i.viewTo||n<=i.viewFrom?(i.view=_t(e,t,n),i.viewFrom=t):(i.viewFrom>t?i.view=_t(e,t,i.viewFrom).concat(i.view):i.viewFromn&&(i.view=i.view.slice(0,Ln(e,n)))),i.viewTo=n}function yi(e){for(var t=e.display.view,n=0,i=0;i=e.display.viewTo)){var n=+new Date+e.options.workTime,i=Ke(t.mode,et(e,t.frontier)),r=[];t.iter(t.frontier,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(t.frontier>=e.display.viewFrom){var l=o.styles,s=o.text.length>e.options.maxHighlightLength,a=Qe(e,o,s?Ke(t.mode,i):i,!0);o.styles=a.styles;var c=o.styleClasses,u=a.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var d=!l||l.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),h=0;!d&&hn)return bi(e,e.options.workDelay),!0}),r.length&&ci(e,function(){for(var t=0;t=i.viewFrom&&n.visible.to<=i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>=i.viewTo)&&i.renderedView==i.view&&0==yi(e))return!1;Rn(e)&&(gi(e),n.dims=bn(e));var l=r.first+r.size,s=Math.max(n.visible.from-e.options.viewportMargin,r.first),a=Math.min(l,n.visible.to+e.options.viewportMargin);i.viewFroma&&i.viewTo-a<20&&(a=Math.min(l,i.viewTo)),Ol&&(s=ue(e.doc,s),a=de(e.doc,a));var c=s!=i.viewFrom||a!=i.viewTo||i.lastWrapHeight!=n.wrapperHeight||i.lastWrapWidth!=n.wrapperWidth;vi(e,s,a),i.viewOffset=pe(C(e.doc,i.viewFrom)),e.display.mover.style.top=i.viewOffset+"px";var u=yi(e);if(!c&&0==u&&!n.force&&i.renderedView==i.view&&(null==i.updateLineNumbers||i.updateLineNumbers>=i.viewTo))return!1;var d=o();return u>4&&(i.lineDiv.style.display="none"),Ci(e,i.updateLineNumbers,n.dims),u>4&&(i.lineDiv.style.display=""),i.renderedView=i.view,d&&o()!=d&&d.offsetHeight&&d.focus(),t(i.cursorDiv),t(i.selectionDiv),i.gutters.style.height=i.sizer.style.minHeight=0,c&&(i.lastWrapHeight=n.wrapperHeight,i.lastWrapWidth=n.wrapperWidth,bi(e,400)),i.updateLineNumbers=null,!0}function Ei(e,t){for(var n=t.viewport,i=!0;(i&&e.options.lineWrapping&&t.oldDisplayWidth!=qt(e)||(n&&null!=n.top&&(n={top:Math.min(e.doc.height+Ft(e.display)-jt(e),n.top)}),t.visible=Bn(e.display,e.doc,n),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&xi(e,t);i=!1){Nn(e);var r=qn(e);Cn(e),jn(e,r),Si(e,r)}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function Li(e,t){var n=new os(e,t);if(xi(e,n)){Nn(e),Ei(e,n);var i=qn(e);Cn(e),jn(e,i),Si(e,i),n.finish()}}function Ci(e,n,i){function r(t){var n=t.nextSibling;return rl&&fl&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),n}for(var o=e.display,l=e.options.lineNumbers,s=o.lineDiv,a=s.firstChild,c=o.view,u=o.viewFrom,d=0;d-1&&(p=!1),Tt(e,f,u,i)),p&&(t(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(A(e.options,u)))),a=f.node.nextSibling}else{var g=Wt(e,f,u,i);s.insertBefore(g,a)}u+=f.size}for(;a;)a=r(a)}function Ti(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function Si(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+Xt(e)+"px"}function ki(e){var n=e.display.gutters,r=e.options.gutters;t(n);for(var o=0;o-1&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}function Mi(e,t){this.ranges=e,this.primIndex=t}function Di(e,t){this.anchor=e,this.head=t}function Ai(e,t){var n=e[t];e.sort(function(e,t){return W(e.from(),t.from())}),t=h(e,n);for(var i=1;i=0){var l=P(o.from(),r.from()),s=N(o.to(),r.to()),a=o.empty()?r.from()==r.head:o.from()==o.head;i<=t&&--t,e.splice(--i,2,new Di(a?s:l,a?l:s))}}return new Mi(e,t)}function Oi(e,t){return new Mi([new Di(e,t||e)],0)}function Wi(e){return e.text?O(e.from.line+e.text.length-1,g(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function Ri(e,t){if(W(e,t.from)<0)return e;if(W(e,t.to)<=0)return Wi(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,i=e.ch;return e.line==t.to.line&&(i+=Wi(t).ch-t.to.ch),O(n,i)}function Ni(e,t){for(var n=[],i=0;i1&&e.remove(s.line+1,p-1),e.insert(s.line+1,y)}Lt(e,"change",e,t)}function Xi(e,t,n){function i(e,r,o){if(e.linked)for(var l=0;l1&&!e.done[e.done.length-2].ranges?(e.done.pop(),g(e.done)):void 0}function Ki(e,t,n,i){var r=e.history;r.undone.length=0;var o,l,s=+new Date;if((r.lastOp==i||r.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&r.lastModTime>s-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))&&(o=Yi(r,r.lastOp==i)))l=g(o.changes),0==W(t.from,t.to)&&0==W(t.from,l.to)?l.to=Wi(t):o.changes.push(Gi(e,t));else{var a=g(r.done);for(a&&a.ranges||Qi(e.sel,r.done),o={changes:[Gi(e,t)],generation:r.generation},r.done.push(o);r.done.length>r.undoDepth;)r.done.shift(),r.done[0].ranges||r.done.shift()}r.done.push(n),r.generation=++r.maxGeneration,r.lastModTime=r.lastSelTime=s,r.lastOp=r.lastSelOp=i,r.lastOrigin=r.lastSelOrigin=t.origin,l||Me(e,"historyAdded")}function Ji(e,t,n,i){var r=t.charAt(0);return"*"==r||"+"==r&&n.ranges.length==i.ranges.length&&n.somethingSelected()==i.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function $i(e,t,n,i){var r=e.history,o=i&&i.origin;n==r.lastSelOp||o&&r.lastSelOrigin==o&&(r.lastModTime==r.lastSelTime&&r.lastOrigin==o||Ji(e,o,g(r.done),t))?r.done[r.done.length-1]=t:Qi(t,r.done),r.lastSelTime=+new Date,r.lastSelOrigin=o,r.lastSelOp=n,i&&i.clearRedo!==!1&&Vi(r.undone)}function Qi(e,t){var n=g(t);n&&n.ranges&&n.equals(e)||t.push(e)}function Zi(e,t,n,i){var r=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,i),function(n){n.markedSpans&&((r||(r=t["spans_"+e.id]={}))[o]=n.markedSpans),++o})}function er(e){if(!e)return null;for(var t,n=0;n-1&&(g(s)[d]=c[d],delete c[d])}}}return i}function rr(e,t,n,i){if(e.cm&&e.cm.display.shift||e.extend){var r=t.anchor;if(i){var o=W(n,r)<0;o!=W(i,r)<0?(r=n,n=i):o!=W(n,i)<0&&(n=i)}return new Di(r,n)}return new Di(i||n,n)}function or(e,t,n,i){dr(e,new Mi([rr(e,e.sel.primary(),t,n)],0),i)}function lr(e,t,n){for(var i=[],r=0;r=t.ch:s.to>t.ch))){if(r&&(Me(a,"beforeCursorEnter"),a.explicitlyCleared)){if(o.markedSpans){--l;continue}break}if(!a.atomic)continue;if(n){var c=a.find(i<0?1:-1),u=void 0;if((i<0?a.inclusiveRight:a.inclusiveLeft)&&(c=yr(e,c,-i,c&&c.line==t.line?o:null)),c&&c.line==t.line&&(u=W(c,n))&&(i<0?u<0:u>0))return mr(e,c,t,i,r)}var d=a.find(i<0?-1:1);return(i<0?a.inclusiveLeft:a.inclusiveRight)&&(d=yr(e,d,i,d.line==t.line?o:null)),d?mr(e,d,t,i,r):null}}return t}function vr(e,t,n,i,r){var o=i||1,l=mr(e,t,n,o,r)||!r&&mr(e,t,n,o,!0)||mr(e,t,n,-o,r)||!r&&mr(e,t,n,-o,!0);return l?l:(e.cantEdit=!0,O(e.first,0))}function yr(e,t,n,i){return n<0&&0==t.ch?t.line>e.first?U(e,O(t.line-1)):null:n>0&&t.ch==(i||C(e,t.line)).text.length?t.line=0;--r)xr(e,{from:i[r].from,to:i[r].to,text:r?[""]:t.text});else xr(e,t)}}function xr(e,t){if(1!=t.text.length||""!=t.text[0]||0!=W(t.from,t.to)){var n=Ni(e,t);Ki(e,t,n,e.cm?e.cm.curOp.id:NaN),Cr(e,t,n,J(e,t));var i=[];Xi(e,function(e,n){n||h(i,e.history)!=-1||(Mr(e.history,t),i.push(e.history)),Cr(e,t,null,J(e,t))})}}function Er(e,t,n){if(!e.cm||!e.cm.state.suppressEdits||n){for(var i,r=e.history,o=e.sel,l="undo"==t?r.done:r.undone,s="undo"==t?r.undone:r.done,a=0;a=0;--f){var p=d(f);if(p)return p.v}}}}function Lr(e,t){if(0!=t&&(e.first+=t,e.sel=new Mi(m(e.sel.ranges,function(e){return new Di(O(e.anchor.line+t,e.anchor.ch),O(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){fi(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,i=n.viewFrom;ie.lastLine())){if(t.from.lineo&&(t={from:t.from,to:O(o,C(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=T(e,t.from,t.to),n||(n=Ni(e,t)),e.cm?Tr(e.cm,t,i):zi(e,t,i),hr(e,n,Tl)}}function Tr(e,t,n){var i=e.doc,r=e.display,o=t.from,l=t.to,s=!1,a=o.line;e.options.lineWrapping||(a=I(ae(C(i,o.line))),i.iter(a,l.line+1,function(e){if(e==r.maxLine)return s=!0,!0})),i.sel.contains(t.from,t.to)>-1&&Ae(e),zi(i,t,n,wn(e)),e.options.lineWrapping||(i.iter(a,o.line+t.text.length,function(e){var t=ge(e);t>r.maxLineLength&&(r.maxLine=e,r.maxLineLength=t,r.maxLineChanged=!0,s=!1)}),s&&(e.curOp.updateMaxLine=!0)),i.frontier=Math.min(i.frontier,o.line),bi(e,400);var c=t.text.length-(l.line-o.line)-1;t.full?fi(e):o.line!=l.line||1!=t.text.length||Fi(e.doc,t)?fi(e,o.line,l.line+1,c):pi(e,o.line,"text");var u=Oe(e,"changes"),d=Oe(e,"change");if(d||u){var h={from:o,to:l,text:t.text,removed:t.removed,origin:t.origin};d&&Lt(e,"change",e,h),u&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(h)}e.display.selForContextMenu=null}function Sr(e,t,n,i,r){if(i||(i=n),W(i,n)<0){var o=i;i=n,n=o}"string"==typeof t&&(t=e.splitLines(t)),wr(e,{from:n,to:i,text:t,origin:r})}function kr(e,t,n,i){n0||0==s&&l.clearWhenEmpty!==!1)return l;if(l.replacedWith&&(l.collapsed=!0,l.widgetNode=i("span",[l.replacedWith],"CodeMirror-widget"),l.widgetNode.setAttribute("role","presentation"),r.handleMouseEvents||l.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(l.widgetNode.insertLeft=!0)),l.collapsed){if(se(e,t.line,t,n,l)||t.line!=n.line&&se(e,n.line,t,n,l))throw new Error("Inserting collapsed marker partially overlapping an existing one");X()}l.addToHistory&&Ki(e,{from:t,to:n,origin:"markText"},e.sel,NaN);var a,u=t.line,d=e.cm;if(e.iter(u,n.line+1,function(e){d&&l.collapsed&&!d.options.lineWrapping&&ae(e)==d.display.maxLine&&(a=!0),l.collapsed&&u!=t.line&&k(e,0),V(e,new q(l,u==t.line?t.ch:null,u==n.line?n.ch:null)),++u}),l.collapsed&&e.iter(t.line,n.line+1,function(t){he(e,t)&&k(t,0)}),l.clearOnEnter&&Pl(l,"beforeCursorEnter",function(){return l.clear()}),l.readOnly&&(z(),(e.history.done.length||e.history.undone.length)&&e.clearHistory()),l.collapsed&&(l.id=++ls,l.atomic=!0),d){if(a&&(d.curOp.updateMaxLine=!0),l.collapsed)fi(d,t.line,n.line+1);else if(l.className||l.title||l.startStyle||l.endStyle||l.css)for(var h=t.line;h<=n.line;h++)pi(d,h,"text");l.atomic&&pr(d.doc),Lt(d,"markerAdded",d,l)}return l}function Ur(e,t){var n=this;this.markers=e,this.primary=t;for(var i=0;i-1)return t.state.draggingText(e),void setTimeout(function(){return t.display.input.focus()},20);try{var c=e.dataTransfer.getData("Text");if(c){var u;if(t.state.draggingText&&!t.state.draggingText.copy&&(u=t.listSelections()),hr(t.doc,Oi(n,n)),u)for(var d=0;d=0;t--)Sr(e.doc,"",i[t].from,i[t].to,"+delete");Zn(e)})}function oo(e,t){var n=C(e.doc,t),i=ae(n);i!=n&&(t=I(i));var r=Se(i),o=r?r[0].level%2?we(i):_e(i):0;return O(t,o)}function lo(e,t){for(var n,i=C(e.doc,t);n=le(i);)i=n.find(1,!0).line,t=null;var r=Se(i),o=r?r[0].level%2?_e(i):we(i):i.text.length;return O(null==t?I(i):t,o)}function so(e,t){var n=oo(e,t.line),i=C(e.doc,n.line),r=Se(i);if(!r||0==r[0].level){var o=Math.max(0,i.text.search(/\S/)),l=t.line==n.line&&t.ch<=o&&t.ch;return O(n.line,l?0:o)}return n}function ao(e,t,n){if("string"==typeof t&&(t=ys[t],!t))return!1;e.display.input.ensurePolled();var i=e.display.shift,r=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),n&&(e.display.shift=!1),r=t(e)!=Cl}finally{e.display.shift=i,e.state.suppressEdits=!1}return r}function co(e,t,n){for(var i=0;ir-400&&0==W(vs.pos,n)?i="triple":ms&&ms.time>r-400&&0==W(ms.pos,n)?(i="double",vs={time:r,pos:n}):(i="single",ms={time:r,pos:n});var l,s=e.doc.sel,c=fl?t.metaKey:t.ctrlKey;e.options.dragDrop&&Bl&&!e.isReadOnly()&&"single"==i&&(l=s.contains(n))>-1&&(W((l=s.ranges[l]).from(),n)<0||n.xRel>0)&&(W(l.to(),n)>0||n.xRel<0)?_o(e,t,n,c):wo(e,t,n,i,c)}function _o(e,t,n,i){var r=e.display,o=+new Date,l=ui(e,function(s){rl&&(r.scroller.draggable=!1),e.state.draggingText=!1,Ie(document,"mouseup",l),Ie(r.scroller,"drop",l),Math.abs(t.clientX-s.clientX)+Math.abs(t.clientY-s.clientY)<10&&(Re(s),!i&&+new Date-200_&&r.push(new Di(O(m,_),O(m,f(y,c,o))))}r.length||r.push(new Di(n,n)),dr(d,Ai(g.ranges.slice(0,p).concat(r),p),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var w=h,x=w.anchor,E=t;if("single"!=i){var L;L="double"==i?e.findWordAt(t):new Di(O(t.line,0),U(d,O(t.line+1,0))),W(L.anchor,x)>0?(E=L.head,x=P(w.from(),L.anchor)):(E=L.anchor,x=N(w.to(),L.head))}var T=g.ranges.slice(0);T[p]=new Di(U(d,x),E),dr(d,Ai(T,p),Sl)}}function s(t){var n=++w,r=En(e,t,!0,"rect"==i);if(r)if(0!=W(r,b)){e.curOp.focus=o(),l(r);var a=Bn(c,d);(r.line>=a.to||r.line_.bottom?20:0;u&&setTimeout(ui(e,function(){w==n&&(c.scroller.scrollTop+=u,s(t))}),50)}}function a(t){e.state.selectingText=!1,w=1/0,Re(t),c.input.focus(),Ie(document,"mousemove",x),Ie(document,"mouseup",E),d.history.lastSelOrigin=null}var c=e.display,d=e.doc;Re(t);var h,p,g=d.sel,m=g.ranges;if(r&&!t.shiftKey?(p=d.sel.contains(n),h=p>-1?m[p]:new Di(n,n)):(h=d.sel.primary(),p=d.sel.primIndex),pl?t.shiftKey&&t.metaKey:t.altKey)i="rect",r||(h=new Di(n,n)),n=En(e,t,!0,!0),p=-1;else if("double"==i){var v=e.findWordAt(n);h=e.display.shift||d.extend?rr(d,h,v.anchor,v.head):v}else if("triple"==i){var y=new Di(O(n.line,0),U(d,O(n.line+1,0)));h=e.display.shift||d.extend?rr(d,h,y.anchor,y.head):y}else h=rr(d,h,n);r?p==-1?(p=m.length,dr(d,Ai(m.concat([h]),p),{scroll:!1,origin:"*mouse"})):m.length>1&&m[p].empty()&&"single"==i&&!t.shiftKey?(dr(d,Ai(m.slice(0,p).concat(m.slice(p+1)),0),{scroll:!1,origin:"*mouse"}),g=d.sel):sr(d,p,h,Sl):(p=0,dr(d,new Mi([h],0),Sl),g=d.sel);var b=n,_=c.wrapper.getBoundingClientRect(),w=0,x=ui(e,function(e){He(e)?s(e):a(e)}),E=ui(e,a);e.state.selectingText=E,Pl(document,"mousemove",x),Pl(document,"mouseup",E)}function xo(e,t,n,i){var r,o;try{r=t.clientX,o=t.clientY}catch(e){return!1}if(r>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;i&&Re(t);var l=e.display,s=l.lineDiv.getBoundingClientRect();if(o>s.bottom||!Oe(e,n))return Pe(t);o-=s.top-l.viewOffset;for(var a=0;a=r){var u=M(e.doc,o),d=e.options.gutters[a];return Me(e,n,e,u,d,t),Pe(t)}}}function Eo(e,t){return xo(e,t,"gutterClick",!0)}function Lo(e,t){Ut(e.display,t)||Co(e,t)||De(e,t,"contextmenu")||e.display.input.onContextMenu(t)}function Co(e,t){return!!Oe(e,"gutterContextMenu")&&xo(e,t,"gutterContextMenu",!1)}function To(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),ln(e)}function So(e){function t(t,i,r,o){e.defaults[t]=i,r&&(n[t]=o?function(e,t,n){n!=ws&&r(e,t,n)}:r)}var n=e.optionHandlers;e.defineOption=t,e.Init=ws,t("value","",function(e,t){return e.setValue(t)},!0),t("mode",null,function(e,t){e.doc.modeOption=t,Ui(e)},!0),t("indentUnit",2,Ui,!0),t("indentWithTabs",!1),t("smartIndent",!0),t("tabSize",4,function(e){Hi(e),ln(e),fi(e)},!0),t("lineSeparator",null,function(e,t){if(e.doc.lineSep=t,t){var n=[],i=e.doc.first;e.doc.iter(function(e){for(var r=0;;){var o=e.text.indexOf(t,r);if(o==-1)break;r=o+t.length,n.push(O(i,o))}i++});for(var r=n.length-1;r>=0;r--)Sr(e.doc,t,n[r],O(n[r].line,n[r].ch+t.length))}}),t("specialChars",/[\u0000-\u001f\u007f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),n!=ws&&e.refresh()}),t("specialCharPlaceholder",ft,function(e){return e.refresh()},!0),t("electricChars",!0),t("inputStyle",hl?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),t("spellcheck",!1,function(e,t){return e.getInputField().spellcheck=t},!0),t("rtlMoveVisually",!gl),t("wholeLineUpdateBefore",!0),t("theme","default",function(e){To(e),ko(e)},!0),t("keyMap","default",function(e,t,n){var i=io(t),r=n!=ws&&io(n);r&&r.detach&&r.detach(e,i),i.attach&&i.attach(e,r||null)}),t("extraKeys",null),t("lineWrapping",!1,Mo,!0),t("gutters",[],function(e){Ii(e.options),ko(e)},!0),t("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?_n(e.display)+"px":"0",e.refresh()},!0),t("coverGutterNextToScrollbar",!1,function(e){return jn(e)},!0),t("scrollbarStyle","native",function(e){Vn(e),jn(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),t("lineNumbers",!1,function(e){Ii(e.options),ko(e)},!0),t("firstLineNumber",1,ko,!0),t("lineNumberFormatter",function(e){return e},ko,!0),t("showCursorWhenSelecting",!1,Cn,!0),t("resetSelectionOnContextMenu",!0),t("lineWiseCopyCut",!0),t("readOnly",!1,function(e,t){"nocursor"==t?(On(e),e.display.input.blur(),e.display.disabled=!0):e.display.disabled=!1,e.display.input.readOnlyChanged(t)}),t("disableInput",!1,function(e,t){t||e.display.input.reset()},!0),t("dragDrop",!0,Io),t("allowDropFileTypes",null),t("cursorBlinkRate",530),t("cursorScrollMargin",0),t("cursorHeight",1,Cn,!0),t("singleCursorHeightPerLine",!0,Cn,!0),t("workTime",100),t("workDelay",100),t("flattenSpans",!0,Hi,!0),t("addModeClass",!1,Hi,!0),t("pollInterval",100),t("undoDepth",200,function(e,t){return e.doc.history.undoDepth=t}),t("historyEventDelay",1250),t("viewportMargin",10,function(e){return e.refresh()},!0),t("maxHighlightLength",1e4,Hi,!0),t("moveInputWithCursor",!0,function(e,t){t||e.display.input.resetPosition()}),t("tabindex",null,function(e,t){return e.display.input.getField().tabIndex=t||""}),t("autofocus",null)}function ko(e){ki(e),fi(e),Wn(e)}function Io(e,t,n){var i=n&&n!=ws;if(!t!=!i){var r=e.display.dragFunctions,o=t?Pl:Ie;o(e.display.scroller,"dragstart",r.start),o(e.display.scroller,"dragenter",r.enter),o(e.display.scroller,"dragover",r.over),o(e.display.scroller,"dragleave",r.leave),o(e.display.scroller,"drop",r.drop)}}function Mo(e){e.options.lineWrapping?(l(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(_l(e.display.wrapper,"CodeMirror-wrap"),me(e)),xn(e),fi(e),ln(e),setTimeout(function(){return jn(e)},100)}function Do(e,t){var n=this;if(!(this instanceof Do))return new Do(e,t);this.options=t=t?c(t):{},c(xs,t,!1),Ii(t);var i=t.value;"string"==typeof i&&(i=new as(i,t.mode,null,t.lineSeparator)),this.doc=i;var r=new Do.inputStyles[t.inputStyle](this),o=this.display=new L(e,i,r);o.wrapper.CodeMirror=this,ki(this),To(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Vn(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new d,keySeq:null,specialChars:null},t.autofocus&&!hl&&o.input.focus(),nl&&il<11&&setTimeout(function(){return n.display.input.reset(!0)},20),Ao(this),Kr(),ti(this),this.curOp.forceUpdate=!0,qi(this,i),t.autofocus&&!hl||this.hasFocus()?setTimeout(a(An,this),20):On(this);for(var l in Es)Es.hasOwnProperty(l)&&Es[l](n,t[l],ws);Rn(this),t.finishInit&&t.finishInit(this);for(var s=0;s400}var r=e.display;Pl(r.scroller,"mousedown",ui(e,yo)),nl&&il<11?Pl(r.scroller,"dblclick",ui(e,function(t){if(!De(e,t)){var n=En(e,t);if(n&&!Eo(e,t)&&!Ut(e.display,t)){Re(t);var i=e.findWordAt(n);or(e.doc,i.anchor,i.head)}}})):Pl(r.scroller,"dblclick",function(t){return De(e,t)||Re(t)}),bl||Pl(r.scroller,"contextmenu",function(t){return Lo(e,t)});var o,l={end:0};Pl(r.scroller,"touchstart",function(t){if(!De(e,t)&&!n(t)){r.input.ensurePolled(),clearTimeout(o);var i=+new Date;r.activeTouch={start:i,moved:!1,prev:i-l.end<=300?l:null},1==t.touches.length&&(r.activeTouch.left=t.touches[0].pageX,r.activeTouch.top=t.touches[0].pageY)}}),Pl(r.scroller,"touchmove",function(){r.activeTouch&&(r.activeTouch.moved=!0)}),Pl(r.scroller,"touchend",function(n){var o=r.activeTouch;if(o&&!Ut(r,n)&&null!=o.left&&!o.moved&&new Date-o.start<300){var l,s=e.coordsChar(r.activeTouch,"page");l=!o.prev||i(o,o.prev)?new Di(s,s):!o.prev.prev||i(o,o.prev.prev)?e.findWordAt(s):new Di(O(s.line,0),U(e.doc,O(s.line+1,0))),e.setSelection(l.anchor,l.head),e.focus(),Re(n)}t()}),Pl(r.scroller,"touchcancel",t),Pl(r.scroller,"scroll",function(){r.scroller.clientHeight&&(Un(e,r.scroller.scrollTop),Hn(e,r.scroller.scrollLeft,!0),Me(e,"scroll",e))}),Pl(r.scroller,"mousewheel",function(t){return Xn(e,t)}),Pl(r.scroller,"DOMMouseScroll",function(t){return Xn(e,t)}),Pl(r.wrapper,"scroll",function(){return r.wrapper.scrollTop=r.wrapper.scrollLeft=0}),r.dragFunctions={enter:function(t){De(e,t)||Be(t)},over:function(t){De(e,t)||(Gr(e,t),Be(t))},start:function(t){return jr(e,t)},drop:ui(e,qr),leave:function(t){De(e,t)||Vr(e)}};var s=r.input.getField();Pl(s,"keyup",function(t){return mo.call(e,t)}),Pl(s,"keydown",ui(e,po)),Pl(s,"keypress",ui(e,vo)),Pl(s,"focus",function(t){return An(e,t)}),Pl(s,"blur",function(t){return On(e,t)})}function Oo(e,t,n,i){var r,o=e.doc;null==n&&(n="add"),"smart"==n&&(o.mode.indent?r=et(e,t):n="prev");var l=e.options.tabSize,s=C(o,t),a=u(s.text,null,l);s.stateAfter&&(s.stateAfter=null);var c,d=s.text.match(/^\s*/)[0];if(i||/\S/.test(s.text)){if("smart"==n&&(c=o.mode.indent(r,s.text.slice(d.length),s.text),c==Cl||c>150)){if(!i)return;n="prev"}}else c=0,n="not";"prev"==n?c=t>o.first?u(C(o,t-1).text,null,l):0:"add"==n?c=a+e.options.indentUnit:"subtract"==n?c=a-e.options.indentUnit:"number"==typeof n&&(c=a+n),c=Math.max(0,c);var h="",f=0;if(e.options.indentWithTabs)for(var g=Math.floor(c/l);g;--g)f+=l,h+="\t";if(f1)if(Cs&&Cs.text.join("\n")==t){if(i.ranges.length%Cs.text.length==0){a=[];for(var c=0;c=0;d--){var h=i.ranges[d],f=h.from(),p=h.to();h.empty()&&(n&&n>0?f=O(f.line,f.ch-n):e.state.overwrite&&!l?p=O(p.line,Math.min(C(o,p.line).text.length,p.ch+g(s).length)):Cs&&Cs.lineWise&&Cs.text.join("\n")==t&&(f=p=O(f.line,0))),u=e.curOp.updateInput;var v={from:f,to:p,text:a?a[d%a.length]:s,origin:r||(l?"paste":e.state.cutIncoming?"cut":"+input")};wr(e.doc,v),Lt(e,"inputRead",e,v)}t&&!l&&Po(e,t),Zn(e),e.curOp.updateInput=u,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function No(e,t){var n=e.clipboardData&&e.clipboardData.getData("Text");if(n)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||ci(t,function(){return Ro(t,n,0,null,"paste")}),!0}function Po(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var n=e.doc.sel,i=n.ranges.length-1;i>=0;i--){var r=n.ranges[i];if(!(r.head.ch>100||i&&n.ranges[i-1].head.line==r.head.line)){var o=e.getModeAt(r.head),l=!1;if(o.electricChars){for(var s=0;s-1){l=Oo(e,r.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(C(e.doc,r.head.line).text.slice(0,r.head.ch))&&(l=Oo(e,r.head.line,"smart"));l&&Lt(e,"electricInput",e,r.head.line)}}}function Bo(e){for(var t=[],n=[],i=0;ii&&(Oo(t,o.head.line,e,!0),i=o.head.line,r==t.doc.sel.primIndex&&Zn(t));else{var l=o.from(),s=o.to(),a=Math.max(i,l.line);i=Math.min(t.lastLine(),s.line-(s.ch?0:1))+1;for(var c=a;c0&&sr(t.doc,r,new Di(l,u[r].to()),Tl)}}}),getTokenAt:function(e,t){return rt(this,e,t)},getLineTokens:function(e,t){return rt(this,O(e),t,!0)},getTokenTypeAt:function(e){e=U(this.doc,e);var t,n=Ze(this,C(this.doc,e.line)),i=0,r=(n.length-1)/2,o=e.ch;if(0==o)t=n[2];else for(;;){var l=i+r>>1;if((l?n[2*l-1]:0)>=o)r=l;else{if(!(n[2*l+1]o&&(e=o,r=!0),i=C(this.doc,e)}else i=e;return cn(this,i,{top:0,left:0},t||"page",n).top+(r?this.doc.height-pe(i):0)},defaultTextHeight:function(){return vn(this.display)},defaultCharWidth:function(){return yn(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,i,r){var o=this.display;e=hn(this,U(this.doc,e));var l=e.bottom,s=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==i)l=e.top;else if("above"==i||"near"==i){var a=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==i||e.bottom+t.offsetHeight>a)&&e.top>t.offsetHeight?l=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=a&&(l=e.bottom),s+t.offsetWidth>c&&(s=c-t.offsetWidth)}t.style.top=l+"px",t.style.left=t.style.right="","right"==r?(s=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==r?s=0:"middle"==r&&(s=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=s+"px"),n&&Jn(this,s,l,s+t.offsetWidth,l+t.offsetHeight)},triggerOnKeyDown:di(po),triggerOnKeyPress:di(vo),triggerOnKeyUp:mo,execCommand:function(e){if(ys.hasOwnProperty(e))return ys[e].call(null,this)},triggerElectric:di(function(e){Po(this,e)}),findPosH:function(e,t,n,i){var r=this,o=1;t<0&&(o=-1,t=-t);for(var l=U(this.doc,e),s=0;s0&&s(n.charAt(i-1));)--i;for(;r.5)&&xn(this),Me(this,"refresh",this)}),swapDoc:di(function(e){var t=this.doc;return t.cm=null,qi(this,e),ln(this),this.display.input.reset(),this.scrollTo(e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,Lt(this,"swapDoc",this,t),t}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},We(e),e.registerHelper=function(t,i,r){n.hasOwnProperty(t)||(n[t]=e[t]={_global:[]}),n[t][i]=r},e.registerGlobalHelper=function(t,i,r,o){e.registerHelper(t,i,o),n[t]._global.push({pred:r,val:o})}}function zo(e,t,n,i,r){function o(){var t=s+n;return!(t=e.first+e.size)&&(s=t,u=C(e,t))}function l(e){var t=(r?Ce:Te)(u,a,n,!0);if(null==t){if(e||!o())return!1;a=r?(n<0?we:_e)(u):n<0?u.text.length:0}else a=t;return!0}var s=t.line,a=t.ch,c=n,u=C(e,s);if("char"==i)l();else if("column"==i)l(!0);else if("word"==i||"group"==i)for(var d=null,h="group"==i,f=e.cm&&e.cm.getHelper(t,"wordChars"),p=!0;!(n<0)||l(!p);p=!1){var g=u.text.charAt(a)||"\n",m=w(g,f)?"w":h&&"\n"==g?"n":!h||/\s/.test(g)?null:"p";if(!h||p||m||(m="s"),d&&d!=m){n<0&&(n=1,l());break}if(m&&(d=m),n>0&&!l(!p))break}var v=vr(e,O(s,a),t,c,!0);return W(t,v)||(v.hitSide=!0),v}function Xo(e,t,n,i){var r,o=e.doc,l=t.left;if("page"==i){var s=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),a=Math.max(s-.5*vn(e.display),3);r=(n>0?t.bottom:t.top)+n*a}else"line"==i&&(r=n>0?t.bottom+3:t.top-3);for(var c;c=gn(e,l,r),c.outside;){if(n<0?r<=0:r>=o.height){c.hitSide=!0;break}r+=5*n}return c}function qo(e,t){var n=Jt(e,t.line);if(!n||n.hidden)return null;var i=C(e.doc,t.line),r=Vt(n,i,t.line),o=Se(i),l="left";if(o){var s=Ee(o,t.ch);l=s%2?"right":"left"}var a=Zt(r.map,t.ch,l);return a.offset="right"==a.collapse?a.end:a.start,a}function jo(e,t){return t&&(e.bad=!0),e}function Go(e,t,n,i,r){function o(e){return function(t){return t.id==e}}function l(t){if(1==t.nodeType){var n=t.getAttribute("cm-text");if(null!=n)return void(s+=""==n?t.textContent.replace(/\u200b/g,""):n);var u,d=t.getAttribute("cm-marker");if(d){var h=e.findMarks(O(i,0),O(r+1,0),o(+d));return void(h.length&&(u=h[0].find())&&(s+=T(e.doc,u.from,u.to).join(c)))}if("false"==t.getAttribute("contenteditable"))return;for(var f=0;f=15&&(sl=!1,rl=!0);var vl,yl=fl&&(ol||sl&&(null==ml||ml<12.11)),bl=Zo||nl&&il>=9,_l=function(t,n){var i=t.className,r=e(n).exec(i);if(r){var o=i.slice(r.index+r[0].length);t.className=i.slice(0,r.index)+(o?r[1]+o:"")}};vl=document.createRange?function(e,t,n,i){var r=document.createRange();return r.setEnd(i||e,n),r.setStart(e,t),r}:function(e,t,n){var i=document.body.createTextRange();try{i.moveToElementText(e.parentNode)}catch(e){return i}return i.collapse(!0),i.moveEnd("character",n),i.moveStart("character",t),i};var wl=function(e){e.select()};dl?wl=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:nl&&(wl=function(e){try{e.select()}catch(e){}}),d.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var xl,El,Ll=30,Cl={toString:function(){return"CodeMirror.Pass"}},Tl={scroll:!1},Sl={origin:"*mouse"},kl={origin:"+move"},Il=[""],Ml=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Dl=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/,Al=!1,Ol=!1,Wl=null,Rl=function(){function e(e){return e<=247?n.charAt(e):1424<=e&&e<=1524?"R":1536<=e&&e<=1785?i.charAt(e-1536):1774<=e&&e<=2220?"r":8192<=e&&e<=8203?"w":8204==e?"b":"L"}function t(e,t,n){this.level=e,this.from=t,this.to=n}var n="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",i="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111",r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,l=/[LRr]/,s=/[Lb1n]/,a=/[1n]/,c="L";return function(n){if(!r.test(n))return!1;for(var i=n.length,u=[],d=0;d=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){if(this.post},eatSpace:function(){for(var e=this,t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++e.pos;return this.pos>t},skipToEnd:function(){this.pos=this.string.length},skipTo:function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},backUp:function(e){this.pos-=e},column:function(){return this.lastColumnPos0?null:(i&&t!==!1&&(this.pos+=i[0].length),i)}var r=function(e){return n?e.toLowerCase():e},o=this.string.substr(this.pos,e.length);if(r(o)==r(e))return t!==!1&&(this.pos+=e.length),!0},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}}},We(at),at.prototype.lineNo=function(){return I(this)};var Vl,Yl={},Kl={},Jl=null,$l=null,Ql={left:0,right:0,top:0,bottom:0},Zl=0,es=null;nl?es=-.53:Zo?es=15:ll?es=-.7:al&&(es=-1/3);var ts=function(e,t,n){this.cm=n;var r=this.vert=i("div",[i("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),o=this.horiz=i("div",[i("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(r),e(o),Pl(r,"scroll",function(){r.clientHeight&&t(r.scrollTop,"vertical")}),Pl(o,"scroll",function(){o.clientWidth&&t(o.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,nl&&il<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};ts.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,i=e.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=t?i+"px":"0";var r=e.viewHeight-(t?i:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+r)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=n?i+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(n?i:0);this.horiz.firstChild.style.width=e.scrollWidth-e.clientWidth+o+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==i&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?i:0,bottom:t?i:0}},ts.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz)},ts.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert)},ts.prototype.zeroWidthHack=function(){var e=fl&&!cl?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new d,this.disableVert=new d},ts.prototype.enableZeroWidthBar=function(e,t){function n(){var i=e.getBoundingClientRect(),r=document.elementFromPoint(i.left+1,i.bottom-1);r!=e?e.style.pointerEvents="none":t.set(1e3,n)}e.style.pointerEvents="auto",t.set(1e3,n)},ts.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var ns=function(){};ns.prototype.update=function(){return{bottom:0,right:0}},ns.prototype.setScrollLeft=function(){},ns.prototype.setScrollTop=function(){},ns.prototype.clear=function(){};var is={native:ts,null:ns},rs=0,os=function(e,t,n){var i=e.display;this.viewport=t,this.visible=Bn(i,e.doc,t),this.editorIsHidden=!i.wrapper.offsetWidth,this.wrapperHeight=i.wrapper.clientHeight,this.wrapperWidth=i.wrapper.clientWidth,this.oldDisplayWidth=qt(e),this.force=n,this.dims=bn(e),this.events=[]};os.prototype.signal=function(e,t){Oe(e,t)&&this.events.push(arguments)},os.prototype.finish=function(){for(var e=this,t=0;t=0&&W(e,r.to())<=0)return i}return-1}},Di.prototype={from:function(){return P(this.anchor,this.head)},to:function(){return N(this.anchor,this.head)},empty:function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch}},Ar.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var n=this,i=e,r=e+t;i1||!(this.children[0]instanceof Ar))){var a=[];this.collapse(a),this.children=[new Ar(a)],this.children[0].parent=this}},collapse:function(e){for(var t=this,n=0;n50){for(var s=o.lines.length%25+25,a=s;a10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var i=this,r=0;rt.display.maxLineLength&&(t.display.maxLine=u,t.display.maxLineLength=d,t.display.maxLineChanged=!0)}null!=r&&t&&this.collapsed&&fi(t,r,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&pr(t.doc)),t&&Lt(t,"markerCleared",t,this),n&&ni(t),this.parent&&this.parent.clear()}},Pr.prototype.find=function(e,t){var n=this;null==e&&"bookmark"==this.type&&(e=1);for(var i,r,o=0;o=0;c--)wr(i,r[c]);a?ur(this,a):this.cm&&Zn(this.cm)}),undo:hi(function(){Er(this,"undo")}),redo:hi(function(){Er(this,"redo")}),undoSelection:hi(function(){Er(this,"undo",!0)}),redoSelection:hi(function(){Er(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,i=0;i=e.ch)&&t.push(r.marker.parent||r.marker)}return t},findMarks:function(e,t,n){e=U(this,e),t=U(this,t);var i=[],r=e.line;return this.iter(e.line,t.line+1,function(o){var l=o.markedSpans;if(l)for(var s=0;s=a.to||null==a.from&&r!=e.line||null!=a.from&&r==t.line&&a.from>=t.ch||n&&!n(a.marker)||i.push(a.marker.parent||a.marker)}++r}),i},getAllMarks:function(){var e=[];return this.iter(function(t){var n=t.markedSpans;if(n)for(var i=0;ie?(t=e,!0):(e-=o,void++n)}),U(this,O(n,t))},indexFromPos:function(e){e=U(this,e);var t=e.ch;if(e.linet&&(t=e.from),null!=e.to&&e.to0)r=new O(r.line,r.ch+1),e.replaceRange(o.charAt(r.ch-1)+o.charAt(r.ch-2),O(r.line,r.ch-2),r,"+transpose");else if(r.line>e.doc.first){var l=C(e.doc,r.line-1).text;l&&(r=new O(r.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+l.charAt(l.length-1),O(r.line-1,l.length-1),r,"+transpose"))}n.push(new Di(r,r))}e.setSelections(n)})},newlineAndIndent:function(e){return ci(e,function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,"+input");t=e.listSelections();for(var i=0;ie.firstLine()&&(i=O(i.line-1,C(e.doc,i.line-1).length)),r.ch==C(e.doc,r.line).text.length&&r.linet.viewTo-1)return!1;var o,l,s;i.line==t.viewFrom||0==(o=Ln(e,i.line))?(l=I(t.view[0].line),s=t.view[0].node):(l=I(t.view[o].line),s=t.view[o-1].node.nextSibling);var a,c,u=Ln(e,r.line);if(u==t.view.length-1?(a=t.viewTo-1,c=t.lineDiv.lastChild):(a=I(t.view[u+1].line)-1,c=t.view[u+1].node.previousSibling),!s)return!1;for(var d=e.doc.splitLines(Go(e,s,c,l,a)),h=T(e.doc,O(l,0),O(a,C(e.doc,a).text.length));d.length>1&&h.length>1;)if(g(d)==g(h))d.pop(),h.pop(),a--;else{if(d[0]!=h[0])break;d.shift(),h.shift(),l++}for(var f=0,p=0,m=d[0],v=h[0],y=Math.min(m.length,v.length);f1||d[0]||W(x,E)?(Sr(e.doc,d,x,E,"+input"),!0):void 0},Ts.prototype.ensurePolled=function(){this.forceCompositionEnd()},Ts.prototype.reset=function(){this.forceCompositionEnd()},Ts.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.pollContent()||fi(this.cm),this.div.blur(),this.div.focus())},Ts.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}!e.cm.isReadOnly()&&e.pollContent()||ci(e.cm,function(){return fi(e.cm)})},80))},Ts.prototype.setUneditable=function(e){e.contentEditable="false"},Ts.prototype.onKeyPress=function(e){e.preventDefault(),this.cm.isReadOnly()||ui(this.cm,Ro)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0)},Ts.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},Ts.prototype.onContextMenu=function(){},Ts.prototype.resetPosition=function(){},Ts.prototype.needsContentAttribute=!0;var Ss=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new d,this.inaccurateSelection=!1,this.hasSelection=!1,this.composing=null};Ss.prototype.init=function(e){function t(e){if(!De(r,e)){if(r.somethingSelected())Wo({lineWise:!1,text:r.getSelections()}),i.inaccurateSelection&&(i.prevInput="",i.inaccurateSelection=!1,l.value=Cs.text.join("\n"),wl(l));else{if(!r.options.lineWiseCopyCut)return;var t=Bo(r);Wo({lineWise:!0,text:t.text}),"cut"==e.type?r.setSelections(t.ranges,null,Tl):(i.prevInput="",l.value=t.text.join("\n"),wl(l))}"cut"==e.type&&(r.state.cutIncoming=!0)}}var n=this,i=this,r=this.cm,o=this.wrapper=Ho(),l=this.textarea=o.firstChild;e.wrapper.insertBefore(o,e.wrapper.firstChild),dl&&(l.style.width="0px"),Pl(l,"input",function(){nl&&il>=9&&n.hasSelection&&(n.hasSelection=null),i.poll()}),Pl(l,"paste",function(e){De(r,e)||No(e,r)||(r.state.pasteIncoming=!0,i.fastPoll())}),Pl(l,"cut",t),Pl(l,"copy",t),Pl(e.scroller,"paste",function(t){Ut(e,t)||De(r,t)||(r.state.pasteIncoming=!0,i.focus())}),Pl(e.lineSpace,"selectstart",function(t){Ut(e,t)||Re(t)}),Pl(l,"compositionstart",function(){var e=r.getCursor("from");i.composing&&i.composing.range.clear(),i.composing={start:e,range:r.markText(e,r.getCursor("to"),{className:"CodeMirror-composing"})}}),Pl(l,"compositionend",function(){i.composing&&(i.poll(),i.composing.range.clear(),i.composing=null)})},Ss.prototype.prepareSelection=function(){var e=this.cm,t=e.display,n=e.doc,i=Tn(e);if(e.options.moveInputWithCursor){var r=hn(e,n.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),l=t.lineDiv.getBoundingClientRect();i.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,r.top+l.top-o.top)),i.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,r.left+l.left-o.left))}return i},Ss.prototype.showSelection=function(e){var t=this.cm,i=t.display;n(i.cursorDiv,e.cursors),n(i.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},Ss.prototype.reset=function(e){if(!this.contextMenuPending){var t,n,i=this.cm,r=i.doc;if(i.somethingSelected()){this.prevInput="";var o=r.sel.primary();t=Fl&&(o.to().line-o.from().line>100||(n=i.getSelection()).length>1e3);var l=t?"-":n||i.getSelection();this.textarea.value=l,i.state.focused&&wl(this.textarea),nl&&il>=9&&(this.hasSelection=l)}else e||(this.prevInput=this.textarea.value="",nl&&il>=9&&(this.hasSelection=null));this.inaccurateSelection=t}},Ss.prototype.getField=function(){return this.textarea},Ss.prototype.supportsTouch=function(){return!1},Ss.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!hl||o()!=this.textarea))try{this.textarea.focus()}catch(e){}},Ss.prototype.blur=function(){this.textarea.blur()},Ss.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Ss.prototype.receivedFocus=function(){this.slowPoll()},Ss.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},Ss.prototype.fastPoll=function(){function e(){var i=n.poll();i||t?(n.pollingFast=!1,n.slowPoll()):(t=!0,n.polling.set(60,e))}var t=!1,n=this;n.pollingFast=!0,n.polling.set(20,e)},Ss.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,i=this.prevInput;if(this.contextMenuPending||!t.state.focused||Hl(n)&&!i&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var r=n.value;if(r==i&&!t.somethingSelected())return!1;if(nl&&il>=9&&this.hasSelection===r||fl&&/[\uf700-\uf7ff]/.test(r))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=r.charCodeAt(0);if(8203!=o||i||(i="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var l=0,s=Math.min(i.length,r.length);l1e3||r.indexOf("\n")>-1?n.value=e.prevInput="":e.prevInput=r,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},Ss.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Ss.prototype.onKeyPress=function(){nl&&il>=9&&(this.hasSelection=null),this.fastPoll()},Ss.prototype.onContextMenu=function(e){function t(){if(null!=l.selectionStart){var e=r.somethingSelected(),t="​"+(e?l.value:"");l.value="⇚",l.value=t,i.prevInput=e?"":"​",l.selectionStart=1,l.selectionEnd=t.length,o.selForContextMenu=r.doc.sel}}function n(){if(i.contextMenuPending=!1,i.wrapper.style.cssText=d,l.style.cssText=u,nl&&il<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=a),null!=l.selectionStart){(!nl||nl&&il<9)&&t();var e=0,n=function(){o.selForContextMenu==r.doc.sel&&0==l.selectionStart&&l.selectionEnd>0&&"​"==i.prevInput?ui(r,br)(r):e++<10?o.detectingSelectAll=setTimeout(n,500):o.input.reset()};o.detectingSelectAll=setTimeout(n,200)}}var i=this,r=i.cm,o=r.display,l=i.textarea,s=En(r,e),a=o.scroller.scrollTop;if(s&&!sl){var c=r.options.resetSelectionOnContextMenu;c&&r.doc.sel.contains(s)==-1&&ui(r,dr)(r.doc,Oi(s),Tl);var u=l.style.cssText,d=i.wrapper.style.cssText;i.wrapper.style.cssText="position: absolute";var h=i.wrapper.getBoundingClientRect();l.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-h.top-5)+"px; left: "+(e.clientX-h.left-5)+"px;\n z-index: 1000; background: "+(nl?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var f;if(rl&&(f=window.scrollY),o.input.focus(),rl&&window.scrollTo(null,f),o.input.reset(),r.somethingSelected()||(l.value=i.prevInput=" "),i.contextMenuPending=!0,o.selForContextMenu=r.doc.sel,clearTimeout(o.detectingSelectAll),nl&&il>=9&&t(),bl){Be(e);var p=function(){Ie(window,"mouseup",p),setTimeout(n,20)};Pl(window,"mouseup",p)}else setTimeout(n,50)}},Ss.prototype.readOnlyChanged=function(e){e||this.reset()},Ss.prototype.setUneditable=function(){},Ss.prototype.needsContentAttribute=!1,So(Do),Fo(Do);var ks="iter insert remove copy getEditor constructor".split(" ");for(var Is in as.prototype)as.prototype.hasOwnProperty(Is)&&h(ks,Is)<0&&(Do.prototype[Is]=function(e){return function(){return e.apply(this.doc,arguments)}}(as.prototype[Is]));return We(as),Do.inputStyles={textarea:Ss,contenteditable:Ts},Do.defineMode=function(e){Do.defaults.mode||"null"==e||(Do.defaults.mode=e),qe.apply(this,arguments)},Do.defineMIME=je,Do.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),Do.defineMIME("text/plain","null"),Do.defineExtension=function(e,t){Do.prototype[e]=t},Do.defineDocExtension=function(e,t){as.prototype[e]=t},Do.fromTextArea=Ko,Jo(Do),Do.version="5.23.0",Do}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t,r,o){if(this.atOccurrence=!1,this.doc=e,null==o&&"string"==typeof t&&(o=!1),r=r?e.clipPos(r):i(0,0),this.pos={from:r,to:r},"string"!=typeof t)t.global||(t=new RegExp(t.source,t.ignoreCase?"ig":"g")),this.matches=function(n,r){if(n){t.lastIndex=0;for(var o,l,s=e.getLine(r.line).slice(0,r.ch),a=0;;){t.lastIndex=a;var c=t.exec(s);if(!c)break;if(o=c,l=o.index,a=o.index+(o[0].length||1),a==s.length)break}var u=o&&o[0].length||0;u||(0==l&&0==s.length?o=void 0:l!=e.getLine(r.line).length&&u++)}else{t.lastIndex=r.ch;var s=e.getLine(r.line),o=t.exec(s),u=o&&o[0].length||0,l=o&&o.index;l+u==s.length||u||(u=1)}if(o&&u)return{from:i(r.line,l),to:i(r.line,l+u),match:o}};else{var l=t;o&&(t=t.toLowerCase());var s=o?function(e){return e.toLowerCase()}:function(e){return e},a=t.split("\n");if(1==a.length)t.length?this.matches=function(r,o){if(r){var a=e.getLine(o.line).slice(0,o.ch),c=s(a),u=c.lastIndexOf(t);if(u>-1)return u=n(a,c,u),{from:i(o.line,u),to:i(o.line,u+l.length)}}else{var a=e.getLine(o.line).slice(o.ch),c=s(a),u=c.indexOf(t);if(u>-1)return u=n(a,c,u)+o.ch,{from:i(o.line,u),to:i(o.line,u+l.length)}}}:this.matches=function(){};else{var c=l.split("\n");this.matches=function(t,n){var r=a.length-1;if(t){if(n.line-(a.length-1)=1;--u,--l)if(a[u]!=s(e.getLine(l)))return;var d=e.getLine(l),h=d.length-c[0].length;if(s(d.slice(h))!=a[0])return;return{from:i(l,h),to:o}}if(!(n.line+(a.length-1)>e.lastLine())){var d=e.getLine(n.line),h=d.length-c[0].length;if(s(d.slice(h))==a[0]){for(var f=i(n.line,h),l=n.line+1,u=1;un))return i;--i}}}var i=e.Pos;t.prototype={findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(e){function t(e){var t=i(e,0);return n.pos={from:t,to:t},n.atOccurrence=!1,!1}for(var n=this,r=this.doc.clipPos(e?this.pos.from:this.pos.to);;){if(this.pos=this.matches(e,r))return this.atOccurrence=!0,this.pos.match||!0;if(e){if(!r.line)return t(0);r=i(r.line-1,this.doc.getLine(r.line-1).length)}else{var o=this.doc.lineCount();if(r.line==o-1)return t(o);r=i(r.line+1,0)}}},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(t,n){if(this.atOccurrence){var r=e.splitLines(t);this.doc.replaceRange(r,this.pos.from,this.pos.to,n),this.pos.to=i(this.pos.from.line+r.length-1,r[r.length-1].length+(1==r.length?this.pos.from.ch:0))}}},e.defineExtension("getSearchCursor",function(e,n,i){return new t(this.doc,e,n,i)}),e.defineDocExtension("getSearchCursor",function(e,n,i){return new t(this,e,n,i)}),e.defineExtension("selectMatches",function(t,n){for(var i=[],r=this.getSearchCursor(t,this.getCursor("from"),n);r.findNext()&&!(e.cmpPos(r.to(),this.getCursor("to"))>0);)i.push({anchor:r.from(),head:r.to()});i.length&&this.setSelections(i,0)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("./matchesonscrollbar")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./matchesonscrollbar"],e):e(CodeMirror)}(function(e){"use strict";function t(e){this.options={};for(var t in d)this.options[t]=(e&&e.hasOwnProperty(t)?e:d)[t];this.overlay=this.timeout=null,this.matchesonscroll=null,this.active=!1}function n(e){var t=e.state.matchHighlighter;(t.active||e.hasFocus())&&r(e,t)}function i(e){var t=e.state.matchHighlighter;t.active||(t.active=!0,r(e,t))}function r(e,t){clearTimeout(t.timeout),t.timeout=setTimeout(function(){s(e)},t.options.delay)}function o(e,t,n,i){var r=e.state.matchHighlighter;if(e.addOverlay(r.overlay=u(t,n,i)),r.options.annotateScrollbar&&e.showMatchesOnScrollbar){var o=n?new RegExp("\\b"+t+"\\b"):t;r.matchesonscroll=e.showMatchesOnScrollbar(o,!1,{className:"CodeMirror-selection-highlight-scrollbar"})}}function l(e){var t=e.state.matchHighlighter;t.overlay&&(e.removeOverlay(t.overlay),t.overlay=null,t.matchesonscroll&&(t.matchesonscroll.clear(),t.matchesonscroll=null))}function s(e){e.operation(function(){var t=e.state.matchHighlighter;if(l(e),!e.somethingSelected()&&t.options.showToken){for(var n=t.options.showToken===!0?/[\w$]/:t.options.showToken,i=e.getCursor(),r=e.getLine(i.line),s=i.ch,c=s;s&&n.test(r.charAt(s-1));)--s;for(;c=t.options.minChars&&o(e,h,!1,t.options.style)}})}function a(e,t,n){var i=e.getRange(t,n);if(null!==i.match(/^\w+$/)){if(t.ch>0){var r={line:t.line,ch:t.ch-1},o=e.getRange(r,t);if(null===o.match(/\W/))return!1}if(n.ch=this.gap.to)break;n.to.line>=this.gap.from&&this.matches.splice(t--,1)}for(var r=this.cm.getSearchCursor(this.query,e.Pos(this.gap.from,0),this.caseFold),o=this.options&&this.options.maxMatches||i;r.findNext();){var n={from:r.from(),to:r.to()};if(n.from.line>=this.gap.to)break;if(this.matches.splice(t++,0,n),this.matches.length>o)break}this.gap=null}},t.prototype.onChange=function(t){var i=t.from.line,r=e.changeEnd(t).line,o=r-t.to.line;if(this.gap?(this.gap.from=Math.min(n(this.gap.from,i,o),t.from.line),this.gap.to=Math.max(n(this.gap.to,i,o),t.from.line)):this.gap={from:t.from.line,to:r+1},o)for(var l=0;l=0;s--){var u=l[s].head;n.replaceRange("",f(u.line,u.ch-1),f(u.line,u.ch+1),"+delete")}}function o(n){var r=i(n),o=r&&t(r,"explode");if(!o||n.getOption("disableInput"))return e.Pass;for(var l=n.listSelections(),s=0;s0;return{anchor:new f(t.anchor.line,t.anchor.ch+(n?-1:1)),head:new f(t.head.line,t.head.ch+(n?1:-1))}}function s(n,r){var o=i(n);if(!o||n.getOption("disableInput"))return e.Pass;var s=t(o,"pairs"),c=s.indexOf(r);if(c==-1)return e.Pass;for(var h,p=t(o,"triples"),g=s.charAt(c+1)==r,m=n.listSelections(),v=c%2==0,y=0;y1&&p.indexOf(r)>=0&&n.getRange(f(w.line,w.ch-2),w)==r+r&&(w.ch<=2||n.getRange(f(w.line,w.ch-3),f(w.line,w.ch-2))!=r))b="addFour";else if(g){if(e.isWordChar(x)||!u(n,w,r))return e.Pass;b="both"}else{if(!v||n.getLine(w.line).length!=w.ch&&!a(x,s)&&!/\s/.test(x))return e.Pass;b="both"}else b=g&&d(n,w)?"both":p.indexOf(r)>=0&&n.getRange(w,f(w.line,w.ch+3))==r+r+r?"skipThree":"skip";if(h){if(h!=b)return e.Pass}else h=b}var E=c%2?s.charAt(c-1):r,L=c%2?r:s.charAt(c+1);n.operation(function(){if("skip"==h)n.execCommand("goCharRight");else if("skipThree"==h)for(var e=0;e<3;e++)n.execCommand("goCharRight");else if("surround"==h){for(var t=n.getSelections(),e=0;e-1&&n%2==1}function c(e,t){var n=e.getRange(f(t.line,t.ch-1),f(t.line,t.ch+1));return 2==n.length?n:null}function u(t,n,i){var r=t.getLine(n.line),o=t.getTokenAt(n);if(/\bstring2?\b/.test(o.type))return!1;var l=new e.StringStream(r.slice(0,n.ch)+i+r.slice(n.ch),4);for(l.pos=l.start=o.start;;){var s=t.getMode().token(l,o.state);if(l.pos>=n.ch+1)return/\bstring2?\b/.test(s);l.start=l.pos}}function d(e,t){var n=e.getTokenAt(f(t.line,t.ch+1));return/\bstring/.test(n.type)&&n.start==t.ch}var h={pairs:"()[]{}''\"\"",triples:"",explode:"[]{}"},f=e.Pos;e.defineOption("autoCloseBrackets",!1,function(t,n,i){i&&i!=e.Init&&(t.removeKeyMap(g),t.state.closeBrackets=null),n&&(t.state.closeBrackets=n,t.addKeyMap(g))});for(var p=h.pairs+"`",g={Backspace:r,Enter:o},m=0;m=0&&s[o.text.charAt(a)]||s[o.text.charAt(++a)];if(!c)return null;var u=">"==c.charAt(1)?1:-1;if(i&&u>0!=(a==t.ch))return null;var d=e.getTokenTypeAt(l(t.line,a+1)),h=n(e,l(t.line,a+(u>0?1:0)),u,d||null,r);return null==h?null:{from:l(t.line,a),to:h&&h.pos,match:h&&h.ch==c.charAt(0),forward:u>0}}function n(e,t,n,i,r){for(var o=r&&r.maxScanLineLength||1e4,a=r&&r.maxScanLines||1e3,c=[],u=r&&r.bracketRegex?r.bracketRegex:/[(){}[\]]/,d=n>0?Math.min(t.line+a,e.lastLine()+1):Math.max(e.firstLine()-1,t.line-a),h=t.line;h!=d;h+=n){var f=e.getLine(h);if(f){var p=n>0?0:f.length-1,g=n>0?f.length:-1;if(!(f.length>o))for(h==t.line&&(p=t.ch-(n<0?1:0));p!=g;p+=n){var m=f.charAt(p);if(u.test(m)&&(void 0===i||e.getTokenTypeAt(l(h,p+1))==i)){var v=s[m];if(">"==v.charAt(1)==n>0)c.push(m);else{if(!c.length)return{pos:l(h,p),ch:m};c.pop()}}}}}return h-n!=(n>0?e.lastLine():e.firstLine())&&null}function i(e,n,i){for(var r=e.state.matchBrackets.maxHighlightLineLength||1e3,s=[],a=e.listSelections(),c=0;c",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"},a=null;e.defineOption("matchBrackets",!1,function(t,n,i){i&&i!=e.Init&&(t.off("cursorActivity",r),a&&(a(),a=null)),n&&(t.state.matchBrackets="object"==typeof n?n:{},t.on("cursorActivity",r))}),e.defineExtension("matchBrackets",function(){i(this,!0)}),e.defineExtension("findMatchingBracket",function(e,n,i){return t(this,e,n,i)}),e.defineExtension("scanForBracket",function(e,t,i,r){return n(this,e,t,i,r)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror); -}(function(e){"use strict";function t(t,n,i){function r(t){var n=e.wheelEventPixels(t)["horizontal"==o.orientation?"x":"y"],i=o.pos;o.moveTo(o.pos+n),o.pos!=i&&e.e_preventDefault(t)}this.orientation=n,this.scroll=i,this.screen=this.total=this.size=1,this.pos=0,this.node=document.createElement("div"),this.node.className=t+"-"+n,this.inner=this.node.appendChild(document.createElement("div"));var o=this;e.on(this.inner,"mousedown",function(t){function n(){e.off(document,"mousemove",i),e.off(document,"mouseup",n)}function i(e){return 1!=e.which?n():void o.moveTo(s+(e[r]-l)*(o.total/o.size))}if(1==t.which){e.e_preventDefault(t);var r="horizontal"==o.orientation?"pageX":"pageY",l=t[r],s=o.pos;e.on(document,"mousemove",i),e.on(document,"mouseup",n)}}),e.on(this.node,"click",function(t){e.e_preventDefault(t);var n,i=o.inner.getBoundingClientRect();n="horizontal"==o.orientation?t.clientXi.right?1:0:t.clientYi.bottom?1:0,o.moveTo(o.pos+n*o.screen)}),e.on(this.node,"mousewheel",r),e.on(this.node,"DOMMouseScroll",r)}function n(e,n,i){this.addClass=e,this.horiz=new t(e,"horizontal",i),n(this.horiz.node),this.vert=new t(e,"vertical",i),n(this.vert.node),this.width=null}t.prototype.setPos=function(e,t){return e<0&&(e=0),e>this.total-this.screen&&(e=this.total-this.screen),!(!t&&e==this.pos)&&(this.pos=e,this.inner.style["horizontal"==this.orientation?"left":"top"]=e*(this.size/this.total)+"px",!0)},t.prototype.moveTo=function(e){this.setPos(e)&&this.scroll(e,this.orientation)};var i=10;t.prototype.update=function(e,t,n){var r=this.screen!=t||this.total!=e||this.size!=n;r&&(this.screen=t,this.total=e,this.size=n);var o=this.screen*(this.size/this.total);oe.clientWidth+1,r=e.scrollHeight>e.clientHeight+1;return this.vert.node.style.display=r?"block":"none",this.horiz.node.style.display=i?"block":"none",r&&(this.vert.update(e.scrollHeight,e.clientHeight,e.viewHeight-(i?n:0)),this.vert.node.style.bottom=i?n+"px":"0"),i&&(this.horiz.update(e.scrollWidth,e.clientWidth,e.viewWidth-(r?n:0)-e.barLeft),this.horiz.node.style.right=r?n+"px":"0",this.horiz.node.style.left=e.barLeft+"px"),{right:r?n:0,bottom:i?n:0}},n.prototype.setScrollTop=function(e){this.vert.setPos(e)},n.prototype.setScrollLeft=function(e){this.horiz.setPos(e)},n.prototype.clear=function(){var e=this.horiz.node.parentNode;e.removeChild(this.horiz.node),e.removeChild(this.vert.node)},e.scrollbarModel.simple=function(e,t){return new n("CodeMirror-simplescroll",e,t)},e.scrollbarModel.overlay=function(e,t){return new n("CodeMirror-overlayscroll",e,t)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t){function n(e){clearTimeout(i.doRedraw),i.doRedraw=setTimeout(function(){i.redraw()},e)}this.cm=e,this.options=t,this.buttonHeight=t.scrollButtonHeight||e.getOption("scrollButtonHeight"),this.annotations=[],this.doRedraw=this.doUpdate=null,this.div=e.getWrapperElement().appendChild(document.createElement("div")),this.div.style.cssText="position: absolute; right: 0; top: 0; z-index: 7; pointer-events: none",this.computeScale();var i=this;e.on("refresh",this.resizeHandler=function(){clearTimeout(i.doUpdate),i.doUpdate=setTimeout(function(){i.computeScale()&&n(20)},100)}),e.on("markerAdded",this.resizeHandler),e.on("markerCleared",this.resizeHandler),t.listenForChanges!==!1&&e.on("change",this.changeHandler=function(){n(250)})}e.defineExtension("annotateScrollbar",function(e){return"string"==typeof e&&(e={className:e}),new t(this,e)}),e.defineOption("scrollButtonHeight",0),t.prototype.computeScale=function(){var e=this.cm,t=(e.getWrapperElement().clientHeight-e.display.barHeight-2*this.buttonHeight)/e.getScrollerElement().scrollHeight;if(t!=this.hScale)return this.hScale=t,!0},t.prototype.update=function(e){this.annotations=e,this.redraw()},t.prototype.redraw=function(e){function t(e,t){if(a!=e.line&&(a=e.line,c=n.getLineHandle(a)),l&&c.height>s)return n.charCoords(e,"local")[t?"top":"bottom"];var i=n.heightAtLine(c,"local");return i+(t?0:c.height)}e!==!1&&this.computeScale();var n=this.cm,i=this.hScale,r=document.createDocumentFragment(),o=this.annotations,l=n.getOption("lineWrapping"),s=l&&1.5*n.defaultTextHeight(),a=null,c=null;if(n.display.barWidth)for(var u,d=0;dp+.9));)h=o[++d],p=t(h.to,!1)*i;if(p!=f){var g=Math.max(p-f,3),m=r.appendChild(document.createElement("div"));m.style.cssText="position: absolute; right: 0px; width: "+Math.max(n.display.barWidth-1,2)+"px; top: "+(f+this.buttonHeight)+"px; height: "+g+"px",m.className=this.options.className,h.id&&m.setAttribute("annotation-id",h.id)}}this.div.textContent="",this.div.appendChild(r)},t.prototype.clear=function(){this.cm.off("refresh",this.resizeHandler),this.cm.off("markerAdded",this.resizeHandler),this.cm.off("markerCleared",this.resizeHandler),this.changeHandler&&this.cm.off("change",this.changeHandler),this.div.parentNode.removeChild(this.div)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e){for(var t=0;t!?|\/]/;return{startState:function(e){return{tokenize:null,context:new o((e||0)-c,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var i=t.context;if(e.sol()&&(null==i.align&&(i.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;a=null;var r=(t.tokenize||n)(e,t);if("comment"==r||"meta"==r)return r;if(null==i.align&&(i.align=!0),";"!=a&&":"!=a||"statement"!=i.type)if("{"==a)l(t,e.column(),"}");else if("["==a)l(t,e.column(),"]");else if("("==a)l(t,e.column(),")");else if("}"==a){for(;"statement"==i.type;)i=s(t);for("}"==i.type&&(i=s(t));"statement"==i.type;)i=s(t)}else a==i.type?s(t):("}"==i.type||"top"==i.type||"statement"==i.type&&"newstatement"==a)&&l(t,e.column(),"statement");else s(t);return t.startOfLine=!1,r},indent:function(e,t){if(e.tokenize!=n&&null!=e.tokenize)return 0;var i=t&&t.charAt(0),r=e.context,o=i==r.type;return"statement"==r.type?r.indented+("{"==i?0:c):r.align?r.column+(o?0:1):r.indented+(o?0:c)},electricChars:"{}"}}),function(){function e(e){for(var t={},n=e.split(" "),i=0;i1)for(var n=1;nthis.version?this.fetch(t):t&&t()}if(this.version>e.v)return t&&t();this.version=e.v;var i=void 0===e.type?u.defaultType:e.type;this._setType(i),this.data=this.type&&this.type.deserialize?this.type.deserialize(e.data):e.data,this.emit("load"),t&&t()},i.prototype.whenNothingPending=function(e){return this.hasPending()?void this.once("nothing pending",e):void e()},i.prototype.hasPending=function(){return!!(this.inflightOp||this.pendingOps.length||this.inflightFetch.length||this.inflightSubscribe.length||this.inflightUnsubscribe.length||this.pendingFetch.length)},i.prototype.hasWritePending=function(){return!(!this.inflightOp&&!this.pendingOps.length)},i.prototype._emitNothingPending=function(){this.hasWritePending()||(this.emit("no write pending"),this.hasPending()||this.emit("nothing pending"))},i.prototype._emitResponseError=function(e,t){return t?(t(e),void this._emitNothingPending()):(this._emitNothingPending(),void this.emit("error",e))},i.prototype._handleFetch=function(e,t){var n=this.inflightFetch.shift();return e?this._emitResponseError(e,n):(this.ingestSnapshot(t,n),void this._emitNothingPending())},i.prototype._handleSubscribe=function(e,t){var n=this.inflightSubscribe.shift();return e?this._emitResponseError(e,n):(this.wantSubscribe&&(this.subscribed=!0),this.ingestSnapshot(t,n),void this._emitNothingPending())},i.prototype._handleUnsubscribe=function(e){var t=this.inflightUnsubscribe.shift();return e?this._emitResponseError(e,t):(t&&t(),void this._emitNothingPending())},i.prototype._handleOp=function(e,t){if(e)return this.inflightOp?(4002===e.code&&(e=null),this._rollback(e)):this.emit("error",e);if(this.inflightOp&&t.src===this.inflightOp.src&&t.seq===this.inflightOp.seq)return void this._opAcknowledged(t);if(null==this.version||t.v>this.version)return void this.fetch();if(!(t.v1){this.applyStack||(this.applyStack=[]);for(var i=this.applyStack.length,r=0;r0)return void(this.applyStack.length=e);var t=this.applyStack[0];if(this.applyStack=null,t){var n=this.pendingOps.indexOf(t);if(n!==-1)for(var i=this.pendingOps.splice(n),n=0;n0&&this._events[e].length>r&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(e,t){function n(){this.removeListener(e,n),r||(r=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var r=!1;return n.listener=t,this.on(e,n),this},n.prototype.removeListener=function(e,t){var n,r,l,s;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(n=this._events[e], -l=n.length,r=-1,n===t||i(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(n)){for(s=l;s-- >0;)if(n[s]===t||n[s].listener&&n[s].listener===t){r=s;break}if(r<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},n.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(n=this._events[e],i(n))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},n.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},n.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(i(t))return 1;if(t)return t.length}return 0},n.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,n){function i(e,t){i.super.call(this,t),this.code=e}var r=n(8);r(i),e.exports=i},function(e,t){"use strict";function n(e){e&&r(this,"message",{configurable:!0,value:e,writable:!0});var t=this.constructor.name;t&&t!==this.name&&r(this,"name",{configurable:!0,value:t,writable:!0}),o(this,this.constructor)}function i(e,t){if(null==t||t===Error)t=n;else if("function"!=typeof t)throw new TypeError("super_ should be a function");var i;if("string"==typeof e)i=e,e=function(){t.apply(this,arguments)},l&&(l(e,i),i=null);else if("function"!=typeof e)throw new TypeError("constructor should be either a string or a function");e.super_=e.super=t;var r={constructor:{configurable:!0,value:e,writable:!0}};return null!=i&&(r.name={configurable:!0,value:i,writable:!0}),e.prototype=Object.create(t.prototype,r),e}var r=Object.defineProperty,o=Error.captureStackTrace;o||(o=function(e){var t=new Error;r(e,"stack",{configurable:!0,get:function(){var e=t.stack;return r(this,"stack",{value:e}),e},set:function(t){r(e,"stack",{configurable:!0,value:t,writable:!0})}})}),n.prototype=Object.create(Error.prototype,{constructor:{configurable:!0,value:n,writable:!0}});var l=function(){function e(e,t){return r(e,"name",{configurable:!0,value:t})}try{var t=function(){};if(e(t,"foo"),"foo"===t.name)return e}catch(e){}}();t=e.exports=i,t.BaseError=n},function(e,t,n){t.defaultType=n(10).type,t.map={},t.register=function(e){e.name&&(t.map[e.name]=e),e.uri&&(t.map[e.uri]=e)},t.register(t.defaultType)},function(e,t,n){e.exports={type:n(11)}},function(e,t,n){function i(e){e.t="text0";var t={p:e.p.pop()};null!=e.si&&(t.i=e.si),null!=e.sd&&(t.d=e.sd),e.o=[t]}function r(e){e.p.push(e.o[0].p),null!=e.o[0].i&&(e.si=e.o[0].i),null!=e.o[0].d&&(e.sd=e.o[0].d),delete e.t,delete e.o}var o=function(e){return"[object Array]"==Object.prototype.toString.call(e)},l=function(e){return!!e&&e.constructor===Object},s=function(e){return JSON.parse(JSON.stringify(e))},a={name:"json0",uri:"http://sharejs.org/types/JSONv0"},c={};a.registerSubtype=function(e){c[e.name]=e},a.create=function(e){return void 0===e?null:s(e)},a.invertComponent=function(e){var t={p:e.p};return e.t&&c[e.t]&&(t.t=e.t,t.o=c[e.t].invert(e.o)),void 0!==e.si&&(t.sd=e.si),void 0!==e.sd&&(t.si=e.sd),void 0!==e.oi&&(t.od=e.oi),void 0!==e.od&&(t.oi=e.od),void 0!==e.li&&(t.ld=e.li),void 0!==e.ld&&(t.li=e.ld),void 0!==e.na&&(t.na=-e.na),void 0!==e.lm&&(t.lm=e.p[e.p.length-1],t.p=e.p.slice(0,e.p.length-1).concat([e.lm])),t},a.invert=function(e){for(var t=e.slice().reverse(),n=[],i=0;i=i||o!==t.p[r])return null}return n},a.canOpAffectPath=function(e,t){return null!=a.commonLengthForOps({p:t},e)},a.transformComponent=function(e,t,n,o){t=s(t);var l=a.commonLengthForOps(n,t),u=a.commonLengthForOps(t,n),d=t.p.length,h=n.p.length;if((null!=t.na||t.t)&&d++,(null!=n.na||n.t)&&h++,null!=u&&h>d&&t.p[u]==n.p[u])if(void 0!==t.ld){var f=s(n);f.p=f.p.slice(d),t.ld=a.apply(s(t.ld),[f])}else if(void 0!==t.od){var f=s(n);f.p=f.p.slice(d),t.od=a.apply(s(t.od),[f])}if(null!=l){var p=d==h,f=n;if(null==t.si&&null==t.sd||null==n.si&&null==n.sd||(i(t),f=s(n),i(f)),f.t&&c[f.t]){if(t.t&&t.t===f.t){var g=c[t.t].transform(t.o,f.o,o);if(g.length>0)if(null!=t.si||null!=t.sd)for(var m=t.p,v=0;v_&&t.p[l]--,y>w?t.p[l]++:y===w&&_>w&&(t.p[l]++,y===b&&t.lm++),b>_?t.lm--:b===_&&b>y&&t.lm--,b>w?t.lm++:b===w&&(w>_&&b>y||w<_&&by?t.lm++:b===_&&t.lm--)}else if(void 0!==t.li&&void 0===t.ld&&p){var y=n.p[l],b=n.lm;m=t.p[l],m>y&&t.p[l]--,m>b&&t.p[l]++}else{var y=n.p[l],b=n.lm;m=t.p[l],m===y?t.p[l]=b:(m>y&&t.p[l]--,m>b?t.p[l]++:m===b&&y>b&&t.p[l]++)}else if(void 0!==n.oi&&void 0!==n.od){if(t.p[l]===n.p[l]){if(void 0===t.oi||!p)return e;if("right"===o)return e;t.od=n.oi}}else if(void 0!==n.oi){if(void 0!==t.oi&&t.p[l]===n.p[l]){if("left"!==o)return e;a.append(e,{p:t.p,od:n.oi})}}else if(void 0!==n.od&&t.p[l]==n.p[l]){if(!p)return e;if(void 0===t.oi)return e;delete t.od}}return a.append(e,t),e},n(12)(a,a.transformComponent,a.checkValidOp,a.append);var d=n(13);a.registerSubtype(d),e.exports=a},function(e,t){function n(e,t,n,i){var r=function(e,n,i,r){t(i,e,n,"left"),t(r,n,e,"right")},o=e.transformX=function(e,t){n(e),n(t);for(var l=[],s=0;s=n.p+n.d.length)s(e,{d:t.d,p:t.p-n.d.length});else if(t.p+t.d.length<=n.p)s(e,t);else{var l={d:"",p:t.p};t.pn.p+n.d.length&&(l.d+=t.d.slice(n.p+n.d.length-t.p));var c=Math.max(t.p,n.p),u=Math.min(t.p+t.d.length,n.p+n.d.length),d=t.d.slice(c-t.p,u-t.p),h=n.d.slice(c-n.p,u-n.p);if(d!==h)throw new Error("Delete ops delete different text in the same region of the document");""!==l.d&&(l.p=a(l.p,n),s(e,l))}return e},u=function(e){return null!=e.i?{d:e.i,p:e.p}:{i:e.d,p:e.p}};i.invert=function(e){e=e.slice().reverse();for(var t=0;t0))throw Error("Object components must be deletes of size > 0");break;case"string":if(!(r.length>0))throw Error("Inserts cannot be empty");break;case"number":if(!(r>0))throw Error("Skip components must be >0");if("number"==typeof t)throw Error("Adjacent skip components should be combined")}t=r}if("number"==typeof t)throw Error("Op has a trailing skip")},r=function(e){return function(t){if(t&&0!==t.d)return 0===e.length?e.push(t):typeof t==typeof e[e.length-1]?"object"==typeof t?e[e.length-1].d+=t.d:e[e.length-1]+=t:e.push(t)}},o=function(e){var t=0,n=0,i=function(i,r){if(t===e.length)return i===-1?null:i;var o,l=e[t];return"number"==typeof l?i===-1||l-n<=i?(o=l-n,++t,n=0,o):(n+=i,i):"string"==typeof l?i===-1||"i"===r||l.length-n<=i?(o=l.slice(n),++t,n=0,o):(o=l.slice(n,n+i),n+=i,o):i===-1||"d"===r||l.d-n<=i?(o={d:l.d-n},++t,n=0,o):(n+=i,{d:i})},r=function(){return e[t]};return[i,r]},l=function(e){return"number"==typeof e?e:e.length||e.d},s=function(e){return e.length>0&&"number"==typeof e[e.length-1]&&e.pop(),e};t.normalize=function(e){for(var t=[],n=r(t),i=0;ie.length)throw Error("The op is too long for this document");n.push(e.slice(0,o)),e=e.slice(o);break;case"string":n.push(o);break;case"object":e=e.slice(o.d)}}return n.join("")+e},t.transform=function(e,t,n){if("left"!=n&&"right"!=n)throw Error("side ("+n+") must be 'left' or 'right'");i(e),i(t);for(var a=[],c=r(a),u=o(e),d=u[0],h=u[1],f=0;f0;)g=d(p,"i"),c(g),"string"!=typeof g&&(p-=l(g));break;case"string":"left"===n&&"string"==typeof h()&&c(d(-1)),c(m.length);break;case"object":for(p=m.d;p>0;)switch(g=d(p,"i"),typeof g){case"number":p-=g;break;case"string":c(g);break;case"object":p-=g.d}}}for(;m=d(-1);)c(m);return s(a)},t.compose=function(e,t){i(e),i(t);for(var n=[],a=r(n),c=o(e)[0],u=0;u0;)h=c(d,"d"),a(h),"object"!=typeof h&&(d-=l(h));break;case"string":a(f);break;case"object":for(d=f.d;d>0;)switch(h=c(d,"d"),typeof h){case"number":a({d:h}),d-=h;break;case"string":d-=h.length;break;case"object":a(h)}}}for(;f=c(-1);)a(f);return s(n)};var a=function(e,t){for(var n=0,i=0;i=n&&"none"===t.style.display&&(t.style.display="block"))},p=function(e){e.innerHTML="",localStorage.removeItem(i)},g=function(){return""===o.value?o.placeholder:o.value},m=function(){return""===r.value?r.placeholder:r.value},v=function(t){e||t.length>128||(l.href="app/"+t)},y=function(t){return function(){e?e(t):(v(t),location.href="app/"+t)}},b=function(e,t){return function(){var n=localStorage.getItem(i),r=[],o=0,l=e.parentElement;for(l.parentElement.removeChild(l),n&&(r=JSON.parse(n)),o=0;o0?localStorage.setItem(i,JSON.stringify(r)):(c.parentElement.removeChild(c),localStorage.removeItem(i)),null!==localStorage.getItem(t)&&localStorage.removeItem(t)}},_=function(){var e=this,t=e.textContent;WUI_CircularMenu.create({element:e,angle:90},[{icon:"fp-join-icon",tooltip:"Join session",on_click:y(t)},{icon:"fp-trash-icon",tooltip:"Delete session",on_click:b(e,t)}])};if(o.placeholder=Math.random().toString(36).substr(2,12),v(o.placeholder),h?(e||(a.innerHTML=t+''+h+""),r.value=h):u.parentElement.removeChild(u),r.addEventListener("change",function(){localStorage.setItem(n,m())}),o.addEventListener("change",function(){v(o.value)}),c.addEventListener("click",function(){p(s),c.parentElement.removeChild(c)}),l.addEventListener("click",function(t){var r=localStorage.getItem(i),o=[],l=g(),s=0;for(r&&(o=JSON.parse(r)),s=0;s";i+="
  • max input channels: "+n.inchn+"
  • ",i+="
  • max output channels: "+n.ouchn+"
  • ",i+="
  • default samplerate: "+parseInt(n.smpr,10)+"
  • ",i+="",t.innerHTML=i},h=function(e){var t=e.target.options[e.target.selectedIndex],n=parseInt(t.dataset.id,10),i=e.target.value;s=n,d(n),localStorage.setItem("fs-fas-device-id",n),localStorage.setItem("fs-fas-device-name",i),u()},f=function(e){r=e;var t,n=document.getElementById("fs_fas_device"),i=localStorage.getItem("fs-fas-device-id"),o=localStorage.getItem("fs-fas-device-name"),l="",a=0;for(i=null===i?0:parseInt(i,10),s=i,n.addEventListener("change",h),n.innerHTML="",a=r.length-1;a>0;a-=1)t=r[a],l=t.id===i&&t.name===o?" selected":"",n.innerHTML+='";d(s)},p=function(){var i=document.getElementById("fs_electron_login"),r=document.body.children,s=0;if(a()){for(document.body.classList.add("login"),e=require("electron"),t=e.remote.getGlobal("fasInfos"),n=e.remote.getGlobal("fasRestart"),s=0;s-1},f=function(e){return 440*Math.pow(2,(e-69)/12)},p=function(e,t){return 1/t*(60/e)},g=function(){var e=0;for(e=0;e<256;e+=1)n.push(u(e))};g();var m=document.getElementById("fs_utter_fail"),v=document.getElementById("fail"),y=document.getElementById("fs_notification"),b=function(e,t){v.innerHTML=e,t&&(document.body.innerHTML="",m.innerHTML=''+e,document.body.appendChild(m))},_=function(){m.parentElement.removeChild(m),m=null},w=function(e){return function(){e.parentElement.removeChild(e)}},x=function(e){return function(){e.classList.add("fs-opacity-transition"),e.classList.add("fs-transparent"),window.setTimeout(w(e),2e3)}},E=function(e,t){var n=document.createElement("div");n.innerHTML=e,void 0===t&&(t=1500),""!==v.innerHTML&&n.classList.add("fs-text-align-right"),y.appendChild(n),window.setTimeout(x(n),t)};m.innerHTML="";var L=function(){var t;return e.session_name?e.session_name:(t=window.location.pathname.split("/"),t[t.length-1])};if(window.performance=window.performance||{},performance.now=function(){return performance.now||performance.mozNow||performance.msNow||performance.oNow||performance.webkitNow||function(){return(new Date).getTime()}}(),window.AudioContext=window.AudioContext||window.webkitAudioContext||!1,window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,window.cancelAnimationFrame=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame,!window.AudioContext)return void b("The Web Audio API is not available, please use a Web Audio capable browser.",!0);if(!window.cancelAnimationFrame)return void b("The cancelAnimationFrame function is not available, please use a web browser with cancelAnimationFrame support.",!0);if(!window.localStorage)return void b("The localStorage API is not available, please use a web browser with localStorage support.",!0);if(!window.FileReader)return void b("FileReader API is not available, please use a web browser with FileReader support.",!0);if(!window.Blob)return void b("Blob API is not available, please use a web browser with Blob support.",!0);if(!window.File)return void b("File API is not available, please use a web browser with File API support.",!0);if("undefined"==typeof Worker)return void b("Web Workers are not available, please use a web browser with Web Workers support.",!0);var C,T,S,k,I,M,D,A,O,W,R,N,P,B,U,H,F,z,X,q,j,G,V,Y,K=1,J=localStorage.getItem("fs-user-name"),$=localStorage.getItem(L()),Q=document.getElementById("fs_red_curtain"),Z=document.getElementById("fs_user_name"),ee=document.getElementById("fs_time_infos"),te=document.getElementById("fs_hz_infos"),ne=document.getElementById("fs_xy_infos"),ie=document.getElementById("fs_osc_infos"),re=document.getElementById("fs_polyphony_infos"),oe=document.getElementById("fs_haxis_infos"),le=document.getElementById("fs_vaxis_infos"),se=document.getElementById("canvas_container"),ae=document.createElement("canvas"),ce=document.getElementById("fs_record_canvas"),ue=ce.getContext("2d"),de=0,he=!1,fe={default:function(e,t){return t},additive:function(e,t){return e+t},substractive:function(e,t){return e-t},multiply:function(e,t){return e*t},f:null},pe=1024,ge=439,me=pe-1,ve=4*ge,ye=pe,be=ge,_e={enabled:!0,pframe:[],index:0,program:null,texture:null},we=document.getElementById("code"),xe=localStorage.getItem("fs-editor-theme"),Ee={showToken:/\w/,annotateScrollbar:!0},Le={value:"",theme:null===xe?"seti":xe,matchBrackets:!0,lineNumbers:!0,styleActiveLine:!0,scrollbarStyle:"native",mode:"text/x-glsl",extraKeys:{F11:function(e){e.setOption("fullScreen",!e.getOption("fullScreen"))},Esc:function(e){e.getOption("fullScreen")&&e.setOption("fullScreen",!1)}}},Ce=!1,Te=320,Se={data:[],data_components:4,data_length:240,uniform_vectors:0,pressed:{},polyphony_max:60,polyphony:0},ke={max_fragment_uniform_vector:-1},Ie=!1,Me=!1,De=!0,Ae=!1,Oe=!1,We=!0,Re=!1,Ne=!0,Pe=!1,Be=0,Ue=1,He=60,Fe=!1,ze=null,Xe=[],qe={preserveDrawingBuffer:!0,antialias:!0,depth:!1},je=[],Ge=new Uint8Array(ve),Ve=[],Ye=1,Ke=!0,Je=!0,$e=2,Qe={},Ze=[],et=document.getElementById("fs_input_panel"),tt=[],nt=0,it=0,rt=null,ot="iInput",lt="ws",st="127.0.0.1",at=0,ct=1,ut=new window.AudioContext,dt=ut.createAnalyser(),ht=16384,ft=ut.sampleRate,pt=.05,gt=4096,mt=function(e){var t=new Float32Array(e),n=0,i=2*Math.PI/e,r=0;for(r=0;r=G.length||e<0?null:G[e]},Pt=function(e){var t=Nt(e);return t?t.freq:null},Bt=function(e){var t=new Float32Array(2),n=new Float32Array(2),i=0,r=1,o=0,l=1/e,s=0;for(bt=[],s=0;s<=e;s+=1)o=2*Math.PI*(l*s),t[1]=i*Math.cos(o)-r*Math.sin(o),n[1]=i*Math.sin(o)+r*Math.cos(o),bt.push(ut.createPeriodicWave(t,n));_t=e-1},Ut=function(e,t,n){var i,r=0,o=0,l=0,s=null,a=null,c=null,u=e/n;if(G)for(r=0;r=0;r-=1){o=t*Math.pow(2,r/u),l=o/ut.sampleRate*gt,s=Rt(V),a=Wt(s,0),c=Wt(s,1);var d={freq:o,gain_node_l:a,gain_node_r:c,merger_node:s,period:1/o,gain_l:0,gain_r:0,node:null,used:!1,phase_index:Math.random()*gt,phase_step:l};d.node=ut.createOscillator(),d.node.setPeriodicWave(bt[Math.round(Math.random()*_t)]),d.node.frequency.value=d.freq,d.node.connect(d.gain_node_l),d.node.connect(d.gain_node_r),d.node.start(),G.push(d)}Dt.h=e,Dt.base_freq=t,Dt.octaves=n},Ht=function(){var e=null,t=ut.currentTime,n=0;for(n=0;n=gt&&(t.phase_index-=gt); -}l[n]=c,s[n]=u,g+=Et,m+=1,m>=xt&&(Et=0,m=0,Mt&&(g=0,It=0,Et=1/xt,Tt=new Float32Array(St),Mt=!1))}It=g,kt=m},jt=function(){Ot&&(V.disconnect(dt),Ot=!1)},Gt=function(){Y&&!At&&(Y.connect(V),At=!0)},Vt=function(){Y&&At&&(Y.disconnect(V),At=!1)},Yt=function(e){pt=e,V&&(pt?V.gain.value=parseFloat(pt):V.gain.value=0),Dt.gain=pt},Kt=function(){Ct=!1,Tt=[]},Jt=function(){Ct=!0},$t=function(){var e,t=0,n=0;for(t=0;t1?e.getChannelData(1).buffer:null,i={settings:JSON.parse(JSON.stringify(ln)),left:t,right:n,note_time:p(ln.bpm,ln.ppb),sample_rate:ft},r=[t];ln.height<=0&&(i.settings.height=ge),ln.minfreq<=0&&(i.settings.minfreq=G[G.length-1].freq),ln.maxfreq<=0&&(i.settings.maxfreq=G[0].freq),n&&r.push(n),E("conversion in progress...",2e3),on.postMessage(i,r)},an=function(e){var t=new FileReader;t.onload=function(e){Qt(e.target.result,sn)},t.onerror=function(t){var n=t.target.error;switch(n.code){case n.NOT_FOUND_ERR:E("File '"+e.name+" not found.");break;case n.NOT_READABLE_ERR:E("File '"+e.name+" not readable.");break;case n.ABORT_ERR:E("File '"+e.name+" operation was aborted.");break;case n.SECURITY_ERR:E("File '"+e.name+" is in a locked state.");break;case n.ENCODING_ERR:E("File '"+e.name+" encoding took too long.");break;default:E("File '"+e.name+" cannot be loaded.")}},t.onprogress=function(t){var n=0;t.lengthComputable&&(n=Math.round(100*t.loaded/t.total),E("loading '"+e.name+"' "+n+"%."))},t.readAsArrayBuffer(e)};on.addEventListener("message",function(e){if(e.data!==Object(e.data))return void("string"==typeof e.data?E(e.data,1e4):E("Audio file conversion in progress : "+e.data+"%"));var t={width:e.data.width,height:e.data.height,data:{buffer:e.data.pbuffer}};Oi(t,en),E("Audio file converted to "+t.width+"x"+t.height+"px image.")},!1);var cn=document.getElementById("fs_import_dropzone"),un=function(e){var t=document.createElement("input");t.type="file",t.multiple=!0,t.addEventListener("change",e,!1),t.click()},dn=function(e){return function(t){if(void 0===t)return void un(dn(e));var n,i=t.target,r=i.files,o=0;if(0!==r.length){for(o=0;o0)for(n=4*e.shift,t.copyWithin(n,0,ve-n),i=0;iSe.data_length)break;for(_e.enabled&&(i=_e.pframe[_e.index],r=_e.pframe[(_e.index+1)%2],U.bindFramebuffer(U.FRAMEBUFFER,i.buffer),U.viewport(0,0,pe,ge),An(q),h=Ze.length,U.activeTexture(U.TEXTURE0+h),U.bindTexture(U.TEXTURE_2D,r.data.texture),U.uniform1i(On("pFrame",q),h)),U.uniform4fv(On("keyboard"),Se.data),U.uniform1f(On("globalTime"),p),U.uniform1f(On("octave"),Dt.octaves),U.uniform1f(On("baseFrequency"),Dt.base_freq),U.uniform4f(On("mouse"),W,R,N,P),U.uniform4f(On("date"),g.getFullYear(),g.getMonth(),g.getDay(),g.getSeconds()),u=0;u0){for(v||(je[0]=new Uint8Array(Ve[0])),Fe&&(U.bindBuffer(U.PIXEL_PACK_BUFFER,ze),U.bufferData(U.PIXEL_PACK_BUFFER,1*ae.height*4,U.STATIC_READ)),t=Xe[0],m=t.output_channel-1,t.mute?Ve[m]=new Uint8Array(ve):(0!=t.frame_increment&&Ar(t.id,t.x+t.frame_increment,t.y,!1,!0),f=t.x,Fe?(U.readPixels(f,0,1,ge,U.RGBA,U.UNSIGNED_BYTE,0),U.getBufferSubData(U.PIXEL_PACK_BUFFER,0,Ve[m])):U.readPixels(f,0,1,ge,U.RGBA,U.UNSIGNED_BYTE,Ve[m]),xn(t,Ve[m])),u=1;u0?_+=1:Ve[d][u+1]>0&&(_+=1);b.push(_)}ie.innerHTML=b.join(" ")}if(he){for(de+=1,de>pe&&(de=0),Ge=new Uint8Array(ve),u=0;u0&&e.uniform4fv(l,new Float32Array(r)))},Rn=function(){var e,t,n,i,r,o,l="",s=0;for(l="precision mediump float; uniform float globalTime; uniform float octave; uniform float baseFrequency; uniform vec4 mouse; uniform vec4 date; uniform vec2 resolution; uniform vec4 keyboard["+Se.polyphony_max+"];",_e.enabled&&(l+="uniform sampler2D pFrame;"),l+="float htoy(float frequency) {return resolution.y - (resolution.y - (log(frequency / baseFrequency) / log(2.)) * (resolution.y / octave));}",l+="float fline(float frequency) {return step(abs(gl_FragCoord.y - htoy(frequency)), 0.5);}",s=0;s1?"["+r.count+"]":"")+";");if(l+=T.getValue(),e=Dn(U.FRAGMENT_SHADER,l),o=Mn(Dn(U.VERTEX_SHADER,document.getElementById("vertex-shader").text),e),In(l),o){U.deleteProgram(q),q=o,Tn={},b(""),Ui(),An(q),U.uniform2f(U.getUniformLocation(q,"resolution"),ae.width,ae.height),Wn(U,"vec",q,"keyboard",Se.data,Se.data_components);for(i in Qe)Qe.hasOwnProperty(i)&&(r=Qe[i],Wn(U,r.type,q,i,r.values,r.comps));t=U.getAttribLocation(q,"position"),U.enableVertexAttribArray(t),U.vertexAttribPointer(t,2,U.FLOAT,!1,0,0),Me&&(Me=!1,0===K&&ji(!1))}else Me=!0},Nn=function(e){return function(){T.setCursor({line:e.start.line-1,ch:e.start.column}),k&&k.cm.setCursor({line:e.start.line-1,ch:e.start.column})}};kn.onmessage=function(e){var t,n,i,r,o=0,l=0,s=e.data;for(Sn.innerHTML="",o=0;o'+i.type_name+" "+i.name);r.innerHTML=''+t.returnType.name+" "+t.name+" ("+n.join(", ")+")",r.title="line: "+t.position.start.line,r.addEventListener("click",Nn(t.position)),Sn.appendChild(r)}else"declarator"===t.type?(r=document.createElement("div"),r.className="fs-outline-item fs-outline-declarator",r.innerHTML=''+t.returnType+" "+t.name,r.title="line: "+t.position.start.line,r.addEventListener("click",Nn(t.position)),Sn.appendChild(r)):"preprocessor"===t.type&&(r=document.createElement("div"),r.className="fs-outline-item fs-outline-preprocessor",r.innerHTML=t.name+" = "+t.value,r.title="line: "+t.position.start.line,r.addEventListener("click",Nn(t.position)),Sn.appendChild(r))};var Pn,Bn,Un,Hn,Fn,zn,Xn,qn,jn,Gn=st+":3001",Vn=st+":3002",Yn=!1,Kn=!1,Jn=function(e){E(e,5e3)},$n=function(){var e=new WebSocket(lt+"://"+Vn);e.addEventListener("open",function(e){var t=document.getElementById("fs_sync_status");t.classList.add("fs-server-status-on")}),e.addEventListener("close",function(e){Yn=!1,Kn=!1,E("Connection to synchronization server was lost, trying again in ~5s.",2500),clearTimeout(Fn),Fn=setTimeout($n,5e3);var t=document.getElementById("fs_sync_status");t.classList.remove("fs-server-status-on")}),e.addEventListener("error",function(e){}),zn=new ShareDB.Connection(e),Xn=zn.get(Bn,"fs"),Xn.on("error",Jn),Xn.subscribe(function(e){e&&E(e,5e3),Xn.data?T.setValue(Xn.data):Xn.create(T.getValue()),Xn.on("op",function(e,t){var n,i,r,o,l=0,s=0;if(t===!1)for(l=0;l0&&Xn.submitOp(t)}},di=function(){Bn=L(),Zn(),$n()},hi="fs_right_dialog",fi=document.getElementById("fs_discuss_input"),pi=function(){return document.getElementById("fs_users_list")},gi=function(e,t,n,i){var r=pi(),o=document.createElement("li"),l=WUI_Dialog.getDetachedDialog(hi);o.innerHTML=t,o.id="user"+e,o.title=t,n&&(o.style.color=n),i&&(o.style.fontWeight="bold"),r.appendChild(o),l&&l.document.getElementById("fs_users_list").appendChild(o.cloneNode(!0))},mi=function(e){var t,n=document.getElementById("user"+e),i=WUI_Dialog.getDetachedDialog(hi);i&&(t=i.document.getElementById("user"+e),t.parentElement.removeChild(t)),n.parentElement.removeChild(n)},vi=function(e){var t,n,i,r=pi(),o=WUI_Dialog.getDetachedDialog(hi);for(r.innerHTML="",gi("self",J,"#adff2f",!1),i=0;irepeat';a.id="fs_channel_settings_dialog",Fe||l(u.image.width)&&l(u.image.height)&&1!==u.type||(d=""),a.style.fontSize="13px",c.innerHTML='  
    Filter:
     
    Wrap S:
     
    Wrap T:
     
      
    ',a.appendChild(c),document.body.appendChild(a),t=document.getElementById("fs_channel_filter"),n=document.getElementById("fs_channel_wrap_s"),i=document.getElementById("fs_channel_wrap_t"),r=document.getElementById("fs_channel_vflip"),U.bindTexture(U.TEXTURE_2D,u.texture),U.getTexParameter(U.TEXTURE_2D,U.TEXTURE_MAG_FILTER)===U.NEAREST&&(t.value="nearest"),s=U.getTexParameter(U.TEXTURE_2D,U.TEXTURE_WRAP_S),s===U.CLAMP_TO_EDGE?n.value="clamp":s===U.REPEAT?n.value="repeat":s===U.MIRRORED_REPEAT&&(n.value="mirror"),s=U.getTexParameter(U.TEXTURE_2D,U.TEXTURE_WRAP_T),s===U.CLAMP_TO_EDGE?i.value="clamp":s===U.REPEAT?i.value="repeat":s===U.MIRRORED_REPEAT&&(i.value="mirror"),u.flip?r.checked=!0:r.checked=!1,t.addEventListener("change",function(){vn(u.texture,this.value)}),n.addEventListener("change",function(){yn(u.texture,this.value)}),i.addEventListener("change",function(){bn(u.texture,this.value)}),r.addEventListener("change",function(){var e;e=_n(u.texture,u.image),u.texture=e,u.flip=!u.flip}),o=WUI_Dialog.create(a.id,{title:ot+e+" settings",width:"200px",height:"230px",halign:"center",valign:"center",open:!0,minimized:!1,on_close:function(){WUI_Dialog.destroy(o)},modal:!0,status_bar:!1,closable:!0,draggable:!0,minimizable:!1,resizable:!1,detachable:!1,min_width:200,min_height:250})},Oi=function(e,t){var n=new Worker("dist/worker/image_processor.min.js");n.onmessage=function(e){en(e.data)},n.postMessage({img_width:e.width,img_height:e.height,buffer:e.data.buffer},[e.data.buffer])},Wi=function(e){var t=s(e.target.dataset.inputId),n=Ze[t].elem;WUI_CircularMenu.create({element:n,rx:32,ry:32,item_width:32,item_height:32},[{icon:"fs-gear-icon",tooltip:"Settings",on_click:function(){Ai(t)}},{icon:"fs-cross-45-icon",tooltip:"Delete",on_click:function(){et.removeChild(n),Ni(t)}},{icon:"fs-xyf-icon",tooltip:"View image",on_click:function(){window.open(n.src)}}])},Ri=function(){var e,t=0;for(t=0;t","","","Fragment < />",'','','','','',"","",'
    ',"",""].join("")),k.document.close()},qi=function(){window.cancelAnimationFrame(B),Ht(),Vt(),K=1,it=performance.now()},ji=function(e){K=0,Me||(mo()||vt!==at||Gt(),window.cancelAnimationFrame(B),B=window.requestAnimationFrame(Cn),void 0===e&&(nt+=performance.now()-it))},Gi=function(){0===K&&Me===!1?nt=performance.now():(nt=0,it=0,De&&(ee.innerHTML=parseInt(nt,10)))},Vi={plus:"fs-plus-icon"},Yi="fs_slice_settings_dialog",Ki="fs_settings_dialog",Ji="fs_midi_settings_dialog",$i="fs_help_dialog",Qi="fs_analysis_dialog",Zi="fs_record_dialog",er="fs_outline_dialog",tr="fs_import_dialog",nr=[{},{},{},{}],ir="fs_controls_dialog",rr=document.getElementById(ir),or=function(e){e.state?qi():ji()},lr=function(){WUI_Dialog.open(Mi,!0)},sr=function(){WUI_Dialog.open(Li)},ar=function(){WUI_Dialog.open(xi)},cr=function(){WUI_Dialog.open(Ei)},ur=function(e){e.state?(document.getElementById("fs_fas_status").style="",po(),Ht(),Vt()):(document.getElementById("fs_fas_status").style="display: none",go(),0===K&&Gt())},dr=function(e){Ie=!!e.state},hr=function(){he?(he=!1,WUI_Dialog.close(Ti)):(he=!0,WUI_Dialog.open(Ti))},fr=function(){WUI_ToolBar.toggle(Ii,14),WUI_Dialog.close(ki)},pr=function(){WUI_ToolBar.toggle(Ii,7)},gr=function(){WUI_Dialog.open(Si)},mr=function(e){e.state?WUI_Dialog.open(ki):WUI_Dialog.close(ki)},vr=function(){fe.f===fe.additive?fe.f=fe.default:fe.f=fe.additive},yr=function(){fe.f===fe.substractive?fe.f=fe.default:fe.f=fe.substractive},br=function(){fe.f===fe.multiply?fe.f=fe.default:fe.f=fe.multiply},_r=function(){window.open(ce.toDataURL("image/png"))},wr=function(){de=0,ue.clearRect(0,0,ce.width,ce.height)},xr=function(){var e,t=(new Image,document.createElement("canvas")),n=t.getContext("2d");t.width=ce.width,t.height=ce.height,n.translate(0,ce.height),n.scale(1,-1),n.drawImage(ce,0,0,t.width,t.height),e=n.getImageData(0,0,t.width,t.height),tn(e)},Er=function(){var e=document.getElementById("fs_settings_ck_globaltime"),t=document.getElementById("fs_settings_ck_polyinfos"),n=document.getElementById("fs_settings_ck_oscinfos"),r=document.getElementById("fs_settings_ck_hlmatches"),o=document.getElementById("fs_settings_ck_lnumbers"),l=document.getElementById("fs_settings_ck_xscrollbar"),a=document.getElementById("fs_settings_ck_wavetable"),c=document.getElementById("fs_settings_ck_monophonic"),u=document.getElementById("fs_settings_ck_feedback"),d=document.getElementById("fs_settings_ck_exted"),h=document.getElementById("fs_settings_ck_slicebar"),f=document.getElementById("fs_settings_ck_slices"),p=localStorage.getItem("fs-max-polyphony"),g=localStorage.getItem("fs-osc-fadeout"),m=localStorage.getItem("fs-show-globaltime"),v=localStorage.getItem("fs-show-polyinfos"),y=localStorage.getItem("fs-show-oscinfos"),b=localStorage.getItem("fs-show-slicebar"),w=localStorage.getItem("fs-editor-hl-matches"),x=localStorage.getItem("fs-editor-show-linenumbers"),E=localStorage.getItem("fs-editor-advanced-scrollbar"),L=localStorage.getItem("fs-use-wavetable"),C=localStorage.getItem("fs-monophonic"),S=localStorage.getItem("fs-feedback"),k=localStorage.getItem("fs-exted"); -xi=WUI_Dialog.create(Ki,{title:"Session & global settings",width:"320px",height:"418px",halign:"center",valign:"center",open:!1,status_bar:!1,detachable:!1,draggable:!0}),"true"===C?(Dt.monophonic=!0,c.checked=!0):(Dt.monophonic=!1,c.checked=!1),"true"===k?d.checked=!0:d.checked=!1,"true"===S?(_e.enabled=!0,u.checked=!0):null===S?_e.enabled?u.checked=!0:u.checked=!1:(_e.enabled=!1,u.checked=!1),g&&(yt=parseFloat(g)),p&&(Se.polyphony_max=s(p)),"true"===L?(vt=at,a.checked=!0):(vt=ct,a.checked=!1),null!==m&&(De="true"===m),null!==y&&(Ae="true"===y),null!==v&&(Oe="true"===v),null!==b&&(We="true"===b),null!==w&&(Re="true"===w),null!==x&&(Ne="true"===x),null!==E&&(Pe="true"===E),Pe?l.checked=!0:l.checked=!1,Ae?n.checked=!0:n.checked=!1,Oe?t.checked=!0:t.checked=!1,De?e.checked=!0:e.checked=!1,Re?r.checked=!0:r.checked=!1,Ne?o.checked=!0:o.checked=!1,We?h.checked=!0:h.checked=!1,c.addEventListener("change",function(){this.checked?Dt.monophonic=!0:Dt.monophonic=!1,localStorage.setItem("fs-monophonic",this.checked)}),u.addEventListener("change",function(){this.checked?_e.enabled=!0:_e.enabled=!1,localStorage.setItem("fs-feedback",this.checked),wn()}),d.addEventListener("change",function(){localStorage.setItem("fs-exted",this.checked)}),a.addEventListener("change",function(){this.checked?(vt=at,Ht(),Gt()):(vt=ct,Vt()),localStorage.setItem("fs-use-wavetable",this.checked)}),n.addEventListener("change",function(){Ae=this.checked,Ae||(ie.innerHTML=""),localStorage.setItem("fs-show-oscinfos",Ae)}),t.addEventListener("change",function(){Oe=this.checked,Oe||(re.innerHTML=""),localStorage.setItem("fs-show-polyinfos",Oe)}),h.addEventListener("change",function(){var e=document.getElementsByClassName("play-position-marker"),t=0;if(We=this.checked)for(t=e.length-1;t>=0;--t)e[t].classList.add("play-position-marker-bar");else for(t=e.length-1;t>=0;--t)e[t].classList.remove("play-position-marker-bar");localStorage.setItem("fs-show-slicebar",We)}),f.addEventListener("change",function(){var e=document.getElementsByClassName("play-position-marker"),t=0;if(this.checked)for(t=e.length-1;t>=0;--t)e[t].classList.remove("fs-hide");else for(t=e.length-1;t>=0;--t)e[t].classList.add("fs-hide")}),e.addEventListener("change",function(){De=this.checked,De||(ee.innerHTML=""),localStorage.setItem("fs-show-globaltime",De)}),r.addEventListener("change",function(){Re=this.checked,Re?(Le.highlightSelectionMatches=Ee,T.setOption("highlightSelectionMatches",Ee)):(delete Le.highlightSelectionMatches,T.setOption("highlightSelectionMatches",null)),localStorage.setItem("fs-editor-hl-matches",Re)}),o.addEventListener("change",function(){Ne=this.checked,Le.lineNumbers=Ne,T.setOption("lineNumbers",Ne),localStorage.setItem("fs-editor-show-linenumbers",Ne)}),l.addEventListener("change",function(){Pe=this.checked,Pe?(Le.scrollbarStyle="overlay",T.setOption("scrollbarStyle","overlay")):(Le.scrollbarStyle="native",T.setOption("scrollbarStyle","native")),localStorage.setItem("fs-editor-advanced-scrollbar",Pe)}),a.dispatchEvent(new UIEvent("change")),n.dispatchEvent(new UIEvent("change")),t.dispatchEvent(new UIEvent("change")),e.dispatchEvent(new UIEvent("change")),r.dispatchEvent(new UIEvent("change")),o.dispatchEvent(new UIEvent("change")),l.dispatchEvent(new UIEvent("change")),c.dispatchEvent(new UIEvent("change")),u.dispatchEvent(new UIEvent("change")),d.dispatchEvent(new UIEvent("change")),h.dispatchEvent(new UIEvent("change")),f.dispatchEvent(new UIEvent("change")),Ei=WUI_Dialog.create(Ji,{title:"MIDI settings",width:"320px",height:"390px",halign:"center",valign:"center",open:!1,status_bar:!1,detachable:!1,draggable:!0}),Ti=WUI_Dialog.create(Zi,{title:"Recording...",width:"auto",height:"auto",halign:"center",valign:"center",open:!1,status_bar:!1,detachable:!1,draggable:!0,on_close:pr}),ki=WUI_Dialog.create(tr,{title:"Import input (image, audio, webcam)",width:"380px",height:"480px",halign:"center",valign:"center",open:!1,status_bar:!1,detachable:!0,draggable:!0,on_close:fr}),WUI_ToolBar.create("fs_import_toolbar",{allow_groups_minimize:!1},{acts:[{icon:"fs-image-file-icon",on_click:function(){dn("image")()},tooltip:"Image",text:"Image"},{icon:"fs-audio-file-icon",on_click:function(){dn("audio")()},tooltip:"Audio",text:"Audio"},{icon:"fs-camera-icon",on_click:function(){Bi("camera")},tooltip:"Webcam",text:"Webcam"}]}),Si=WUI_Dialog.create(er,{title:"GLSL Outline",width:"380px",height:"700px",halign:"center",valign:"center",open:!1,status_bar:!1,detachable:!0,draggable:!0}),Ci=WUI_Dialog.create(Qi,{title:"Audio analysis",width:"380px",height:"380px",halign:"center",valign:"center",open:!1,status_bar:!1,detachable:!1,draggable:!0,on_close:jt}),Li=WUI_Dialog.create($i,{title:"Fragment - Help",width:"380px",height:"605px",halign:"center",valign:"center",open:!1,status_bar:!1,detachable:!0,draggable:!0}),wi=WUI_Dialog.create(Yi,{title:"Slice settings",width:"320px",height:"200px",halign:"center",valign:"center",open:!1,detachable:!1,status_bar:!0,draggable:!0}),Mi=WUI_Dialog.create(ir,{title:"Controls input",width:"50%",height:"50%",halign:"center",valign:"center",on_pre_detach:function(){var e,t,n=document.getElementById("fs_controls_panel");if(n.firstElementChild){for(e=n.firstElementChild.lastElementChild.childNodes,t=0;t1?"["+w+"]["+x+"]":" ["+x+"]"),y.appendChild(I[L]);m=b>1?C.createTextNode("Array (Vector ("+d+"))"):C.createTextNode("Vector ("+d+")")}else{for(w=0;w1?"["+w+"]":" ("+d+")"),y.appendChild(I[w]);b>1&&(m=C.createTextNode("Array ("+d+")"))}if(m&&v.appendChild(m),v.appendChild(y),"bool"===d)for(w=0;wme&&(t=0),o.x=t,o.element.style.left=parseInt(t,10)+l.left+1+"px",void 0===r&&WUI_RangeSlider.setValue("fs_slice_settings_x_input_"+o.id,t),i&&Hr(0,e,{x:t})},Or=function(){var e,t=0,n=a(ae);for(t=0;ti.left+pe?pe-1:t-i.left-2,Ar(e,t,n,!0)},Ur=function(){Xe.forEach(function(e){Nr(e.id,!0)})},Hr=function(e,t,n){clearTimeout(nr[e][t]),nr[e][t]=setTimeout(ei,1e3,t,n)},Fr=function(e,t,n){setTimeout(ti,500,e,t,n)},zr=function(e){setTimeout(ni,500,e)},Xr=function(e,t){e.element.firstElementChild,e.element.lastElementChild;e.mute=!0,e.element.style.backgroundColor="#555555",t&&Hr(2,e.element.dataset.slice,{mute:!0})},qr=function(e,t){e.element.firstElementChild,e.element.lastElementChild;e.mute=!1,e.element.style.backgroundColor="",t&&Hr(2,e.element.dataset.slice,{mute:!1})},jr=function(e,t,n,i,r){var o,l=Mr(ae,ge),s=Xe.length,a=l.firstElementChild,c=l.lastElementChild,u=n;void 0===e&&(e=0),u?l.style.backgroundColor="#555555":u=!1,l.dataset.slice=s,Xe.push({element:l,x:e,mute:u,min:0,max:100,shift:0,frame_increment:0,output_channel:1,y:0,height:ge,id:s}),o=Xe[s],void 0!==i&&(o.output_channel=i),$t(),void 0!==t&&(o.shift=t),Ar(s,o.x,0),WUI.draggable(a,function(e,t,n){Br(e.dataset.slice,t,n)},!1,l),WUI.lockDraggable(a,"y"),WUI.draggable(c,function(e,t,n){Br(e.dataset.slice,t,n)},!1,l),WUI.lockDraggable(c,"y"),WUI.draggable(l,function(e,t,n){Br(e.dataset.slice,t,n)}),WUI.lockDraggable(l,"y"),l.addEventListener("dblclick",function(e){Ir(o,!0)}),l.addEventListener("contextmenu",function(e){e.preventDefault(),this.mute||(this.mute=!1);var t,n=Xe[parseInt(l.dataset.slice,10)],i={icon:"fs-mute-icon",tooltip:"Mute",on_click:function(){Xr(n,!0)}},r={icon:"fs-unmute-icon",tooltip:"Unmute",on_click:function(){qr(n,!0)}};return t=n.mute?r:i,WUI_CircularMenu.create({x:A,y:O,rx:32,ry:32,item_width:32,item_height:32},[t,{icon:"fs-gear-icon",tooltip:"Settings",on_click:function(){Ir(n,!0)}},{icon:"fs-cross-45-icon",tooltip:"Delete",on_click:function(){Nr(l.dataset.slice,!0,!0)}}]),!1},!1),Pr(o),r&&Fr(e,t,n)},Gr=null,Vr={input:{},output:{}},Yr=0,Kr=function(e){var t,n,i;if(!e)return null;try{t=JSON.parse(e);for(n in t.i)i=t.i[n],Vr.input[n]={enabled:i.enabled}}catch(e){E("_loadMIDISettings JSON message parsing failed : "+e)}},Jr=function(){var e,t,n={i:{},o:{}};for(e in Vr.input)t=Vr.input[e],n.i[e]={enabled:t.enabled};$.midi_settings=JSON.stringify(n),_o()},$r=function(e){var t=document.createElement("div"),n="fs_midi_settings_ck_"+Yr,i=document.getElementById(Ji).lastElementChild,r=!1,o="";e.id in Vr.input&&(r=Vr.input[e.id].enabled,r&&(o="checked"),Vr.input[e.id].connected)||(t.classList.add("fs-midi-settings-device"),t.innerHTML=[e.name,"
    ",' ","
    "].join(""),i.appendChild(t),Vr.input[e.id]={type:e.type,id:e.id,manufacturer:e.manufacturer,name:e.name,version:e.version,iid:Yr,enabled:r,element:t,connected:!0},document.getElementById(n).addEventListener("change",function(){var e=Vr.input[this.dataset.did];e.enabled=this.checked,Jr()}),e.onmidimessage=eo,Yr+=1)},Qr=function(e){var t=Vr.input[e];return t?(t.element.parentElement.removeChild(t.element),void delete Vr.input[e]):void console.log("_deleteMIDIDevice: MIDI Device ",e," does not exist.")},Zr=function(e){var t=e.port;"input"===t.type&&("connected"===t.state?$r(t):"disconnected"===t.state&&Qr(t.id))},eo=function(e){var t,n,i=0,r=Vr.input[this.id],o=15&e.data[0];if(r.enabled){switch(An(q),240&e.data[0]){case 144:if(0!==e.data[2]){t=o+"_"+e.data[1],Se.data=new Array(Se.data_length),Se.data.fill(0),Se.pressed[t]={frq:f(e.data[1]),vel:e.data[2]/127,time:Date.now(),channel:o},i=0;for(t in Se.pressed)if(n=Se.pressed[t],Se.data[i]=n.frq,Se.data[i+1]=n.vel,Se.data[i+2]=Date.now(),Se.data[i+3]=n.channel,i+=Se.data_components,i>Se.data_length)break;Se.polyphony=i/Se.data_components,Wn(U,"vec",q,"keyboard",Se.data,Se.data_components)}break;case 128:t=o+"_"+e.data[1],delete Se.pressed[t],Se.data=new Array(Se.data_length),Se.data.fill(0),i=0;for(t in Se.pressed)if(n=Se.pressed[t],Se.data[i]=n.frq,Se.data[i+1]=n.vel,Se.data[i+2]=n.time,Se.data[i+3]=n.channel,i+=Se.data_components,i>Se.data_length)break;Se.polyphony=i/Se.data_components,Wn(U,"vec",q,"keyboard",Se.data,Se.data_components)}WUI_RangeSlider.submitMIDIMessage(e)}},to=function(e){var t=document.getElementById(Ji).lastElementChild;Gr=e,t.innerHTML='
    MIDI Inputs
    ',Gr.inputs.forEach(function(e){$r(e)}),Gr.onstatechange=Zr},no=function(e){midi_settings_element.innerHTML="
    Failed to get WebMIDI API access : "+e+"
    "},io=function(){var e=0,t=document.getElementById(Ji).lastElementChild;for(Se.data=[],e=0;eWebMIDI API is not enabled or supported by this browser."},ro={address:"127.0.0.1:3003",enabled:!1,status:null,worker:new Worker("dist/worker/fas.min.js")},oo=document.getElementById("fs_fas_address"),lo=0,so=1,ao=2,co=3,uo=4,ho=function(e,t){ro.worker.postMessage({cmd:e,arg:t})},fo=function(e,t){var n=[],i=0;for(i=0;i=0&&M100&&(i.style.zIndex=100)));for(r=o.dialog.parentElement;null!==r;)r.classList.contains(d.dialog)&&(r.style.zIndex=101),r=r.parentElement;e.style.zIndex=101}},m=function(e){var t=document.createElement("div");return t.className="wui-dialog-modal",t.addEventListener("click",function(t){t.preventDefault(),p(e,!0,!0,!0)}),t.style.zIndex=16777270,t},v=function(e){var n=t[e.id],i=n.opts,r=e.parentElement.offsetWidth,o=e.parentElement.offsetHeight,l=e.offsetWidth,s=e.offsetHeight;"center"===i.halign?e.style.left=Math.round((r-l)/2+i.left)+"px":"right"===i.halign?e.style.left=r-l+i.left+"px":e.style.left=i.left+"px","center"===i.valign?e.style.top=Math.round((o-s)/2+i.top)+"px":"bottom"===i.valign?e.style.top=o-s+i.top+"px":e.style.top=i.top+"px"},y=function(e,n){var i=t[n.id],r=i.resize_handler;i.dialog!==n&&y(i.header_minimaxi_btn,i.dialog),e.classList.toggle(d.minimize),e.classList.toggle(d.maximize),n.classList.toggle(d.minimized),n.classList.contains(d.minimized)?(n.style.borderStyle="solid",n.style.borderColor="#808080",n.style.borderWidth="1px"):(n.style.borderStyle="",n.style.borderColor="",n.style.borderWidth=""),r&&r.classList.toggle(d.open),i.status_bar&&i.status_bar.classList.toggle(d.open)},b=function(e){null===c&&(c=setTimeout(function(){c=null;var n,i,r,o,l,s,a,u=document;if(e)for(u=e.document,n=u.getElementsByClassName(d.content),a=0;a0?r.style.height=e.innerHeight-32+"px":r.style.height=e.innerHeight+"px",s=r.getBoundingClientRect(),i.opts.on_resize&&i.opts.on_resize(s.width,s.height);else for(n=u.getElementsByClassName(d.content),a=0;a0?r.style.height=o.offsetHeight-64+"px":r.style.height=o.offsetHeight-32+"px",v(o),s=r.getBoundingClientRect(),i=t[o.id],i.opts.on_resize&&i.opts.on_resize(s.width,s.height)},125))},_=function(e,t){var n,i;do{if(1==e.nodeType&&e.eventListenerList)for(n in e.eventListenerList)if("length"!==n&&e.eventListenerList.hasOwnProperty(n))for(i=0;i","",""+f+"",s,"",'',"",""].join("")),g.document.close(),g.document.body.appendChild(e.children[1].cloneNode(!0));var v=e.getElementsByClassName(d.status_bar);if(v.length>0){var y=v[0].cloneNode(!0);y.classList.add(d.open),g.document.body.appendChild(y)}g.addEventListener("keyup",function(t){27===t.keyCode&&p(e,!0,!0,!0)},!1),g.addEventListener("resize",function(){b(g)},!1),g.addEventListener("beforeunload",function(){p(e,!0,!0,!0)},!1),u.push(g)},x=function(e){e.preventDefault();var t=e.target,n=null;t.classList.contains(d.btn_close)?(n=t.parentElement.parentElement,p(n,!1,!0,!0)):t.classList.contains(d.maximize)||t.classList.contains(d.minimize)?(n=t.parentElement.parentElement,y(t,n)):t.classList.contains(d.detach)&&(n=t.parentElement.parentElement,w(n))},E=function(n){if(27===n.keyCode){var i,r;for(i in t)if(t.hasOwnProperty(i)&&(r=t[i],r.opts.closable&&"101"===r.dialog.style.zIndex&&r.dialog.classList.contains(d.open)))return void e.close(i,!0)}},L=function(e){if(n){e.preventDefault();var i,s,a,c=t[n.id],u=e.clientX,d=e.clientY,h=e.changedTouches,f=null;if(h)for(i=0;i0&&(i[0].innerHTML=n)))))},this.open=function(e,n){var i,r,o,l=t[e];if(void 0===l)return void("undefined"!=typeof console&&console.log('Cannot open WUI dialog "'+e+'".'));if(l.detachable_ref&&!l.detachable_ref.closed)return void l.detachable_ref.focus();if(o=l.dialog,l.opts.modal)for(i=m(o),l.dialog.style.zIndex=16777271,l.modal_element=i,document.body.appendChild(i),r=0;rd?(h=d,t=n.opts.max):h<0?(h=0,t=n.opts.min):t=Math.round((n.opts.min+h/d*n.opts.range)/n.opts.step)*n.opts.step,n.value===t)return;n.value=t,l=v(t,n.opts.decimals),c.value=l,n.value_input.value=l,n.opts.vertical?(s.style.height=h+"px",n.filler.style.height=h+"px"):(s.style.width=h+"px",n.filler.style.width=h+"px",i.style.left=h+"px",n.hook.style.left=h+"px"),m(n.opts.on_change,t)}},w=function(e){if(i){e.preventDefault();var t,o=e.changedTouches,l=null,s=!1,a=i.ownerDocument,c=a.defaultView||a.parentWindow;if(o){for(t=0;t=0?o+=r.opts.scroll_step:o-=r.opts.scroll_step,r.endless||(r.opts.max&&o>r.opts.max?o=r.opts.max:o0&&(o[0].style="")),r.learn_elem&&(r.learn_elem.style=""));h.learn=!0,a.style=l,s=d.id},I=function(t){t.preventDefault(),t.stopPropagation();var n,i,r,l,s,a,c,d,f=t.target,p=f.parentElement,m=e[p.id],v=m.opts,y=f.ownerDocument,b=m.element.id+o,_=1;if(document.getElementById(b)||(m.configure_panel_open=!1),m.configure_panel_open!==!0){s=y.createElement("div"),s.className="wui-rangeslider-configure-container",d=y.createElement("div"),d.className="wui-rangeslider-configure-close",n=function(e){m.configure_panel_open=!1;var t=document.getElementById(b),n=e.target.ownerDocument.getElementById(b);t&&t.parentElement&&t.parentElement.removeChild(t),n&&n.parentElement&&n.parentElement.removeChild(n)},d.addEventListener("click",n,!1),d.addEventListener("touchstart",n,!1),s.id=b,s.appendChild(d);for(r in v.configurable)v.configurable.hasOwnProperty(r)&&void 0!==h[r]&&(l=v.configurable[r],a=y.createElement("div"),a.style.display="inline-block",a.style.marginRight="8px",a.style.width="80px",a.style.textAlign="right",a.innerHTML=r.replace("_"," ")+" : ",c=y.createElement("input"),c.className=u.value_input,s.appendChild(a),s.appendChild(c),_%2===0&&s.appendChild(y.createElement("div")),c.setAttribute("type","number"),c.setAttribute("step","any"),void 0!==l&&(void 0!==l.min&&(c.setAttribute("min",l.min),c.title=c.title+" min: "+l.min),void 0!==l.max&&(c.setAttribute("max",l.max),c.title=c.title+" max: "+l.max),void 0!==l.val?c.setAttribute("value",l.val):"min"===r?c.setAttribute("value",v.min):"max"===r?c.setAttribute("value",v.max):"step"===r?c.setAttribute("value",v.step):"scroll_step"===r&&c.setAttribute("value",v.scroll_step)),c.addEventListener("input",T(t,m,r),!1),_+=1);i=g(f),p.insertBefore(s,f),m.configure_panel_open=!0}},M=function(){console.log("WUI_RangeSlider 'create' failed, first argument not an id nor a DOM element.")};this.create=function(t,n){var i,r,o={};if("string"==typeof t)i=document.getElementById(t);else{if("object"!=typeof t)return void M();if("string"!=typeof t.innerHTML)return void M();i=t,t=i.id}if(void 0!==e[t])return void console.log("WUI_RangeSlider id '"+t+"' already created, aborting.");for(r in d)d.hasOwnProperty(r)&&(o[r]=d[r]);if(void 0!==n){for(r in n)n.hasOwnProperty(r)&&void 0!==d[r]&&(o[r]=n[r]);void 0!==n.max&&(o.range=n.max),void 0!==n.step&&(o.step=n.step,void 0===n.scroll_step&&(o.scroll_step=o.step)),void 0!==n.title_on_top?o.title_on_top=n.title_on_top:o.vertical&&(o.title_on_top=!0),void 0!==n.default_value?o.default_value=n.default_value:void 0!==n.min&&void 0!==n.max&&(o.default_value=o.min+o.max/2)}o.min<0&&(o.range=o.max-o.min),e[t]=null,i.classList.add("wui-rangeslider"),o.title_on_top&&i.classList.add("wui-rangeslider-title-ontop");var l=document.createElement("div"),s=document.createElement("div"),a=document.createElement("div"),f=document.createElement("div"),p=document.createElement("div"),g=document.createElement("input"),m={element:i,opts:o,bar:null,filler:null,hook:null,endless:!1,midi:{device:null,controller:null,ctrl_type:"abs"},learn:!1,learn_elem:null,value_input:g,default_value:o.default_value,value:o.value};if(l.innerHTML=o.title,g.setAttribute("value",o.value),g.setAttribute("type","number"),g.setAttribute("step",o.step),g.classList.add(u.value_input),p.classList.add("wui-rangeslider-value"),l.classList.add("wui-rangeslider-title"),s.classList.add(u.bar),a.classList.add(u.filler),f.classList.add(u.hook),o.vertical&&(l.style.textAlign="center"),l.style.minWidth=o.title_min_width+"px",p.style.minWidth=o.value_min_width+"px",g.style.minWidth=o.value_min_width+"px",s.style.width=o.width+"px",s.style.height=o.height+"px",i.appendChild(l),o.bar||(s.style.display="none",g.style.marginTop="6px"),n.hasOwnProperty("min")?g.setAttribute("min",o.min):o.min=void 0,n.hasOwnProperty("max")?g.setAttribute("max",o.max):(o.max=void 0,void 0===o.min&&(m.endless=!0)),s.appendChild(a),a.appendChild(f),i.appendChild(s),m.bar=s,m.filler=a,m.hook=f,i.appendChild(g),o.configurable){var v=0;for(r in o.configurable)o.configurable.hasOwnProperty(r)&&void 0!==h[r]&&(v+=1);if(v>0){var y=document.createElement("div");y.classList.add("wui-rangeslider-configurable-btn"),y.addEventListener("click",I,!1),y.addEventListener("touchstart",I,!1),o.title_on_top&&!o.vertical?(y.style.bottom="0",l.style.marginBottom="4px"):o.title_on_top&&o.vertical?(l.style.marginLeft="16px",l.style.marginRight="16px",y.style.top="0"):(l.style.marginLeft="16px",y.style.top="0"),o.vertical?i.appendChild(y):i.insertBefore(y,l)}}if(o.midi)if(navigator.requestMIDIAccess){var _=document.createElement("div");_.classList.add(u.midi_learn_btn),_.title=c.midi_learn_btn,_.addEventListener("click",k,!1),_.addEventListener("touchstart",k,!1),m.learn_elem=_,o.midi.type&&(m.midi.ctrl_type=o.midi.type),i.appendChild(_)}else console.log("WUI_RangeSlider id '"+t+"' : Web MIDI API is disabled. (not supported by your browser?)");return o.bar?(s.addEventListener("mousedown",x,!1),s.addEventListener("touchstart",x,!1),s.addEventListener("mousewheel",L,!1),s.addEventListener("DOMMouseScroll",L,!1),f.addEventListener("dblclick",E,!1)):(g.addEventListener("mousewheel",L,!1),g.addEventListener("DOMMouseScroll",L,!1)),g.addEventListener("input",C,!1),e[t]=m,b(i,m,o.value),t},this.destroy=function(t){var n,i,r,l=e[t];return void 0===l?void console.log("Element id '"+t+"' is not a WUI_RangeSlider, destroying aborted."):(s===t&&(midi_learn_current=null),S(t),n=l.element,n.parentElement.removeChild(n),i=n.ownerDocument,r=i.getElementById(t+o),r&&i.removeChild(r),void delete e[t])},this.getParameters=function(t){var n,i=e[t],r={};if(void 0===i)return console.log("Element id '"+t+"' is not a WUI_RangeSlider, getParameters aborted."),null;for(n in i)i.hasOwnProperty(n)&&void 0!==f[n]&&(r[n]=i[n]);return r},this.setParameters=function(t,n){var i,r=e[t];if(void 0===r)return void console.log("Element id '"+t+"' is not a WUI_RangeSlider, setParameters aborted.");if(n){for(i in r)r.hasOwnProperty(i)&&void 0!==n[i]&&(r[i]=n[i]);r.midi.device&&r.midi.controller&&a["d"+r.midi.device]["c"+r.midi.controller].widgets.push(t),b(r.element,r,r.value)}},this.setValue=function(t,n,i){var r=e[t];return void 0===r?void console.log("Element id '"+t+"' is not a WUI_RangeSlider, setParameters aborted."):(b(r.element,r,n),void(i&&m(r.opts.on_change,n)))},this.submitMIDIMessage=function(t){var n,i,r,o,l,c,d=s,h=t.data[0],f=t.data[1],g=parseInt(t.data[2],10),v="d"+h,y="c"+f,_=0;if(s)return n=e[d],a[v]||(a[v]={}),a[v][y]||(a[v][y]={prev_value:g,widgets:[],increments:1}),a[v][y].widgets.push(d),l=p(d),l&&(r=l.getElementsByClassName(u.midi_learn_btn),r.length>0&&(r[0].style="",r[0].title=v+" "+y)),n.midi.device=h,n.midi.controller=f,n.learn=!1,n.learn_elem.style="",n.learn_elem.title=v+" "+y,void(s=null);if(a[v]&&a[v][y])for(i=a[v][y],_=0;_g){if(i.increments=-w,c=n.value-w,cn.opts.max&&!n.endless)continue;i.prev_value=g}else if(c=n.value+i.increments,!n.endless){if(c>n.opts.max)continue;if(c0&&(l=o[0],s=l.element,s.parentElement.removeChild(s)));delete e[t]}},WUI_CircularMenu=new function(){"use strict";var e=[],t=0,n={item:"wui-circularmenu-item",show:"wui-circularmenu-show"},i={x:null,y:null,rx:64,ry:48,angle:0,item_width:32,item_height:32,window:null,element:null},r=function(t){var n,i;for(i=0;i0;--t)e.removeChild(e.firstChild);return e}function n(e,n){return t(e).appendChild(n)}function i(e,t,n,i){var r=document.createElement(e);if(n&&(r.className=n),i&&(r.style.cssText=i),"string"==typeof t)r.appendChild(document.createTextNode(t));else if(t)for(var o=0;o=t)return l+(t-o);l+=s-o,l+=n-l%n,o=s+1}}function d(){this.id=null}function h(e,t){for(var n=0;n=t)return i+Math.min(l,t-r);if(r+=o-i,r+=n-r%n,i=o+1,r>=t)return i}}function p(e){for(;Il.length<=e;)Il.push(g(Il)+" ");return Il[e]}function g(e){return e[e.length-1]}function m(e,t){for(var n=[],i=0;i"€"&&(e.toUpperCase()!=e.toLowerCase()||Ml.test(e))}function w(e,t){return t?!!(t.source.indexOf("\\w")>-1&&_(e))||t.test(e):_(e)}function x(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function E(e){return e.charCodeAt(0)>=768&&Dl.test(e)}function L(e,t,n){var r=this;this.input=n,r.scrollbarFiller=i("div",null,"CodeMirror-scrollbar-filler"),r.scrollbarFiller.setAttribute("cm-not-content","true"),r.gutterFiller=i("div",null,"CodeMirror-gutter-filler"),r.gutterFiller.setAttribute("cm-not-content","true"),r.lineDiv=i("div",null,"CodeMirror-code"),r.selectionDiv=i("div",null,null,"position: relative; z-index: 1"),r.cursorDiv=i("div",null,"CodeMirror-cursors"),r.measure=i("div",null,"CodeMirror-measure"),r.lineMeasure=i("div",null,"CodeMirror-measure"),r.lineSpace=i("div",[r.measure,r.lineMeasure,r.selectionDiv,r.cursorDiv,r.lineDiv],null,"position: relative; outline: none"),r.mover=i("div",[i("div",[r.lineSpace],"CodeMirror-lines")],null,"position: relative"),r.sizer=i("div",[r.mover],"CodeMirror-sizer"),r.sizerWidth=null,r.heightForcer=i("div",null,null,"position: absolute; height: "+Ll+"px; width: 1px;"),r.gutters=i("div",null,"CodeMirror-gutters"),r.lineGutter=null,r.scroller=i("div",[r.sizer,r.heightForcer,r.gutters],"CodeMirror-scroll"),r.scroller.setAttribute("tabIndex","-1"),r.wrapper=i("div",[r.scrollbarFiller,r.gutterFiller,r.scroller],"CodeMirror"),nl&&il<8&&(r.gutters.style.zIndex=-1,r.scroller.style.paddingRight=0),rl||Zo&&hl||(r.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(r.wrapper):e(r.wrapper)),r.viewFrom=r.viewTo=t.first,r.reportedViewFrom=r.reportedViewTo=t.first,r.view=[],r.renderedView=null,r.externalMeasured=null,r.viewOffset=0,r.lastWrapHeight=r.lastWrapWidth=0,r.updateLineNumbers=null,r.nativeBarWidth=r.barHeight=r.barWidth=0,r.scrollbarsClipped=!1,r.lineNumWidth=r.lineNumInnerWidth=r.lineNumChars=null,r.alignWidgets=!1,r.cachedCharWidth=r.cachedTextHeight=r.cachedPaddingH=null,r.maxLine=null,r.maxLineLength=0,r.maxLineChanged=!1,r.wheelDX=r.wheelDY=r.wheelStartX=r.wheelStartY=null,r.shift=!1,r.selForContextMenu=null,r.activeTouch=null,n.init(r)}function C(e,t){if(t-=e.first,t<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var n=e;!n.lines;)for(var i=0;;++i){var r=n.children[i],o=r.chunkSize();if(t=e.first&&tn?O(n,C(e,n).text.length):H(t,C(e,t.line).text.length)}function H(e,t){var n=e.ch;return null==n||n>t?O(e.line,t):n<0?O(e.line,0):e}function F(e,t){for(var n=[],i=0;i=t:o.to>t);(i||(i=[])).push(new q(l,o.from,a?null:o.to))}}return i}function K(e,t,n){var i;if(e)for(var r=0;r=t:o.to>t);if(s||o.from==t&&"bookmark"==l.type&&(!n||o.marker.insertLeft)){var a=null==o.from||(l.inclusiveLeft?o.from<=t:o.from0&&s)for(var w=0;w0)){var u=[a,1],d=W(c.from,s.from),f=W(c.to,s.to);(d<0||!l.inclusiveLeft&&!d)&&u.push({from:c.from,to:s.from}),(f>0||!l.inclusiveRight&&!f)&&u.push({from:s.to,to:c.to}),r.splice.apply(r,u),a+=u.length-1}}return r}function Z(e){var t=e.markedSpans;if(t){for(var n=0;n=0&&d<=0||u<=0&&d>=0)&&(u<=0&&(a.marker.inclusiveRight&&r.inclusiveLeft?W(c.to,n)>=0:W(c.to,n)>0)||u>=0&&(a.marker.inclusiveRight&&r.inclusiveLeft?W(c.from,i)<=0:W(c.from,i)<0)))return!0}}}function ae(e){for(var t;t=oe(e);)e=t.find(-1,!0).line;return e}function ce(e){for(var t,n;t=le(e);)e=t.find(1,!0).line,(n||(n=[])).push(e);return n}function ue(e,t){var n=C(e,t),i=ae(n);return n==i?t:I(i)}function de(e,t){if(t>e.lastLine())return t;var n,i=C(e,t);if(!he(e,i))return t;for(;n=le(i);)i=n.find(1,!0).line;return I(i)+1}function he(e,t){var n=Ol&&t.markedSpans;if(n)for(var i=void 0,r=0;rt.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)})}function ve(e,t,n,i){if(!e)return i(t,n,"ltr");for(var r=!1,o=0;ot||t==n&&l.to==t)&&(i(Math.max(l.from,t),Math.min(l.to,n),1==l.level?"rtl":"ltr"),r=!0)}r||i(t,n,"ltr")}function ye(e){return e.level%2?e.to:e.from}function be(e){return e.level%2?e.from:e.to}function _e(e){var t=Se(e);return t?ye(t[0]):0}function we(e){var t=Se(e);return t?be(g(t)):e.text.length}function xe(e,t,n){var i=e[0].level;return t==i||n!=i&&tt)return i;if(r.from==t||r.to==t){if(null!=n)return xe(e,r.level,e[n].level)?(r.from!=r.to&&(Wl=n),i):(r.from!=r.to&&(Wl=i),n);n=i}}return n}function Le(e,t,n,i){if(!i)return t+n;do t+=n;while(t>0&&E(e.text.charAt(t)));return t}function Ce(e,t,n,i){var r=Se(e);if(!r)return Te(e,t,n,i);for(var o=Ee(r,t),l=r[o],s=Le(e,t,l.level%2?-n:n,i);;){if(s>l.from&&s0==l.level%2?l.to:l.from);if(l=r[o+=n],!l)return null;s=n>0==l.level%2?Le(e,l.to,-1,i):Le(e,l.from,1,i)}}function Te(e,t,n,i){var r=t+n;if(i)for(;r>0&&E(e.text.charAt(r));)r+=n;return r<0||r>e.text.length?null:r}function Se(e){var t=e.order;return null==t&&(t=e.order=Rl(e.text)),t}function ke(e,t){ +return e._handlers&&e._handlers[t]||Nl}function Ie(e,t,n){if(e.removeEventListener)e.removeEventListener(t,n,!1);else if(e.detachEvent)e.detachEvent("on"+t,n);else{var i=e._handlers,r=i&&i[t];if(r){var o=h(r,n);o>-1&&(i[t]=r.slice(0,o).concat(r.slice(o+1)))}}}function Me(e,t){var n=ke(e,t);if(n.length)for(var i=Array.prototype.slice.call(arguments,2),r=0;r0}function We(e){e.prototype.on=function(e,t){Bl(this,e,t)},e.prototype.off=function(e,t){Ie(this,e,t)}}function Re(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function Ne(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function Be(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function Pe(e){Re(e),Ne(e)}function Ue(e){return e.target||e.srcElement}function He(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),fl&&e.ctrlKey&&1==t&&(t=3),t}function Fe(e){if(null==xl){var t=i("span","​");n(e,i("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(xl=t.offsetWidth<=1&&t.offsetHeight>2&&!(nl&&il<8))}var r=xl?i("span","​"):i("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return r.setAttribute("cm-text",""),r}function ze(e){if(null!=El)return El;var i=n(e,document.createTextNode("AخA")),r=vl(i,0,1).getBoundingClientRect(),o=vl(i,1,2).getBoundingClientRect();return t(e),!(!r||r.left==r.right)&&(El=o.right-r.right<3)}function Xe(e){if(null!=zl)return zl;var t=n(e,i("span","x")),r=t.getBoundingClientRect(),o=vl(t,0,1).getBoundingClientRect();return zl=Math.abs(r.left-o.left)>1}function qe(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),Xl[e]=t}function je(e,t){ql[e]=t}function Ge(e){if("string"==typeof e&&ql.hasOwnProperty(e))e=ql[e];else if(e&&"string"==typeof e.name&&ql.hasOwnProperty(e.name)){var t=ql[e.name];"string"==typeof t&&(t={name:t}),e=b(t,e),e.name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Ge("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Ge("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function Ve(e,t){t=Ge(t);var n=Xl[t.name];if(!n)return Ve(e,"text/plain");var i=n(e,t);if(jl.hasOwnProperty(t.name)){var r=jl[t.name];for(var o in r)r.hasOwnProperty(o)&&(i.hasOwnProperty(o)&&(i["_"+o]=i[o]),i[o]=r[o])}if(i.name=t.name,t.helperType&&(i.helperType=t.helperType),t.modeProps)for(var l in t.modeProps)i[l]=t.modeProps[l];return i}function Ye(e,t){var n=jl.hasOwnProperty(e)?jl[e]:jl[e]={};c(t,n)}function Ke(e,t){if(t===!0)return t;if(e.copyState)return e.copyState(t);var n={};for(var i in t){var r=t[i];r instanceof Array&&(r=r.concat([])),n[i]=r}return n}function Je(e,t){for(var n;e.innerMode&&(n=e.innerMode(t),n&&n.mode!=e);)t=n.state,e=n.mode;return n||{mode:e,state:t}}function $e(e,t,n){return!e.startState||e.startState(t,n)}function Qe(e,t,n,i){var r=[e.state.modeGen],o={};lt(e,t.text,e.doc.mode,n,function(e,t){return r.push(e,t)},o,i);for(var l=function(n){var i=e.state.overlays[n],l=1,s=0;lt(e,t.text,i.mode,!0,function(e,t){for(var n=l;se&&r.splice(l,1,e,r[l+1],o),l+=2,s=Math.min(e,o)}if(t)if(i.opaque)r.splice(n,l-n,e,"overlay "+t),l=n+2;else for(;ne.options.maxHighlightLength?Ke(e.doc.mode,i):i);t.stateAfter=i,t.styles=r.styles,r.classes?t.styleClasses=r.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.frontier&&e.doc.frontier++}return t.styles}function et(e,t,n){var i=e.doc,r=e.display;if(!i.mode.startState)return!0;var o=st(e,t,n),l=o>i.first&&C(i,o-1).stateAfter;return l=l?Ke(i.mode,l):$e(i.mode),i.iter(o,t,function(n){tt(e,n.text,l);var s=o==t-1||o%5==0||o>=r.viewFrom&&ot.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}function rt(e,t,n,i){var r,o=function(e){return{start:d.start,end:d.pos,string:d.current(),type:r||null,state:e?Ke(l.mode,u):u}},l=e.doc,s=l.mode;t=U(l,t);var a,c=C(l,t.line),u=et(e,t.line,n),d=new Gl(c.text,e.options.tabSize);for(i&&(a=[]);(i||d.pose.options.maxHighlightLength?(s=!1,l&&tt(e,t,i,d.pos),d.pos=t.length,a=null):a=ot(it(n,d,i,h),o),h){var f=h[0].name;f&&(a="m-"+(a?f+" "+a:f))}if(!s||u!=a){for(;cl;--s){if(s<=o.first)return o.first;var a=C(o,s-1);if(a.stateAfter&&(!n||s<=o.frontier))return s;var c=u(a.text,null,e.options.tabSize);(null==r||i>c)&&(r=s-1,i=c)}return r}function at(e,t,n){this.text=e,ee(this,t),this.height=n?n(this):1}function ct(e,t,n,i){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),Z(e),ee(e,n);var r=i?i(e):1;r!=e.height&&k(e,r)}function ut(e){e.parent=null,Z(e)}function dt(e,t){if(!e||/^\s*$/.test(e))return null;var n=t.addModeClass?Kl:Yl;return n[e]||(n[e]=e.replace(/\S+/g,"cm-$&"))}function ht(e,t){var n=i("span",null,null,rl?"padding-right: .1px":null),r={pre:i("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:(nl||rl)&&e.getOption("lineWrapping")};n.setAttribute("role","presentation"),r.pre.setAttribute("role","presentation"),t.measure={};for(var o=0;o<=(t.rest?t.rest.length:0);o++){var l=o?t.rest[o-1]:t.line,a=void 0;r.pos=0,r.addToken=pt,ze(e.display.measure)&&(a=Se(l))&&(r.addToken=mt(r.addToken,a)),r.map=[];var c=t!=e.display.externalMeasured&&I(l);yt(l,r,Ze(e,l,c)),l.styleClasses&&(l.styleClasses.bgClass&&(r.bgClass=s(l.styleClasses.bgClass,r.bgClass||"")),l.styleClasses.textClass&&(r.textClass=s(l.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(Fe(e.display.measure))),0==o?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(rl){var u=r.content.lastChild;(/\bcm-tab\b/.test(u.className)||u.querySelector&&u.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return Me(e,"renderLine",e,t.line,r.pre),r.pre.className&&(r.textClass=s(r.pre.className,r.textClass||"")),r}function ft(e){var t=i("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function pt(e,t,n,r,o,l,s){if(t){var a,c=e.splitSpaces?gt(t,e.trailingSpace):t,u=e.cm.state.specialChars,d=!1;if(u.test(t)){a=document.createDocumentFragment();for(var h=0;;){u.lastIndex=h;var f=u.exec(t),g=f?f.index-h:t.length-h;if(g){var m=document.createTextNode(c.slice(h,h+g));nl&&il<9?a.appendChild(i("span",[m])):a.appendChild(m),e.map.push(e.pos,e.pos+g,m),e.col+=g,e.pos+=g}if(!f)break;h+=g+1;var v=void 0;if("\t"==f[0]){var y=e.cm.options.tabSize,b=y-e.col%y;v=a.appendChild(i("span",p(b),"cm-tab")),v.setAttribute("role","presentation"),v.setAttribute("cm-text","\t"),e.col+=b}else"\r"==f[0]||"\n"==f[0]?(v=a.appendChild(i("span","\r"==f[0]?"␍":"␤","cm-invalidchar")),v.setAttribute("cm-text",f[0]),e.col+=1):(v=e.cm.options.specialCharPlaceholder(f[0]),v.setAttribute("cm-text",f[0]),nl&&il<9?a.appendChild(i("span",[v])):a.appendChild(v),e.col+=1);e.map.push(e.pos,e.pos+1,v),e.pos++}}else e.col+=t.length,a=document.createTextNode(c),e.map.push(e.pos,e.pos+t.length,a),nl&&il<9&&(d=!0),e.pos+=t.length;if(e.trailingSpace=32==c.charCodeAt(t.length-1),n||r||o||d||s){var _=n||"";r&&(_+=r),o&&(_+=o);var w=i("span",[a],_,s);return l&&(w.title=l),e.content.appendChild(w)}e.content.appendChild(a)}}function gt(e,t){if(e.length>1&&!/ /.test(e))return e;for(var n=t,i="",r=0;rc&&d.from<=c));h++);if(d.to>=u)return e(n,i,r,o,l,s,a);e(n,i.slice(0,d.to-c),r,o,null,s,a),o=null,i=i.slice(d.to-c),c=d.to}}}function vt(e,t,n,i){var r=!i&&n.widgetNode;r&&e.map.push(e.pos,e.pos+t,r),!i&&e.cm.display.input.needsContentAttribute&&(r||(r=e.content.appendChild(document.createElement("span"))),r.setAttribute("cm-marker",n.id)),r&&(e.cm.display.input.setUneditable(r),e.content.appendChild(r)),e.pos+=t,e.trailingSpace=!1}function yt(e,t,n){var i=e.markedSpans,r=e.text,o=0;if(i)for(var l,s,a,c,u,d,h,f=r.length,p=0,g=1,m="",v=0;;){if(v==p){a=c=u=d=s="",h=null,v=1/0;for(var y=[],b=void 0,_=0;_p||x.collapsed&&w.to==p&&w.from==p)?(null!=w.to&&w.to!=p&&v>w.to&&(v=w.to,c=""),x.className&&(a+=" "+x.className),x.css&&(s=(s?s+";":"")+x.css),x.startStyle&&w.from==p&&(u+=" "+x.startStyle),x.endStyle&&w.to==v&&(b||(b=[])).push(x.endStyle,w.to),x.title&&!d&&(d=x.title),x.collapsed&&(!h||ie(h.marker,x)<0)&&(h=w)):w.from>p&&v>w.from&&(v=w.from)}if(b)for(var E=0;E=f)break;for(var C=Math.min(f,v);;){if(m){var T=p+m.length;if(!h){var S=T>C?m.slice(0,C-p):m;t.addToken(t,S,l?l+a:a,u,p+S.length==v?c:"",d,s)}if(T>=C){m=m.slice(C-p),p=C;break}p=T,u=""}m=r.slice(o,o=n[g++]),l=dt(n[g++],t.cm.options)}}else for(var k=1;k2&&o.push((a.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}function Vt(e,t,n){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var i=0;in)return{map:e.measure.maps[r],cache:e.measure.caches[r],before:!0}}function Yt(e,t){t=ae(t);var i=I(t),r=e.display.externalMeasured=new bt(e.doc,t,i);r.lineN=i;var o=r.built=ht(e,r);return r.text=o.pre,n(e.display.lineMeasure,o.pre),r}function Kt(e,t,n,i){return Qt(e,$t(e,t),n,i)}function Jt(e,t){if(t>=e.display.viewFrom&&t=n.lineN&&tt)&&(o=a-s,r=o-1,t>=a&&(l="right")),null!=r){if(i=e[c+2],s==a&&n==(i.insertLeft?"left":"right")&&(l=n),"left"==n&&0==r)for(;c&&e[c-2]==e[c-3]&&e[c-1].insertLeft;)i=e[(c-=3)+2],l="left";if("right"==n&&r==a-s)for(;c=0&&(n=e[r]).left==n.right;r--);return n}function tn(e,t,n,i){var r,o=Zt(t.map,n,i),l=o.node,s=o.start,a=o.end,c=o.collapse;if(3==l.nodeType){for(var u=0;u<4;u++){for(;s&&E(t.line.text.charAt(o.coverStart+s));)--s;for(;o.coverStart+a0&&(c=i="right");var d;r=e.options.lineWrapping&&(d=l.getClientRects()).length>1?d["right"==i?d.length-1:0]:l.getBoundingClientRect()}if(nl&&il<9&&!s&&(!r||!r.left&&!r.right)){var h=l.parentNode.getClientRects()[0];r=h?{left:h.left,right:h.left+yn(e.display),top:h.top,bottom:h.bottom}:Ql}for(var f=r.top-t.rect.top,p=r.bottom-t.rect.top,g=(f+p)/2,m=t.view.measure.heights,v=0;vn.from?l(e-1):l(e,i)}i=i||C(e.doc,t.line),r||(r=$t(e,i));var a=Se(i),c=t.ch;if(!a)return l(c);var u=Ee(a,c),d=s(c,u);return null!=Wl&&(d.other=s(c,Wl)),d}function fn(e,t){var n=0;t=U(e.doc,t),e.options.lineWrapping||(n=yn(e.display)*t.ch);var i=C(e.doc,t.line),r=pe(i)+Ht(e.display);return{left:n,right:n,top:r,bottom:r+i.height}}function pn(e,t,n,i){var r=O(e,t);return r.xRel=i,n&&(r.outside=!0),r}function gn(e,t,n){var i=e.doc;if(n+=e.display.viewOffset,n<0)return pn(i.first,0,!0,-1);var r=M(i,n),o=i.first+i.size-1;if(r>o)return pn(i.first+i.size-1,C(i,o).text.length,!0,1);t<0&&(t=0);for(var l=C(i,r);;){var s=mn(e,l,r,t,n),a=le(l),c=a&&a.find(0,!0);if(!a||!(s.ch>c.from.ch||s.ch==c.from.ch&&s.xRel>0))return s;r=I(l=c.to.line)}}function mn(e,t,n,i,r){function o(i){var r=hn(e,O(n,i),"line",t,c);return s=!0,l>r.bottom?r.left-a:lm)return pn(n,f,v,1);for(;;){if(u?f==h||f==Ce(t,h,1):f-h<=1){var y=i0&&y1){var w=Qt(e,c,y,"right");l<=w.bottom&&l>=w.top&&Math.abs(i-w.right)<_&&(b=!1,y++,_=i-w.right)}for(;E(t.text.charAt(y));)++y;var x=pn(n,y,b,_<-1?-1:_>1?1:0);return x}var L=Math.ceil(d/2),C=h+L;if(u){C=h;for(var T=0;Ti?(f=C,m=S,(v=s)&&(m+=1e3),d=L):(h=C,p=S,g=s,d-=L)}}function vn(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Vl){Vl=i("pre");for(var r=0;r<49;++r)Vl.appendChild(document.createTextNode("x")),Vl.appendChild(i("br"));Vl.appendChild(document.createTextNode("x"))}n(e.measure,Vl);var o=Vl.offsetHeight/50;return o>3&&(e.cachedTextHeight=o),t(e.measure),o||1}function yn(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=i("span","xxxxxxxxxx"),r=i("pre",[t]);n(e.measure,r);var o=t.getBoundingClientRect(),l=(o.right-o.left)/10;return l>2&&(e.cachedCharWidth=l),l||10}function bn(e){for(var t=e.display,n={},i={},r=t.gutters.clientLeft,o=t.gutters.firstChild,l=0;o;o=o.nextSibling,++l)n[e.options.gutters[l]]=o.offsetLeft+o.clientLeft+r,i[e.options.gutters[l]]=o.clientWidth;return{fixedPos:_n(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:i,wrapperWidth:t.wrapper.clientWidth}}function _n(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function wn(e){var t=vn(e.display),n=e.options.lineWrapping,i=n&&Math.max(5,e.display.scroller.clientWidth/yn(e.display)-3);return function(r){if(he(e.doc,r))return 0;var o=0;if(r.widgets)for(var l=0;l=e.display.viewTo)return null;if(t-=e.display.viewFrom,t<0)return null;for(var n=e.display.view,i=0;i=e.display.viewTo||s.to().line3&&(r(f,g.top,null,g.bottom),f=u,g.bottoma.bottom||c.bottom==a.bottom&&c.right>a.right)&&(a=c),f0?t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(n=!n)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Mn(e){e.state.focused||(e.display.input.focus(),An(e))}function Dn(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,On(e))},100)}function An(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(Me(e,"focus",e,t),e.state.focused=!0,l(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),rl&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),In(e))}function On(e,t){e.state.delayingBlurEvent||(e.state.focused&&(Me(e,"blur",e,t),e.state.focused=!1,_l(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function Wn(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var i=_n(t)-t.scroller.scrollLeft+e.doc.scrollLeft,r=t.gutters.offsetWidth,o=i+"px",l=0;l.001||a<-.001)&&(k(r.line,o),Bn(r.line),r.rest))for(var c=0;c=l&&(o=M(t,pe(C(t,a))-e.wrapper.clientHeight),l=a)}return{from:o,to:Math.max(l,o+1)}}function Un(e,t){Math.abs(e.doc.scrollTop-t)<2||(e.doc.scrollTop=t,Zo||Li(e,{top:t}),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t),e.display.scrollbars.setScrollTop(t),Zo&&Li(e),bi(e,100))}function Hn(e,t,n){(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)||(t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),e.doc.scrollLeft=t,Wn(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function Fn(e){var t=e.wheelDeltaX,n=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==n&&e.detail&&e.axis==e.VERTICAL_AXIS?n=e.detail:null==n&&(n=e.wheelDelta),{x:t,y:n}}function zn(e){var t=Fn(e);return t.x*=es,t.y*=es,t}function Xn(e,t){var n=Fn(t),i=n.x,r=n.y,o=e.display,l=o.scroller,s=l.scrollWidth>l.clientWidth,a=l.scrollHeight>l.clientHeight; +if(i&&s||r&&a){if(r&&fl&&rl)e:for(var c=t.target,u=o.view;c!=l;c=c.parentNode)for(var d=0;d(window.innerHeight||document.documentElement.clientHeight)&&(o=!1),null!=o&&!ul){var l=i("div","​",null,"position: absolute;\n top: "+(t.top-n.viewOffset-Ht(e.display))+"px;\n height: "+(t.bottom-t.top+Xt(e)+n.barHeight)+"px;\n left: "+t.left+"px; width: 2px;");e.display.lineSpace.appendChild(l),l.scrollIntoView(o),e.display.lineSpace.removeChild(l)}}}function Kn(e,t,n,i){null==i&&(i=0);for(var r,o=0;o<5;o++){var l=!1;r=hn(e,t);var s=n&&n!=t?hn(e,n):r,a=$n(e,Math.min(r.left,s.left),Math.min(r.top,s.top)-i,Math.max(r.left,s.left),Math.max(r.bottom,s.bottom)+i),c=e.doc.scrollTop,u=e.doc.scrollLeft;if(null!=a.scrollTop&&(Un(e,a.scrollTop),Math.abs(e.doc.scrollTop-c)>1&&(l=!0)),null!=a.scrollLeft&&(Hn(e,a.scrollLeft),Math.abs(e.doc.scrollLeft-u)>1&&(l=!0)),!l)break}return r}function Jn(e,t,n,i,r){var o=$n(e,t,n,i,r);null!=o.scrollTop&&Un(e,o.scrollTop),null!=o.scrollLeft&&Hn(e,o.scrollLeft)}function $n(e,t,n,i,r){var o=e.display,l=vn(e.display);n<0&&(n=0);var s=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:o.scroller.scrollTop,a=jt(e),c={};r-n>a&&(r=n+a);var u=e.doc.height+Ft(o),d=nu-l;if(ns+a){var f=Math.min(n,(h?u:r)-a);f!=s&&(c.scrollTop=f)}var p=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:o.scroller.scrollLeft,g=qt(e)-(e.options.fixedGutter?o.gutters.offsetWidth:0),m=i-t>g;return m&&(i=t+g),t<10?c.scrollLeft=0:tg+p-3&&(c.scrollLeft=i+(m?0:10)-g),c}function Qn(e,t,n){null==t&&null==n||ei(e),null!=t&&(e.curOp.scrollLeft=(null==e.curOp.scrollLeft?e.doc.scrollLeft:e.curOp.scrollLeft)+t),null!=n&&(e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+n)}function Zn(e){ei(e);var t=e.getCursor(),n=t,i=t;e.options.lineWrapping||(n=t.ch?O(t.line,t.ch-1):t,i=O(t.line,t.ch+1)),e.curOp.scrollToPos={from:n,to:i,margin:e.options.cursorScrollMargin,isCursor:!0}}function ei(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;var n=fn(e,t.from),i=fn(e,t.to),r=$n(e,Math.min(n.left,i.left),Math.min(n.top,i.top)-t.margin,Math.max(n.right,i.right),Math.max(n.bottom,i.bottom)+t.margin);e.scrollTo(r.scrollLeft,r.scrollTop)}}function ti(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++rs},wt(e.curOp)}function ni(e){var t=e.curOp;Et(t,function(e){for(var t=0;t=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new os(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function oi(e){e.updatedDisplay=e.mustUpdate&&xi(e.cm,e.update)}function li(e){var t=e.cm,n=t.display;e.updatedDisplay&&Nn(t),e.barMeasure=qn(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Kt(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+Xt(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-qt(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection(e.focus))}function si(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeftt)&&(r.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=r.viewTo)Ol&&ue(e.doc,t)r.viewFrom?gi(e):(r.viewFrom+=i,r.viewTo+=i);else if(t<=r.viewFrom&&n>=r.viewTo)gi(e);else if(t<=r.viewFrom){var o=mi(e,n,n+i,1);o?(r.view=r.view.slice(o.index),r.viewFrom=o.lineN,r.viewTo+=i):gi(e)}else if(n>=r.viewTo){var l=mi(e,t,t,-1);l?(r.view=r.view.slice(0,l.index),r.viewTo=l.lineN):gi(e)}else{var s=mi(e,t,t,-1),a=mi(e,n,n+i,1);s&&a?(r.view=r.view.slice(0,s.index).concat(_t(e,s.lineN,a.lineN)).concat(r.view.slice(a.index)),r.viewTo+=i):gi(e)}var c=r.externalMeasured;c&&(n=r.lineN&&t=i.viewTo)){var o=i.view[Ln(e,t)];if(null!=o.node){var l=o.changes||(o.changes=[]);h(l,n)==-1&&l.push(n)}}}function gi(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function mi(e,t,n,i){var r,o=Ln(e,t),l=e.display.view;if(!Ol||n==e.doc.first+e.doc.size)return{index:o,lineN:n};for(var s=e.display.viewFrom,a=0;a0){if(o==l.length-1)return null;r=s+l[o].size-t,o++}else r=s-t;t+=r,n+=r}for(;ue(e.doc,n)!=n;){if(o==(i<0?0:l.length-1))return null;n+=i*l[o-(i<0?1:0)].size,o+=i}return{index:o,lineN:n}}function vi(e,t,n){var i=e.display,r=i.view;0==r.length||t>=i.viewTo||n<=i.viewFrom?(i.view=_t(e,t,n),i.viewFrom=t):(i.viewFrom>t?i.view=_t(e,t,i.viewFrom).concat(i.view):i.viewFromn&&(i.view=i.view.slice(0,Ln(e,n)))),i.viewTo=n}function yi(e){for(var t=e.display.view,n=0,i=0;i=e.display.viewTo)){var n=+new Date+e.options.workTime,i=Ke(t.mode,et(e,t.frontier)),r=[];t.iter(t.frontier,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(t.frontier>=e.display.viewFrom){var l=o.styles,s=o.text.length>e.options.maxHighlightLength,a=Qe(e,o,s?Ke(t.mode,i):i,!0);o.styles=a.styles;var c=o.styleClasses,u=a.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var d=!l||l.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),h=0;!d&&hn)return bi(e,e.options.workDelay),!0}),r.length&&ci(e,function(){for(var t=0;t=i.viewFrom&&n.visible.to<=i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>=i.viewTo)&&i.renderedView==i.view&&0==yi(e))return!1;Rn(e)&&(gi(e),n.dims=bn(e));var l=r.first+r.size,s=Math.max(n.visible.from-e.options.viewportMargin,r.first),a=Math.min(l,n.visible.to+e.options.viewportMargin);i.viewFroma&&i.viewTo-a<20&&(a=Math.min(l,i.viewTo)),Ol&&(s=ue(e.doc,s),a=de(e.doc,a));var c=s!=i.viewFrom||a!=i.viewTo||i.lastWrapHeight!=n.wrapperHeight||i.lastWrapWidth!=n.wrapperWidth;vi(e,s,a),i.viewOffset=pe(C(e.doc,i.viewFrom)),e.display.mover.style.top=i.viewOffset+"px";var u=yi(e);if(!c&&0==u&&!n.force&&i.renderedView==i.view&&(null==i.updateLineNumbers||i.updateLineNumbers>=i.viewTo))return!1;var d=o();return u>4&&(i.lineDiv.style.display="none"),Ci(e,i.updateLineNumbers,n.dims),u>4&&(i.lineDiv.style.display=""),i.renderedView=i.view,d&&o()!=d&&d.offsetHeight&&d.focus(),t(i.cursorDiv),t(i.selectionDiv),i.gutters.style.height=i.sizer.style.minHeight=0,c&&(i.lastWrapHeight=n.wrapperHeight,i.lastWrapWidth=n.wrapperWidth,bi(e,400)),i.updateLineNumbers=null,!0}function Ei(e,t){for(var n=t.viewport,i=!0;(i&&e.options.lineWrapping&&t.oldDisplayWidth!=qt(e)||(n&&null!=n.top&&(n={top:Math.min(e.doc.height+Ft(e.display)-jt(e),n.top)}),t.visible=Pn(e.display,e.doc,n),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&xi(e,t);i=!1){Nn(e);var r=qn(e);Cn(e),jn(e,r),Si(e,r)}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function Li(e,t){var n=new os(e,t);if(xi(e,n)){Nn(e),Ei(e,n);var i=qn(e);Cn(e),jn(e,i),Si(e,i),n.finish()}}function Ci(e,n,i){function r(t){var n=t.nextSibling;return rl&&fl&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),n}for(var o=e.display,l=e.options.lineNumbers,s=o.lineDiv,a=s.firstChild,c=o.view,u=o.viewFrom,d=0;d-1&&(p=!1),Tt(e,f,u,i)),p&&(t(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(A(e.options,u)))),a=f.node.nextSibling}else{var g=Wt(e,f,u,i);s.insertBefore(g,a)}u+=f.size}for(;a;)a=r(a)}function Ti(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function Si(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+Xt(e)+"px"}function ki(e){var n=e.display.gutters,r=e.options.gutters;t(n);for(var o=0;o-1&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}function Mi(e,t){this.ranges=e,this.primIndex=t}function Di(e,t){this.anchor=e,this.head=t}function Ai(e,t){var n=e[t];e.sort(function(e,t){return W(e.from(),t.from())}),t=h(e,n);for(var i=1;i=0){var l=B(o.from(),r.from()),s=N(o.to(),r.to()),a=o.empty()?r.from()==r.head:o.from()==o.head;i<=t&&--t,e.splice(--i,2,new Di(a?s:l,a?l:s))}}return new Mi(e,t)}function Oi(e,t){return new Mi([new Di(e,t||e)],0)}function Wi(e){return e.text?O(e.from.line+e.text.length-1,g(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function Ri(e,t){if(W(e,t.from)<0)return e;if(W(e,t.to)<=0)return Wi(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,i=e.ch;return e.line==t.to.line&&(i+=Wi(t).ch-t.to.ch),O(n,i)}function Ni(e,t){for(var n=[],i=0;i1&&e.remove(s.line+1,p-1),e.insert(s.line+1,y)}Lt(e,"change",e,t)}function Xi(e,t,n){function i(e,r,o){if(e.linked)for(var l=0;l1&&!e.done[e.done.length-2].ranges?(e.done.pop(),g(e.done)):void 0}function Ki(e,t,n,i){var r=e.history;r.undone.length=0;var o,l,s=+new Date;if((r.lastOp==i||r.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&r.lastModTime>s-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))&&(o=Yi(r,r.lastOp==i)))l=g(o.changes),0==W(t.from,t.to)&&0==W(t.from,l.to)?l.to=Wi(t):o.changes.push(Gi(e,t));else{var a=g(r.done);for(a&&a.ranges||Qi(e.sel,r.done),o={changes:[Gi(e,t)],generation:r.generation},r.done.push(o);r.done.length>r.undoDepth;)r.done.shift(),r.done[0].ranges||r.done.shift()}r.done.push(n),r.generation=++r.maxGeneration,r.lastModTime=r.lastSelTime=s,r.lastOp=r.lastSelOp=i,r.lastOrigin=r.lastSelOrigin=t.origin,l||Me(e,"historyAdded")}function Ji(e,t,n,i){var r=t.charAt(0);return"*"==r||"+"==r&&n.ranges.length==i.ranges.length&&n.somethingSelected()==i.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function $i(e,t,n,i){var r=e.history,o=i&&i.origin;n==r.lastSelOp||o&&r.lastSelOrigin==o&&(r.lastModTime==r.lastSelTime&&r.lastOrigin==o||Ji(e,o,g(r.done),t))?r.done[r.done.length-1]=t:Qi(t,r.done),r.lastSelTime=+new Date,r.lastSelOrigin=o,r.lastSelOp=n,i&&i.clearRedo!==!1&&Vi(r.undone)}function Qi(e,t){var n=g(t);n&&n.ranges&&n.equals(e)||t.push(e)}function Zi(e,t,n,i){var r=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,i),function(n){n.markedSpans&&((r||(r=t["spans_"+e.id]={}))[o]=n.markedSpans),++o})}function er(e){if(!e)return null;for(var t,n=0;n-1&&(g(s)[d]=c[d],delete c[d])}}}return i}function rr(e,t,n,i){if(e.cm&&e.cm.display.shift||e.extend){var r=t.anchor;if(i){var o=W(n,r)<0;o!=W(i,r)<0?(r=n,n=i):o!=W(n,i)<0&&(n=i)}return new Di(r,n)}return new Di(i||n,n)}function or(e,t,n,i){dr(e,new Mi([rr(e,e.sel.primary(),t,n)],0),i)}function lr(e,t,n){for(var i=[],r=0;r=t.ch:s.to>t.ch))){if(r&&(Me(a,"beforeCursorEnter"),a.explicitlyCleared)){if(o.markedSpans){--l;continue}break}if(!a.atomic)continue;if(n){var c=a.find(i<0?1:-1),u=void 0;if((i<0?a.inclusiveRight:a.inclusiveLeft)&&(c=yr(e,c,-i,c&&c.line==t.line?o:null)),c&&c.line==t.line&&(u=W(c,n))&&(i<0?u<0:u>0))return mr(e,c,t,i,r)}var d=a.find(i<0?-1:1);return(i<0?a.inclusiveLeft:a.inclusiveRight)&&(d=yr(e,d,i,d.line==t.line?o:null)),d?mr(e,d,t,i,r):null}}return t}function vr(e,t,n,i,r){var o=i||1,l=mr(e,t,n,o,r)||!r&&mr(e,t,n,o,!0)||mr(e,t,n,-o,r)||!r&&mr(e,t,n,-o,!0);return l?l:(e.cantEdit=!0,O(e.first,0))}function yr(e,t,n,i){return n<0&&0==t.ch?t.line>e.first?U(e,O(t.line-1)):null:n>0&&t.ch==(i||C(e,t.line)).text.length?t.line=0;--r)xr(e,{from:i[r].from,to:i[r].to,text:r?[""]:t.text});else xr(e,t)}}function xr(e,t){if(1!=t.text.length||""!=t.text[0]||0!=W(t.from,t.to)){var n=Ni(e,t);Ki(e,t,n,e.cm?e.cm.curOp.id:NaN),Cr(e,t,n,J(e,t));var i=[];Xi(e,function(e,n){n||h(i,e.history)!=-1||(Mr(e.history,t),i.push(e.history)),Cr(e,t,null,J(e,t))})}}function Er(e,t,n){if(!e.cm||!e.cm.state.suppressEdits||n){for(var i,r=e.history,o=e.sel,l="undo"==t?r.done:r.undone,s="undo"==t?r.undone:r.done,a=0;a=0;--f){var p=d(f);if(p)return p.v}}}}function Lr(e,t){if(0!=t&&(e.first+=t,e.sel=new Mi(m(e.sel.ranges,function(e){return new Di(O(e.anchor.line+t,e.anchor.ch),O(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){fi(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,i=n.viewFrom;ie.lastLine())){if(t.from.lineo&&(t={from:t.from,to:O(o,C(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=T(e,t.from,t.to),n||(n=Ni(e,t)),e.cm?Tr(e.cm,t,i):zi(e,t,i),hr(e,n,Tl)}}function Tr(e,t,n){var i=e.doc,r=e.display,o=t.from,l=t.to,s=!1,a=o.line;e.options.lineWrapping||(a=I(ae(C(i,o.line))),i.iter(a,l.line+1,function(e){if(e==r.maxLine)return s=!0,!0})),i.sel.contains(t.from,t.to)>-1&&Ae(e),zi(i,t,n,wn(e)),e.options.lineWrapping||(i.iter(a,o.line+t.text.length,function(e){var t=ge(e);t>r.maxLineLength&&(r.maxLine=e,r.maxLineLength=t,r.maxLineChanged=!0,s=!1)}),s&&(e.curOp.updateMaxLine=!0)),i.frontier=Math.min(i.frontier,o.line),bi(e,400);var c=t.text.length-(l.line-o.line)-1;t.full?fi(e):o.line!=l.line||1!=t.text.length||Fi(e.doc,t)?fi(e,o.line,l.line+1,c):pi(e,o.line,"text");var u=Oe(e,"changes"),d=Oe(e,"change");if(d||u){var h={from:o,to:l,text:t.text,removed:t.removed,origin:t.origin};d&&Lt(e,"change",e,h),u&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(h)}e.display.selForContextMenu=null}function Sr(e,t,n,i,r){if(i||(i=n),W(i,n)<0){var o=i;i=n,n=o}"string"==typeof t&&(t=e.splitLines(t)),wr(e,{from:n,to:i,text:t,origin:r})}function kr(e,t,n,i){n0||0==s&&l.clearWhenEmpty!==!1)return l;if(l.replacedWith&&(l.collapsed=!0,l.widgetNode=i("span",[l.replacedWith],"CodeMirror-widget"),l.widgetNode.setAttribute("role","presentation"),r.handleMouseEvents||l.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(l.widgetNode.insertLeft=!0)),l.collapsed){if(se(e,t.line,t,n,l)||t.line!=n.line&&se(e,n.line,t,n,l))throw new Error("Inserting collapsed marker partially overlapping an existing one");X()}l.addToHistory&&Ki(e,{from:t,to:n,origin:"markText"},e.sel,NaN);var a,u=t.line,d=e.cm;if(e.iter(u,n.line+1,function(e){d&&l.collapsed&&!d.options.lineWrapping&&ae(e)==d.display.maxLine&&(a=!0),l.collapsed&&u!=t.line&&k(e,0),V(e,new q(l,u==t.line?t.ch:null,u==n.line?n.ch:null)),++u}),l.collapsed&&e.iter(t.line,n.line+1,function(t){he(e,t)&&k(t,0)}),l.clearOnEnter&&Bl(l,"beforeCursorEnter",function(){return l.clear()}),l.readOnly&&(z(),(e.history.done.length||e.history.undone.length)&&e.clearHistory()),l.collapsed&&(l.id=++ls,l.atomic=!0),d){if(a&&(d.curOp.updateMaxLine=!0),l.collapsed)fi(d,t.line,n.line+1);else if(l.className||l.title||l.startStyle||l.endStyle||l.css)for(var h=t.line;h<=n.line;h++)pi(d,h,"text");l.atomic&&pr(d.doc),Lt(d,"markerAdded",d,l)}return l}function Ur(e,t){var n=this;this.markers=e,this.primary=t;for(var i=0;i-1)return t.state.draggingText(e),void setTimeout(function(){return t.display.input.focus()},20);try{var c=e.dataTransfer.getData("Text");if(c){var u;if(t.state.draggingText&&!t.state.draggingText.copy&&(u=t.listSelections()),hr(t.doc,Oi(n,n)),u)for(var d=0;d=0;t--)Sr(e.doc,"",i[t].from,i[t].to,"+delete");Zn(e)})}function oo(e,t){var n=C(e.doc,t),i=ae(n);i!=n&&(t=I(i));var r=Se(i),o=r?r[0].level%2?we(i):_e(i):0;return O(t,o)}function lo(e,t){for(var n,i=C(e.doc,t);n=le(i);)i=n.find(1,!0).line,t=null;var r=Se(i),o=r?r[0].level%2?_e(i):we(i):i.text.length;return O(null==t?I(i):t,o)}function so(e,t){var n=oo(e,t.line),i=C(e.doc,n.line),r=Se(i);if(!r||0==r[0].level){var o=Math.max(0,i.text.search(/\S/)),l=t.line==n.line&&t.ch<=o&&t.ch;return O(n.line,l?0:o)}return n}function ao(e,t,n){if("string"==typeof t&&(t=ys[t],!t))return!1;e.display.input.ensurePolled();var i=e.display.shift,r=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),n&&(e.display.shift=!1),r=t(e)!=Cl}finally{e.display.shift=i,e.state.suppressEdits=!1}return r}function co(e,t,n){for(var i=0;ir-400&&0==W(vs.pos,n)?i="triple":ms&&ms.time>r-400&&0==W(ms.pos,n)?(i="double",vs={time:r,pos:n}):(i="single",ms={time:r,pos:n});var l,s=e.doc.sel,c=fl?t.metaKey:t.ctrlKey;e.options.dragDrop&&Pl&&!e.isReadOnly()&&"single"==i&&(l=s.contains(n))>-1&&(W((l=s.ranges[l]).from(),n)<0||n.xRel>0)&&(W(l.to(),n)>0||n.xRel<0)?_o(e,t,n,c):wo(e,t,n,i,c)}function _o(e,t,n,i){var r=e.display,o=+new Date,l=ui(e,function(s){rl&&(r.scroller.draggable=!1),e.state.draggingText=!1,Ie(document,"mouseup",l),Ie(r.scroller,"drop",l),Math.abs(t.clientX-s.clientX)+Math.abs(t.clientY-s.clientY)<10&&(Re(s),!i&&+new Date-200_&&r.push(new Di(O(m,_),O(m,f(y,c,o))))}r.length||r.push(new Di(n,n)),dr(d,Ai(g.ranges.slice(0,p).concat(r),p),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var w=h,x=w.anchor,E=t;if("single"!=i){var L;L="double"==i?e.findWordAt(t):new Di(O(t.line,0),U(d,O(t.line+1,0))),W(L.anchor,x)>0?(E=L.head,x=B(w.from(),L.anchor)):(E=L.anchor,x=N(w.to(),L.head))}var T=g.ranges.slice(0);T[p]=new Di(U(d,x),E),dr(d,Ai(T,p),Sl)}}function s(t){var n=++w,r=En(e,t,!0,"rect"==i);if(r)if(0!=W(r,b)){e.curOp.focus=o(),l(r);var a=Pn(c,d);(r.line>=a.to||r.line_.bottom?20:0;u&&setTimeout(ui(e,function(){w==n&&(c.scroller.scrollTop+=u,s(t))}),50)}}function a(t){e.state.selectingText=!1,w=1/0,Re(t),c.input.focus(),Ie(document,"mousemove",x),Ie(document,"mouseup",E),d.history.lastSelOrigin=null}var c=e.display,d=e.doc;Re(t);var h,p,g=d.sel,m=g.ranges;if(r&&!t.shiftKey?(p=d.sel.contains(n),h=p>-1?m[p]:new Di(n,n)):(h=d.sel.primary(),p=d.sel.primIndex),pl?t.shiftKey&&t.metaKey:t.altKey)i="rect",r||(h=new Di(n,n)),n=En(e,t,!0,!0),p=-1;else if("double"==i){var v=e.findWordAt(n);h=e.display.shift||d.extend?rr(d,h,v.anchor,v.head):v}else if("triple"==i){var y=new Di(O(n.line,0),U(d,O(n.line+1,0)));h=e.display.shift||d.extend?rr(d,h,y.anchor,y.head):y}else h=rr(d,h,n);r?p==-1?(p=m.length,dr(d,Ai(m.concat([h]),p),{scroll:!1,origin:"*mouse"})):m.length>1&&m[p].empty()&&"single"==i&&!t.shiftKey?(dr(d,Ai(m.slice(0,p).concat(m.slice(p+1)),0),{scroll:!1,origin:"*mouse"}),g=d.sel):sr(d,p,h,Sl):(p=0,dr(d,new Mi([h],0),Sl),g=d.sel);var b=n,_=c.wrapper.getBoundingClientRect(),w=0,x=ui(e,function(e){He(e)?s(e):a(e)}),E=ui(e,a);e.state.selectingText=E,Bl(document,"mousemove",x),Bl(document,"mouseup",E)}function xo(e,t,n,i){var r,o;try{r=t.clientX,o=t.clientY}catch(e){return!1}if(r>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;i&&Re(t);var l=e.display,s=l.lineDiv.getBoundingClientRect();if(o>s.bottom||!Oe(e,n))return Be(t);o-=s.top-l.viewOffset;for(var a=0;a=r){var u=M(e.doc,o),d=e.options.gutters[a];return Me(e,n,e,u,d,t),Be(t)}}}function Eo(e,t){return xo(e,t,"gutterClick",!0)}function Lo(e,t){Ut(e.display,t)||Co(e,t)||De(e,t,"contextmenu")||e.display.input.onContextMenu(t)}function Co(e,t){return!!Oe(e,"gutterContextMenu")&&xo(e,t,"gutterContextMenu",!1)}function To(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),ln(e)}function So(e){function t(t,i,r,o){e.defaults[t]=i,r&&(n[t]=o?function(e,t,n){n!=ws&&r(e,t,n)}:r)}var n=e.optionHandlers;e.defineOption=t,e.Init=ws,t("value","",function(e,t){return e.setValue(t)},!0),t("mode",null,function(e,t){e.doc.modeOption=t,Ui(e)},!0),t("indentUnit",2,Ui,!0),t("indentWithTabs",!1),t("smartIndent",!0),t("tabSize",4,function(e){Hi(e),ln(e),fi(e)},!0),t("lineSeparator",null,function(e,t){if(e.doc.lineSep=t,t){var n=[],i=e.doc.first;e.doc.iter(function(e){for(var r=0;;){var o=e.text.indexOf(t,r);if(o==-1)break;r=o+t.length,n.push(O(i,o))}i++});for(var r=n.length-1;r>=0;r--)Sr(e.doc,t,n[r],O(n[r].line,n[r].ch+t.length))}}),t("specialChars",/[\u0000-\u001f\u007f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),n!=ws&&e.refresh()}),t("specialCharPlaceholder",ft,function(e){return e.refresh()},!0),t("electricChars",!0),t("inputStyle",hl?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),t("spellcheck",!1,function(e,t){return e.getInputField().spellcheck=t},!0),t("rtlMoveVisually",!gl),t("wholeLineUpdateBefore",!0),t("theme","default",function(e){To(e),ko(e)},!0),t("keyMap","default",function(e,t,n){var i=io(t),r=n!=ws&&io(n);r&&r.detach&&r.detach(e,i),i.attach&&i.attach(e,r||null)}),t("extraKeys",null),t("lineWrapping",!1,Mo,!0),t("gutters",[],function(e){Ii(e.options),ko(e)},!0),t("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?_n(e.display)+"px":"0",e.refresh()},!0),t("coverGutterNextToScrollbar",!1,function(e){return jn(e)},!0),t("scrollbarStyle","native",function(e){Vn(e),jn(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),t("lineNumbers",!1,function(e){Ii(e.options),ko(e)},!0),t("firstLineNumber",1,ko,!0),t("lineNumberFormatter",function(e){return e},ko,!0),t("showCursorWhenSelecting",!1,Cn,!0),t("resetSelectionOnContextMenu",!0),t("lineWiseCopyCut",!0),t("readOnly",!1,function(e,t){"nocursor"==t?(On(e),e.display.input.blur(),e.display.disabled=!0):e.display.disabled=!1,e.display.input.readOnlyChanged(t)}),t("disableInput",!1,function(e,t){t||e.display.input.reset()},!0),t("dragDrop",!0,Io),t("allowDropFileTypes",null),t("cursorBlinkRate",530),t("cursorScrollMargin",0),t("cursorHeight",1,Cn,!0),t("singleCursorHeightPerLine",!0,Cn,!0),t("workTime",100),t("workDelay",100),t("flattenSpans",!0,Hi,!0),t("addModeClass",!1,Hi,!0),t("pollInterval",100),t("undoDepth",200,function(e,t){return e.doc.history.undoDepth=t}),t("historyEventDelay",1250),t("viewportMargin",10,function(e){return e.refresh()},!0),t("maxHighlightLength",1e4,Hi,!0),t("moveInputWithCursor",!0,function(e,t){t||e.display.input.resetPosition()}),t("tabindex",null,function(e,t){return e.display.input.getField().tabIndex=t||""}),t("autofocus",null)}function ko(e){ki(e),fi(e),Wn(e)}function Io(e,t,n){var i=n&&n!=ws;if(!t!=!i){var r=e.display.dragFunctions,o=t?Bl:Ie;o(e.display.scroller,"dragstart",r.start),o(e.display.scroller,"dragenter",r.enter),o(e.display.scroller,"dragover",r.over),o(e.display.scroller,"dragleave",r.leave),o(e.display.scroller,"drop",r.drop)}}function Mo(e){e.options.lineWrapping?(l(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(_l(e.display.wrapper,"CodeMirror-wrap"),me(e)),xn(e),fi(e),ln(e),setTimeout(function(){return jn(e)},100)}function Do(e,t){var n=this;if(!(this instanceof Do))return new Do(e,t);this.options=t=t?c(t):{},c(xs,t,!1),Ii(t);var i=t.value;"string"==typeof i&&(i=new as(i,t.mode,null,t.lineSeparator)),this.doc=i;var r=new Do.inputStyles[t.inputStyle](this),o=this.display=new L(e,i,r);o.wrapper.CodeMirror=this,ki(this),To(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Vn(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new d,keySeq:null,specialChars:null},t.autofocus&&!hl&&o.input.focus(),nl&&il<11&&setTimeout(function(){return n.display.input.reset(!0)},20),Ao(this),Kr(),ti(this),this.curOp.forceUpdate=!0,qi(this,i),t.autofocus&&!hl||this.hasFocus()?setTimeout(a(An,this),20):On(this);for(var l in Es)Es.hasOwnProperty(l)&&Es[l](n,t[l],ws);Rn(this),t.finishInit&&t.finishInit(this);for(var s=0;s400}var r=e.display;Bl(r.scroller,"mousedown",ui(e,yo)),nl&&il<11?Bl(r.scroller,"dblclick",ui(e,function(t){if(!De(e,t)){var n=En(e,t);if(n&&!Eo(e,t)&&!Ut(e.display,t)){Re(t);var i=e.findWordAt(n);or(e.doc,i.anchor,i.head)}}})):Bl(r.scroller,"dblclick",function(t){return De(e,t)||Re(t)}),bl||Bl(r.scroller,"contextmenu",function(t){return Lo(e,t)});var o,l={end:0};Bl(r.scroller,"touchstart",function(t){if(!De(e,t)&&!n(t)){r.input.ensurePolled(),clearTimeout(o);var i=+new Date;r.activeTouch={start:i,moved:!1,prev:i-l.end<=300?l:null},1==t.touches.length&&(r.activeTouch.left=t.touches[0].pageX,r.activeTouch.top=t.touches[0].pageY)}}),Bl(r.scroller,"touchmove",function(){r.activeTouch&&(r.activeTouch.moved=!0)}),Bl(r.scroller,"touchend",function(n){var o=r.activeTouch;if(o&&!Ut(r,n)&&null!=o.left&&!o.moved&&new Date-o.start<300){var l,s=e.coordsChar(r.activeTouch,"page");l=!o.prev||i(o,o.prev)?new Di(s,s):!o.prev.prev||i(o,o.prev.prev)?e.findWordAt(s):new Di(O(s.line,0),U(e.doc,O(s.line+1,0))),e.setSelection(l.anchor,l.head),e.focus(),Re(n)}t()}),Bl(r.scroller,"touchcancel",t),Bl(r.scroller,"scroll",function(){r.scroller.clientHeight&&(Un(e,r.scroller.scrollTop),Hn(e,r.scroller.scrollLeft,!0),Me(e,"scroll",e))}),Bl(r.scroller,"mousewheel",function(t){return Xn(e,t)}),Bl(r.scroller,"DOMMouseScroll",function(t){return Xn(e,t)}),Bl(r.wrapper,"scroll",function(){return r.wrapper.scrollTop=r.wrapper.scrollLeft=0}),r.dragFunctions={enter:function(t){De(e,t)||Pe(t)},over:function(t){De(e,t)||(Gr(e,t),Pe(t))},start:function(t){return jr(e,t)},drop:ui(e,qr),leave:function(t){De(e,t)||Vr(e)}};var s=r.input.getField();Bl(s,"keyup",function(t){return mo.call(e,t)}),Bl(s,"keydown",ui(e,po)),Bl(s,"keypress",ui(e,vo)),Bl(s,"focus",function(t){return An(e,t)}),Bl(s,"blur",function(t){return On(e,t)})}function Oo(e,t,n,i){var r,o=e.doc;null==n&&(n="add"),"smart"==n&&(o.mode.indent?r=et(e,t):n="prev");var l=e.options.tabSize,s=C(o,t),a=u(s.text,null,l);s.stateAfter&&(s.stateAfter=null);var c,d=s.text.match(/^\s*/)[0];if(i||/\S/.test(s.text)){if("smart"==n&&(c=o.mode.indent(r,s.text.slice(d.length),s.text),c==Cl||c>150)){if(!i)return;n="prev"}}else c=0,n="not";"prev"==n?c=t>o.first?u(C(o,t-1).text,null,l):0:"add"==n?c=a+e.options.indentUnit:"subtract"==n?c=a-e.options.indentUnit:"number"==typeof n&&(c=a+n),c=Math.max(0,c);var h="",f=0;if(e.options.indentWithTabs)for(var g=Math.floor(c/l);g;--g)f+=l,h+="\t";if(f1)if(Cs&&Cs.text.join("\n")==t){if(i.ranges.length%Cs.text.length==0){a=[];for(var c=0;c=0;d--){var h=i.ranges[d],f=h.from(),p=h.to();h.empty()&&(n&&n>0?f=O(f.line,f.ch-n):e.state.overwrite&&!l?p=O(p.line,Math.min(C(o,p.line).text.length,p.ch+g(s).length)):Cs&&Cs.lineWise&&Cs.text.join("\n")==t&&(f=p=O(f.line,0))),u=e.curOp.updateInput;var v={from:f,to:p,text:a?a[d%a.length]:s,origin:r||(l?"paste":e.state.cutIncoming?"cut":"+input")};wr(e.doc,v),Lt(e,"inputRead",e,v)}t&&!l&&Bo(e,t),Zn(e),e.curOp.updateInput=u,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function No(e,t){var n=e.clipboardData&&e.clipboardData.getData("Text");if(n)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||ci(t,function(){return Ro(t,n,0,null,"paste")}),!0}function Bo(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var n=e.doc.sel,i=n.ranges.length-1;i>=0;i--){var r=n.ranges[i];if(!(r.head.ch>100||i&&n.ranges[i-1].head.line==r.head.line)){var o=e.getModeAt(r.head),l=!1;if(o.electricChars){for(var s=0;s-1){l=Oo(e,r.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(C(e.doc,r.head.line).text.slice(0,r.head.ch))&&(l=Oo(e,r.head.line,"smart"));l&&Lt(e,"electricInput",e,r.head.line)}}}function Po(e){for(var t=[],n=[],i=0;ii&&(Oo(t,o.head.line,e,!0),i=o.head.line,r==t.doc.sel.primIndex&&Zn(t));else{var l=o.from(),s=o.to(),a=Math.max(i,l.line);i=Math.min(t.lastLine(),s.line-(s.ch?0:1))+1;for(var c=a;c0&&sr(t.doc,r,new Di(l,u[r].to()),Tl)}}}),getTokenAt:function(e,t){return rt(this,e,t)},getLineTokens:function(e,t){return rt(this,O(e),t,!0)},getTokenTypeAt:function(e){e=U(this.doc,e);var t,n=Ze(this,C(this.doc,e.line)),i=0,r=(n.length-1)/2,o=e.ch;if(0==o)t=n[2];else for(;;){var l=i+r>>1;if((l?n[2*l-1]:0)>=o)r=l;else{if(!(n[2*l+1]o&&(e=o,r=!0),i=C(this.doc,e)}else i=e;return cn(this,i,{top:0,left:0},t||"page",n).top+(r?this.doc.height-pe(i):0)},defaultTextHeight:function(){return vn(this.display)},defaultCharWidth:function(){return yn(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,i,r){var o=this.display;e=hn(this,U(this.doc,e));var l=e.bottom,s=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==i)l=e.top;else if("above"==i||"near"==i){var a=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==i||e.bottom+t.offsetHeight>a)&&e.top>t.offsetHeight?l=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=a&&(l=e.bottom),s+t.offsetWidth>c&&(s=c-t.offsetWidth)}t.style.top=l+"px",t.style.left=t.style.right="","right"==r?(s=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==r?s=0:"middle"==r&&(s=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=s+"px"),n&&Jn(this,s,l,s+t.offsetWidth,l+t.offsetHeight)},triggerOnKeyDown:di(po),triggerOnKeyPress:di(vo),triggerOnKeyUp:mo,execCommand:function(e){if(ys.hasOwnProperty(e))return ys[e].call(null,this)},triggerElectric:di(function(e){Bo(this,e)}),findPosH:function(e,t,n,i){var r=this,o=1;t<0&&(o=-1,t=-t);for(var l=U(this.doc,e),s=0;s0&&s(n.charAt(i-1));)--i;for(;r.5)&&xn(this),Me(this,"refresh",this)}),swapDoc:di(function(e){var t=this.doc;return t.cm=null,qi(this,e),ln(this),this.display.input.reset(),this.scrollTo(e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,Lt(this,"swapDoc",this,t),t}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},We(e),e.registerHelper=function(t,i,r){n.hasOwnProperty(t)||(n[t]=e[t]={_global:[]}),n[t][i]=r},e.registerGlobalHelper=function(t,i,r,o){e.registerHelper(t,i,o),n[t]._global.push({pred:r,val:o})}}function zo(e,t,n,i,r){function o(){var t=s+n;return!(t=e.first+e.size)&&(s=t,u=C(e,t))}function l(e){var t=(r?Ce:Te)(u,a,n,!0);if(null==t){if(e||!o())return!1;a=r?(n<0?we:_e)(u):n<0?u.text.length:0}else a=t;return!0}var s=t.line,a=t.ch,c=n,u=C(e,s);if("char"==i)l();else if("column"==i)l(!0);else if("word"==i||"group"==i)for(var d=null,h="group"==i,f=e.cm&&e.cm.getHelper(t,"wordChars"),p=!0;!(n<0)||l(!p);p=!1){var g=u.text.charAt(a)||"\n",m=w(g,f)?"w":h&&"\n"==g?"n":!h||/\s/.test(g)?null:"p";if(!h||p||m||(m="s"),d&&d!=m){n<0&&(n=1,l());break}if(m&&(d=m),n>0&&!l(!p))break}var v=vr(e,O(s,a),t,c,!0);return W(t,v)||(v.hitSide=!0),v}function Xo(e,t,n,i){var r,o=e.doc,l=t.left;if("page"==i){var s=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),a=Math.max(s-.5*vn(e.display),3);r=(n>0?t.bottom:t.top)+n*a}else"line"==i&&(r=n>0?t.bottom+3:t.top-3);for(var c;c=gn(e,l,r),c.outside;){if(n<0?r<=0:r>=o.height){c.hitSide=!0;break}r+=5*n}return c}function qo(e,t){var n=Jt(e,t.line);if(!n||n.hidden)return null;var i=C(e.doc,t.line),r=Vt(n,i,t.line),o=Se(i),l="left";if(o){var s=Ee(o,t.ch);l=s%2?"right":"left"}var a=Zt(r.map,t.ch,l);return a.offset="right"==a.collapse?a.end:a.start,a}function jo(e,t){return t&&(e.bad=!0),e}function Go(e,t,n,i,r){function o(e){return function(t){return t.id==e}}function l(t){if(1==t.nodeType){var n=t.getAttribute("cm-text");if(null!=n)return void(s+=""==n?t.textContent.replace(/\u200b/g,""):n);var u,d=t.getAttribute("cm-marker");if(d){var h=e.findMarks(O(i,0),O(r+1,0),o(+d));return void(h.length&&(u=h[0].find())&&(s+=T(e.doc,u.from,u.to).join(c)))}if("false"==t.getAttribute("contenteditable"))return;for(var f=0;f=15&&(sl=!1,rl=!0);var vl,yl=fl&&(ol||sl&&(null==ml||ml<12.11)),bl=Zo||nl&&il>=9,_l=function(t,n){var i=t.className,r=e(n).exec(i);if(r){var o=i.slice(r.index+r[0].length);t.className=i.slice(0,r.index)+(o?r[1]+o:"")}};vl=document.createRange?function(e,t,n,i){var r=document.createRange();return r.setEnd(i||e,n),r.setStart(e,t),r}:function(e,t,n){var i=document.body.createTextRange();try{i.moveToElementText(e.parentNode)}catch(e){return i}return i.collapse(!0),i.moveEnd("character",n),i.moveStart("character",t),i};var wl=function(e){e.select()};dl?wl=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:nl&&(wl=function(e){try{e.select()}catch(e){}}),d.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var xl,El,Ll=30,Cl={toString:function(){return"CodeMirror.Pass"}},Tl={scroll:!1},Sl={origin:"*mouse"},kl={origin:"+move"},Il=[""],Ml=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Dl=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/,Al=!1,Ol=!1,Wl=null,Rl=function(){function e(e){return e<=247?n.charAt(e):1424<=e&&e<=1524?"R":1536<=e&&e<=1785?i.charAt(e-1536):1774<=e&&e<=2220?"r":8192<=e&&e<=8203?"w":8204==e?"b":"L"}function t(e,t,n){this.level=e,this.from=t,this.to=n}var n="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",i="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111",r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,l=/[LRr]/,s=/[Lb1n]/,a=/[1n]/,c="L";return function(n){if(!r.test(n))return!1;for(var i=n.length,u=[],d=0;d=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){if(this.post},eatSpace:function(){for(var e=this,t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++e.pos;return this.pos>t},skipToEnd:function(){this.pos=this.string.length},skipTo:function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},backUp:function(e){this.pos-=e},column:function(){return this.lastColumnPos0?null:(i&&t!==!1&&(this.pos+=i[0].length),i)}var r=function(e){return n?e.toLowerCase():e},o=this.string.substr(this.pos,e.length);if(r(o)==r(e))return t!==!1&&(this.pos+=e.length),!0},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}}},We(at),at.prototype.lineNo=function(){return I(this)};var Vl,Yl={},Kl={},Jl=null,$l=null,Ql={left:0,right:0,top:0,bottom:0},Zl=0,es=null;nl?es=-.53:Zo?es=15:ll?es=-.7:al&&(es=-1/3);var ts=function(e,t,n){this.cm=n;var r=this.vert=i("div",[i("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),o=this.horiz=i("div",[i("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(r),e(o),Bl(r,"scroll",function(){r.clientHeight&&t(r.scrollTop,"vertical")}),Bl(o,"scroll",function(){o.clientWidth&&t(o.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,nl&&il<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};ts.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,i=e.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=t?i+"px":"0";var r=e.viewHeight-(t?i:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+r)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=n?i+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(n?i:0);this.horiz.firstChild.style.width=e.scrollWidth-e.clientWidth+o+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==i&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?i:0,bottom:t?i:0}},ts.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz)},ts.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert)},ts.prototype.zeroWidthHack=function(){var e=fl&&!cl?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new d,this.disableVert=new d},ts.prototype.enableZeroWidthBar=function(e,t){function n(){var i=e.getBoundingClientRect(),r=document.elementFromPoint(i.left+1,i.bottom-1);r!=e?e.style.pointerEvents="none":t.set(1e3,n)}e.style.pointerEvents="auto",t.set(1e3,n)},ts.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var ns=function(){};ns.prototype.update=function(){return{bottom:0,right:0}},ns.prototype.setScrollLeft=function(){},ns.prototype.setScrollTop=function(){},ns.prototype.clear=function(){};var is={native:ts,null:ns},rs=0,os=function(e,t,n){var i=e.display;this.viewport=t,this.visible=Pn(i,e.doc,t),this.editorIsHidden=!i.wrapper.offsetWidth,this.wrapperHeight=i.wrapper.clientHeight,this.wrapperWidth=i.wrapper.clientWidth,this.oldDisplayWidth=qt(e),this.force=n,this.dims=bn(e),this.events=[]};os.prototype.signal=function(e,t){Oe(e,t)&&this.events.push(arguments)},os.prototype.finish=function(){for(var e=this,t=0;t=0&&W(e,r.to())<=0)return i}return-1}},Di.prototype={from:function(){return B(this.anchor,this.head)},to:function(){return N(this.anchor,this.head)},empty:function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch}},Ar.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var n=this,i=e,r=e+t;i1||!(this.children[0]instanceof Ar))){var a=[];this.collapse(a),this.children=[new Ar(a)],this.children[0].parent=this}},collapse:function(e){for(var t=this,n=0;n50){for(var s=o.lines.length%25+25,a=s;a10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var i=this,r=0;rt.display.maxLineLength&&(t.display.maxLine=u,t.display.maxLineLength=d,t.display.maxLineChanged=!0)}null!=r&&t&&this.collapsed&&fi(t,r,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&pr(t.doc)),t&&Lt(t,"markerCleared",t,this),n&&ni(t),this.parent&&this.parent.clear()}},Br.prototype.find=function(e,t){var n=this;null==e&&"bookmark"==this.type&&(e=1);for(var i,r,o=0;o=0;c--)wr(i,r[c]);a?ur(this,a):this.cm&&Zn(this.cm)}),undo:hi(function(){Er(this,"undo")}),redo:hi(function(){Er(this,"redo")}),undoSelection:hi(function(){Er(this,"undo",!0)}),redoSelection:hi(function(){Er(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,i=0;i=e.ch)&&t.push(r.marker.parent||r.marker)}return t},findMarks:function(e,t,n){e=U(this,e),t=U(this,t);var i=[],r=e.line;return this.iter(e.line,t.line+1,function(o){var l=o.markedSpans;if(l)for(var s=0;s=a.to||null==a.from&&r!=e.line||null!=a.from&&r==t.line&&a.from>=t.ch||n&&!n(a.marker)||i.push(a.marker.parent||a.marker)}++r}),i},getAllMarks:function(){var e=[];return this.iter(function(t){var n=t.markedSpans;if(n)for(var i=0;ie?(t=e,!0):(e-=o,void++n)}),U(this,O(n,t))},indexFromPos:function(e){e=U(this,e);var t=e.ch;if(e.linet&&(t=e.from),null!=e.to&&e.to0)r=new O(r.line,r.ch+1),e.replaceRange(o.charAt(r.ch-1)+o.charAt(r.ch-2),O(r.line,r.ch-2),r,"+transpose");else if(r.line>e.doc.first){var l=C(e.doc,r.line-1).text;l&&(r=new O(r.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+l.charAt(l.length-1),O(r.line-1,l.length-1),r,"+transpose"))}n.push(new Di(r,r))}e.setSelections(n)})},newlineAndIndent:function(e){return ci(e,function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,"+input");t=e.listSelections();for(var i=0;ie.firstLine()&&(i=O(i.line-1,C(e.doc,i.line-1).length)),r.ch==C(e.doc,r.line).text.length&&r.linet.viewTo-1)return!1;var o,l,s;i.line==t.viewFrom||0==(o=Ln(e,i.line))?(l=I(t.view[0].line),s=t.view[0].node):(l=I(t.view[o].line),s=t.view[o-1].node.nextSibling);var a,c,u=Ln(e,r.line);if(u==t.view.length-1?(a=t.viewTo-1,c=t.lineDiv.lastChild):(a=I(t.view[u+1].line)-1,c=t.view[u+1].node.previousSibling),!s)return!1;for(var d=e.doc.splitLines(Go(e,s,c,l,a)),h=T(e.doc,O(l,0),O(a,C(e.doc,a).text.length));d.length>1&&h.length>1;)if(g(d)==g(h))d.pop(),h.pop(),a--;else{if(d[0]!=h[0])break;d.shift(),h.shift(),l++}for(var f=0,p=0,m=d[0],v=h[0],y=Math.min(m.length,v.length);f1||d[0]||W(x,E)?(Sr(e.doc,d,x,E,"+input"),!0):void 0},Ts.prototype.ensurePolled=function(){this.forceCompositionEnd()},Ts.prototype.reset=function(){this.forceCompositionEnd()},Ts.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.pollContent()||fi(this.cm),this.div.blur(),this.div.focus())},Ts.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}!e.cm.isReadOnly()&&e.pollContent()||ci(e.cm,function(){return fi(e.cm)})},80))},Ts.prototype.setUneditable=function(e){e.contentEditable="false"},Ts.prototype.onKeyPress=function(e){e.preventDefault(),this.cm.isReadOnly()||ui(this.cm,Ro)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0)},Ts.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},Ts.prototype.onContextMenu=function(){},Ts.prototype.resetPosition=function(){},Ts.prototype.needsContentAttribute=!0;var Ss=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new d,this.inaccurateSelection=!1,this.hasSelection=!1,this.composing=null};Ss.prototype.init=function(e){function t(e){if(!De(r,e)){if(r.somethingSelected())Wo({lineWise:!1,text:r.getSelections()}),i.inaccurateSelection&&(i.prevInput="",i.inaccurateSelection=!1,l.value=Cs.text.join("\n"),wl(l));else{if(!r.options.lineWiseCopyCut)return;var t=Po(r);Wo({lineWise:!0,text:t.text}),"cut"==e.type?r.setSelections(t.ranges,null,Tl):(i.prevInput="",l.value=t.text.join("\n"),wl(l))}"cut"==e.type&&(r.state.cutIncoming=!0)}}var n=this,i=this,r=this.cm,o=this.wrapper=Ho(),l=this.textarea=o.firstChild;e.wrapper.insertBefore(o,e.wrapper.firstChild),dl&&(l.style.width="0px"),Bl(l,"input",function(){nl&&il>=9&&n.hasSelection&&(n.hasSelection=null),i.poll()}),Bl(l,"paste",function(e){De(r,e)||No(e,r)||(r.state.pasteIncoming=!0,i.fastPoll())}),Bl(l,"cut",t),Bl(l,"copy",t),Bl(e.scroller,"paste",function(t){Ut(e,t)||De(r,t)||(r.state.pasteIncoming=!0,i.focus())}),Bl(e.lineSpace,"selectstart",function(t){Ut(e,t)||Re(t)}),Bl(l,"compositionstart",function(){var e=r.getCursor("from");i.composing&&i.composing.range.clear(),i.composing={start:e,range:r.markText(e,r.getCursor("to"),{className:"CodeMirror-composing"})}}),Bl(l,"compositionend",function(){i.composing&&(i.poll(),i.composing.range.clear(),i.composing=null)})},Ss.prototype.prepareSelection=function(){var e=this.cm,t=e.display,n=e.doc,i=Tn(e);if(e.options.moveInputWithCursor){var r=hn(e,n.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),l=t.lineDiv.getBoundingClientRect();i.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,r.top+l.top-o.top)),i.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,r.left+l.left-o.left))}return i},Ss.prototype.showSelection=function(e){var t=this.cm,i=t.display;n(i.cursorDiv,e.cursors),n(i.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},Ss.prototype.reset=function(e){if(!this.contextMenuPending){var t,n,i=this.cm,r=i.doc;if(i.somethingSelected()){this.prevInput="";var o=r.sel.primary();t=Fl&&(o.to().line-o.from().line>100||(n=i.getSelection()).length>1e3);var l=t?"-":n||i.getSelection();this.textarea.value=l,i.state.focused&&wl(this.textarea),nl&&il>=9&&(this.hasSelection=l)}else e||(this.prevInput=this.textarea.value="",nl&&il>=9&&(this.hasSelection=null));this.inaccurateSelection=t}},Ss.prototype.getField=function(){return this.textarea},Ss.prototype.supportsTouch=function(){return!1},Ss.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!hl||o()!=this.textarea))try{this.textarea.focus()}catch(e){}},Ss.prototype.blur=function(){this.textarea.blur()},Ss.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Ss.prototype.receivedFocus=function(){this.slowPoll()},Ss.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},Ss.prototype.fastPoll=function(){function e(){var i=n.poll();i||t?(n.pollingFast=!1,n.slowPoll()):(t=!0,n.polling.set(60,e))}var t=!1,n=this;n.pollingFast=!0,n.polling.set(20,e)},Ss.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,i=this.prevInput;if(this.contextMenuPending||!t.state.focused||Hl(n)&&!i&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var r=n.value;if(r==i&&!t.somethingSelected())return!1;if(nl&&il>=9&&this.hasSelection===r||fl&&/[\uf700-\uf7ff]/.test(r))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=r.charCodeAt(0);if(8203!=o||i||(i="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var l=0,s=Math.min(i.length,r.length);l1e3||r.indexOf("\n")>-1?n.value=e.prevInput="":e.prevInput=r,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},Ss.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Ss.prototype.onKeyPress=function(){nl&&il>=9&&(this.hasSelection=null),this.fastPoll()},Ss.prototype.onContextMenu=function(e){function t(){if(null!=l.selectionStart){var e=r.somethingSelected(),t="​"+(e?l.value:"");l.value="⇚",l.value=t,i.prevInput=e?"":"​",l.selectionStart=1,l.selectionEnd=t.length,o.selForContextMenu=r.doc.sel}}function n(){if(i.contextMenuPending=!1,i.wrapper.style.cssText=d,l.style.cssText=u,nl&&il<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=a),null!=l.selectionStart){(!nl||nl&&il<9)&&t();var e=0,n=function(){o.selForContextMenu==r.doc.sel&&0==l.selectionStart&&l.selectionEnd>0&&"​"==i.prevInput?ui(r,br)(r):e++<10?o.detectingSelectAll=setTimeout(n,500):o.input.reset()};o.detectingSelectAll=setTimeout(n,200)}}var i=this,r=i.cm,o=r.display,l=i.textarea,s=En(r,e),a=o.scroller.scrollTop;if(s&&!sl){var c=r.options.resetSelectionOnContextMenu;c&&r.doc.sel.contains(s)==-1&&ui(r,dr)(r.doc,Oi(s),Tl);var u=l.style.cssText,d=i.wrapper.style.cssText;i.wrapper.style.cssText="position: absolute";var h=i.wrapper.getBoundingClientRect();l.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-h.top-5)+"px; left: "+(e.clientX-h.left-5)+"px;\n z-index: 1000; background: "+(nl?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var f;if(rl&&(f=window.scrollY),o.input.focus(),rl&&window.scrollTo(null,f),o.input.reset(),r.somethingSelected()||(l.value=i.prevInput=" "),i.contextMenuPending=!0,o.selForContextMenu=r.doc.sel,clearTimeout(o.detectingSelectAll),nl&&il>=9&&t(),bl){Pe(e);var p=function(){Ie(window,"mouseup",p),setTimeout(n,20)};Bl(window,"mouseup",p)}else setTimeout(n,50)}},Ss.prototype.readOnlyChanged=function(e){e||this.reset()},Ss.prototype.setUneditable=function(){},Ss.prototype.needsContentAttribute=!1,So(Do),Fo(Do);var ks="iter insert remove copy getEditor constructor".split(" ");for(var Is in as.prototype)as.prototype.hasOwnProperty(Is)&&h(ks,Is)<0&&(Do.prototype[Is]=function(e){return function(){return e.apply(this.doc,arguments)}}(as.prototype[Is]));return We(as),Do.inputStyles={textarea:Ss,contenteditable:Ts},Do.defineMode=function(e){Do.defaults.mode||"null"==e||(Do.defaults.mode=e),qe.apply(this,arguments)},Do.defineMIME=je,Do.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),Do.defineMIME("text/plain","null"),Do.defineExtension=function(e,t){Do.prototype[e]=t},Do.defineDocExtension=function(e,t){as.prototype[e]=t},Do.fromTextArea=Ko,Jo(Do),Do.version="5.23.0",Do}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t,r,o){if(this.atOccurrence=!1,this.doc=e,null==o&&"string"==typeof t&&(o=!1),r=r?e.clipPos(r):i(0,0),this.pos={from:r,to:r},"string"!=typeof t)t.global||(t=new RegExp(t.source,t.ignoreCase?"ig":"g")),this.matches=function(n,r){if(n){t.lastIndex=0;for(var o,l,s=e.getLine(r.line).slice(0,r.ch),a=0;;){t.lastIndex=a;var c=t.exec(s);if(!c)break;if(o=c,l=o.index,a=o.index+(o[0].length||1),a==s.length)break}var u=o&&o[0].length||0;u||(0==l&&0==s.length?o=void 0:l!=e.getLine(r.line).length&&u++)}else{t.lastIndex=r.ch;var s=e.getLine(r.line),o=t.exec(s),u=o&&o[0].length||0,l=o&&o.index;l+u==s.length||u||(u=1)}if(o&&u)return{from:i(r.line,l),to:i(r.line,l+u),match:o}};else{var l=t;o&&(t=t.toLowerCase());var s=o?function(e){return e.toLowerCase()}:function(e){return e},a=t.split("\n");if(1==a.length)t.length?this.matches=function(r,o){if(r){var a=e.getLine(o.line).slice(0,o.ch),c=s(a),u=c.lastIndexOf(t);if(u>-1)return u=n(a,c,u),{from:i(o.line,u),to:i(o.line,u+l.length)}}else{var a=e.getLine(o.line).slice(o.ch),c=s(a),u=c.indexOf(t);if(u>-1)return u=n(a,c,u)+o.ch,{from:i(o.line,u),to:i(o.line,u+l.length)}}}:this.matches=function(){};else{var c=l.split("\n");this.matches=function(t,n){var r=a.length-1;if(t){if(n.line-(a.length-1)=1;--u,--l)if(a[u]!=s(e.getLine(l)))return;var d=e.getLine(l),h=d.length-c[0].length;if(s(d.slice(h))!=a[0])return;return{from:i(l,h),to:o}}if(!(n.line+(a.length-1)>e.lastLine())){var d=e.getLine(n.line),h=d.length-c[0].length;if(s(d.slice(h))==a[0]){for(var f=i(n.line,h),l=n.line+1,u=1;un))return i;--i}}}var i=e.Pos;t.prototype={findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(e){function t(e){var t=i(e,0);return n.pos={from:t,to:t},n.atOccurrence=!1,!1}for(var n=this,r=this.doc.clipPos(e?this.pos.from:this.pos.to);;){if(this.pos=this.matches(e,r))return this.atOccurrence=!0,this.pos.match||!0;if(e){if(!r.line)return t(0);r=i(r.line-1,this.doc.getLine(r.line-1).length)}else{var o=this.doc.lineCount();if(r.line==o-1)return t(o);r=i(r.line+1,0)}}},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(t,n){if(this.atOccurrence){var r=e.splitLines(t);this.doc.replaceRange(r,this.pos.from,this.pos.to,n),this.pos.to=i(this.pos.from.line+r.length-1,r[r.length-1].length+(1==r.length?this.pos.from.ch:0))}}},e.defineExtension("getSearchCursor",function(e,n,i){return new t(this.doc,e,n,i)}),e.defineDocExtension("getSearchCursor",function(e,n,i){return new t(this,e,n,i)}),e.defineExtension("selectMatches",function(t,n){for(var i=[],r=this.getSearchCursor(t,this.getCursor("from"),n);r.findNext()&&!(e.cmpPos(r.to(),this.getCursor("to"))>0);)i.push({anchor:r.from(),head:r.to()});i.length&&this.setSelections(i,0)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("./matchesonscrollbar")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./matchesonscrollbar"],e):e(CodeMirror)}(function(e){"use strict";function t(e){this.options={};for(var t in d)this.options[t]=(e&&e.hasOwnProperty(t)?e:d)[t];this.overlay=this.timeout=null,this.matchesonscroll=null,this.active=!1}function n(e){var t=e.state.matchHighlighter;(t.active||e.hasFocus())&&r(e,t)}function i(e){var t=e.state.matchHighlighter;t.active||(t.active=!0,r(e,t))}function r(e,t){clearTimeout(t.timeout),t.timeout=setTimeout(function(){s(e)},t.options.delay)}function o(e,t,n,i){var r=e.state.matchHighlighter;if(e.addOverlay(r.overlay=u(t,n,i)),r.options.annotateScrollbar&&e.showMatchesOnScrollbar){var o=n?new RegExp("\\b"+t+"\\b"):t;r.matchesonscroll=e.showMatchesOnScrollbar(o,!1,{className:"CodeMirror-selection-highlight-scrollbar"})}}function l(e){var t=e.state.matchHighlighter;t.overlay&&(e.removeOverlay(t.overlay),t.overlay=null,t.matchesonscroll&&(t.matchesonscroll.clear(),t.matchesonscroll=null))}function s(e){e.operation(function(){var t=e.state.matchHighlighter;if(l(e),!e.somethingSelected()&&t.options.showToken){for(var n=t.options.showToken===!0?/[\w$]/:t.options.showToken,i=e.getCursor(),r=e.getLine(i.line),s=i.ch,c=s;s&&n.test(r.charAt(s-1));)--s;for(;c=t.options.minChars&&o(e,h,!1,t.options.style)}})}function a(e,t,n){var i=e.getRange(t,n);if(null!==i.match(/^\w+$/)){if(t.ch>0){var r={line:t.line,ch:t.ch-1},o=e.getRange(r,t);if(null===o.match(/\W/))return!1}if(n.ch=this.gap.to)break;n.to.line>=this.gap.from&&this.matches.splice(t--,1)}for(var r=this.cm.getSearchCursor(this.query,e.Pos(this.gap.from,0),this.caseFold),o=this.options&&this.options.maxMatches||i;r.findNext();){var n={from:r.from(),to:r.to()};if(n.from.line>=this.gap.to)break;if(this.matches.splice(t++,0,n),this.matches.length>o)break}this.gap=null}},t.prototype.onChange=function(t){var i=t.from.line,r=e.changeEnd(t).line,o=r-t.to.line;if(this.gap?(this.gap.from=Math.min(n(this.gap.from,i,o),t.from.line),this.gap.to=Math.max(n(this.gap.to,i,o),t.from.line)):this.gap={from:t.from.line,to:r+1},o)for(var l=0;l=0;s--){var u=l[s].head;n.replaceRange("",f(u.line,u.ch-1),f(u.line,u.ch+1),"+delete")}}function o(n){var r=i(n),o=r&&t(r,"explode");if(!o||n.getOption("disableInput"))return e.Pass;for(var l=n.listSelections(),s=0;s0;return{anchor:new f(t.anchor.line,t.anchor.ch+(n?-1:1)),head:new f(t.head.line,t.head.ch+(n?1:-1))}}function s(n,r){var o=i(n);if(!o||n.getOption("disableInput"))return e.Pass;var s=t(o,"pairs"),c=s.indexOf(r);if(c==-1)return e.Pass;for(var h,p=t(o,"triples"),g=s.charAt(c+1)==r,m=n.listSelections(),v=c%2==0,y=0;y1&&p.indexOf(r)>=0&&n.getRange(f(w.line,w.ch-2),w)==r+r&&(w.ch<=2||n.getRange(f(w.line,w.ch-3),f(w.line,w.ch-2))!=r))b="addFour";else if(g){if(e.isWordChar(x)||!u(n,w,r))return e.Pass;b="both"}else{if(!v||n.getLine(w.line).length!=w.ch&&!a(x,s)&&!/\s/.test(x))return e.Pass;b="both"}else b=g&&d(n,w)?"both":p.indexOf(r)>=0&&n.getRange(w,f(w.line,w.ch+3))==r+r+r?"skipThree":"skip";if(h){if(h!=b)return e.Pass}else h=b}var E=c%2?s.charAt(c-1):r,L=c%2?r:s.charAt(c+1);n.operation(function(){if("skip"==h)n.execCommand("goCharRight");else if("skipThree"==h)for(var e=0;e<3;e++)n.execCommand("goCharRight");else if("surround"==h){for(var t=n.getSelections(),e=0;e-1&&n%2==1}function c(e,t){var n=e.getRange(f(t.line,t.ch-1),f(t.line,t.ch+1));return 2==n.length?n:null}function u(t,n,i){var r=t.getLine(n.line),o=t.getTokenAt(n);if(/\bstring2?\b/.test(o.type))return!1;var l=new e.StringStream(r.slice(0,n.ch)+i+r.slice(n.ch),4);for(l.pos=l.start=o.start;;){var s=t.getMode().token(l,o.state);if(l.pos>=n.ch+1)return/\bstring2?\b/.test(s);l.start=l.pos}}function d(e,t){var n=e.getTokenAt(f(t.line,t.ch+1));return/\bstring/.test(n.type)&&n.start==t.ch}var h={pairs:"()[]{}''\"\"",triples:"",explode:"[]{}"},f=e.Pos;e.defineOption("autoCloseBrackets",!1,function(t,n,i){i&&i!=e.Init&&(t.removeKeyMap(g),t.state.closeBrackets=null),n&&(t.state.closeBrackets=n,t.addKeyMap(g))});for(var p=h.pairs+"`",g={Backspace:r,Enter:o},m=0;m=0&&s[o.text.charAt(a)]||s[o.text.charAt(++a)];if(!c)return null;var u=">"==c.charAt(1)?1:-1;if(i&&u>0!=(a==t.ch))return null;var d=e.getTokenTypeAt(l(t.line,a+1)),h=n(e,l(t.line,a+(u>0?1:0)),u,d||null,r);return null==h?null:{from:l(t.line,a),to:h&&h.pos,match:h&&h.ch==c.charAt(0),forward:u>0}}function n(e,t,n,i,r){for(var o=r&&r.maxScanLineLength||1e4,a=r&&r.maxScanLines||1e3,c=[],u=r&&r.bracketRegex?r.bracketRegex:/[(){}[\]]/,d=n>0?Math.min(t.line+a,e.lastLine()+1):Math.max(e.firstLine()-1,t.line-a),h=t.line;h!=d;h+=n){var f=e.getLine(h);if(f){var p=n>0?0:f.length-1,g=n>0?f.length:-1;if(!(f.length>o))for(h==t.line&&(p=t.ch-(n<0?1:0));p!=g;p+=n){var m=f.charAt(p);if(u.test(m)&&(void 0===i||e.getTokenTypeAt(l(h,p+1))==i)){var v=s[m];if(">"==v.charAt(1)==n>0)c.push(m);else{if(!c.length)return{pos:l(h,p),ch:m};c.pop()}}}}}return h-n!=(n>0?e.lastLine():e.firstLine())&&null}function i(e,n,i){for(var r=e.state.matchBrackets.maxHighlightLineLength||1e3,s=[],a=e.listSelections(),c=0;c",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"},a=null;e.defineOption("matchBrackets",!1,function(t,n,i){i&&i!=e.Init&&(t.off("cursorActivity",r),a&&(a(),a=null)),n&&(t.state.matchBrackets="object"==typeof n?n:{}, +t.on("cursorActivity",r))}),e.defineExtension("matchBrackets",function(){i(this,!0)}),e.defineExtension("findMatchingBracket",function(e,n,i){return t(this,e,n,i)}),e.defineExtension("scanForBracket",function(e,t,i,r){return n(this,e,t,i,r)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(t,n,i){function r(t){var n=e.wheelEventPixels(t)["horizontal"==o.orientation?"x":"y"],i=o.pos;o.moveTo(o.pos+n),o.pos!=i&&e.e_preventDefault(t)}this.orientation=n,this.scroll=i,this.screen=this.total=this.size=1,this.pos=0,this.node=document.createElement("div"),this.node.className=t+"-"+n,this.inner=this.node.appendChild(document.createElement("div"));var o=this;e.on(this.inner,"mousedown",function(t){function n(){e.off(document,"mousemove",i),e.off(document,"mouseup",n)}function i(e){return 1!=e.which?n():void o.moveTo(s+(e[r]-l)*(o.total/o.size))}if(1==t.which){e.e_preventDefault(t);var r="horizontal"==o.orientation?"pageX":"pageY",l=t[r],s=o.pos;e.on(document,"mousemove",i),e.on(document,"mouseup",n)}}),e.on(this.node,"click",function(t){e.e_preventDefault(t);var n,i=o.inner.getBoundingClientRect();n="horizontal"==o.orientation?t.clientXi.right?1:0:t.clientYi.bottom?1:0,o.moveTo(o.pos+n*o.screen)}),e.on(this.node,"mousewheel",r),e.on(this.node,"DOMMouseScroll",r)}function n(e,n,i){this.addClass=e,this.horiz=new t(e,"horizontal",i),n(this.horiz.node),this.vert=new t(e,"vertical",i),n(this.vert.node),this.width=null}t.prototype.setPos=function(e,t){return e<0&&(e=0),e>this.total-this.screen&&(e=this.total-this.screen),!(!t&&e==this.pos)&&(this.pos=e,this.inner.style["horizontal"==this.orientation?"left":"top"]=e*(this.size/this.total)+"px",!0)},t.prototype.moveTo=function(e){this.setPos(e)&&this.scroll(e,this.orientation)};var i=10;t.prototype.update=function(e,t,n){var r=this.screen!=t||this.total!=e||this.size!=n;r&&(this.screen=t,this.total=e,this.size=n);var o=this.screen*(this.size/this.total);oe.clientWidth+1,r=e.scrollHeight>e.clientHeight+1;return this.vert.node.style.display=r?"block":"none",this.horiz.node.style.display=i?"block":"none",r&&(this.vert.update(e.scrollHeight,e.clientHeight,e.viewHeight-(i?n:0)),this.vert.node.style.bottom=i?n+"px":"0"),i&&(this.horiz.update(e.scrollWidth,e.clientWidth,e.viewWidth-(r?n:0)-e.barLeft),this.horiz.node.style.right=r?n+"px":"0",this.horiz.node.style.left=e.barLeft+"px"),{right:r?n:0,bottom:i?n:0}},n.prototype.setScrollTop=function(e){this.vert.setPos(e)},n.prototype.setScrollLeft=function(e){this.horiz.setPos(e)},n.prototype.clear=function(){var e=this.horiz.node.parentNode;e.removeChild(this.horiz.node),e.removeChild(this.vert.node)},e.scrollbarModel.simple=function(e,t){return new n("CodeMirror-simplescroll",e,t)},e.scrollbarModel.overlay=function(e,t){return new n("CodeMirror-overlayscroll",e,t)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t){function n(e){clearTimeout(i.doRedraw),i.doRedraw=setTimeout(function(){i.redraw()},e)}this.cm=e,this.options=t,this.buttonHeight=t.scrollButtonHeight||e.getOption("scrollButtonHeight"),this.annotations=[],this.doRedraw=this.doUpdate=null,this.div=e.getWrapperElement().appendChild(document.createElement("div")),this.div.style.cssText="position: absolute; right: 0; top: 0; z-index: 7; pointer-events: none",this.computeScale();var i=this;e.on("refresh",this.resizeHandler=function(){clearTimeout(i.doUpdate),i.doUpdate=setTimeout(function(){i.computeScale()&&n(20)},100)}),e.on("markerAdded",this.resizeHandler),e.on("markerCleared",this.resizeHandler),t.listenForChanges!==!1&&e.on("change",this.changeHandler=function(){n(250)})}e.defineExtension("annotateScrollbar",function(e){return"string"==typeof e&&(e={className:e}),new t(this,e)}),e.defineOption("scrollButtonHeight",0),t.prototype.computeScale=function(){var e=this.cm,t=(e.getWrapperElement().clientHeight-e.display.barHeight-2*this.buttonHeight)/e.getScrollerElement().scrollHeight;if(t!=this.hScale)return this.hScale=t,!0},t.prototype.update=function(e){this.annotations=e,this.redraw()},t.prototype.redraw=function(e){function t(e,t){if(a!=e.line&&(a=e.line,c=n.getLineHandle(a)),l&&c.height>s)return n.charCoords(e,"local")[t?"top":"bottom"];var i=n.heightAtLine(c,"local");return i+(t?0:c.height)}e!==!1&&this.computeScale();var n=this.cm,i=this.hScale,r=document.createDocumentFragment(),o=this.annotations,l=n.getOption("lineWrapping"),s=l&&1.5*n.defaultTextHeight(),a=null,c=null;if(n.display.barWidth)for(var u,d=0;dp+.9));)h=o[++d],p=t(h.to,!1)*i;if(p!=f){var g=Math.max(p-f,3),m=r.appendChild(document.createElement("div"));m.style.cssText="position: absolute; right: 0px; width: "+Math.max(n.display.barWidth-1,2)+"px; top: "+(f+this.buttonHeight)+"px; height: "+g+"px",m.className=this.options.className,h.id&&m.setAttribute("annotation-id",h.id)}}this.div.textContent="",this.div.appendChild(r)},t.prototype.clear=function(){this.cm.off("refresh",this.resizeHandler),this.cm.off("markerAdded",this.resizeHandler),this.cm.off("markerCleared",this.resizeHandler),this.changeHandler&&this.cm.off("change",this.changeHandler),this.div.parentNode.removeChild(this.div)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e){for(var t=0;t!?|\/]/;return{startState:function(e){return{tokenize:null,context:new o((e||0)-c,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var i=t.context;if(e.sol()&&(null==i.align&&(i.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;a=null;var r=(t.tokenize||n)(e,t);if("comment"==r||"meta"==r)return r;if(null==i.align&&(i.align=!0),";"!=a&&":"!=a||"statement"!=i.type)if("{"==a)l(t,e.column(),"}");else if("["==a)l(t,e.column(),"]");else if("("==a)l(t,e.column(),")");else if("}"==a){for(;"statement"==i.type;)i=s(t);for("}"==i.type&&(i=s(t));"statement"==i.type;)i=s(t)}else a==i.type?s(t):("}"==i.type||"top"==i.type||"statement"==i.type&&"newstatement"==a)&&l(t,e.column(),"statement");else s(t);return t.startOfLine=!1,r},indent:function(e,t){if(e.tokenize!=n&&null!=e.tokenize)return 0;var i=t&&t.charAt(0),r=e.context,o=i==r.type;return"statement"==r.type?r.indented+("{"==i?0:c):r.align?r.column+(o?0:1):r.indented+(o?0:c)},electricChars:"{}"}}),function(){function e(e){for(var t={},n=e.split(" "),i=0;i1)for(var n=1;nthis.version?this.fetch(t):t&&t()}if(this.version>e.v)return t&&t();this.version=e.v;var i=void 0===e.type?u.defaultType:e.type;this._setType(i),this.data=this.type&&this.type.deserialize?this.type.deserialize(e.data):e.data,this.emit("load"),t&&t()},i.prototype.whenNothingPending=function(e){return this.hasPending()?void this.once("nothing pending",e):void e()},i.prototype.hasPending=function(){return!!(this.inflightOp||this.pendingOps.length||this.inflightFetch.length||this.inflightSubscribe.length||this.inflightUnsubscribe.length||this.pendingFetch.length)},i.prototype.hasWritePending=function(){return!(!this.inflightOp&&!this.pendingOps.length)},i.prototype._emitNothingPending=function(){this.hasWritePending()||(this.emit("no write pending"),this.hasPending()||this.emit("nothing pending"))},i.prototype._emitResponseError=function(e,t){return t?(t(e),void this._emitNothingPending()):(this._emitNothingPending(),void this.emit("error",e))},i.prototype._handleFetch=function(e,t){var n=this.inflightFetch.shift();return e?this._emitResponseError(e,n):(this.ingestSnapshot(t,n),void this._emitNothingPending())},i.prototype._handleSubscribe=function(e,t){var n=this.inflightSubscribe.shift();return e?this._emitResponseError(e,n):(this.wantSubscribe&&(this.subscribed=!0),this.ingestSnapshot(t,n),void this._emitNothingPending())},i.prototype._handleUnsubscribe=function(e){var t=this.inflightUnsubscribe.shift();return e?this._emitResponseError(e,t):(t&&t(),void this._emitNothingPending())},i.prototype._handleOp=function(e,t){if(e)return this.inflightOp?(4002===e.code&&(e=null),this._rollback(e)):this.emit("error",e);if(this.inflightOp&&t.src===this.inflightOp.src&&t.seq===this.inflightOp.seq)return void this._opAcknowledged(t);if(null==this.version||t.v>this.version)return void this.fetch();if(!(t.v1){this.applyStack||(this.applyStack=[]);for(var i=this.applyStack.length,r=0;r0)return void(this.applyStack.length=e);var t=this.applyStack[0];if(this.applyStack=null,t){var n=this.pendingOps.indexOf(t);if(n!==-1)for(var i=this.pendingOps.splice(n),n=0;n0&&this._events[e].length>r&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())), +this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(e,t){function n(){this.removeListener(e,n),r||(r=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var r=!1;return n.listener=t,this.on(e,n),this},n.prototype.removeListener=function(e,t){var n,r,l,s;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(n=this._events[e],l=n.length,r=-1,n===t||i(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(n)){for(s=l;s-- >0;)if(n[s]===t||n[s].listener&&n[s].listener===t){r=s;break}if(r<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},n.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(n=this._events[e],i(n))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},n.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},n.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(i(t))return 1;if(t)return t.length}return 0},n.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,n){function i(e,t){i.super.call(this,t),this.code=e}var r=n(8);r(i),e.exports=i},function(e,t){"use strict";function n(e){e&&r(this,"message",{configurable:!0,value:e,writable:!0});var t=this.constructor.name;t&&t!==this.name&&r(this,"name",{configurable:!0,value:t,writable:!0}),o(this,this.constructor)}function i(e,t){if(null==t||t===Error)t=n;else if("function"!=typeof t)throw new TypeError("super_ should be a function");var i;if("string"==typeof e)i=e,e=function(){t.apply(this,arguments)},l&&(l(e,i),i=null);else if("function"!=typeof e)throw new TypeError("constructor should be either a string or a function");e.super_=e.super=t;var r={constructor:{configurable:!0,value:e,writable:!0}};return null!=i&&(r.name={configurable:!0,value:i,writable:!0}),e.prototype=Object.create(t.prototype,r),e}var r=Object.defineProperty,o=Error.captureStackTrace;o||(o=function(e){var t=new Error;r(e,"stack",{configurable:!0,get:function(){var e=t.stack;return r(this,"stack",{value:e}),e},set:function(t){r(e,"stack",{configurable:!0,value:t,writable:!0})}})}),n.prototype=Object.create(Error.prototype,{constructor:{configurable:!0,value:n,writable:!0}});var l=function(){function e(e,t){return r(e,"name",{configurable:!0,value:t})}try{var t=function(){};if(e(t,"foo"),"foo"===t.name)return e}catch(e){}}();t=e.exports=i,t.BaseError=n},function(e,t,n){t.defaultType=n(10).type,t.map={},t.register=function(e){e.name&&(t.map[e.name]=e),e.uri&&(t.map[e.uri]=e)},t.register(t.defaultType)},function(e,t,n){e.exports={type:n(11)}},function(e,t,n){function i(e){e.t="text0";var t={p:e.p.pop()};null!=e.si&&(t.i=e.si),null!=e.sd&&(t.d=e.sd),e.o=[t]}function r(e){e.p.push(e.o[0].p),null!=e.o[0].i&&(e.si=e.o[0].i),null!=e.o[0].d&&(e.sd=e.o[0].d),delete e.t,delete e.o}var o=function(e){return"[object Array]"==Object.prototype.toString.call(e)},l=function(e){return!!e&&e.constructor===Object},s=function(e){return JSON.parse(JSON.stringify(e))},a={name:"json0",uri:"http://sharejs.org/types/JSONv0"},c={};a.registerSubtype=function(e){c[e.name]=e},a.create=function(e){return void 0===e?null:s(e)},a.invertComponent=function(e){var t={p:e.p};return e.t&&c[e.t]&&(t.t=e.t,t.o=c[e.t].invert(e.o)),void 0!==e.si&&(t.sd=e.si),void 0!==e.sd&&(t.si=e.sd),void 0!==e.oi&&(t.od=e.oi),void 0!==e.od&&(t.oi=e.od),void 0!==e.li&&(t.ld=e.li),void 0!==e.ld&&(t.li=e.ld),void 0!==e.na&&(t.na=-e.na),void 0!==e.lm&&(t.lm=e.p[e.p.length-1],t.p=e.p.slice(0,e.p.length-1).concat([e.lm])),t},a.invert=function(e){for(var t=e.slice().reverse(),n=[],i=0;i=i||o!==t.p[r])return null}return n},a.canOpAffectPath=function(e,t){return null!=a.commonLengthForOps({p:t},e)},a.transformComponent=function(e,t,n,o){t=s(t);var l=a.commonLengthForOps(n,t),u=a.commonLengthForOps(t,n),d=t.p.length,h=n.p.length;if((null!=t.na||t.t)&&d++,(null!=n.na||n.t)&&h++,null!=u&&h>d&&t.p[u]==n.p[u])if(void 0!==t.ld){var f=s(n);f.p=f.p.slice(d),t.ld=a.apply(s(t.ld),[f])}else if(void 0!==t.od){var f=s(n);f.p=f.p.slice(d),t.od=a.apply(s(t.od),[f])}if(null!=l){var p=d==h,f=n;if(null==t.si&&null==t.sd||null==n.si&&null==n.sd||(i(t),f=s(n),i(f)),f.t&&c[f.t]){if(t.t&&t.t===f.t){var g=c[t.t].transform(t.o,f.o,o);if(g.length>0)if(null!=t.si||null!=t.sd)for(var m=t.p,v=0;v_&&t.p[l]--,y>w?t.p[l]++:y===w&&_>w&&(t.p[l]++,y===b&&t.lm++),b>_?t.lm--:b===_&&b>y&&t.lm--,b>w?t.lm++:b===w&&(w>_&&b>y||w<_&&by?t.lm++:b===_&&t.lm--)}else if(void 0!==t.li&&void 0===t.ld&&p){var y=n.p[l],b=n.lm;m=t.p[l],m>y&&t.p[l]--,m>b&&t.p[l]++}else{var y=n.p[l],b=n.lm;m=t.p[l],m===y?t.p[l]=b:(m>y&&t.p[l]--,m>b?t.p[l]++:m===b&&y>b&&t.p[l]++)}else if(void 0!==n.oi&&void 0!==n.od){if(t.p[l]===n.p[l]){if(void 0===t.oi||!p)return e;if("right"===o)return e;t.od=n.oi}}else if(void 0!==n.oi){if(void 0!==t.oi&&t.p[l]===n.p[l]){if("left"!==o)return e;a.append(e,{p:t.p,od:n.oi})}}else if(void 0!==n.od&&t.p[l]==n.p[l]){if(!p)return e;if(void 0===t.oi)return e;delete t.od}}return a.append(e,t),e},n(12)(a,a.transformComponent,a.checkValidOp,a.append);var d=n(13);a.registerSubtype(d),e.exports=a},function(e,t){function n(e,t,n,i){var r=function(e,n,i,r){t(i,e,n,"left"),t(r,n,e,"right")},o=e.transformX=function(e,t){n(e),n(t);for(var l=[],s=0;s=n.p+n.d.length)s(e,{d:t.d,p:t.p-n.d.length});else if(t.p+t.d.length<=n.p)s(e,t);else{var l={d:"",p:t.p};t.pn.p+n.d.length&&(l.d+=t.d.slice(n.p+n.d.length-t.p));var c=Math.max(t.p,n.p),u=Math.min(t.p+t.d.length,n.p+n.d.length),d=t.d.slice(c-t.p,u-t.p),h=n.d.slice(c-n.p,u-n.p);if(d!==h)throw new Error("Delete ops delete different text in the same region of the document");""!==l.d&&(l.p=a(l.p,n),s(e,l))}return e},u=function(e){return null!=e.i?{d:e.i,p:e.p}:{i:e.d,p:e.p}};i.invert=function(e){e=e.slice().reverse();for(var t=0;t0))throw Error("Object components must be deletes of size > 0");break;case"string":if(!(r.length>0))throw Error("Inserts cannot be empty");break;case"number":if(!(r>0))throw Error("Skip components must be >0");if("number"==typeof t)throw Error("Adjacent skip components should be combined")}t=r}if("number"==typeof t)throw Error("Op has a trailing skip")},r=function(e){return function(t){if(t&&0!==t.d)return 0===e.length?e.push(t):typeof t==typeof e[e.length-1]?"object"==typeof t?e[e.length-1].d+=t.d:e[e.length-1]+=t:e.push(t)}},o=function(e){var t=0,n=0,i=function(i,r){if(t===e.length)return i===-1?null:i;var o,l=e[t];return"number"==typeof l?i===-1||l-n<=i?(o=l-n,++t,n=0,o):(n+=i,i):"string"==typeof l?i===-1||"i"===r||l.length-n<=i?(o=l.slice(n),++t,n=0,o):(o=l.slice(n,n+i),n+=i,o):i===-1||"d"===r||l.d-n<=i?(o={d:l.d-n},++t,n=0,o):(n+=i,{d:i})},r=function(){return e[t]};return[i,r]},l=function(e){return"number"==typeof e?e:e.length||e.d},s=function(e){return e.length>0&&"number"==typeof e[e.length-1]&&e.pop(),e};t.normalize=function(e){for(var t=[],n=r(t),i=0;ie.length)throw Error("The op is too long for this document");n.push(e.slice(0,o)),e=e.slice(o);break;case"string":n.push(o);break;case"object":e=e.slice(o.d)}}return n.join("")+e},t.transform=function(e,t,n){if("left"!=n&&"right"!=n)throw Error("side ("+n+") must be 'left' or 'right'");i(e),i(t);for(var a=[],c=r(a),u=o(e),d=u[0],h=u[1],f=0;f0;)g=d(p,"i"),c(g),"string"!=typeof g&&(p-=l(g));break;case"string":"left"===n&&"string"==typeof h()&&c(d(-1)),c(m.length);break;case"object":for(p=m.d;p>0;)switch(g=d(p,"i"),typeof g){case"number":p-=g;break;case"string":c(g);break;case"object":p-=g.d}}}for(;m=d(-1);)c(m);return s(a)},t.compose=function(e,t){i(e),i(t);for(var n=[],a=r(n),c=o(e)[0],u=0;u0;)h=c(d,"d"),a(h),"object"!=typeof h&&(d-=l(h));break;case"string":a(f);break;case"object":for(d=f.d;d>0;)switch(h=c(d,"d"),typeof h){case"number":a({d:h}),d-=h;break;case"string":d-=h.length;break;case"object":a(h)}}}for(;f=c(-1);)a(f);return s(n)};var a=function(e,t){for(var n=0,i=0;i=n&&"none"===t.style.display&&(t.style.display="block"))},p=function(e){e.innerHTML="",localStorage.removeItem(i)},g=function(e){var t=document.getElementById("fp_session_form_validation");t.style.display="",t.innerHTML=e},m=function(){var e=document.getElementById("fp_session_form_validation");e.style.display="none"},v=function(){return""===o.value?o.placeholder:o.value},y=function(){return""===r.value?r.placeholder:r.value},b=function(t){return!e&&(t.length>100?(g("Session name is above the maximum limit of 100 characters."),l.href="#",!1):(0===t.length&&(t=o.placeholder),l.href="app/"+t,m(),!0))},_=function(t){return function(){if(e)e(t);else{if(!b(t))return;location.href="app/"+t}}},w=function(e,t){return function(){var n=localStorage.getItem(i),r=[],o=0,l=e.parentElement;for(l.parentElement.removeChild(l),n&&(r=JSON.parse(n)),o=0;o0?localStorage.setItem(i,JSON.stringify(r)):(c.parentElement.removeChild(c),localStorage.removeItem(i)),null!==localStorage.getItem(t)&&localStorage.removeItem(t)}},x=function(){var e=this,t=e.textContent;WUI_CircularMenu.create({element:e,angle:90},[{icon:"fp-join-icon",tooltip:"Join session",on_click:_(t)},{icon:"fp-trash-icon",tooltip:"Delete session",on_click:w(e,t)}])};if(o.placeholder=Math.random().toString(36).substr(2,12),b(o.placeholder),h?(e||(a.innerHTML=t+''+h+""),r.value=h):u.parentElement.removeChild(u),r.addEventListener("change",function(){localStorage.setItem(n,y())}),o.addEventListener("change",function(){b(o.value)}),c.addEventListener("click",function(){p(s),c.parentElement.removeChild(c)}),l.addEventListener("click",function(t){var r=localStorage.getItem(i),o=[],l=v(),s=0;for(r&&(o=JSON.parse(r)),s=0;s";i+="
  • max input channels: "+n.inchn+"
  • ",i+="
  • max output channels: "+n.ouchn+"
  • ",i+="
  • default samplerate: "+parseInt(n.smpr,10)+"
  • ",i+="",t.innerHTML=i},h=function(e){var t=e.target.options[e.target.selectedIndex],n=parseInt(t.dataset.id,10),i=e.target.value;s=n,d(n),localStorage.setItem("fs-fas-device-id",n),localStorage.setItem("fs-fas-device-name",i),u()},f=function(e){r=e;var t,n=document.getElementById("fs_fas_device"),i=localStorage.getItem("fs-fas-device-id"),o=localStorage.getItem("fs-fas-device-name"),l="",a=0;for(i=null===i?0:parseInt(i,10),s=i,n.addEventListener("change",h),n.innerHTML="",a=r.length-1;a>0;a-=1)t=r[a],l=t.id===i&&t.name===o?" selected":"",n.innerHTML+='";d(s)},p=function(){var i=document.getElementById("fs_electron_login"),r=document.body.children,s=0;if(a()){for(document.body.classList.add("login"),e=require("electron"),t=e.remote.getGlobal("fasInfos"),n=e.remote.getGlobal("fasRestart"),s=0;s-1},f=function(e){return 440*Math.pow(2,(e-69)/12)},p=function(e,t){return 1/t*(60/e)},g=function(){var e=0;for(e=0;e<256;e+=1)n.push(u(e))};g();var m=document.getElementById("fs_utter_fail"),v=document.getElementById("fail"),y=document.getElementById("fs_notification"),b=function(e,t){v.innerHTML=e,t&&(document.body.innerHTML="",m.innerHTML=''+e,document.body.appendChild(m))},_=function(){m.parentElement.removeChild(m),m=null},w=function(e){return function(){e.parentElement.removeChild(e)}},x=function(e){return function(){e.classList.add("fs-opacity-transition"),e.classList.add("fs-transparent"),window.setTimeout(w(e),2e3)}},E=function(e,t){var n=document.createElement("div");n.innerHTML=e,void 0===t&&(t=1500),""!==v.innerHTML&&n.classList.add("fs-text-align-right"),y.appendChild(n),window.setTimeout(x(n),t)};m.innerHTML="";var L=function(){var t;return e.session_name?e.session_name:(t=window.location.pathname.split("/"),t[t.length-1])};if(window.performance=window.performance||{},performance.now=function(){return performance.now||performance.mozNow||performance.msNow||performance.oNow||performance.webkitNow||function(){return(new Date).getTime()}}(),window.AudioContext=window.AudioContext||window.webkitAudioContext||!1,window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,window.cancelAnimationFrame=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame,!window.AudioContext)return void b("The Web Audio API is not available, please use a Web Audio capable browser.",!0);if(!window.cancelAnimationFrame)return void b("The cancelAnimationFrame function is not available, please use a web browser with cancelAnimationFrame support.",!0);if(!window.localStorage)return void b("The localStorage API is not available, please use a web browser with localStorage support.",!0);if(!window.FileReader)return void b("FileReader API is not available, please use a web browser with FileReader support.",!0);if(!window.Blob)return void b("Blob API is not available, please use a web browser with Blob support.",!0);if(!window.File)return void b("File API is not available, please use a web browser with File API support.",!0);if("undefined"==typeof Worker)return void b("Web Workers are not available, please use a web browser with Web Workers support.",!0);var C,T,S,k,I,M,D,A,O,W,R,N,B,P,U,H,F,z,X,q,j,G,V,Y,K=1,J="https://www.fsynth.com/documentation.html",$=localStorage.getItem("fs-user-name"),Q=localStorage.getItem(L()),Z=document.getElementById("fs_red_curtain"),ee=document.getElementById("fs_user_name"),te=document.getElementById("fs_time_infos"),ne=document.getElementById("fs_hz_infos"),ie=document.getElementById("fs_xy_infos"),re=document.getElementById("fs_osc_infos"),oe=document.getElementById("fs_polyphony_infos"),le=document.getElementById("fs_haxis_infos"),se=document.getElementById("fs_vaxis_infos"),ae=document.getElementById("canvas_container"),ce=document.createElement("canvas"),ue=document.getElementById("fs_record_canvas"),de=ue.getContext("2d"),he=0,fe=!1,pe={default:function(e,t){return t},additive:function(e,t){return e+t},substractive:function(e,t){return e-t},multiply:function(e,t){return e*t},f:null},ge=1024,me=439,ve=ge-1,ye=4*me,be=ge,_e=me,we={enabled:!0,pframe:[],index:0,program:null,texture:null},xe=document.getElementById("code"),Ee=localStorage.getItem("fs-editor-theme"),Le={showToken:/\w/,annotateScrollbar:!0},Ce={value:"",theme:null===Ee?"seti":Ee,matchBrackets:!0,lineNumbers:!0,styleActiveLine:!0,scrollbarStyle:"native",mode:"text/x-glsl",extraKeys:{F11:function(e){e.setOption("fullScreen",!e.getOption("fullScreen"))},Esc:function(e){e.getOption("fullScreen")&&e.setOption("fullScreen",!1)}}},Te=!1,Se=320,ke={data:[],data_components:4,data_length:240,uniform_vectors:0,pressed:{},polyphony_max:60,polyphony:0},Ie={max_fragment_uniform_vector:-1},Me=!1,De=!1,Ae=!0,Oe=!1,We=!1,Re=!0,Ne=!1,Be=!0,Pe=!1,Ue=0,He=1,Fe=60,ze=!1,Xe=null,qe=[],je={preserveDrawingBuffer:!0,antialias:!0,depth:!1},Ge=[],Ve=new Uint8Array(ye),Ye=[],Ke=1,Je=!0,$e=!0,Qe=2,Ze={},et=[],tt=document.getElementById("fs_input_panel"),nt=[],it=0,rt=0,ot=null,lt="iInput",st="ws",at="127.0.0.1",ct=0,ut=1,dt=new window.AudioContext,ht=dt.createAnalyser(),ft=16384,pt=dt.sampleRate,gt=.05,mt=4096,vt=function(e){var t=new Float32Array(e),n=0,i=2*Math.PI/e,r=0;for(r=0;r=G.length||e<0?null:G[e]},Pt=function(e){var t=Bt(e);return t?t.freq:null},Ut=function(e){var t=new Float32Array(2),n=new Float32Array(2),i=0,r=1,o=0,l=1/e,s=0;for(_t=[],s=0;s<=e;s+=1)o=2*Math.PI*(l*s),t[1]=i*Math.cos(o)-r*Math.sin(o),n[1]=i*Math.sin(o)+r*Math.cos(o),_t.push(dt.createPeriodicWave(t,n));wt=e-1},Ht=function(e,t,n){var i,r=0,o=0,l=0,s=null,a=null,c=null,u=e/n;if(G)for(r=0;r=0;r-=1){o=t*Math.pow(2,r/u),l=o/dt.sampleRate*mt,s=Nt(V),a=Rt(s,0),c=Rt(s,1);var d={freq:o,gain_node_l:a,gain_node_r:c,merger_node:s,period:1/o,gain_l:0,gain_r:0,node:null,used:!1,phase_index:Math.random()*mt,phase_step:l};d.node=dt.createOscillator(),d.node.setPeriodicWave(_t[Math.round(Math.random()*wt)]),d.node.frequency.value=d.freq,d.node.connect(d.gain_node_l),d.node.connect(d.gain_node_r),d.node.start(),G.push(d)}At.h=e,At.base_freq=t,At.octaves=n},Ft=function(){var e=null,t=dt.currentTime,n=0;for(n=0;n=mt&&(t.phase_index-=mt)}l[n]=c,s[n]=u,g+=Lt,m+=1,m>=Et&&(Lt=0,m=0,Dt&&(g=0,Mt=0,Lt=1/Et,St=new Float32Array(kt),Dt=!1))}Mt=g,It=m},Gt=function(){Y&&!Ot&&(Y.connect(V),Ot=!0)},Vt=function(){Y&&Ot&&(Y.disconnect(V),Ot=!1)},Yt=function(e){gt=e,V&&(gt?V.gain.value=parseFloat(gt):V.gain.value=0),At.gain=gt},Kt=function(){Tt=!1,St=[]},Jt=function(){Tt=!0},$t=function(){var e,t=0,n=0;for(t=0;t1?e.getChannelData(1).buffer:null,i={settings:JSON.parse(JSON.stringify(ln)),left:t,right:n,note_time:p(ln.bpm,ln.ppb),sample_rate:pt},r=[t];ln.height<=0&&(i.settings.height=me),ln.minfreq<=0&&(i.settings.minfreq=G[G.length-1].freq),ln.maxfreq<=0&&(i.settings.maxfreq=G[0].freq),n&&r.push(n),E("conversion in progress...",2e3),on.postMessage(i,r)},an=function(e){var t=new FileReader;t.onload=function(e){Qt(e.target.result,sn)},t.onerror=function(t){var n=t.target.error;switch(n.code){case n.NOT_FOUND_ERR:E("File '"+e.name+" not found.");break;case n.NOT_READABLE_ERR:E("File '"+e.name+" not readable.");break;case n.ABORT_ERR:E("File '"+e.name+" operation was aborted.");break;case n.SECURITY_ERR:E("File '"+e.name+" is in a locked state.");break;case n.ENCODING_ERR:E("File '"+e.name+" encoding took too long.");break;default:E("File '"+e.name+" cannot be loaded.")}},t.onprogress=function(t){var n=0;t.lengthComputable&&(n=Math.round(100*t.loaded/t.total),E("loading '"+e.name+"' "+n+"%."))},t.readAsArrayBuffer(e)};on.addEventListener("message",function(e){if(e.data!==Object(e.data))return void("string"==typeof e.data?E(e.data,1e4):E("Audio file conversion in progress : "+e.data+"%"));var t={width:e.data.width,height:e.data.height,data:{buffer:e.data.pbuffer}};Ai(t,en),E("Audio file converted to "+t.width+"x"+t.height+"px image.")},!1);var cn=document.getElementById("fs_import_dropzone"),un=function(e){var t=document.createElement("input");t.type="file",t.multiple=!0,t.addEventListener("change",e,!1),t.click()},dn=function(e){return function(t){if(void 0===t)return void un(dn(e));var n,i=t.target,r=i.files,o=0;if(0!==r.length){for(o=0;o0)for(n=4*e.shift,t.copyWithin(n,0,ye-n),i=0;ike.data_length)break;for(we.enabled&&(i=we.pframe[we.index],r=we.pframe[(we.index+1)%2],U.bindFramebuffer(U.FRAMEBUFFER,i.buffer),U.viewport(0,0,ge,me),An(q),h=et.length,U.activeTexture(U.TEXTURE0+h),U.bindTexture(U.TEXTURE_2D,r.data.texture),U.uniform1i(On("pFrame",q),h)),U.uniform4fv(On("keyboard"),ke.data),U.uniform1f(On("globalTime"),p),U.uniform1f(On("octave"),At.octaves),U.uniform1f(On("baseFrequency"),At.base_freq),U.uniform4f(On("mouse"),W,R,N,B),U.uniform4f(On("date"),g.getFullYear(),g.getMonth(),g.getDay(),g.getSeconds()),u=0;u0){for(v||(Ge[0]=new Uint8Array(Ye[0])),ze&&(U.bindBuffer(U.PIXEL_PACK_BUFFER,Xe),U.bufferData(U.PIXEL_PACK_BUFFER,1*ce.height*4,U.STATIC_READ)),t=qe[0],m=t.output_channel-1,t.mute?Ye[m]=new Uint8Array(ye):(0!=t.frame_increment&&Mr(t.id,t.x+t.frame_increment,t.y,!1,!0),f=t.x,ze?(U.readPixels(f,0,1,me,U.RGBA,U.UNSIGNED_BYTE,0),U.getBufferSubData(U.PIXEL_PACK_BUFFER,0,Ye[m])):U.readPixels(f,0,1,me,U.RGBA,U.UNSIGNED_BYTE,Ye[m]),xn(t,Ye[m])),u=1;u0?_+=1:Ye[d][u+1]>0&&(_+=1);b.push(_)}re.innerHTML=b.join(" ")}if(fe){for(he+=1,he>ge&&(he=0),Ve=new Uint8Array(ye),u=0;u0&&e.uniform4fv(l,new Float32Array(r)))},Rn=function(){var e,t,n,i,r,o,l="",s=0;for(l="precision mediump float; uniform float globalTime; uniform float octave; uniform float baseFrequency; uniform vec4 mouse; uniform vec4 date; uniform vec2 resolution; uniform vec4 keyboard["+ke.polyphony_max+"];",we.enabled&&(l+="uniform sampler2D pFrame;"),l+="float htoy(float frequency) {return resolution.y - (resolution.y - (log(frequency / baseFrequency) / log(2.)) * (resolution.y / octave));}",l+="float fline(float frequency) {return step(abs(gl_FragCoord.y - htoy(frequency)), 0.5);}",s=0;s1?"["+r.count+"]":"")+";");if(l+=T.getValue(),e=Dn(U.FRAGMENT_SHADER,l),o=Mn(Dn(U.VERTEX_SHADER,document.getElementById("vertex-shader").text),e),In(l),o){U.deleteProgram(q),q=o,Tn={},b(""),Pi(),An(q),U.uniform2f(U.getUniformLocation(q,"resolution"),ce.width,ce.height),Wn(U,"vec",q,"keyboard",ke.data,ke.data_components);for(i in Ze)Ze.hasOwnProperty(i)&&(r=Ze[i],Wn(U,r.type,q,i,r.values,r.comps));t=U.getAttribLocation(q,"position"),U.enableVertexAttribArray(t),U.vertexAttribPointer(t,2,U.FLOAT,!1,0,0),De&&(De=!1,0===K&&qi(!1))}else De=!0},Nn=function(e){return function(){T.setCursor({line:e.start.line-1,ch:e.start.column}),k&&k.cm.setCursor({line:e.start.line-1,ch:e.start.column})}};kn.onmessage=function(e){var t,n,i,r,o=0,l=0,s=e.data;for(Sn.innerHTML="",o=0;o'+i.type_name+" "+i.name);r.innerHTML=''+t.returnType.name+" "+t.name+" ("+n.join(", ")+")",r.title="line: "+t.position.start.line,r.addEventListener("click",Nn(t.position)),Sn.appendChild(r)}else"declarator"===t.type?(r=document.createElement("div"),r.className="fs-outline-item fs-outline-declarator",r.innerHTML=''+t.returnType+" "+t.name,r.title="line: "+t.position.start.line,r.addEventListener("click",Nn(t.position)),Sn.appendChild(r)):"preprocessor"===t.type&&(r=document.createElement("div"),r.className="fs-outline-item fs-outline-preprocessor",r.innerHTML=t.name+" = "+t.value,r.title="line: "+t.position.start.line,r.addEventListener("click",Nn(t.position)),Sn.appendChild(r))};var Bn,Pn,Un,Hn,Fn,zn,Xn,qn,jn,Gn=at+":3001",Vn=at+":3002",Yn=!1,Kn=!1,Jn=function(e){E(e,5e3)},$n=function(){var e=new WebSocket(st+"://"+Vn);e.addEventListener("open",function(e){var t=document.getElementById("fs_sync_status");t.classList.add("fs-server-status-on")}),e.addEventListener("close",function(e){Yn=!1,Kn=!1,E("Connection to synchronization server was lost, trying again in ~5s.",2500),clearTimeout(Fn),Fn=setTimeout($n,5e3);var t=document.getElementById("fs_sync_status");t.classList.remove("fs-server-status-on")}),e.addEventListener("error",function(e){}),zn=new ShareDB.Connection(e),Xn=zn.get("_"+Pn,"fs"),Xn.on("error",Jn),Xn.subscribe(function(e){e&&E(e,5e3),Xn.data?T.setValue(Xn.data):Xn.create(T.getValue()),Xn.on("op",function(e,t){var n,i,r,o,l=0,s=0;if(t===!1)for(l=0;l0&&Xn.submitOp(t)}},di=function(){Pn=L(),Zn(),$n()},hi="fs_right_dialog",fi=document.getElementById("fs_discuss_input"),pi=function(){return document.getElementById("fs_users_list")},gi=function(e,t,n,i){var r=pi(),o=document.createElement("li"),l=WUI_Dialog.getDetachedDialog(hi);o.innerHTML=t,o.id="user"+e,o.title=t,n&&(o.style.color=n),i&&(o.style.fontWeight="bold"),r.appendChild(o),l&&l.document.getElementById("fs_users_list").appendChild(o.cloneNode(!0))},mi=function(e){var t,n=document.getElementById("user"+e),i=WUI_Dialog.getDetachedDialog(hi);i&&(t=i.document.getElementById("user"+e),t.parentElement.removeChild(t)),n.parentElement.removeChild(n)},vi=function(e){var t,n,i,r=pi(),o=WUI_Dialog.getDetachedDialog(hi);for(r.innerHTML="",gi("self",$,"#adff2f",!1),i=0;irepeat';a.id="fs_channel_settings_dialog",ze||l(u.image.width)&&l(u.image.height)&&1!==u.type||(d=""),a.style.fontSize="13px",c.innerHTML='  
    Filter:
     
    Wrap S:
     
    Wrap T:
     
      
    ',a.appendChild(c),document.body.appendChild(a),t=document.getElementById("fs_channel_filter"),n=document.getElementById("fs_channel_wrap_s"),i=document.getElementById("fs_channel_wrap_t"),r=document.getElementById("fs_channel_vflip"),U.bindTexture(U.TEXTURE_2D,u.texture),U.getTexParameter(U.TEXTURE_2D,U.TEXTURE_MAG_FILTER)===U.NEAREST&&(t.value="nearest"),s=U.getTexParameter(U.TEXTURE_2D,U.TEXTURE_WRAP_S),s===U.CLAMP_TO_EDGE?n.value="clamp":s===U.REPEAT?n.value="repeat":s===U.MIRRORED_REPEAT&&(n.value="mirror"),s=U.getTexParameter(U.TEXTURE_2D,U.TEXTURE_WRAP_T),s===U.CLAMP_TO_EDGE?i.value="clamp":s===U.REPEAT?i.value="repeat":s===U.MIRRORED_REPEAT&&(i.value="mirror"),u.flip?r.checked=!0:r.checked=!1,t.addEventListener("change",function(){vn(u.texture,this.value)}),n.addEventListener("change",function(){yn(u.texture,this.value)}),i.addEventListener("change",function(){bn(u.texture,this.value)}),r.addEventListener("change",function(){var e;e=_n(u.texture,u.image),u.texture=e,u.flip=!u.flip}),o=WUI_Dialog.create(a.id,{title:lt+e+" settings",width:"200px",height:"230px",halign:"center",valign:"center",open:!0,minimized:!1,on_close:function(){WUI_Dialog.destroy(o)},modal:!0,status_bar:!1,closable:!0,draggable:!0,minimizable:!1,resizable:!1,detachable:!1,min_width:200,min_height:250,header_btn:[{title:"Help",on_click:function(){window.open(J+"#subsec5_5")},class_name:"fs-help-icon"}]})},Ai=function(e,t){var n=new Worker("dist/worker/image_processor.min.js");n.onmessage=function(e){en(e.data)},n.postMessage({img_width:e.width,img_height:e.height,buffer:e.data.buffer},[e.data.buffer])},Oi=function(e){var t=s(e.target.dataset.inputId),n=et[t].elem;WUI_CircularMenu.create({element:n,rx:32,ry:32,item_width:32,item_height:32},[{icon:"fs-gear-icon",tooltip:"Settings",on_click:function(){Di(t)}},{icon:"fs-cross-45-icon",tooltip:"Delete",on_click:function(){tt.removeChild(n),Ri(t)}},{icon:"fs-xyf-icon",tooltip:"View image",on_click:function(){window.open(n.src)}}])},Wi=function(){var e,t=0;for(t=0;t","","","Fragment < />",'','','','','',"","",'
    ',"",""].join("")),k.document.close()},Xi=function(){window.cancelAnimationFrame(P),Ft(),Vt(),K=1,rt=performance.now()},qi=function(e){K=0,De||(po()||yt!==ct||Gt(),window.cancelAnimationFrame(P),P=window.requestAnimationFrame(Cn),void 0===e&&(it+=performance.now()-rt))},ji=function(){0===K&&De===!1?it=performance.now():(it=0,rt=0,Ae&&(te.innerHTML=parseInt(it,10)))},Gi={plus:"fs-plus-icon"},Vi="fs_slice_settings_dialog",Yi="fs_settings_dialog",Ki="fs_midi_settings_dialog",Ji="fs_help_dialog",$i="fs_record_dialog",Qi="fs_outline_dialog",Zi="fs_import_dialog",er=[{},{},{},{}],tr="fs_controls_dialog",nr=document.getElementById(tr),ir=function(e){e.state?Xi():qi()},rr=function(){WUI_Dialog.open(Ii,!0)},or=function(){WUI_Dialog.open(Li)},lr=function(){WUI_Dialog.open(xi)},sr=function(){WUI_Dialog.open(Ei)},ar=function(e){e.state?(document.getElementById("fs_fas_status").style="",ho(),Ft(),Vt()):(document.getElementById("fs_fas_status").style="display: none",fo(),0===K&&Gt())},cr=function(e){Me=!!e.state},ur=function(){fe?(fe=!1,WUI_Dialog.close(Ci)):(fe=!0,WUI_Dialog.open(Ci))},dr=function(){WUI_ToolBar.toggle(ki,14),WUI_Dialog.close(Si)},hr=function(){WUI_ToolBar.toggle(ki,7)},fr=function(){WUI_Dialog.open(Ti)},pr=function(e){e.state?WUI_Dialog.open(Si):WUI_Dialog.close(Si)},gr=function(){pe.f===pe.additive?pe.f=pe.default:pe.f=pe.additive},mr=function(){pe.f===pe.substractive?pe.f=pe.default:pe.f=pe.substractive},vr=function(){pe.f===pe.multiply?pe.f=pe.default:pe.f=pe.multiply},yr=function(){window.open(ue.toDataURL("image/png"))},br=function(){he=0,de.clearRect(0,0,ue.width,ue.height)},_r=function(){var e,t=(new Image,document.createElement("canvas")),n=t.getContext("2d");t.width=ue.width,t.height=ue.height,n.translate(0,ue.height), +n.scale(1,-1),n.drawImage(ue,0,0,t.width,t.height),e=n.getImageData(0,0,t.width,t.height),tn(e)},wr=function(){var e=document.getElementById("fs_settings_ck_globaltime"),t=document.getElementById("fs_settings_ck_polyinfos"),n=document.getElementById("fs_settings_ck_oscinfos"),r=document.getElementById("fs_settings_ck_hlmatches"),o=document.getElementById("fs_settings_ck_lnumbers"),l=document.getElementById("fs_settings_ck_xscrollbar"),a=document.getElementById("fs_settings_ck_wavetable"),c=document.getElementById("fs_settings_ck_monophonic"),u=document.getElementById("fs_settings_ck_feedback"),d=document.getElementById("fs_settings_ck_exted"),h=document.getElementById("fs_settings_ck_slicebar"),f=document.getElementById("fs_settings_ck_slices"),p=localStorage.getItem("fs-max-polyphony"),g=localStorage.getItem("fs-osc-fadeout"),m=localStorage.getItem("fs-show-globaltime"),v=localStorage.getItem("fs-show-polyinfos"),y=localStorage.getItem("fs-show-oscinfos"),b=localStorage.getItem("fs-show-slicebar"),w=localStorage.getItem("fs-editor-hl-matches"),x=localStorage.getItem("fs-editor-show-linenumbers"),E=localStorage.getItem("fs-editor-advanced-scrollbar"),L=localStorage.getItem("fs-use-wavetable"),C=localStorage.getItem("fs-monophonic"),S=localStorage.getItem("fs-feedback"),k=localStorage.getItem("fs-exted");xi=WUI_Dialog.create(Yi,{title:"Session & global settings",width:"320px",height:"418px",halign:"center",valign:"center",open:!1,status_bar:!1,detachable:!1,draggable:!0,header_btn:[{title:"Help",on_click:function(){window.open(J+"#subsec5_8")},class_name:"fs-help-icon"}]}),"true"===C?(At.monophonic=!0,c.checked=!0):(At.monophonic=!1,c.checked=!1),"true"===k?d.checked=!0:d.checked=!1,"true"===S?(we.enabled=!0,u.checked=!0):null===S?we.enabled?u.checked=!0:u.checked=!1:(we.enabled=!1,u.checked=!1),g&&(bt=parseFloat(g)),p&&(ke.polyphony_max=s(p)),"true"===L?(yt=ct,a.checked=!0):(yt=ut,a.checked=!1),null!==m&&(Ae="true"===m),null!==y&&(Oe="true"===y),null!==v&&(We="true"===v),null!==b&&(Re="true"===b),null!==w&&(Ne="true"===w),null!==x&&(Be="true"===x),null!==E&&(Pe="true"===E),Pe?l.checked=!0:l.checked=!1,Oe?n.checked=!0:n.checked=!1,We?t.checked=!0:t.checked=!1,Ae?e.checked=!0:e.checked=!1,Ne?r.checked=!0:r.checked=!1,Be?o.checked=!0:o.checked=!1,Re?h.checked=!0:h.checked=!1,c.addEventListener("change",function(){this.checked?At.monophonic=!0:At.monophonic=!1,localStorage.setItem("fs-monophonic",this.checked)}),u.addEventListener("change",function(){this.checked?we.enabled=!0:we.enabled=!1,localStorage.setItem("fs-feedback",this.checked),wn()}),d.addEventListener("change",function(){localStorage.setItem("fs-exted",this.checked)}),a.addEventListener("change",function(){this.checked?(yt=ct,Ft(),Gt()):(yt=ut,Vt()),localStorage.setItem("fs-use-wavetable",this.checked)}),n.addEventListener("change",function(){Oe=this.checked,Oe||(re.innerHTML=""),localStorage.setItem("fs-show-oscinfos",Oe)}),t.addEventListener("change",function(){We=this.checked,We||(oe.innerHTML=""),localStorage.setItem("fs-show-polyinfos",We)}),h.addEventListener("change",function(){var e=document.getElementsByClassName("play-position-marker"),t=0;if(Re=this.checked)for(t=e.length-1;t>=0;--t)e[t].classList.add("play-position-marker-bar");else for(t=e.length-1;t>=0;--t)e[t].classList.remove("play-position-marker-bar");localStorage.setItem("fs-show-slicebar",Re)}),f.addEventListener("change",function(){var e=document.getElementsByClassName("play-position-marker"),t=0;if(this.checked)for(t=e.length-1;t>=0;--t)e[t].classList.remove("fs-hide");else for(t=e.length-1;t>=0;--t)e[t].classList.add("fs-hide")}),e.addEventListener("change",function(){Ae=this.checked,Ae||(te.innerHTML=""),localStorage.setItem("fs-show-globaltime",Ae)}),r.addEventListener("change",function(){Ne=this.checked,Ne?(Ce.highlightSelectionMatches=Le,T.setOption("highlightSelectionMatches",Le)):(delete Ce.highlightSelectionMatches,T.setOption("highlightSelectionMatches",null)),localStorage.setItem("fs-editor-hl-matches",Ne)}),o.addEventListener("change",function(){Be=this.checked,Ce.lineNumbers=Be,T.setOption("lineNumbers",Be),localStorage.setItem("fs-editor-show-linenumbers",Be)}),l.addEventListener("change",function(){Pe=this.checked,Pe?(Ce.scrollbarStyle="overlay",T.setOption("scrollbarStyle","overlay")):(Ce.scrollbarStyle="native",T.setOption("scrollbarStyle","native")),localStorage.setItem("fs-editor-advanced-scrollbar",Pe)}),a.dispatchEvent(new UIEvent("change")),n.dispatchEvent(new UIEvent("change")),t.dispatchEvent(new UIEvent("change")),e.dispatchEvent(new UIEvent("change")),r.dispatchEvent(new UIEvent("change")),o.dispatchEvent(new UIEvent("change")),l.dispatchEvent(new UIEvent("change")),c.dispatchEvent(new UIEvent("change")),u.dispatchEvent(new UIEvent("change")),d.dispatchEvent(new UIEvent("change")),h.dispatchEvent(new UIEvent("change")),f.dispatchEvent(new UIEvent("change")),Ei=WUI_Dialog.create(Ki,{title:"MIDI settings",width:"320px",height:"390px",halign:"center",valign:"center",open:!1,status_bar:!1,detachable:!1,draggable:!0,header_btn:[{title:"Help",on_click:function(){window.open(J+"#subsec5_9")},class_name:"fs-help-icon"}]}),Ci=WUI_Dialog.create($i,{title:"Recording...",width:"auto",height:"auto",halign:"center",valign:"center",open:!1,status_bar:!1,detachable:!1,draggable:!0,on_close:hr,header_btn:[{title:"Help",on_click:function(){window.open(J+"#subsec5_10")},class_name:"fs-help-icon"}]}),Si=WUI_Dialog.create(Zi,{title:"Import input (image, audio, webcam)",width:"380px",height:"480px",halign:"center",valign:"center",open:!1,status_bar:!1,detachable:!0,draggable:!0,on_close:dr,header_btn:[{title:"Help",on_click:function(){window.open(J+"#subsec5_5")},class_name:"fs-help-icon"}]}),WUI_ToolBar.create("fs_import_toolbar",{allow_groups_minimize:!1},{acts:[{icon:"fs-image-file-icon",on_click:function(){dn("image")()},tooltip:"Image",text:"Image"},{icon:"fs-audio-file-icon",on_click:function(){dn("audio")()},tooltip:"Audio",text:"Audio"},{icon:"fs-camera-icon",on_click:function(){Bi("camera")},tooltip:"Webcam",text:"Webcam"}]}),Ti=WUI_Dialog.create(Qi,{title:"GLSL Outline",width:"380px",height:"700px",halign:"center",valign:"center",open:!1,status_bar:!1,detachable:!0,draggable:!0,header_btn:[{title:"Help",on_click:function(){window.open(J+"#subsec5_11")},class_name:"fs-help-icon"}]}),Li=WUI_Dialog.create(Ji,{title:"Fragment - Help",width:"380px",height:"605px",halign:"center",valign:"center",open:!1,status_bar:!1,detachable:!0,draggable:!0}),wi=WUI_Dialog.create(Vi,{title:"Slice settings",width:"320px",height:"200px",halign:"center",valign:"center",open:!1,detachable:!1,status_bar:!0,draggable:!0,header_btn:[{title:"Help",on_click:function(){window.open(J+"#subsec5_3_1")},class_name:"fs-help-icon"}]}),Ii=WUI_Dialog.create(tr,{title:"Controls input",width:"50%",height:"50%",halign:"center",valign:"center",on_pre_detach:function(){var e,t,n=document.getElementById("fs_controls_panel");if(n.firstElementChild){for(e=n.firstElementChild.lastElementChild.childNodes,t=0;t1?"["+w+"]["+x+"]":" ["+x+"]"),y.appendChild(I[L]);m=b>1?C.createTextNode("Array (Vector ("+d+"))"):C.createTextNode("Vector ("+d+")")}else{for(w=0;w1?"["+w+"]":" ("+d+")"),y.appendChild(I[w]);b>1&&(m=C.createTextNode("Array ("+d+")"))}if(m&&v.appendChild(m),v.appendChild(y),"bool"===d)for(w=0;wve&&(t=0),o.x=t,o.element.style.left=parseInt(t,10)+l.left+1+"px",void 0===r&&WUI_RangeSlider.setValue("fs_slice_settings_x_input_"+o.id,t),i&&Pr(0,e,{x:t})},Dr=function(){var e,t=0,n=a(ce);for(t=0;ti.left+ge?ge-1:t-i.left-2,Mr(e,t,n,!0)},Br=function(){qe.forEach(function(e){Wr(e.id,!0)})},Pr=function(e,t,n){clearTimeout(er[e][t]),er[e][t]=setTimeout(ei,1e3,t,n)},Ur=function(e,t,n){setTimeout(ti,500,e,t,n)},Hr=function(e){setTimeout(ni,500,e)},Fr=function(e,t){e.element.firstElementChild,e.element.lastElementChild;e.mute=!0,e.element.style.backgroundColor="#555555",t&&Pr(2,e.element.dataset.slice,{mute:!0})},zr=function(e,t){e.element.firstElementChild,e.element.lastElementChild;e.mute=!1,e.element.style.backgroundColor="",t&&Pr(2,e.element.dataset.slice,{mute:!1})},Xr=function(e,t,n,i,r){var o,l=kr(ce,me),s=qe.length,a=l.firstElementChild,c=l.lastElementChild,u=n;void 0===e&&(e=0),u?l.style.backgroundColor="#555555":u=!1,l.dataset.slice=s,qe.push({element:l,x:e,mute:u,min:0,max:100,shift:0,frame_increment:0,output_channel:1,y:0,height:me,id:s}),o=qe[s],void 0!==i&&(o.output_channel=i),$t(),void 0!==t&&(o.shift=t),Mr(s,o.x,0),WUI.draggable(a,function(e,t,n){Nr(e.dataset.slice,t,n)},!1,l),WUI.lockDraggable(a,"y"),WUI.draggable(c,function(e,t,n){Nr(e.dataset.slice,t,n)},!1,l),WUI.lockDraggable(c,"y"),WUI.draggable(l,function(e,t,n){Nr(e.dataset.slice,t,n)}),WUI.lockDraggable(l,"y"),l.addEventListener("dblclick",function(e){Sr(o,!0)}),l.addEventListener("contextmenu",function(e){e.preventDefault(),this.mute||(this.mute=!1);var t,n=qe[parseInt(l.dataset.slice,10)],i={icon:"fs-mute-icon",tooltip:"Mute",on_click:function(){Fr(n,!0)}},r={icon:"fs-unmute-icon",tooltip:"Unmute",on_click:function(){zr(n,!0)}};return t=n.mute?r:i,WUI_CircularMenu.create({x:A,y:O,rx:32,ry:32,item_width:32,item_height:32},[t,{icon:"fs-gear-icon",tooltip:"Settings",on_click:function(){Sr(n,!0)}},{icon:"fs-cross-45-icon",tooltip:"Delete",on_click:function(){Wr(l.dataset.slice,!0,!0)}}]),!1},!1),Rr(o),r&&Ur(e,t,n)},qr=null,jr={input:{},output:{}},Gr=0,Vr=function(e){var t,n,i;if(!e)return null;try{t=JSON.parse(e);for(n in t.i)i=t.i[n],jr.input[n]={enabled:i.enabled}}catch(e){E("_loadMIDISettings JSON message parsing failed : "+e)}},Yr=function(){var e,t,n={i:{},o:{}};for(e in jr.input)t=jr.input[e],n.i[e]={enabled:t.enabled};Q.midi_settings=JSON.stringify(n),yo()},Kr=function(e){var t=document.createElement("div"),n="fs_midi_settings_ck_"+Gr,i=document.getElementById(Ki).lastElementChild,r=!1,o="";e.id in jr.input&&(r=jr.input[e.id].enabled,r&&(o="checked"),jr.input[e.id].connected)||(t.classList.add("fs-midi-settings-device"),t.innerHTML=[e.name,"
    ",' ","
    "].join(""),i.appendChild(t),jr.input[e.id]={type:e.type,id:e.id,manufacturer:e.manufacturer,name:e.name,version:e.version,iid:Gr,enabled:r,element:t,connected:!0},document.getElementById(n).addEventListener("change",function(){var e=jr.input[this.dataset.did];e.enabled=this.checked,Yr()}),e.onmidimessage=Qr,Gr+=1)},Jr=function(e){var t=jr.input[e];return t?(t.element.parentElement.removeChild(t.element),void delete jr.input[e]):void console.log("_deleteMIDIDevice: MIDI Device ",e," does not exist.")},$r=function(e){var t=e.port;"input"===t.type&&("connected"===t.state?Kr(t):"disconnected"===t.state&&Jr(t.id))},Qr=function(e){var t,n,i=0,r=jr.input[this.id],o=15&e.data[0];if(r.enabled){switch(An(q),240&e.data[0]){case 144:if(0!==e.data[2]){t=o+"_"+e.data[1],ke.data=new Array(ke.data_length),ke.data.fill(0),ke.pressed[t]={frq:f(e.data[1]),vel:e.data[2]/127,time:Date.now(),channel:o},i=0;for(t in ke.pressed)if(n=ke.pressed[t],ke.data[i]=n.frq,ke.data[i+1]=n.vel,ke.data[i+2]=Date.now(),ke.data[i+3]=n.channel,i+=ke.data_components,i>ke.data_length)break;ke.polyphony=i/ke.data_components,Wn(U,"vec",q,"keyboard",ke.data,ke.data_components)}break;case 128:t=o+"_"+e.data[1],delete ke.pressed[t],ke.data=new Array(ke.data_length),ke.data.fill(0),i=0;for(t in ke.pressed)if(n=ke.pressed[t],ke.data[i]=n.frq,ke.data[i+1]=n.vel,ke.data[i+2]=n.time,ke.data[i+3]=n.channel,i+=ke.data_components,i>ke.data_length)break;ke.polyphony=i/ke.data_components,Wn(U,"vec",q,"keyboard",ke.data,ke.data_components)}WUI_RangeSlider.submitMIDIMessage(e)}},Zr=function(e){var t=document.getElementById(Ki).lastElementChild;qr=e,t.innerHTML='
    MIDI Inputs
    ',qr.inputs.forEach(function(e){Kr(e)}),qr.onstatechange=$r},eo=function(e){midi_settings_element.innerHTML="
    Failed to get WebMIDI API access : "+e+"
    "},to=function(){var e=0,t=document.getElementById(Ki).lastElementChild;for(ke.data=[],e=0;eWebMIDI API is not enabled or supported by this browser."},no={address:"127.0.0.1:3003",enabled:!1,status:null,worker:new Worker("dist/worker/fas.min.js")},io=document.getElementById("fs_fas_address"),ro=0,oo=1,lo=2,so=3,ao=4,co=function(e,t){no.worker.postMessage({cmd:e,arg:t})},uo=function(e,t){var n=[],i=0;for(i=0;i=0&&Mthis.peak&&(this.peakBand=u,this.peak=a),s[u]=a}}function DFT(t,e){FourierTransform.call(this,t,e);var r=t/2*t,a=2*Math.PI;this.sinTable=new Float32Array(r),this.cosTable=new Float32Array(r);for(var s=0;s>1;a>=1}for(this.sinTable=new Float32Array(t),this.cosTable=new Float32Array(t),r=0;r>>1,n=a-1,i=1,o=0;t[0]=e[0];do{for(o+=s,t[i]=e[o],t[o]=e[i],i++,r=s<<1;r>>=1,!((o^=r)&r););o>=i&&(t[i]=e[o],t[o]=e[i],t[n-i]=e[n-o],t[n-o]=e[n-i]),i++}while(i>>1,a=e-1,s=1,n=0;this.reverseTable[0]=0;do{for(n+=r,this.reverseTable[s]=n,this.reverseTable[n]=s,s++,t=r<<1;t>>=1,!((n^=t)&t););n>=s&&(this.reverseTable[s]=n,this.reverseTable[n]=s,this.reverseTable[a-s]=a-n,this.reverseTable[a-n]=a-s),s++}while(sthis.filters.length-1)throw"The band index of the graphical equalizer is out of bounds.";if(!e)throw"A gain must be passed.";this.filters[t].setDbGain(e),this.recalculateFreqz(t)},this.recalculateFreqz=function(t){if(this.calculateFreqzs){if(t<0||t>this.filters.length-1)throw"The band index of the graphical equalizer is out of bounds. "+t+" is out of [0, "+this.filters.length-1+"]";if(!this.w){this.w=Float32Array(400);for(var e=0;ee?Math.abs(t[r]):e;return e},DFT.prototype.forward=function(t){for(var e,r,a=this.real,s=this.imag,n=0;n>>1,B=2/T;this.reverseBinPermute(M,t);for(var O=0,N=4;O>>1;s>>>=1;){O=0,e<<=1,N=e<<1,r=e>>>2,a=e>>>3;do{if(1!==r)for(V=O;Vthis.peak&&(this.peakBand=L,this.peak=E),F[L]=E;return F[0]=B*M[0],F},Sampler.prototype.applyEnvelope=function(){return this.envelope.process(this.signal),this.signal},Sampler.prototype.generate=function(){for(var t=(this.frameCount*this.bufferSize,this.playEnd*this.samples.length-this.playStart*this.samples.length),e=this.playStart*this.samples.length,r=this.playEnd*this.samples.length,a=0;a=0&&t<=1))throw"Amplitude out of range (0..1).";this.amplitude=t},Oscillator.prototype.setFreq=function(t){this.frequency=t,this.cyclesPerSample=t/this.sampleRate},Oscillator.prototype.add=function(t){for(var e=0;e=this.bufferSize);e++)this.signal[e]+=t[e];return this.signal},Oscillator.prototype.addEnvelope=function(t){this.envelope=t},Oscillator.prototype.applyEnvelope=function(){this.envelope.process(this.signal)},Oscillator.prototype.valueAt=function(t){return this.waveTable[t%this.waveTableLength]},Oscillator.prototype.generate=function(){for(var t,e=this.frameCount*this.bufferSize,r=this.waveTableLength*this.frequency/this.sampleRate,a=0;athis.attack&&this.samplesProcessed<=this.decay?e=1+(this.sustainLevel-1)*((this.samplesProcessed-this.attack)/(this.decay-this.attack)):this.samplesProcessed>this.decay&&this.samplesProcessed<=this.sustain?e=this.sustainLevel:this.samplesProcessed>this.sustain&&this.samplesProcessed<=this.release&&(e=this.sustainLevel+(0-this.sustainLevel)*((this.samplesProcessed-this.sustain)/(this.release-this.sustain))),t*e},ADSR.prototype.value=function(){var t=0;return this.samplesProcessed<=this.attack?t=0+1*((this.samplesProcessed-0)/(this.attack-0)):this.samplesProcessed>this.attack&&this.samplesProcessed<=this.decay?t=1+(this.sustainLevel-1)*((this.samplesProcessed-this.attack)/(this.decay-this.attack)):this.samplesProcessed>this.decay&&this.samplesProcessed<=this.sustain?t=this.sustainLevel:this.samplesProcessed>this.sustain&&this.samplesProcessed<=this.release&&(t=this.sustainLevel+(0-this.sustainLevel)*((this.samplesProcessed-this.sustain)/(this.release-this.sustain))),t},ADSR.prototype.process=function(t){for(var e=0;ethis.release||this.samplesProcessed===-1)},ADSR.prototype.disable=function(){this.samplesProcessed=-1},IIRFilter.prototype.__defineGetter__("cutoff",function(){return this.func.cutoff}),IIRFilter.prototype.__defineGetter__("resonance",function(){return this.func.resonance}),IIRFilter.prototype.set=function(t,e){this.func.calcCoeff(t,e)},IIRFilter.prototype.process=function(t){this.func.process(t)},IIRFilter.prototype.addEnvelope=function(t){if(!(t instanceof ADSR))throw"Not an envelope.";this.func.addEnvelope(t)},IIRFilter.LP12=function(t,e,r){this.sampleRate=r,this.vibraPos=0,this.vibraSpeed=0,this.envelope=!1,this.calcCoeff=function(t,e){this.w=2*Math.PI*t/this.sampleRate,this.q=1-this.w/(2*(e+.5/(1+this.w))+this.w-2),this.r=this.q*this.q,this.c=this.r+1-2*Math.cos(this.w)*this.q,this.cutoff=t,this.resonance=e},this.calcCoeff(t,e),this.process=function(t){for(var e=0;e=this.delayBufferSamples.length-1&&(this.delayInputPointer=this.delayInputPointer-this.delayBufferSamples.length)},MultiDelay.prototype.setMasterVolume=function(t){this.masterVolume=t},MultiDelay.prototype.setDelayVolume=function(t){this.delayVolume=t},MultiDelay.prototype.process=function(t){for(var e=new Float32Array(t.length),r=0;r=this.delayBufferSamples.length-1&&(this.delayInputPointer=0),this.delayOutputPointer++,this.delayOutputPointer>=this.delayBufferSamples.length-1&&(this.delayOutputPointer=0)}return e},SingleDelay.prototype.setDelayInSamples=function(t){this.delayInSamples=t,this.delayInputPointer=this.delayOutputPointer+t,this.delayInputPointer>=this.delayBufferSamples.length-1&&(this.delayInputPointer=this.delayInputPointer-this.delayBufferSamples.length)},SingleDelay.prototype.setDelayVolume=function(t){this.delayVolume=t},SingleDelay.prototype.process=function(t){for(var e=new Float32Array(t.length),r=0;r=this.delayBufferSamples.length-1&&(this.delayInputPointer=0),this.delayOutputPointer++,this.delayOutputPointer>=this.delayBufferSamples.length-1&&(this.delayOutputPointer=0)}return e},Reverb.prototype.setDelayInSamples=function(t){this.delayInSamples=t;var e,r;for(e=0;e>1,l=0,h=0;h>=1;l+=f}for(g=-1,b=0,y=1,p=0;p0)-(t<0)},r.abs=function(t){var e=t>>s-1;return(t^e)-e},r.min=function(t,e){return e^(t^e)&-(t65535)<<4,t>>>=e,r=(t>255)<<3,t>>>=r,e|=r,r=(t>15)<<2,t>>>=r,e|=r,r=(t>3)<<1,t>>>=r,e|=r,e|t>>1},r.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},r.popCount=function(t){return t-=t>>>1&1431655765,t=(858993459&t)+(t>>>2&858993459),16843009*(t+(t>>>4)&252645135)>>>24},r.countTrailingZeros=a,r.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t+1},r.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t-(t>>>1)},r.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,t&=15,27030>>>t&1};var n=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,a=e,s=7;for(r>>>=1;r;r>>>=1)a<<=1,a|=1&r,--s;t[e]=a<>>8&255]<<16|n[t>>>16&255]<<8|n[t>>>24&255]},r.interleave2=function(t,e){return t&=65535,t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e&=65535,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t|e<<1},r.deinterleave2=function(t,e){return t=t>>>e&1431655765,t=858993459&(t|t>>>1),t=252645135&(t|t>>>2),t=16711935&(t|t>>>4),t=65535&(t|t>>>16),t<<16>>16},r.interleave3=function(t,e,r){return t&=1023,t=4278190335&(t|t<<16),t=251719695&(t|t<<8),t=3272356035&(t|t<<4),t=1227133513&(t|t<<2),e&=1023,e=4278190335&(e|e<<16),e=251719695&(e|e<<8),e=3272356035&(e|e<<4),e=1227133513&(e|e<<2),t|=e<<1,r&=1023,r=4278190335&(r|r<<16),r=251719695&(r|r<<8),r=3272356035&(r|r<<4),r=1227133513&(r|r<<2),t|r<<2},r.deinterleave3=function(t,e){return t=t>>>e&1227133513,t=3272356035&(t|t>>>2),t=251719695&(t|t>>>4),t=4278190335&(t|t>>>8),t=1023&(t|t>>>16),t<<22>>22},r.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>a(t)+1}},{}],3:[function(t,e,r){"use strict";function a(t){if(!t)return o;for(var e=0;e>",rrshift:">>>"};!function(){for(var t in h){var e=h[t];r[t]=n({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+e+"c"},funcName:t}),r[t+"eq"]=n({args:["array","array"],body:{args:["a","b"],body:"a"+e+"=b"},rvalue:!0,funcName:t+"eq"}),r[t+"s"]=n({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+e+"s"},funcName:t+"s"}),r[t+"seq"]=n({args:["array","scalar"],body:{args:["a","s"],body:"a"+e+"=s"},rvalue:!0,funcName:t+"seq"})}}();var u={not:"!",bnot:"~",neg:"-",recip:"1.0/"};!function(){for(var t in u){var e=u[t];r[t]=n({args:["array","array"],body:{args:["a","b"],body:"a="+e+"b"},funcName:t}),r[t+"eq"]=n({args:["array"],body:{args:["a"],body:"a="+e+"a"},rvalue:!0,count:2,funcName:t+"eq"})}}();var l={and:"&&",or:"||",eq:"===",neq:"!==",lt:"<",gt:">",leq:"<=",geq:">="};!function(){for(var t in l){var e=l[t];r[t]=n({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+e+"c"},funcName:t}),r[t+"s"]=n({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+e+"s"},funcName:t+"s"}),r[t+"eq"]=n({args:["array","array"],body:{args:["a","b"],body:"a=a"+e+"b"},rvalue:!0,count:2,funcName:t+"eq"}),r[t+"seq"]=n({args:["array","scalar"],body:{args:["a","s"],body:"a=a"+e+"s"},rvalue:!0,count:2,funcName:t+"seq"})}}();var f=["abs","acos","asin","atan","ceil","cos","exp","floor","log","round","sin","sqrt","tan"];!function(){for(var t=0;tthis_s){this_s=-a}else if(a>this_s){this_s=a}",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norminf"}),r.norm1=i({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:3}],body:"this_s+=a<0?-a:a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norm1"}),r.sup=i({args:["array"],pre:{body:"this_h=-Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_>this_h)this_h=_inline_1_arg0_",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_h"],localVars:[]},post:{body:"return this_h",args:[],thisVars:["this_h"],localVars:[]}}),r.inf=i({args:["array"],pre:{body:"this_h=Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_i","this_v"],localVars:["_inline_1_k"]},post:{body:"{return this_i}",args:[],thisVars:["this_i"],localVars:[]}}),r.random=n({args:["array"],pre:{args:[],body:"this_f=Math.random",thisVars:["this_f"]},body:{args:["a"],body:"a=this_f()",thisVars:["this_f"]},funcName:"random"}),r.assign=n({args:["array","array"],body:{args:["a","b"],body:"a=b"},funcName:"assign"}),r.assigns=n({args:["array","scalar"],body:{args:["a","b"],body:"a=b"},funcName:"assigns"}),r.equals=i({args:["array","array"],pre:o,body:{args:[{name:"x",lvalue:!1,rvalue:!0,count:1},{name:"y",lvalue:!1,rvalue:!0,count:1}],body:"if(x!==y){return false}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return true"},funcName:"equals"})},{"cwise-compiler":4}],4:[function(t,e,r){"use strict";function a(){this.argTypes=[],this.shimArgs=[],this.arrayArgs=[],this.scalarArgs=[],this.offsetArgs=[],this.offsetArgIndex=[],this.indexArgs=[],this.shapeArgs=[],this.funcName="",this.pre=null,this.body=null,this.post=null,this.debug=!1}function s(t){var e=new a;e.pre=t.pre,e.body=t.body,e.post=t.post;var r=t.args.slice(0);e.argTypes=r;for(var s=0;s0)throw new Error("cwise: pre() block may not reference array args");if(s0)throw new Error("cwise: post() block may not reference array args")}else if("scalar"===i)e.scalarArgs.push(s),e.shimArgs.push("scalar"+s);else if("index"===i){if(e.indexArgs.push(s),s0)throw new Error("cwise: pre() block may not reference array index");if(s0)throw new Error("cwise: post() block may not reference array index")}else if("shape"===i){if(e.shapeArgs.push(s),sr.length)throw new Error("cwise: Too many arguments in pre() block");if(e.body.args.length>r.length)throw new Error("cwise: Too many arguments in body() block");if(e.post.args.length>r.length)throw new Error("cwise: Too many arguments in post() block");return e.debug=!!t.printCode||!!t.debug,e.funcName=t.funcName||"cwise",e.blockSize=t.blockSize||64,n(e)}var n=t("./lib/thunk.js");e.exports=s},{"./lib/thunk.js":6}],5:[function(t,e,r){"use strict";function a(t,e,r){var a,s,n=t.length,i=e.arrayArgs.length,o=e.indexArgs.length>0,h=[],u=[],l=0,f=0;for(a=0;a=0;--a)l=t[a],h.push(["for(i",a,"=0;i",a,"0&&h.push(["index[",f,"]-=s",f].join("")),h.push(["++index[",l,"]"].join(""))),h.push("}")}return h.join("\n")}function s(t,e,r,s){for(var n=e.length,i=r.arrayArgs.length,o=r.blockSize,h=r.indexArgs.length>0,u=[],l=0;l0;){"].join("")),u.push(["if(j",l,"<",o,"){"].join("")),u.push(["s",e[l],"=j",l].join("")),u.push(["j",l,"=0"].join("")),u.push(["}else{s",e[l],"=",o].join("")),u.push(["j",l,"-=",o,"}"].join("")),h&&u.push(["index[",e[l],"]=j",l].join(""));for(var l=0;l0&&(r=r&&e[a]===e[a-1])}return r?e[0]:e.join("")}function h(t,e){for(var r=0|e[1].length,h=new Array(t.arrayArgs.length),l=new Array(t.arrayArgs.length),f=["SS"],c=["'use strict'"],p=[],d=0;d0&&p.push("shape=SS.slice(0)"),t.indexArgs.length>0){for(var g=new Array(r),y=0;y3&&c.push(i(t.pre,t,l));var m=i(t.body,t,l),w=n(h);w3&&c.push(i(t.post,t,l)),t.debug&&console.log("Generated cwise routine for ",e,":\n\n",c.join("\n"));var S=[t.funcName||"unnamed","_cwise_loop_",h[0].join("s"),"m",w,o(l)].join(""),A=new Function(["function ",S,"(",f.join(","),"){",c.join("\n"),"} return ",S].join(""));return A()}var u=t("uniq");e.exports=h},{uniq:7}],6:[function(t,e,r){"use strict";function a(t){var e=["'use strict'","var CACHED={}"],r=[],a=t.funcName+"_cwise_thunk";e.push(["return function ",a,"(",t.shimArgs.join(","),"){"].join(""));for(var n=[],i=[],o=[["array",t.arrayArgs[0],".shape"].join("")],h=0;h0)return s(0|t,e);break;case"object":if("number"==typeof t.length)return a(t,e,0)}return[]}e.exports=n},{}],9:[function(t,e,r){(function(e,a){"use strict";function s(t){if(t){var e=t.length||t.byteLength,r=_.log2(e);S[r].push(t)}}function n(t){s(t.buffer)}function i(t){var t=_.nextPow2(t),e=_.log2(t),r=S[e];return r.length>0?r.pop():new ArrayBuffer(t)}function o(t){return new Uint8Array(i(t),0,t)}function h(t){return new Uint16Array(i(2*t),0,t)}function u(t){return new Uint32Array(i(4*t),0,t)}function l(t){return new Int8Array(i(t),0,t)}function f(t){return new Int16Array(i(2*t),0,t)}function c(t){return new Int32Array(i(4*t),0,t)}function p(t){return new Float32Array(i(4*t),0,t)}function d(t){return new Float64Array(i(8*t),0,t)}function y(t){return m?new Uint8ClampedArray(i(t),0,t):o(t)}function g(t){return new DataView(i(t),0,t)}function b(t){t=_.nextPow2(t);var e=_.log2(t),r=A[e];return r.length>0?r.pop():new a(t)}var _=t("bit-twiddle"),v=t("dup");e.__TYPEDARRAY_POOL||(e.__TYPEDARRAY_POOL={UINT8:v([32,0]),UINT16:v([32,0]),UINT32:v([32,0]),INT8:v([32,0]),INT16:v([32,0]),INT32:v([32,0]),FLOAT:v([32,0]),DOUBLE:v([32,0]),DATA:v([32,0]),UINT8C:v([32,0]),BUFFER:v([32,0])});var m="undefined"!=typeof Uint8ClampedArray,w=e.__TYPEDARRAY_POOL;w.UINT8C||(w.UINT8C=v([32,0])),w.BUFFER||(w.BUFFER=v([32,0]));var S=w.DATA,A=w.BUFFER;r.free=function(t){if(a.isBuffer(t))A[_.log2(t.length)].push(t);else{if("[object ArrayBuffer]"!==Object.prototype.toString.call(t)&&(t=t.buffer),!t)return;var e=t.length||t.byteLength,r=0|_.log2(e);S[r].push(t)}},r.freeUint8=r.freeUint16=r.freeUint32=r.freeInt8=r.freeInt16=r.freeInt32=r.freeFloat32=r.freeFloat=r.freeFloat64=r.freeDouble=r.freeUint8Clamped=r.freeDataView=n,r.freeArrayBuffer=s,r.freeBuffer=function(t){A[_.log2(t.length)].push(t)},r.malloc=function(t,e){if(void 0===e||"arraybuffer"===e)return i(t);switch(e){case"uint8":return o(t);case"uint16":return h(t);case"uint32":return u(t);case"int8":return l(t);case"int16":return f(t);case"int32":return c(t);case"float":case"float32":return p(t);case"double":case"float64":return d(t);case"uint8_clamped":return y(t);case"buffer":return b(t);case"data":case"dataview":return g(t);default:return null}return null},r.mallocArrayBuffer=i,r.mallocUint8=o,r.mallocUint16=h,r.mallocUint32=u,r.mallocInt8=l,r.mallocInt16=f,r.mallocInt32=c,r.mallocFloat32=r.mallocFloat=p,r.mallocFloat64=r.mallocDouble=d,r.mallocUint8Clamped=y,r.mallocDataView=g,r.mallocBuffer=b,r.clearCache=function(){for(var t=0;t<32;++t)w.UINT8[t].length=0,w.UINT16[t].length=0,w.UINT32[t].length=0,w.INT8[t].length=0,w.INT16[t].length=0,w.INT32[t].length=0,w.FLOAT[t].length=0,w.DOUBLE[t].length=0,w.UINT8C[t].length=0,S[t].length=0,A[t].length=0}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer)},{"bit-twiddle":2,buffer:11,dup:8}],10:[function(t,e,r){"use strict";function a(t){for(var e=new Array(t),r=0;rU)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+U.toString(16)+" bytes");s<0?s=0:s>>>=0,a.TYPED_ARRAY_SUPPORT?r=a._augment(new Uint8Array(s)):(r.length=s,r._isBuffer=!0);var i;if(a.TYPED_ARRAY_SUPPORT&&"number"==typeof t.byteLength)r._set(t);else if(E(t))if(a.isBuffer(t))for(i=0;i0&&s<=a.poolSize&&(r.parent=j),r}function s(t,e){if(!(this instanceof s))return new s(t,e);var r=new a(t,e);return delete r.parent,r}function n(t,e,r,a){r=Number(r)||0;var s=t.length-r;a?(a=Number(a),a>s&&(a=s)):a=s;var n=e.length;if(n%2!==0)throw new Error("Invalid hex string");a>n/2&&(a=n/2);for(var i=0;ia)&&(r=a);for(var s="",n=e;nr)throw new RangeError("Trying to access beyond buffer length")}function _(t,e,r,s,n,i){if(!a.isBuffer(t))throw new TypeError("buffer must be a Buffer instance");if(e>n||et.length)throw new RangeError("index out of range")}function v(t,e,r,a){e<0&&(e=65535+e+1);for(var s=0,n=Math.min(t.length-r,2);s>>8*(a?s:1-s)}function m(t,e,r,a){e<0&&(e=4294967295+e+1);for(var s=0,n=Math.min(t.length-r,4);s>>8*(a?s:3-s)&255}function w(t,e,r,a,s,n){if(e>s||et.length)throw new RangeError("index out of range");if(r<0)throw new RangeError("index out of range")}function S(t,e,r,a,s){return s||w(t,e,r,4,3.4028234663852886e38,-3.4028234663852886e38),N.write(t,e,r,a,23,4),r+4}function A(t,e,r,a,s){return s||w(t,e,r,8,1.7976931348623157e308,-1.7976931348623157e308),N.write(t,e,r,a,52,8),r+8}function P(t){if(t=I(t).replace(k,""),t.length<2)return"";for(;t.length%4!==0;)t+="=";return t}function I(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function E(t){return V(t)||a.isBuffer(t)||t&&"object"==typeof t&&"number"==typeof t.length}function T(t){return t<16?"0"+t.toString(16):t.toString(16)}function F(t,e){e=e||1/0;for(var r,a=t.length,s=null,n=[],i=0;i55295&&r<57344){if(!s){if(r>56319){(e-=3)>-1&&n.push(239,191,189);continue}if(i+1===a){(e-=3)>-1&&n.push(239,191,189);continue}s=r;continue}if(r<56320){(e-=3)>-1&&n.push(239,191,189),s=r;continue}r=s-55296<<10|r-56320|65536,s=null}else s&&((e-=3)>-1&&n.push(239,191,189),s=null);if(r<128){if((e-=1)<0)break;n.push(r)}else if(r<2048){if((e-=2)<0)break;n.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;n.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<2097152))throw new Error("Invalid code point");if((e-=4)<0)break;n.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return n}function M(t){for(var e=[],r=0;r>8,s=r%256,n.push(s),n.push(a);return n}function R(t){return O.toByteArray(P(t))}function L(t,e,r,a){for(var s=0;s=e.length||s>=t.length);s++)e[s+r]=t[s];return s}function B(t){try{return decodeURIComponent(t)}catch(t){return String.fromCharCode(65533)}}var O=t("base64-js"),N=t("ieee754"),V=t("is-array");r.Buffer=a,r.SlowBuffer=s,r.INSPECT_MAX_BYTES=50,a.poolSize=8192;var U=1073741823,j={};a.TYPED_ARRAY_SUPPORT=function(){try{var t=new ArrayBuffer(0),e=new Uint8Array(t);return e.foo=function(){return 42},42===e.foo()&&"function"==typeof e.subarray&&0===new Uint8Array(1).subarray(1,1).byteLength}catch(t){return!1}}(),a.isBuffer=function(t){return!(null==t||!t._isBuffer)},a.compare=function(t,e){if(!a.isBuffer(t)||!a.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var r=t.length,s=e.length,n=0,i=Math.min(r,s);n>>1;break;case"utf8":case"utf-8":r=F(t).length;break;case"base64":r=R(t).length;break;default:r=t.length}return r},a.prototype.length=void 0,a.prototype.parent=void 0,a.prototype.toString=function(t,e,r){var a=!1;if(e>>>=0,r=void 0===r||r===1/0?this.length:r>>>0,t||(t="utf8"),e<0&&(e=0),r>this.length&&(r=this.length),r<=e)return"";for(;;)switch(t){case"hex":return y(this,e,r);case"utf8":case"utf-8":return c(this,e,r);case"ascii":return p(this,e,r);case"binary":return d(this,e,r);case"base64":return f(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return g(this,e,r);default:if(a)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),a=!0}},a.prototype.equals=function(t){if(!a.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===a.compare(this,t)},a.prototype.inspect=function(){var t="",e=r.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,e).match(/.{2}/g).join(" "),this.length>e&&(t+=" ... ")),""},a.prototype.compare=function(t){if(!a.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t?0:a.compare(this,t)},a.prototype.indexOf=function(t,e){function r(t,e,r){for(var a=-1,s=0;r+s2147483647?e=2147483647:e<-2147483648&&(e=-2147483648),e>>=0,0===this.length)return-1;if(e>=this.length)return-1;if(e<0&&(e=Math.max(this.length+e,0)),"string"==typeof t)return 0===t.length?-1:String.prototype.indexOf.call(this,t,e);if(a.isBuffer(t))return r(this,t,e);if("number"==typeof t)return a.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,t,e):r(this,[t],e);throw new TypeError("val must be string, number or Buffer")},a.prototype.get=function(t){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(t)},a.prototype.set=function(t,e){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(t,e)},a.prototype.write=function(t,e,r,a){if(isFinite(e))isFinite(r)||(a=r,r=void 0);else{var s=a;a=e,e=r,r=s}if(e=Number(e)||0,r<0||e<0||e>this.length)throw new RangeError("attempt to write outside buffer bounds");var f=this.length-e;r?(r=Number(r),r>f&&(r=f)):r=f,a=String(a||"utf8").toLowerCase();var c;switch(a){case"hex":c=n(this,t,e,r);break;case"utf8":case"utf-8":c=i(this,t,e,r);break;case"ascii":c=o(this,t,e,r);break;case"binary":c=h(this,t,e,r);break;case"base64":c=u(this,t,e,r);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":c=l(this,t,e,r);break;default:throw new TypeError("Unknown encoding: "+a)}return c},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},a.prototype.slice=function(t,e){var r=this.length;t=~~t,e=void 0===e?r:~~e,t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),e<0?(e+=r,e<0&&(e=0)):e>r&&(e=r),e>>=0,e>>>=0,r||b(t,e,this.length);for(var a=this[t],s=1,n=0;++n>>=0,e>>>=0,r||b(t,e,this.length);for(var a=this[t+--e],s=1;e>0&&(s*=256);)a+=this[t+--e]*s;return a},a.prototype.readUInt8=function(t,e){return e||b(t,1,this.length),this[t]},a.prototype.readUInt16LE=function(t,e){return e||b(t,2,this.length),this[t]|this[t+1]<<8},a.prototype.readUInt16BE=function(t,e){return e||b(t,2,this.length),this[t]<<8|this[t+1]},a.prototype.readUInt32LE=function(t,e){return e||b(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},a.prototype.readUInt32BE=function(t,e){return e||b(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},a.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||b(t,e,this.length);for(var a=this[t],s=1,n=0;++n=s&&(a-=Math.pow(2,8*e)),a},a.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||b(t,e,this.length);for(var a=e,s=1,n=this[t+--a];a>0&&(s*=256);)n+=this[t+--a]*s;return s*=128,n>=s&&(n-=Math.pow(2,8*e)),n},a.prototype.readInt8=function(t,e){return e||b(t,1,this.length),128&this[t]?(255-this[t]+1)*-1:this[t]},a.prototype.readInt16LE=function(t,e){e||b(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt16BE=function(t,e){e||b(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt32LE=function(t,e){return e||b(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},a.prototype.readInt32BE=function(t,e){return e||b(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},a.prototype.readFloatLE=function(t,e){return e||b(t,4,this.length),N.read(this,t,!0,23,4)},a.prototype.readFloatBE=function(t,e){return e||b(t,4,this.length),N.read(this,t,!1,23,4)},a.prototype.readDoubleLE=function(t,e){return e||b(t,8,this.length),N.read(this,t,!0,52,8)},a.prototype.readDoubleBE=function(t,e){return e||b(t,8,this.length),N.read(this,t,!1,52,8)},a.prototype.writeUIntLE=function(t,e,r,a){t=+t,e>>>=0,r>>>=0,a||_(this,t,e,r,Math.pow(2,8*r),0);var s=1,n=0;for(this[e]=255&t;++n>>0&255;return e+r},a.prototype.writeUIntBE=function(t,e,r,a){t=+t,e>>>=0,r>>>=0,a||_(this,t,e,r,Math.pow(2,8*r),0);var s=r-1,n=1;for(this[e+s]=255&t;--s>=0&&(n*=256);)this[e+s]=t/n>>>0&255;return e+r},a.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||_(this,t,e,1,255,0),a.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=t,e+1},a.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||_(this,t,e,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[e]=t,this[e+1]=t>>>8):v(this,t,e,!0),e+2},a.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||_(this,t,e,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=t):v(this,t,e,!1),e+2},a.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||_(this,t,e,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=t):m(this,t,e,!0),e+4},a.prototype.writeUInt32BE=function(t,e,r){ -return t=+t,e>>>=0,r||_(this,t,e,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=t):m(this,t,e,!1),e+4},a.prototype.writeIntLE=function(t,e,r,a){t=+t,e>>>=0,a||_(this,t,e,r,Math.pow(2,8*r-1)-1,-Math.pow(2,8*r-1));var s=0,n=1,i=t<0?1:0;for(this[e]=255&t;++s>0)-i&255;return e+r},a.prototype.writeIntBE=function(t,e,r,a){t=+t,e>>>=0,a||_(this,t,e,r,Math.pow(2,8*r-1)-1,-Math.pow(2,8*r-1));var s=r-1,n=1,i=t<0?1:0;for(this[e+s]=255&t;--s>=0&&(n*=256);)this[e+s]=(t/n>>0)-i&255;return e+r},a.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||_(this,t,e,1,127,-128),a.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=t,e+1},a.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||_(this,t,e,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[e]=t,this[e+1]=t>>>8):v(this,t,e,!0),e+2},a.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||_(this,t,e,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=t):v(this,t,e,!1),e+2},a.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||_(this,t,e,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[e]=t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):m(this,t,e,!0),e+4},a.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||_(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=t):m(this,t,e,!1),e+4},a.prototype.writeFloatLE=function(t,e,r){return S(this,t,e,!0,r)},a.prototype.writeFloatBE=function(t,e,r){return S(this,t,e,!1,r)},a.prototype.writeDoubleLE=function(t,e,r){return A(this,t,e,!0,r)},a.prototype.writeDoubleBE=function(t,e,r){return A(this,t,e,!1,r)},a.prototype.copy=function(t,e,r,s){if(r||(r=0),s||0===s||(s=this.length),e>=t.length&&(e=t.length),e||(e=0),s>0&&s=this.length)throw new RangeError("sourceStart out of bounds");if(s<0)throw new RangeError("sourceEnd out of bounds");s>this.length&&(s=this.length),t.length-e=this.length)throw new RangeError("start out of bounds");if(r<0||r>this.length)throw new RangeError("end out of bounds");var a;if("number"==typeof t)for(a=e;a0)throw new Error("Invalid string. Length must be a multiple of 4");var l=t.length;h="="===t.charAt(l-2)?2:"="===t.charAt(l-1)?1:0,u=new n(3*t.length/4-h),i=h>0?t.length-4:t.length;var f=0;for(a=0,s=0;a>16),r((65280&o)>>8),r(255&o);return 2===h?(o=e(t.charAt(a))<<2|e(t.charAt(a+1))>>4,r(255&o)):1===h&&(o=e(t.charAt(a))<<10|e(t.charAt(a+1))<<4|e(t.charAt(a+2))>>2,r(o>>8&255),r(255&o)),u}function s(t){function e(t){return a.charAt(t)}function r(t){return e(t>>18&63)+e(t>>12&63)+e(t>>6&63)+e(63&t)}var s,n,i,o=t.length%3,h="";for(s=0,i=t.length-o;s>2),h+=e(n<<4&63),h+="==";break;case 2:n=(t[t.length-2]<<8)+t[t.length-1],h+=e(n>>10),h+=e(n>>4&63),h+=e(n<<2&63),h+="="}return h}var n="undefined"!=typeof Uint8Array?Uint8Array:Array,i="+".charCodeAt(0),o="/".charCodeAt(0),h="0".charCodeAt(0),u="a".charCodeAt(0),l="A".charCodeAt(0),f="-".charCodeAt(0),c="_".charCodeAt(0);t.toByteArray=r,t.fromByteArray=s}("undefined"==typeof r?this.base64js={}:r)},{}],13:[function(t,e,r){r.read=function(t,e,r,a,s){var n,i,o=8*s-a-1,h=(1<>1,l=-7,f=r?s-1:0,c=r?-1:1,p=t[e+f];for(f+=c,n=p&(1<<-l)-1,p>>=-l,l+=o;l>0;n=256*n+t[e+f],f+=c,l-=8);for(i=n&(1<<-l)-1,n>>=-l,l+=a;l>0;i=256*i+t[e+f],f+=c,l-=8);if(0===n)n=1-u;else{if(n===h)return i?NaN:(p?-1:1)*(1/0);i+=Math.pow(2,a),n-=u}return(p?-1:1)*i*Math.pow(2,n-a)},r.write=function(t,e,r,a,s,n){var i,o,h,u=8*n-s-1,l=(1<>1,c=23===s?Math.pow(2,-24)-Math.pow(2,-77):0,p=a?0:n-1,d=a?1:-1,y=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,i=l):(i=Math.floor(Math.log(e)/Math.LN2),e*(h=Math.pow(2,-i))<1&&(i--,h*=2),e+=i+f>=1?c/h:c*Math.pow(2,1-f),e*h>=2&&(i++,h/=2),i+f>=l?(o=0,i=l):i+f>=1?(o=(e*h-1)*Math.pow(2,s),i+=f):(o=e*Math.pow(2,f-1)*Math.pow(2,s),i=0));s>=8;t[r+p]=255&o,p+=d,o/=256,s-=8);for(i=i<0;t[r+p]=255&i,p+=d,i/=256,u-=8);t[r+p-d]|=128*y}},{}],14:[function(t,e,r){var a=Array.isArray,s=Object.prototype.toString;e.exports=a||function(t){return!!t&&"[object Array]"==s.call(t)}},{}],"ndarray-fft":[function(t,e,r){"use strict";function a(t,e,r){var a,h,u=e.shape,l=u.length,f=1,c=new Array(l),p=0;for(a=l-1;a>=0;--a)if(c[a]=f,f*=u[a],p=Math.max(p,o.scratchMemory(u[a])),e.shape[a]!==r.shape[a])throw new Error("Shape mismatch, real and imaginary arrays must have same size");var d,y=4*f+p;d="array"===e.dtype||"float64"===e.dtype||"custom"===e.dtype?i.mallocDouble(y):i.mallocFloat(y);var g,b,_,v,m=n(d,u.slice(0),c,0),w=n(d,u.slice(0),c.slice(0),f),S=n(d,u.slice(0),c.slice(0),2*f),A=n(d,u.slice(0),c.slice(0),3*f),P=4*f;for(s.assign(m,e),s.assign(w,r),a=l-1;a>=0&&(o(t,f/u[a],u[a],d,m.offset,w.offset,P),0!==a);--a){for(b=1,_=S.stride,v=A.stride,h=a-1;h=0;--h)v[h]=_[h]=b,b*=u[h];s.assign(S,m),s.assign(A,w),g=m,m=S,S=g,g=w,w=A,A=g}s.assign(e,m),s.assign(r,w),i.free(d)}var s=t("ndarray-ops"),n=t("ndarray"),i=t("typedarray-pool"),o=t("./lib/fft-matrix.js");e.exports=a},{"./lib/fft-matrix.js":1,ndarray:"ndarray","ndarray-ops":3,"typedarray-pool":9}],ndarray:[function(t,e,r){(function(r){function a(t,e){return t[0]-e[0]}function s(){var t,e=this.stride,r=new Array(e.length);for(t=0;tMath.abs(this.stride[1]))?[1,0]:[0,1]}})"):3===e&&n.push("var s0=Math.abs(this.stride[0]),s1=Math.abs(this.stride[1]),s2=Math.abs(this.stride[2]);if(s0>s1){if(s1>s2){return [2,1,0];}else if(s0>s2){return [1,2,0];}else{return [1,0,2];}}else if(s0>s2){return [2,0,1];}else if(s2>s1){return [0,1,2];}else{return [0,2,1];}}})")):n.push("ORDER})")),n.push("proto.set=function "+r+"_set("+u.join(",")+",v){"),a?n.push("return this.data.set("+l+",v)}"):n.push("return this.data["+l+"]=v}"),n.push("proto.get=function "+r+"_get("+u.join(",")+"){"),a?n.push("return this.data.get("+l+")}"):n.push("return this.data["+l+"]}"),n.push("proto.index=function "+r+"_index(",u.join(),"){return "+l+"}"),n.push("proto.hi=function "+r+"_hi("+u.join(",")+"){return new "+r+"(this.data,"+o.map(function(t){return["(typeof i",t,"!=='number'||i",t,"<0)?this.shape[",t,"]:i",t,"|0"].join("")}).join(",")+","+o.map(function(t){return"this.stride["+t+"]"}).join(",")+",this.offset)}");var d=o.map(function(t){return"a"+t+"=this.shape["+t+"]"}),y=o.map(function(t){return"c"+t+"=this.stride["+t+"]"});n.push("proto.lo=function "+r+"_lo("+u.join(",")+"){var b=this.offset,d=0,"+d.join(",")+","+y.join(","));for(var g=0;g=0){d=i"+g+"|0;b+=c"+g+"*d;a"+g+"-=d}");n.push("return new "+r+"(this.data,"+o.map(function(t){return"a"+t}).join(",")+","+o.map(function(t){return"c"+t}).join(",")+",b)}"),n.push("proto.step=function "+r+"_step("+u.join(",")+"){var "+o.map(function(t){return"a"+t+"=this.shape["+t+"]"}).join(",")+","+o.map(function(t){return"b"+t+"=this.stride["+t+"]"}).join(",")+",c=this.offset,d=0,ceil=Math.ceil");for(var g=0;g=0){c=(c+this.stride["+g+"]*i"+g+")|0}else{a.push(this.shape["+g+"]);b.push(this.stride["+g+"])}");n.push("var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}"),n.push("return function construct_"+r+"(data,shape,stride,offset){return new "+r+"(data,"+o.map(function(t){return"shape["+t+"]"}).join(",")+","+o.map(function(t){return"stride["+t+"]"}).join(",")+",offset)}");var i=new Function("CTOR_LIST","ORDER",n.join("\n"));return i(f[t],s)}function i(t){if(l&&r.isBuffer(t))return"buffer";if(u)switch(Object.prototype.toString.call(t)){case"[object Float64Array]":return"float64";case"[object Float32Array]":return"float32";case"[object Int8Array]":return"int8";case"[object Int16Array]":return"int16";case"[object Int32Array]":return"int32";case"[object Uint8Array]":return"uint8";case"[object Uint16Array]":return"uint16";case"[object Uint32Array]":return"uint32";case"[object Uint8ClampedArray]":return"uint8_clamped"}return Array.isArray(t)?"array":"generic"}function o(t,e,r,a){if(void 0===t){var s=f.array[0];return s([])}"number"==typeof t&&(t=[t]),void 0===e&&(e=[t.length]);var o=e.length;if(void 0===r){r=new Array(o);for(var h=o-1,u=1;h>=0;--h)r[h]=u,u*=e[h]}if(void 0===a){a=0;for(var h=0;h>>2,s=new Float32Array(2*e),n=new Float32Array(e),i=new Float32Array(e),o=0,h=t,u=ndarray(n),l=ndarray(i);return function(t){var f,c,p,d=e,y=h,g=s,b=n,_=i;for(g.set(t,o),o+=d,c=0;c+d<=o;c+=a){for(f=0;f>>2,s=new Float32Array(2*t),n=s.subarray(0,t),i=0,o=0,h=e,u=ndarray(h),l=ndarray(h);return function(e,f){var c,p,d,y=t,g=h,b=s;for(u.data=e,l.data=f,ndarray_fft(-1,u,l),d=o,c=0,p=i;p=y;){for(r(n),c=0,p=y;c-1},_frequencyFromNoteNumber=function(t){return 440*Math.pow(2,(t-69)/12)},_getNoteTime=function(t,e){return 1/e*(60/t)},_lZeroPad=function(t,e,r){for(t=""+t;t.length2*i&&postMessage("Conversion failed, there is "+n+" samples to process for a window length (* 2) of "+2*i+", please use different settings."),_stereo&&(A/=2),STFT.initializeForwardWindow(i,o),r=STFT.forward(i,function(t,e){if(g.push({r:t,i:e}),g.length===h){var r,a,s,n,i,o,u=0,l=0,f=0,d=[],y=[];for(l=0;lthis.peak&&(this.peakBand=u,this.peak=a),s[u]=a}}function DFT(t,e){FourierTransform.call(this,t,e);var r=t/2*t,a=2*Math.PI;this.sinTable=new Float32Array(r),this.cosTable=new Float32Array(r);for(var s=0;s>1;a>=1}for(this.sinTable=new Float32Array(t),this.cosTable=new Float32Array(t),r=0;r>>1,n=a-1,i=1,o=0;t[0]=e[0];do{for(o+=s,t[i]=e[o],t[o]=e[i],i++,r=s<<1;r>>=1,!((o^=r)&r););o>=i&&(t[i]=e[o],t[o]=e[i],t[n-i]=e[n-o],t[n-o]=e[n-i]),i++}while(i>>1,a=e-1,s=1,n=0;this.reverseTable[0]=0;do{for(n+=r,this.reverseTable[s]=n,this.reverseTable[n]=s,s++,t=r<<1;t>>=1,!((n^=t)&t););n>=s&&(this.reverseTable[s]=n,this.reverseTable[n]=s,this.reverseTable[a-s]=a-n,this.reverseTable[a-n]=a-s),s++}while(sthis.filters.length-1)throw"The band index of the graphical equalizer is out of bounds.";if(!e)throw"A gain must be passed.";this.filters[t].setDbGain(e),this.recalculateFreqz(t)},this.recalculateFreqz=function(t){if(this.calculateFreqzs){if(t<0||t>this.filters.length-1)throw"The band index of the graphical equalizer is out of bounds. "+t+" is out of [0, "+this.filters.length-1+"]";if(!this.w){this.w=Float32Array(400);for(var e=0;ee?Math.abs(t[r]):e;return e},DFT.prototype.forward=function(t){for(var e,r,a=this.real,s=this.imag,n=0;n>>1,B=2/T;this.reverseBinPermute(M,t);for(var O=0,N=4;O>>1;s>>>=1;){O=0,e<<=1,N=e<<1,r=e>>>2,a=e>>>3;do{if(1!==r)for(V=O;Vthis.peak&&(this.peakBand=L,this.peak=E),F[L]=E;return F[0]=B*M[0],F},Sampler.prototype.applyEnvelope=function(){return this.envelope.process(this.signal),this.signal},Sampler.prototype.generate=function(){for(var t=(this.frameCount*this.bufferSize,this.playEnd*this.samples.length-this.playStart*this.samples.length),e=this.playStart*this.samples.length,r=this.playEnd*this.samples.length,a=0;a=0&&t<=1))throw"Amplitude out of range (0..1).";this.amplitude=t},Oscillator.prototype.setFreq=function(t){this.frequency=t,this.cyclesPerSample=t/this.sampleRate},Oscillator.prototype.add=function(t){for(var e=0;e=this.bufferSize);e++)this.signal[e]+=t[e];return this.signal},Oscillator.prototype.addEnvelope=function(t){this.envelope=t},Oscillator.prototype.applyEnvelope=function(){this.envelope.process(this.signal)},Oscillator.prototype.valueAt=function(t){return this.waveTable[t%this.waveTableLength]},Oscillator.prototype.generate=function(){for(var t,e=this.frameCount*this.bufferSize,r=this.waveTableLength*this.frequency/this.sampleRate,a=0;athis.attack&&this.samplesProcessed<=this.decay?e=1+(this.sustainLevel-1)*((this.samplesProcessed-this.attack)/(this.decay-this.attack)):this.samplesProcessed>this.decay&&this.samplesProcessed<=this.sustain?e=this.sustainLevel:this.samplesProcessed>this.sustain&&this.samplesProcessed<=this.release&&(e=this.sustainLevel+(0-this.sustainLevel)*((this.samplesProcessed-this.sustain)/(this.release-this.sustain))),t*e},ADSR.prototype.value=function(){var t=0;return this.samplesProcessed<=this.attack?t=0+1*((this.samplesProcessed-0)/(this.attack-0)):this.samplesProcessed>this.attack&&this.samplesProcessed<=this.decay?t=1+(this.sustainLevel-1)*((this.samplesProcessed-this.attack)/(this.decay-this.attack)):this.samplesProcessed>this.decay&&this.samplesProcessed<=this.sustain?t=this.sustainLevel:this.samplesProcessed>this.sustain&&this.samplesProcessed<=this.release&&(t=this.sustainLevel+(0-this.sustainLevel)*((this.samplesProcessed-this.sustain)/(this.release-this.sustain))),t},ADSR.prototype.process=function(t){for(var e=0;ethis.release||this.samplesProcessed===-1)},ADSR.prototype.disable=function(){this.samplesProcessed=-1},IIRFilter.prototype.__defineGetter__("cutoff",function(){return this.func.cutoff}),IIRFilter.prototype.__defineGetter__("resonance",function(){return this.func.resonance}),IIRFilter.prototype.set=function(t,e){this.func.calcCoeff(t,e)},IIRFilter.prototype.process=function(t){this.func.process(t)},IIRFilter.prototype.addEnvelope=function(t){if(!(t instanceof ADSR))throw"Not an envelope.";this.func.addEnvelope(t)},IIRFilter.LP12=function(t,e,r){this.sampleRate=r,this.vibraPos=0,this.vibraSpeed=0,this.envelope=!1,this.calcCoeff=function(t,e){this.w=2*Math.PI*t/this.sampleRate,this.q=1-this.w/(2*(e+.5/(1+this.w))+this.w-2),this.r=this.q*this.q,this.c=this.r+1-2*Math.cos(this.w)*this.q,this.cutoff=t,this.resonance=e},this.calcCoeff(t,e),this.process=function(t){for(var e=0;e=this.delayBufferSamples.length-1&&(this.delayInputPointer=this.delayInputPointer-this.delayBufferSamples.length)},MultiDelay.prototype.setMasterVolume=function(t){this.masterVolume=t},MultiDelay.prototype.setDelayVolume=function(t){this.delayVolume=t},MultiDelay.prototype.process=function(t){for(var e=new Float32Array(t.length),r=0;r=this.delayBufferSamples.length-1&&(this.delayInputPointer=0),this.delayOutputPointer++,this.delayOutputPointer>=this.delayBufferSamples.length-1&&(this.delayOutputPointer=0)}return e},SingleDelay.prototype.setDelayInSamples=function(t){this.delayInSamples=t,this.delayInputPointer=this.delayOutputPointer+t,this.delayInputPointer>=this.delayBufferSamples.length-1&&(this.delayInputPointer=this.delayInputPointer-this.delayBufferSamples.length)},SingleDelay.prototype.setDelayVolume=function(t){this.delayVolume=t},SingleDelay.prototype.process=function(t){for(var e=new Float32Array(t.length),r=0;r=this.delayBufferSamples.length-1&&(this.delayInputPointer=0),this.delayOutputPointer++,this.delayOutputPointer>=this.delayBufferSamples.length-1&&(this.delayOutputPointer=0)}return e},Reverb.prototype.setDelayInSamples=function(t){this.delayInSamples=t;var e,r;for(e=0;e>1,l=0,h=0;h>=1;l+=f}for(g=-1,b=0,y=1,p=0;p0)-(t<0)},r.abs=function(t){var e=t>>s-1;return(t^e)-e},r.min=function(t,e){return e^(t^e)&-(t65535)<<4,t>>>=e,r=(t>255)<<3,t>>>=r,e|=r,r=(t>15)<<2,t>>>=r,e|=r,r=(t>3)<<1,t>>>=r,e|=r,e|t>>1},r.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},r.popCount=function(t){return t-=t>>>1&1431655765,t=(858993459&t)+(t>>>2&858993459),16843009*(t+(t>>>4)&252645135)>>>24},r.countTrailingZeros=a,r.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t+1},r.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t-(t>>>1)},r.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,t&=15,27030>>>t&1};var n=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,a=e,s=7;for(r>>>=1;r;r>>>=1)a<<=1,a|=1&r,--s;t[e]=a<>>8&255]<<16|n[t>>>16&255]<<8|n[t>>>24&255]},r.interleave2=function(t,e){return t&=65535,t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e&=65535,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t|e<<1},r.deinterleave2=function(t,e){return t=t>>>e&1431655765,t=858993459&(t|t>>>1),t=252645135&(t|t>>>2),t=16711935&(t|t>>>4),t=65535&(t|t>>>16),t<<16>>16},r.interleave3=function(t,e,r){return t&=1023,t=4278190335&(t|t<<16),t=251719695&(t|t<<8),t=3272356035&(t|t<<4),t=1227133513&(t|t<<2),e&=1023,e=4278190335&(e|e<<16),e=251719695&(e|e<<8),e=3272356035&(e|e<<4),e=1227133513&(e|e<<2),t|=e<<1,r&=1023,r=4278190335&(r|r<<16),r=251719695&(r|r<<8),r=3272356035&(r|r<<4),r=1227133513&(r|r<<2),t|r<<2},r.deinterleave3=function(t,e){return t=t>>>e&1227133513,t=3272356035&(t|t>>>2),t=251719695&(t|t>>>4),t=4278190335&(t|t>>>8),t=1023&(t|t>>>16),t<<22>>22},r.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>a(t)+1}},{}],3:[function(t,e,r){"use strict";function a(t){if(!t)return o;for(var e=0;e>",rrshift:">>>"};!function(){for(var t in h){var e=h[t];r[t]=n({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+e+"c"},funcName:t}),r[t+"eq"]=n({args:["array","array"],body:{args:["a","b"],body:"a"+e+"=b"},rvalue:!0,funcName:t+"eq"}),r[t+"s"]=n({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+e+"s"},funcName:t+"s"}),r[t+"seq"]=n({args:["array","scalar"],body:{args:["a","s"],body:"a"+e+"=s"},rvalue:!0,funcName:t+"seq"})}}();var u={not:"!",bnot:"~",neg:"-",recip:"1.0/"};!function(){for(var t in u){var e=u[t];r[t]=n({args:["array","array"],body:{args:["a","b"],body:"a="+e+"b"},funcName:t}),r[t+"eq"]=n({args:["array"],body:{args:["a"],body:"a="+e+"a"},rvalue:!0,count:2,funcName:t+"eq"})}}();var l={and:"&&",or:"||",eq:"===",neq:"!==",lt:"<",gt:">",leq:"<=",geq:">="};!function(){for(var t in l){var e=l[t];r[t]=n({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+e+"c"},funcName:t}),r[t+"s"]=n({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+e+"s"},funcName:t+"s"}),r[t+"eq"]=n({args:["array","array"],body:{args:["a","b"],body:"a=a"+e+"b"},rvalue:!0,count:2,funcName:t+"eq"}),r[t+"seq"]=n({args:["array","scalar"],body:{args:["a","s"],body:"a=a"+e+"s"},rvalue:!0,count:2,funcName:t+"seq"})}}();var f=["abs","acos","asin","atan","ceil","cos","exp","floor","log","round","sin","sqrt","tan"];!function(){for(var t=0;tthis_s){this_s=-a}else if(a>this_s){this_s=a}",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norminf"}),r.norm1=i({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:3}],body:"this_s+=a<0?-a:a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norm1"}),r.sup=i({args:["array"],pre:{body:"this_h=-Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_>this_h)this_h=_inline_1_arg0_",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_h"],localVars:[]},post:{body:"return this_h",args:[],thisVars:["this_h"],localVars:[]}}),r.inf=i({args:["array"],pre:{body:"this_h=Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_i","this_v"],localVars:["_inline_1_k"]},post:{body:"{return this_i}",args:[],thisVars:["this_i"],localVars:[]}}),r.random=n({args:["array"],pre:{args:[],body:"this_f=Math.random",thisVars:["this_f"]},body:{args:["a"],body:"a=this_f()",thisVars:["this_f"]},funcName:"random"}),r.assign=n({args:["array","array"],body:{args:["a","b"],body:"a=b"},funcName:"assign"}),r.assigns=n({args:["array","scalar"],body:{args:["a","b"],body:"a=b"},funcName:"assigns"}),r.equals=i({args:["array","array"],pre:o,body:{args:[{name:"x",lvalue:!1,rvalue:!0,count:1},{name:"y",lvalue:!1,rvalue:!0,count:1}],body:"if(x!==y){return false}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return true"},funcName:"equals"})},{"cwise-compiler":4}],4:[function(t,e,r){"use strict";function a(){this.argTypes=[],this.shimArgs=[],this.arrayArgs=[],this.scalarArgs=[],this.offsetArgs=[],this.offsetArgIndex=[],this.indexArgs=[],this.shapeArgs=[],this.funcName="",this.pre=null,this.body=null,this.post=null,this.debug=!1}function s(t){var e=new a;e.pre=t.pre,e.body=t.body,e.post=t.post;var r=t.args.slice(0);e.argTypes=r;for(var s=0;s0)throw new Error("cwise: pre() block may not reference array args");if(s0)throw new Error("cwise: post() block may not reference array args")}else if("scalar"===i)e.scalarArgs.push(s),e.shimArgs.push("scalar"+s);else if("index"===i){if(e.indexArgs.push(s),s0)throw new Error("cwise: pre() block may not reference array index");if(s0)throw new Error("cwise: post() block may not reference array index")}else if("shape"===i){if(e.shapeArgs.push(s),sr.length)throw new Error("cwise: Too many arguments in pre() block");if(e.body.args.length>r.length)throw new Error("cwise: Too many arguments in body() block");if(e.post.args.length>r.length)throw new Error("cwise: Too many arguments in post() block");return e.debug=!!t.printCode||!!t.debug,e.funcName=t.funcName||"cwise",e.blockSize=t.blockSize||64,n(e)}var n=t("./lib/thunk.js");e.exports=s},{"./lib/thunk.js":6}],5:[function(t,e,r){"use strict";function a(t,e,r){var a,s,n=t.length,i=e.arrayArgs.length,o=e.indexArgs.length>0,h=[],u=[],l=0,f=0;for(a=0;a=0;--a)l=t[a],h.push(["for(i",a,"=0;i",a,"0&&h.push(["index[",f,"]-=s",f].join("")),h.push(["++index[",l,"]"].join(""))),h.push("}")}return h.join("\n")}function s(t,e,r,s){for(var n=e.length,i=r.arrayArgs.length,o=r.blockSize,h=r.indexArgs.length>0,u=[],l=0;l0;){"].join("")),u.push(["if(j",l,"<",o,"){"].join("")),u.push(["s",e[l],"=j",l].join("")),u.push(["j",l,"=0"].join("")),u.push(["}else{s",e[l],"=",o].join("")),u.push(["j",l,"-=",o,"}"].join("")),h&&u.push(["index[",e[l],"]=j",l].join(""));for(var l=0;l0&&(r=r&&e[a]===e[a-1])}return r?e[0]:e.join("")}function h(t,e){for(var r=0|e[1].length,h=new Array(t.arrayArgs.length),l=new Array(t.arrayArgs.length),f=["SS"],c=["'use strict'"],p=[],d=0;d0&&p.push("shape=SS.slice(0)"),t.indexArgs.length>0){for(var g=new Array(r),y=0;y3&&c.push(i(t.pre,t,l));var m=i(t.body,t,l),w=n(h);w3&&c.push(i(t.post,t,l)),t.debug&&console.log("Generated cwise routine for ",e,":\n\n",c.join("\n"));var S=[t.funcName||"unnamed","_cwise_loop_",h[0].join("s"),"m",w,o(l)].join(""),A=new Function(["function ",S,"(",f.join(","),"){",c.join("\n"),"} return ",S].join(""));return A()}var u=t("uniq");e.exports=h},{uniq:7}],6:[function(t,e,r){"use strict";function a(t){var e=["'use strict'","var CACHED={}"],r=[],a=t.funcName+"_cwise_thunk";e.push(["return function ",a,"(",t.shimArgs.join(","),"){"].join(""));for(var n=[],i=[],o=[["array",t.arrayArgs[0],".shape"].join("")],h=0;h0)return s(0|t,e);break;case"object":if("number"==typeof t.length)return a(t,e,0)}return[]}e.exports=n},{}],9:[function(t,e,r){(function(e,a){"use strict";function s(t){if(t){var e=t.length||t.byteLength,r=_.log2(e);S[r].push(t)}}function n(t){s(t.buffer)}function i(t){var t=_.nextPow2(t),e=_.log2(t),r=S[e];return r.length>0?r.pop():new ArrayBuffer(t)}function o(t){return new Uint8Array(i(t),0,t)}function h(t){return new Uint16Array(i(2*t),0,t)}function u(t){return new Uint32Array(i(4*t),0,t)}function l(t){return new Int8Array(i(t),0,t)}function f(t){return new Int16Array(i(2*t),0,t)}function c(t){return new Int32Array(i(4*t),0,t)}function p(t){return new Float32Array(i(4*t),0,t)}function d(t){return new Float64Array(i(8*t),0,t)}function y(t){return m?new Uint8ClampedArray(i(t),0,t):o(t)}function g(t){return new DataView(i(t),0,t)}function b(t){t=_.nextPow2(t);var e=_.log2(t),r=A[e];return r.length>0?r.pop():new a(t)}var _=t("bit-twiddle"),v=t("dup");e.__TYPEDARRAY_POOL||(e.__TYPEDARRAY_POOL={UINT8:v([32,0]),UINT16:v([32,0]),UINT32:v([32,0]),INT8:v([32,0]),INT16:v([32,0]),INT32:v([32,0]),FLOAT:v([32,0]),DOUBLE:v([32,0]),DATA:v([32,0]),UINT8C:v([32,0]),BUFFER:v([32,0])});var m="undefined"!=typeof Uint8ClampedArray,w=e.__TYPEDARRAY_POOL;w.UINT8C||(w.UINT8C=v([32,0])),w.BUFFER||(w.BUFFER=v([32,0]));var S=w.DATA,A=w.BUFFER;r.free=function(t){if(a.isBuffer(t))A[_.log2(t.length)].push(t);else{if("[object ArrayBuffer]"!==Object.prototype.toString.call(t)&&(t=t.buffer),!t)return;var e=t.length||t.byteLength,r=0|_.log2(e);S[r].push(t)}},r.freeUint8=r.freeUint16=r.freeUint32=r.freeInt8=r.freeInt16=r.freeInt32=r.freeFloat32=r.freeFloat=r.freeFloat64=r.freeDouble=r.freeUint8Clamped=r.freeDataView=n,r.freeArrayBuffer=s,r.freeBuffer=function(t){A[_.log2(t.length)].push(t)},r.malloc=function(t,e){if(void 0===e||"arraybuffer"===e)return i(t);switch(e){case"uint8":return o(t);case"uint16":return h(t);case"uint32":return u(t);case"int8":return l(t);case"int16":return f(t);case"int32":return c(t);case"float":case"float32":return p(t);case"double":case"float64":return d(t);case"uint8_clamped":return y(t);case"buffer":return b(t);case"data":case"dataview":return g(t);default:return null}return null},r.mallocArrayBuffer=i,r.mallocUint8=o,r.mallocUint16=h,r.mallocUint32=u,r.mallocInt8=l,r.mallocInt16=f,r.mallocInt32=c,r.mallocFloat32=r.mallocFloat=p,r.mallocFloat64=r.mallocDouble=d,r.mallocUint8Clamped=y,r.mallocDataView=g,r.mallocBuffer=b,r.clearCache=function(){for(var t=0;t<32;++t)w.UINT8[t].length=0,w.UINT16[t].length=0,w.UINT32[t].length=0,w.INT8[t].length=0,w.INT16[t].length=0,w.INT32[t].length=0,w.FLOAT[t].length=0,w.DOUBLE[t].length=0,w.UINT8C[t].length=0,S[t].length=0,A[t].length=0}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer)},{"bit-twiddle":2,buffer:11,dup:8}],10:[function(t,e,r){"use strict";function a(t){for(var e=new Array(t),r=0;rj)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+j.toString(16)+" bytes");s<0?s=0:s>>>=0,a.TYPED_ARRAY_SUPPORT?r=a._augment(new Uint8Array(s)):(r.length=s,r._isBuffer=!0);var i;if(a.TYPED_ARRAY_SUPPORT&&"number"==typeof t.byteLength)r._set(t);else if(E(t))if(a.isBuffer(t))for(i=0;i0&&s<=a.poolSize&&(r.parent=U),r}function s(t,e){if(!(this instanceof s))return new s(t,e);var r=new a(t,e);return delete r.parent,r}function n(t,e,r,a){r=Number(r)||0;var s=t.length-r;a?(a=Number(a),a>s&&(a=s)):a=s;var n=e.length;if(n%2!==0)throw new Error("Invalid hex string");a>n/2&&(a=n/2);for(var i=0;ia)&&(r=a);for(var s="",n=e;nr)throw new RangeError("Trying to access beyond buffer length")}function _(t,e,r,s,n,i){if(!a.isBuffer(t))throw new TypeError("buffer must be a Buffer instance");if(e>n||et.length)throw new RangeError("index out of range")}function v(t,e,r,a){e<0&&(e=65535+e+1);for(var s=0,n=Math.min(t.length-r,2);s>>8*(a?s:1-s)}function m(t,e,r,a){e<0&&(e=4294967295+e+1);for(var s=0,n=Math.min(t.length-r,4);s>>8*(a?s:3-s)&255}function w(t,e,r,a,s,n){if(e>s||et.length)throw new RangeError("index out of range");if(r<0)throw new RangeError("index out of range")}function S(t,e,r,a,s){return s||w(t,e,r,4,3.4028234663852886e38,-3.4028234663852886e38),N.write(t,e,r,a,23,4),r+4}function A(t,e,r,a,s){return s||w(t,e,r,8,1.7976931348623157e308,-1.7976931348623157e308),N.write(t,e,r,a,52,8),r+8}function P(t){if(t=I(t).replace(k,""),t.length<2)return"";for(;t.length%4!==0;)t+="=";return t}function I(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function E(t){return V(t)||a.isBuffer(t)||t&&"object"==typeof t&&"number"==typeof t.length}function T(t){return t<16?"0"+t.toString(16):t.toString(16)}function F(t,e){e=e||1/0;for(var r,a=t.length,s=null,n=[],i=0;i55295&&r<57344){if(!s){if(r>56319){(e-=3)>-1&&n.push(239,191,189);continue}if(i+1===a){(e-=3)>-1&&n.push(239,191,189);continue}s=r;continue}if(r<56320){(e-=3)>-1&&n.push(239,191,189),s=r;continue}r=s-55296<<10|r-56320|65536,s=null}else s&&((e-=3)>-1&&n.push(239,191,189),s=null);if(r<128){if((e-=1)<0)break;n.push(r)}else if(r<2048){if((e-=2)<0)break;n.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;n.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<2097152))throw new Error("Invalid code point");if((e-=4)<0)break;n.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return n}function M(t){for(var e=[],r=0;r>8,s=r%256,n.push(s),n.push(a);return n}function R(t){return O.toByteArray(P(t))}function L(t,e,r,a){for(var s=0;s=e.length||s>=t.length);s++)e[s+r]=t[s];return s}function B(t){try{return decodeURIComponent(t)}catch(t){return String.fromCharCode(65533)}}var O=t("base64-js"),N=t("ieee754"),V=t("is-array");r.Buffer=a,r.SlowBuffer=s,r.INSPECT_MAX_BYTES=50,a.poolSize=8192;var j=1073741823,U={};a.TYPED_ARRAY_SUPPORT=function(){try{var t=new ArrayBuffer(0),e=new Uint8Array(t);return e.foo=function(){return 42},42===e.foo()&&"function"==typeof e.subarray&&0===new Uint8Array(1).subarray(1,1).byteLength}catch(t){return!1}}(),a.isBuffer=function(t){return!(null==t||!t._isBuffer)},a.compare=function(t,e){if(!a.isBuffer(t)||!a.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var r=t.length,s=e.length,n=0,i=Math.min(r,s);n>>1;break;case"utf8":case"utf-8":r=F(t).length;break;case"base64":r=R(t).length;break;default:r=t.length}return r},a.prototype.length=void 0,a.prototype.parent=void 0,a.prototype.toString=function(t,e,r){var a=!1;if(e>>>=0,r=void 0===r||r===1/0?this.length:r>>>0,t||(t="utf8"),e<0&&(e=0),r>this.length&&(r=this.length),r<=e)return"";for(;;)switch(t){case"hex":return y(this,e,r);case"utf8":case"utf-8":return c(this,e,r);case"ascii":return p(this,e,r);case"binary":return d(this,e,r);case"base64":return f(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return g(this,e,r);default:if(a)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),a=!0}},a.prototype.equals=function(t){if(!a.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===a.compare(this,t)},a.prototype.inspect=function(){var t="",e=r.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,e).match(/.{2}/g).join(" "),this.length>e&&(t+=" ... ")),""},a.prototype.compare=function(t){if(!a.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t?0:a.compare(this,t)},a.prototype.indexOf=function(t,e){function r(t,e,r){for(var a=-1,s=0;r+s2147483647?e=2147483647:e<-2147483648&&(e=-2147483648),e>>=0,0===this.length)return-1;if(e>=this.length)return-1;if(e<0&&(e=Math.max(this.length+e,0)),"string"==typeof t)return 0===t.length?-1:String.prototype.indexOf.call(this,t,e);if(a.isBuffer(t))return r(this,t,e);if("number"==typeof t)return a.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,t,e):r(this,[t],e);throw new TypeError("val must be string, number or Buffer")},a.prototype.get=function(t){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(t)},a.prototype.set=function(t,e){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(t,e)},a.prototype.write=function(t,e,r,a){if(isFinite(e))isFinite(r)||(a=r,r=void 0);else{var s=a;a=e,e=r,r=s}if(e=Number(e)||0,r<0||e<0||e>this.length)throw new RangeError("attempt to write outside buffer bounds");var f=this.length-e;r?(r=Number(r),r>f&&(r=f)):r=f,a=String(a||"utf8").toLowerCase();var c;switch(a){case"hex":c=n(this,t,e,r);break;case"utf8":case"utf-8":c=i(this,t,e,r);break;case"ascii":c=o(this,t,e,r);break;case"binary":c=h(this,t,e,r);break;case"base64":c=u(this,t,e,r);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":c=l(this,t,e,r);break;default:throw new TypeError("Unknown encoding: "+a)}return c},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},a.prototype.slice=function(t,e){var r=this.length;t=~~t,e=void 0===e?r:~~e,t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),e<0?(e+=r,e<0&&(e=0)):e>r&&(e=r),e>>=0,e>>>=0,r||b(t,e,this.length);for(var a=this[t],s=1,n=0;++n>>=0,e>>>=0,r||b(t,e,this.length);for(var a=this[t+--e],s=1;e>0&&(s*=256);)a+=this[t+--e]*s;return a},a.prototype.readUInt8=function(t,e){return e||b(t,1,this.length),this[t]},a.prototype.readUInt16LE=function(t,e){return e||b(t,2,this.length),this[t]|this[t+1]<<8},a.prototype.readUInt16BE=function(t,e){return e||b(t,2,this.length),this[t]<<8|this[t+1]},a.prototype.readUInt32LE=function(t,e){return e||b(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},a.prototype.readUInt32BE=function(t,e){return e||b(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},a.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||b(t,e,this.length);for(var a=this[t],s=1,n=0;++n=s&&(a-=Math.pow(2,8*e)),a},a.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||b(t,e,this.length);for(var a=e,s=1,n=this[t+--a];a>0&&(s*=256);)n+=this[t+--a]*s;return s*=128,n>=s&&(n-=Math.pow(2,8*e)),n},a.prototype.readInt8=function(t,e){return e||b(t,1,this.length),128&this[t]?(255-this[t]+1)*-1:this[t]},a.prototype.readInt16LE=function(t,e){e||b(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt16BE=function(t,e){e||b(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt32LE=function(t,e){return e||b(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},a.prototype.readInt32BE=function(t,e){return e||b(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},a.prototype.readFloatLE=function(t,e){return e||b(t,4,this.length),N.read(this,t,!0,23,4)},a.prototype.readFloatBE=function(t,e){return e||b(t,4,this.length),N.read(this,t,!1,23,4)},a.prototype.readDoubleLE=function(t,e){return e||b(t,8,this.length),N.read(this,t,!0,52,8)},a.prototype.readDoubleBE=function(t,e){return e||b(t,8,this.length),N.read(this,t,!1,52,8)},a.prototype.writeUIntLE=function(t,e,r,a){t=+t,e>>>=0,r>>>=0,a||_(this,t,e,r,Math.pow(2,8*r),0);var s=1,n=0;for(this[e]=255&t;++n>>0&255;return e+r},a.prototype.writeUIntBE=function(t,e,r,a){t=+t,e>>>=0,r>>>=0,a||_(this,t,e,r,Math.pow(2,8*r),0);var s=r-1,n=1;for(this[e+s]=255&t;--s>=0&&(n*=256);)this[e+s]=t/n>>>0&255;return e+r},a.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||_(this,t,e,1,255,0),a.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=t,e+1},a.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||_(this,t,e,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[e]=t,this[e+1]=t>>>8):v(this,t,e,!0),e+2},a.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||_(this,t,e,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=t):v(this,t,e,!1),e+2},a.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||_(this,t,e,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=t):m(this,t,e,!0),e+4},a.prototype.writeUInt32BE=function(t,e,r){ +return t=+t,e>>>=0,r||_(this,t,e,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=t):m(this,t,e,!1),e+4},a.prototype.writeIntLE=function(t,e,r,a){t=+t,e>>>=0,a||_(this,t,e,r,Math.pow(2,8*r-1)-1,-Math.pow(2,8*r-1));var s=0,n=1,i=t<0?1:0;for(this[e]=255&t;++s>0)-i&255;return e+r},a.prototype.writeIntBE=function(t,e,r,a){t=+t,e>>>=0,a||_(this,t,e,r,Math.pow(2,8*r-1)-1,-Math.pow(2,8*r-1));var s=r-1,n=1,i=t<0?1:0;for(this[e+s]=255&t;--s>=0&&(n*=256);)this[e+s]=(t/n>>0)-i&255;return e+r},a.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||_(this,t,e,1,127,-128),a.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=t,e+1},a.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||_(this,t,e,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[e]=t,this[e+1]=t>>>8):v(this,t,e,!0),e+2},a.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||_(this,t,e,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=t):v(this,t,e,!1),e+2},a.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||_(this,t,e,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[e]=t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):m(this,t,e,!0),e+4},a.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||_(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=t):m(this,t,e,!1),e+4},a.prototype.writeFloatLE=function(t,e,r){return S(this,t,e,!0,r)},a.prototype.writeFloatBE=function(t,e,r){return S(this,t,e,!1,r)},a.prototype.writeDoubleLE=function(t,e,r){return A(this,t,e,!0,r)},a.prototype.writeDoubleBE=function(t,e,r){return A(this,t,e,!1,r)},a.prototype.copy=function(t,e,r,s){if(r||(r=0),s||0===s||(s=this.length),e>=t.length&&(e=t.length),e||(e=0),s>0&&s=this.length)throw new RangeError("sourceStart out of bounds");if(s<0)throw new RangeError("sourceEnd out of bounds");s>this.length&&(s=this.length),t.length-e=this.length)throw new RangeError("start out of bounds");if(r<0||r>this.length)throw new RangeError("end out of bounds");var a;if("number"==typeof t)for(a=e;a0)throw new Error("Invalid string. Length must be a multiple of 4");var l=t.length;h="="===t.charAt(l-2)?2:"="===t.charAt(l-1)?1:0,u=new n(3*t.length/4-h),i=h>0?t.length-4:t.length;var f=0;for(a=0,s=0;a>16),r((65280&o)>>8),r(255&o);return 2===h?(o=e(t.charAt(a))<<2|e(t.charAt(a+1))>>4,r(255&o)):1===h&&(o=e(t.charAt(a))<<10|e(t.charAt(a+1))<<4|e(t.charAt(a+2))>>2,r(o>>8&255),r(255&o)),u}function s(t){function e(t){return a.charAt(t)}function r(t){return e(t>>18&63)+e(t>>12&63)+e(t>>6&63)+e(63&t)}var s,n,i,o=t.length%3,h="";for(s=0,i=t.length-o;s>2),h+=e(n<<4&63),h+="==";break;case 2:n=(t[t.length-2]<<8)+t[t.length-1],h+=e(n>>10),h+=e(n>>4&63),h+=e(n<<2&63),h+="="}return h}var n="undefined"!=typeof Uint8Array?Uint8Array:Array,i="+".charCodeAt(0),o="/".charCodeAt(0),h="0".charCodeAt(0),u="a".charCodeAt(0),l="A".charCodeAt(0),f="-".charCodeAt(0),c="_".charCodeAt(0);t.toByteArray=r,t.fromByteArray=s}("undefined"==typeof r?this.base64js={}:r)},{}],13:[function(t,e,r){r.read=function(t,e,r,a,s){var n,i,o=8*s-a-1,h=(1<>1,l=-7,f=r?s-1:0,c=r?-1:1,p=t[e+f];for(f+=c,n=p&(1<<-l)-1,p>>=-l,l+=o;l>0;n=256*n+t[e+f],f+=c,l-=8);for(i=n&(1<<-l)-1,n>>=-l,l+=a;l>0;i=256*i+t[e+f],f+=c,l-=8);if(0===n)n=1-u;else{if(n===h)return i?NaN:(p?-1:1)*(1/0);i+=Math.pow(2,a),n-=u}return(p?-1:1)*i*Math.pow(2,n-a)},r.write=function(t,e,r,a,s,n){var i,o,h,u=8*n-s-1,l=(1<>1,c=23===s?Math.pow(2,-24)-Math.pow(2,-77):0,p=a?0:n-1,d=a?1:-1,y=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,i=l):(i=Math.floor(Math.log(e)/Math.LN2),e*(h=Math.pow(2,-i))<1&&(i--,h*=2),e+=i+f>=1?c/h:c*Math.pow(2,1-f),e*h>=2&&(i++,h/=2),i+f>=l?(o=0,i=l):i+f>=1?(o=(e*h-1)*Math.pow(2,s),i+=f):(o=e*Math.pow(2,f-1)*Math.pow(2,s),i=0));s>=8;t[r+p]=255&o,p+=d,o/=256,s-=8);for(i=i<0;t[r+p]=255&i,p+=d,i/=256,u-=8);t[r+p-d]|=128*y}},{}],14:[function(t,e,r){var a=Array.isArray,s=Object.prototype.toString;e.exports=a||function(t){return!!t&&"[object Array]"==s.call(t)}},{}],"ndarray-fft":[function(t,e,r){"use strict";function a(t,e,r){var a,h,u=e.shape,l=u.length,f=1,c=new Array(l),p=0;for(a=l-1;a>=0;--a)if(c[a]=f,f*=u[a],p=Math.max(p,o.scratchMemory(u[a])),e.shape[a]!==r.shape[a])throw new Error("Shape mismatch, real and imaginary arrays must have same size");var d,y=4*f+p;d="array"===e.dtype||"float64"===e.dtype||"custom"===e.dtype?i.mallocDouble(y):i.mallocFloat(y);var g,b,_,v,m=n(d,u.slice(0),c,0),w=n(d,u.slice(0),c.slice(0),f),S=n(d,u.slice(0),c.slice(0),2*f),A=n(d,u.slice(0),c.slice(0),3*f),P=4*f;for(s.assign(m,e),s.assign(w,r),a=l-1;a>=0&&(o(t,f/u[a],u[a],d,m.offset,w.offset,P),0!==a);--a){for(b=1,_=S.stride,v=A.stride,h=a-1;h=0;--h)v[h]=_[h]=b,b*=u[h];s.assign(S,m),s.assign(A,w),g=m,m=S,S=g,g=w,w=A,A=g}s.assign(e,m),s.assign(r,w),i.free(d)}var s=t("ndarray-ops"),n=t("ndarray"),i=t("typedarray-pool"),o=t("./lib/fft-matrix.js");e.exports=a},{"./lib/fft-matrix.js":1,ndarray:"ndarray","ndarray-ops":3,"typedarray-pool":9}],ndarray:[function(t,e,r){(function(r){function a(t,e){return t[0]-e[0]}function s(){var t,e=this.stride,r=new Array(e.length);for(t=0;tMath.abs(this.stride[1]))?[1,0]:[0,1]}})"):3===e&&n.push("var s0=Math.abs(this.stride[0]),s1=Math.abs(this.stride[1]),s2=Math.abs(this.stride[2]);if(s0>s1){if(s1>s2){return [2,1,0];}else if(s0>s2){return [1,2,0];}else{return [1,0,2];}}else if(s0>s2){return [2,0,1];}else if(s2>s1){return [0,1,2];}else{return [0,2,1];}}})")):n.push("ORDER})")),n.push("proto.set=function "+r+"_set("+u.join(",")+",v){"),a?n.push("return this.data.set("+l+",v)}"):n.push("return this.data["+l+"]=v}"),n.push("proto.get=function "+r+"_get("+u.join(",")+"){"),a?n.push("return this.data.get("+l+")}"):n.push("return this.data["+l+"]}"),n.push("proto.index=function "+r+"_index(",u.join(),"){return "+l+"}"),n.push("proto.hi=function "+r+"_hi("+u.join(",")+"){return new "+r+"(this.data,"+o.map(function(t){return["(typeof i",t,"!=='number'||i",t,"<0)?this.shape[",t,"]:i",t,"|0"].join("")}).join(",")+","+o.map(function(t){return"this.stride["+t+"]"}).join(",")+",this.offset)}");var d=o.map(function(t){return"a"+t+"=this.shape["+t+"]"}),y=o.map(function(t){return"c"+t+"=this.stride["+t+"]"});n.push("proto.lo=function "+r+"_lo("+u.join(",")+"){var b=this.offset,d=0,"+d.join(",")+","+y.join(","));for(var g=0;g=0){d=i"+g+"|0;b+=c"+g+"*d;a"+g+"-=d}");n.push("return new "+r+"(this.data,"+o.map(function(t){return"a"+t}).join(",")+","+o.map(function(t){return"c"+t}).join(",")+",b)}"),n.push("proto.step=function "+r+"_step("+u.join(",")+"){var "+o.map(function(t){return"a"+t+"=this.shape["+t+"]"}).join(",")+","+o.map(function(t){return"b"+t+"=this.stride["+t+"]"}).join(",")+",c=this.offset,d=0,ceil=Math.ceil");for(var g=0;g=0){c=(c+this.stride["+g+"]*i"+g+")|0}else{a.push(this.shape["+g+"]);b.push(this.stride["+g+"])}");n.push("var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}"),n.push("return function construct_"+r+"(data,shape,stride,offset){return new "+r+"(data,"+o.map(function(t){return"shape["+t+"]"}).join(",")+","+o.map(function(t){return"stride["+t+"]"}).join(",")+",offset)}");var i=new Function("CTOR_LIST","ORDER",n.join("\n"));return i(f[t],s)}function i(t){if(l&&r.isBuffer(t))return"buffer";if(u)switch(Object.prototype.toString.call(t)){case"[object Float64Array]":return"float64";case"[object Float32Array]":return"float32";case"[object Int8Array]":return"int8";case"[object Int16Array]":return"int16";case"[object Int32Array]":return"int32";case"[object Uint8Array]":return"uint8";case"[object Uint16Array]":return"uint16";case"[object Uint32Array]":return"uint32";case"[object Uint8ClampedArray]":return"uint8_clamped"}return Array.isArray(t)?"array":"generic"}function o(t,e,r,a){if(void 0===t){var s=f.array[0];return s([])}"number"==typeof t&&(t=[t]),void 0===e&&(e=[t.length]);var o=e.length;if(void 0===r){r=new Array(o);for(var h=o-1,u=1;h>=0;--h)r[h]=u,u*=e[h]}if(void 0===a){a=0;for(var h=0;h>>2,s=new Float32Array(2*e),n=new Float32Array(e),i=new Float32Array(e),o=0,h=t,u=ndarray(n),l=ndarray(i);return function(t){var f,c,p,d=e,y=h,g=s,b=n,_=i;for(g.set(t,o),o+=d,c=0;c+d<=o;c+=a){for(f=0;f>>2,s=new Float32Array(2*t),n=s.subarray(0,t),i=0,o=0,h=e,u=ndarray(h),l=ndarray(h);return function(e,f){var c,p,d,y=t,g=h,b=s;for(u.data=e,l.data=f,ndarray_fft(-1,u,l),d=o,c=0,p=i;p=y;){for(r(n),c=0,p=y;c-1},_frequencyFromNoteNumber=function(t){return 440*Math.pow(2,(t-69)/12)},_getNoteTime=function(t,e){return 1/e*(60/t)},_lZeroPad=function(t,e,r){for(t=""+t;t.length2*i&&postMessage("Conversion failed, there is "+n+" samples to process for a window length (* 2) of "+2*i+", please use different settings."),_stereo&&(A/=2),STFT.initializeForwardWindow(i,o),r=STFT.forward(i,function(t,e){if(g.push({r:t,i:e}),g.length===h){var r,a,s,n,i,o,u=0,l=0,f=0,d=[],y=[];for(l=0;l>1,h=0,u=0;u>=1;h+=c}for(d=-1,_=0,y=1,p=0;p0)-(r<0)},e.abs=function(r){var t=r>>a-1;return(r^t)-t},e.min=function(r,t){return t^(r^t)&-(r65535)<<4,r>>>=t,e=(r>255)<<3,r>>>=e,t|=e,e=(r>15)<<2,r>>>=e,t|=e,e=(r>3)<<1,r>>>=e,t|=e,t|r>>1},e.log10=function(r){return r>=1e9?9:r>=1e8?8:r>=1e7?7:r>=1e6?6:r>=1e5?5:r>=1e4?4:r>=1e3?3:r>=100?2:r>=10?1:0},e.popCount=function(r){return r-=r>>>1&1431655765,r=(858993459&r)+(r>>>2&858993459),16843009*(r+(r>>>4)&252645135)>>>24},e.countTrailingZeros=n,e.nextPow2=function(r){return r+=0===r,--r,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r+1},e.prevPow2=function(r){return r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r-(r>>>1)},e.parity=function(r){return r^=r>>>16,r^=r>>>8,r^=r>>>4,r&=15,27030>>>r&1};var o=new Array(256);!function(r){for(var t=0;t<256;++t){var e=t,n=t,a=7;for(e>>>=1;e;e>>>=1)n<<=1,n|=1&e,--a;r[t]=n<>>8&255]<<16|o[r>>>16&255]<<8|o[r>>>24&255]},e.interleave2=function(r,t){return r&=65535,r=16711935&(r|r<<8),r=252645135&(r|r<<4),r=858993459&(r|r<<2),r=1431655765&(r|r<<1),t&=65535,t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),r|t<<1},e.deinterleave2=function(r,t){return r=r>>>t&1431655765,r=858993459&(r|r>>>1),r=252645135&(r|r>>>2),r=16711935&(r|r>>>4),r=65535&(r|r>>>16),r<<16>>16},e.interleave3=function(r,t,e){return r&=1023,r=4278190335&(r|r<<16),r=251719695&(r|r<<8),r=3272356035&(r|r<<4),r=1227133513&(r|r<<2),t&=1023,t=4278190335&(t|t<<16),t=251719695&(t|t<<8),t=3272356035&(t|t<<4),t=1227133513&(t|t<<2),r|=t<<1,e&=1023,e=4278190335&(e|e<<16),e=251719695&(e|e<<8),e=3272356035&(e|e<<4),e=1227133513&(e|e<<2),r|e<<2},e.deinterleave3=function(r,t){return r=r>>>t&1227133513,r=3272356035&(r|r>>>2),r=251719695&(r|r>>>4),r=4278190335&(r|r>>>8),r=1023&(r|r>>>16),r<<22>>22},e.nextCombination=function(r){var t=r|r-1;return t+1|(~t&-~t)-1>>>n(r)+1}},{}],3:[function(r,t,e){"use strict";function n(r){if(!r)return s;for(var t=0;t>",rrshift:">>>"};!function(){for(var r in u){var t=u[r];e[r]=o({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+t+"c"},funcName:r}),e[r+"eq"]=o({args:["array","array"],body:{args:["a","b"],body:"a"+t+"=b"},rvalue:!0,funcName:r+"eq"}),e[r+"s"]=o({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+t+"s"},funcName:r+"s"}),e[r+"seq"]=o({args:["array","scalar"],body:{args:["a","s"],body:"a"+t+"=s"},rvalue:!0,funcName:r+"seq"})}}();var f={not:"!",bnot:"~",neg:"-",recip:"1.0/"};!function(){for(var r in f){var t=f[r];e[r]=o({args:["array","array"],body:{args:["a","b"],body:"a="+t+"b"},funcName:r}),e[r+"eq"]=o({args:["array"],body:{args:["a"],body:"a="+t+"a"},rvalue:!0,count:2,funcName:r+"eq"})}}();var h={and:"&&",or:"||",eq:"===",neq:"!==",lt:"<",gt:">",leq:"<=",geq:">="};!function(){for(var r in h){var t=h[r];e[r]=o({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+t+"c"},funcName:r}),e[r+"s"]=o({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+t+"s"},funcName:r+"s"}),e[r+"eq"]=o({args:["array","array"],body:{args:["a","b"],body:"a=a"+t+"b"},rvalue:!0,count:2,funcName:r+"eq"}),e[r+"seq"]=o({args:["array","scalar"],body:{args:["a","s"],body:"a=a"+t+"s"},rvalue:!0,count:2,funcName:r+"seq"})}}();var c=["abs","acos","asin","atan","ceil","cos","exp","floor","log","round","sin","sqrt","tan"];!function(){for(var r=0;rthis_s){this_s=-a}else if(a>this_s){this_s=a}",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norminf"}),e.norm1=i({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:3}],body:"this_s+=a<0?-a:a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norm1"}),e.sup=i({args:["array"],pre:{body:"this_h=-Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_>this_h)this_h=_inline_1_arg0_",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_h"],localVars:[]},post:{body:"return this_h",args:[],thisVars:["this_h"],localVars:[]}}),e.inf=i({args:["array"],pre:{body:"this_h=Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_i","this_v"],localVars:["_inline_1_k"]},post:{body:"{return this_i}",args:[],thisVars:["this_i"],localVars:[]}}),e.random=o({args:["array"],pre:{args:[],body:"this_f=Math.random",thisVars:["this_f"]},body:{args:["a"],body:"a=this_f()",thisVars:["this_f"]},funcName:"random"}),e.assign=o({args:["array","array"],body:{args:["a","b"],body:"a=b"},funcName:"assign"}),e.assigns=o({args:["array","scalar"],body:{args:["a","b"],body:"a=b"},funcName:"assigns"}),e.equals=i({args:["array","array"],pre:s,body:{args:[{name:"x",lvalue:!1,rvalue:!0,count:1},{name:"y",lvalue:!1,rvalue:!0,count:1}],body:"if(x!==y){return false}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return true"},funcName:"equals"})},{"cwise-compiler":4}],4:[function(r,t,e){"use strict";function n(){this.argTypes=[],this.shimArgs=[],this.arrayArgs=[],this.scalarArgs=[],this.offsetArgs=[],this.offsetArgIndex=[],this.indexArgs=[],this.shapeArgs=[],this.funcName="",this.pre=null,this.body=null,this.post=null,this.debug=!1}function a(r){var t=new n;t.pre=r.pre,t.body=r.body,t.post=r.post;var e=r.args.slice(0);t.argTypes=e;for(var a=0;a0)throw new Error("cwise: pre() block may not reference array args");if(a0)throw new Error("cwise: post() block may not reference array args")}else if("scalar"===i)t.scalarArgs.push(a),t.shimArgs.push("scalar"+a);else if("index"===i){if(t.indexArgs.push(a),a0)throw new Error("cwise: pre() block may not reference array index");if(a0)throw new Error("cwise: post() block may not reference array index")}else if("shape"===i){if(t.shapeArgs.push(a),ae.length)throw new Error("cwise: Too many arguments in pre() block");if(t.body.args.length>e.length)throw new Error("cwise: Too many arguments in body() block");if(t.post.args.length>e.length)throw new Error("cwise: Too many arguments in post() block");return t.debug=!!r.printCode||!!r.debug,t.funcName=r.funcName||"cwise",t.blockSize=r.blockSize||64,o(t)}var o=r("./lib/thunk.js");t.exports=a},{"./lib/thunk.js":6}],5:[function(r,t,e){"use strict";function n(r,t,e){var n,a,o=r.length,i=t.arrayArgs.length,s=t.indexArgs.length>0,u=[],f=[],h=0,c=0;for(n=0;n=0;--n)h=r[n],u.push(["for(i",n,"=0;i",n,"0&&u.push(["index[",c,"]-=s",c].join("")),u.push(["++index[",h,"]"].join(""))),u.push("}")}return u.join("\n")}function a(r,t,e,a){for(var o=t.length,i=e.arrayArgs.length,s=e.blockSize,u=e.indexArgs.length>0,f=[],h=0;h0;){"].join("")),f.push(["if(j",h,"<",s,"){"].join("")),f.push(["s",t[h],"=j",h].join("")),f.push(["j",h,"=0"].join("")),f.push(["}else{s",t[h],"=",s].join("")),f.push(["j",h,"-=",s,"}"].join("")),u&&f.push(["index[",t[h],"]=j",h].join(""));for(var h=0;h0&&(e=e&&t[n]===t[n-1])}return e?t[0]:t.join("")}function u(r,t){for(var e=0|t[1].length,u=new Array(r.arrayArgs.length),h=new Array(r.arrayArgs.length),c=["SS"],l=["'use strict'"],p=[],g=0;g0&&p.push("shape=SS.slice(0)"),r.indexArgs.length>0){for(var d=new Array(e),y=0;y3&&l.push(i(r.pre,r,h));var w=i(r.body,r,h),m=o(u);m3&&l.push(i(r.post,r,h)),r.debug&&console.log("Generated cwise routine for ",t,":\n\n",l.join("\n"));var A=[r.funcName||"unnamed","_cwise_loop_",u[0].join("s"),"m",m,s(h)].join(""),E=new Function(["function ",A,"(",c.join(","),"){",l.join("\n"),"} return ",A].join(""));return E()}var f=r("uniq");t.exports=u},{uniq:7}],6:[function(r,t,e){"use strict";function n(r){var t=["'use strict'","var CACHED={}"],e=[],n=r.funcName+"_cwise_thunk";t.push(["return function ",n,"(",r.shimArgs.join(","),"){"].join(""));for(var o=[],i=[],s=[["array",r.arrayArgs[0],".shape"].join("")],u=0;u0)return a(0|r,t);break;case"object":if("number"==typeof r.length)return n(r,t,0)}return[]}t.exports=o},{}],9:[function(r,t,e){(function(t,n){"use strict";function a(r){if(r){var t=r.length||r.byteLength,e=b.log2(t);A[e].push(r)}}function o(r){a(r.buffer)}function i(r){var r=b.nextPow2(r),t=b.log2(r),e=A[t];return e.length>0?e.pop():new ArrayBuffer(r)}function s(r){return new Uint8Array(i(r),0,r)}function u(r){return new Uint16Array(i(2*r),0,r)}function f(r){return new Uint32Array(i(4*r),0,r)}function h(r){return new Int8Array(i(r),0,r)}function c(r){return new Int16Array(i(2*r),0,r)}function l(r){return new Int32Array(i(4*r),0,r)}function p(r){return new Float32Array(i(4*r),0,r)}function g(r){return new Float64Array(i(8*r),0,r)}function y(r){return w?new Uint8ClampedArray(i(r),0,r):s(r)}function d(r){return new DataView(i(r),0,r)}function _(r){r=b.nextPow2(r);var t=b.log2(r),e=E[t];return e.length>0?e.pop():new n(r)}var b=r("bit-twiddle"),v=r("dup");t.__TYPEDARRAY_POOL||(t.__TYPEDARRAY_POOL={UINT8:v([32,0]),UINT16:v([32,0]),UINT32:v([32,0]),INT8:v([32,0]),INT16:v([32,0]),INT32:v([32,0]),FLOAT:v([32,0]),DOUBLE:v([32,0]),DATA:v([32,0]),UINT8C:v([32,0]),BUFFER:v([32,0])});var w="undefined"!=typeof Uint8ClampedArray,m=t.__TYPEDARRAY_POOL;m.UINT8C||(m.UINT8C=v([32,0])),m.BUFFER||(m.BUFFER=v([32,0]));var A=m.DATA,E=m.BUFFER;e.free=function(r){if(n.isBuffer(r))E[b.log2(r.length)].push(r);else{if("[object ArrayBuffer]"!==Object.prototype.toString.call(r)&&(r=r.buffer),!r)return;var t=r.length||r.byteLength,e=0|b.log2(t);A[e].push(r)}},e.freeUint8=e.freeUint16=e.freeUint32=e.freeInt8=e.freeInt16=e.freeInt32=e.freeFloat32=e.freeFloat=e.freeFloat64=e.freeDouble=e.freeUint8Clamped=e.freeDataView=o,e.freeArrayBuffer=a,e.freeBuffer=function(r){E[b.log2(r.length)].push(r)},e.malloc=function(r,t){if(void 0===t||"arraybuffer"===t)return i(r);switch(t){case"uint8":return s(r);case"uint16":return u(r);case"uint32":return f(r);case"int8":return h(r);case"int16":return c(r);case"int32":return l(r);case"float":case"float32":return p(r);case"double":case"float64":return g(r);case"uint8_clamped":return y(r);case"buffer":return _(r);case"data":case"dataview":return d(r);default:return null}return null},e.mallocArrayBuffer=i,e.mallocUint8=s,e.mallocUint16=u,e.mallocUint32=f,e.mallocInt8=h,e.mallocInt16=c,e.mallocInt32=l,e.mallocFloat32=e.mallocFloat=p,e.mallocFloat64=e.mallocDouble=g,e.mallocUint8Clamped=y,e.mallocDataView=d,e.mallocBuffer=_,e.clearCache=function(){for(var r=0;r<32;++r)m.UINT8[r].length=0,m.UINT16[r].length=0,m.UINT32[r].length=0,m.INT8[r].length=0,m.INT16[r].length=0,m.INT32[r].length=0,m.FLOAT[r].length=0,m.DOUBLE[r].length=0,m.UINT8C[r].length=0,A[r].length=0,E[r].length=0}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},r("buffer").Buffer)},{"bit-twiddle":2,buffer:11,dup:8}],10:[function(r,t,e){"use strict";function n(r){for(var t=new Array(r),e=0;ek)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+k.toString(16)+" bytes");a<0?a=0:a>>>=0,n.TYPED_ARRAY_SUPPORT?e=n._augment(new Uint8Array(a)):(e.length=a,e._isBuffer=!0);var i;if(n.TYPED_ARRAY_SUPPORT&&"number"==typeof r.byteLength)e._set(r);else if(U(r))if(n.isBuffer(r))for(i=0;i0&&a<=n.poolSize&&(e.parent=F),e}function a(r,t){if(!(this instanceof a))return new a(r,t);var e=new n(r,t);return delete e.parent,e}function o(r,t,e,n){e=Number(e)||0;var a=r.length-e;n?(n=Number(n),n>a&&(n=a)):n=a;var o=t.length;if(o%2!==0)throw new Error("Invalid hex string");n>o/2&&(n=o/2);for(var i=0;in)&&(e=n);for(var a="",o=t;oe)throw new RangeError("Trying to access beyond buffer length")}function b(r,t,e,a,o,i){if(!n.isBuffer(r))throw new TypeError("buffer must be a Buffer instance");if(t>o||tr.length)throw new RangeError("index out of range")}function v(r,t,e,n){t<0&&(t=65535+t+1);for(var a=0,o=Math.min(r.length-e,2);a>>8*(n?a:1-a)}function w(r,t,e,n){t<0&&(t=4294967295+t+1);for(var a=0,o=Math.min(r.length-e,4);a>>8*(n?a:3-a)&255}function m(r,t,e,n,a,o){if(t>a||tr.length)throw new RangeError("index out of range");if(e<0)throw new RangeError("index out of range")}function A(r,t,e,n,a){return a||m(r,t,e,4,3.4028234663852886e38,-3.4028234663852886e38),S.write(r,t,e,n,23,4),e+4}function E(r,t,e,n,a){return a||m(r,t,e,8,1.7976931348623157e308,-1.7976931348623157e308),S.write(r,t,e,n,52,8),e+8}function I(r){if(r=j(r).replace(C,""),r.length<2)return"";for(;r.length%4!==0;)r+="=";return r}function j(r){return r.trim?r.trim():r.replace(/^\s+|\s+$/g,"")}function U(r){return L(r)||n.isBuffer(r)||r&&"object"==typeof r&&"number"==typeof r.length}function T(r){return r<16?"0"+r.toString(16):r.toString(16)}function V(r,t){t=t||1/0;for(var e,n=r.length,a=null,o=[],i=0;i55295&&e<57344){if(!a){if(e>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(i+1===n){(t-=3)>-1&&o.push(239,191,189);continue}a=e;continue}if(e<56320){(t-=3)>-1&&o.push(239,191,189),a=e;continue}e=a-55296<<10|e-56320|65536,a=null}else a&&((t-=3)>-1&&o.push(239,191,189),a=null);if(e<128){if((t-=1)<0)break;o.push(e)}else if(e<2048){if((t-=2)<0)break;o.push(e>>6|192,63&e|128)}else if(e<65536){if((t-=3)<0)break;o.push(e>>12|224,e>>6&63|128,63&e|128)}else{if(!(e<2097152))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128)}}return o}function B(r){for(var t=[],e=0;e>8,a=e%256,o.push(a),o.push(n);return o}function P(r){return N.toByteArray(I(r))}function x(r,t,e,n){for(var a=0;a=t.length||a>=r.length);a++)t[a+e]=r[a];return a}function R(r){try{return decodeURIComponent(r)}catch(r){return String.fromCharCode(65533)}}var N=r("base64-js"),S=r("ieee754"),L=r("is-array");e.Buffer=n,e.SlowBuffer=a,e.INSPECT_MAX_BYTES=50,n.poolSize=8192;var k=1073741823,F={};n.TYPED_ARRAY_SUPPORT=function(){try{var r=new ArrayBuffer(0),t=new Uint8Array(r);return t.foo=function(){return 42},42===t.foo()&&"function"==typeof t.subarray&&0===new Uint8Array(1).subarray(1,1).byteLength}catch(r){return!1}}(),n.isBuffer=function(r){return!(null==r||!r._isBuffer)},n.compare=function(r,t){if(!n.isBuffer(r)||!n.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(r===t)return 0;for(var e=r.length,a=t.length,o=0,i=Math.min(e,a);o>>1;break;case"utf8":case"utf-8":e=V(r).length;break;case"base64":e=P(r).length;break;default:e=r.length}return e},n.prototype.length=void 0,n.prototype.parent=void 0,n.prototype.toString=function(r,t,e){var n=!1;if(t>>>=0,e=void 0===e||e===1/0?this.length:e>>>0,r||(r="utf8"),t<0&&(t=0),e>this.length&&(e=this.length),e<=t)return"";for(;;)switch(r){case"hex":return y(this,t,e);case"utf8":case"utf-8":return l(this,t,e);case"ascii":return p(this,t,e);case"binary":return g(this,t,e);case"base64":return c(this,t,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return d(this,t,e);default:if(n)throw new TypeError("Unknown encoding: "+r);r=(r+"").toLowerCase(),n=!0}},n.prototype.equals=function(r){if(!n.isBuffer(r))throw new TypeError("Argument must be a Buffer");return this===r||0===n.compare(this,r)},n.prototype.inspect=function(){var r="",t=e.INSPECT_MAX_BYTES;return this.length>0&&(r=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(r+=" ... ")),""},n.prototype.compare=function(r){if(!n.isBuffer(r))throw new TypeError("Argument must be a Buffer");return this===r?0:n.compare(this,r)},n.prototype.indexOf=function(r,t){function e(r,t,e){for(var n=-1,a=0;e+a2147483647?t=2147483647:t<-2147483648&&(t=-2147483648),t>>=0,0===this.length)return-1;if(t>=this.length)return-1;if(t<0&&(t=Math.max(this.length+t,0)),"string"==typeof r)return 0===r.length?-1:String.prototype.indexOf.call(this,r,t);if(n.isBuffer(r))return e(this,r,t);if("number"==typeof r)return n.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,r,t):e(this,[r],t);throw new TypeError("val must be string, number or Buffer")},n.prototype.get=function(r){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(r)},n.prototype.set=function(r,t){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(r,t)},n.prototype.write=function(r,t,e,n){if(isFinite(t))isFinite(e)||(n=e,e=void 0);else{var a=n;n=t,t=e,e=a}if(t=Number(t)||0,e<0||t<0||t>this.length)throw new RangeError("attempt to write outside buffer bounds");var c=this.length-t;e?(e=Number(e),e>c&&(e=c)):e=c,n=String(n||"utf8").toLowerCase();var l;switch(n){case"hex":l=o(this,r,t,e);break;case"utf8":case"utf-8":l=i(this,r,t,e);break;case"ascii":l=s(this,r,t,e);break;case"binary":l=u(this,r,t,e);break;case"base64":l=f(this,r,t,e);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":l=h(this,r,t,e);break;default:throw new TypeError("Unknown encoding: "+n)}return l},n.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},n.prototype.slice=function(r,t){var e=this.length;r=~~r,t=void 0===t?e:~~t,r<0?(r+=e,r<0&&(r=0)):r>e&&(r=e),t<0?(t+=e,t<0&&(t=0)):t>e&&(t=e),t>>=0,t>>>=0,e||_(r,t,this.length);for(var n=this[r],a=1,o=0;++o>>=0,t>>>=0,e||_(r,t,this.length);for(var n=this[r+--t],a=1;t>0&&(a*=256);)n+=this[r+--t]*a;return n},n.prototype.readUInt8=function(r,t){return t||_(r,1,this.length),this[r]},n.prototype.readUInt16LE=function(r,t){return t||_(r,2,this.length),this[r]|this[r+1]<<8},n.prototype.readUInt16BE=function(r,t){return t||_(r,2,this.length),this[r]<<8|this[r+1]},n.prototype.readUInt32LE=function(r,t){return t||_(r,4,this.length),(this[r]|this[r+1]<<8|this[r+2]<<16)+16777216*this[r+3]},n.prototype.readUInt32BE=function(r,t){return t||_(r,4,this.length),16777216*this[r]+(this[r+1]<<16|this[r+2]<<8|this[r+3])},n.prototype.readIntLE=function(r,t,e){r>>>=0,t>>>=0,e||_(r,t,this.length);for(var n=this[r],a=1,o=0;++o=a&&(n-=Math.pow(2,8*t)),n},n.prototype.readIntBE=function(r,t,e){r>>>=0,t>>>=0,e||_(r,t,this.length);for(var n=t,a=1,o=this[r+--n];n>0&&(a*=256);)o+=this[r+--n]*a;return a*=128,o>=a&&(o-=Math.pow(2,8*t)),o},n.prototype.readInt8=function(r,t){return t||_(r,1,this.length),128&this[r]?(255-this[r]+1)*-1:this[r]},n.prototype.readInt16LE=function(r,t){t||_(r,2,this.length);var e=this[r]|this[r+1]<<8;return 32768&e?4294901760|e:e},n.prototype.readInt16BE=function(r,t){t||_(r,2,this.length);var e=this[r+1]|this[r]<<8;return 32768&e?4294901760|e:e},n.prototype.readInt32LE=function(r,t){return t||_(r,4,this.length),this[r]|this[r+1]<<8|this[r+2]<<16|this[r+3]<<24},n.prototype.readInt32BE=function(r,t){return t||_(r,4,this.length),this[r]<<24|this[r+1]<<16|this[r+2]<<8|this[r+3]},n.prototype.readFloatLE=function(r,t){return t||_(r,4,this.length),S.read(this,r,!0,23,4)},n.prototype.readFloatBE=function(r,t){return t||_(r,4,this.length),S.read(this,r,!1,23,4)},n.prototype.readDoubleLE=function(r,t){return t||_(r,8,this.length),S.read(this,r,!0,52,8)},n.prototype.readDoubleBE=function(r,t){return t||_(r,8,this.length),S.read(this,r,!1,52,8)},n.prototype.writeUIntLE=function(r,t,e,n){r=+r,t>>>=0,e>>>=0,n||b(this,r,t,e,Math.pow(2,8*e),0);var a=1,o=0;for(this[t]=255&r;++o>>0&255;return t+e},n.prototype.writeUIntBE=function(r,t,e,n){r=+r,t>>>=0,e>>>=0,n||b(this,r,t,e,Math.pow(2,8*e),0);var a=e-1,o=1;for(this[t+a]=255&r;--a>=0&&(o*=256);)this[t+a]=r/o>>>0&255;return t+e},n.prototype.writeUInt8=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,1,255,0),n.TYPED_ARRAY_SUPPORT||(r=Math.floor(r)),this[t]=r,t+1},n.prototype.writeUInt16LE=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,2,65535,0),n.TYPED_ARRAY_SUPPORT?(this[t]=r,this[t+1]=r>>>8):v(this,r,t,!0),t+2},n.prototype.writeUInt16BE=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,2,65535,0),n.TYPED_ARRAY_SUPPORT?(this[t]=r>>>8,this[t+1]=r):v(this,r,t,!1),t+2},n.prototype.writeUInt32LE=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,4,4294967295,0),n.TYPED_ARRAY_SUPPORT?(this[t+3]=r>>>24,this[t+2]=r>>>16,this[t+1]=r>>>8,this[t]=r):w(this,r,t,!0),t+4},n.prototype.writeUInt32BE=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,4,4294967295,0),n.TYPED_ARRAY_SUPPORT?(this[t]=r>>>24,this[t+1]=r>>>16,this[t+2]=r>>>8,this[t+3]=r):w(this,r,t,!1),t+4},n.prototype.writeIntLE=function(r,t,e,n){r=+r,t>>>=0,n||b(this,r,t,e,Math.pow(2,8*e-1)-1,-Math.pow(2,8*e-1));var a=0,o=1,i=r<0?1:0;for(this[t]=255&r;++a>0)-i&255;return t+e},n.prototype.writeIntBE=function(r,t,e,n){r=+r,t>>>=0,n||b(this,r,t,e,Math.pow(2,8*e-1)-1,-Math.pow(2,8*e-1));var a=e-1,o=1,i=r<0?1:0;for(this[t+a]=255&r;--a>=0&&(o*=256);)this[t+a]=(r/o>>0)-i&255;return t+e},n.prototype.writeInt8=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,1,127,-128),n.TYPED_ARRAY_SUPPORT||(r=Math.floor(r)),r<0&&(r=255+r+1),this[t]=r,t+1},n.prototype.writeInt16LE=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,2,32767,-32768),n.TYPED_ARRAY_SUPPORT?(this[t]=r,this[t+1]=r>>>8):v(this,r,t,!0),t+2},n.prototype.writeInt16BE=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,2,32767,-32768),n.TYPED_ARRAY_SUPPORT?(this[t]=r>>>8,this[t+1]=r):v(this,r,t,!1),t+2},n.prototype.writeInt32LE=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,4,2147483647,-2147483648),n.TYPED_ARRAY_SUPPORT?(this[t]=r,this[t+1]=r>>>8,this[t+2]=r>>>16,this[t+3]=r>>>24):w(this,r,t,!0),t+4},n.prototype.writeInt32BE=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,4,2147483647,-2147483648),r<0&&(r=4294967295+r+1),n.TYPED_ARRAY_SUPPORT?(this[t]=r>>>24,this[t+1]=r>>>16,this[t+2]=r>>>8,this[t+3]=r):w(this,r,t,!1),t+4},n.prototype.writeFloatLE=function(r,t,e){return A(this,r,t,!0,e)},n.prototype.writeFloatBE=function(r,t,e){return A(this,r,t,!1,e)},n.prototype.writeDoubleLE=function(r,t,e){return E(this,r,t,!0,e)},n.prototype.writeDoubleBE=function(r,t,e){return E(this,r,t,!1,e)},n.prototype.copy=function(r,t,e,a){if(e||(e=0),a||0===a||(a=this.length),t>=r.length&&(t=r.length),t||(t=0),a>0&&a=this.length)throw new RangeError("sourceStart out of bounds");if(a<0)throw new RangeError("sourceEnd out of bounds");a>this.length&&(a=this.length),r.length-t=this.length)throw new RangeError("start out of bounds");if(e<0||e>this.length)throw new RangeError("end out of bounds");var n;if("number"==typeof r)for(n=t;n0)throw new Error("Invalid string. Length must be a multiple of 4");var h=r.length;u="="===r.charAt(h-2)?2:"="===r.charAt(h-1)?1:0,f=new o(3*r.length/4-u),i=u>0?r.length-4:r.length;var c=0;for(n=0,a=0;n>16),e((65280&s)>>8),e(255&s);return 2===u?(s=t(r.charAt(n))<<2|t(r.charAt(n+1))>>4,e(255&s)):1===u&&(s=t(r.charAt(n))<<10|t(r.charAt(n+1))<<4|t(r.charAt(n+2))>>2,e(s>>8&255),e(255&s)),f}function a(r){function t(r){return n.charAt(r)}function e(r){return t(r>>18&63)+t(r>>12&63)+t(r>>6&63)+t(63&r)}var a,o,i,s=r.length%3,u="";for(a=0,i=r.length-s;a>2),u+=t(o<<4&63),u+="==";break;case 2:o=(r[r.length-2]<<8)+r[r.length-1],u+=t(o>>10),u+=t(o>>4&63),u+=t(o<<2&63),u+="="}return u}var o="undefined"!=typeof Uint8Array?Uint8Array:Array,i="+".charCodeAt(0),s="/".charCodeAt(0),u="0".charCodeAt(0),f="a".charCodeAt(0),h="A".charCodeAt(0),c="-".charCodeAt(0),l="_".charCodeAt(0);r.toByteArray=e,r.fromByteArray=a}("undefined"==typeof e?this.base64js={}:e)},{}],13:[function(r,t,e){e.read=function(r,t,e,n,a){var o,i,s=8*a-n-1,u=(1<>1,h=-7,c=e?a-1:0,l=e?-1:1,p=r[t+c];for(c+=l,o=p&(1<<-h)-1,p>>=-h,h+=s;h>0;o=256*o+r[t+c],c+=l,h-=8);for(i=o&(1<<-h)-1,o>>=-h,h+=n;h>0;i=256*i+r[t+c],c+=l,h-=8);if(0===o)o=1-f;else{if(o===u)return i?NaN:(p?-1:1)*(1/0);i+=Math.pow(2,n),o-=f}return(p?-1:1)*i*Math.pow(2,o-n)},e.write=function(r,t,e,n,a,o){var i,s,u,f=8*o-a-1,h=(1<>1,l=23===a?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:o-1,g=n?1:-1,y=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,i=h):(i=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-i))<1&&(i--,u*=2),t+=i+c>=1?l/u:l*Math.pow(2,1-c),t*u>=2&&(i++,u/=2),i+c>=h?(s=0,i=h):i+c>=1?(s=(t*u-1)*Math.pow(2,a),i+=c):(s=t*Math.pow(2,c-1)*Math.pow(2,a),i=0));a>=8;r[e+p]=255&s,p+=g,s/=256,a-=8);for(i=i<0;r[e+p]=255&i,p+=g,i/=256,f-=8);r[e+p-g]|=128*y}},{}],14:[function(r,t,e){var n=Array.isArray,a=Object.prototype.toString;t.exports=n||function(r){return!!r&&"[object Array]"==a.call(r)}},{}],"ndarray-fft":[function(r,t,e){"use strict";function n(r,t,e){var n,u,f=t.shape,h=f.length,c=1,l=new Array(h),p=0;for(n=h-1;n>=0;--n)if(l[n]=c,c*=f[n],p=Math.max(p,s.scratchMemory(f[n])),t.shape[n]!==e.shape[n])throw new Error("Shape mismatch, real and imaginary arrays must have same size");var g,y=4*c+p;g="array"===t.dtype||"float64"===t.dtype||"custom"===t.dtype?i.mallocDouble(y):i.mallocFloat(y);var d,_,b,v,w=o(g,f.slice(0),l,0),m=o(g,f.slice(0),l.slice(0),c),A=o(g,f.slice(0),l.slice(0),2*c),E=o(g,f.slice(0),l.slice(0),3*c),I=4*c;for(a.assign(w,t),a.assign(m,e),n=h-1;n>=0&&(s(r,c/f[n],f[n],g,w.offset,m.offset,I),0!==n);--n){for(_=1,b=A.stride,v=E.stride,u=n-1;u=0;--u)v[u]=b[u]=_,_*=f[u];a.assign(A,w),a.assign(E,m),d=w,w=A,A=d,d=m,m=E,E=d}a.assign(t,w),a.assign(e,m),i.free(g)}var a=r("ndarray-ops"),o=r("ndarray"),i=r("typedarray-pool"),s=r("./lib/fft-matrix.js");t.exports=n},{"./lib/fft-matrix.js":1,ndarray:"ndarray","ndarray-ops":3,"typedarray-pool":9}],ndarray:[function(r,t,e){(function(e){function n(r,t){return r[0]-t[0]}function a(){var r,t=this.stride,e=new Array(t.length);for(r=0;rMath.abs(this.stride[1]))?[1,0]:[0,1]}})"):3===t&&o.push("var s0=Math.abs(this.stride[0]),s1=Math.abs(this.stride[1]),s2=Math.abs(this.stride[2]);if(s0>s1){if(s1>s2){return [2,1,0];}else if(s0>s2){return [1,2,0];}else{return [1,0,2];}}else if(s0>s2){return [2,0,1];}else if(s2>s1){return [0,1,2];}else{return [0,2,1];}}})")):o.push("ORDER})")),o.push("proto.set=function "+e+"_set("+f.join(",")+",v){"),n?o.push("return this.data.set("+h+",v)}"):o.push("return this.data["+h+"]=v}"),o.push("proto.get=function "+e+"_get("+f.join(",")+"){"),n?o.push("return this.data.get("+h+")}"):o.push("return this.data["+h+"]}"),o.push("proto.index=function "+e+"_index(",f.join(),"){return "+h+"}"),o.push("proto.hi=function "+e+"_hi("+f.join(",")+"){return new "+e+"(this.data,"+s.map(function(r){return["(typeof i",r,"!=='number'||i",r,"<0)?this.shape[",r,"]:i",r,"|0"].join("")}).join(",")+","+s.map(function(r){return"this.stride["+r+"]"}).join(",")+",this.offset)}");var g=s.map(function(r){return"a"+r+"=this.shape["+r+"]"}),y=s.map(function(r){return"c"+r+"=this.stride["+r+"]"});o.push("proto.lo=function "+e+"_lo("+f.join(",")+"){var b=this.offset,d=0,"+g.join(",")+","+y.join(","));for(var d=0;d=0){d=i"+d+"|0;b+=c"+d+"*d;a"+d+"-=d}");o.push("return new "+e+"(this.data,"+s.map(function(r){return"a"+r}).join(",")+","+s.map(function(r){return"c"+r}).join(",")+",b)}"),o.push("proto.step=function "+e+"_step("+f.join(",")+"){var "+s.map(function(r){return"a"+r+"=this.shape["+r+"]"}).join(",")+","+s.map(function(r){return"b"+r+"=this.stride["+r+"]"}).join(",")+",c=this.offset,d=0,ceil=Math.ceil");for(var d=0;d=0){c=(c+this.stride["+d+"]*i"+d+")|0}else{a.push(this.shape["+d+"]);b.push(this.stride["+d+"])}");o.push("var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}"),o.push("return function construct_"+e+"(data,shape,stride,offset){return new "+e+"(data,"+s.map(function(r){return"shape["+r+"]"}).join(",")+","+s.map(function(r){return"stride["+r+"]"}).join(",")+",offset)}");var i=new Function("CTOR_LIST","ORDER",o.join("\n"));return i(c[r],a)}function i(r){if(h&&e.isBuffer(r))return"buffer";if(f)switch(Object.prototype.toString.call(r)){case"[object Float64Array]":return"float64";case"[object Float32Array]":return"float32";case"[object Int8Array]":return"int8";case"[object Int16Array]":return"int16";case"[object Int32Array]":return"int32";case"[object Uint8Array]":return"uint8";case"[object Uint16Array]":return"uint16";case"[object Uint32Array]":return"uint32";case"[object Uint8ClampedArray]":return"uint8_clamped"}return Array.isArray(r)?"array":"generic"}function s(r,t,e,n){if(void 0===r){var a=c.array[0];return a([])}"number"==typeof r&&(r=[r]),void 0===t&&(t=[r.length]);var s=t.length;if(void 0===e){e=new Array(s);for(var u=s-1,f=1;u>=0;--u)e[u]=f,f*=t[u]}if(void 0===n){n=0;for(var u=0;u>>2,a=new Float32Array(2*t),o=new Float32Array(t),i=new Float32Array(t),s=0,u=r,f=ndarray(o),h=ndarray(i);return function(r){var c,l,p,g=t,y=u,d=a,_=o,b=i;for(d.set(r,s),s+=g,l=0;l+g<=s;l+=n){for(c=0;c>>2,a=new Float32Array(2*r),o=a.subarray(0,r),i=0,s=0,u=t,f=ndarray(u),h=ndarray(u);return function(t,c){var l,p,g,y=r,d=u,_=a;for(f.data=t,h.data=c,ndarray_fft(-1,f,h),g=s,l=0,p=i;p=y;){for(e(o),l=0,p=y;l-1},_frequencyFromNoteNumber=function(r){return 440*Math.pow(2,(r-69)/12)},_getNoteTime=function(r,t){return 1/t*(60/r)},_lZeroPad=function(r,t,e){for(r=""+r;r.length2147483647?t=2147483647:t<-2147483648&&(t=-2147483648),t>>=0,0===this.length)return-1;if(t>=this.length)return-1;if(t<0&&(t=Math.max(this.length+t,0)),"string"==typeof r)return 0===r.length?-1:String.prototype.indexOf.call(this,r,t);if(n.isBuffer(r))return e(this,r,t);if("number"==typeof r)return n.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,r,t):e(this,[r],t);throw new TypeError("val must be string, number or Buffer")},n.prototype.get=function(r){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(r)},n.prototype.set=function(r,t){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(r,t)},n.prototype.write=function(r,t,e,n){if(isFinite(t))isFinite(e)||(n=e,e=void 0);else{var a=n;n=t,t=e,e=a}if(t=Number(t)||0,e<0||t<0||t>this.length)throw new RangeError("attempt to write outside buffer bounds");var c=this.length-t;e?(e=Number(e),e>c&&(e=c)):e=c,n=String(n||"utf8").toLowerCase();var l;switch(n){case"hex":l=o(this,r,t,e);break;case"utf8":case"utf-8":l=i(this,r,t,e);break;case"ascii":l=s(this,r,t,e);break;case"binary":l=u(this,r,t,e);break;case"base64":l=f(this,r,t,e);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":l=h(this,r,t,e);break;default:throw new TypeError("Unknown encoding: "+n)}return l},n.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},n.prototype.slice=function(r,t){var e=this.length;r=~~r,t=void 0===t?e:~~t,r<0?(r+=e,r<0&&(r=0)):r>e&&(r=e),t<0?(t+=e,t<0&&(t=0)):t>e&&(t=e),t>>=0,t>>>=0,e||_(r,t,this.length);for(var n=this[r],a=1,o=0;++o>>=0,t>>>=0,e||_(r,t,this.length);for(var n=this[r+--t],a=1;t>0&&(a*=256);)n+=this[r+--t]*a;return n},n.prototype.readUInt8=function(r,t){return t||_(r,1,this.length),this[r]},n.prototype.readUInt16LE=function(r,t){return t||_(r,2,this.length),this[r]|this[r+1]<<8},n.prototype.readUInt16BE=function(r,t){return t||_(r,2,this.length),this[r]<<8|this[r+1]},n.prototype.readUInt32LE=function(r,t){return t||_(r,4,this.length),(this[r]|this[r+1]<<8|this[r+2]<<16)+16777216*this[r+3]},n.prototype.readUInt32BE=function(r,t){return t||_(r,4,this.length),16777216*this[r]+(this[r+1]<<16|this[r+2]<<8|this[r+3])},n.prototype.readIntLE=function(r,t,e){r>>>=0,t>>>=0,e||_(r,t,this.length);for(var n=this[r],a=1,o=0;++o=a&&(n-=Math.pow(2,8*t)),n},n.prototype.readIntBE=function(r,t,e){r>>>=0,t>>>=0,e||_(r,t,this.length);for(var n=t,a=1,o=this[r+--n];n>0&&(a*=256);)o+=this[r+--n]*a;return a*=128,o>=a&&(o-=Math.pow(2,8*t)),o},n.prototype.readInt8=function(r,t){return t||_(r,1,this.length),128&this[r]?(255-this[r]+1)*-1:this[r]},n.prototype.readInt16LE=function(r,t){t||_(r,2,this.length);var e=this[r]|this[r+1]<<8;return 32768&e?4294901760|e:e},n.prototype.readInt16BE=function(r,t){t||_(r,2,this.length);var e=this[r+1]|this[r]<<8;return 32768&e?4294901760|e:e},n.prototype.readInt32LE=function(r,t){return t||_(r,4,this.length),this[r]|this[r+1]<<8|this[r+2]<<16|this[r+3]<<24},n.prototype.readInt32BE=function(r,t){return t||_(r,4,this.length),this[r]<<24|this[r+1]<<16|this[r+2]<<8|this[r+3]},n.prototype.readFloatLE=function(r,t){return t||_(r,4,this.length),S.read(this,r,!0,23,4)},n.prototype.readFloatBE=function(r,t){return t||_(r,4,this.length),S.read(this,r,!1,23,4)},n.prototype.readDoubleLE=function(r,t){return t||_(r,8,this.length),S.read(this,r,!0,52,8)},n.prototype.readDoubleBE=function(r,t){return t||_(r,8,this.length),S.read(this,r,!1,52,8)},n.prototype.writeUIntLE=function(r,t,e,n){r=+r,t>>>=0,e>>>=0,n||b(this,r,t,e,Math.pow(2,8*e),0);var a=1,o=0;for(this[t]=255&r;++o>>0&255;return t+e},n.prototype.writeUIntBE=function(r,t,e,n){r=+r,t>>>=0,e>>>=0,n||b(this,r,t,e,Math.pow(2,8*e),0);var a=e-1,o=1;for(this[t+a]=255&r;--a>=0&&(o*=256);)this[t+a]=r/o>>>0&255;return t+e},n.prototype.writeUInt8=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,1,255,0),n.TYPED_ARRAY_SUPPORT||(r=Math.floor(r)),this[t]=r,t+1},n.prototype.writeUInt16LE=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,2,65535,0),n.TYPED_ARRAY_SUPPORT?(this[t]=r,this[t+1]=r>>>8):v(this,r,t,!0),t+2},n.prototype.writeUInt16BE=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,2,65535,0),n.TYPED_ARRAY_SUPPORT?(this[t]=r>>>8,this[t+1]=r):v(this,r,t,!1),t+2},n.prototype.writeUInt32LE=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,4,4294967295,0),n.TYPED_ARRAY_SUPPORT?(this[t+3]=r>>>24,this[t+2]=r>>>16,this[t+1]=r>>>8,this[t]=r):w(this,r,t,!0),t+4},n.prototype.writeUInt32BE=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,4,4294967295,0),n.TYPED_ARRAY_SUPPORT?(this[t]=r>>>24,this[t+1]=r>>>16,this[t+2]=r>>>8,this[t+3]=r):w(this,r,t,!1),t+4},n.prototype.writeIntLE=function(r,t,e,n){r=+r,t>>>=0,n||b(this,r,t,e,Math.pow(2,8*e-1)-1,-Math.pow(2,8*e-1));var a=0,o=1,i=r<0?1:0;for(this[t]=255&r;++a>0)-i&255;return t+e},n.prototype.writeIntBE=function(r,t,e,n){r=+r,t>>>=0,n||b(this,r,t,e,Math.pow(2,8*e-1)-1,-Math.pow(2,8*e-1));var a=e-1,o=1,i=r<0?1:0;for(this[t+a]=255&r;--a>=0&&(o*=256);)this[t+a]=(r/o>>0)-i&255;return t+e},n.prototype.writeInt8=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,1,127,-128),n.TYPED_ARRAY_SUPPORT||(r=Math.floor(r)),r<0&&(r=255+r+1),this[t]=r,t+1},n.prototype.writeInt16LE=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,2,32767,-32768),n.TYPED_ARRAY_SUPPORT?(this[t]=r,this[t+1]=r>>>8):v(this,r,t,!0),t+2},n.prototype.writeInt16BE=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,2,32767,-32768),n.TYPED_ARRAY_SUPPORT?(this[t]=r>>>8,this[t+1]=r):v(this,r,t,!1),t+2},n.prototype.writeInt32LE=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,4,2147483647,-2147483648),n.TYPED_ARRAY_SUPPORT?(this[t]=r,this[t+1]=r>>>8,this[t+2]=r>>>16,this[t+3]=r>>>24):w(this,r,t,!0),t+4},n.prototype.writeInt32BE=function(r,t,e){return r=+r,t>>>=0,e||b(this,r,t,4,2147483647,-2147483648),r<0&&(r=4294967295+r+1),n.TYPED_ARRAY_SUPPORT?(this[t]=r>>>24,this[t+1]=r>>>16,this[t+2]=r>>>8,this[t+3]=r):w(this,r,t,!1),t+4},n.prototype.writeFloatLE=function(r,t,e){return A(this,r,t,!0,e)},n.prototype.writeFloatBE=function(r,t,e){return A(this,r,t,!1,e)},n.prototype.writeDoubleLE=function(r,t,e){return E(this,r,t,!0,e)},n.prototype.writeDoubleBE=function(r,t,e){return E(this,r,t,!1,e)},n.prototype.copy=function(r,t,e,a){if(e||(e=0),a||0===a||(a=this.length),t>=r.length&&(t=r.length),t||(t=0),a>0&&a=this.length)throw new RangeError("sourceStart out of bounds");if(a<0)throw new RangeError("sourceEnd out of bounds");a>this.length&&(a=this.length),r.length-t=this.length)throw new RangeError("start out of bounds");if(e<0||e>this.length)throw new RangeError("end out of bounds");var n;if("number"==typeof r)for(n=t;n0)throw new Error("Invalid string. Length must be a multiple of 4");var h=r.length;u="="===r.charAt(h-2)?2:"="===r.charAt(h-1)?1:0,f=new o(3*r.length/4-u),i=u>0?r.length-4:r.length;var c=0;for(n=0,a=0;n>16),e((65280&s)>>8),e(255&s);return 2===u?(s=t(r.charAt(n))<<2|t(r.charAt(n+1))>>4,e(255&s)):1===u&&(s=t(r.charAt(n))<<10|t(r.charAt(n+1))<<4|t(r.charAt(n+2))>>2,e(s>>8&255),e(255&s)),f}function a(r){function t(r){return n.charAt(r)}function e(r){return t(r>>18&63)+t(r>>12&63)+t(r>>6&63)+t(63&r)}var a,o,i,s=r.length%3,u="";for(a=0,i=r.length-s;a>2),u+=t(o<<4&63),u+="==";break;case 2:o=(r[r.length-2]<<8)+r[r.length-1],u+=t(o>>10),u+=t(o>>4&63),u+=t(o<<2&63),u+="="}return u}var o="undefined"!=typeof Uint8Array?Uint8Array:Array,i="+".charCodeAt(0),s="/".charCodeAt(0),u="0".charCodeAt(0),f="a".charCodeAt(0),h="A".charCodeAt(0),c="-".charCodeAt(0),l="_".charCodeAt(0);r.toByteArray=e,r.fromByteArray=a}("undefined"==typeof e?this.base64js={}:e)},{}],13:[function(r,t,e){e.read=function(r,t,e,n,a){var o,i,s=8*a-n-1,u=(1<>1,h=-7,c=e?a-1:0,l=e?-1:1,p=r[t+c];for(c+=l,o=p&(1<<-h)-1,p>>=-h,h+=s;h>0;o=256*o+r[t+c],c+=l,h-=8);for(i=o&(1<<-h)-1,o>>=-h,h+=n;h>0;i=256*i+r[t+c],c+=l,h-=8);if(0===o)o=1-f;else{if(o===u)return i?NaN:(p?-1:1)*(1/0);i+=Math.pow(2,n),o-=f}return(p?-1:1)*i*Math.pow(2,o-n)},e.write=function(r,t,e,n,a,o){var i,s,u,f=8*o-a-1,h=(1<>1,l=23===a?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:o-1,g=n?1:-1,y=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,i=h):(i=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-i))<1&&(i--,u*=2),t+=i+c>=1?l/u:l*Math.pow(2,1-c),t*u>=2&&(i++,u/=2),i+c>=h?(s=0,i=h):i+c>=1?(s=(t*u-1)*Math.pow(2,a),i+=c):(s=t*Math.pow(2,c-1)*Math.pow(2,a),i=0));a>=8;r[e+p]=255&s,p+=g,s/=256,a-=8);for(i=i<0;r[e+p]=255&i,p+=g,i/=256,f-=8);r[e+p-g]|=128*y}},{}],14:[function(r,t,e){var n=Array.isArray,a=Object.prototype.toString;t.exports=n||function(r){return!!r&&"[object Array]"==a.call(r)}},{}],"ndarray-fft":[function(r,t,e){"use strict";function n(r,t,e){var n,u,f=t.shape,h=f.length,c=1,l=new Array(h),p=0;for(n=h-1;n>=0;--n)if(l[n]=c,c*=f[n],p=Math.max(p,s.scratchMemory(f[n])),t.shape[n]!==e.shape[n])throw new Error("Shape mismatch, real and imaginary arrays must have same size");var g,y=4*c+p;g="array"===t.dtype||"float64"===t.dtype||"custom"===t.dtype?i.mallocDouble(y):i.mallocFloat(y);var d,_,b,v,w=o(g,f.slice(0),l,0),m=o(g,f.slice(0),l.slice(0),c),A=o(g,f.slice(0),l.slice(0),2*c),E=o(g,f.slice(0),l.slice(0),3*c),I=4*c;for(a.assign(w,t),a.assign(m,e),n=h-1;n>=0&&(s(r,c/f[n],f[n],g,w.offset,m.offset,I),0!==n);--n){for(_=1,b=A.stride,v=E.stride,u=n-1;u=0;--u)v[u]=b[u]=_,_*=f[u];a.assign(A,w),a.assign(E,m),d=w,w=A,A=d,d=m,m=E,E=d}a.assign(t,w),a.assign(e,m),i.free(g)}var a=r("ndarray-ops"),o=r("ndarray"),i=r("typedarray-pool"),s=r("./lib/fft-matrix.js");t.exports=n},{"./lib/fft-matrix.js":1,ndarray:"ndarray","ndarray-ops":3,"typedarray-pool":9}],ndarray:[function(r,t,e){(function(e){function n(r,t){return r[0]-t[0]}function a(){var r,t=this.stride,e=new Array(t.length);for(r=0;rMath.abs(this.stride[1]))?[1,0]:[0,1]}})"):3===t&&o.push("var s0=Math.abs(this.stride[0]),s1=Math.abs(this.stride[1]),s2=Math.abs(this.stride[2]);if(s0>s1){if(s1>s2){return [2,1,0];}else if(s0>s2){return [1,2,0];}else{return [1,0,2];}}else if(s0>s2){return [2,0,1];}else if(s2>s1){return [0,1,2];}else{return [0,2,1];}}})")):o.push("ORDER})")),o.push("proto.set=function "+e+"_set("+f.join(",")+",v){"),n?o.push("return this.data.set("+h+",v)}"):o.push("return this.data["+h+"]=v}"),o.push("proto.get=function "+e+"_get("+f.join(",")+"){"),n?o.push("return this.data.get("+h+")}"):o.push("return this.data["+h+"]}"),o.push("proto.index=function "+e+"_index(",f.join(),"){return "+h+"}"),o.push("proto.hi=function "+e+"_hi("+f.join(",")+"){return new "+e+"(this.data,"+s.map(function(r){return["(typeof i",r,"!=='number'||i",r,"<0)?this.shape[",r,"]:i",r,"|0"].join("")}).join(",")+","+s.map(function(r){return"this.stride["+r+"]"}).join(",")+",this.offset)}");var g=s.map(function(r){return"a"+r+"=this.shape["+r+"]"}),y=s.map(function(r){return"c"+r+"=this.stride["+r+"]"});o.push("proto.lo=function "+e+"_lo("+f.join(",")+"){var b=this.offset,d=0,"+g.join(",")+","+y.join(","));for(var d=0;d=0){d=i"+d+"|0;b+=c"+d+"*d;a"+d+"-=d}");o.push("return new "+e+"(this.data,"+s.map(function(r){return"a"+r}).join(",")+","+s.map(function(r){return"c"+r}).join(",")+",b)}"),o.push("proto.step=function "+e+"_step("+f.join(",")+"){var "+s.map(function(r){return"a"+r+"=this.shape["+r+"]"}).join(",")+","+s.map(function(r){return"b"+r+"=this.stride["+r+"]"}).join(",")+",c=this.offset,d=0,ceil=Math.ceil");for(var d=0;d=0){c=(c+this.stride["+d+"]*i"+d+")|0}else{a.push(this.shape["+d+"]);b.push(this.stride["+d+"])}");o.push("var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}"),o.push("return function construct_"+e+"(data,shape,stride,offset){return new "+e+"(data,"+s.map(function(r){return"shape["+r+"]"}).join(",")+","+s.map(function(r){return"stride["+r+"]"}).join(",")+",offset)}");var i=new Function("CTOR_LIST","ORDER",o.join("\n"));return i(c[r],a)}function i(r){if(h&&e.isBuffer(r))return"buffer";if(f)switch(Object.prototype.toString.call(r)){case"[object Float64Array]":return"float64";case"[object Float32Array]":return"float32";case"[object Int8Array]":return"int8";case"[object Int16Array]":return"int16";case"[object Int32Array]":return"int32";case"[object Uint8Array]":return"uint8";case"[object Uint16Array]":return"uint16";case"[object Uint32Array]":return"uint32";case"[object Uint8ClampedArray]":return"uint8_clamped"}return Array.isArray(r)?"array":"generic"}function s(r,t,e,n){if(void 0===r){var a=c.array[0];return a([])}"number"==typeof r&&(r=[r]),void 0===t&&(t=[r.length]);var s=t.length;if(void 0===e){e=new Array(s);for(var u=s-1,f=1;u>=0;--u)e[u]=f,f*=t[u]}if(void 0===n){n=0;for(var u=0;u>>2,a=new Float32Array(2*t),o=new Float32Array(t),i=new Float32Array(t),s=0,u=r,f=ndarray(o),h=ndarray(i);return function(r){var c,l,p,g=t,y=u,d=a,_=o,b=i;for(d.set(r,s),s+=g,l=0;l+g<=s;l+=n){for(c=0;c>>2,a=new Float32Array(2*r),o=a.subarray(0,r),i=0,s=0,u=t,f=ndarray(u),h=ndarray(u);return function(t,c){var l,p,g,y=r,d=u,_=a;for(f.data=t,h.data=c,ndarray_fft(-1,f,h),g=s,l=0,p=i;p=y;){for(e(o),l=0,p=y;l-1},_frequencyFromNoteNumber=function(r){return 440*Math.pow(2,(r-69)/12)},_getNoteTime=function(r,t){return 1/t*(60/r)},_lZeroPad=function(r,t,e){for(r=""+r;r.lengthgi&&(gi=mi,_i=[]),_i.push(t))}function p(t,r,e){return new n(n.buildMessage(t,r),t,r,e)}function h(){var t;return t=T()}function v(){var r,n;return r=mi,Fr.test(t.charAt(mi))?(n=t.charAt(mi),mi++):(n=_r,0===xi&&f(Er)),n!==_r&&(wi=r,n=jr()),r=n}function d(){var r,n;return r=mi,xi++,t.length>mi?(n=t.charAt(mi),mi++):(n=_r,0===xi&&f(Tr)),xi--,n===_r?r=void 0:(mi=r,r=_r),r}function A(){var r,n;if(xi++,r=[],n=v(),n===_r&&(kr.test(t.charAt(mi))?(n=t.charAt(mi),mi++):(n=_r,0===xi&&f(Ir)),n===_r&&(Pr.test(t.charAt(mi))?(n=t.charAt(mi),mi++):(n=_r,0===xi&&f(Br)),n===_r&&(n=m()))),n!==_r)for(;n!==_r;)r.push(n),n=v(),n===_r&&(kr.test(t.charAt(mi))?(n=t.charAt(mi),mi++):(n=_r,0===xi&&f(Ir)),n===_r&&(Pr.test(t.charAt(mi))?(n=t.charAt(mi),mi++):(n=_r,0===xi&&f(Br)),n===_r&&(n=m())));else r=_r;return xi--,r===_r&&(n=_r,0===xi&&f(zr)),r}function y(){var r,n,e,u,o,a;if(r=mi,t.substr(mi,2)===Dr?(n=Dr,mi+=2):(n=_r,0===xi&&f(Lr)),n!==_r){for(e=[],u=mi,o=mi,xi++,t.substr(mi,2)===Zr?(a=Zr,mi+=2):(a=_r,0===xi&&f(qr)),xi--,a===_r?o=void 0:(mi=o,o=_r),o!==_r?(t.length>mi?(a=t.charAt(mi),mi++):(a=_r,0===xi&&f(Tr)),a!==_r?(o=[o,a],u=o):(mi=u,u=_r)):(mi=u,u=_r);u!==_r;)e.push(u),u=mi,o=mi,xi++,t.substr(mi,2)===Zr?(a=Zr,mi+=2):(a=_r,0===xi&&f(qr)),xi--,a===_r?o=void 0:(mi=o,o=_r),o!==_r?(t.length>mi?(a=t.charAt(mi),mi++):(a=_r,0===xi&&f(Tr)),a!==_r?(o=[o,a],u=o):(mi=u,u=_r)):(mi=u,u=_r);e!==_r?(t.substr(mi,2)===Zr?(u=Zr,mi+=2):(u=_r,0===xi&&f(qr)),u!==_r?(n=[n,e,u],r=n):(mi=r,r=_r)):(mi=r,r=_r)}else mi=r,r=_r;if(r===_r)if(r=mi,t.substr(mi,2)===Qr?(n=Qr,mi+=2):(n=_r,0===xi&&f(Rr)),n!==_r){for(e=[],Mr.test(t.charAt(mi))?(u=t.charAt(mi),mi++):(u=_r,0===xi&&f(Gr));u!==_r;)e.push(u),Mr.test(t.charAt(mi))?(u=t.charAt(mi),mi++):(u=_r,0===xi&&f(Gr));e!==_r?(n=[n,e],r=n):(mi=r,r=_r)}else mi=r,r=_r;return r}function b(){var r,n;if(r=[],Pr.test(t.charAt(mi))?(n=t.charAt(mi),mi++):(n=_r,0===xi&&f(Br)),n===_r&&(n=y()),n!==_r)for(;n!==_r;)r.push(n),Pr.test(t.charAt(mi))?(n=t.charAt(mi),mi++):(n=_r,0===xi&&f(Br)),n===_r&&(n=y());else r=_r;return r}function m(){var r,n,e,u,o,a;if(xi++,r=mi,t.substr(mi,2)===Dr?(n=Dr,mi+=2):(n=_r,0===xi&&f(Lr)),n!==_r){for(e=[],u=mi,o=mi,xi++,t.substr(mi,2)===Zr?(a=Zr,mi+=2):(a=_r,0===xi&&f(qr)),xi--,a===_r?o=void 0:(mi=o,o=_r),o!==_r?(t.length>mi?(a=t.charAt(mi),mi++):(a=_r,0===xi&&f(Tr)),a!==_r?(o=[o,a],u=o):(mi=u,u=_r)):(mi=u,u=_r);u!==_r;)e.push(u),u=mi,o=mi,xi++,t.substr(mi,2)===Zr?(a=Zr,mi+=2):(a=_r,0===xi&&f(qr)),xi--,a===_r?o=void 0:(mi=o,o=_r),o!==_r?(t.length>mi?(a=t.charAt(mi),mi++):(a=_r,0===xi&&f(Tr)),a!==_r?(o=[o,a],u=o):(mi=u,u=_r)):(mi=u,u=_r);e!==_r?(t.substr(mi,2)===Zr?(u=Zr,mi+=2):(u=_r,0===xi&&f(qr)),u!==_r?(n=[n,e,u],r=n):(mi=r,r=_r)):(mi=r,r=_r)}else mi=r,r=_r;if(r===_r)if(r=mi,t.substr(mi,2)===Qr?(n=Qr,mi+=2):(n=_r,0===xi&&f(Rr)),n!==_r){for(e=[],Mr.test(t.charAt(mi))?(u=t.charAt(mi),mi++):(u=_r,0===xi&&f(Gr));u!==_r;)e.push(u),Mr.test(t.charAt(mi))?(u=t.charAt(mi),mi++):(u=_r,0===xi&&f(Gr));e!==_r?(u=v(),u===_r&&(u=d()),u!==_r?(n=[n,e,u],r=n):(mi=r,r=_r)):(mi=r,r=_r)}else mi=r,r=_r;return xi--,r===_r&&(n=_r,0===xi&&f(Or)),r}function w(){var r,n,e,u;return r=mi,n=A(),n===_r&&(n=null),n!==_r?(59===t.charCodeAt(mi)?(e=Ur,mi++):(e=_r,0===xi&&f(Xr)),e!==_r?(u=A(),u===_r&&(u=null),u!==_r?(n=[n,e,u],r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r}function C(){var r,n,e,u;return r=mi,n=A(),n===_r&&(n=null),n!==_r?(44===t.charCodeAt(mi)?(e=Nr,mi++):(e=_r,0===xi&&f(Wr)),e!==_r?(u=A(),u===_r&&(u=null),u!==_r?(n=[n,e,u],r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r}function g(){var r,n,e,u;return r=mi,n=A(),n===_r&&(n=null),n!==_r?(91===t.charCodeAt(mi)?(e=Hr,mi++):(e=_r,0===xi&&f(Jr)),e!==_r?(u=A(),u===_r&&(u=null),u!==_r?(n=[n,e,u],r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r}function _(){var r,n,e,u;return r=mi,n=A(),n===_r&&(n=null),n!==_r?(93===t.charCodeAt(mi)?(e=Kr,mi++):(e=_r,0===xi&&f(Vr)),e!==_r?(u=A(),u===_r&&(u=null),u!==_r?(n=[n,e,u],r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r}function x(){var r,n,e,u;return r=mi,n=A(),n===_r&&(n=null),n!==_r?(61===t.charCodeAt(mi)?(e=Yr,mi++):(e=_r,0===xi&&f($r)),e!==_r?(u=A(),u===_r&&(u=null),u!==_r?(n=[n,e,u],r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r}function S(){var r,n,e,u;return r=mi,n=A(),n===_r&&(n=null),n!==_r?(40===t.charCodeAt(mi)?(e=tn,mi++):(e=_r,0===xi&&f(rn)),e!==_r?(u=A(),u===_r&&(u=null),u!==_r?(n=[n,e,u],r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r}function F(){var r,n,e,u;return r=mi,n=A(),n===_r&&(n=null),n!==_r?(41===t.charCodeAt(mi)?(e=nn,mi++):(e=_r,0===xi&&f(en)),e!==_r?(u=A(),u===_r&&(u=null),u!==_r?(n=[n,e,u],r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r}function E(){var r,n,e,u;return r=mi,n=A(),n===_r&&(n=null),n!==_r?(123===t.charCodeAt(mi)?(e=un,mi++):(e=_r,0===xi&&f(on)),e!==_r?(u=A(),u===_r&&(u=null),u!==_r?(n=[n,e,u],r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r}function j(){var r,n,e,u;return r=mi,n=A(),n===_r&&(n=null),n!==_r?(125===t.charCodeAt(mi)?(e=an,mi++):(e=_r,0===xi&&f(sn)),e!==_r?(u=A(),u===_r&&(u=null),u!==_r?(n=[n,e,u],r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r}function T(){var t,r,n;for(t=mi,r=[],n=z();n!==_r;)r.push(n),n=z();return r!==_r&&(wi=t,r=cn(r)),t=r}function z(){var t,r;return t=mi,r=M(),r===_r&&(r=k()),r!==_r&&(wi=t,r=ln(r)),t=r,t===_r&&(t=mi,r=A(),r!==_r&&(wi=t,r=fn()),t=r),t}function k(){var t;return t=O(),t===_r&&(t=ut(),t===_r&&(t=L(),t===_r&&(t=I(),t===_r&&(t=bt(),t===_r&&(t=D()))))),t}function I(){var r,n,e,u,o,a,i;if(r=mi,35===t.charCodeAt(mi)?(n=pn,mi++):(n=_r,0===xi&&f(hn)),n!==_r)if(t.substr(mi,5)===vn?(e=vn,mi+=5):(e=_r,0===xi&&f(dn)),e===_r&&(t.substr(mi,6)===An?(e=An,mi+=6):(e=_r,0===xi&&f(yn)),e===_r&&(t.substr(mi,7)===bn?(e=bn,mi+=7):(e=_r,0===xi&&f(mn)),e===_r&&(t.substr(mi,5)===wn?(e=wn,mi+=5):(e=_r,0===xi&&f(Cn)),e===_r&&(t.substr(mi,9)===gn?(e=gn,mi+=9):(e=_r,0===xi&&f(_n)),e===_r&&(t.substr(mi,4)===xn?(e=xn,mi+=4):(e=_r,0===xi&&f(Sn))))))),e!==_r)if(u=A(),u!==_r){for(o=mi,a=[],Mr.test(t.charAt(mi))?(i=t.charAt(mi),mi++):(i=_r,0===xi&&f(Gr));i!==_r;)a.push(i),Mr.test(t.charAt(mi))?(i=t.charAt(mi),mi++):(i=_r,0===xi&&f(Gr));a!==_r&&(wi=o,a=Fn(e,a)),o=a,o!==_r?(a=v(),a===_r&&(a=d()),a!==_r?(wi=r,n=En(e,o),r=n):(mi=r,r=_r)):(mi=r,r=_r)}else mi=r,r=_r;else mi=r,r=_r;else mi=r,r=_r;return r}function P(){var r,n,e,u;if(r=mi,jn.test(t.charAt(mi))?(n=t.charAt(mi),mi++):(n=_r,0===xi&&f(Tn)),n!==_r){for(e=[],zn.test(t.charAt(mi))?(u=t.charAt(mi),mi++):(u=_r,0===xi&&f(kn));u!==_r;)e.push(u),zn.test(t.charAt(mi))?(u=t.charAt(mi),mi++):(u=_r,0===xi&&f(kn));e!==_r?(wi=r,n=In(n,e),r=n):(mi=r,r=_r)}else mi=r,r=_r;return r}function B(){var r,n,e,u,o,a,i;if(r=mi,40===t.charCodeAt(mi)?(n=tn,mi++):(n=_r,0===xi&&f(rn)),n!==_r)if(e=P(),e===_r&&(e=null),e!==_r){for(u=[],o=mi,a=C(),a!==_r?(i=P(),i!==_r?(a=[a,i],o=a):(mi=o,o=_r)):(mi=o,o=_r);o!==_r;)u.push(o),o=mi,a=C(),a!==_r?(i=P(),i!==_r?(a=[a,i],o=a):(mi=o,o=_r)):(mi=o,o=_r);u!==_r?(o=F(),o!==_r?(wi=r,n=Pn(e,u),r=n):(mi=r,r=_r)):(mi=r,r=_r)}else mi=r,r=_r;else mi=r,r=_r;return r}function D(){var r,n,e,u,o,a;return r=mi,n=P(),n!==_r?(e=A(),e===_r&&(e=null),e!==_r?(u=S(),u!==_r?(o=Ot(),o===_r&&(o=null),o!==_r?(41===t.charCodeAt(mi)?(a=nn,mi++):(a=_r,0===xi&&f(en)),a!==_r?(wi=r,n=Bn(n,o),r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r}function L(){var r,n,e,u,o,a,i,s,c,l,p;if(r=mi,35===t.charCodeAt(mi)?(n=pn,mi++):(n=_r,0===xi&&f(hn)),n!==_r)if(e=A(),e===_r&&(e=null),e!==_r)if(t.substr(mi,6)===Dn?(u=Dn,mi+=6):(u=_r,0===xi&&f(Ln)),u!==_r)if(o=A(),o!==_r)if(a=P(),a!==_r)if(i=B(),i===_r&&(i=null),i!==_r){for(s=[],Zn.test(t.charAt(mi))?(c=t.charAt(mi),mi++):(c=_r,0===xi&&f(qn));c!==_r;)s.push(c),Zn.test(t.charAt(mi))?(c=t.charAt(mi),mi++):(c=_r,0===xi&&f(qn));if(s!==_r){for(c=mi,l=[],Mr.test(t.charAt(mi))?(p=t.charAt(mi),mi++):(p=_r,0===xi&&f(Gr));p!==_r;)l.push(p),Mr.test(t.charAt(mi))?(p=t.charAt(mi),mi++):(p=_r,0===xi&&f(Gr));l!==_r&&(wi=c,l=Qn(a,i,l)),c=l,c!==_r?(l=v(),l===_r&&(l=d()),l!==_r?(wi=r,n=Rn(a,i,c),r=n):(mi=r,r=_r)):(mi=r,r=_r)}else mi=r,r=_r}else mi=r,r=_r;else mi=r,r=_r;else mi=r,r=_r;else mi=r,r=_r;else mi=r,r=_r;else mi=r,r=_r;return r}function Z(){var r,n,e,u,o,a,i,s;if(r=mi,35===t.charCodeAt(mi)?(n=pn,mi++):(n=_r,0===xi&&f(hn)),n!==_r)if(e=A(),e===_r&&(e=null),e!==_r)if(t.substr(mi,5)===Mn?(u=Mn,mi+=5):(u=_r,0===xi&&f(Gn)),u===_r&&(t.substr(mi,6)===On?(u=On,mi+=6):(u=_r,0===xi&&f(Un)),u===_r&&(t.substr(mi,2)===Xn?(u=Xn,mi+=2):(u=_r,0===xi&&f(Nn)))),u!==_r)if(o=A(),o!==_r){for(a=mi,i=[],Mr.test(t.charAt(mi))?(s=t.charAt(mi),mi++):(s=_r,0===xi&&f(Gr));s!==_r;)i.push(s),Mr.test(t.charAt(mi))?(s=t.charAt(mi),mi++):(s=_r,0===xi&&f(Gr));i!==_r&&(wi=a,i=Fn(u,i)),a=i,a!==_r?(i=v(),i===_r&&(i=d()),i!==_r?(wi=r,n=Wn(u,a),r=n):(mi=r,r=_r)):(mi=r,r=_r)}else mi=r,r=_r;else mi=r,r=_r;else mi=r,r=_r;else mi=r,r=_r;return r}function q(){var r,n,e,u,o,a,i,s;if(r=mi,35===t.charCodeAt(mi)?(n=pn,mi++):(n=_r,0===xi&&f(hn)),n!==_r)if(e=A(),e===_r&&(e=null),e!==_r)if(t.substr(mi,4)===Hn?(u=Hn,mi+=4):(u=_r,0===xi&&f(Jn)),u!==_r)if(o=A(),o!==_r){for(a=mi,i=[],Mr.test(t.charAt(mi))?(s=t.charAt(mi),mi++):(s=_r,0===xi&&f(Gr));s!==_r;)i.push(s),Mr.test(t.charAt(mi))?(s=t.charAt(mi),mi++):(s=_r,0===xi&&f(Gr));i!==_r&&(wi=a,i=Kn(i)),a=i,a!==_r?(i=v(),i===_r&&(i=d()),i!==_r?(wi=r,n=Vn(a),r=n):(mi=r,r=_r)):(mi=r,r=_r)}else mi=r,r=_r;else mi=r,r=_r;else mi=r,r=_r;else mi=r,r=_r;return r}function Q(){var r,n,e,u,o,a;return r=mi,35===t.charCodeAt(mi)?(n=pn,mi++):(n=_r,0===xi&&f(hn)),n!==_r?(e=A(),e===_r&&(e=null),e!==_r?(t.substr(mi,4)===Yn?(u=Yn,mi+=4):(u=_r,0===xi&&f($n)),u!==_r?(o=b(),o===_r&&(o=null),o!==_r?(a=v(),a!==_r?(wi=r,n=te(),r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r}function R(){var r,n,e,u,o,a,i;return r=mi,35===t.charCodeAt(mi)?(n=pn,mi++):(n=_r,0===xi&&f(hn)),n!==_r?(e=A(),e===_r&&(e=null),e!==_r?(t.substr(mi,5)===re?(u=re,mi+=5):(u=_r,0===xi&&f(ne)),u!==_r?(o=b(),o===_r&&(o=null),o!==_r?(a=v(),a===_r&&(a=d()),a!==_r?(i=A(),i===_r&&(i=null),i!==_r?(n=[n,e,u,o,a,i],r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r}function M(){var t,r,n,e,u,o;if(t=mi,r=mi,n=Z(),n!==_r?(e=T(),e!==_r?(n=[n,e],r=n):(mi=r,r=_r)):(mi=r,r=_r),r!==_r){for(n=[],e=mi,u=q(),u!==_r?(o=T(),o!==_r?(u=[u,o],e=u):(mi=e,e=_r)):(mi=e,e=_r);e!==_r;)n.push(e),e=mi,u=q(),u!==_r?(o=T(),o!==_r?(u=[u,o],e=u):(mi=e,e=_r)):(mi=e,e=_r);n!==_r?(e=mi,u=Q(),u!==_r?(o=T(),o!==_r?(u=[u,o],e=u):(mi=e,e=_r)):(mi=e,e=_r),e===_r&&(e=null),e!==_r?(u=R(),u!==_r?(wi=t,r=ee(r,n,e),t=r):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r)}else mi=t,t=_r;return t}function G(){var t,r,n,e,u,o;if(t=mi,r=mi,n=Z(),n!==_r?(e=X(),e!==_r?(n=[n,e],r=n):(mi=r,r=_r)):(mi=r,r=_r),r!==_r){for(n=[],e=mi,u=q(),u!==_r?(o=X(),o!==_r?(u=[u,o],e=u):(mi=e,e=_r)):(mi=e,e=_r);e!==_r;)n.push(e),e=mi,u=q(),u!==_r?(o=X(),o!==_r?(u=[u,o],e=u):(mi=e,e=_r)):(mi=e,e=_r);n!==_r?(e=mi,u=Q(),u!==_r?(o=X(),o!==_r?(u=[u,o],e=u):(mi=e,e=_r)):(mi=e,e=_r),e===_r&&(e=null),e!==_r?(u=R(),u!==_r?(wi=t,r=ee(r,n,e),t=r):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r)}else mi=t,t=_r;return t}function O(){var t,r,n;return t=mi,r=at(),r!==_r?(n=U(),n!==_r?(wi=t,r=ue(r,n),t=r):(mi=t,t=_r)):(mi=t,t=_r),t}function U(){var t,r,n,e;return t=mi,r=E(),r!==_r?(n=X(),n===_r&&(n=null),n!==_r?(e=j(),e!==_r?(wi=t,r=oe(n),t=r):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r),t}function X(){var t,r,n,e;if(t=mi,r=A(),r===_r&&(r=null),r!==_r){for(n=[],e=N();e!==_r;)n.push(e),e=N();n!==_r?(e=A(),e===_r&&(e=null),e!==_r?(wi=t,r=ae(n),t=r):(mi=t,t=_r)):(mi=t,t=_r)}else mi=t,t=_r;return t}function N(){var t;return t=U(),t===_r&&(t=H(),t===_r&&(t=G())),t}function W(){var t;return t=U(),t===_r&&(t=H(),t===_r&&(t=G())),t}function H(){var t,r;return t=mi,r=et(),r===_r&&(r=nt(),r===_r&&(r=J(),r===_r&&(r=tt(),r===_r&&(r=rt(),r===_r&&(r=L(),r===_r&&(r=I(),r===_r&&(r=D()))))))),r!==_r&&(wi=t,r=ie(r)),t=r}function J(){var r,n,e,u,o,a,i,s,c,l;return r=mi,t.substr(mi,2)===Xn?(n=Xn,mi+=2):(n=_r,0===xi&&f(Nn)),n!==_r?(e=S(),e!==_r?(u=Ar(),u!==_r?(o=F(),o!==_r?(a=W(),a!==_r?(i=mi,t.substr(mi,4)===Yn?(s=Yn,mi+=4):(s=_r,0===xi&&f($n)),s!==_r?(c=A(),c===_r&&(c=null),c!==_r?(l=W(),l!==_r?(s=[s,c,l],i=s):(mi=i,i=_r)):(mi=i,i=_r)):(mi=i,i=_r),i===_r&&(i=null),i!==_r?(wi=r,n=se(u,a,i),r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r}function K(){var r,n,e,u,o,a,i,s,c;return r=mi,t.substr(mi,3)===ce?(n=ce,mi+=3):(n=_r,0===xi&&f(le)),n!==_r?(e=S(),e!==_r?(u=nt(),u===_r&&(u=et()),u!==_r?(o=yr(),o===_r&&(o=null),o!==_r?(a=w(),a!==_r?(i=Ar(),i===_r&&(i=null),i!==_r?(s=F(),s!==_r?(c=N(),c!==_r?(wi=r,n=fe(u,o,i,c),r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r}function V(){var r,n,e,u,o;return r=mi,t.substr(mi,5)===pe?(n=pe,mi+=5):(n=_r,0===xi&&f(he)),n!==_r?(e=S(),e!==_r?(u=yr(),u!==_r?(o=F(),o!==_r?(wi=r,n=ve(u),r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r}function Y(){var t,r,n;return t=mi,r=V(),r!==_r?(n=N(),n!==_r?(wi=t,r=de(r,n),t=r):(mi=t,t=_r)):(mi=t,t=_r),t}function $(){var r,n,e,u;return r=mi,t.substr(mi,2)===Ae?(n=Ae,mi+=2):(n=_r,0===xi&&f(ye)),n!==_r?(e=W(),e!==_r?(u=V(),u!==_r?(wi=r,n=be(e,u),r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r}function tt(){var t;return t=Y(),t===_r&&(t=$(),t===_r&&(t=K())),t}function rt(){var r,n,e,u,o;return r=mi,t.substr(mi,6)===me?(n=me,mi+=6):(n=_r,0===xi&&f(we)),n!==_r?(e=Ar(),e!==_r?(u=w(),u!==_r?(wi=r,n=Ce(e),r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r===_r&&(r=mi,n=mi,t.substr(mi,8)===ge?(e=ge,mi+=8):(e=_r,0===xi&&f(_e)),e!==_r?(u=w(),u!==_r?(e=[e,u],n=e):(mi=n,n=_r)):(mi=n,n=_r),n===_r&&(n=mi,t.substr(mi,5)===xe?(e=xe,mi+=5):(e=_r,0===xi&&f(Se)),e!==_r?(u=w(),u!==_r?(e=[e,u],n=e):(mi=n,n=_r)):(mi=n,n=_r),n===_r&&(n=mi,t.substr(mi,6)===me?(e=me,mi+=6):(e=_r,0===xi&&f(we)),e!==_r?(u=w(),u!==_r?(e=[e,u],n=e):(mi=n,n=_r)):(mi=n,n=_r),n===_r&&(n=mi,e=mi,wi=mi,u=Fe(),u=u?void 0:_r,u!==_r?(t.substr(mi,7)===Ee?(o=Ee,mi+=7):(o=_r,0===xi&&f(je)),o!==_r?(wi=e,u=Te(),e=u):(mi=e,e=_r)):(mi=e,e=_r),e!==_r?(u=w(),u!==_r?(e=[e,u],n=e):(mi=n,n=_r)):(mi=n,n=_r)))),n!==_r&&(wi=r,n=ze(n)),r=n),r}function nt(){var t,r,n;return t=mi,r=Ar(),r===_r&&(r=null),r!==_r?(n=w(),n!==_r?(wi=t,r=ke(r),t=r):(mi=t,t=_r)):(mi=t,t=_r),t}function et(){var r,n,e,u,o,a,i,s,c;if(xi++,r=mi,n=at(),n!==_r?(e=w(),e!==_r?(wi=r,n=Pe(n),r=n):(mi=r,r=_r)):(mi=r,r=_r),r===_r&&(r=mi,n=wt(),n!==_r?(e=A(),e!==_r?(u=ct(),u!==_r?(o=w(),o!==_r?(wi=r,n=Be(n,u),r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r===_r)){if(r=mi,wi=mi,n=De(),n=n?void 0:_r,n!==_r)if(t.substr(mi,9)===Le?(e=Le,mi+=9):(e=_r,0===xi&&f(Ze)),e!==_r)if(u=A(),u!==_r)if(o=Tt(),o!==_r){for(a=[],i=mi,s=C(),s!==_r?(c=Tt(),c!==_r?(s=[s,c],i=s):(mi=i,i=_r)):(mi=i,i=_r);i!==_r;)a.push(i),i=mi,s=C(),s!==_r?(c=Tt(),c!==_r?(s=[s,c],i=s):(mi=i,i=_r)):(mi=i,i=_r);a!==_r?(i=w(),i!==_r?(wi=r,n=qe(o,a),r=n):(mi=r,r=_r)):(mi=r,r=_r)}else mi=r,r=_r;else mi=r,r=_r;else mi=r,r=_r;else mi=r,r=_r;r===_r&&(r=mi,t.substr(mi,9)===Qe?(n=Qe,mi+=9):(n=_r,0===xi&&f(Re)),n!==_r?(e=A(),e!==_r?(u=xt(),u!==_r?(o=A(),o!==_r?(a=jt(),a!==_r?(i=w(),i!==_r?(wi=r,n=Me(u,a),r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r))}return xi--,r===_r&&(n=_r,0===xi&&f(Ie)),r}function ut(){var t,r,n,e,u;return t=et(),t===_r&&(t=mi,r=_t(),r!==_r?(n=A(),n!==_r?(e=ct(),e!==_r?(u=w(),u!==_r?(wi=t,r=Ge(r,e),t=r):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r),t===_r&&(t=mi,r=gt(),r!==_r?(n=A(),n!==_r?(e=ft(),e!==_r?(u=w(),u!==_r?(wi=t,r=Ge(r,e),t=r):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r))),t}function ot(){var r,n,e,u,o,a;if(t.substr(mi,4)===Oe?(r=Oe,mi+=4):(r=_r,0===xi&&f(Ue)),r===_r)if(r=mi,n=st(),n!==_r){for(e=[],u=mi,o=C(),o!==_r?(a=st(),a!==_r?(o=[o,a],u=o):(mi=u,u=_r)):(mi=u,u=_r);u!==_r;)e.push(u),u=mi,o=C(),o!==_r?(a=st(),a!==_r?(o=[o,a],u=o):(mi=u,u=_r)):(mi=u,u=_r);e!==_r?(wi=r,n=Xe(n,e),r=n):(mi=r,r=_r)}else mi=r,r=_r;return r}function at(){var t,r,n,e,u,o,a;return t=mi,r=Et(),r===_r&&(r=mt()),r!==_r?(n=A(),n!==_r?(e=Tt(),e!==_r?(u=S(),u!==_r?(o=ot(),o===_r&&(o=null),o!==_r?(a=F(),a!==_r?(wi=t,r=Ne(r,e,o),t=r):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r),t}function it(){var r;return t.substr(mi,5)===We?(r=We,mi+=5):(r=_r,0===xi&&f(He)),r===_r&&(t.substr(mi,2)===Je?(r=Je,mi+=2):(r=_r,0===xi&&f(Ke)),r===_r&&(t.substr(mi,3)===Ve?(r=Ve,mi+=3):(r=_r,0===xi&&f(Ye)))),r}function st(){var t,r,n,e,u,o,a,i,s,c,l;return t=mi,r=mi,n=St(),n!==_r?(e=A(),e!==_r?(n=[n,e],r=n):(mi=r,r=_r)):(mi=r,r=_r),r===_r&&(r=null),r!==_r?(n=mi,e=it(),e!==_r?(u=A(),u!==_r?(e=[e,u],n=e):(mi=n,n=_r)):(mi=n,n=_r),n===_r&&(n=null),n!==_r?(e=mi,u=xt(),u!==_r?(o=A(),o!==_r?(u=[u,o],e=u):(mi=e,e=_r)):(mi=e,e=_r),e===_r&&(e=null),e!==_r?(u=jt(),u!==_r?(o=A(),o!==_r?(a=Tt(),a!==_r?(i=mi,s=g(),s!==_r?(c=dr(),c!==_r?(l=_(),l!==_r?(s=[s,c,l],i=s):(mi=i,i=_r)):(mi=i,i=_r)):(mi=i,i=_r),i===_r&&(i=null),i!==_r?(wi=t,r=$e(r,n,e,u,a,i),t=r):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r),t}function ct(){var t,r,n,e,u,o;if(t=mi,r=At(),r!==_r){for(n=[],e=mi,u=C(),u!==_r?(o=At(),o!==_r?(u=[u,o],e=u):(mi=e,e=_r)):(mi=e,e=_r);e!==_r;)n.push(e),e=mi,u=C(),u!==_r?(o=At(),o!==_r?(u=[u,o],e=u):(mi=e,e=_r)):(mi=e,e=_r);n!==_r?(wi=t,r=tu(r,n),t=r):(mi=t,t=_r)}else mi=t,t=_r;return t}function lt(){var t,r,n,e,u,o;if(t=mi,r=dt(),r!==_r){for(n=[],e=mi,u=C(),u!==_r?(o=dt(),o!==_r?(u=[u,o],e=u):(mi=e,e=_r)):(mi=e,e=_r);e!==_r;)n.push(e),e=mi,u=C(),u!==_r?(o=dt(),o!==_r?(u=[u,o],e=u):(mi=e,e=_r)):(mi=e,e=_r);n!==_r?(wi=t,r=tu(r,n),t=r):(mi=t,t=_r)}else mi=t,t=_r;return t}function ft(){var t,r,n,e,u,o;if(t=mi,r=ht(),r!==_r){for(n=[],e=mi,u=C(),u!==_r?(o=ht(),o!==_r?(u=[u,o],e=u):(mi=e,e=_r)):(mi=e,e=_r);e!==_r;)n.push(e),e=mi,u=C(),u!==_r?(o=ht(),o!==_r?(u=[u,o],e=u):(mi=e,e=_r)):(mi=e,e=_r);n!==_r?(wi=t,r=tu(r,n),t=r):(mi=t,t=_r)}else mi=t,t=_r;return t}function pt(){var t,r,n,e,u,o;if(t=mi,r=vt(),r!==_r){for(n=[],e=mi,u=C(),u!==_r?(o=vt(),o!==_r?(u=[u,o],e=u):(mi=e,e=_r)):(mi=e,e=_r);e!==_r;)n.push(e),e=mi,u=C(),u!==_r?(o=vt(),o!==_r?(u=[u,o],e=u):(mi=e,e=_r)):(mi=e,e=_r);n!==_r?(wi=t,r=tu(r,n),t=r):(mi=t,t=_r)}else mi=t,t=_r;return t}function ht(){var t,r;return t=mi,r=Tt(),r!==_r&&(wi=t,r=ru(r)),t=r}function vt(){var t,r,n,e,u;return t=mi,r=Tt(),r!==_r?(n=g(),n!==_r?(e=dr(),e!==_r?(u=_(),u!==_r?(wi=t,r=nu(r,e),t=r):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r),t===_r&&(t=ht()),t}function dt(){var t,r,n,e;return t=mi,r=Tt(),r!==_r?(n=g(),n!==_r?(e=_(),e!==_r?(wi=t,r=eu(r),t=r):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r),t===_r&&(t=vt()),t}function At(){var t,r,n,e;return t=mi,r=Tt(),r!==_r?(n=x(),n!==_r?(e=dr(),e!==_r?(wi=t,r=uu(r,e),t=r):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r),t===_r&&(t=dt()),t}function yt(){var t,r,n,e,u,o,a;if(t=mi,r=[],n=mi,e=wt(),e!==_r?(u=A(),u!==_r?(o=pt(),o!==_r?(a=w(),a!==_r?(e=[e,u,o,a],n=e):(mi=n,n=_r)):(mi=n,n=_r)):(mi=n,n=_r)):(mi=n,n=_r),n!==_r)for(;n!==_r;)r.push(n),n=mi,e=wt(),e!==_r?(u=A(),u!==_r?(o=pt(),o!==_r?(a=w(),a!==_r?(e=[e,u,o,a],n=e):(mi=n,n=_r)):(mi=n,n=_r)):(mi=n,n=_r)):(mi=n,n=_r);else r=_r;return r!==_r&&(wi=t,r=ou(r)),t=r}function bt(){var r,n,e,u,o,a,i,s,c;return r=mi,n=mi,e=Ft(),e===_r&&(e=Ct()),e!==_r?(u=A(),u!==_r?(e=[e,u],n=e):(mi=n,n=_r)):(mi=n,n=_r),n===_r&&(n=null),n!==_r?(t.substr(mi,6)===au?(e=au,mi+=6):(e=_r,0===xi&&f(iu)),e!==_r?(u=mi,o=A(),o!==_r?(a=Tt(),a!==_r?(o=[o,a],u=o):(mi=u,u=_r)):(mi=u,u=_r),u===_r&&(u=null),u!==_r?(o=E(),o!==_r?(a=yt(),a!==_r?(i=j(),i!==_r?(s=lt(),s===_r&&(s=null),s!==_r?(c=w(),c!==_r?(wi=r,n=su(n,u,a,s),r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r}function mt(){var t,r,n,e;return t=mi,r=mi,n=xt(),n!==_r?(e=A(),e!==_r?(n=[n,e],r=n):(mi=r,r=_r)):(mi=r,r=_r),r===_r&&(r=null),r!==_r?(n=jt(),n!==_r?(wi=t,r=cu(r,n),t=r):(mi=t,t=_r)):(mi=t,t=_r),t}function wt(){var t,r,n,e;return xi++,t=mi,r=mi,n=St(),n!==_r?(e=A(),e!==_r?(n=[n,e],r=n):(mi=r,r=_r)):(mi=r,r=_r),r===_r&&(r=null),r!==_r?(n=mt(),n!==_r?(wi=t,r=fu(r,n),t=r):(mi=t,t=_r)):(mi=t,t=_r),xi--,t===_r&&(r=_r,0===xi&&f(lu)),t}function Ct(){var r,n,e;return r=mi,wi=mi,n=De(),n=n?void 0:_r,n!==_r?(t.substr(mi,9)===pu?(e=pu,mi+=9):(e=_r,0===xi&&f(hu)),e!==_r?(wi=r,n=vu(),r=n):(mi=r,r=_r)):(mi=r,r=_r),r}function gt(){var t,r,n,e;return xi++,t=mi,r=Ct(),r!==_r?(n=A(),n!==_r?(e=mt(),e!==_r?(wi=t,r=du(r,e),t=r):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r),xi--,t===_r&&(r=_r,0===xi&&f(lu)),t}function _t(){var t,r,n,e;return xi++,t=mi,r=mi,n=Ft(),n!==_r?(e=A(),e!==_r?(n=[n,e],r=n):(mi=r,r=_r)):(mi=r,r=_r),r===_r&&(r=null),r!==_r?(n=mt(),n!==_r?(wi=t,r=fu(r,n),t=r):(mi=t,t=_r)):(mi=t,t=_r),xi--,t===_r&&(r=_r,0===xi&&f(Au)),t}function xt(){var r,n;return xi++,t.substr(mi,5)===bu?(r=bu,mi+=5):(r=_r,0===xi&&f(mu)),r===_r&&(t.substr(mi,7)===wu?(r=wu,mi+=7):(r=_r,0===xi&&f(Cu)),r===_r&&(t.substr(mi,4)===gu?(r=gu,mi+=4):(r=_r,0===xi&&f(_u)))),xi--,r===_r&&(n=_r,0===xi&&f(yu)),r}function St(){var r;return t.substr(mi,5)===xu?(r=xu,mi+=5):(r=_r,0===xi&&f(Su)),r}function Ft(){var r,n,e,u;return xi++,r=St(),r===_r&&(t.substr(mi,7)===Eu?(r=Eu,mi+=7):(r=_r,0===xi&&f(ju)),r===_r&&(r=mi,t.substr(mi,9)===Le?(n=Le,mi+=9):(n=_r,0===xi&&f(Ze)),n!==_r?(e=A(),e!==_r?(t.substr(mi,7)===Eu?(u=Eu,mi+=7):(u=_r,0===xi&&f(ju)),u!==_r?(wi=r,n=Tu(),r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r===_r&&(t.substr(mi,7)===zu?(r=zu,mi+=7):(r=_r,0===xi&&f(ku))))),xi--,r===_r&&(n=_r,0===xi&&f(Fu)),r}function Et(){var r,n;return xi++,r=mi,t.substr(mi,4)===Oe?(n=Oe,mi+=4):(n=_r,0===xi&&f(Ue)),n!==_r&&(wi=r,n=Pu()),r=n,xi--,r===_r&&(n=_r,0===xi&&f(Iu)),r}function jt(){var r,n;return xi++,t.substr(mi,5)===Du?(r=Du,mi+=5):(r=_r,0===xi&&f(Lu)),r===_r&&(t.substr(mi,3)===Zu?(r=Zu,mi+=3):(r=_r,0===xi&&f(qu)),r===_r&&(t.substr(mi,4)===Qu?(r=Qu,mi+=4):(r=_r,0===xi&&f(Ru)),r===_r&&(t.substr(mi,9)===Mu?(r=Mu,mi+=9):(r=_r,0===xi&&f(Gu)),r===_r&&(t.substr(mi,11)===Ou?(r=Ou,mi+=11):(r=_r,0===xi&&f(Uu)),r===_r&&(r=kt(),r===_r&&(r=It(),r===_r&&(r=mi,n=Tt(),n!==_r&&(wi=r,n=Xu(n)),r=n))))))),xi--,r===_r&&(n=_r,0===xi&&f(Bu)),r}function Tt(){var r,n,e,u,o;if(xi++,r=mi,n=mi,xi++,e=mi,u=zt(),u!==_r?(Wu.test(t.charAt(mi))?(o=t.charAt(mi),mi++):(o=_r,0===xi&&f(Hu)),o!==_r?(u=[u,o],e=u):(mi=e,e=_r)):(mi=e,e=_r),xi--,e===_r?n=void 0:(mi=n,n=_r),n!==_r)if(jn.test(t.charAt(mi))?(e=t.charAt(mi),mi++):(e=_r,0===xi&&f(Tn)),e!==_r){for(u=[],zn.test(t.charAt(mi))?(o=t.charAt(mi),mi++):(o=_r,0===xi&&f(kn));o!==_r;)u.push(o),zn.test(t.charAt(mi))?(o=t.charAt(mi),mi++):(o=_r,0===xi&&f(kn));u!==_r?(wi=r,n=In(e,u),r=n):(mi=r,r=_r)}else mi=r,r=_r;else mi=r,r=_r;return xi--,r===_r&&(n=_r,0===xi&&f(Nu)),r}function zt(){var r,n;return xi++,t.substr(mi,9)===pu?(r=pu,mi+=9):(r=_r,0===xi&&f(hu)),r===_r&&(t.substr(mi,5)===xu?(r=xu,mi+=5):(r=_r,0===xi&&f(Su)),r===_r&&(t.substr(mi,4)===Qu?(r=Qu,mi+=4):(r=_r,0===xi&&f(Ru)),r===_r&&(t.substr(mi,5)===Du?(r=Du,mi+=5):(r=_r,0===xi&&f(Lu)),r===_r&&(t.substr(mi,3)===Zu?(r=Zu,mi+=3):(r=_r,0===xi&&f(qu)),r===_r&&(t.substr(mi,5)===xe?(r=xe,mi+=5):(r=_r,0===xi&&f(Se)),r===_r&&(t.substr(mi,8)===ge?(r=ge,mi+=8):(r=_r,0===xi&&f(_e)),r===_r&&(t.substr(mi,2)===Ae?(r=Ae,mi+=2):(r=_r,0===xi&&f(ye)),r===_r&&(t.substr(mi,4)===Yn?(r=Yn,mi+=4):(r=_r,0===xi&&f($n)),r===_r&&(t.substr(mi,3)===ce?(r=ce,mi+=3):(r=_r,0===xi&&f(le)),r===_r&&(t.substr(mi,2)===Xn?(r=Xn,mi+=2):(r=_r,0===xi&&f(Nn)),r===_r&&(t.substr(mi,7)===Ee?(r=Ee,mi+=7):(r=_r,0===xi&&f(je)),r===_r&&(t.substr(mi,6)===me?(r=me,mi+=6):(r=_r,0===xi&&f(we)),r===_r&&(r=kt(),r===_r&&(r=It(),r===_r&&(t.substr(mi,2)===Je?(r=Je,mi+=2):(r=_r,0===xi&&f(Ke)),r===_r&&(t.substr(mi,3)===Ve?(r=Ve,mi+=3):(r=_r,0===xi&&f(Ye)),r===_r&&(t.substr(mi,5)===We?(r=We,mi+=5):(r=_r,0===xi&&f(He)),r===_r&&(t.substr(mi,7)===zu?(r=zu,mi+=7):(r=_r,0===xi&&f(ku)),r===_r&&(t.substr(mi,7)===Eu?(r=Eu,mi+=7):(r=_r,0===xi&&f(ju)),r===_r&&(t.substr(mi,9)===Mu?(r=Mu,mi+=9):(r=_r,0===xi&&f(Gu)),r===_r&&(t.substr(mi,11)===Ou?(r=Ou,mi+=11):(r=_r,0===xi&&f(Uu)),r===_r&&(t.substr(mi,6)===au?(r=au,mi+=6):(r=_r,0===xi&&f(iu)),r===_r&&(t.substr(mi,4)===Oe?(r=Oe,mi+=4):(r=_r,0===xi&&f(Ue)),r===_r&&(t.substr(mi,5)===pe?(r=pe,mi+=5):(r=_r,0===xi&&f(he)),r===_r&&(t.substr(mi,5)===bu?(r=bu,mi+=5):(r=_r,0===xi&&f(mu)),r===_r&&(t.substr(mi,7)===wu?(r=wu,mi+=7):(r=_r,0===xi&&f(Cu)),r===_r&&(t.substr(mi,4)===gu?(r=gu,mi+=4):(r=_r,0===xi&&f(_u)),r===_r&&(t.substr(mi,4)===Ku?(r=Ku,mi+=4):(r=_r,0===xi&&f(Vu)),r===_r&&(t.substr(mi,5)===Yu?(r=Yu,mi+=5):(r=_r,0===xi&&f($u))))))))))))))))))))))))))))))),xi--,r===_r&&(n=_r,0===xi&&f(Ju)),r}function kt(){var r,n,e,u,o;return r=mi,n=mi,to.test(t.charAt(mi))?(e=t.charAt(mi),mi++):(e=_r,0===xi&&f(ro)),e===_r&&(e=null),e!==_r?(t.substr(mi,3)===no?(u=no,mi+=3):(u=_r,0===xi&&f(eo)),u!==_r?(uo.test(t.charAt(mi))?(o=t.charAt(mi),mi++):(o=_r,0===xi&&f(oo)),o!==_r?(e=[e,u,o],n=e):(mi=n,n=_r)):(mi=n,n=_r)):(mi=n,n=_r),n!==_r&&(wi=r,n=ao(n)),r=n}function It(){var r,n,e,u;return r=mi,n=mi,t.substr(mi,3)===io?(e=io,mi+=3):(e=_r,0===xi&&f(so)),e!==_r?(uo.test(t.charAt(mi))?(u=t.charAt(mi),mi++):(u=_r,0===xi&&f(oo)),u!==_r?(e=[e,u],n=e):(mi=n,n=_r)):(mi=n,n=_r),n!==_r&&(wi=r,n=ao(n)),r=n}function Pt(){var r,n,e,u,o;if(r=mi,co.test(t.charAt(mi))?(n=t.charAt(mi),mi++):(n=_r,0===xi&&f(lo)),n!==_r){for(e=[],fo.test(t.charAt(mi))?(u=t.charAt(mi),mi++):(u=_r,0===xi&&f(po));u!==_r;)e.push(u),fo.test(t.charAt(mi))?(u=t.charAt(mi),mi++):(u=_r,0===xi&&f(po));e!==_r?(wi=r,n=ho(n,e),r=n):(mi=r,r=_r)}else mi=r,r=_r;if(r===_r){if(r=mi,48===t.charCodeAt(mi)?(n=vo,mi++):(n=_r,0===xi&&f(Ao)),n!==_r)if(yo.test(t.charAt(mi))?(e=t.charAt(mi),mi++):(e=_r,0===xi&&f(bo)),e!==_r){if(u=[],mo.test(t.charAt(mi))?(o=t.charAt(mi),mi++):(o=_r,0===xi&&f(wo)),o!==_r)for(;o!==_r;)u.push(o),mo.test(t.charAt(mi))?(o=t.charAt(mi),mi++):(o=_r,0===xi&&f(wo));else u=_r;u!==_r?(wi=r,n=Co(u),r=n):(mi=r,r=_r)}else mi=r,r=_r;else mi=r,r=_r;if(r===_r){if(r=mi,48===t.charCodeAt(mi)?(n=vo,mi++):(n=_r,0===xi&&f(Ao)),n!==_r){if(e=[],go.test(t.charAt(mi))?(u=t.charAt(mi),mi++):(u=_r,0===xi&&f(_o)),u!==_r)for(;u!==_r;)e.push(u),go.test(t.charAt(mi))?(u=t.charAt(mi),mi++):(u=_r,0===xi&&f(_o));else e=_r;e!==_r?(wi=r,n=xo(e),r=n):(mi=r,r=_r)}else mi=r,r=_r;r===_r&&(r=mi,48===t.charCodeAt(mi)?(n=vo,mi++):(n=_r,0===xi&&f(Ao)),n!==_r&&(wi=r,n=So()),r=n)}}return r}function Bt(){var r,n,e,u,o,a;for(r=mi,n=mi,e=[],fo.test(t.charAt(mi))?(u=t.charAt(mi),mi++):(u=_r,0===xi&&f(po));u!==_r;)e.push(u),fo.test(t.charAt(mi))?(u=t.charAt(mi),mi++):(u=_r,0===xi&&f(po));if(e!==_r)if(46===t.charCodeAt(mi)?(u=Fo,mi++):(u=_r,0===xi&&f(Eo)),u!==_r){if(o=[],fo.test(t.charAt(mi))?(a=t.charAt(mi),mi++):(a=_r,0===xi&&f(po)),a!==_r)for(;a!==_r;)o.push(a),fo.test(t.charAt(mi))?(a=t.charAt(mi),mi++):(a=_r,0===xi&&f(po));else o=_r;o!==_r?(a=Dt(),a===_r&&(a=null),a!==_r?(e=[e,u,o,a],n=e):(mi=n,n=_r)):(mi=n,n=_r)}else mi=n,n=_r;else mi=n,n=_r;if(n===_r){if(n=mi,e=[],fo.test(t.charAt(mi))?(u=t.charAt(mi),mi++):(u=_r,0===xi&&f(po)),u!==_r)for(;u!==_r;)e.push(u),fo.test(t.charAt(mi))?(u=t.charAt(mi),mi++):(u=_r,0===xi&&f(po));else e=_r;if(e!==_r)if(46===t.charCodeAt(mi)?(u=Fo,mi++):(u=_r,0===xi&&f(Eo)),u!==_r){for(o=[],fo.test(t.charAt(mi))?(a=t.charAt(mi),mi++):(a=_r,0===xi&&f(po));a!==_r;)o.push(a),fo.test(t.charAt(mi))?(a=t.charAt(mi),mi++):(a=_r,0===xi&&f(po));o!==_r?(a=Dt(),a===_r&&(a=null),a!==_r?(e=[e,u,o,a],n=e):(mi=n,n=_r)):(mi=n,n=_r)}else mi=n,n=_r;else mi=n,n=_r}if(n!==_r&&(wi=r,n=jo(n)),r=n,r===_r){if(r=mi,n=mi,e=[],fo.test(t.charAt(mi))?(u=t.charAt(mi),mi++):(u=_r,0===xi&&f(po)),u!==_r)for(;u!==_r;)e.push(u),fo.test(t.charAt(mi))?(u=t.charAt(mi),mi++):(u=_r,0===xi&&f(po));else e=_r;e!==_r?(u=Dt(),u!==_r?(e=[e,u],n=e):(mi=n,n=_r)):(mi=n,n=_r),n!==_r&&(wi=r,n=To(n)),r=n}return r}function Dt(){var r,n,e,u,o;if(r=mi,zo.test(t.charAt(mi))?(n=t.charAt(mi),mi++):(n=_r,0===xi&&f(ko)),n!==_r)if(Io.test(t.charAt(mi))?(e=t.charAt(mi),mi++):(e=_r,0===xi&&f(Po)),e===_r&&(e=null),e!==_r){if(u=[],fo.test(t.charAt(mi))?(o=t.charAt(mi),mi++):(o=_r,0===xi&&f(po)),o!==_r)for(;o!==_r;)u.push(o),fo.test(t.charAt(mi))?(o=t.charAt(mi),mi++):(o=_r,0===xi&&f(po));else u=_r;u!==_r?(wi=r,n=Bo(e,u),r=n):(mi=r,r=_r)}else mi=r,r=_r;else mi=r,r=_r;return r}function Lt(){var t,r,n,e;return t=mi,r=S(),r!==_r?(n=Ar(),n!==_r?(e=F(),e!==_r?(wi=t,r=Do(n),t=r):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r),t}function Zt(){var r,n;return r=mi,t.substr(mi,4)===Ku?(n=Ku,mi+=4):(n=_r,0===xi&&f(Vu)),n===_r&&(t.substr(mi,5)===Yu?(n=Yu,mi+=5):(n=_r,0===xi&&f($u))),n!==_r&&(wi=r,n=Lo(n)),r=n}function qt(){var t;return t=Ut(),t===_r&&(t=Tt(),t===_r&&(t=Bt(),t===_r&&(t=Pt(),t===_r&&(t=Zt(),t===_r&&(t=Lt()))))),t}function Qt(){var t,r,n,e;return t=mi,r=g(),r!==_r?(n=Ar(),n!==_r?(e=_(),e!==_r?(wi=t,r=Zo(n),t=r):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r),t}function Rt(){var r,n,e;return r=mi,46===t.charCodeAt(mi)?(n=Fo,mi++):(n=_r,0===xi&&f(Eo)),n!==_r?(e=Tt(),e!==_r?(wi=r,n=qo(e),r=n):(mi=r,r=_r)):(mi=r,r=_r),r}function Mt(){var t,r,n,e;if(t=mi,r=qt(),r!==_r){for(n=[],e=Rt(),e===_r&&(e=Qt());e!==_r;)n.push(e),e=Rt(),e===_r&&(e=Qt());n!==_r?(wi=t,r=Qo(r,n),t=r):(mi=t,t=_r)}else mi=t,t=_r;return t}function Gt(){var r,n,e,u,o,a;if(r=mi,n=Mt(),n!==_r)if(e=A(),e===_r&&(e=null),e!==_r)if(t.substr(mi,2)===Ro?(u=Ro,mi+=2):(u=_r,0===xi&&f(Mo)),u===_r&&(t.substr(mi,2)===Go?(u=Go,mi+=2):(u=_r,0===xi&&f(Oo))),u===_r&&(u=null),u!==_r){for(o=[],a=Rt(),a===_r&&(a=Qt());a!==_r;)o.push(a),a=Rt(),a===_r&&(a=Qt());o!==_r?(wi=r,n=Uo(n,u,o),r=n):(mi=r,r=_r)}else mi=r,r=_r;else mi=r,r=_r;else mi=r,r=_r;return r}function Ot(){var r,n,e,u,o,a;if(r=mi,t.substr(mi,4)===Oe?(n=Oe,mi+=4):(n=_r,0===xi&&f(Ue)),n!==_r&&(wi=r,n=Xo()),r=n,r===_r)if(r=mi,n=Ar(),n!==_r){for(e=[],u=mi,o=C(),o!==_r?(a=Ar(),a!==_r?(o=[o,a],u=o):(mi=u,u=_r)):(mi=u,u=_r);u!==_r;)e.push(u),u=mi,o=C(),o!==_r?(a=Ar(),a!==_r?(o=[o,a],u=o):(mi=u,u=_r)):(mi=u,u=_r);e!==_r?(wi=r,n=No(n,e),r=n):(mi=r,r=_r)}else mi=r,r=_r;return r}function Ut(){var t,r,n,e,u;return t=mi,r=Xt(),r!==_r?(n=S(),n!==_r?(e=Ot(),e===_r&&(e=null),e!==_r?(u=F(),u!==_r?(wi=t,r=Wo(r,e),t=r):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r)):(mi=t,t=_r),t}function Xt(){var t,r;return t=mi,r=Tt(),r!==_r&&(wi=t,r=Ho(r)),t=r,t===_r&&(t=jt()),t}function Nt(){var r,n,e,u;return r=mi,t.substr(mi,2)===Ro?(n=Ro,mi+=2):(n=_r,0===xi&&f(Mo)),n===_r&&(t.substr(mi,2)===Go?(n=Go,mi+=2):(n=_r,0===xi&&f(Oo)),n===_r&&(33===t.charCodeAt(mi)?(n=Jo,mi++):(n=_r,0===xi&&f(Ko)),n===_r&&(126===t.charCodeAt(mi)?(n=Vo,mi++):(n=_r,0===xi&&f(Yo)),n===_r&&(43===t.charCodeAt(mi)?(n=$o,mi++):(n=_r,0===xi&&f(ta)),n===_r&&(45===t.charCodeAt(mi)?(n=ra,mi++):(n=_r,0===xi&&f(na))))))),n===_r&&(n=null),n!==_r?(e=A(),e===_r&&(e=null),e!==_r?(u=Gt(),u!==_r?(wi=r,n=ea(n,u),r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r}function Wt(){var r,n,e,u;return r=mi,42===t.charCodeAt(mi)?(n=ua,mi++):(n=_r,0===xi&&f(oa)),n===_r&&(47===t.charCodeAt(mi)?(n=aa,mi++):(n=_r,0===xi&&f(ia)),n===_r&&(37===t.charCodeAt(mi)?(n=sa,mi++):(n=_r,0===xi&&f(ca)))),n!==_r?(e=mi,xi++,61===t.charCodeAt(mi)?(u=Yr,mi++):(u=_r,0===xi&&f($r)),xi--,u===_r?e=void 0:(mi=e,e=_r),e!==_r?(wi=r,n=la(n),r=n):(mi=r,r=_r)):(mi=r,r=_r),r}function Ht(){var t,r,n,e,u,o,a,i;if(t=mi,r=Nt(),r!==_r){for(n=[],e=mi, -u=A(),u===_r&&(u=null),u!==_r?(o=Wt(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=Nt(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);e!==_r;)n.push(e),e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=Wt(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=Nt(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(mi=t,t=_r)}else mi=t,t=_r;return t}function Jt(){var r,n,e,u;return r=mi,43===t.charCodeAt(mi)?(n=$o,mi++):(n=_r,0===xi&&f(ta)),n!==_r?(e=mi,xi++,43===t.charCodeAt(mi)?(u=$o,mi++):(u=_r,0===xi&&f(ta)),u===_r&&(61===t.charCodeAt(mi)?(u=Yr,mi++):(u=_r,0===xi&&f($r))),xi--,u===_r?e=void 0:(mi=e,e=_r),e!==_r?(wi=r,n=pa(),r=n):(mi=r,r=_r)):(mi=r,r=_r),r===_r&&(r=mi,45===t.charCodeAt(mi)?(n=ra,mi++):(n=_r,0===xi&&f(na)),n!==_r?(e=mi,xi++,45===t.charCodeAt(mi)?(u=ra,mi++):(u=_r,0===xi&&f(na)),u===_r&&(61===t.charCodeAt(mi)?(u=Yr,mi++):(u=_r,0===xi&&f($r))),xi--,u===_r?e=void 0:(mi=e,e=_r),e!==_r?(wi=r,n=ha(),r=n):(mi=r,r=_r)):(mi=r,r=_r)),r}function Kt(){var t,r,n,e,u,o,a,i;if(t=mi,r=Ht(),r!==_r){for(n=[],e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=Jt(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=Ht(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);e!==_r;)n.push(e),e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=Jt(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=Ht(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(mi=t,t=_r)}else mi=t,t=_r;return t}function Vt(){var r,n,e,u;return r=mi,t.substr(mi,2)===va?(n=va,mi+=2):(n=_r,0===xi&&f(da)),n===_r&&(t.substr(mi,2)===Aa?(n=Aa,mi+=2):(n=_r,0===xi&&f(ya))),n!==_r?(e=mi,xi++,61===t.charCodeAt(mi)?(u=Yr,mi++):(u=_r,0===xi&&f($r)),xi--,u===_r?e=void 0:(mi=e,e=_r),e!==_r?(wi=r,n=la(n),r=n):(mi=r,r=_r)):(mi=r,r=_r),r}function Yt(){var t,r,n,e,u,o,a,i;if(t=mi,r=Kt(),r!==_r){for(n=[],e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=Vt(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=Kt(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);e!==_r;)n.push(e),e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=Vt(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=Kt(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(mi=t,t=_r)}else mi=t,t=_r;return t}function $t(){var r,n,e,u;return r=mi,60===t.charCodeAt(mi)?(n=ba,mi++):(n=_r,0===xi&&f(ma)),n!==_r?(e=mi,xi++,60===t.charCodeAt(mi)?(u=ba,mi++):(u=_r,0===xi&&f(ma)),xi--,u===_r?e=void 0:(mi=e,e=_r),e!==_r?(61===t.charCodeAt(mi)?(u=Yr,mi++):(u=_r,0===xi&&f($r)),u===_r&&(u=null),u!==_r?(wi=r,n=wa(u),r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r===_r&&(r=mi,62===t.charCodeAt(mi)?(n=Ca,mi++):(n=_r,0===xi&&f(ga)),n!==_r?(e=mi,xi++,62===t.charCodeAt(mi)?(u=Ca,mi++):(u=_r,0===xi&&f(ga)),xi--,u===_r?e=void 0:(mi=e,e=_r),e!==_r?(61===t.charCodeAt(mi)?(u=Yr,mi++):(u=_r,0===xi&&f($r)),u===_r&&(u=null),u!==_r?(wi=r,n=_a(u),r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)),r}function tr(){var t,r,n,e,u,o,a,i;if(t=mi,r=Yt(),r!==_r){for(n=[],e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=$t(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=Yt(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);e!==_r;)n.push(e),e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=$t(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=Yt(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(mi=t,t=_r)}else mi=t,t=_r;return t}function rr(){var r,n;return r=mi,t.substr(mi,2)===xa?(n=xa,mi+=2):(n=_r,0===xi&&f(Sa)),n===_r&&(t.substr(mi,2)===Fa?(n=Fa,mi+=2):(n=_r,0===xi&&f(Ea))),n!==_r&&(wi=r,n=ja(n)),r=n}function nr(){var t,r,n,e,u,o,a,i;if(t=mi,r=tr(),r!==_r){for(n=[],e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=rr(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=tr(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);e!==_r;)n.push(e),e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=rr(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=tr(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(mi=t,t=_r)}else mi=t,t=_r;return t}function er(){var r,n,e,u;return r=mi,38===t.charCodeAt(mi)?(n=Ta,mi++):(n=_r,0===xi&&f(za)),n!==_r?(e=mi,xi++,61===t.charCodeAt(mi)?(u=Yr,mi++):(u=_r,0===xi&&f($r)),u===_r&&(38===t.charCodeAt(mi)?(u=Ta,mi++):(u=_r,0===xi&&f(za))),xi--,u===_r?e=void 0:(mi=e,e=_r),e!==_r?(wi=r,n=ka(),r=n):(mi=r,r=_r)):(mi=r,r=_r),r}function ur(){var t,r,n,e,u,o,a,i;if(t=mi,r=nr(),r!==_r){for(n=[],e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=er(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=nr(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);e!==_r;)n.push(e),e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=er(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=nr(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(mi=t,t=_r)}else mi=t,t=_r;return t}function or(){var r,n,e,u;return r=mi,94===t.charCodeAt(mi)?(n=Ia,mi++):(n=_r,0===xi&&f(Pa)),n!==_r?(e=mi,xi++,61===t.charCodeAt(mi)?(u=Yr,mi++):(u=_r,0===xi&&f($r)),u===_r&&(94===t.charCodeAt(mi)?(u=Ia,mi++):(u=_r,0===xi&&f(Pa))),xi--,u===_r?e=void 0:(mi=e,e=_r),e!==_r?(wi=r,n=Ba(),r=n):(mi=r,r=_r)):(mi=r,r=_r),r}function ar(){var t,r,n,e,u,o,a,i;if(t=mi,r=ur(),r!==_r){for(n=[],e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=or(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=ur(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);e!==_r;)n.push(e),e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=or(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=ur(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(mi=t,t=_r)}else mi=t,t=_r;return t}function ir(){var r,n,e,u;return r=mi,124===t.charCodeAt(mi)?(n=Da,mi++):(n=_r,0===xi&&f(La)),n!==_r?(e=mi,xi++,61===t.charCodeAt(mi)?(u=Yr,mi++):(u=_r,0===xi&&f($r)),u===_r&&(124===t.charCodeAt(mi)?(u=Da,mi++):(u=_r,0===xi&&f(La))),xi--,u===_r?e=void 0:(mi=e,e=_r),e!==_r?(wi=r,n=Za(),r=n):(mi=r,r=_r)):(mi=r,r=_r),r}function sr(){var t,r,n,e,u,o,a,i;if(t=mi,r=ar(),r!==_r){for(n=[],e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=ir(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=ar(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);e!==_r;)n.push(e),e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=ir(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=ar(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(mi=t,t=_r)}else mi=t,t=_r;return t}function cr(){var r,n;return r=mi,t.substr(mi,2)===qa?(n=qa,mi+=2):(n=_r,0===xi&&f(Qa)),n!==_r&&(wi=r,n=Ra()),r=n}function lr(){var t,r,n,e,u,o,a,i;if(t=mi,r=sr(),r!==_r){for(n=[],e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=cr(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=sr(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);e!==_r;)n.push(e),e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=cr(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=sr(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(mi=t,t=_r)}else mi=t,t=_r;return t}function fr(){var r,n;return r=mi,t.substr(mi,2)===Ma?(n=Ma,mi+=2):(n=_r,0===xi&&f(Ga)),n!==_r&&(wi=r,n=Oa()),r=n}function pr(){var t,r,n,e,u,o,a,i;if(t=mi,r=lr(),r!==_r){for(n=[],e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=fr(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=lr(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);e!==_r;)n.push(e),e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=fr(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=lr(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(mi=t,t=_r)}else mi=t,t=_r;return t}function hr(){var r,n;return r=mi,t.substr(mi,2)===Ua?(n=Ua,mi+=2):(n=_r,0===xi&&f(Xa)),n!==_r&&(wi=r,n=Na()),r=n}function vr(){var t,r,n,e,u,o,a,i;if(t=mi,r=pr(),r!==_r){for(n=[],e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=hr(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=pr(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);e!==_r;)n.push(e),e=mi,u=A(),u===_r&&(u=null),u!==_r?(o=hr(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=pr(),i!==_r?(u=[u,o,a,i],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(mi=t,t=_r)}else mi=t,t=_r;return t}function dr(){var r,n,e,u,o,a,i,s,c,l,p;return r=mi,n=vr(),n!==_r?(e=mi,u=A(),u===_r&&(u=null),u!==_r?(63===t.charCodeAt(mi)?(o=Wa,mi++):(o=_r,0===xi&&f(Ha)),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=Ar(),i!==_r?(s=A(),s===_r&&(s=null),s!==_r?(58===t.charCodeAt(mi)?(c=Ja,mi++):(c=_r,0===xi&&f(Ka)),c!==_r?(l=A(),l===_r&&(l=null),l!==_r?(p=Ar(),p!==_r?(u=[u,o,a,i,s,c,l,p],e=u):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r)):(mi=e,e=_r),e===_r&&(e=null),e!==_r?(wi=r,n=Va(n,e),r=n):(mi=r,r=_r)):(mi=r,r=_r),r}function Ar(){var r,n,e,u,o,a;return r=mi,n=dr(),n!==_r?(e=A(),e===_r&&(e=null),e!==_r?(61===t.charCodeAt(mi)?(u=Yr,mi++):(u=_r,0===xi&&f($r)),u===_r&&(t.substr(mi,2)===Ya?(u=Ya,mi+=2):(u=_r,0===xi&&f($a)),u===_r&&(t.substr(mi,2)===ti?(u=ti,mi+=2):(u=_r,0===xi&&f(ri)),u===_r&&(t.substr(mi,2)===ni?(u=ni,mi+=2):(u=_r,0===xi&&f(ei)),u===_r&&(t.substr(mi,2)===ui?(u=ui,mi+=2):(u=_r,0===xi&&f(oi)),u===_r&&(t.substr(mi,2)===ai?(u=ai,mi+=2):(u=_r,0===xi&&f(ii)),u===_r&&(t.substr(mi,3)===si?(u=si,mi+=3):(u=_r,0===xi&&f(ci)),u===_r&&(t.substr(mi,3)===li?(u=li,mi+=3):(u=_r,0===xi&&f(fi)),u===_r&&(t.substr(mi,2)===pi?(u=pi,mi+=2):(u=_r,0===xi&&f(hi)),u===_r&&(t.substr(mi,2)===vi?(u=vi,mi+=2):(u=_r,0===xi&&f(di)),u===_r&&(t.substr(mi,2)===Ai?(u=Ai,mi+=2):(u=_r,0===xi&&f(yi)))))))))))),u!==_r?(o=A(),o===_r&&(o=null),o!==_r?(a=Ar(),a!==_r?(wi=r,n=bi(n,u,a),r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r===_r&&(r=dr()),r}function yr(){var r,n,e,u,o,a,i,s;return r=mi,n=wt(),n!==_r?(e=A(),e!==_r?(u=Tt(),u!==_r?(o=A(),o===_r&&(o=null),o!==_r?(61===t.charCodeAt(mi)?(a=Yr,mi++):(a=_r,0===xi&&f($r)),a!==_r?(i=A(),i===_r&&(i=null),i!==_r?(s=Ar(),s!==_r?(n=[n,e,u,o,a,i,s],r=n):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r)):(mi=r,r=_r),r===_r&&(r=Ar()),r}function br(){return e()}function mr(t,r){return new ji(t.type,br(),t)}function wr(t,r){for(var n=t,e=0;e>",ya=u(">>",!1),ba="<",ma=u("<",!1),wa=function(t){return new mr({type:"operator",operator:"<"+(t||"")})},Ca=">",ga=u(">",!1),_a=function(t){return new mr({type:"operator",operator:">"+(t||"")})},xa="==",Sa=u("==",!1),Fa="!=",Ea=u("!=",!1),ja=function(t){return new mr({type:"operator",operator:t})},Ta="&",za=u("&",!1),ka=function(){return new mr({type:"operator",operator:"&"})},Ia="^",Pa=u("^",!1),Ba=function(){return new mr({type:"operator",operator:"^"})},Da="|",La=u("|",!1),Za=function(){return new mr({type:"operator",operator:"|"})},qa="&&",Qa=u("&&",!1),Ra=function(){return new mr({type:"operator",operator:"&&"})},Ma="^^",Ga=u("^^",!1),Oa=function(){return new mr({type:"operator",operator:"^^"})},Ua="||",Xa=u("||",!1),Na=function(){return new mr({type:"operator",operator:"||"})},Wa="?",Ha=u("?",!1),Ja=":",Ka=u(":",!1),Va=function(t,r){var n=t;return r&&(n=new mr({type:"ternary",condition:t,is_true:r[3],is_false:r[7]})),n},Ya="*=",$a=u("*=",!1),ti="/=",ri=u("/=",!1),ni="%=",ei=u("%=",!1),ui="+=",oi=u("+=",!1),ai="-=",ii=u("-=",!1),si="<<=",ci=u("<<=",!1),li=">>=",fi=u(">>=",!1),pi="&=",hi=u("&=",!1),vi="^=",di=u("^=",!1),Ai="|=",yi=u("|=",!1),bi=function(t,r,n){return new mr({type:"binary",operator:new mr({type:"operator",operator:r}),left:t,right:n})},mi=0,wi=0,Ci=[{line:1,column:1}],gi=0,_i=[],xi=0;if("startRule"in r){if(!(r.startRule in xr))throw new Error("Can't start parsing from rule \""+r.startRule+'".');Sr=xr[r.startRule]}var Si={},Fi=0,Ei="fs",ji=function(t,r,n){this.type=t,this.position=r;for(var e in n)n.hasOwnProperty(e)&&(this[e]=n[e])};if(ji.__nextId=1,ji.Types={Program:"root",Preprocessor:"preprocessor",MacroCall:"macro_call",FunctionCall:"function_call",FunctionPrototype:"function_prototype",FunctionDeclaration:"function_declaration",Scope:"scope",IfStatement:"if_statement",ForStatement:"for_statement",WhileStatement:"while_statement",DoStatement:"do_statement",ReturnStatement:"return",ContinueStatement:"continue",BreakStatement:"break",DiscardStatement:"discard",ExpressionStatement:"expression",Declarator:"declarator",DeclaratorItem:"declarator_item",Invariant:"invariant",Precision:"precision",Parameter:"parameter",StructDefinition:"struct_definition",Type:"type",IntegerLiteral:"int",FloatLiteral:"float",BooleanLiteral:"bool",Identifier:"identifier",Operator:"operator",PostfixExpression:"postfix",UnaryExpression:"unary",BinaryExpression:"binary",TernaryExpression:"ternary",IndexSelector:"accessor",FieldSelector:"field_selector"},gr=Sr(),gr!==_r&&mi===t.length)return gr;throw gr!==_r&&mi0){for(r=1,n=1;rCi&&(Ci=bi,_i=[]),_i.push(t))}function p(t,r,e){return new n(n.buildMessage(t,r),t,r,e)}function h(){var t;return t=T()}function v(){var r,n;return r=bi,Fr.test(t.charAt(bi))?(n=t.charAt(bi),bi++):(n=_r,0===xi&&f(Er)),n!==_r&&(wi=r,n=jr()),r=n}function d(){var r,n;return r=bi,xi++,t.length>bi?(n=t.charAt(bi),bi++):(n=_r,0===xi&&f(Tr)),xi--,n===_r?r=void 0:(bi=r,r=_r),r}function A(){var r,n;if(xi++,r=[],n=v(),n===_r&&(Ir.test(t.charAt(bi))?(n=t.charAt(bi),bi++):(n=_r,0===xi&&f(kr)),n===_r&&(Dr.test(t.charAt(bi))?(n=t.charAt(bi),bi++):(n=_r,0===xi&&f(Pr)),n===_r&&(n=b()))),n!==_r)for(;n!==_r;)r.push(n),n=v(),n===_r&&(Ir.test(t.charAt(bi))?(n=t.charAt(bi),bi++):(n=_r,0===xi&&f(kr)),n===_r&&(Dr.test(t.charAt(bi))?(n=t.charAt(bi),bi++):(n=_r,0===xi&&f(Pr)),n===_r&&(n=b())));else r=_r;return xi--,r===_r&&(n=_r,0===xi&&f(zr)),r}function y(){var r,n,e,u,o,a;if(r=bi,t.substr(bi,2)===Br?(n=Br,bi+=2):(n=_r,0===xi&&f(Lr)),n!==_r){for(e=[],u=bi,o=bi,xi++,t.substr(bi,2)===Zr?(a=Zr,bi+=2):(a=_r,0===xi&&f(qr)),xi--,a===_r?o=void 0:(bi=o,o=_r),o!==_r?(t.length>bi?(a=t.charAt(bi),bi++):(a=_r,0===xi&&f(Tr)),a!==_r?(o=[o,a],u=o):(bi=u,u=_r)):(bi=u,u=_r);u!==_r;)e.push(u),u=bi,o=bi,xi++,t.substr(bi,2)===Zr?(a=Zr,bi+=2):(a=_r,0===xi&&f(qr)),xi--,a===_r?o=void 0:(bi=o,o=_r),o!==_r?(t.length>bi?(a=t.charAt(bi),bi++):(a=_r,0===xi&&f(Tr)),a!==_r?(o=[o,a],u=o):(bi=u,u=_r)):(bi=u,u=_r);e!==_r?(t.substr(bi,2)===Zr?(u=Zr,bi+=2):(u=_r,0===xi&&f(qr)),u!==_r?(n=[n,e,u],r=n):(bi=r,r=_r)):(bi=r,r=_r)}else bi=r,r=_r;if(r===_r)if(r=bi,t.substr(bi,2)===Qr?(n=Qr,bi+=2):(n=_r,0===xi&&f(Rr)),n!==_r){for(e=[],Mr.test(t.charAt(bi))?(u=t.charAt(bi),bi++):(u=_r,0===xi&&f(Gr));u!==_r;)e.push(u),Mr.test(t.charAt(bi))?(u=t.charAt(bi),bi++):(u=_r,0===xi&&f(Gr));e!==_r?(n=[n,e],r=n):(bi=r,r=_r)}else bi=r,r=_r;return r}function m(){var r,n;if(r=[],Dr.test(t.charAt(bi))?(n=t.charAt(bi),bi++):(n=_r,0===xi&&f(Pr)),n===_r&&(n=y()),n!==_r)for(;n!==_r;)r.push(n),Dr.test(t.charAt(bi))?(n=t.charAt(bi),bi++):(n=_r,0===xi&&f(Pr)),n===_r&&(n=y());else r=_r;return r}function b(){var r,n,e,u,o,a;if(xi++,r=bi,t.substr(bi,2)===Br?(n=Br,bi+=2):(n=_r,0===xi&&f(Lr)),n!==_r){for(e=[],u=bi,o=bi,xi++,t.substr(bi,2)===Zr?(a=Zr,bi+=2):(a=_r,0===xi&&f(qr)),xi--,a===_r?o=void 0:(bi=o,o=_r),o!==_r?(t.length>bi?(a=t.charAt(bi),bi++):(a=_r,0===xi&&f(Tr)),a!==_r?(o=[o,a],u=o):(bi=u,u=_r)):(bi=u,u=_r);u!==_r;)e.push(u),u=bi,o=bi,xi++,t.substr(bi,2)===Zr?(a=Zr,bi+=2):(a=_r,0===xi&&f(qr)),xi--,a===_r?o=void 0:(bi=o,o=_r),o!==_r?(t.length>bi?(a=t.charAt(bi),bi++):(a=_r,0===xi&&f(Tr)),a!==_r?(o=[o,a],u=o):(bi=u,u=_r)):(bi=u,u=_r);e!==_r?(t.substr(bi,2)===Zr?(u=Zr,bi+=2):(u=_r,0===xi&&f(qr)),u!==_r?(n=[n,e,u],r=n):(bi=r,r=_r)):(bi=r,r=_r)}else bi=r,r=_r;if(r===_r)if(r=bi,t.substr(bi,2)===Qr?(n=Qr,bi+=2):(n=_r,0===xi&&f(Rr)),n!==_r){for(e=[],Mr.test(t.charAt(bi))?(u=t.charAt(bi),bi++):(u=_r,0===xi&&f(Gr));u!==_r;)e.push(u),Mr.test(t.charAt(bi))?(u=t.charAt(bi),bi++):(u=_r,0===xi&&f(Gr));e!==_r?(u=v(),u===_r&&(u=d()),u!==_r?(n=[n,e,u],r=n):(bi=r,r=_r)):(bi=r,r=_r)}else bi=r,r=_r;return xi--,r===_r&&(n=_r,0===xi&&f(Or)),r}function w(){var r,n,e,u;return r=bi,n=A(),n===_r&&(n=null),n!==_r?(59===t.charCodeAt(bi)?(e=Ur,bi++):(e=_r,0===xi&&f(Xr)),e!==_r?(u=A(),u===_r&&(u=null),u!==_r?(n=[n,e,u],r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r}function g(){var r,n,e,u;return r=bi,n=A(),n===_r&&(n=null),n!==_r?(44===t.charCodeAt(bi)?(e=Nr,bi++):(e=_r,0===xi&&f(Wr)),e!==_r?(u=A(),u===_r&&(u=null),u!==_r?(n=[n,e,u],r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r}function C(){var r,n,e,u;return r=bi,n=A(),n===_r&&(n=null),n!==_r?(91===t.charCodeAt(bi)?(e=Hr,bi++):(e=_r,0===xi&&f(Jr)),e!==_r?(u=A(),u===_r&&(u=null),u!==_r?(n=[n,e,u],r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r}function _(){var r,n,e,u;return r=bi,n=A(),n===_r&&(n=null),n!==_r?(93===t.charCodeAt(bi)?(e=Kr,bi++):(e=_r,0===xi&&f(Vr)),e!==_r?(u=A(),u===_r&&(u=null),u!==_r?(n=[n,e,u],r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r}function x(){var r,n,e,u;return r=bi,n=A(),n===_r&&(n=null),n!==_r?(61===t.charCodeAt(bi)?(e=Yr,bi++):(e=_r,0===xi&&f($r)),e!==_r?(u=A(),u===_r&&(u=null),u!==_r?(n=[n,e,u],r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r}function S(){var r,n,e,u;return r=bi,n=A(),n===_r&&(n=null),n!==_r?(40===t.charCodeAt(bi)?(e=tn,bi++):(e=_r,0===xi&&f(rn)),e!==_r?(u=A(),u===_r&&(u=null),u!==_r?(n=[n,e,u],r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r}function F(){var r,n,e,u;return r=bi,n=A(),n===_r&&(n=null),n!==_r?(41===t.charCodeAt(bi)?(e=nn,bi++):(e=_r,0===xi&&f(en)),e!==_r?(u=A(),u===_r&&(u=null),u!==_r?(n=[n,e,u],r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r}function E(){var r,n,e,u;return r=bi,n=A(),n===_r&&(n=null),n!==_r?(123===t.charCodeAt(bi)?(e=un,bi++):(e=_r,0===xi&&f(on)),e!==_r?(u=A(),u===_r&&(u=null),u!==_r?(n=[n,e,u],r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r}function j(){var r,n,e,u;return r=bi,n=A(),n===_r&&(n=null),n!==_r?(125===t.charCodeAt(bi)?(e=an,bi++):(e=_r,0===xi&&f(sn)),e!==_r?(u=A(),u===_r&&(u=null),u!==_r?(n=[n,e,u],r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r}function T(){var t,r,n;for(t=bi,r=[],n=z();n!==_r;)r.push(n),n=z();return r!==_r&&(wi=t,r=cn(r)),t=r}function z(){var t,r;return t=bi,r=M(),r===_r&&(r=I()),r!==_r&&(wi=t,r=ln(r)),t=r,t===_r&&(t=bi,r=A(),r!==_r&&(wi=t,r=fn()),t=r),t}function I(){var t;return t=O(),t===_r&&(t=ut(),t===_r&&(t=L(),t===_r&&(t=k(),t===_r&&(t=mt(),t===_r&&(t=B()))))),t}function k(){var r,n,e,u,o,a,i;if(r=bi,35===t.charCodeAt(bi)?(n=pn,bi++):(n=_r,0===xi&&f(hn)),n!==_r)if(t.substr(bi,5)===vn?(e=vn,bi+=5):(e=_r,0===xi&&f(dn)),e===_r&&(t.substr(bi,6)===An?(e=An,bi+=6):(e=_r,0===xi&&f(yn)),e===_r&&(t.substr(bi,7)===mn?(e=mn,bi+=7):(e=_r,0===xi&&f(bn)),e===_r&&(t.substr(bi,5)===wn?(e=wn,bi+=5):(e=_r,0===xi&&f(gn)),e===_r&&(t.substr(bi,9)===Cn?(e=Cn,bi+=9):(e=_r,0===xi&&f(_n)),e===_r&&(t.substr(bi,4)===xn?(e=xn,bi+=4):(e=_r,0===xi&&f(Sn))))))),e!==_r)if(u=A(),u!==_r){for(o=bi,a=[],Mr.test(t.charAt(bi))?(i=t.charAt(bi),bi++):(i=_r,0===xi&&f(Gr));i!==_r;)a.push(i),Mr.test(t.charAt(bi))?(i=t.charAt(bi),bi++):(i=_r,0===xi&&f(Gr));a!==_r&&(wi=o,a=Fn(e,a)),o=a,o!==_r?(a=v(),a===_r&&(a=d()),a!==_r?(wi=r,n=En(e,o),r=n):(bi=r,r=_r)):(bi=r,r=_r)}else bi=r,r=_r;else bi=r,r=_r;else bi=r,r=_r;return r}function D(){var r,n,e,u;if(r=bi,jn.test(t.charAt(bi))?(n=t.charAt(bi),bi++):(n=_r,0===xi&&f(Tn)),n!==_r){for(e=[],zn.test(t.charAt(bi))?(u=t.charAt(bi),bi++):(u=_r,0===xi&&f(In));u!==_r;)e.push(u),zn.test(t.charAt(bi))?(u=t.charAt(bi),bi++):(u=_r,0===xi&&f(In));e!==_r?(wi=r,n=kn(n,e),r=n):(bi=r,r=_r)}else bi=r,r=_r;return r}function P(){var r,n,e,u,o,a,i;if(r=bi,40===t.charCodeAt(bi)?(n=tn,bi++):(n=_r,0===xi&&f(rn)),n!==_r)if(e=D(),e===_r&&(e=null),e!==_r){for(u=[],o=bi,a=g(),a!==_r?(i=D(),i!==_r?(a=[a,i],o=a):(bi=o,o=_r)):(bi=o,o=_r);o!==_r;)u.push(o),o=bi,a=g(),a!==_r?(i=D(),i!==_r?(a=[a,i],o=a):(bi=o,o=_r)):(bi=o,o=_r);u!==_r?(o=F(),o!==_r?(wi=r,n=Dn(e,u),r=n):(bi=r,r=_r)):(bi=r,r=_r)}else bi=r,r=_r;else bi=r,r=_r;return r}function B(){var r,n,e,u,o,a;return r=bi,n=D(),n!==_r?(e=A(),e===_r&&(e=null),e!==_r?(u=S(),u!==_r?(o=Ot(),o===_r&&(o=null),o!==_r?(41===t.charCodeAt(bi)?(a=nn,bi++):(a=_r,0===xi&&f(en)),a!==_r?(wi=r,n=Pn(n,o),r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r}function L(){var r,n,e,u,o,a,i,s,c,l,p;if(r=bi,35===t.charCodeAt(bi)?(n=pn,bi++):(n=_r,0===xi&&f(hn)),n!==_r)if(e=A(),e===_r&&(e=null),e!==_r)if(t.substr(bi,6)===Bn?(u=Bn,bi+=6):(u=_r,0===xi&&f(Ln)),u!==_r)if(o=A(),o!==_r)if(a=D(),a!==_r)if(i=P(),i===_r&&(i=null),i!==_r){for(s=[],Zn.test(t.charAt(bi))?(c=t.charAt(bi),bi++):(c=_r,0===xi&&f(qn));c!==_r;)s.push(c),Zn.test(t.charAt(bi))?(c=t.charAt(bi),bi++):(c=_r,0===xi&&f(qn));if(s!==_r){for(c=bi,l=[],Mr.test(t.charAt(bi))?(p=t.charAt(bi),bi++):(p=_r,0===xi&&f(Gr));p!==_r;)l.push(p),Mr.test(t.charAt(bi))?(p=t.charAt(bi),bi++):(p=_r,0===xi&&f(Gr));l!==_r&&(wi=c,l=Qn(a,i,l)),c=l,c!==_r?(l=v(),l===_r&&(l=d()),l!==_r?(wi=r,n=Rn(a,i,c),r=n):(bi=r,r=_r)):(bi=r,r=_r)}else bi=r,r=_r}else bi=r,r=_r;else bi=r,r=_r;else bi=r,r=_r;else bi=r,r=_r;else bi=r,r=_r;else bi=r,r=_r;return r}function Z(){var r,n,e,u,o,a,i,s;if(r=bi,35===t.charCodeAt(bi)?(n=pn,bi++):(n=_r,0===xi&&f(hn)),n!==_r)if(e=A(),e===_r&&(e=null),e!==_r)if(t.substr(bi,5)===Mn?(u=Mn,bi+=5):(u=_r,0===xi&&f(Gn)),u===_r&&(t.substr(bi,6)===On?(u=On,bi+=6):(u=_r,0===xi&&f(Un)),u===_r&&(t.substr(bi,2)===Xn?(u=Xn,bi+=2):(u=_r,0===xi&&f(Nn)))),u!==_r)if(o=A(),o!==_r){for(a=bi,i=[],Mr.test(t.charAt(bi))?(s=t.charAt(bi),bi++):(s=_r,0===xi&&f(Gr));s!==_r;)i.push(s),Mr.test(t.charAt(bi))?(s=t.charAt(bi),bi++):(s=_r,0===xi&&f(Gr));i!==_r&&(wi=a,i=Fn(u,i)),a=i,a!==_r?(i=v(),i===_r&&(i=d()),i!==_r?(wi=r,n=Wn(u,a),r=n):(bi=r,r=_r)):(bi=r,r=_r)}else bi=r,r=_r;else bi=r,r=_r;else bi=r,r=_r;else bi=r,r=_r;return r}function q(){var r,n,e,u,o,a,i,s;if(r=bi,35===t.charCodeAt(bi)?(n=pn,bi++):(n=_r,0===xi&&f(hn)),n!==_r)if(e=A(),e===_r&&(e=null),e!==_r)if(t.substr(bi,4)===Hn?(u=Hn,bi+=4):(u=_r,0===xi&&f(Jn)),u!==_r)if(o=A(),o!==_r){for(a=bi,i=[],Mr.test(t.charAt(bi))?(s=t.charAt(bi),bi++):(s=_r,0===xi&&f(Gr));s!==_r;)i.push(s),Mr.test(t.charAt(bi))?(s=t.charAt(bi),bi++):(s=_r,0===xi&&f(Gr));i!==_r&&(wi=a,i=Kn(i)),a=i,a!==_r?(i=v(),i===_r&&(i=d()),i!==_r?(wi=r,n=Vn(a),r=n):(bi=r,r=_r)):(bi=r,r=_r)}else bi=r,r=_r;else bi=r,r=_r;else bi=r,r=_r;else bi=r,r=_r;return r}function Q(){var r,n,e,u,o,a;return r=bi,35===t.charCodeAt(bi)?(n=pn,bi++):(n=_r,0===xi&&f(hn)),n!==_r?(e=A(),e===_r&&(e=null),e!==_r?(t.substr(bi,4)===Yn?(u=Yn,bi+=4):(u=_r,0===xi&&f($n)),u!==_r?(o=m(),o===_r&&(o=null),o!==_r?(a=v(),a!==_r?(wi=r,n=te(),r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r}function R(){var r,n,e,u,o,a,i;return r=bi,35===t.charCodeAt(bi)?(n=pn,bi++):(n=_r,0===xi&&f(hn)),n!==_r?(e=A(),e===_r&&(e=null),e!==_r?(t.substr(bi,5)===re?(u=re,bi+=5):(u=_r,0===xi&&f(ne)),u!==_r?(o=m(),o===_r&&(o=null),o!==_r?(a=v(),a===_r&&(a=d()),a!==_r?(i=A(),i===_r&&(i=null),i!==_r?(n=[n,e,u,o,a,i],r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r}function M(){var t,r,n,e,u,o;if(t=bi,r=bi,n=Z(),n!==_r?(e=T(),e!==_r?(n=[n,e],r=n):(bi=r,r=_r)):(bi=r,r=_r),r!==_r){for(n=[],e=bi,u=q(),u!==_r?(o=T(),o!==_r?(u=[u,o],e=u):(bi=e,e=_r)):(bi=e,e=_r);e!==_r;)n.push(e),e=bi,u=q(),u!==_r?(o=T(),o!==_r?(u=[u,o],e=u):(bi=e,e=_r)):(bi=e,e=_r);n!==_r?(e=bi,u=Q(),u!==_r?(o=T(),o!==_r?(u=[u,o],e=u):(bi=e,e=_r)):(bi=e,e=_r),e===_r&&(e=null),e!==_r?(u=R(),u!==_r?(wi=t,r=ee(r,n,e),t=r):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r)}else bi=t,t=_r;return t}function G(){var t,r,n,e,u,o;if(t=bi,r=bi,n=Z(),n!==_r?(e=X(),e!==_r?(n=[n,e],r=n):(bi=r,r=_r)):(bi=r,r=_r),r!==_r){for(n=[],e=bi,u=q(),u!==_r?(o=X(),o!==_r?(u=[u,o],e=u):(bi=e,e=_r)):(bi=e,e=_r);e!==_r;)n.push(e),e=bi,u=q(),u!==_r?(o=X(),o!==_r?(u=[u,o],e=u):(bi=e,e=_r)):(bi=e,e=_r);n!==_r?(e=bi,u=Q(),u!==_r?(o=X(),o!==_r?(u=[u,o],e=u):(bi=e,e=_r)):(bi=e,e=_r),e===_r&&(e=null),e!==_r?(u=R(),u!==_r?(wi=t,r=ee(r,n,e),t=r):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r)}else bi=t,t=_r;return t}function O(){var t,r,n;return t=bi,r=at(),r!==_r?(n=U(),n!==_r?(wi=t,r=ue(r,n),t=r):(bi=t,t=_r)):(bi=t,t=_r),t}function U(){var t,r,n,e;return t=bi,r=E(),r!==_r?(n=X(),n===_r&&(n=null),n!==_r?(e=j(),e!==_r?(wi=t,r=oe(n),t=r):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r),t}function X(){var t,r,n,e;if(t=bi,r=A(),r===_r&&(r=null),r!==_r){for(n=[],e=N();e!==_r;)n.push(e),e=N();n!==_r?(e=A(),e===_r&&(e=null),e!==_r?(wi=t,r=ae(n),t=r):(bi=t,t=_r)):(bi=t,t=_r)}else bi=t,t=_r;return t}function N(){var t;return t=U(),t===_r&&(t=H(),t===_r&&(t=G())),t}function W(){var t;return t=U(),t===_r&&(t=H(),t===_r&&(t=G())),t}function H(){var t,r;return t=bi,r=et(),r===_r&&(r=nt(),r===_r&&(r=J(),r===_r&&(r=tt(),r===_r&&(r=rt(),r===_r&&(r=L(),r===_r&&(r=k(),r===_r&&(r=B()))))))),r!==_r&&(wi=t,r=ie(r)),t=r}function J(){var r,n,e,u,o,a,i,s,c,l;return r=bi,t.substr(bi,2)===Xn?(n=Xn,bi+=2):(n=_r,0===xi&&f(Nn)),n!==_r?(e=S(),e!==_r?(u=Ar(),u!==_r?(o=F(),o!==_r?(a=W(),a!==_r?(i=bi,t.substr(bi,4)===Yn?(s=Yn,bi+=4):(s=_r,0===xi&&f($n)),s!==_r?(c=A(),c===_r&&(c=null),c!==_r?(l=W(),l!==_r?(s=[s,c,l],i=s):(bi=i,i=_r)):(bi=i,i=_r)):(bi=i,i=_r),i===_r&&(i=null),i!==_r?(wi=r,n=se(u,a,i),r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r}function K(){var r,n,e,u,o,a,i,s,c;return r=bi,t.substr(bi,3)===ce?(n=ce,bi+=3):(n=_r,0===xi&&f(le)),n!==_r?(e=S(),e!==_r?(u=nt(),u===_r&&(u=et()),u!==_r?(o=yr(),o===_r&&(o=null),o!==_r?(a=w(),a!==_r?(i=Ar(),i===_r&&(i=null),i!==_r?(s=F(),s!==_r?(c=N(),c!==_r?(wi=r,n=fe(u,o,i,c),r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r}function V(){var r,n,e,u,o;return r=bi,t.substr(bi,5)===pe?(n=pe,bi+=5):(n=_r,0===xi&&f(he)),n!==_r?(e=S(),e!==_r?(u=yr(),u!==_r?(o=F(),o!==_r?(wi=r,n=ve(u),r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r}function Y(){var t,r,n;return t=bi,r=V(),r!==_r?(n=N(),n!==_r?(wi=t,r=de(r,n),t=r):(bi=t,t=_r)):(bi=t,t=_r),t}function $(){var r,n,e,u;return r=bi,t.substr(bi,2)===Ae?(n=Ae,bi+=2):(n=_r,0===xi&&f(ye)),n!==_r?(e=W(),e!==_r?(u=V(),u!==_r?(wi=r,n=me(e,u),r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r}function tt(){var t;return t=Y(),t===_r&&(t=$(),t===_r&&(t=K())),t}function rt(){var r,n,e,u,o;return r=bi,t.substr(bi,6)===be?(n=be,bi+=6):(n=_r,0===xi&&f(we)),n!==_r?(e=Ar(),e!==_r?(u=w(),u!==_r?(wi=r,n=ge(e),r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r===_r&&(r=bi,n=bi,t.substr(bi,8)===Ce?(e=Ce,bi+=8):(e=_r,0===xi&&f(_e)),e!==_r?(u=w(),u!==_r?(e=[e,u],n=e):(bi=n,n=_r)):(bi=n,n=_r),n===_r&&(n=bi,t.substr(bi,5)===xe?(e=xe,bi+=5):(e=_r,0===xi&&f(Se)),e!==_r?(u=w(),u!==_r?(e=[e,u],n=e):(bi=n,n=_r)):(bi=n,n=_r),n===_r&&(n=bi,t.substr(bi,6)===be?(e=be,bi+=6):(e=_r,0===xi&&f(we)),e!==_r?(u=w(),u!==_r?(e=[e,u],n=e):(bi=n,n=_r)):(bi=n,n=_r),n===_r&&(n=bi,e=bi,wi=bi,u=Fe(),u=u?void 0:_r,u!==_r?(t.substr(bi,7)===Ee?(o=Ee,bi+=7):(o=_r,0===xi&&f(je)),o!==_r?(wi=e,u=Te(),e=u):(bi=e,e=_r)):(bi=e,e=_r),e!==_r?(u=w(),u!==_r?(e=[e,u],n=e):(bi=n,n=_r)):(bi=n,n=_r)))),n!==_r&&(wi=r,n=ze(n)),r=n),r}function nt(){var t,r,n;return t=bi,r=Ar(),r===_r&&(r=null),r!==_r?(n=w(),n!==_r?(wi=t,r=Ie(r),t=r):(bi=t,t=_r)):(bi=t,t=_r),t}function et(){var r,n,e,u,o,a,i,s,c;if(xi++,r=bi,n=at(),n!==_r?(e=w(),e!==_r?(wi=r,n=De(n),r=n):(bi=r,r=_r)):(bi=r,r=_r),r===_r&&(r=bi,n=wt(),n!==_r?(e=A(),e!==_r?(u=ct(),u!==_r?(o=w(),o!==_r?(wi=r,n=Pe(n,u),r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r===_r)){if(r=bi,wi=bi,n=Be(),n=n?void 0:_r,n!==_r)if(t.substr(bi,9)===Le?(e=Le,bi+=9):(e=_r,0===xi&&f(Ze)),e!==_r)if(u=A(),u!==_r)if(o=Tt(),o!==_r){for(a=[],i=bi,s=g(),s!==_r?(c=Tt(),c!==_r?(s=[s,c],i=s):(bi=i,i=_r)):(bi=i,i=_r);i!==_r;)a.push(i),i=bi,s=g(),s!==_r?(c=Tt(),c!==_r?(s=[s,c],i=s):(bi=i,i=_r)):(bi=i,i=_r);a!==_r?(i=w(),i!==_r?(wi=r,n=qe(o,a),r=n):(bi=r,r=_r)):(bi=r,r=_r)}else bi=r,r=_r;else bi=r,r=_r;else bi=r,r=_r;else bi=r,r=_r;r===_r&&(r=bi,t.substr(bi,9)===Qe?(n=Qe,bi+=9):(n=_r,0===xi&&f(Re)),n!==_r?(e=A(),e!==_r?(u=xt(),u!==_r?(o=A(),o!==_r?(a=jt(),a!==_r?(i=w(),i!==_r?(wi=r,n=Me(u,a),r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r))}return xi--,r===_r&&(n=_r,0===xi&&f(ke)),r}function ut(){var t,r,n,e,u;return t=et(),t===_r&&(t=bi,r=_t(),r!==_r?(n=A(),n!==_r?(e=ct(),e!==_r?(u=w(),u!==_r?(wi=t,r=Ge(r,e),t=r):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r),t===_r&&(t=bi,r=Ct(),r!==_r?(n=A(),n!==_r?(e=ft(),e!==_r?(u=w(),u!==_r?(wi=t,r=Ge(r,e),t=r):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r))),t}function ot(){var r,n,e,u,o,a;if(t.substr(bi,4)===Oe?(r=Oe,bi+=4):(r=_r,0===xi&&f(Ue)),r===_r)if(r=bi,n=st(),n!==_r){for(e=[],u=bi,o=g(),o!==_r?(a=st(),a!==_r?(o=[o,a],u=o):(bi=u,u=_r)):(bi=u,u=_r);u!==_r;)e.push(u),u=bi,o=g(),o!==_r?(a=st(),a!==_r?(o=[o,a],u=o):(bi=u,u=_r)):(bi=u,u=_r);e!==_r?(wi=r,n=Xe(n,e),r=n):(bi=r,r=_r)}else bi=r,r=_r;return r}function at(){var t,r,n,e,u,o,a;return t=bi,r=Et(),r===_r&&(r=bt()),r!==_r?(n=A(),n!==_r?(e=Tt(),e!==_r?(u=S(),u!==_r?(o=ot(),o===_r&&(o=null),o!==_r?(a=F(),a!==_r?(wi=t,r=Ne(r,e,o),t=r):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r),t}function it(){var r;return t.substr(bi,5)===We?(r=We,bi+=5):(r=_r,0===xi&&f(He)),r===_r&&(t.substr(bi,2)===Je?(r=Je,bi+=2):(r=_r,0===xi&&f(Ke)),r===_r&&(t.substr(bi,3)===Ve?(r=Ve,bi+=3):(r=_r,0===xi&&f(Ye)))),r}function st(){var t,r,n,e,u,o,a,i,s,c,l;return t=bi,r=bi,n=St(),n!==_r?(e=A(),e!==_r?(n=[n,e],r=n):(bi=r,r=_r)):(bi=r,r=_r),r===_r&&(r=null),r!==_r?(n=bi,e=it(),e!==_r?(u=A(),u!==_r?(e=[e,u],n=e):(bi=n,n=_r)):(bi=n,n=_r),n===_r&&(n=null),n!==_r?(e=bi,u=xt(),u!==_r?(o=A(),o!==_r?(u=[u,o],e=u):(bi=e,e=_r)):(bi=e,e=_r),e===_r&&(e=null),e!==_r?(u=jt(),u!==_r?(o=A(),o!==_r?(a=Tt(),a!==_r?(i=bi,s=C(),s!==_r?(c=dr(),c!==_r?(l=_(),l!==_r?(s=[s,c,l],i=s):(bi=i,i=_r)):(bi=i,i=_r)):(bi=i,i=_r),i===_r&&(i=null),i!==_r?(wi=t,r=$e(r,n,e,u,a,i),t=r):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r),t}function ct(){var t,r,n,e,u,o;if(t=bi,r=At(),r!==_r){for(n=[],e=bi,u=g(),u!==_r?(o=At(),o!==_r?(u=[u,o],e=u):(bi=e,e=_r)):(bi=e,e=_r);e!==_r;)n.push(e),e=bi,u=g(),u!==_r?(o=At(),o!==_r?(u=[u,o],e=u):(bi=e,e=_r)):(bi=e,e=_r);n!==_r?(wi=t,r=tu(r,n),t=r):(bi=t,t=_r)}else bi=t,t=_r;return t}function lt(){var t,r,n,e,u,o;if(t=bi,r=dt(),r!==_r){for(n=[],e=bi,u=g(),u!==_r?(o=dt(),o!==_r?(u=[u,o],e=u):(bi=e,e=_r)):(bi=e,e=_r);e!==_r;)n.push(e),e=bi,u=g(),u!==_r?(o=dt(),o!==_r?(u=[u,o],e=u):(bi=e,e=_r)):(bi=e,e=_r);n!==_r?(wi=t,r=tu(r,n),t=r):(bi=t,t=_r)}else bi=t,t=_r;return t}function ft(){var t,r,n,e,u,o;if(t=bi,r=ht(),r!==_r){for(n=[],e=bi,u=g(),u!==_r?(o=ht(),o!==_r?(u=[u,o],e=u):(bi=e,e=_r)):(bi=e,e=_r);e!==_r;)n.push(e),e=bi,u=g(),u!==_r?(o=ht(),o!==_r?(u=[u,o],e=u):(bi=e,e=_r)):(bi=e,e=_r);n!==_r?(wi=t,r=tu(r,n),t=r):(bi=t,t=_r)}else bi=t,t=_r;return t}function pt(){var t,r,n,e,u,o;if(t=bi,r=vt(),r!==_r){for(n=[],e=bi,u=g(),u!==_r?(o=vt(),o!==_r?(u=[u,o],e=u):(bi=e,e=_r)):(bi=e,e=_r);e!==_r;)n.push(e),e=bi,u=g(),u!==_r?(o=vt(),o!==_r?(u=[u,o],e=u):(bi=e,e=_r)):(bi=e,e=_r);n!==_r?(wi=t,r=tu(r,n),t=r):(bi=t,t=_r)}else bi=t,t=_r;return t}function ht(){var t,r;return t=bi,r=Tt(),r!==_r&&(wi=t,r=ru(r)),t=r}function vt(){var t,r,n,e,u;return t=bi,r=Tt(),r!==_r?(n=C(),n!==_r?(e=dr(),e!==_r?(u=_(),u!==_r?(wi=t,r=nu(r,e),t=r):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r),t===_r&&(t=ht()),t}function dt(){var t,r,n,e;return t=bi,r=Tt(),r!==_r?(n=C(),n!==_r?(e=_(),e!==_r?(wi=t,r=eu(r),t=r):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r),t===_r&&(t=vt()),t}function At(){var t,r,n,e;return t=bi,r=Tt(),r!==_r?(n=x(),n!==_r?(e=dr(),e!==_r?(wi=t,r=uu(r,e),t=r):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r),t===_r&&(t=dt()),t}function yt(){var t,r,n,e,u,o,a;if(t=bi,r=[],n=bi,e=wt(),e!==_r?(u=A(),u!==_r?(o=pt(),o!==_r?(a=w(),a!==_r?(e=[e,u,o,a],n=e):(bi=n,n=_r)):(bi=n,n=_r)):(bi=n,n=_r)):(bi=n,n=_r),n!==_r)for(;n!==_r;)r.push(n),n=bi,e=wt(),e!==_r?(u=A(),u!==_r?(o=pt(),o!==_r?(a=w(),a!==_r?(e=[e,u,o,a],n=e):(bi=n,n=_r)):(bi=n,n=_r)):(bi=n,n=_r)):(bi=n,n=_r);else r=_r;return r!==_r&&(wi=t,r=ou(r)),t=r}function mt(){var r,n,e,u,o,a,i,s,c;return r=bi,n=bi,e=Ft(),e===_r&&(e=gt()),e!==_r?(u=A(),u!==_r?(e=[e,u],n=e):(bi=n,n=_r)):(bi=n,n=_r),n===_r&&(n=null),n!==_r?(t.substr(bi,6)===au?(e=au,bi+=6):(e=_r,0===xi&&f(iu)),e!==_r?(u=bi,o=A(),o!==_r?(a=Tt(),a!==_r?(o=[o,a],u=o):(bi=u,u=_r)):(bi=u,u=_r),u===_r&&(u=null),u!==_r?(o=E(),o!==_r?(a=yt(),a!==_r?(i=j(),i!==_r?(s=lt(),s===_r&&(s=null),s!==_r?(c=w(),c!==_r?(wi=r,n=su(n,u,a,s),r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r}function bt(){var t,r,n,e;return t=bi,r=bi,n=xt(),n!==_r?(e=A(),e!==_r?(n=[n,e],r=n):(bi=r,r=_r)):(bi=r,r=_r),r===_r&&(r=null),r!==_r?(n=jt(),n!==_r?(wi=t,r=cu(r,n),t=r):(bi=t,t=_r)):(bi=t,t=_r),t}function wt(){var t,r,n,e;return xi++,t=bi,r=bi,n=St(),n!==_r?(e=A(),e!==_r?(n=[n,e],r=n):(bi=r,r=_r)):(bi=r,r=_r),r===_r&&(r=null),r!==_r?(n=bt(),n!==_r?(wi=t,r=fu(r,n),t=r):(bi=t,t=_r)):(bi=t,t=_r),xi--,t===_r&&(r=_r,0===xi&&f(lu)),t}function gt(){var r,n,e;return r=bi,wi=bi,n=Be(),n=n?void 0:_r,n!==_r?(t.substr(bi,9)===pu?(e=pu,bi+=9):(e=_r,0===xi&&f(hu)),e!==_r?(wi=r,n=vu(),r=n):(bi=r,r=_r)):(bi=r,r=_r),r}function Ct(){var t,r,n,e;return xi++,t=bi,r=gt(),r!==_r?(n=A(),n!==_r?(e=bt(),e!==_r?(wi=t,r=du(r,e),t=r):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r),xi--,t===_r&&(r=_r,0===xi&&f(lu)),t}function _t(){var t,r,n,e;return xi++,t=bi,r=bi,n=Ft(),n!==_r?(e=A(),e!==_r?(n=[n,e],r=n):(bi=r,r=_r)):(bi=r,r=_r),r===_r&&(r=null),r!==_r?(n=bt(),n!==_r?(wi=t,r=fu(r,n),t=r):(bi=t,t=_r)):(bi=t,t=_r),xi--,t===_r&&(r=_r,0===xi&&f(Au)),t}function xt(){var r,n;return xi++,t.substr(bi,5)===mu?(r=mu,bi+=5):(r=_r,0===xi&&f(bu)),r===_r&&(t.substr(bi,7)===wu?(r=wu,bi+=7):(r=_r,0===xi&&f(gu)),r===_r&&(t.substr(bi,4)===Cu?(r=Cu,bi+=4):(r=_r,0===xi&&f(_u)))),xi--,r===_r&&(n=_r,0===xi&&f(yu)),r}function St(){var r;return t.substr(bi,5)===xu?(r=xu,bi+=5):(r=_r,0===xi&&f(Su)),r}function Ft(){var r,n,e,u;return xi++,r=St(),r===_r&&(t.substr(bi,7)===Eu?(r=Eu,bi+=7):(r=_r,0===xi&&f(ju)),r===_r&&(r=bi,t.substr(bi,9)===Le?(n=Le,bi+=9):(n=_r,0===xi&&f(Ze)),n!==_r?(e=A(),e!==_r?(t.substr(bi,7)===Eu?(u=Eu,bi+=7):(u=_r,0===xi&&f(ju)),u!==_r?(wi=r,n=Tu(),r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r===_r&&(t.substr(bi,7)===zu?(r=zu,bi+=7):(r=_r,0===xi&&f(Iu))))),xi--,r===_r&&(n=_r,0===xi&&f(Fu)),r}function Et(){var r,n;return xi++,r=bi,t.substr(bi,4)===Oe?(n=Oe,bi+=4):(n=_r,0===xi&&f(Ue)),n!==_r&&(wi=r,n=Du()),r=n,xi--,r===_r&&(n=_r,0===xi&&f(ku)),r}function jt(){var r,n;return xi++,t.substr(bi,5)===Bu?(r=Bu,bi+=5):(r=_r,0===xi&&f(Lu)),r===_r&&(t.substr(bi,3)===Zu?(r=Zu,bi+=3):(r=_r,0===xi&&f(qu)),r===_r&&(t.substr(bi,4)===Qu?(r=Qu,bi+=4):(r=_r,0===xi&&f(Ru)),r===_r&&(t.substr(bi,9)===Mu?(r=Mu,bi+=9):(r=_r,0===xi&&f(Gu)),r===_r&&(t.substr(bi,11)===Ou?(r=Ou,bi+=11):(r=_r,0===xi&&f(Uu)),r===_r&&(r=It(),r===_r&&(r=kt(),r===_r&&(r=bi,n=Tt(),n!==_r&&(wi=r,n=Xu(n)),r=n))))))),xi--,r===_r&&(n=_r,0===xi&&f(Pu)),r}function Tt(){var r,n,e,u,o;if(xi++,r=bi,n=bi,xi++,e=bi,u=zt(),u!==_r?(Wu.test(t.charAt(bi))?(o=t.charAt(bi),bi++):(o=_r,0===xi&&f(Hu)),o!==_r?(u=[u,o],e=u):(bi=e,e=_r)):(bi=e,e=_r),xi--,e===_r?n=void 0:(bi=n,n=_r),n!==_r)if(jn.test(t.charAt(bi))?(e=t.charAt(bi),bi++):(e=_r,0===xi&&f(Tn)),e!==_r){for(u=[],zn.test(t.charAt(bi))?(o=t.charAt(bi),bi++):(o=_r,0===xi&&f(In));o!==_r;)u.push(o),zn.test(t.charAt(bi))?(o=t.charAt(bi),bi++):(o=_r,0===xi&&f(In));u!==_r?(wi=r,n=kn(e,u),r=n):(bi=r,r=_r)}else bi=r,r=_r;else bi=r,r=_r;return xi--,r===_r&&(n=_r,0===xi&&f(Nu)),r}function zt(){var r,n;return xi++,t.substr(bi,9)===pu?(r=pu,bi+=9):(r=_r,0===xi&&f(hu)),r===_r&&(t.substr(bi,5)===xu?(r=xu,bi+=5):(r=_r,0===xi&&f(Su)),r===_r&&(t.substr(bi,4)===Qu?(r=Qu,bi+=4):(r=_r,0===xi&&f(Ru)),r===_r&&(t.substr(bi,5)===Bu?(r=Bu,bi+=5):(r=_r,0===xi&&f(Lu)),r===_r&&(t.substr(bi,3)===Zu?(r=Zu,bi+=3):(r=_r,0===xi&&f(qu)),r===_r&&(t.substr(bi,5)===xe?(r=xe,bi+=5):(r=_r,0===xi&&f(Se)),r===_r&&(t.substr(bi,8)===Ce?(r=Ce,bi+=8):(r=_r,0===xi&&f(_e)),r===_r&&(t.substr(bi,2)===Ae?(r=Ae,bi+=2):(r=_r,0===xi&&f(ye)),r===_r&&(t.substr(bi,4)===Yn?(r=Yn,bi+=4):(r=_r,0===xi&&f($n)),r===_r&&(t.substr(bi,3)===ce?(r=ce,bi+=3):(r=_r,0===xi&&f(le)),r===_r&&(t.substr(bi,2)===Xn?(r=Xn,bi+=2):(r=_r,0===xi&&f(Nn)),r===_r&&(t.substr(bi,7)===Ee?(r=Ee,bi+=7):(r=_r,0===xi&&f(je)),r===_r&&(t.substr(bi,6)===be?(r=be,bi+=6):(r=_r,0===xi&&f(we)),r===_r&&(r=It(),r===_r&&(r=kt(),r===_r&&(t.substr(bi,2)===Je?(r=Je,bi+=2):(r=_r,0===xi&&f(Ke)),r===_r&&(t.substr(bi,3)===Ve?(r=Ve,bi+=3):(r=_r,0===xi&&f(Ye)),r===_r&&(t.substr(bi,5)===We?(r=We,bi+=5):(r=_r,0===xi&&f(He)),r===_r&&(t.substr(bi,7)===zu?(r=zu,bi+=7):(r=_r,0===xi&&f(Iu)),r===_r&&(t.substr(bi,7)===Eu?(r=Eu,bi+=7):(r=_r,0===xi&&f(ju)),r===_r&&(t.substr(bi,9)===Mu?(r=Mu,bi+=9):(r=_r,0===xi&&f(Gu)),r===_r&&(t.substr(bi,11)===Ou?(r=Ou,bi+=11):(r=_r,0===xi&&f(Uu)),r===_r&&(t.substr(bi,6)===au?(r=au,bi+=6):(r=_r,0===xi&&f(iu)),r===_r&&(t.substr(bi,4)===Oe?(r=Oe,bi+=4):(r=_r,0===xi&&f(Ue)),r===_r&&(t.substr(bi,5)===pe?(r=pe,bi+=5):(r=_r,0===xi&&f(he)),r===_r&&(t.substr(bi,5)===mu?(r=mu,bi+=5):(r=_r,0===xi&&f(bu)),r===_r&&(t.substr(bi,7)===wu?(r=wu,bi+=7):(r=_r,0===xi&&f(gu)),r===_r&&(t.substr(bi,4)===Cu?(r=Cu,bi+=4):(r=_r,0===xi&&f(_u)),r===_r&&(t.substr(bi,4)===Ku?(r=Ku,bi+=4):(r=_r,0===xi&&f(Vu)),r===_r&&(t.substr(bi,5)===Yu?(r=Yu,bi+=5):(r=_r,0===xi&&f($u))))))))))))))))))))))))))))))),xi--,r===_r&&(n=_r,0===xi&&f(Ju)),r}function It(){var r,n,e,u,o;return r=bi,n=bi,to.test(t.charAt(bi))?(e=t.charAt(bi),bi++):(e=_r,0===xi&&f(ro)),e===_r&&(e=null),e!==_r?(t.substr(bi,3)===no?(u=no,bi+=3):(u=_r,0===xi&&f(eo)),u!==_r?(uo.test(t.charAt(bi))?(o=t.charAt(bi),bi++):(o=_r,0===xi&&f(oo)),o!==_r?(e=[e,u,o],n=e):(bi=n,n=_r)):(bi=n,n=_r)):(bi=n,n=_r),n!==_r&&(wi=r,n=ao(n)),r=n}function kt(){var r,n,e,u;return r=bi,n=bi,t.substr(bi,3)===io?(e=io,bi+=3):(e=_r,0===xi&&f(so)),e!==_r?(uo.test(t.charAt(bi))?(u=t.charAt(bi),bi++):(u=_r,0===xi&&f(oo)),u!==_r?(e=[e,u],n=e):(bi=n,n=_r)):(bi=n,n=_r),n!==_r&&(wi=r,n=ao(n)),r=n}function Dt(){var r,n,e,u,o;if(r=bi,co.test(t.charAt(bi))?(n=t.charAt(bi),bi++):(n=_r,0===xi&&f(lo)),n!==_r){for(e=[],fo.test(t.charAt(bi))?(u=t.charAt(bi),bi++):(u=_r,0===xi&&f(po));u!==_r;)e.push(u),fo.test(t.charAt(bi))?(u=t.charAt(bi),bi++):(u=_r,0===xi&&f(po));e!==_r?(wi=r,n=ho(n,e),r=n):(bi=r,r=_r)}else bi=r,r=_r;if(r===_r){if(r=bi,48===t.charCodeAt(bi)?(n=vo,bi++):(n=_r,0===xi&&f(Ao)),n!==_r)if(yo.test(t.charAt(bi))?(e=t.charAt(bi),bi++):(e=_r,0===xi&&f(mo)),e!==_r){if(u=[],bo.test(t.charAt(bi))?(o=t.charAt(bi),bi++):(o=_r,0===xi&&f(wo)),o!==_r)for(;o!==_r;)u.push(o),bo.test(t.charAt(bi))?(o=t.charAt(bi),bi++):(o=_r,0===xi&&f(wo));else u=_r;u!==_r?(wi=r,n=go(u),r=n):(bi=r,r=_r)}else bi=r,r=_r;else bi=r,r=_r;if(r===_r){if(r=bi,48===t.charCodeAt(bi)?(n=vo,bi++):(n=_r,0===xi&&f(Ao)),n!==_r){if(e=[],Co.test(t.charAt(bi))?(u=t.charAt(bi),bi++):(u=_r,0===xi&&f(_o)),u!==_r)for(;u!==_r;)e.push(u),Co.test(t.charAt(bi))?(u=t.charAt(bi),bi++):(u=_r,0===xi&&f(_o));else e=_r;e!==_r?(wi=r,n=xo(e),r=n):(bi=r,r=_r)}else bi=r,r=_r;r===_r&&(r=bi,48===t.charCodeAt(bi)?(n=vo,bi++):(n=_r,0===xi&&f(Ao)),n!==_r&&(wi=r,n=So()),r=n)}}return r}function Pt(){var r,n,e,u,o,a;for(r=bi,n=bi,e=[],fo.test(t.charAt(bi))?(u=t.charAt(bi),bi++):(u=_r,0===xi&&f(po));u!==_r;)e.push(u),fo.test(t.charAt(bi))?(u=t.charAt(bi),bi++):(u=_r,0===xi&&f(po));if(e!==_r)if(46===t.charCodeAt(bi)?(u=Fo,bi++):(u=_r,0===xi&&f(Eo)),u!==_r){if(o=[],fo.test(t.charAt(bi))?(a=t.charAt(bi),bi++):(a=_r,0===xi&&f(po)),a!==_r)for(;a!==_r;)o.push(a),fo.test(t.charAt(bi))?(a=t.charAt(bi),bi++):(a=_r,0===xi&&f(po));else o=_r;o!==_r?(a=Bt(),a===_r&&(a=null),a!==_r?(e=[e,u,o,a],n=e):(bi=n,n=_r)):(bi=n,n=_r)}else bi=n,n=_r;else bi=n,n=_r;if(n===_r){if(n=bi,e=[],fo.test(t.charAt(bi))?(u=t.charAt(bi),bi++):(u=_r,0===xi&&f(po)),u!==_r)for(;u!==_r;)e.push(u),fo.test(t.charAt(bi))?(u=t.charAt(bi),bi++):(u=_r,0===xi&&f(po));else e=_r;if(e!==_r)if(46===t.charCodeAt(bi)?(u=Fo,bi++):(u=_r,0===xi&&f(Eo)),u!==_r){for(o=[],fo.test(t.charAt(bi))?(a=t.charAt(bi),bi++):(a=_r,0===xi&&f(po));a!==_r;)o.push(a),fo.test(t.charAt(bi))?(a=t.charAt(bi),bi++):(a=_r,0===xi&&f(po));o!==_r?(a=Bt(),a===_r&&(a=null),a!==_r?(e=[e,u,o,a],n=e):(bi=n,n=_r)):(bi=n,n=_r)}else bi=n,n=_r;else bi=n,n=_r}if(n!==_r&&(wi=r,n=jo(n)),r=n,r===_r){if(r=bi,n=bi,e=[],fo.test(t.charAt(bi))?(u=t.charAt(bi),bi++):(u=_r,0===xi&&f(po)),u!==_r)for(;u!==_r;)e.push(u),fo.test(t.charAt(bi))?(u=t.charAt(bi),bi++):(u=_r,0===xi&&f(po));else e=_r;e!==_r?(u=Bt(),u!==_r?(e=[e,u],n=e):(bi=n,n=_r)):(bi=n,n=_r),n!==_r&&(wi=r,n=To(n)),r=n}return r}function Bt(){var r,n,e,u,o;if(r=bi,zo.test(t.charAt(bi))?(n=t.charAt(bi),bi++):(n=_r,0===xi&&f(Io)),n!==_r)if(ko.test(t.charAt(bi))?(e=t.charAt(bi),bi++):(e=_r,0===xi&&f(Do)),e===_r&&(e=null),e!==_r){if(u=[],fo.test(t.charAt(bi))?(o=t.charAt(bi),bi++):(o=_r,0===xi&&f(po)),o!==_r)for(;o!==_r;)u.push(o),fo.test(t.charAt(bi))?(o=t.charAt(bi),bi++):(o=_r,0===xi&&f(po));else u=_r;u!==_r?(wi=r,n=Po(e,u),r=n):(bi=r,r=_r)}else bi=r,r=_r;else bi=r,r=_r;return r}function Lt(){var t,r,n,e;return t=bi,r=S(),r!==_r?(n=Ar(),n!==_r?(e=F(),e!==_r?(wi=t,r=Bo(n),t=r):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r),t}function Zt(){var r,n;return r=bi,t.substr(bi,4)===Ku?(n=Ku,bi+=4):(n=_r,0===xi&&f(Vu)),n===_r&&(t.substr(bi,5)===Yu?(n=Yu,bi+=5):(n=_r,0===xi&&f($u))),n!==_r&&(wi=r,n=Lo(n)),r=n}function qt(){var t;return t=Ut(),t===_r&&(t=Tt(),t===_r&&(t=Pt(),t===_r&&(t=Dt(),t===_r&&(t=Zt(),t===_r&&(t=Lt()))))),t}function Qt(){var t,r,n,e;return t=bi,r=C(),r!==_r?(n=Ar(),n!==_r?(e=_(),e!==_r?(wi=t,r=Zo(n),t=r):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r),t}function Rt(){var r,n,e;return r=bi,46===t.charCodeAt(bi)?(n=Fo,bi++):(n=_r,0===xi&&f(Eo)),n!==_r?(e=Tt(),e!==_r?(wi=r,n=qo(e),r=n):(bi=r,r=_r)):(bi=r,r=_r),r}function Mt(){var t,r,n,e;if(t=bi,r=qt(),r!==_r){for(n=[],e=Rt(),e===_r&&(e=Qt());e!==_r;)n.push(e),e=Rt(),e===_r&&(e=Qt());n!==_r?(wi=t,r=Qo(r,n),t=r):(bi=t,t=_r)}else bi=t,t=_r;return t}function Gt(){var r,n,e,u,o,a;if(r=bi,n=Mt(),n!==_r)if(e=A(),e===_r&&(e=null),e!==_r)if(t.substr(bi,2)===Ro?(u=Ro,bi+=2):(u=_r,0===xi&&f(Mo)),u===_r&&(t.substr(bi,2)===Go?(u=Go,bi+=2):(u=_r,0===xi&&f(Oo))),u===_r&&(u=null),u!==_r){for(o=[],a=Rt(),a===_r&&(a=Qt());a!==_r;)o.push(a),a=Rt(),a===_r&&(a=Qt());o!==_r?(wi=r,n=Uo(n,u,o),r=n):(bi=r,r=_r)}else bi=r,r=_r;else bi=r,r=_r;else bi=r,r=_r;return r}function Ot(){var r,n,e,u,o,a;if(r=bi,t.substr(bi,4)===Oe?(n=Oe,bi+=4):(n=_r,0===xi&&f(Ue)),n!==_r&&(wi=r,n=Xo()),r=n,r===_r)if(r=bi,n=Ar(),n!==_r){for(e=[],u=bi,o=g(),o!==_r?(a=Ar(),a!==_r?(o=[o,a],u=o):(bi=u,u=_r)):(bi=u,u=_r);u!==_r;)e.push(u),u=bi,o=g(),o!==_r?(a=Ar(),a!==_r?(o=[o,a],u=o):(bi=u,u=_r)):(bi=u,u=_r);e!==_r?(wi=r,n=No(n,e),r=n):(bi=r,r=_r)}else bi=r,r=_r;return r}function Ut(){var t,r,n,e,u;return t=bi,r=Xt(),r!==_r?(n=S(),n!==_r?(e=Ot(),e===_r&&(e=null),e!==_r?(u=F(),u!==_r?(wi=t,r=Wo(r,e),t=r):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r)):(bi=t,t=_r),t}function Xt(){var t,r;return t=bi,r=Tt(),r!==_r&&(wi=t,r=Ho(r)),t=r,t===_r&&(t=jt()),t}function Nt(){var r,n,e,u;return r=bi,t.substr(bi,2)===Ro?(n=Ro,bi+=2):(n=_r,0===xi&&f(Mo)),n===_r&&(t.substr(bi,2)===Go?(n=Go,bi+=2):(n=_r,0===xi&&f(Oo)),n===_r&&(33===t.charCodeAt(bi)?(n=Jo,bi++):(n=_r,0===xi&&f(Ko)),n===_r&&(126===t.charCodeAt(bi)?(n=Vo,bi++):(n=_r,0===xi&&f(Yo)),n===_r&&(43===t.charCodeAt(bi)?(n=$o,bi++):(n=_r,0===xi&&f(ta)),n===_r&&(45===t.charCodeAt(bi)?(n=ra,bi++):(n=_r,0===xi&&f(na))))))),n===_r&&(n=null),n!==_r?(e=A(),e===_r&&(e=null),e!==_r?(u=Gt(),u!==_r?(wi=r,n=ea(n,u),r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r}function Wt(){var r,n,e,u;return r=bi,42===t.charCodeAt(bi)?(n=ua,bi++):(n=_r,0===xi&&f(oa)),n===_r&&(47===t.charCodeAt(bi)?(n=aa,bi++):(n=_r,0===xi&&f(ia)),n===_r&&(37===t.charCodeAt(bi)?(n=sa,bi++):(n=_r,0===xi&&f(ca)))),n!==_r?(e=bi,xi++,61===t.charCodeAt(bi)?(u=Yr,bi++):(u=_r,0===xi&&f($r)),xi--,u===_r?e=void 0:(bi=e,e=_r),e!==_r?(wi=r,n=la(n),r=n):(bi=r,r=_r)):(bi=r,r=_r),r}function Ht(){var t,r,n,e,u,o,a,i;if(t=bi,r=Nt(),r!==_r){for(n=[],e=bi, +u=A(),u===_r&&(u=null),u!==_r?(o=Wt(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=Nt(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);e!==_r;)n.push(e),e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=Wt(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=Nt(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(bi=t,t=_r)}else bi=t,t=_r;return t}function Jt(){var r,n,e,u;return r=bi,43===t.charCodeAt(bi)?(n=$o,bi++):(n=_r,0===xi&&f(ta)),n!==_r?(e=bi,xi++,43===t.charCodeAt(bi)?(u=$o,bi++):(u=_r,0===xi&&f(ta)),u===_r&&(61===t.charCodeAt(bi)?(u=Yr,bi++):(u=_r,0===xi&&f($r))),xi--,u===_r?e=void 0:(bi=e,e=_r),e!==_r?(wi=r,n=pa(),r=n):(bi=r,r=_r)):(bi=r,r=_r),r===_r&&(r=bi,45===t.charCodeAt(bi)?(n=ra,bi++):(n=_r,0===xi&&f(na)),n!==_r?(e=bi,xi++,45===t.charCodeAt(bi)?(u=ra,bi++):(u=_r,0===xi&&f(na)),u===_r&&(61===t.charCodeAt(bi)?(u=Yr,bi++):(u=_r,0===xi&&f($r))),xi--,u===_r?e=void 0:(bi=e,e=_r),e!==_r?(wi=r,n=ha(),r=n):(bi=r,r=_r)):(bi=r,r=_r)),r}function Kt(){var t,r,n,e,u,o,a,i;if(t=bi,r=Ht(),r!==_r){for(n=[],e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=Jt(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=Ht(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);e!==_r;)n.push(e),e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=Jt(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=Ht(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(bi=t,t=_r)}else bi=t,t=_r;return t}function Vt(){var r,n,e,u;return r=bi,t.substr(bi,2)===va?(n=va,bi+=2):(n=_r,0===xi&&f(da)),n===_r&&(t.substr(bi,2)===Aa?(n=Aa,bi+=2):(n=_r,0===xi&&f(ya))),n!==_r?(e=bi,xi++,61===t.charCodeAt(bi)?(u=Yr,bi++):(u=_r,0===xi&&f($r)),xi--,u===_r?e=void 0:(bi=e,e=_r),e!==_r?(wi=r,n=la(n),r=n):(bi=r,r=_r)):(bi=r,r=_r),r}function Yt(){var t,r,n,e,u,o,a,i;if(t=bi,r=Kt(),r!==_r){for(n=[],e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=Vt(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=Kt(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);e!==_r;)n.push(e),e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=Vt(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=Kt(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(bi=t,t=_r)}else bi=t,t=_r;return t}function $t(){var r,n,e,u;return r=bi,60===t.charCodeAt(bi)?(n=ma,bi++):(n=_r,0===xi&&f(ba)),n!==_r?(e=bi,xi++,60===t.charCodeAt(bi)?(u=ma,bi++):(u=_r,0===xi&&f(ba)),xi--,u===_r?e=void 0:(bi=e,e=_r),e!==_r?(61===t.charCodeAt(bi)?(u=Yr,bi++):(u=_r,0===xi&&f($r)),u===_r&&(u=null),u!==_r?(wi=r,n=wa(u),r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r===_r&&(r=bi,62===t.charCodeAt(bi)?(n=ga,bi++):(n=_r,0===xi&&f(Ca)),n!==_r?(e=bi,xi++,62===t.charCodeAt(bi)?(u=ga,bi++):(u=_r,0===xi&&f(Ca)),xi--,u===_r?e=void 0:(bi=e,e=_r),e!==_r?(61===t.charCodeAt(bi)?(u=Yr,bi++):(u=_r,0===xi&&f($r)),u===_r&&(u=null),u!==_r?(wi=r,n=_a(u),r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)),r}function tr(){var t,r,n,e,u,o,a,i;if(t=bi,r=Yt(),r!==_r){for(n=[],e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=$t(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=Yt(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);e!==_r;)n.push(e),e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=$t(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=Yt(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(bi=t,t=_r)}else bi=t,t=_r;return t}function rr(){var r,n;return r=bi,t.substr(bi,2)===xa?(n=xa,bi+=2):(n=_r,0===xi&&f(Sa)),n===_r&&(t.substr(bi,2)===Fa?(n=Fa,bi+=2):(n=_r,0===xi&&f(Ea))),n!==_r&&(wi=r,n=ja(n)),r=n}function nr(){var t,r,n,e,u,o,a,i;if(t=bi,r=tr(),r!==_r){for(n=[],e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=rr(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=tr(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);e!==_r;)n.push(e),e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=rr(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=tr(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(bi=t,t=_r)}else bi=t,t=_r;return t}function er(){var r,n,e,u;return r=bi,38===t.charCodeAt(bi)?(n=Ta,bi++):(n=_r,0===xi&&f(za)),n!==_r?(e=bi,xi++,61===t.charCodeAt(bi)?(u=Yr,bi++):(u=_r,0===xi&&f($r)),u===_r&&(38===t.charCodeAt(bi)?(u=Ta,bi++):(u=_r,0===xi&&f(za))),xi--,u===_r?e=void 0:(bi=e,e=_r),e!==_r?(wi=r,n=Ia(),r=n):(bi=r,r=_r)):(bi=r,r=_r),r}function ur(){var t,r,n,e,u,o,a,i;if(t=bi,r=nr(),r!==_r){for(n=[],e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=er(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=nr(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);e!==_r;)n.push(e),e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=er(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=nr(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(bi=t,t=_r)}else bi=t,t=_r;return t}function or(){var r,n,e,u;return r=bi,94===t.charCodeAt(bi)?(n=ka,bi++):(n=_r,0===xi&&f(Da)),n!==_r?(e=bi,xi++,61===t.charCodeAt(bi)?(u=Yr,bi++):(u=_r,0===xi&&f($r)),u===_r&&(94===t.charCodeAt(bi)?(u=ka,bi++):(u=_r,0===xi&&f(Da))),xi--,u===_r?e=void 0:(bi=e,e=_r),e!==_r?(wi=r,n=Pa(),r=n):(bi=r,r=_r)):(bi=r,r=_r),r}function ar(){var t,r,n,e,u,o,a,i;if(t=bi,r=ur(),r!==_r){for(n=[],e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=or(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=ur(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);e!==_r;)n.push(e),e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=or(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=ur(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(bi=t,t=_r)}else bi=t,t=_r;return t}function ir(){var r,n,e,u;return r=bi,124===t.charCodeAt(bi)?(n=Ba,bi++):(n=_r,0===xi&&f(La)),n!==_r?(e=bi,xi++,61===t.charCodeAt(bi)?(u=Yr,bi++):(u=_r,0===xi&&f($r)),u===_r&&(124===t.charCodeAt(bi)?(u=Ba,bi++):(u=_r,0===xi&&f(La))),xi--,u===_r?e=void 0:(bi=e,e=_r),e!==_r?(wi=r,n=Za(),r=n):(bi=r,r=_r)):(bi=r,r=_r),r}function sr(){var t,r,n,e,u,o,a,i;if(t=bi,r=ar(),r!==_r){for(n=[],e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=ir(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=ar(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);e!==_r;)n.push(e),e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=ir(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=ar(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(bi=t,t=_r)}else bi=t,t=_r;return t}function cr(){var r,n;return r=bi,t.substr(bi,2)===qa?(n=qa,bi+=2):(n=_r,0===xi&&f(Qa)),n!==_r&&(wi=r,n=Ra()),r=n}function lr(){var t,r,n,e,u,o,a,i;if(t=bi,r=sr(),r!==_r){for(n=[],e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=cr(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=sr(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);e!==_r;)n.push(e),e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=cr(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=sr(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(bi=t,t=_r)}else bi=t,t=_r;return t}function fr(){var r,n;return r=bi,t.substr(bi,2)===Ma?(n=Ma,bi+=2):(n=_r,0===xi&&f(Ga)),n!==_r&&(wi=r,n=Oa()),r=n}function pr(){var t,r,n,e,u,o,a,i;if(t=bi,r=lr(),r!==_r){for(n=[],e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=fr(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=lr(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);e!==_r;)n.push(e),e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=fr(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=lr(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(bi=t,t=_r)}else bi=t,t=_r;return t}function hr(){var r,n;return r=bi,t.substr(bi,2)===Ua?(n=Ua,bi+=2):(n=_r,0===xi&&f(Xa)),n!==_r&&(wi=r,n=Na()),r=n}function vr(){var t,r,n,e,u,o,a,i;if(t=bi,r=pr(),r!==_r){for(n=[],e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=hr(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=pr(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);e!==_r;)n.push(e),e=bi,u=A(),u===_r&&(u=null),u!==_r?(o=hr(),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=pr(),i!==_r?(u=[u,o,a,i],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r);n!==_r?(wi=t,r=fa(r,n),t=r):(bi=t,t=_r)}else bi=t,t=_r;return t}function dr(){var r,n,e,u,o,a,i,s,c,l,p;return r=bi,n=vr(),n!==_r?(e=bi,u=A(),u===_r&&(u=null),u!==_r?(63===t.charCodeAt(bi)?(o=Wa,bi++):(o=_r,0===xi&&f(Ha)),o!==_r?(a=A(),a===_r&&(a=null),a!==_r?(i=Ar(),i!==_r?(s=A(),s===_r&&(s=null),s!==_r?(58===t.charCodeAt(bi)?(c=Ja,bi++):(c=_r,0===xi&&f(Ka)),c!==_r?(l=A(),l===_r&&(l=null),l!==_r?(p=Ar(),p!==_r?(u=[u,o,a,i,s,c,l,p],e=u):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r)):(bi=e,e=_r),e===_r&&(e=null),e!==_r?(wi=r,n=Va(n,e),r=n):(bi=r,r=_r)):(bi=r,r=_r),r}function Ar(){var r,n,e,u,o,a;return r=bi,n=dr(),n!==_r?(e=A(),e===_r&&(e=null),e!==_r?(61===t.charCodeAt(bi)?(u=Yr,bi++):(u=_r,0===xi&&f($r)),u===_r&&(t.substr(bi,2)===Ya?(u=Ya,bi+=2):(u=_r,0===xi&&f($a)),u===_r&&(t.substr(bi,2)===ti?(u=ti,bi+=2):(u=_r,0===xi&&f(ri)),u===_r&&(t.substr(bi,2)===ni?(u=ni,bi+=2):(u=_r,0===xi&&f(ei)),u===_r&&(t.substr(bi,2)===ui?(u=ui,bi+=2):(u=_r,0===xi&&f(oi)),u===_r&&(t.substr(bi,2)===ai?(u=ai,bi+=2):(u=_r,0===xi&&f(ii)),u===_r&&(t.substr(bi,3)===si?(u=si,bi+=3):(u=_r,0===xi&&f(ci)),u===_r&&(t.substr(bi,3)===li?(u=li,bi+=3):(u=_r,0===xi&&f(fi)),u===_r&&(t.substr(bi,2)===pi?(u=pi,bi+=2):(u=_r,0===xi&&f(hi)),u===_r&&(t.substr(bi,2)===vi?(u=vi,bi+=2):(u=_r,0===xi&&f(di)),u===_r&&(t.substr(bi,2)===Ai?(u=Ai,bi+=2):(u=_r,0===xi&&f(yi)))))))))))),u!==_r?(o=A(),o===_r&&(o=null),o!==_r?(a=Ar(),a!==_r?(wi=r,n=mi(n,u,a),r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r===_r&&(r=dr()),r}function yr(){var r,n,e,u,o,a,i,s;return r=bi,n=wt(),n!==_r?(e=A(),e!==_r?(u=Tt(),u!==_r?(o=A(),o===_r&&(o=null),o!==_r?(61===t.charCodeAt(bi)?(a=Yr,bi++):(a=_r,0===xi&&f($r)),a!==_r?(i=A(),i===_r&&(i=null),i!==_r?(s=Ar(),s!==_r?(n=[n,e,u,o,a,i,s],r=n):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r)):(bi=r,r=_r),r===_r&&(r=Ar()),r}function mr(){return e()}function br(t,r){return new ji(t.type,mr(),t)}function wr(t,r){for(var n=t,e=0;e>",ya=u(">>",!1),ma="<",ba=u("<",!1),wa=function(t){return new br({type:"operator",operator:"<"+(t||"")})},ga=">",Ca=u(">",!1),_a=function(t){return new br({type:"operator",operator:">"+(t||"")})},xa="==",Sa=u("==",!1),Fa="!=",Ea=u("!=",!1),ja=function(t){return new br({type:"operator",operator:t})},Ta="&",za=u("&",!1),Ia=function(){return new br({type:"operator",operator:"&"})},ka="^",Da=u("^",!1),Pa=function(){return new br({type:"operator",operator:"^"})},Ba="|",La=u("|",!1),Za=function(){return new br({type:"operator",operator:"|"})},qa="&&",Qa=u("&&",!1),Ra=function(){return new br({type:"operator",operator:"&&"})},Ma="^^",Ga=u("^^",!1),Oa=function(){return new br({type:"operator",operator:"^^"})},Ua="||",Xa=u("||",!1),Na=function(){return new br({type:"operator",operator:"||"})},Wa="?",Ha=u("?",!1),Ja=":",Ka=u(":",!1),Va=function(t,r){var n=t;return r&&(n=new br({type:"ternary",condition:t,is_true:r[3],is_false:r[7]})),n},Ya="*=",$a=u("*=",!1),ti="/=",ri=u("/=",!1),ni="%=",ei=u("%=",!1),ui="+=",oi=u("+=",!1),ai="-=",ii=u("-=",!1),si="<<=",ci=u("<<=",!1),li=">>=",fi=u(">>=",!1),pi="&=",hi=u("&=",!1),vi="^=",di=u("^=",!1),Ai="|=",yi=u("|=",!1),mi=function(t,r,n){return new br({type:"binary",operator:new br({type:"operator",operator:r}),left:t,right:n})},bi=0,wi=0,gi=[{line:1,column:1}],Ci=0,_i=[],xi=0;if("startRule"in r){if(!(r.startRule in xr))throw new Error("Can't start parsing from rule \""+r.startRule+'".');Sr=xr[r.startRule]}var Si={},Fi=0,Ei="fs",ji=function(t,r,n){this.type=t,this.position=r;for(var e in n)n.hasOwnProperty(e)&&(this[e]=n[e])};if(ji.__nextId=1,ji.Types={Program:"root",Preprocessor:"preprocessor",MacroCall:"macro_call",FunctionCall:"function_call",FunctionPrototype:"function_prototype",FunctionDeclaration:"function_declaration",Scope:"scope",IfStatement:"if_statement",ForStatement:"for_statement",WhileStatement:"while_statement",DoStatement:"do_statement",ReturnStatement:"return",ContinueStatement:"continue",BreakStatement:"break",DiscardStatement:"discard",ExpressionStatement:"expression",Declarator:"declarator",DeclaratorItem:"declarator_item",Invariant:"invariant",Precision:"precision",Parameter:"parameter",StructDefinition:"struct_definition",Type:"type",IntegerLiteral:"int",FloatLiteral:"float",BooleanLiteral:"bool",Identifier:"identifier",Operator:"operator",PostfixExpression:"postfix",UnaryExpression:"unary",BinaryExpression:"binary",TernaryExpression:"ternary",IndexSelector:"accessor",FieldSelector:"field_selector"},Cr=Sr(),Cr!==_r&&bi===t.length)return Cr;throw Cr!==_r&&bi0){for(r=1,n=1;r100&&(d.style.zIndex=100)));for(e=f.dialog.parentElement;null!==e;)e.classList.contains(l.dialog)&&(e.style.zIndex=101),e=e.parentElement;a.style.zIndex=101}},q=function(a){var b=document.createElement("div");return b.className="wui-dialog-modal",b.addEventListener("click",function(b){b.preventDefault(),o(a,!0,!0,!0)}),b.style.zIndex=16777270,b},r=function(a){var c=b[a.id],d=c.opts,e=a.parentElement.offsetWidth,f=a.parentElement.offsetHeight,g=a.offsetWidth,h=a.offsetHeight;a.style.left="center"===d.halign?Math.round((e-g)/2+d.left)+"px":"right"===d.halign?e-g+d.left+"px":d.left+"px",a.style.top="center"===d.valign?Math.round((f-h)/2+d.top)+"px":"bottom"===d.valign?f-h+d.top+"px":d.top+"px"},s=function(a,c){var d=b[c.id],e=d.resize_handler;d.dialog!==c&&s(d.header_minimaxi_btn,d.dialog),a.classList.toggle(l.minimize),a.classList.toggle(l.maximize),c.classList.toggle(l.minimized),c.classList.contains(l.minimized)?(c.style.borderStyle="solid",c.style.borderColor="#808080",c.style.borderWidth="1px"):(c.style.borderStyle="",c.style.borderColor="",c.style.borderWidth=""),e&&e.classList.toggle(l.open),d.status_bar&&d.status_bar.classList.toggle(l.open)},t=function(a){null===j&&(j=setTimeout(function(){j=null;var c,d,e,f,g,h,i,k=document;if(a)for(k=a.document,c=k.getElementsByClassName(l.content),i=0;i0?a.innerHeight-32+"px":a.innerHeight+"px",h=e.getBoundingClientRect(),d.opts.on_resize&&d.opts.on_resize(h.width,h.height);else for(c=k.getElementsByClassName(l.content),i=0;i0?f.offsetHeight-64+"px":f.offsetHeight-32+"px",r(f),h=e.getBoundingClientRect(),d=b[f.id],d.opts.on_resize&&d.opts.on_resize(h.width,h.height)},125))},u=function(a,b){var c,d;do{if(1==a.nodeType&&a.eventListenerList)for(c in a.eventListenerList)if("length"!==c&&a.eventListenerList.hasOwnProperty(c))for(d=0;d"+(""+n+"")+h+""+('')+""),p.document.close(),p.document.body.appendChild(a.children[1].cloneNode(!0));var r=a.getElementsByClassName(l.status_bar);if(r.length>0){var s=r[0].cloneNode(!0);s.classList.add(l.open),p.document.body.appendChild(s)}p.addEventListener("keyup",function(b){27===b.keyCode&&o(a,!0,!0,!0)},!1),p.addEventListener("resize",function(){t(p)},!1),p.addEventListener("beforeunload",function(){o(a,!0,!0,!0)},!1),k.push(p)},w=function(a){a.preventDefault();var b=a.target,c=null;b.classList.contains(l.btn_close)?(c=b.parentElement.parentElement,o(c,!1,!0,!0)):b.classList.contains(l.maximize)||b.classList.contains(l.minimize)?(c=b.parentElement.parentElement,s(b,c)):b.classList.contains(l.detach)&&(c=b.parentElement.parentElement,v(c))},x=function(c){if(27===c.keyCode){var d,e;for(d in b)if(b.hasOwnProperty(d)&&(e=b[d],e.opts.closable&&"101"===e.dialog.style.zIndex&&e.dialog.classList.contains(l.open)))return void a.close(d,!0)}},y=function(a){if(c){a.preventDefault();var d,h,i,j=b[c.id],k=a.clientX,l=a.clientY,m=a.changedTouches,n=null;if(m)for(d=0;d0&&(d[0].innerHTML=c)))))},this.open=function(a,c){var d,e,f,g=b[a];if(void 0===g)return void("undefined"!=typeof console&&console.log('Cannot open WUI dialog "'+a+'".'));if(g.detachable_ref&&!g.detachable_ref.closed)return void g.detachable_ref.focus();if(f=g.dialog,g.opts.modal)for(d=q(f),g.dialog.style.zIndex=16777271,g.modal_element=d,document.body.appendChild(d),e=0;el?(m=l,b=c.opts.max):m<0?(m=0,b=c.opts.min):b=Math.round((c.opts.min+m/l*c.opts.range)/c.opts.step)*c.opts.step,c.value===b)return;c.value=b,g=r(b,c.opts.decimals),j.value=g,c.value_input.value=g,c.opts.vertical?(h.style.height=m+"px",c.filler.style.height=m+"px"):(h.style.width=m+"px",c.filler.style.width=m+"px",d.style.left=m+"px",c.hook.style.left=m+"px"),q(c.opts.on_change,b)}},v=function(a){if(d){a.preventDefault();var b,f=a.changedTouches,g=null,h=!1,i=d.ownerDocument,j=i.defaultView||i.parentWindow;if(f){for(b=0;b=0?f+=e.opts.scroll_step:f-=e.opts.scroll_step,e.endless||(e.opts.max&&f>e.opts.max?f=e.opts.max:f0&&(f[0].style="")),e.learn_elem&&(e.learn_elem.style=""));m.learn=!0,i.style=g,h=l.id},D=function(b){b.preventDefault(),b.stopPropagation();var c,d,e,g,h,i,j,l,n=b.target,o=n.parentElement,q=a[o.id],r=q.opts,s=n.ownerDocument,t=q.element.id+f,u=1;if(document.getElementById(t)||(q.configure_panel_open=!1),q.configure_panel_open!==!0){h=s.createElement("div"),h.className="wui-rangeslider-configure-container",l=s.createElement("div"),l.className="wui-rangeslider-configure-close",c=function(a){q.configure_panel_open=!1;var b=document.getElementById(t),c=a.target.ownerDocument.getElementById(t);b&&b.parentElement&&b.parentElement.removeChild(b),c&&c.parentElement&&c.parentElement.removeChild(c)},l.addEventListener("click",c,!1),l.addEventListener("touchstart",c,!1),h.id=t,h.appendChild(l);for(e in r.configurable)r.configurable.hasOwnProperty(e)&&void 0!==m[e]&&(g=r.configurable[e],i=s.createElement("div"),i.style.display="inline-block",i.style.marginRight="8px",i.style.width="80px",i.style.textAlign="right",i.innerHTML=e.replace("_"," ")+" : ",j=s.createElement("input"),j.className=k.value_input,h.appendChild(i),h.appendChild(j),u%2===0&&h.appendChild(s.createElement("div")),j.setAttribute("type","number"),j.setAttribute("step","any"),void 0!==g&&(void 0!==g.min&&(j.setAttribute("min",g.min),j.title=j.title+" min: "+g.min),void 0!==g.max&&(j.setAttribute("max",g.max),j.title=j.title+" max: "+g.max),void 0!==g.val?j.setAttribute("value",g.val):"min"===e?j.setAttribute("value",r.min):"max"===e?j.setAttribute("value",r.max):"step"===e?j.setAttribute("value",r.step):"scroll_step"===e&&j.setAttribute("value",r.scroll_step)),j.addEventListener("input",A(b,q,e),!1),u+=1);d=p(n),o.insertBefore(h,n),q.configure_panel_open=!0}},E=function(){console.log("WUI_RangeSlider 'create' failed, first argument not an id nor a DOM element.")};this.create=function(b,c){var d,e,f={};if("string"==typeof b)d=document.getElementById(b);else{if("object"!=typeof b)return void E();if("string"!=typeof b.innerHTML)return void E();d=b,b=d.id}if(void 0!==a[b])return void console.log("WUI_RangeSlider id '"+b+"' already created, aborting.");for(e in l)l.hasOwnProperty(e)&&(f[e]=l[e]);if(void 0!==c){for(e in c)c.hasOwnProperty(e)&&void 0!==l[e]&&(f[e]=c[e]);void 0!==c.max&&(f.range=c.max),void 0!==c.step&&(f.step=c.step,void 0===c.scroll_step&&(f.scroll_step=f.step)),void 0!==c.title_on_top?f.title_on_top=c.title_on_top:f.vertical&&(f.title_on_top=!0),void 0!==c.default_value?f.default_value=c.default_value:void 0!==c.min&&void 0!==c.max&&(f.default_value=f.min+f.max/2)}f.min<0&&(f.range=f.max-f.min),a[b]=null,d.classList.add("wui-rangeslider"),f.title_on_top&&d.classList.add("wui-rangeslider-title-ontop");var g=document.createElement("div"),h=document.createElement("div"),i=document.createElement("div"),n=document.createElement("div"),o=document.createElement("div"),p=document.createElement("input"),q={element:d,opts:f,bar:null,filler:null,hook:null,endless:!1,midi:{device:null,controller:null,ctrl_type:"abs"},learn:!1,learn_elem:null,value_input:p,default_value:f.default_value,value:f.value};if(g.innerHTML=f.title,p.setAttribute("value",f.value),p.setAttribute("type","number"),p.setAttribute("step",f.step),p.classList.add(k.value_input),o.classList.add("wui-rangeslider-value"),g.classList.add("wui-rangeslider-title"),h.classList.add(k.bar),i.classList.add(k.filler),n.classList.add(k.hook),f.vertical&&(g.style.textAlign="center"),g.style.minWidth=f.title_min_width+"px",o.style.minWidth=f.value_min_width+"px",p.style.minWidth=f.value_min_width+"px",h.style.width=f.width+"px",h.style.height=f.height+"px",d.appendChild(g),f.bar||(h.style.display="none",p.style.marginTop="6px"),c.hasOwnProperty("min")?p.setAttribute("min",f.min):f.min=void 0,c.hasOwnProperty("max")?p.setAttribute("max",f.max):(f.max=void 0,void 0===f.min&&(q.endless=!0)),h.appendChild(i),i.appendChild(n),d.appendChild(h),q.bar=h,q.filler=i,q.hook=n,d.appendChild(p),f.configurable){var r=0;for(e in f.configurable)f.configurable.hasOwnProperty(e)&&void 0!==m[e]&&(r+=1);if(r>0){var s=document.createElement("div");s.classList.add("wui-rangeslider-configurable-btn"),s.addEventListener("click",D,!1),s.addEventListener("touchstart",D,!1),f.title_on_top&&!f.vertical?(s.style.bottom="0",g.style.marginBottom="4px"):f.title_on_top&&f.vertical?(g.style.marginLeft="16px",g.style.marginRight="16px",s.style.top="0"):(g.style.marginLeft="16px",s.style.top="0"),f.vertical?d.appendChild(s):d.insertBefore(s,g)}}if(f.midi)if(navigator.requestMIDIAccess){var u=document.createElement("div");u.classList.add(k.midi_learn_btn),u.title=j.midi_learn_btn,u.addEventListener("click",C,!1),u.addEventListener("touchstart",C,!1),q.learn_elem=u,f.midi.type&&(q.midi.ctrl_type=f.midi.type),d.appendChild(u)}else console.log("WUI_RangeSlider id '"+b+"' : Web MIDI API is disabled. (not supported by your browser?)");return f.bar?(h.addEventListener("mousedown",w,!1),h.addEventListener("touchstart",w,!1),h.addEventListener("mousewheel",y,!1),h.addEventListener("DOMMouseScroll",y,!1),n.addEventListener("dblclick",x,!1)):(p.addEventListener("mousewheel",y,!1),p.addEventListener("DOMMouseScroll",y,!1)),p.addEventListener("input",z,!1),a[b]=q,t(d,q,f.value),b},this.destroy=function(b){var c,d,e,g=a[b];return void 0===g?void console.log("Element id '"+b+"' is not a WUI_RangeSlider, destroying aborted."):(h===b&&(midi_learn_current=null),B(b),c=g.element,c.parentElement.removeChild(c),d=c.ownerDocument,e=d.getElementById(b+f),e&&d.removeChild(e),void delete a[b])},this.getParameters=function(b){var c,d=a[b],e={};if(void 0===d)return console.log("Element id '"+b+"' is not a WUI_RangeSlider, getParameters aborted."),null;for(c in d)d.hasOwnProperty(c)&&void 0!==n[c]&&(e[c]=d[c]);return e},this.setParameters=function(b,c){var d,e=a[b];if(void 0===e)return void console.log("Element id '"+b+"' is not a WUI_RangeSlider, setParameters aborted.");if(c){for(d in e)e.hasOwnProperty(d)&&void 0!==c[d]&&(e[d]=c[d]);e.midi.device&&e.midi.controller&&i["d"+e.midi.device]["c"+e.midi.controller].widgets.push(b),t(e.element,e,e.value)}},this.setValue=function(b,c,d){var e=a[b];return void 0===e?void console.log("Element id '"+b+"' is not a WUI_RangeSlider, setParameters aborted."):(t(e.element,e,c),void(d&&q(e.opts.on_change,c)))},this.submitMIDIMessage=function(b){var c,d,e,f,g,j,l=h,m=b.data[0],n=b.data[1],p=parseInt(b.data[2],10),r="d"+m,s="c"+n,u=0;if(h)return c=a[l],i[r]||(i[r]={}),i[r][s]||(i[r][s]={prev_value:p,widgets:[],increments:1}),i[r][s].widgets.push(l),g=o(l),g&&(e=g.getElementsByClassName(k.midi_learn_btn),e.length>0&&(e[0].style="",e[0].title=r+" "+s)),c.midi.device=m,c.midi.controller=n,c.learn=!1,c.learn_elem.style="",c.learn_elem.title=r+" "+s,void(h=null);if(i[r]&&i[r][s])for(d=i[r][s],u=0;up){if(d.increments=-v,j=c.value-v,jc.opts.max&&!c.endless)continue;d.prev_value=p}else if(j=c.value+d.increments,!c.endless){if(j>c.opts.max)continue;if(j0&&(g=f[0],h=g.element,h.parentElement.removeChild(h)));delete a[b]}},WUI_CircularMenu=new function(){"use strict";var a=[],b=0,c={item:"wui-circularmenu-item",show:"wui-circularmenu-show"},d={x:null,y:null,rx:64,ry:48,angle:0,item_width:32,item_height:32,window:null,element:null},e=function(b){var c,d;for(d=0;d100&&(d.style.zIndex=100)));for(e=f.dialog.parentElement;null!==e;)e.classList.contains(l.dialog)&&(e.style.zIndex=101),e=e.parentElement;a.style.zIndex=101}},q=function(a){var b=document.createElement("div");return b.className="wui-dialog-modal",b.addEventListener("click",function(b){b.preventDefault(),o(a,!0,!0,!0)}),b.style.zIndex=16777270,b},r=function(a){var c=b[a.id],d=c.opts,e=a.parentElement.offsetWidth,f=a.parentElement.offsetHeight,g=a.offsetWidth,h=a.offsetHeight;a.style.left="center"===d.halign?Math.round((e-g)/2+d.left)+"px":"right"===d.halign?e-g+d.left+"px":d.left+"px",a.style.top="center"===d.valign?Math.round((f-h)/2+d.top)+"px":"bottom"===d.valign?f-h+d.top+"px":d.top+"px"},s=function(a,c){var d=b[c.id],e=d.resize_handler;d.dialog!==c&&s(d.header_minimaxi_btn,d.dialog),a.classList.toggle(l.minimize),a.classList.toggle(l.maximize),c.classList.toggle(l.minimized),c.classList.contains(l.minimized)?(c.style.borderStyle="solid",c.style.borderColor="#808080",c.style.borderWidth="1px"):(c.style.borderStyle="",c.style.borderColor="",c.style.borderWidth=""),e&&e.classList.toggle(l.open),d.status_bar&&d.status_bar.classList.toggle(l.open)},t=function(a){null===j&&(j=setTimeout(function(){j=null;var c,d,e,f,g,h,i,k=document;if(a)for(k=a.document,c=k.getElementsByClassName(l.content),i=0;i0?a.innerHeight-32+"px":a.innerHeight+"px",h=e.getBoundingClientRect(),d.opts.on_resize&&d.opts.on_resize(h.width,h.height);else for(c=k.getElementsByClassName(l.content),i=0;i0?f.offsetHeight-64+"px":f.offsetHeight-32+"px",r(f),h=e.getBoundingClientRect(),d=b[f.id],d.opts.on_resize&&d.opts.on_resize(h.width,h.height)},125))},u=function(a,b){var c,d;do{if(1==a.nodeType&&a.eventListenerList)for(c in a.eventListenerList)if("length"!==c&&a.eventListenerList.hasOwnProperty(c))for(d=0;d"+(""+n+"")+h+""+('')+""),p.document.close(),p.document.body.appendChild(a.children[1].cloneNode(!0));var r=a.getElementsByClassName(l.status_bar);if(r.length>0){var s=r[0].cloneNode(!0);s.classList.add(l.open),p.document.body.appendChild(s)}p.addEventListener("keyup",function(b){27===b.keyCode&&o(a,!0,!0,!0)},!1),p.addEventListener("resize",function(){t(p)},!1),p.addEventListener("beforeunload",function(){o(a,!0,!0,!0)},!1),k.push(p)},w=function(a){a.preventDefault();var b=a.target,c=null;b.classList.contains(l.btn_close)?(c=b.parentElement.parentElement,o(c,!1,!0,!0)):b.classList.contains(l.maximize)||b.classList.contains(l.minimize)?(c=b.parentElement.parentElement,s(b,c)):b.classList.contains(l.detach)&&(c=b.parentElement.parentElement,v(c))},x=function(c){if(27===c.keyCode){var d,e;for(d in b)if(b.hasOwnProperty(d)&&(e=b[d],e.opts.closable&&"101"===e.dialog.style.zIndex&&e.dialog.classList.contains(l.open)))return void a.close(d,!0)}},y=function(a){if(c){a.preventDefault();var d,h,i,j=b[c.id],k=a.clientX,l=a.clientY,m=a.changedTouches,n=null;if(m)for(d=0;d0&&(d[0].innerHTML=c)))))},this.open=function(a,c){var d,e,f,g=b[a];if(void 0===g)return void("undefined"!=typeof console&&console.log('Cannot open WUI dialog "'+a+'".'));if(g.detachable_ref&&!g.detachable_ref.closed)return void g.detachable_ref.focus();if(f=g.dialog,g.opts.modal)for(d=q(f),g.dialog.style.zIndex=16777271,g.modal_element=d,document.body.appendChild(d),e=0;el?(m=l,b=c.opts.max):m<0?(m=0,b=c.opts.min):b=Math.round((c.opts.min+m/l*c.opts.range)/c.opts.step)*c.opts.step,c.value===b)return;c.value=b,g=r(b,c.opts.decimals),j.value=g,c.value_input.value=g,c.opts.vertical?(h.style.height=m+"px",c.filler.style.height=m+"px"):(h.style.width=m+"px",c.filler.style.width=m+"px",d.style.left=m+"px",c.hook.style.left=m+"px"),q(c.opts.on_change,b)}},v=function(a){if(d){a.preventDefault();var b,f=a.changedTouches,g=null,h=!1,i=d.ownerDocument,j=i.defaultView||i.parentWindow;if(f){for(b=0;b=0?f+=e.opts.scroll_step:f-=e.opts.scroll_step,e.endless||(e.opts.max&&f>e.opts.max?f=e.opts.max:f0&&(f[0].style="")),e.learn_elem&&(e.learn_elem.style=""));m.learn=!0,i.style=g,h=l.id},D=function(b){b.preventDefault(),b.stopPropagation();var c,d,e,g,h,i,j,l,n=b.target,o=n.parentElement,q=a[o.id],r=q.opts,s=n.ownerDocument,t=q.element.id+f,u=1;if(document.getElementById(t)||(q.configure_panel_open=!1),q.configure_panel_open!==!0){h=s.createElement("div"),h.className="wui-rangeslider-configure-container",l=s.createElement("div"),l.className="wui-rangeslider-configure-close",c=function(a){q.configure_panel_open=!1;var b=document.getElementById(t),c=a.target.ownerDocument.getElementById(t);b&&b.parentElement&&b.parentElement.removeChild(b),c&&c.parentElement&&c.parentElement.removeChild(c)},l.addEventListener("click",c,!1),l.addEventListener("touchstart",c,!1),h.id=t,h.appendChild(l);for(e in r.configurable)r.configurable.hasOwnProperty(e)&&void 0!==m[e]&&(g=r.configurable[e],i=s.createElement("div"),i.style.display="inline-block",i.style.marginRight="8px",i.style.width="80px",i.style.textAlign="right",i.innerHTML=e.replace("_"," ")+" : ",j=s.createElement("input"),j.className=k.value_input,h.appendChild(i),h.appendChild(j),u%2===0&&h.appendChild(s.createElement("div")),j.setAttribute("type","number"),j.setAttribute("step","any"),void 0!==g&&(void 0!==g.min&&(j.setAttribute("min",g.min),j.title=j.title+" min: "+g.min),void 0!==g.max&&(j.setAttribute("max",g.max),j.title=j.title+" max: "+g.max),void 0!==g.val?j.setAttribute("value",g.val):"min"===e?j.setAttribute("value",r.min):"max"===e?j.setAttribute("value",r.max):"step"===e?j.setAttribute("value",r.step):"scroll_step"===e&&j.setAttribute("value",r.scroll_step)),j.addEventListener("input",A(b,q,e),!1),u+=1);d=p(n),o.insertBefore(h,n),q.configure_panel_open=!0}},E=function(){console.log("WUI_RangeSlider 'create' failed, first argument not an id nor a DOM element.")};this.create=function(b,c){var d,e,f={};if("string"==typeof b)d=document.getElementById(b);else{if("object"!=typeof b)return void E();if("string"!=typeof b.innerHTML)return void E();d=b,b=d.id}if(void 0!==a[b])return void console.log("WUI_RangeSlider id '"+b+"' already created, aborting.");for(e in l)l.hasOwnProperty(e)&&(f[e]=l[e]);if(void 0!==c){for(e in c)c.hasOwnProperty(e)&&void 0!==l[e]&&(f[e]=c[e]);void 0!==c.max&&(f.range=c.max),void 0!==c.step&&(f.step=c.step,void 0===c.scroll_step&&(f.scroll_step=f.step)),void 0!==c.title_on_top?f.title_on_top=c.title_on_top:f.vertical&&(f.title_on_top=!0),void 0!==c.default_value?f.default_value=c.default_value:void 0!==c.min&&void 0!==c.max&&(f.default_value=f.min+f.max/2)}f.min<0&&(f.range=f.max-f.min),a[b]=null,d.classList.add("wui-rangeslider"),f.title_on_top&&d.classList.add("wui-rangeslider-title-ontop");var g=document.createElement("div"),h=document.createElement("div"),i=document.createElement("div"),n=document.createElement("div"),o=document.createElement("div"),p=document.createElement("input"),q={element:d,opts:f,bar:null,filler:null,hook:null,endless:!1,midi:{device:null,controller:null,ctrl_type:"abs"},learn:!1,learn_elem:null,value_input:p,default_value:f.default_value,value:f.value};if(g.innerHTML=f.title,p.setAttribute("value",f.value),p.setAttribute("type","number"),p.setAttribute("step",f.step),p.classList.add(k.value_input),o.classList.add("wui-rangeslider-value"),g.classList.add("wui-rangeslider-title"),h.classList.add(k.bar),i.classList.add(k.filler),n.classList.add(k.hook),f.vertical&&(g.style.textAlign="center"),g.style.minWidth=f.title_min_width+"px",o.style.minWidth=f.value_min_width+"px",p.style.minWidth=f.value_min_width+"px",h.style.width=f.width+"px",h.style.height=f.height+"px",d.appendChild(g),f.bar||(h.style.display="none",p.style.marginTop="6px"),c.hasOwnProperty("min")?p.setAttribute("min",f.min):f.min=void 0,c.hasOwnProperty("max")?p.setAttribute("max",f.max):(f.max=void 0,void 0===f.min&&(q.endless=!0)),h.appendChild(i),i.appendChild(n),d.appendChild(h),q.bar=h,q.filler=i,q.hook=n,d.appendChild(p),f.configurable){var r=0;for(e in f.configurable)f.configurable.hasOwnProperty(e)&&void 0!==m[e]&&(r+=1);if(r>0){var s=document.createElement("div");s.classList.add("wui-rangeslider-configurable-btn"),s.addEventListener("click",D,!1),s.addEventListener("touchstart",D,!1),f.title_on_top&&!f.vertical?(s.style.bottom="0",g.style.marginBottom="4px"):f.title_on_top&&f.vertical?(g.style.marginLeft="16px",g.style.marginRight="16px",s.style.top="0"):(g.style.marginLeft="16px",s.style.top="0"),f.vertical?d.appendChild(s):d.insertBefore(s,g)}}if(f.midi)if(navigator.requestMIDIAccess){var u=document.createElement("div");u.classList.add(k.midi_learn_btn),u.title=j.midi_learn_btn,u.addEventListener("click",C,!1),u.addEventListener("touchstart",C,!1),q.learn_elem=u,f.midi.type&&(q.midi.ctrl_type=f.midi.type),d.appendChild(u)}else console.log("WUI_RangeSlider id '"+b+"' : Web MIDI API is disabled. (not supported by your browser?)");return f.bar?(h.addEventListener("mousedown",w,!1),h.addEventListener("touchstart",w,!1),h.addEventListener("mousewheel",y,!1),h.addEventListener("DOMMouseScroll",y,!1),n.addEventListener("dblclick",x,!1)):(p.addEventListener("mousewheel",y,!1),p.addEventListener("DOMMouseScroll",y,!1)),p.addEventListener("input",z,!1),a[b]=q,t(d,q,f.value),b},this.destroy=function(b){var c,d,e,g=a[b];return void 0===g?void console.log("Element id '"+b+"' is not a WUI_RangeSlider, destroying aborted."):(h===b&&(midi_learn_current=null),B(b),c=g.element,c.parentElement.removeChild(c),d=c.ownerDocument,e=d.getElementById(b+f),e&&d.removeChild(e),void delete a[b])},this.getParameters=function(b){var c,d=a[b],e={};if(void 0===d)return console.log("Element id '"+b+"' is not a WUI_RangeSlider, getParameters aborted."),null;for(c in d)d.hasOwnProperty(c)&&void 0!==n[c]&&(e[c]=d[c]);return e},this.setParameters=function(b,c){var d,e=a[b];if(void 0===e)return void console.log("Element id '"+b+"' is not a WUI_RangeSlider, setParameters aborted.");if(c){for(d in e)e.hasOwnProperty(d)&&void 0!==c[d]&&(e[d]=c[d]);e.midi.device&&e.midi.controller&&i["d"+e.midi.device]["c"+e.midi.controller].widgets.push(b),t(e.element,e,e.value)}},this.setValue=function(b,c,d){var e=a[b];return void 0===e?void console.log("Element id '"+b+"' is not a WUI_RangeSlider, setParameters aborted."):(t(e.element,e,c),void(d&&q(e.opts.on_change,c)))},this.submitMIDIMessage=function(b){var c,d,e,f,g,j,l=h,m=b.data[0],n=b.data[1],p=parseInt(b.data[2],10),r="d"+m,s="c"+n,u=0;if(h)return c=a[l],i[r]||(i[r]={}),i[r][s]||(i[r][s]={prev_value:p,widgets:[],increments:1}),i[r][s].widgets.push(l),g=o(l),g&&(e=g.getElementsByClassName(k.midi_learn_btn),e.length>0&&(e[0].style="",e[0].title=r+" "+s)),c.midi.device=m,c.midi.controller=n,c.learn=!1,c.learn_elem.style="",c.learn_elem.title=r+" "+s,void(h=null);if(i[r]&&i[r][s])for(d=i[r][s],u=0;up){if(d.increments=-v,j=c.value-v,jc.opts.max&&!c.endless)continue;d.prev_value=p}else if(j=c.value+d.increments,!c.endless){if(j>c.opts.max)continue;if(j0&&(g=f[0],h=g.element,h.parentElement.removeChild(h)));delete a[b]}},WUI_CircularMenu=new function(){"use strict";var a=[],b=0,c={item:"wui-circularmenu-item",show:"wui-circularmenu-show"},d={x:null,y:null,rx:64,ry:48,angle:0,item_width:32,item_height:32,window:null,element:null},e=function(b){var c,d;for(d=0;d


    Table of Contents

    - +

    1. Introduction

    The Fragment synthesizer (also called fsynth) is a collaborative web-based musical instrument which allow direct manipulation of the sound spectrum by the use of on-the-fly GPU (Graphics Processing Unit) programming.

    Fragment is stereophonic, polyphonic, multitimbral and support live coding of audio and visuals at the same time.

    Fragment is first and foremost a powerfull additive synthesizer which let you have complete control over the sound spectrum in real-time with direct visual feedback.

    Many videos of Fragment live sessions were recorded and are available on YouTube as a playlist.


    1.1. History

    @@ -102,12 +102,10 @@
  • Polyphonic
    • Automatically detected from the GPU capabilities
    • 16 notes minimum
    • 704 notes with a GeForce GTX 970 GPU
  • Multitimbral -
  • Aliasing free +
  • Spectral recording with mixing and export as PNG
  • Adjustable audio output channel per slices
    • Multiple audio channels are only supported with
    -
  • Shader inputs, webcam, textures and more to come -
  • Real-time audio output analysis -
    • WebAudio only
    +
  • Shader inputs, webcam, textures, audio files
  • MIDI Enabled
    • Only with WebMIDI API enabled browsers (Google Chrome)
    • Hot plugging of MIDI devices is supported
  • Collaborative app. @@ -127,7 +125,7 @@

    1.3.2. CPU

    Fragment may be quite hungry in term of computing resources, a dual core with high clock speed is recommended, a CPU with more cores can be useful if you just want to use the browser for audio output.

    Several methods are provided to synthesize sounds, each with performances pros and cons:
      -
    • (recommended):
      • Very fast
      • Multiple output support with soundcard choice
      • Many settings
      • Can run on a dedicated computer such as a Raspberry PI
      • Dedicated program which receive Fragment data over the network
      +
    • (recommended):
      • Very fast
      • Multiple output support with soundcard choice
      • Many settings
      • Can run on a dedicated computer such as a Raspberry PI
      • Dedicated program which receive Fragment data over the network
      • Enhanced noise modeling by adding band-limited noise
    • WebAudio oscillators:
      • Fastest under Chrome
      • May not work with Firefox
      • Require a fast CPU
      • Integrated global "release" envelope
    • Wavetable (not recommended):
      • Most compatible browser method
      • Will produce crackles


    1.3.3. GPU

    @@ -138,9 +136,9 @@
  • you are doing complex things/use many inputs in your shader
  • you want greater polyphonic/harmonics/partials capabilities

    2. Concepts

    -Fragment is an additive synthesizer, it let you have full control over the timbral qualities of your sounds by the mean of GPU programming.

    The biggest difference between Fragment and other synthesizers is that you work in the frequency domain instead of time domain, in that sense it is also a spectral synthesizer.

    Unlike other additive synthesizer software, there is no need for knobs, sliders or any other controllers to sculpt your sounds, all of that is done by generating visuals which will determine your sounds harmonic content and dynamic characteristics.

    There is many features in Fragment which allow any creative minds to produce complex sounds in different ways and even with external tools, i suggest all the readers to look at great softwares like the IanniX sequencer and to use it with Fragment using the MIDI capabilities.

    While Fragment may seem overwhelming at first, the only thing that is required to produce sounds with it is to know how to generate the visuals.

    The goal of this section is to clarify the inner working of Fragment.


    +Fragment is an additive synthesizer, it let you have full control over the timbral qualities of your sounds by the mean of GPU programming.

    Unlike other additive synthesizer software, there is no need for knobs, sliders or any other controllers to sculpt your sounds, all of that is done by generating visuals which will determine your sounds harmonic content and dynamic characteristics.

    There is many features in Fragment which allow any creative minds to produce complex sounds in different ways and even with external tools, i suggest all the readers to look at great softwares like the IanniX sequencer and to use it with Fragment using the MIDI capabilities.

    While Fragment may seem overwhelming at first, the only thing that is required to produce sounds with it is to know how to generate the visuals.

    The goal of this section is to clarify the inner working of Fragment.


    2.1. Additive synthesis

    -Fragment is first and foremost a powerful additive synthesizer which make an extended use of additive synthesis.

    Additive synthesis is a sound synthesis technique that creates timbre by adding sine waves together.

    Adding sine waves produce a timbre, the timbre quality is mainly defined by its harmonic content and the dynamic characteristics of the harmonic content.

    The concept of additive synthesis is centuries old, it has first been used by pipe organs.

    Fragment can theoretically produce any timbres with precise accuracy.

    The only limit to the amount of sine waves that can be added by Fragment is the limit of the available processing power.

    For example, on a Raspberry PI 3 (1.2GHz 64-bit quad-core ARMv8 CPU) ~700 oscillators can be played simultaneously using two cores, matching the capability of the ANS synthesizer.

    Fragment can also do other types of synthesis like substractive synthesis (additive synthesis in reverse).


    +Fragment is first and foremost a powerful additive synthesizer which make an extended use of additive synthesis.

    Additive synthesis is a sound synthesis technique that creates timbre by adding sine waves together.

    Adding sine waves produce a timbre, the timbre quality is mainly defined by its harmonic content and the dynamic characteristics of the harmonic content.

    The concept of additive synthesis is centuries old, it has first been used by pipe organs.

    Fragment can theoretically produce any timbres with precise accuracy.

    The only limit to the amount of sine waves that can be added by Fragment is the limit of the available processing power.

    For example, on a Raspberry PI 3 (1.2GHz 64-bit quad-core ARMv8 CPU) ~700 oscillators can be played simultaneously using two cores, matching the capability of the ANS synthesizer.

    Actually, there is a also a hard limit which is that the frequency capture of slices cannot go beyond the refresh rate of your monitor (and it also depend on the browser implementation), this could however be bypassed easily by switching to a different monitor.

    Fragment can also do other types of synthesis like substractive synthesis.


    2.2. The graphical score

    Fragment graphical score represent the sound spectrum which is generated by the GPU from a fragment program.

    The fragment program (also known as a fragment shader) is executed by the GPU and compute the color and other attributes of each "fragment" - a technical term which usually mean a single pixel.

    The graphical score represent a kind of sonic canvas where the X axis represent time and the Y axis represent frequencies, you "paint" the graphical score by writing a fragment program which will be executed for each pixels of the graphical score.

    What you hear in Fragment is determined by the position of "slices" which are added on the graphical score, slices are vertical bits of the graphical score which are merged together and produce an audible result.

    The content of slices is captured at the rate of display refresh rate which conventionally should be 60fps most of the time.

    The frequency mapping of the graphical score is fixed by a logarithmic formula, altough the formula cannot be changed right now, some parameters are available in the settings dialog to fine tune the frequency map.

    The frequency mapping is defined by the formula: @@ -153,7 +151,7 @@
  • o the octave count

    3. Sessions

    -Fragment sessions are isolated spaces which are open to all peoples who has access to the session name, they can be joined by going to the Fragment homepage or by typing the session name directly into the address bar as demonstrated below.

    You can join any sessions directly from your browser address bar by replacing "yoursessionname" for the URL shown below by the session name you want to join or create:

    https://www.fsynth.com/app/yoursessionname

    +Fragment sessions are isolated spaces which are open to all peoples who has access to the session name, they can be joined by going to the Fragment homepage or by typing the session name directly into the address bar as demonstrated below.

    You can join any sessions directly from your browser address bar by replacing "yoursessionname" for the URL shown below by the session name you want to join or create, session names are limited to a maximum of 100 characters:

    https://www.fsynth.com/app/yoursessionname

    Fragment store sessions content and settings on a server which mean that any of the synchronizable actions in the session such as the code editor content, canvas settings, slices and are automatically saved if Fragment is connected.

    Fragment synchronize the code editor content, slices, canvas settings and across all the users in the session in real-time which mean that you can jam with your friends if you share the session URL.

    Note that MIDI note messages are not synchronized between users due to technical constraints but you can still add and assign MIDI devices to control them, their values are synchronized between users.

    Some settings are saved locally on your browser, some of them are global (like the username and settings related to the editor) and some of them are saved per sessions such as the MIDI settings and gain.

    Fragment is respectful of the user and does not store any informations related to the user outside the boundary defined by the application focus.


    3.1. Homepage and sessions history

    The Fragment homepage can be used to retrieve the various sessions that you joined, a session list will be shown once you joined at least one session. @@ -233,7 +231,8 @@
    • close the dialog
    • minimize/maximize -
    • detach the dialog in a new window
    +
  • detach the dialog in a new window +
  • help (direct link to the documentation section)
    5.2. infobar

    (The information bar) The information bar at the top convey minor and major informations such as (in order from left to right): @@ -252,7 +251,7 @@
  • the actual number of oscillators playing
  • the playback time
  • a gain controller (master volume)

    5.3. The graphical score

    -You can slice the graphical score by right-clicking on it and clicking on the + icon, this will add a vertical bar which will capture that part of the canvas. +You can slice the graphical score by right-clicking on it and by clicking on the + icon, this will add a vertical bar which will capture that part of the canvas.

    You are free to add any number of slices, adding many slices may have an impact on performances.
    @@ -293,29 +292,42 @@
  • helpers
  • fragment inputs

    5.5. The fragment inputs

    -Fragment inputs are complex inputs which can be used in the fragment program as a 2D texture.

    The fragment inputs panel is a list of the added complex inputs, each of them appear as a thumbnail near the add complex inputs button, nothing will be shown if no complex inputs were added.

    All complex inputs can be used as 2D textures (texture2d) in the fragment program, they are defined as iInputN where N is the id of the input starting from 0.

    You can find the input id by hovering over the thumbnail or in the title of the complex input settings dialog.

    You can add one by clicking on the "add complex inputs" button, here is a list of the available complex inputs: +


  • 5.5. The fragment inputs

    +Fragment inputs are complex inputs which can be used in the fragment program as a 2D texture.

    The fragment inputs panel is a complete list of all the added inputs, each of them appear as a thumbnail near the add complex inputs button, nothing will be shown if no complex inputs were added.

    All complex inputs can be used as 2D textures (texture2d) in the fragment program, they are defined as iInputN where N is the id of the input starting from 0.

    Complex inputs can be reordered in real-time by drag & drop.

    You can find the input id by hovering over the thumbnail or in the title of the complex input settings dialog.

    To open the complex input import dialog, click on the "add complex inputs" button, a new dialog will appear with three sections:
      -
    • image file -
    • webcam +
    • Audio import settings: This determine how audio files will be analyzed when imported
        -
      • allow the real-time webcam video to be used in the fragment program
      -
    • audio file
    +
  • Window type: The windowing function +
  • Window length: Analysis window length (tradeoff between time and frequency resolution) +
  • Overlap +
  • BPM +
  • PPB: Pixel Per Beat +
  • Height: A value of 0 will automatically create an input with the height equal to the score height +
  • Min. freq.: A value of 0 will automatically assign the score min. frequency +
  • Max. freq.: A value of 0 will automatically assign a max. frequency related to the score settings +
  • Import toolbar +
      +
    • Image: This will open a file selection window to import images +
    • Audio: This will open a file selection window to import audio files +
    • Webcam
    +
  • Dropzone: You can use this to import many files at the same time -By right clicking on a the complex input thumbnail, the following actions appear: +Once added, by right clicking on a complex input thumbnail and the following actions appear:
      +
    • complex input settings dialog
    • delete -
    • complex input settings dialog
    +
  • export as PNG (open a new window)


    The complex input settings dialog have several options: @@ -336,9 +348,7 @@
  • mirrored repeat: same as repeat but mirrored
  • VFlip: flip the texture vertically Note: The "repeat" and "mirrored" Wrap S/T option will be unavailable if your browser does not support the WebGL 2 API, it is only available by adding images with power-of-2 dimensions (128x64, 256x256 etc.) or by using a browser with WebGL 2 support.


    -5.6. Analysis dialog

    -The analysis dialog is a real-time spectogram view of the audio output.

    Note: When FAS is enabled, no spectrogram will be shown. -



    5.7. The code editor

    +5.6. The code editor

    The fragment editor is one of the most important tool of Fragment since it allow the user to generate the visuals which are fed to the additive synthesis engine.

    GLSL code is what you type in the code editor to generate the visuals.

    The fragment program is compiled as you type, if the compilation fail, the code editor will notice you with a floating message and with a red message at the lines that cause the compilation to fail, all of that without interrupting sounds/visuals output, this enable powerful live coding.


    The changes that you make in the code editor are automatically saved per named sessions, changes are also synchronized in real-time between all the users of the session you are currently in, this is the collaborative nature of Fragment.

    The code editor is powered by the CodeMirror library, it feature many neat things such as: @@ -350,14 +360,15 @@
  • integrated compilation errors/messages (does not interrupt sounds/visuals)
  • line numbers
  • many bundled editor themes -Some of the code editor features can be enabled/disabled in the .

    If you experience audio stuttering as you type, it is recommended to detach the code editor off the main window, due to the complexity of the web and the complexity of the Fragment application, many things are not as optimal as they should be, you may hear audio crackles due to browser reflow.


    -5.8. MIDI learn functionality

    +Some of the code editor features can be enabled/disabled in the .

    If you experience audio stuttering as you type, it is recommended to detach the code editor off the main window, due to the complexity of the web and the complexity of the Fragment application, many things are not as optimal as they should be, you may hear audio crackles due to browser reflow. +
    +5.7. MIDI learn functionality

    MIDI learn is a neat feature of Fragment which enable any MIDI learn enabled widget to be controlled by a MIDI controller.

    The red square indicate MIDI learn functionality support for this widget

    The red square appearing on an UI interface widget indicate that the MIDI learn functionality is supported for the widget, it only appear on WebMIDI enabled browsers such as Chrome and Opera and on widgets which are allowed to be controlled by MIDI.

    By left clicking on the red square, it turn green and any inputs from the will be captured by the widget.

    Once the MIDI input is captured, the green square become red again (which is a locked state) and the MIDI control will be assigned to the widget.

    It is possible to reset the MIDI control assigned to the widget by clicking on the red square and clicking again on the green square aka double clicking.


    -5.9. The session/global settings dialog

    +5.8. The session/global settings dialog


    The session & global settings dialog content (in order from top to bottom): @@ -421,20 +432,33 @@
  • FAS address

    -5.10. MIDI settings dialog

    +5.9. MIDI settings dialog


    The MIDI settings dialog show all the MIDI input devices found at this time, by default there is no MIDI input devices enabled, you can enable MIDI devices by checking the checkbox below the MIDI device name.

    Once enabled, Fragment will receive any MIDI messages from that device.

    Fragment support hot plugging of MIDI devices, any MIDI devices which are plugged or unplugged while Fragment is running will be added or removed in the MIDI settings dialog.

    Fragment keep track of your MIDI settings choice for particual devices per sessions, this mean that if a MIDI device is enabled, when you quit Fragment or that the MIDI device is unplugged and you launch again Fragment and that the MIDI device is plugged in, Fragment will enable it automatically.


    -5.11. Session chat dialog

    + +5.10. Recording dialog

    +The recording dialog allow to continuously record the slices output from all channels into one score that you can export to PNG by clicking on the save icon.

    This tool can become handy if you want to export your work and import it into an external tool or within Fragment again by clicking on the [+] icon.

    Can also serve for spectral analysis.

    The recording dialog support mixing functions, for example by clicking on the + icon, the recording will be additive which mean that slices content will be drawn on the previous content without erasing it, a list of all the toolbar actions can be found below.

    The recording canvas width is linked to the score width.

    Recording toolbar buttons (in order from left to right): +
      +
    • Reset & clear +
    • Additive mode +
    • Substractive mode +
    • Multiply mode +
    • Add the recorded image as a new GLSL input +
    • Export as PNG (open a new dialog)



    + +5.11. Outline dialog

    +The outline dialog display a list of GLSL functions, declarations and "defines" defined in your shader code, you can click on any elements to jump at it in the code editor, this is very useful with long shader code.


    +5.12. Session chat dialog

    The session chat dialog allow discussions with all users in the current session.

    It is a simple but effective chatbox that you can resize, move around or detach. it has three parts:
    • messages list
    • users list
    • input
    -The green user in the user list indicate yourself.

    You can send a message to all users in the session by clicking on the input then typing your message and pressing ENTER.


    +The user list indicate yourself with a green color.

    You can send a message to all users in the session by clicking on the input then typing your message and pressing ENTER.

    Each messages received has a timestamp assigned that you can read by hovering your mouse cursor on the message.


    -5.12. Uniforms dialog

    +5.13. Uniforms dialog

    The uniforms dialog is a very powerful functionality.

    It enable you to define fragment program uniforms (aka variables) which are synced with all users in the session and are controllable by any MIDI input devices enabled.

    All the uniforms added will be shown in the uniforms dialog and will be defined automatically in the fragment program, you can then just use the symbol name in the code editor.

    You can add the following scalar uniforms types:

    Thank you!

    -

    last update: 2017-4-19

    +

    last update: 2017-5-17

    \ No newline at end of file diff --git a/documentation/fragment_documentation.pdf b/documentation/fragment_documentation.pdf index e6bc3de73a08d8176ab0adf7b65ca060c338c911..684bf7c1614a97d1d1ecaddbf81fdac85ad4a41f 100644 GIT binary patch delta 111476 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
    $$_|wWwd7^=Yp%cobg7IJ#_cvMQ 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 Gk^c{B@d^h3 delta 117649 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 CQ<@q8 diff --git a/documentation/images/toolbar.png b/documentation/images/toolbar.png index e2932f121651a3c832dd5895b5d1ddab06425198..a4c38c8d061439f233ec7efffce87a639b920290 100644 GIT binary patch literal 9413 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 R4NE0ZRn%0#$vuAce*i>5) diff --git a/fsdb/fsdb.js b/fsdb/fsdb.js index a2be07e..16f766e 100644 --- a/fsdb/fsdb.js +++ b/fsdb/fsdb.js @@ -39,7 +39,7 @@ if (cluster.isMaster) { clusterControl.restart(); }); - + process.on('SIGUSR2', function() { logger.info("Workers status:", clusterControl.status().workers); }); @@ -51,10 +51,10 @@ var clientVerification = function (info) { if (fsynthcommon.allow_fsdb_origin.indexOf(info.origin) !== -1) { logger.info("%s %s %s %s %s", process.pid, info.req.socket.remoteAddress, 'Client', 'user-agent:', info.req.headers['user-agent']); logger.info("%s %s %s %s %s", process.pid, info.req.socket.remoteAddress, 'Client', 'accept-language:', info.req.headers['accept-language']); - + return true; } - + logger.warn("%s %s %s %s", process.pid, info.req.socket.remoteAddress, 'Client refused:\n', info.req.rawHeaders); return false; @@ -64,6 +64,38 @@ const db = require('sharedb-mongo')('mongodb://localhost:27017/fs'); var share = new ShareDB({ db: db, pubsub: shareDbRedisPubSub('redis://localhost:6379/0') }); +share.use('receive', function (request, next) { + var collection_length = 0, + collection_name_regexp = /[$\0]+/g, + collection_name = ""; + + // Reject collection names which do not begin with an underscore and have not allowed character to avoid issues with reserved mongodb names + // this is an ugly solution as it force the collection to be a "_trashbin" collection if it doesn't meet the requirement... but who care with proper client-side verifications? anyway... until a better solution is found + if (request['collection'] !== undefined) { + if (request.collection.indexOf("_") !== 0 || collection_name_regexp.test(request.collection)) { + collection_name = request.collection + request.collection = "_trashbin"; + next("Collection name " + collection_name + " invalid."); + } + } + + if (request.data['c'] !== undefined) { + if (request.data.c.indexOf("_") !== 0 || collection_name_regexp.test(request.data.c)) { + collection_name = request.data.c; + request.data.c = "_trashbin"; + next("Collection name " + collection_name + " invalid."); + } + + collection_length = request.data.c.length - 1; + } + + if (collection_length <= 100) { + next(); + } else { + next("Collection name has invalid length."); + } + }); + var sharedb_logger = new ShareDB_logger(share); var app = express(); @@ -87,7 +119,7 @@ wss.on('connection', function(ws, req) { logger.info("%s %s %s", process.pid, real_ip, "connected"); logger.info('%s Total clients: %s', process.pid, wss.clients.length); - + var stream = new WebSocketJSONStream(ws); share.listen(stream); }); diff --git a/fss/fss.js b/fss/fss.js index 5644fe0..752ba1e 100644 --- a/fss/fss.js +++ b/fss/fss.js @@ -211,8 +211,6 @@ redisClient.on('connect', function() { logger.info('%s Total clients: %s', process.pid, wss.clients.length); ws.on('message', function incoming (message) { - //logger.info(process.pid, '-', message); - var msg, session; try { diff --git a/prod b/prod index 3676d61..7d393b8 100755 --- a/prod +++ b/prod @@ -5,9 +5,6 @@ rm -rf * cd .. tar -cf - -T prod_files | (cd prod_dir && tar xf -) -uglifyjs prod_dir/client/js/worker/image_processor.js --screw-ie8 --compress --reserve-domprops --mangle -o prod_dir/client/js/worker/image_processor.js -uglifyjs prod_dir/client/js/worker/notes_buffer.js --screw-ie8 --compress --reserve-domprops --mangle -o prod_dir/client/js/worker/notes_buffer.js -uglifyjs prod_dir/client/js/worker/fas.js --screw-ie8 --compress --reserve-domprops --mangle -o prod_dir/client/js/worker/fas.js remove-html-comments prod_dir/client/index.html prod_dir/client/index.html remove-html-comments prod_dir/www/index.html prod_dir/www/index.html remove-html-comments prod_dir/placeholder/index.html prod_dir/placeholder/index.html diff --git a/prod_files b/prod_files index 4c5564a..e8cf79e 100644 --- a/prod_files +++ b/prod_files @@ -12,7 +12,7 @@ client/css/codemirror/theme/ client/data/ client/dl/ client/fonts/ -client/js/worker/ +client/dist/worker/ client/dist/fs.min.css client/dist/fs.min.js client/dist/cm.min.css diff --git a/www/css/app_fp.css b/www/css/app_fp.css index 8ce0900..98d664e 100644 --- a/www/css/app_fp.css +++ b/www/css/app_fp.css @@ -81,6 +81,13 @@ hr { font-size: 10pt; } +.fp-session-validation { + color: red; + text-align: center; + margin-bottom: 4px; + font-weight: bold; +} + .fp-title { padding-bottom: 34px; margin-bottom: 34px; diff --git a/www/dist/fp.css b/www/dist/fp.css index b7db9eb..db8f510 100644 --- a/www/dist/fp.css +++ b/www/dist/fp.css @@ -934,6 +934,13 @@ hr { font-size: 10pt; } +.fp-session-validation { + color: red; + text-align: center; + margin-bottom: 4px; + font-weight: bold; +} + .fp-title { padding-bottom: 34px; margin-bottom: 34px; diff --git a/www/dist/fp.js b/www/dist/fp.js index 218c0e6..51dbdab 100644 --- a/www/dist/fp.js +++ b/www/dist/fp.js @@ -123,6 +123,17 @@ var _fp_main = function (join_cb) { localStorage.removeItem(_session_list_ls_key); }; + var _sessionFormNotification = function (msg) { + var validation_element = document.getElementById("fp_session_form_validation"); + validation_element.style.display = ""; + validation_element.innerHTML = msg; + }; + + var _hideSessionFormNotification = function () { + var validation_element = document.getElementById("fp_session_form_validation"); + validation_element.style.display = "none"; + }; + var _getSessionName = function () { if (_session_name_element.value === "") { return _session_name_element.placeholder; @@ -141,18 +152,28 @@ var _fp_main = function (join_cb) { var _setSession = function (name) { if (join_cb) { - return; + return false; } - if (name.length > 128) { // TODO : Handle notification about session validation - return; + if (name.length > 100) { + _sessionFormNotification("Session name is above the maximum limit of 100 characters.") + _session_btn_element.href = "#"; + return false; + } + + if (name.length === 0) { + name = _session_name_element.placeholder; } _session_btn_element.href = "app/" + name; + + _hideSessionFormNotification(); + + return true; }; var _isCompatibleBrowser = function () { - // check browser compatibility + // TODO: check browser compatibility }; var _joinSessionFn = function (name) { @@ -160,7 +181,9 @@ var _fp_main = function (join_cb) { if (join_cb) { join_cb(name); } else { - _setSession(name); + if (!_setSession(name)) { + return; + } location.href = "app/" + name; } diff --git a/www/dist/fp.min.css b/www/dist/fp.min.css index b0bead7..861eef3 100644 --- a/www/dist/fp.min.css +++ b/www/dist/fp.min.css @@ -4,4 +4,4 @@ html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:1 * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */ -@font-face{font-family:'FontAwesome';src:url(../fonts/fontawesome-webfont.eot?v=4.7.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format('embedded-opentype'),url(../fonts/fontawesome-webfont.woff2?v=4.7.0) format('woff2'),url(../fonts/fontawesome-webfont.woff?v=4.7.0) format('woff'),url(../fonts/fontawesome-webfont.ttf?v=4.7.0) format('truetype'),url(../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular) format('svg');font-weight:400;font-style:normal}.fa{display:inline-block;font:14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right,.pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:"\f2a3"}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-address-card:before,.fa-vcard:before{content:"\f2bb"}.fa-address-card-o:before,.fa-vcard-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fp-trash-icon{background-image:url(../data/icons/trash.png)}.fp-join-icon{background-image:url(../data/icons/join.png)}body{font-family:"OpenSans",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400}.button{border-radius:100px}video{width:100%}hr{margin-top:1rem;margin-bottom:2rem}@font-face{font-family:"OpenSans";src:url(../data/OpenSans-Regular.ttf)}@font-face{font-family:"OpenSans";src:url(../data/OpenSans-Italic.ttf);font-weight:400;font-style:italic}@font-face{font-family:"OpenSans";src:url(../data/OpenSans-Bold.ttf);font-weight:700;font-style:normal}::-webkit-input-placeholder{text-align:center}:-moz-placeholder,::-moz-placeholder{text-align:center}:-ms-input-placeholder{text-align:center}.fp-checksum{font-size:10pt;font-style:italic}.fp-download{font-size:18pt}.fp-small-text{font-size:10pt}.fp-title{padding-bottom:34px;margin-bottom:34px}.fp-session-list td{padding:0;font-size:11pt}.fp-session-list td:hover{cursor:pointer;background-color:#eee}.fp-user-name{color:#ff8000;font-weight:700}.fp-center-text,.fp-footer,.fp-session-list th,td{text-align:center}.fp-third-row form,.fp-third-row p{margin-bottom:0}.fb-share-button span{vertical-align:baseline!important}.fp-footer{padding:3rem 0}.fp-donate,.fp-donate input{margin:0}.fp-social-page-fbl,.fp-social-page-twl{font-size:26px;color:#3b5998;text-decoration:none}.fp-social-page-fbl:hover,.fp-social-page-scl:hover,.fp-social-page-twl:hover,.fp-social-page-ytl:hover{cursor:pointer}.fp-social-page-twl{color:#00aced}.fp-social-page-scl,.fp-social-page-ytl{font-size:26px;color:#ff3a00;text-decoration:none}.fp-social-page-ytl{color:#cd201f}.fp-social-sticky{position:fixed;z-index:3000;top:50%;transform:translateY(-50%);-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);left:0}.fp-social{float:left;clear:both;transition:padding .1s ease-out;-webkit-transition:padding .1s ease-out;-moz-transition:padding .1s ease-out;-ms-transition:padding .1s ease-out;-o-transition:padding .1s ease-out;background-color:#757575;color:#fff;display:inline-block;line-height:1px;margin-bottom:0;text-align:center;text-decoration:none;font-size:28px;width:36px}.fp-social:before{display:inline-block;font-family:"FontAwesome"!important;speak:none;line-height:1;position:relative;top:0;vertical-align:middle}.fp-social:focus,.fp-social:hover{padding:7px 7px 7px 16px;color:#fff;text-decoration:none;cursor:pointer}.fp-social-facebook{background-color:#3b5998}.fp-social-facebook:before{content:"\f230";top:-1px;position:relative}.fp-social-twitter{background-color:#1da1f2}.fp-social-gplus:before,.fp-social-twitter:before{content:"\f099";top:-1px;position:relative}.fp-social-gplus{background-color:#ea4335}.fp-social-gplus:before{content:"\f2b3"}.fp-social-tumblr{background-color:#395773}.fp-social-tumblr:before,.fp-social-youtube:before{content:"\f173";top:-1px;position:relative}.fp-social-youtube:before{content:"\f167"}.fp-social-youtube{background-color:#cc181e}.fp-social-email:before,.fp-social-soundcloud:before{content:"\f1be";top:-1px;position:relative}.fp-social-soundcloud{background-color:#f50}.fp-social-email{background-color:#757575}.fp-social-email:before{content:"\f0e0"}.fp-join-session-text{margin-bottom:1rem}.fp-join-session-heading{font-style:italic;margin-bottom:1rem}.fp-join-session{margin-bottom:0}.fp-justify{text-align:justify}.fp-margin{margin-left:4px;margin-right:4px}.fp-features{list-style:none;margin-left:24px}.fp-features li{text-align:left}.fp-requirements{list-style:square;margin-left:24px;text-align:left}.fp-footer form,.fp-requirements li{margin-bottom:0}.fp-footer a{text-decoration:none;font-weight:700;color:#000}.fp-back-to-top{position:fixed;right:0;bottom:0;padding:12px;color:#000}.fp-back-to-top i{font-size:24pt!important}.section{text-align:center}.section-description,.section-heading{margin-bottom:1.2rem;font-size:48pt}.logos,.logos2{position:relative;text-align:center}.logos2{z-index:100}.logo,.logo-right{position:relative;max-width:42%;margin:3rem auto -8rem}.logo-right{position:fixed;z-index:100}.logo+.logo{display:none}.values{background-image:url(../data/bg.jpg);background-size:contain;color:#fff;padding-bottom:5rem}.value-multiplier{margin-bottom:.5rem;color:#11dfc7}.value-heading{margin-bottom:.3rem}.value-description{opacity:.99;font-weight:300}.fp-session-form{margin-bottom:1.5rem}.fp-input{text-align:center;margin-bottom:0}.get-help{border-bottom:1px solid #ddd}.categories{background-image:url(../data/bg.jpg);background-size:cover;color:#fff}.categories .section-description{margin-bottom:4rem}@media (min-width:200px){.fp-header{text-align:center;height:102px}.fp-join-session-text{position:absolute;top:80px;right:0;left:0;font-size:12px}.fp-header .column{float:none}.section{padding:0}.hero{text-align:left}.logo{position:relative;max-width:100%;margin:3rem auto -8rem}.logo-right{max-width:100%;margin:auto;position:absolute;top:0;left:0;right:0}.hero-heading{font-size:2.4rem}.value-heading{margin-top:1.2rem}.fp-about-heading{margin-top:0}.navbar,.navbar-spacer{display:none;width:auto;position:relative;height:6.5rem;background:#fff;z-index:99;border-bottom:1px solid #e3e3e3}.fp-features li:before,.fp-fork-me,.fp-social-sticky{display:none}.fp-anchor{padding-top:10px}.fp-features{list-style:square}.fp-features li{margin-bottom:2px}.fp-sessions{padding-bottom:0}.fp-try>div>p:first-child{display:none}.fp-dl-table td:first-child{font-size:7px}}@media (min-width:550px){.fp-dl-table td:first-child{font-size:15px}}@media (min-width:750px){.has-docked-nav .navbar>.container{width:80%}.logo{position:relative;max-width:44%;margin:3rem auto -8rem}.logo-right{position:fixed;max-width:100%;margin:0;top:auto;left:auto;right:auto}.section{padding:14rem 0 15rem}.hero{padding:0}.section-description{max-width:60%;margin-left:auto;margin-right:auto}.categories{padding:15rem 0 8rem}.one-half.column{width:48%}.hero-heading{font-size:2.4rem}.navbar,.navbar-spacer{display:block;width:80%;position:fixed;height:6.5rem;background:#fff;z-index:99;border-bottom:1px solid #e3e3e3}.navbar-spacer{display:none}.navbar+.docs-section{border-top-width:0}.fp-session-form input,.navbar>.container{width:100%}.navbar-list{float:right;list-style:none;text-align:left;margin-bottom:0}.navbar-item{position:relative;float:left;margin-bottom:0}.navbar-link{text-transform:uppercase;font-size:9px;font-weight:600;letter-spacing:0;margin-left:10px;text-decoration:none;line-height:9.5rem;color:#222}.navbar-link.active{color:#33c3f0}.has-docked-nav .navbar{position:fixed;top:0;left:0}.has-docked-nav .navbar-spacer{display:block}.offset-by-one.column{margin-left:4.66666666667%}.fp-sessions{padding-bottom:3rem}.fp-join-session-text{position:static;top:auto;right:auto;left:auto;font-size:1em}.fp-try>div>p:first-child{display:block}.fp-header{height:78px;text-align:left}.fp-header .column{float:left}.fp-header .offset-by-one.column{right:auto;top:auto}.fp-dl-table th:first-child,td:first-child{display:table-cell}.fp-social{padding:7px}.fp-social-sticky{display:block}.fp-anchor{padding-top:19px;margin-top:-19px}.fp-features li{margin-bottom:0}.fp-features li:before{font-family:'FontAwesome';content:"\f00c";margin:0 5px 0 -15px}}@media (min-width:970px){.navbar-link{letter-spacing:.2rem;margin-left:22px;font-size:10px}iframe{width:366px;height:206px}}@media (min-width:1216px){.navbar,.navbar-spacer{width:960px}.navbar-link{font-size:11px}.fp-header{height:78px;text-align:left}.logo-right{position:fixed}.fp-header .offset-by-one.column{right:auto;top:auto}.fp-header .column{float:left}.fp-fork-me{display:block}.fp-fork-me img{display:block;position:fixed;top:0;right:0;border:0}.offset-by-one.column{margin-left:8.66666666667%}iframe{width:460px;height:259px}} \ No newline at end of file +@font-face{font-family:'FontAwesome';src:url(../fonts/fontawesome-webfont.eot?v=4.7.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format('embedded-opentype'),url(../fonts/fontawesome-webfont.woff2?v=4.7.0) format('woff2'),url(../fonts/fontawesome-webfont.woff?v=4.7.0) format('woff'),url(../fonts/fontawesome-webfont.ttf?v=4.7.0) format('truetype'),url(../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular) format('svg');font-weight:400;font-style:normal}.fa{display:inline-block;font:14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right,.pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:"\f2a3"}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-address-card:before,.fa-vcard:before{content:"\f2bb"}.fa-address-card-o:before,.fa-vcard-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fp-trash-icon{background-image:url(../data/icons/trash.png)}.fp-join-icon{background-image:url(../data/icons/join.png)}body{font-family:"OpenSans",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400}.button{border-radius:100px}video{width:100%}hr{margin-top:1rem;margin-bottom:2rem}@font-face{font-family:"OpenSans";src:url(../data/OpenSans-Regular.ttf)}@font-face{font-family:"OpenSans";src:url(../data/OpenSans-Italic.ttf);font-weight:400;font-style:italic}@font-face{font-family:"OpenSans";src:url(../data/OpenSans-Bold.ttf);font-weight:700;font-style:normal}::-webkit-input-placeholder{text-align:center}:-moz-placeholder,::-moz-placeholder{text-align:center}:-ms-input-placeholder{text-align:center}.fp-checksum{font-size:10pt;font-style:italic}.fp-download{font-size:18pt}.fp-small-text{font-size:10pt}.fp-session-validation{color:red;text-align:center;margin-bottom:4px;font-weight:700}.fp-title{padding-bottom:34px;margin-bottom:34px}.fp-session-list td{padding:0;font-size:11pt}.fp-session-list td:hover{cursor:pointer;background-color:#eee}.fp-user-name{color:#ff8000;font-weight:700}.fp-center-text,.fp-footer,.fp-session-list th,td{text-align:center}.fp-third-row form,.fp-third-row p{margin-bottom:0}.fb-share-button span{vertical-align:baseline!important}.fp-footer{padding:3rem 0}.fp-donate,.fp-donate input{margin:0}.fp-social-page-fbl,.fp-social-page-twl{font-size:26px;color:#3b5998;text-decoration:none}.fp-social-page-fbl:hover,.fp-social-page-scl:hover,.fp-social-page-twl:hover,.fp-social-page-ytl:hover{cursor:pointer}.fp-social-page-twl{color:#00aced}.fp-social-page-scl,.fp-social-page-ytl{font-size:26px;color:#ff3a00;text-decoration:none}.fp-social-page-ytl{color:#cd201f}.fp-social-sticky{position:fixed;z-index:3000;top:50%;transform:translateY(-50%);-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);left:0}.fp-social{float:left;clear:both;transition:padding .1s ease-out;-webkit-transition:padding .1s ease-out;-moz-transition:padding .1s ease-out;-ms-transition:padding .1s ease-out;-o-transition:padding .1s ease-out;background-color:#757575;color:#fff;display:inline-block;line-height:1px;margin-bottom:0;text-align:center;text-decoration:none;font-size:28px;width:36px}.fp-social:before{display:inline-block;font-family:"FontAwesome"!important;speak:none;line-height:1;position:relative;top:0;vertical-align:middle}.fp-social:focus,.fp-social:hover{padding:7px 7px 7px 16px;color:#fff;text-decoration:none;cursor:pointer}.fp-social-facebook{background-color:#3b5998}.fp-social-facebook:before{content:"\f230";top:-1px;position:relative}.fp-social-twitter{background-color:#1da1f2}.fp-social-gplus:before,.fp-social-twitter:before{content:"\f099";top:-1px;position:relative}.fp-social-gplus{background-color:#ea4335}.fp-social-gplus:before{content:"\f2b3"}.fp-social-tumblr{background-color:#395773}.fp-social-tumblr:before,.fp-social-youtube:before{content:"\f173";top:-1px;position:relative}.fp-social-youtube:before{content:"\f167"}.fp-social-youtube{background-color:#cc181e}.fp-social-email:before,.fp-social-soundcloud:before{content:"\f1be";top:-1px;position:relative}.fp-social-soundcloud{background-color:#f50}.fp-social-email{background-color:#757575}.fp-social-email:before{content:"\f0e0"}.fp-join-session-text{margin-bottom:1rem}.fp-join-session-heading{font-style:italic;margin-bottom:1rem}.fp-join-session{margin-bottom:0}.fp-justify{text-align:justify}.fp-margin{margin-left:4px;margin-right:4px}.fp-features{list-style:none;margin-left:24px}.fp-features li{text-align:left}.fp-requirements{list-style:square;margin-left:24px;text-align:left}.fp-footer form,.fp-requirements li{margin-bottom:0}.fp-footer a{text-decoration:none;font-weight:700;color:#000}.fp-back-to-top{position:fixed;right:0;bottom:0;padding:12px;color:#000}.fp-back-to-top i{font-size:24pt!important}.section{text-align:center}.section-description,.section-heading{margin-bottom:1.2rem;font-size:48pt}.logos,.logos2{position:relative;text-align:center}.logos2{z-index:100}.logo,.logo-right{position:relative;max-width:42%;margin:3rem auto -8rem}.logo-right{position:fixed;z-index:100}.logo+.logo{display:none}.values{background-image:url(../data/bg.jpg);background-size:contain;color:#fff;padding-bottom:5rem}.value-multiplier{margin-bottom:.5rem;color:#11dfc7}.value-heading{margin-bottom:.3rem}.value-description{opacity:.99;font-weight:300}.fp-session-form{margin-bottom:1.5rem}.fp-input{text-align:center;margin-bottom:0}.get-help{border-bottom:1px solid #ddd}.categories{background-image:url(../data/bg.jpg);background-size:cover;color:#fff}.categories .section-description{margin-bottom:4rem}@media (min-width:200px){.fp-header{text-align:center;height:102px}.fp-join-session-text{position:absolute;top:80px;right:0;left:0;font-size:12px}.fp-header .column{float:none}.section{padding:0}.hero{text-align:left}.logo{position:relative;max-width:100%;margin:3rem auto -8rem}.logo-right{max-width:100%;margin:auto;position:absolute;top:0;left:0;right:0}.hero-heading{font-size:2.4rem}.value-heading{margin-top:1.2rem}.fp-about-heading{margin-top:0}.navbar,.navbar-spacer{display:none;width:auto;position:relative;height:6.5rem;background:#fff;z-index:99;border-bottom:1px solid #e3e3e3}.fp-features li:before,.fp-fork-me,.fp-social-sticky{display:none}.fp-anchor{padding-top:10px}.fp-features{list-style:square}.fp-features li{margin-bottom:2px}.fp-sessions{padding-bottom:0}.fp-try>div>p:first-child{display:none}.fp-dl-table td:first-child{font-size:7px}}@media (min-width:550px){.fp-dl-table td:first-child{font-size:15px}}@media (min-width:750px){.has-docked-nav .navbar>.container{width:80%}.logo{position:relative;max-width:44%;margin:3rem auto -8rem}.logo-right{position:fixed;max-width:100%;margin:0;top:auto;left:auto;right:auto}.section{padding:14rem 0 15rem}.hero{padding:0}.section-description{max-width:60%;margin-left:auto;margin-right:auto}.categories{padding:15rem 0 8rem}.one-half.column{width:48%}.hero-heading{font-size:2.4rem}.navbar,.navbar-spacer{display:block;width:80%;position:fixed;height:6.5rem;background:#fff;z-index:99;border-bottom:1px solid #e3e3e3}.navbar-spacer{display:none}.navbar+.docs-section{border-top-width:0}.fp-session-form input,.navbar>.container{width:100%}.navbar-list{float:right;list-style:none;text-align:left;margin-bottom:0}.navbar-item{position:relative;float:left;margin-bottom:0}.navbar-link{text-transform:uppercase;font-size:9px;font-weight:600;letter-spacing:0;margin-left:10px;text-decoration:none;line-height:9.5rem;color:#222}.navbar-link.active{color:#33c3f0}.has-docked-nav .navbar{position:fixed;top:0;left:0}.has-docked-nav .navbar-spacer{display:block}.offset-by-one.column{margin-left:4.66666666667%}.fp-sessions{padding-bottom:3rem}.fp-join-session-text{position:static;top:auto;right:auto;left:auto;font-size:1em}.fp-try>div>p:first-child{display:block}.fp-header{height:78px;text-align:left}.fp-header .column{float:left}.fp-header .offset-by-one.column{right:auto;top:auto}.fp-dl-table th:first-child,td:first-child{display:table-cell}.fp-social{padding:7px}.fp-social-sticky{display:block}.fp-anchor{padding-top:19px;margin-top:-19px}.fp-features li{margin-bottom:0}.fp-features li:before{font-family:'FontAwesome';content:"\f00c";margin:0 5px 0 -15px}}@media (min-width:970px){.navbar-link{letter-spacing:.2rem;margin-left:22px;font-size:10px}iframe{width:366px;height:206px}}@media (min-width:1216px){.navbar,.navbar-spacer{width:960px}.navbar-link{font-size:11px}.fp-header{height:78px;text-align:left}.logo-right{position:fixed}.fp-header .offset-by-one.column{right:auto;top:auto}.fp-header .column{float:left}.fp-fork-me{display:block}.fp-fork-me img{display:block;position:fixed;top:0;right:0;border:0}.offset-by-one.column{margin-left:8.66666666667%}iframe{width:460px;height:259px}} \ No newline at end of file diff --git a/www/dist/fp.min.js b/www/dist/fp.min.js index 12a7be8..f3adefc 100644 --- a/www/dist/fp.min.js +++ b/www/dist/fp.min.js @@ -1 +1 @@ -var WUI_CircularMenu=new function(){"use strict";var e=[],t=0,n={item:"wui-circularmenu-item",show:"wui-circularmenu-show"},o={x:null,y:null,rx:64,ry:48,angle:0,item_width:32,item_height:32,window:null,element:null},i=function(t){var n,o;for(o=0;e.length>o;o+=1)n=e[o],t.body.removeChild(n);e=[]},l=function(e,t,n){var o=function(e){e.preventDefault(),n(),i(t)};return o},a=function(e,o){var l=function(a){a.preventDefault();var r=(new Date).getTime();500>=r-t||a.target.classList.contains(n.item)||(i(o),e.removeEventListener("click",l),e.removeEventListener("mousedown",l))};return l},r=function(e){var t=e.getBoundingClientRect(),n=document.body,o=document.documentElement,i=window.pageYOffset||o.scrollTop||n.scrollTop,l=window.pageXOffset||o.scrollLeft||n.scrollLeft,a=o.clientTop||n.clientTop||0,r=o.clientLeft||n.clientLeft||0,c=t.top+i-a,d=t.left+l-r;return{top:Math.round(c),left:Math.round(d),width:t.width,height:t.height}},c=function(e){return e*(Math.PI/180)},d=function(o,r,d,s,u,m){i(s);var h,f,p,g,v=-(Math.PI/2)+c(o.angle),w=r.length,y=2*Math.PI/w;for(p=0;w>p;p+=1)f=r[p],h=document.createElement("div"),h.classList.add(n.item),h.style.width=o.item_width+"px",h.style.height=o.item_height+"px",h.style.backgroundSize=o.item_width-4+"px "+(o.item_height-4)+"px",h.style.left=u+o.rx*Math.cos(v)+"px",h.style.top=m+o.ry*Math.sin(v)+"px",h.classList.add(f.icon),f.tooltip&&(h.title=f.tooltip),s.body.appendChild(h),d.getComputedStyle(h).width,e.push(h),f.on_click&&h.addEventListener("click",l(d,s,f.on_click)),h.classList.add(n.show),v+=y;g=a(d,s),d.addEventListener("click",g),t=(new Date).getTime(),d.addEventListener("mousedown",g)};this.create=function(e,t){var n,i,l,a,c,s={},u=document,m=window;for(n in o)o.hasOwnProperty(n)&&(s[n]=o[n]);if(void 0!==e)for(n in e)e.hasOwnProperty(n)&&void 0!==o[n]&&(s[n]=e[n]);a=s.element,null!==a?(c=r(a),u=a.ownerDocument,m=u.defaultView||u.parentWindow,i=c.left+(c.width-s.item_width)/2,l=c.top+(c.height-s.item_height)/2,d(s,t,m,u,i,l)):null!==i&&null!==l&&(null!==s.window&&(m=s.window,u=m.document),i=s.x-s.item_width/2,l=s.y-s.item_height/2,d(s,t,m,u,i,l))}};!function(e,t){"use strict";function n(){if(!l){l=!0;for(var e=0;e=n&&"none"===t.style.display&&(t.style.display="block"))},f=function(e){e.innerHTML="",localStorage.removeItem(o)},p=function(){return""===l.value?l.placeholder:l.value},g=function(){return""===i.value?i.placeholder:i.value},v=function(t){e||t.length>128||(a.href="app/"+t)},w=function(t){return function(){e?e(t):(v(t),location.href="app/"+t)}},y=function(e,t){return function(){var n=localStorage.getItem(o),i=[],l=0,a=e.parentElement;for(a.parentElement.removeChild(a),n&&(i=JSON.parse(n)),l=0;l0?localStorage.setItem(o,JSON.stringify(i)):(d.parentElement.removeChild(d),localStorage.removeItem(o)),null!==localStorage.getItem(t)&&localStorage.removeItem(t)}},E=function(){var e=this,t=e.textContent;WUI_CircularMenu.create({element:e,angle:90},[{icon:"fp-join-icon",tooltip:"Join session",on_click:w(t)},{icon:"fp-trash-icon",tooltip:"Delete session",on_click:y(e,t)}])};if(l.placeholder=Math.random().toString(36).substr(2,12),v(l.placeholder),m?(e||(c.innerHTML=t+''+m+""),i.value=m):s.parentElement.removeChild(s),i.addEventListener("change",function(){localStorage.setItem(n,g())}),l.addEventListener("change",function(){v(l.value)}),d.addEventListener("click",function(){f(r),d.parentElement.removeChild(d)}),a.addEventListener("click",function(t){var i=localStorage.getItem(o),l=[],a=p(),r=0;for(i&&(l=JSON.parse(i)),r=0;ro;o+=1)n=e[o],t.body.removeChild(n);e=[]},l=function(e,t,n){var o=function(e){e.preventDefault(),n(),i(t)};return o},a=function(e,o){var l=function(a){a.preventDefault();var r=(new Date).getTime();500>=r-t||a.target.classList.contains(n.item)||(i(o),e.removeEventListener("click",l),e.removeEventListener("mousedown",l))};return l},r=function(e){var t=e.getBoundingClientRect(),n=document.body,o=document.documentElement,i=window.pageYOffset||o.scrollTop||n.scrollTop,l=window.pageXOffset||o.scrollLeft||n.scrollLeft,a=o.clientTop||n.clientTop||0,r=o.clientLeft||n.clientLeft||0,c=t.top+i-a,d=t.left+l-r;return{top:Math.round(c),left:Math.round(d),width:t.width,height:t.height}},c=function(e){return e*(Math.PI/180)},d=function(o,r,d,s,u,m){i(s);var f,h,p,v,g=-(Math.PI/2)+c(o.angle),w=r.length,y=2*Math.PI/w;for(p=0;w>p;p+=1)h=r[p],f=document.createElement("div"),f.classList.add(n.item),f.style.width=o.item_width+"px",f.style.height=o.item_height+"px",f.style.backgroundSize=o.item_width-4+"px "+(o.item_height-4)+"px",f.style.left=u+o.rx*Math.cos(g)+"px",f.style.top=m+o.ry*Math.sin(g)+"px",f.classList.add(h.icon),h.tooltip&&(f.title=h.tooltip),s.body.appendChild(f),d.getComputedStyle(f).width,e.push(f),h.on_click&&f.addEventListener("click",l(d,s,h.on_click)),f.classList.add(n.show),g+=y;v=a(d,s),d.addEventListener("click",v),t=(new Date).getTime(),d.addEventListener("mousedown",v)};this.create=function(e,t){var n,i,l,a,c,s={},u=document,m=window;for(n in o)o.hasOwnProperty(n)&&(s[n]=o[n]);if(void 0!==e)for(n in e)e.hasOwnProperty(n)&&void 0!==o[n]&&(s[n]=e[n]);a=s.element,null!==a?(c=r(a),u=a.ownerDocument,m=u.defaultView||u.parentWindow,i=c.left+(c.width-s.item_width)/2,l=c.top+(c.height-s.item_height)/2,d(s,t,m,u,i,l)):null!==i&&null!==l&&(null!==s.window&&(m=s.window,u=m.document),i=s.x-s.item_width/2,l=s.y-s.item_height/2,d(s,t,m,u,i,l))}};!function(e,t){"use strict";function n(){if(!l){l=!0;for(var e=0;e=n&&"none"===t.style.display&&(t.style.display="block"))},h=function(e){e.innerHTML="",localStorage.removeItem(o)},p=function(e){var t=document.getElementById("fp_session_form_validation");t.style.display="",t.innerHTML=e},v=function(){var e=document.getElementById("fp_session_form_validation");e.style.display="none"},g=function(){return""===l.value?l.placeholder:l.value},w=function(){return""===i.value?i.placeholder:i.value},y=function(t){return!e&&(t.length>100?(p("Session name is above the maximum limit of 100 characters."),a.href="#",!1):(0===t.length&&(t=l.placeholder),a.href="app/"+t,v(),!0))},E=function(t){return function(){if(e)e(t);else{if(!y(t))return;location.href="app/"+t}}},I=function(e,t){return function(){var n=localStorage.getItem(o),i=[],l=0,a=e.parentElement;for(a.parentElement.removeChild(a),n&&(i=JSON.parse(n)),l=0;l0?localStorage.setItem(o,JSON.stringify(i)):(d.parentElement.removeChild(d),localStorage.removeItem(o)),null!==localStorage.getItem(t)&&localStorage.removeItem(t)}},L=function(){var e=this,t=e.textContent;WUI_CircularMenu.create({element:e,angle:90},[{icon:"fp-join-icon",tooltip:"Join session",on_click:E(t)},{icon:"fp-trash-icon",tooltip:"Delete session",on_click:I(e,t)}])};if(l.placeholder=Math.random().toString(36).substr(2,12),y(l.placeholder),m?(e||(c.innerHTML=t+''+m+""),i.value=m):s.parentElement.removeChild(s),i.addEventListener("change",function(){localStorage.setItem(n,w())}),l.addEventListener("change",function(){y(l.value)}),d.addEventListener("click",function(){h(r),d.parentElement.removeChild(d)}),a.addEventListener("click",function(t){var i=localStorage.getItem(o),l=[],a=g(),r=0;for(i&&(l=JSON.parse(i)),r=0;r +

    Create/Join Session diff --git a/www/js/main.js b/www/js/main.js index 0054bbf..6f9a81c 100644 --- a/www/js/main.js +++ b/www/js/main.js @@ -48,6 +48,17 @@ var _fp_main = function (join_cb) { localStorage.removeItem(_session_list_ls_key); }; + var _sessionFormNotification = function (msg) { + var validation_element = document.getElementById("fp_session_form_validation"); + validation_element.style.display = ""; + validation_element.innerHTML = msg; + }; + + var _hideSessionFormNotification = function () { + var validation_element = document.getElementById("fp_session_form_validation"); + validation_element.style.display = "none"; + }; + var _getSessionName = function () { if (_session_name_element.value === "") { return _session_name_element.placeholder; @@ -66,18 +77,28 @@ var _fp_main = function (join_cb) { var _setSession = function (name) { if (join_cb) { - return; + return false; } - if (name.length > 128) { // TODO : Handle notification about session validation - return; + if (name.length > 100) { + _sessionFormNotification("Session name is above the maximum limit of 100 characters.") + _session_btn_element.href = "#"; + return false; + } + + if (name.length === 0) { + name = _session_name_element.placeholder; } _session_btn_element.href = "app/" + name; + + _hideSessionFormNotification(); + + return true; }; var _isCompatibleBrowser = function () { - // check browser compatibility + // TODO: check browser compatibility }; var _joinSessionFn = function (name) { @@ -85,7 +106,9 @@ var _fp_main = function (join_cb) { if (join_cb) { join_cb(name); } else { - _setSession(name); + if (!_setSession(name)) { + return; + } location.href = "app/" + name; }