diff --git a/HISTORY.md b/HISTORY.md index 8e94c2e..21b2dbc 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -3,7 +3,7 @@ https://github.com/josdejong/jsoneditor -## not yet released, version 5.8.0 +## 2017-07-02, version 5.8.0 - Implemented support for autocompletion. Thanks @israelito3000. diff --git a/dist/jsoneditor-minimalist.js b/dist/jsoneditor-minimalist.js index c4d2cd5..d7a645f 100644 --- a/dist/jsoneditor-minimalist.js +++ b/dist/jsoneditor-minimalist.js @@ -24,8 +24,8 @@ * Copyright (c) 2011-2017 Jos de Jong, http://jsoneditoronline.org * * @author Jos de Jong, - * @version 5.7.2 - * @date 2017-06-27 + * @version 5.8.0 + * @date 2017-07-02 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') @@ -94,7 +94,7 @@ return /******/ (function(modules) { // webpackBootstrap } var treemode = __webpack_require__(1); - var textmode = __webpack_require__(12); + var textmode = __webpack_require__(13); var util = __webpack_require__(4); /** @@ -164,8 +164,8 @@ return /******/ (function(modules) { // webpackBootstrap // validate options if (options) { var VALID_OPTIONS = [ - 'ace', 'theme', 'ajv', 'schema','templates', + 'ace', 'theme','autocomplete', 'onChange', 'onEditable', 'onError', 'onModeChange', 'escapeUnicode', 'history', 'search', 'mode', 'modes', 'name', 'indentation', 'sortObjectKeys' ]; @@ -484,6 +484,7 @@ return /******/ (function(modules) { // webpackBootstrap var Node = __webpack_require__(8); var ModeSwitcher = __webpack_require__(11); var util = __webpack_require__(4); + var autocomplete = __webpack_require__(12); // create a mixin with the functions for tree mode var treemode = {}; @@ -527,6 +528,9 @@ return /******/ (function(modules) { // webpackBootstrap this._setOptions(options); + if (options.autocomplete) + this.autocomplete = new autocomplete(options.autocomplete); + if (this.options.history && this.options.mode !== 'view') { this.history = new History(this); } @@ -583,7 +587,8 @@ return /******/ (function(modules) { // webpackBootstrap history: true, mode: 'tree', name: undefined, // field name of root node - schema: null + schema: null, + autocomplete: null }; // copy all options @@ -1527,7 +1532,9 @@ return /******/ (function(modules) { // webpackBootstrap */ treemode._onKeyDown = function (event) { var keynum = event.which || event.keyCode; + var altKey = event.altKey; var ctrlKey = event.ctrlKey; + var metaKey = event.metaKey; var shiftKey = event.shiftKey; var handled = false; @@ -1573,6 +1580,41 @@ return /******/ (function(modules) { // webpackBootstrap } } + if ((this.options.autocomplete) && (!handled)) { + if (!ctrlKey && !altKey && !metaKey && (event.key.length == 1 || keynum == 8 || keynum == 46)) { + handled = false; + var jsonElementType = ""; + if (event.target.className.indexOf("jsoneditor-value") >= 0) jsonElementType = "value"; + if (event.target.className.indexOf("jsoneditor-field") >= 0) jsonElementType = "field"; + + var node = Node.getNodeFromTarget(event.target); + // Activate autocomplete + setTimeout(function (hnode, element) { + if (element.innerText.length > 0) { + var result = this.options.autocomplete.getOptions(element.innerText, editor.get(), jsonElementType); + if (typeof result.then === 'function') { + // probably a promise + if (result.then(function (obj) { + if (obj.options) + this.autocomplete.show(element, obj.startFrom, obj.options); + else + this.autocomplete.show(element, 0, obj); + }.bind(this))); + } else { + // definitely not a promise + if (result.options) + this.autocomplete.show(element, result.startFrom, result.options); + else + this.autocomplete.show(element, 0, result); + } + } + else + this.autocomplete.hideDropDown(); + + }.bind(this, node, event.target), 50); + } + } + if (handled) { event.preventDefault(); event.stopPropagation(); @@ -2822,6 +2864,34 @@ return /******/ (function(modules) { // webpackBootstrap return {start: start, end: newEnd}; }; + if (typeof Element !== 'undefined') { + // Polyfill for array remove + (function (arr) { + arr.forEach(function (item) { + if (item.hasOwnProperty('remove')) { + return; + } + Object.defineProperty(item, 'remove', { + configurable: true, + enumerable: true, + writable: true, + value: function remove() { + if (this.parentNode != null) + this.parentNode.removeChild(this); + } + }); + }); + })([Element.prototype, CharacterData.prototype, DocumentType.prototype]); + } + + + // Polyfill for startsWith + if (!String.prototype.startsWith) { + String.prototype.startsWith = function (searchString, position) { + position = position || 0; + return this.substr(position, searchString.length) === searchString; + }; + } /***/ }, /* 5 */ @@ -8021,11 +8091,383 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 12 */ +/***/ function(module, exports) { + + 'use strict'; + + function completely(config) { + config = config || {}; + config.confirmKeys = config.confirmKeys || [39, 35, 9] // right, end, tab + + var fontSize = ''; + var fontFamily = ''; + + var wrapper = document.createElement('div'); + wrapper.style.position = 'relative'; + wrapper.style.outline = '0'; + wrapper.style.border = '0'; + wrapper.style.margin = '0'; + wrapper.style.padding = '0'; + + var dropDown = document.createElement('div'); + dropDown.className = 'autocomplete dropdown'; + dropDown.style.position = 'absolute'; + dropDown.style.visibility = 'hidden'; + + var spacer; + var leftSide; // <-- it will contain the leftSide part of the textfield (the bit that was already autocompleted) + var createDropDownController = function (elem, rs) { + var rows = []; + var ix = 0; + var oldIndex = -1; + + var onMouseOver = function () { this.style.outline = '1px solid #ddd'; } + var onMouseOut = function () { this.style.outline = '0'; } + var onMouseDown = function () { p.hide(); p.onmouseselection(this.__hint, p.rs); } + + var p = { + rs: rs, + hide: function () { + elem.style.visibility = 'hidden'; + //rs.hideDropDown(); + }, + refresh: function (token, array) { + elem.style.visibility = 'hidden'; + ix = 0; + elem.innerHTML = ''; + var vph = (window.innerHeight || document.documentElement.clientHeight); + var rect = elem.parentNode.getBoundingClientRect(); + var distanceToTop = rect.top - 6; // heuristic give 6px + var distanceToBottom = vph - rect.bottom - 6; // distance from the browser border. + + rows = []; + for (var i = 0; i < array.length; i++) { + if (array[i].indexOf(token) !== 0) { continue; } + var divRow = document.createElement('div'); + divRow.className = 'item'; + //divRow.style.color = config.color; + divRow.onmouseover = onMouseOver; + divRow.onmouseout = onMouseOut; + divRow.onmousedown = onMouseDown; + divRow.__hint = array[i]; + divRow.innerHTML = token + '' + array[i].substring(token.length) + ''; + rows.push(divRow); + elem.appendChild(divRow); + } + if (rows.length === 0) { + return; // nothing to show. + } + if (rows.length === 1 && token === rows[0].__hint) { + return; // do not show the dropDown if it has only one element which matches what we have just displayed. + } + + if (rows.length < 2) return; + p.highlight(0); + + if (distanceToTop > distanceToBottom * 3) { // Heuristic (only when the distance to the to top is 4 times more than distance to the bottom + elem.style.maxHeight = distanceToTop + 'px'; // we display the dropDown on the top of the input text + elem.style.top = ''; + elem.style.bottom = '100%'; + } else { + elem.style.top = '100%'; + elem.style.bottom = ''; + elem.style.maxHeight = distanceToBottom + 'px'; + } + elem.style.visibility = 'visible'; + }, + highlight: function (index) { + if (oldIndex != -1 && rows[oldIndex]) { + rows[oldIndex].className = "item"; + } + rows[index].className = "item hover"; + oldIndex = index; + }, + move: function (step) { // moves the selection either up or down (unless it's not possible) step is either +1 or -1. + if (elem.style.visibility === 'hidden') return ''; // nothing to move if there is no dropDown. (this happens if the user hits escape and then down or up) + if (ix + step === -1 || ix + step === rows.length) return rows[ix].__hint; // NO CIRCULAR SCROLLING. + ix += step; + p.highlight(ix); + return rows[ix].__hint;//txtShadow.value = uRows[uIndex].__hint ; + }, + onmouseselection: function () { } // it will be overwritten. + }; + return p; + } + + function setEndOfContenteditable(contentEditableElement) { + var range, selection; + if (document.createRange)//Firefox, Chrome, Opera, Safari, IE 9+ + { + range = document.createRange();//Create a range (a range is a like the selection but invisible) + range.selectNodeContents(contentEditableElement);//Select the entire contents of the element with the range + range.collapse(false);//collapse the range to the end point. false means collapse to end rather than the start + selection = window.getSelection();//get the selection object (allows you to change selection) + selection.removeAllRanges();//remove any selections already made + selection.addRange(range);//make the range you have just created the visible selection + } + else if (document.selection)//IE 8 and lower + { + range = document.body.createTextRange();//Create a range (a range is a like the selection but invisible) + range.moveToElementText(contentEditableElement);//Select the entire contents of the element with the range + range.collapse(false);//collapse the range to the end point. false means collapse to end rather than the start + range.select();//Select the range (make it the visible selection + } + } + + function calculateWidthForText(text) { + if (spacer === undefined) { // on first call only. + spacer = document.createElement('span'); + spacer.style.visibility = 'hidden'; + spacer.style.position = 'fixed'; + spacer.style.outline = '0'; + spacer.style.margin = '0'; + spacer.style.padding = '0'; + spacer.style.border = '0'; + spacer.style.left = '0'; + spacer.style.whiteSpace = 'pre'; + spacer.style.fontSize = fontSize; + spacer.style.fontFamily = fontFamily; + spacer.style.fontWeight = 'normal'; + document.body.appendChild(spacer); + } + + // Used to encode an HTML string into a plain text. + // taken from http://stackoverflow.com/questions/1219860/javascript-jquery-html-encoding + spacer.innerHTML = String(text).replace(/&/g, '&') + .replace(/"/g, '"') + .replace(/'/g, ''') + .replace(//g, '>'); + return spacer.getBoundingClientRect().right; + } + + var rs = { + onArrowDown: function () { }, // defaults to no action. + onArrowUp: function () { }, // defaults to no action. + onEnter: function () { }, // defaults to no action. + onTab: function () { }, // defaults to no action. + startFrom: 0, + options: [], + element: null, + elementHint: null, + elementStyle: null, + wrapper: wrapper, // Only to allow easy access to the HTML elements to the final user (possibly for minor customizations) + show: function (element, startPos, options) { + this.startFrom = startPos; + this.wrapper.remove(); + if (this.elementHint) { + this.elementHint.remove(); + this.elementHint = null; + } + + if (fontSize == '') { + fontSize = window.getComputedStyle(element).getPropertyValue('font-size'); + } + if (fontFamily == '') { + fontFamily = window.getComputedStyle(element).getPropertyValue('font-family'); + } + + var w = element.getBoundingClientRect().right - element.getBoundingClientRect().left; + dropDown.style.marginLeft = '0'; + dropDown.style.marginTop = element.getBoundingClientRect().height + 'px'; + this.options = options; + + if (this.element != element) { + this.element = element; + this.elementStyle = { + zIndex: this.element.style.zIndex, + position: this.element.style.position, + backgroundColor: this.element.style.backgroundColor, + borderColor: this.element.style.borderColor + } + } + + this.element.style.zIndex = 3; + this.element.style.position = 'relative'; + this.element.style.backgroundColor = 'transparent'; + this.element.style.borderColor = 'transparent'; + + this.elementHint = element.cloneNode(); + this.elementHint.className = 'autocomplete hint'; + this.elementHint.style.zIndex = 2; + this.elementHint.style.position = 'absolute'; + this.elementHint.onfocus = function () { this.element.focus(); }.bind(this); + + + + if (this.element.addEventListener) { + this.element.removeEventListener("keydown", keyDownHandler); + this.element.addEventListener("keydown", keyDownHandler, false); + this.element.removeEventListener("blur", onBlurHandler); + this.element.addEventListener("blur", onBlurHandler, false); + } + + wrapper.appendChild(this.elementHint); + wrapper.appendChild(dropDown); + element.parentElement.appendChild(wrapper); + + + this.repaint(element); + }, + setText: function (text) { + this.element.innerText = text; + }, + getText: function () { + return this.element.innerText; + }, + hideDropDown: function () { + this.wrapper.remove(); + if (this.elementHint) { + this.elementHint.remove(); + this.elementHint = null; + dropDownController.hide(); + this.element.style.zIndex = this.elementStyle.zIndex; + this.element.style.position = this.elementStyle.position; + this.element.style.backgroundColor = this.elementStyle.backgroundColor; + this.element.style.borderColor = this.elementStyle.borderColor; + } + + }, + repaint: function (element) { + var text = element.innerText; + text = text.replace('\n', ''); + + var startFrom = this.startFrom; + var options = this.options; + var optionsLength = this.options.length; + + // breaking text in leftSide and token. + + var token = text.substring(this.startFrom); + leftSide = text.substring(0, this.startFrom); + + for (var i = 0; i < optionsLength; i++) { + var opt = this.options[i]; + if (opt.indexOf(token) === 0) { // <-- how about upperCase vs. lowercase + this.elementHint.innerText = leftSide + opt; + break; + } + } + // moving the dropDown and refreshing it. + dropDown.style.left = calculateWidthForText(leftSide) + 'px'; + dropDownController.refresh(token, this.options); + this.elementHint.style.width = calculateWidthForText(this.elementHint.innerText) + 10 + 'px' + var wasDropDownHidden = (dropDown.style.visibility == 'hidden'); + if (!wasDropDownHidden) + this.elementHint.style.width = calculateWidthForText(this.elementHint.innerText) + dropDown.clientWidth + 'px'; + } + }; + + var dropDownController = createDropDownController(dropDown, rs); + + var keyDownHandler = function (e) { + //console.log("Keydown:" + e.keyCode); + e = e || window.event; + var keyCode = e.keyCode; + + if (this.elementHint == null) return; + + if (keyCode == 33) { return; } // page up (do nothing) + if (keyCode == 34) { return; } // page down (do nothing); + + if (keyCode == 27) { //escape + rs.hideDropDown(); + rs.element.focus(); + e.preventDefault(); + e.stopPropagation(); + return; + } + + if (config.confirmKeys.indexOf(keyCode) >= 0) { // (autocomplete triggered) + if (keyCode == 9) { + if (this.elementHint.innerText.length == 0) { + rs.onTab(); + } + } + if (this.elementHint.innerText.length > 0) { // if there is a hint + if (this.element.innerText != this.elementHint.innerText) { + this.element.innerText = this.elementHint.innerText; + rs.hideDropDown(); + setEndOfContenteditable(this.element); + if (keyCode == 9) { + rs.element.focus(); + e.preventDefault(); + e.stopPropagation(); + } + } + } + return; + } + + if (keyCode == 13) { // enter (autocomplete triggered) + if (this.elementHint.innerText.length == 0) { // if there is a hint + rs.onEnter(); + } else { + var wasDropDownHidden = (dropDown.style.visibility == 'hidden'); + dropDownController.hide(); + + if (wasDropDownHidden) { + rs.hideDropDown(); + rs.element.focus(); + rs.onEnter(); + return; + } + + this.element.innerText = this.elementHint.innerText; + rs.hideDropDown(); + setEndOfContenteditable(this.element); + e.preventDefault(); + e.stopPropagation(); + } + return; + } + + if (keyCode == 40) { // down + var m = dropDownController.move(+1); + if (m == '') { rs.onArrowDown(); } + this.elementHint.innerText = leftSide + m; + e.preventDefault(); + e.stopPropagation(); + return; + } + + if (keyCode == 38) { // up + var m = dropDownController.move(-1); + if (m == '') { rs.onArrowUp(); } + this.elementHint.innerText = leftSide + m; + e.preventDefault(); + e.stopPropagation(); + return; + } + + }.bind(rs); + + var onBlurHandler = function (e) { + rs.hideDropDown(); + //console.log("Lost focus."); + }.bind(rs); + + dropDownController.onmouseselection = function (text, rs) { + rs.element.innerText = rs.elementHint.innerText = leftSide + text; + rs.hideDropDown(); + window.setTimeout(function () { + rs.element.focus(); + setEndOfContenteditable(rs.element); + }, 1); + }; + + return rs; + } + + module.exports = completely; + +/***/ }, +/* 13 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var ace = __webpack_require__(13); + var ace = __webpack_require__(14); var ModeSwitcher = __webpack_require__(11); var util = __webpack_require__(4); @@ -8089,7 +8531,7 @@ return /******/ (function(modules) { // webpackBootstrap this.theme = options.theme || DEFAULT_THEME; if (this.theme === DEFAULT_THEME && _ace) { try { - __webpack_require__(17); + __webpack_require__(18); } catch (err) { console.error(err); @@ -8530,7 +8972,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 13 */ +/* 14 */ /***/ function(module, exports, __webpack_require__) { var ace @@ -8544,8 +8986,8 @@ return /******/ (function(modules) { // webpackBootstrap ace = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module \"brace\""); e.code = 'MODULE_NOT_FOUND'; throw e; }())); // load required Ace plugins - __webpack_require__(14); - __webpack_require__(16); + __webpack_require__(15); + __webpack_require__(17); } catch (err) { // failed to load brace (can be minimalist bundle). @@ -8557,7 +8999,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 14 */ +/* 15 */ /***/ function(module, exports, __webpack_require__) { ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(acequire, exports, module) { @@ -8851,7 +9293,7 @@ return /******/ (function(modules) { // webpackBootstrap }; this.createWorker = function(session) { - var worker = new WorkerClient(["ace"], __webpack_require__(15), "JsonWorker"); + var worker = new WorkerClient(["ace"], __webpack_require__(16), "JsonWorker"); worker.attachToDocument(session.getDocument()); worker.on("annotate", function(e) { @@ -8874,14 +9316,14 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 15 */ +/* 16 */ /***/ function(module, exports) { module.exports.id = 'ace/mode/json_worker'; module.exports.src = "\"no use strict\";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\"\";testPath;){var alias=paths[testPath];if(\"string\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,\"/\")+(tail||alias.main||alias.name);if(alias===!1)return\"\";var i=testPath.lastIndexOf(\"/\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\"error\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\"!\")){var chunks=moduleName.split(\"!\");return window.normalizeModule(parentId,chunks[0])+\"!\"+window.normalizeModule(parentId,chunks[1])}if(\".\"==moduleName.charAt(0)){var base=parentId.split(\"/\").slice(0,-1).join(\"/\");for(moduleName=(base?base+\"/\":\"\")+moduleName;-1!==moduleName.indexOf(\".\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\"worker.js acequire() accepts only (parentId, id) as arguments\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\"unable to load \"+id);var path=resolveModuleId(id,window.acequire.tlns);return\".js\"!=path.slice(-3)&&(path+=\".js\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\"string\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\"function\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\"require\",\"exports\",\"module\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\"require\":return req;case\"exports\":return module.exports;case\"module\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\"ace/lib/event_emitter\").EventEmitter,oop=window.acequire(\"ace/lib/oop\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\"call\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\"event\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\"Unknown command:\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\"ace/lib/es5-shim\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\"object\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\"object\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\"\";switch(delta.action){case\"insert\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\"remove\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\"object\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\"unshift\":\"push\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\"change\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),applyDelta=acequire(\"./apply_delta\").applyDelta,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Anchor=acequire(\"./anchor\").Anchor,Document=function(textOrLines){this.$lines=[\"\"],0===textOrLines.length?this.$lines=[\"\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\"aaa\".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\"changeNewLineMode\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\"\\r\\n\"==text||\"\\r\"==text||\"\\n\"==text},this.getLine=function(row){return this.$lines[row]||\"\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\"\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(position,[\"\",\"\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\"insert\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\"\"]),column=0):(lines=[\"\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\"insert\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\"remove\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\"insert\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\"change\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\"\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\"insert\"==delta.action?\"remove\":\"insert\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\"\").reverse().join(\"\")},exports.stringRepeat=function(string,count){for(var result=\"\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\"\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\"\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\"object\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\"object\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\"[object Object]\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},exports.escapeHTML=function(str){return str.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/'/g,\"'\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\"insert\",start:data[i],lines:data[i+1]};else var d={action:\"remove\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\"ace/mode/json/json_parse\",[\"require\",\"exports\",\"module\"],function(){\"use strict\";var at,ch,text,value,escapee={'\"':'\"',\"\\\\\":\"\\\\\",\"/\":\"/\",b:\"\\b\",f:\"\\f\",n:\"\\n\",r:\"\\r\",t:\"\t\"},error=function(m){throw{name:\"SyntaxError\",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error(\"Expected '\"+c+\"' instead of '\"+ch+\"'\"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string=\"\";for(\"-\"===ch&&(string=\"-\",next(\"-\"));ch>=\"0\"&&\"9\">=ch;)string+=ch,next();if(\".\"===ch)for(string+=\".\";next()&&ch>=\"0\"&&\"9\">=ch;)string+=ch;if(\"e\"===ch||\"E\"===ch)for(string+=ch,next(),(\"-\"===ch||\"+\"===ch)&&(string+=ch,next());ch>=\"0\"&&\"9\">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error(\"Bad number\"),void 0):number},string=function(){var hex,i,uffff,string=\"\";if('\"'===ch)for(;next();){if('\"'===ch)return next(),string;if(\"\\\\\"===ch)if(next(),\"u\"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if(\"string\"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error(\"Bad string\")},white=function(){for(;ch&&\" \">=ch;)next()},word=function(){switch(ch){case\"t\":return next(\"t\"),next(\"r\"),next(\"u\"),next(\"e\"),!0;case\"f\":return next(\"f\"),next(\"a\"),next(\"l\"),next(\"s\"),next(\"e\"),!1;case\"n\":return next(\"n\"),next(\"u\"),next(\"l\"),next(\"l\"),null}error(\"Unexpected '\"+ch+\"'\")},array=function(){var array=[];if(\"[\"===ch){if(next(\"[\"),white(),\"]\"===ch)return next(\"]\"),array;for(;ch;){if(array.push(value()),white(),\"]\"===ch)return next(\"]\"),array;next(\",\"),white()}}error(\"Bad array\")},object=function(){var key,object={};if(\"{\"===ch){if(next(\"{\"),white(),\"}\"===ch)return next(\"}\"),object;for(;ch;){if(key=string(),white(),next(\":\"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key \"'+key+'\"'),object[key]=value(),white(),\"}\"===ch)return next(\"}\"),object;next(\",\"),white()}}error(\"Bad object\")};return value=function(){switch(white(),ch){case\"{\":return object();case\"[\":return array();case'\"':return string();case\"-\":return number();default:return ch>=\"0\"&&\"9\">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=\" \",result=value(),white(),ch&&error(\"Syntax error\"),\"function\"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&\"object\"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({\"\":result},\"\"):result}}),ace.define(\"ace/mode/json_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/json/json_parse\"],function(acequire,exports){\"use strict\";var oop=acequire(\"../lib/oop\"),Mirror=acequire(\"../worker/mirror\").Mirror,parse=acequire(\"./json/json_parse\"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:\"error\"})}this.sender.emit(\"annotate\",errors)}}.call(JsonWorker.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\"sentinel\",{}),\"sentinel\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\"function\"!=typeof target)throw new TypeError(\"Function.prototype.bind called on incompatible \"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\"__defineGetter__\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\"XXX\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\"[object Array]\"==_toString(obj)});var boxedString=Object(\"a\"),splitString=\"a\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduce of empty array with no initial value\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\"reduce of empty array with no initial value\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduceRight of empty array with no initial value\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\"reduceRight of empty array with no initial value\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(object,property){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\"undefined\"==typeof document||doesDefinePropertyWork(document.createElement(\"div\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\"Property description must be an object: \",ERR_NON_OBJECT_TARGET=\"Object.defineProperty called on non-object: \",ERR_ACCESSORS_NOT_SUPPORTED=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(object,property,descriptor){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\"object\"!=typeof descriptor&&\"function\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\"value\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\"get\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\"set\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\"function\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\"\";owns(object,name);)name+=\"?\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(\"Object.keys called on a non-object\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\"\t\\n\u000b\\f\\r   ᠎              \\u2028\\u2029\";if(!String.prototype.trim||ws.trim()){ws=\"[\"+ws+\"]\";var trimBeginRegexp=RegExp(\"^\"+ws+ws+\"*\"),trimEndRegexp=RegExp(ws+ws+\"*$\");String.prototype.trim=function(){return(this+\"\").replace(trimBeginRegexp,\"\").replace(trimEndRegexp,\"\")}}var toObject=function(o){if(null==o)throw new TypeError(\"can't convert \"+o+\" to object\");return Object(o)}});"; /***/ }, -/* 16 */ +/* 17 */ /***/ function(module, exports) { ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"], function(acequire, exports, module) { @@ -9303,7 +9745,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 17 */ +/* 18 */ /***/ function(module, exports) { /* ***** BEGIN LICENSE BLOCK ***** diff --git a/dist/jsoneditor-minimalist.map b/dist/jsoneditor-minimalist.map index 59af779..66dc905 100644 --- a/dist/jsoneditor-minimalist.map +++ b/dist/jsoneditor-minimalist.map @@ -1 +1 @@ -{"version":3,"sources":["./dist/jsoneditor-minimalist.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","JSONEditor","container","options","json","Error","ieVersion","util","getInternetExplorerVersion","error","console","warn","onError","change","onChange","editable","onEditable","VALID_OPTIONS","Object","keys","forEach","option","indexOf","arguments","length","_create","Ajv","e","code","err","treemode","textmode","modes","prototype","DEBOUNCE_INTERVAL","mode","setMode","destroy","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","data","extend","oldMode","config","asText","clear","mixin","create","load","onModeChange","_onError","getMode","setSchema","schema","ajv","allErrors","verbose","validateSchema","compile","validate","refresh","registerMode","i","prop","isArray","reserved","Highlighter","History","SearchBox","ContextMenu","Node","ModeSwitcher","dom","highlighter","selection","undefined","multiselection","nodes","errorNodes","node","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","search","hasOwnProperty","debounce","bind","Function","content","table","params","field","value","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","updateField","focus","input","querySelector","menu","collapse","tbody","getDom","text","results","expandAll","collapseAll","_onAction","action","add","_onChange","setError","duplicateErrors","schemaErrors","errors","map","improveSchemaError","findNode","dataPath","filter","entry","concat","reduce","all","findParents","parent","child","message","type","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setSelection","select","range","setSelectionOffset","getSelection","getSelectionOffset","nodeName","slice","scrollTo","callback","editor","animateTimeout","animateCallback","finalScrollTop","Math","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","document","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","title","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","_onKeyDown","_startDragDistance","_updateDragDistance","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","removeEventListener","clearStartAndEnd","setSelected","Array","first","startPath","getNodePath","endPath","startChild","endChild","childs","startIndex","endIndex","firstIndex","lastIndex","keynum","which","keyCode","ctrlKey","shiftKey","handled","selectContentEditable","previous","next","stopPropagation","contentOuter","col","colgroupContent","width","anchor","onClose","items","push","click","onDuplicate","onRemove","close","show","locked","highlight","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","index","actions","editField","oldValue","newValue","editValue","updateValue","changeType","oldType","newType","appendNodes","insertBeforeNodes","insertBefore","beforeNode","insertAfterNodes","afterNode","insertAfter","removeNodes","append","duplicateNodes","moveNodes","oldBeforeNode","moveBefore","newBeforeNode","sort","hideChilds","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","Date","splice","obj","oldSelection","newSelection","jsonlint","jsonString","sanitize","jsString","curr","charAt","prev","chars","match","quote","test","pp","specialValues","key","regexp","join","escapeUnicodeChars","replace","charCodeAt","toString","a","b","object","Number","String","Boolean","RegExp","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","addClassName","classes","split","removeClassName","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","j","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","element","buffer","flush","nodeValue","hasChildNodes","innerText","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","exec","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","f","detachEvent","parsePath","jsonPath","remainder","substr","SyntaxError","substring","keyword","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","args","later","apply","callNow","textDiff","oldText","newText","len","oldEnd","newEnd","parser","trace","yy","symbols_","JSONString","STRING","JSONNumber","NUMBER","JSONNullLiteral","NULL","JSONBooleanLiteral","TRUE","FALSE","JSONText","JSONValue","EOF","JSONObject","JSONArray","{","}","JSONMemberList","JSONMember",":",",","[","]","JSONElementList","$accept","$end","terminals_","2","4","6","8","10","11","14","17","18","21","22","23","24","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","3","5","7","9","12","13","15","16","1","19","20","25","defaultActions","parseError","str","hash","lex","token","self","lexer","stack","vstack","lstack","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","state","r","newState","expected","yyval","errStr","showPosition","line","loc","n","first_line","last_line","first_column","last_column","_input","_more","_less","done","matched","conditionStack","ch","unput","less","pastInput","past","upcomingInput","pre","tempMatch","lines","rules","_currentRules","flex","begin","condition","popState","pop","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","searchFieldActive","searchValueActive","_clearDelay","forceSearch","resultCount","innerHTML","createMenuItems","list","domItems","item","separator","li","domItem","button","hide","submenu","divIcon","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","overflow","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","contentRect","anchorHeight","offsetHeight","mousedown","_isChildOf","keydown","fn","alreadyVisible","padding","display","childsHeight","targetIndex","prevButton","nextButton","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","naturalSort","appendNodeFactory","_updateEditability","path","getPath","unshift","shift","parents","tdError","tdValue","popover","onfocus","directions","direction","popoverRect","getIndex","setParent","previousField","getField","_getDomField","childValue","_getType","childField","sortObjectKeys","previousValue","arr","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppend","nextTr","nextSibling","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","moveTo","toLowerCase","searchField","searchValue","_updateDomField","childResults","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","count","checkbox","tdCheckbox","checked","enum","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","firstNode","lastNode","draggedNode","_nextSibling","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","level","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","some","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_escapeHTML","_updateSchema","_updateDomIndexes","_findSchema","_findEnum","composite","oneOf","anyOf","allOf","childSchema","properties","_createDomValue","href","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","open","offsetX","onKeyDown","nextNode","nextDom","nextDom2","altKey","selectedNodes","_onInsertBefore","_onInsertAfter","endNode","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","isVisible","_nextNode","blurNodes","clones","newNode","_onAppend","_onChangeType","order","oldSortOrder","sortOrder","firstDom","lastDom","lastChild","TYPE_TITLES","auto","array","string","addTemplates","templates","appendData","insertData","template","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","isNaN","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","s","insensitive","x","y","xN","yN","xD","parseInt","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","current","onSwitch","availableModes","form","view","currentMode","currentTitle","box","position","ace","indentation","_ace","theme","aceEditor","textarea","clientWidth","buttonFormat","format","buttonCompact","compact","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","Infinity","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","defineProperty","poweredBy","on","resize","originalOnChange","validationErrors","marginBottom","paddingBottom","doValidate","hidden","acequire","oop","TextHighlightRules","JsonHighlightRules","$rules","regex","inherits","Range","MatchingBraceOutdent","checkOutdent","autoOutdent","doc","row","getLine","column","openBracePos","findMatchingBracket","indent","$getIndent","BaseFoldMode","FoldMode","commentRegex","foldingStartMarker","source","foldingStopMarker","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","getFoldWidget","session","foldStyle","fw","getFoldWidgetRange","forceMultiline","getCommentRegionBlock","openingBracketBlock","getCommentFoldRange","isMultiLine","getSectionRange","closingBracketBlock","startIndent","startRow","startColumn","endRow","maxRow","getLength","subRange","depth","TextMode","Mode","HighlightRules","CstyleBehaviour","CStyleFoldMode","WorkerClient","$outdent","$behaviour","foldingRules","getNextLineIndent","tab","createWorker","worker","attachToDocument","getDocument","setAnnotations","clearAnnotations","$id","src","lang","HashHandler","keyUtil","importCssString","showReplaceForm","div","$init","setEditor","$initElements","sb","replaceBox","searchOptions","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","_this","addListener","activeInput","t","getAttribute","$searchBarKb","addCommandKeyListener","hashId","keyString","keyCodeToString","command","findKeyCommand","stopEvent","$onChange","delayedCall","find","schedule","$closeSearchBarKb","bindKeys","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","findNext","Ctrl-Shift-G|Command-Shift-G","findPrev","esc","Return","Shift-Return","Alt-Return","replaceAll","findAll","Tab","addCommands","win","mac","$syncOptions","setCssClass","$search","$options","renderer","updateBackMarkers","skipCurrent","backwards","preventScroll","wrap","regExp","caseSensitive","wholeWord","noMatch","_emit","getReadOnly","replaceAndFindNext","keyBinding","removeKeyboardHandler","addKeyboardHandler","isFocused","el","activeElement","Search","getTextRange","isDark","cssClass","cssText"],"mappings":"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","file":"jsoneditor-minimalist"} \ No newline at end of file +undefined \ No newline at end of file diff --git a/dist/jsoneditor-minimalist.min.js b/dist/jsoneditor-minimalist.min.js index 718e151..66dc905 100644 --- a/dist/jsoneditor-minimalist.min.js +++ b/dist/jsoneditor-minimalist.min.js @@ -1,33 +1 @@ -/*! - * jsoneditor.js - * - * @brief - * JSONEditor is a web-based tool to view, edit, format, and validate JSON. - * It has various modes such as a tree editor, a code editor, and a plain text - * editor. - * - * Supported browsers: Chrome, Firefox, Safari, Opera, Internet Explorer 8+ - * - * @license - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy - * of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - * - * Copyright (c) 2011-2017 Jos de Jong, http://jsoneditoronline.org - * - * @author Jos de Jong, - * @version 5.7.2 - * @date 2017-06-27 - */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(n){if(i[n])return i[n].exports;var o=i[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}([function(e,t,i){"use strict";function n(e,t,i){if(!(this instanceof n))throw new Error('JSONEditor constructor called without "new".');var o=a.getInternetExplorerVersion();if(-1!=o&&o<9)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");if(t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t)){var r=["ace","theme","ajv","schema","templates","onChange","onEditable","onError","onModeChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys"];Object.keys(t).forEach(function(e){-1===r.indexOf(e)&&console.warn('Unknown option "'+e+'". This option will be ignored')})}arguments.length&&this._create(e,t,i)}var o;try{o=i(!function(){var e=new Error('Cannot find module "ajv"');throw e.code="MODULE_NOT_FOUND",e}())}catch(e){}var r=i(1),s=i(12),a=i(4);n.modes={},n.prototype.DEBOUNCE_INTERVAL=150,n.prototype._create=function(e,t,i){this.container=e,this.options=t||{},this.json=i||{};var n=this.options.mode||"tree";this.setMode(n)},n.prototype.destroy=function(){},n.prototype.set=function(e){this.json=e},n.prototype.get=function(){return this.json},n.prototype.setText=function(e){this.json=a.parse(e)},n.prototype.getText=function(){return JSON.stringify(this.json)},n.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},n.prototype.getName=function(){return this.options&&this.options.name},n.prototype.setMode=function(e){var t,i,o=this.container,r=a.extend({},this.options),s=r.mode;r.mode=e;var l=n.modes[e];if(!l)throw new Error('Unknown mode "'+r.mode+'"');try{var c="text"==l.data;if(i=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(o,r),this.setName(i),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof r.onModeChange&&e!==s)try{r.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},n.prototype.getMode=function(){return this.options.mode},n.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},n.prototype.setSchema=function(e){if(e){var t;try{t=this.options.ajv||o({allErrors:!0,verbose:!0})}catch(e){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}t&&(this.validateSchema=t.compile(e),this.options.schema=e,this.validate()),this.refresh()}else this.validateSchema=null,this.options.schema=null,this.validate(),this.refresh()},n.prototype.validate=function(){},n.prototype.refresh=function(){},n.registerMode=function(e){var t,i;if(a.isArray(e))for(t=0;t0?this.autoScrollStep=(n+24-e)/3:e>r-24&&o+i.scrollTop3?(i.scrollTop+=o/3,n.animateCallback=t,n.animateTimeout=setTimeout(a,50)):(t&&t(!0),i.scrollTop=s,delete n.animateTimeout,delete n.animateCallback)};a()}else t&&t(!1)},d._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var i=t.target;e(t),"BUTTON"==i.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,c.addEventListener(this.frame,"focus",e,!0),c.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var i=document.createElement("button");i.type="button",i.className="jsoneditor-expand-all",i.title="Expand all fields",i.onclick=function(){t.expandAll()},this.menu.appendChild(i);var n=document.createElement("button");if(n.type="button",n.title="Collapse all fields",n.className="jsoneditor-collapse-all",n.onclick=function(){t.collapseAll()},this.menu.appendChild(n),this.history){var o=document.createElement("button");o.type="button",o.className="jsoneditor-undo jsoneditor-separator",o.title="Undo last action (Ctrl+Z)",o.onclick=function(){t._onUndo()},this.menu.appendChild(o),this.dom.undo=o;var s=document.createElement("button");s.type="button",s.className="jsoneditor-redo",s.title="Redo (Ctrl+Shift+Z)",s.onclick=function(){t._onRedo()},this.menu.appendChild(s),this.dom.redo=s,this.history.onChange=function(){o.disabled=!t.history.canUndo(),s.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var a=this;this.modeSwitcher=new l(this.menu,this.options.modes,this.options.mode,function(e){a.modeSwitcher.destroy(),a.setMode(e),a.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new r(this,this.menu))},d._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},d._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},d._onEvent=function(e){"keydown"==e.type&&this._onKeyDown(e),"focus"==e.type&&(this.focusTarget=e.target),"mousedown"==e.type&&this._startDragDistance(e),"mousemove"!=e.type&&"mouseup"!=e.type&&"click"!=e.type||this._updateDragDistance(e);var t=a.getNodeFromTarget(e.target);if(t&&t.selected){if("click"==e.type){if(e.target==t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"==e.type&&a.onDragStart(this.multiselection.nodes,e)}else"mousedown"==e.type&&(this.deselect(),t&&e.target==t.dom.drag?a.onDragStart(t,e):(!t||e.target!=t.dom.field&&e.target!=t.dom.value&&e.target!=t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},d._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},d._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,i=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+i*i),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},d._onMultiSelectStart=function(e){var t=a.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var i=this;this.mousemove||(this.mousemove=c.addEventListener(window,"mousemove",function(e){i._onMultiSelect(e)})),this.mouseup||(this.mouseup=c.addEventListener(window,"mouseup",function(e){i._onMultiSelectEnd(e)}))}},d._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=a.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var i=this.multiselection.start,n=this.multiselection.end||this.multiselection.start;i&&n&&(this.multiselection.nodes=this._findTopLevelNodes(i,n),this.select(this.multiselection.nodes))}},d._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(c.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(c.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},d.deselect=function(e){this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null)},d.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];e.forEach(function(e){e.setSelected(!0,e===t)})}},d._findTopLevelNodes=function(e,t){for(var i=e.getNodePath(),n=t.getNodePath(),o=0;o=0},n.prototype.canRedo=function(){return this.index=0;){var t=o[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],i="",n=t(),s=/[a-zA-Z_$\d]/;s.test(n);)i+=n,r++,n=t();-1===e.indexOf(i)?o.push('"'+i+'"'):o.push(i)}():(o.push(a),r++)}return o.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==n?n.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var o=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&o.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var i=e.className.split(" ");-1==i.indexOf(t)&&(i.push(t),e.className=i.join(" "))},t.removeClassName=function(e,t){var i=e.className.split(" "),n=i.indexOf(t);-1!=n&&(i.splice(n,1),e.className=i.join(" "))},t.stripFormatting=function(e){for(var i=e.childNodes,n=0,o=i.length;n=0;a--){var l=s[a];!0===l.specified&&r.removeAttribute(l.name)}t.stripFormatting(r)}},t.setEndOfContentEditable=function(e){var t,i;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),i=window.getSelection(),i.removeAllRanges(),i.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,i;window.getSelection&&document.createRange&&(i=document.createRange(),i.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(i))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){if(window.getSelection()){var i=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),i.setStart(e.container.firstChild,e.startOffset),i.setEnd(e.container.firstChild,e.endOffset),t.setSelection(i)}}},t.getInnerText=function(e,i){if(void 0==i&&(i={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return i.flush()+e.nodeValue;if(e.hasChildNodes()){for(var n=e.childNodes,o="",r=0,s=n.length;r5){var i=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(i)}e.message="should be equal to one of: "+t.join(", ")}}return"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),e},t.insideRect=function(e,t,i){var n=void 0!==i?i:0;return t.left-n>=e.left&&t.right+n<=e.right&&t.top-n>=e.top&&t.bottom+n<=e.bottom},t.debounce=function(e,t,i){var n;return function(){var o=this,r=arguments,s=function(){n=null,i||e.apply(o,r)},a=i&&!n;clearTimeout(n),n=setTimeout(s,t),a&&e.apply(o,r)}},t.textDiff=function(e,t){for(var i=t.length,n=0,o=e.length,r=t.length;t.charAt(n)===e.charAt(n)&&nn&&o>0;)r--,o--;return{start:n,end:r}}},function(e,t,i){var n=function(){var e={trace:function(){},yy:{},symbols_:{error:2,JSONString:3,STRING:4,JSONNumber:5,NUMBER:6,JSONNullLiteral:7,NULL:8,JSONBooleanLiteral:9,TRUE:10,FALSE:11,JSONText:12,JSONValue:13,EOF:14,JSONObject:15,JSONArray:16,"{":17,"}":18,JSONMemberList:19,JSONMember:20,":":21,",":22,"[":23,"]":24,JSONElementList:25,$accept:0,$end:1},terminals_:{2:"error",4:"STRING",6:"NUMBER",8:"NULL",10:"TRUE",11:"FALSE",14:"EOF",17:"{",18:"}",21:":",22:",",23:"[",24:"]"},productions_:[0,[3,1],[5,1],[7,1],[9,1],[9,1],[12,2],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[15,2],[15,3],[20,3],[19,1],[19,3],[16,2],[16,3],[25,1],[25,3]],performAction:function(e,t,i,n,o,r,s){var a=r.length-1;switch(o){case 1:this.$=e.replace(/\\(\\|")/g,"$1").replace(/\\n/g,"\n").replace(/\\r/g,"\r").replace(/\\t/g,"\t").replace(/\\v/g,"\v").replace(/\\f/g,"\f").replace(/\\b/g,"\b");break;case 2:this.$=Number(e);break;case 3:this.$=null;break;case 4:this.$=!0;break;case 5:this.$=!1;break;case 6:return this.$=r[a-1];case 13:this.$={};break;case 14:this.$=r[a-1];break;case 15:this.$=[r[a-2],r[a]];break;case 16:this.$={},this.$[r[a][0]]=r[a][1];break;case 17:this.$=r[a-2],r[a-2][r[a][0]]=r[a][1];break;case 18:this.$=[];break;case 19:this.$=r[a-1];break;case 20:this.$=[r[a]];break;case 21:this.$=r[a-2],r[a-2].push(r[a])}},table:[{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],12:1,13:2,15:7,16:8,17:[1,14],23:[1,15]},{1:[3]},{14:[1,16]},{14:[2,7],18:[2,7],22:[2,7],24:[2,7]},{14:[2,8],18:[2,8],22:[2,8],24:[2,8]},{14:[2,9],18:[2,9],22:[2,9],24:[2,9]},{14:[2,10],18:[2,10],22:[2,10],24:[2,10]},{14:[2,11],18:[2,11],22:[2,11],24:[2,11]},{14:[2,12],18:[2,12],22:[2,12],24:[2,12]},{14:[2,3],18:[2,3],22:[2,3],24:[2,3]},{14:[2,4],18:[2,4],22:[2,4],24:[2,4]},{14:[2,5],18:[2,5],22:[2,5],24:[2,5]},{14:[2,1],18:[2,1],21:[2,1],22:[2,1],24:[2,1]},{14:[2,2],18:[2,2],22:[2,2],24:[2,2]},{3:20,4:[1,12],18:[1,17],19:18,20:19},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:23,15:7,16:8,17:[1,14],23:[1,15],24:[1,21],25:22},{1:[2,6]},{14:[2,13],18:[2,13],22:[2,13],24:[2,13]},{18:[1,24],22:[1,25]},{18:[2,16],22:[2,16]},{21:[1,26]},{14:[2,18],18:[2,18],22:[2,18],24:[2,18]},{22:[1,28],24:[1,27]},{22:[2,20],24:[2,20]},{14:[2,14],18:[2,14],22:[2,14],24:[2,14]},{3:20,4:[1,12],20:29},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:30,15:7,16:8,17:[1,14],23:[1,15]},{14:[2,19],18:[2,19],22:[2,19],24:[2,19]},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:31,15:7,16:8,17:[1,14],23:[1,15]},{18:[2,17],22:[2,17]},{18:[2,15],22:[2,15]},{22:[2,21],24:[2,21]}],defaultActions:{16:[2,6]},parseError:function(e,t){throw new Error(e)},parse:function(e){function t(){var e;return e=i.lexer.lex()||1,"number"!=typeof e&&(e=i.symbols_[e]||e),e}var i=this,n=[0],o=[null],r=[],s=this.table,a="",l=0,c=0,d=0,h=2;this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,void 0===this.lexer.yylloc&&(this.lexer.yylloc={});var u=this.lexer.yylloc;r.push(u),"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var p,f,m,g,v,y,b,w,x,_={};;){if(m=n[n.length-1],this.defaultActions[m]?g=this.defaultActions[m]:(null==p&&(p=t()),g=s[m]&&s[m][p]),void 0===g||!g.length||!g[0]){if(!d){x=[];for(y in s[m])this.terminals_[y]&&y>2&&x.push("'"+this.terminals_[y]+"'");var E="";E=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+x.join(", ")+", got '"+this.terminals_[p]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==p?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(E,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:u,expected:x})}if(3==d){if(1==p)throw new Error(E||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,p=t()}for(;;){if(h.toString()in s[m])break;if(0==m)throw new Error(E||"Parsing halted.");!function(e){n.length=n.length-2*e,o.length=o.length-e,r.length=r.length-e}(1),m=n[n.length-1]}f=p,p=h,m=n[n.length-1],g=s[m]&&s[m][h],d=3}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+p);switch(g[0]){case 1:n.push(p),o.push(this.lexer.yytext),r.push(this.lexer.yylloc),n.push(g[1]),p=null,f?(p=f,f=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,d>0&&d--);break;case 2:if(b=this.productions_[g[1]][1],_.$=o[o.length-b],_._$={first_line:r[r.length-(b||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(b||1)].first_column,last_column:r[r.length-1].last_column},void 0!==(v=this.performAction.call(_,a,c,l,this.yy,g[1],o,r)))return v;b&&(n=n.slice(0,-1*b*2),o=o.slice(0,-1*b),r=r.slice(0,-1*b)),n.push(this.productions_[g[1]][0]),o.push(_.$),r.push(_._$),w=s[n[n.length-2]][n[n.length-1]],n.push(w);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,i,n,o;this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),s=0;st[0].length)||(t=i,n=s,this.options.flex));s++);return t?(o=t[0].match(/\n.*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,r[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,i,n){switch(i){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=n,t.parse=n.parse.bind(n)},function(e,t){"use strict";function i(e,t){var i=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var n=document.createElement("table");this.dom.table=n,n.className="jsoneditor-search",t.appendChild(n);var o=document.createElement("tbody");this.dom.tbody=o,n.appendChild(o);var r=document.createElement("tr");o.appendChild(r);var s=document.createElement("td");r.appendChild(s);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",s.appendChild(a),s=document.createElement("td"),r.appendChild(s);var l=document.createElement("div");this.dom.input=l,l.className="jsoneditor-frame",l.title="Search fields and values",s.appendChild(l);var c=document.createElement("table");l.appendChild(c);var d=document.createElement("tbody");c.appendChild(d),r=document.createElement("tr"),d.appendChild(r);var h=document.createElement("button");h.type="button",h.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(h),r.appendChild(s);var u=document.createElement("input");this.dom.search=u,u.oninput=function(e){i._onDelayedSearch(e)},u.onchange=function(e){i._onSearch()},u.onkeydown=function(e){i._onKeyDown(e)},u.onkeyup=function(e){i._onKeyUp(e)},h.onclick=function(e){u.select()},s=document.createElement("td"),s.appendChild(u),r.appendChild(s);var p=document.createElement("button");p.type="button",p.title="Next result (Enter)",p.className="jsoneditor-next",p.onclick=function(){i.next()},s=document.createElement("td"),s.appendChild(p),r.appendChild(s);var f=document.createElement("button");f.type="button",f.title="Previous result (Shift+Enter)",f.className="jsoneditor-previous",f.onclick=function(){i.previous()},s=document.createElement("td"),s.appendChild(f),r.appendChild(s)}i.prototype.next=function(e){if(void 0!=this.results){var t=void 0!=this.resultIndex?this.resultIndex+1:0;t>this.results.length-1&&(t=0),this._setActiveResult(t,e)}},i.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,i=void 0!=this.resultIndex?this.resultIndex-1:t;i<0&&(i=t),this._setActiveResult(i,e)}},i.prototype._setActiveResult=function(e,t){if(this.activeResult){var i=this.activeResult.node;"field"==this.activeResult.elem?delete i.searchFieldActive:delete i.searchValueActive,i.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var n=this.results[this.resultIndex].node,o=this.results[this.resultIndex].elem;"field"==o?n.searchFieldActive=!0:n.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],n.updateDom(),n.scrollTo(function(){t&&n.focus(o)})},i.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},i.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},i.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,i=t.length>0?t:void 0;if(i!=this.lastText||e)if(this.lastText=i,this.results=this.editor.search(i),this._setActiveResult(void 0),void 0!=i){var n=this.results.length;switch(n){case 0:this.dom.results.innerHTML="no results";break;case 1:this.dom.results.innerHTML="1 result";break;default:this.dom.results.innerHTML=n+" results"}}else this.dom.results.innerHTML=""},i.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},i.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},i.prototype.clear=function(){this.dom.search.value="",this._onSearch()},i.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=i},function(e,t,i){"use strict";function n(e,t){function i(e,t,o){o.forEach(function(o){if("separator"==o.type){var r=document.createElement("div");r.className="jsoneditor-separator",a=document.createElement("li"),a.appendChild(r),e.appendChild(a)}else{var s={},a=document.createElement("li");e.appendChild(a);var l=document.createElement("button");if(l.type="button",l.className=o.className,s.button=l,o.title&&(l.title=o.title),o.click&&(l.onclick=function(e){e.preventDefault(),n.hide(),o.click()}),a.appendChild(l),o.submenu){var c=document.createElement("div");c.className="jsoneditor-icon",l.appendChild(c),l.appendChild(document.createTextNode(o.text));var d;if(o.click){l.className+=" jsoneditor-default";var h=document.createElement("button");h.type="button",s.buttonExpand=h,h.className="jsoneditor-expand",h.innerHTML='
',a.appendChild(h),o.submenuTitle&&(h.title=o.submenuTitle),d=h}else{var u=document.createElement("div");u.className="jsoneditor-expand",l.appendChild(u),d=l}d.onclick=function(e){e.preventDefault(),n._onExpandItem(s),d.focus()};var p=[];s.subItems=p;var f=document.createElement("ul");s.ul=f,f.className="jsoneditor-menu",f.style.height="0",a.appendChild(f),i(f,p,o.submenu)}else l.innerHTML='
'+o.text;t.push(s)}})}this.dom={};var n=this,o=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var r=document.createElement("div");r.className="jsoneditor-contextmenu-root",o.root=r;var s=document.createElement("div");s.className="jsoneditor-contextmenu",o.menu=s,r.appendChild(s);var a=document.createElement("ul");a.className="jsoneditor-menu",s.appendChild(a),o.list=a,o.items=[];var l=document.createElement("button");l.type="button",o.focusButton=l;var c=document.createElement("li");c.style.overflow="hidden",c.style.height="0",c.appendChild(l),a.appendChild(c),i(a,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var i=24*(e.length+(t.submenu?t.submenu.length:0));n.maxHeight=Math.max(n.maxHeight,i)})}var o=i(4);n.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(i){e.push(i.button),i.buttonExpand&&e.push(i.buttonExpand),i.subItems&&i==t.expandedItem&&i.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},n.visibleMenu=void 0,n.prototype.show=function(e,t){this.hide();var i=!0;if(t){var r=e.getBoundingClientRect(),s=t.getBoundingClientRect();r.bottom+this.maxHeights.top&&(i=!1)}if(i){var a=e.offsetHeight;this.dom.menu.style.left="0px",this.dom.menu.style.top=a+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left="0px",this.dom.menu.style.top="",this.dom.menu.style.bottom="0px";var l=e.parentNode;l.insertBefore(this.dom.root,l.firstChild);var c=this,d=this.dom.list;this.eventListeners.mousedown=o.addEventListener(window,"mousedown",function(e){var t=e.target;t==d||c._isChildOf(t,d)||(c.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=o.addEventListener(window,"keydown",function(e){c._onKeyDown(e)}),this.selection=o.getSelection(),this.anchor=e,setTimeout(function(){c.dom.focusButton.focus()},0),n.visibleMenu&&n.visibleMenu.hide(),n.visibleMenu=this},n.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&o.removeEventListener(window,e,t),delete this.eventListeners[e]}n.visibleMenu==this&&(n.visibleMenu=void 0)},n.prototype._onExpandItem=function(e){var t=this,i=e==this.expandedItem,n=this.expandedItem;if(n&&(n.ul.style.height="0",n.ul.style.padding="",setTimeout(function(){t.expandedItem!=n&&(n.ul.style.display="",o.removeClassName(n.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!i){var r=e.ul;r.style.display="block";r.clientHeight;setTimeout(function(){if(t.expandedItem==e){for(var i=0,n=0;n0;){var n=t.shift();if("number"==typeof n){if("array"!==i.type)throw new Error("Cannot get child node at index "+n+": node is no array");i=i.childs[n]}else{if("object"!==i.type)throw new Error("Cannot get child node "+n+": node is no object");i=i.childs.filter(function(e){return e.field===n})[0]}}return i},n.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},n.prototype.setError=function(e,t){this.getDom(),this.error=e;var i=this.dom.tdError;if(e){i||(i=document.createElement("td"),this.dom.tdError=i,this.dom.tdValue.parentNode.appendChild(i));var n=document.createElement("div");n.className="jsoneditor-popover jsoneditor-right",n.appendChild(document.createTextNode(e.message));var o=document.createElement("button");for(o.type="button",o.className="jsoneditor-schema-error",o.appendChild(n),o.onmouseover=o.onfocus=function(){for(var e=["right","above","below","left"],t=0;t0&&(e=this.childs.filter(function(e){return-1!==i.indexOf(e.field)}).map(function(e){return{node:e,error:{message:'duplicate key "'+e.field+'"'}}}))}if(this.childs)for(var n=0;n0&&(e=e.concat(r))}return e},n.prototype.clearDom=function(){this.dom={}},n.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var i=document.createElement("button");i.type="button",e.drag=i,i.className="jsoneditor-dragarea",i.title="Drag to move this field (Alt+Shift+Arrows)",t.appendChild(i)}e.tr.appendChild(t);var n=document.createElement("td"),o=document.createElement("button");o.type="button",e.menu=o,o.className="jsoneditor-contextmenu",o.title="Click to open the actions menu (Ctrl+M)",n.appendChild(e.menu),e.tr.appendChild(n)}var r=document.createElement("td");return e.tr.appendChild(r),e.tree=this._createDomTree(),r.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},n.onDragStart=function(e,t){if(!Array.isArray(e))return n.onDragStart([e],t);if(0!==e.length){var i=e[0],o=e[e.length-1],r=n.getNodeFromTarget(t.target),s=o._nextSibling(),l=i.editor,c=a.getAbsoluteTop(r.dom.tr)-a.getAbsoluteTop(i.dom.tr);l.mousemove||(l.mousemove=a.addEventListener(window,"mousemove",function(t){n.onDrag(e,t)})),l.mouseup||(l.mouseup=a.addEventListener(window,"mouseup",function(t){n.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getSelection(),oldBeforeNode:s,mouseX:t.pageX,offsetY:c,level:i.getLevel()},document.body.style.cursor="move",t.preventDefault()}},n.onDrag=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i,o,r,s,c,d,h,u,p,f,m,g,v,y,b=e[0].editor,w=t.pageY-b.drag.offsetY,x=t.pageX,_=!1,E=e[0];if(i=E.dom.tr,p=a.getAbsoluteTop(i),g=i.offsetHeight,wf+g&&(h=void 0)),h&&(e.forEach(function(e){h.parent.moveBefore(e,h)}),_=!0)}else{var C=e[e.length-1];if(c=C.expanded&&C.append?C.append.getDom():C.dom.tr,s=c?c.nextSibling:void 0){m=a.getAbsoluteTop(s),r=s;do{u=n.getNodeFromTarget(r),r&&(v=r.nextSibling?a.getAbsoluteTop(r.nextSibling):0,y=r?v-m:0,u.parent.childs.length==e.length&&u.parent.childs[e.length-1]==C&&(p+=27)),r=r.nextSibling}while(r&&w>p+y);if(u&&u.parent){var j=x-b.drag.mouseX,S=Math.round(j/24/2),N=b.drag.level+S,k=u.getLevel();for(o=u.dom.tr.previousSibling;k0)return i[0].enum}return null},n._findSchema=function(e,t){for(var i=e,n=0;n0?this.editor.multiselection.nodes:[this],w=b[0],x=b[b.length-1];if(13==u){if(p==this.dom.value)this.editable.value&&!e.ctrlKey||a.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(p==this.dom.expand){var _=this._hasChilds();if(_){var E=e.ctrlKey;this._onExpand(E),p.focus(),v=!0}}}else if(68==u)f&&y&&(n.onDuplicate(b),v=!0);else if(69==u)f&&(this._onExpand(m),p.focus(),v=!0);else if(77==u&&y)f&&(this.showContextMenu(p),v=!0);else if(46==u&&y)f&&(n.onRemove(b),v=!0);else if(45==u&&y)f&&!m?(this._onInsertBefore(),v=!0):f&&m&&(this._onInsertAfter(),v=!0);else if(35==u){if(g){var C=this._lastNode();C&&C.focus(n.focusElement||this._getElementName(p)),v=!0}}else if(36==u){if(g){var j=this._firstNode();j&&j.focus(n.focusElement||this._getElementName(p)),v=!0}}else if(37==u){if(g&&!m){var S=this._previousElement(p);S&&this.focus(this._getElementName(S)),v=!0}else if(g&&m&&y){if(x.expanded){var N=x.getAppend();o=N?N.nextSibling:void 0}else{var k=x.getDom();o=k.nextSibling}o&&(i=n.getNodeFromTarget(o),r=o.nextSibling,T=n.getNodeFromTarget(r),i&&i instanceof l&&1!=x.parent.childs.length&&T&&T.parent&&(s=this.editor.getSelection(),c=x._nextSibling(),b.forEach(function(e){T.parent.moveBefore(e,T)}),this.focus(n.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:c,newBeforeNode:T,oldSelection:s,newSelection:this.editor.getSelection()})))}}else if(38==u)g&&!m?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(n.focusElement||this._getElementName(p))),v=!0):!g&&f&&m&&y?(t=this._previousNode(),t&&(h=this.editor.multiselection,h.start=h.start||this,h.end=t,d=this.editor._findTopLevelNodes(h.start,h.end),this.editor.select(d),t.focus("field")),v=!0):g&&m&&y&&(t=w._previousNode(),t&&t.parent&&(s=this.editor.getSelection(),c=x._nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:c,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()})),v=!0);else if(39==u){if(g&&!m){var A=this._nextElement(p);A&&this.focus(this._getElementName(A)),v=!0}else if(g&&m&&y){k=w.getDom();var O=k.previousSibling;O&&(t=n.getNodeFromTarget(O))&&t.parent&&t instanceof l&&!t.isVisible()&&(s=this.editor.getSelection(),c=x._nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:c,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()}))}}else if(40==u)if(g&&!m)i=this._nextNode(),i&&(this.editor.deselect(!0),i.focus(n.focusElement||this._getElementName(p))),v=!0;else if(!g&&f&&m&&y)i=this._nextNode(),i&&(h=this.editor.multiselection,h.start=h.start||this,h.end=i,d=this.editor._findTopLevelNodes(h.start,h.end),this.editor.select(d),i.focus("field")),v=!0;else if(g&&m&&y){i=x.expanded?x.append?x.append._nextNode():void 0:x._nextNode();var T=i&&(i._nextNode()||i.parent.append);T&&T.parent&&(s=this.editor.getSelection(),c=x._nextSibling(),b.forEach(function(e){T.parent.moveBefore(e,T)}),this.focus(n.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:c,newBeforeNode:T,oldSelection:s,newSelection:this.editor.getSelection()})),v=!0}v&&(e.preventDefault(),e.stopPropagation())},n.prototype._onExpand=function(e){if(e){var t=this.dom.tr.parentNode,i=t.parentNode,n=i.scrollTop;i.removeChild(t)}this.expanded?this.collapse(e):this.expand(e),e&&(i.appendChild(t),i.scrollTop=n)},n.onRemove=function(e){if(!Array.isArray(e))return n.onRemove([e]);if(e&&e.length>0){var t=e[0],i=t.parent,o=t.editor,r=t.getIndex();o.highlighter.unhighlight();var s=o.getSelection();n.blurNodes(e);var a=o.getSelection();e.forEach(function(e){e.parent._remove(e)}),o._onAction("removeNodes",{nodes:e.slice(0),parent:i,index:r,oldSelection:s,newSelection:a})}},n.onDuplicate=function(e){if(!Array.isArray(e))return n.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],i=t.parent,o=t.editor;o.deselect(o.multiselection.nodes);var r=o.getSelection(),s=t,a=e.map(function(e){var t=e.clone();return i.insertAfter(t,s),s=t,t});1===e.length?a[0].focus():o.select(a);var l=o.getSelection();o._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:i,oldSelection:r,newSelection:l})}},n.prototype._onInsertBefore=function(e,t,i){var o=this.editor.getSelection(),r=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});r.expand(!0),this.parent.insertBefore(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertBeforeNodes",{nodes:[r],beforeNode:this,parent:this.parent,oldSelection:o,newSelection:s})},n.prototype._onInsertAfter=function(e,t,i){var o=this.editor.getSelection(),r=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});r.expand(!0),this.parent.insertAfter(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertAfterNodes",{nodes:[r],afterNode:this,parent:this.parent,oldSelection:o,newSelection:s})},n.prototype._onAppend=function(e,t,i){var o=this.editor.getSelection(),r=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});r.expand(!0),this.parent.appendChild(r),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getSelection();this.editor._onAction("appendNodes",{nodes:[r],parent:this.parent,oldSelection:o,newSelection:s})},n.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var i=this.editor.getSelection();this.changeType(e);var n=this.editor.getSelection();this.editor._onAction("changeType",{node:this,oldType:t,newType:e,oldSelection:i,newSelection:n})}},n.prototype.sort=function(e){if(this._hasChilds()){var t="desc"==e?-1:1,i="array"==this.type?"value":"field";this.hideChilds();var n=this.childs,r=this.sortOrder;this.childs=this.childs.concat(),this.childs.sort(function(e,n){return t*o(e[i],n[i])}),this.sortOrder=1==t?"asc":"desc",this.editor._onAction("sort",{node:this,oldChilds:n,oldSort:r,newChilds:this.childs,newSort:this.sortOrder}),this.showChilds()}},n.prototype.getAppend=function(){return this.append||(this.append=new l(this.editor),this.append.setParent(this)),this.append.getDom()},n.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},n.blurNodes=function(e){if(!Array.isArray(e))return void n.blurNodes([e]);var t=e[0],i=t.parent,o=t.getIndex();i.childs[o+e.length]?i.childs[o+e.length].focus():i.childs[o-1]?i.childs[o-1].focus():i.focus()},n.prototype._nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},n.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.previousSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof l&&!e.isVisible())}return e},n.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.nextSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof l&&!e.isVisible())}return e},n.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.firstChild;e=n.getNodeFromTarget(i)}return e},n.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.lastChild;for(e=n.getNodeFromTarget(i);i&&e instanceof l&&!e.isVisible();)i=i.previousSibling,e=n.getNodeFromTarget(i)}return e},n.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},n.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},n.prototype._getElementName=function(e){var t=this.dom;for(var i in t)if(t.hasOwnProperty(i)&&t[i]==e)return i;return null},n.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},n.TYPE_TITLES={auto:'Field type "auto". The field type is automatically determined from the value and can be a string, number, boolean, or null.',object:'Field type "object". An object contains an unordered set of key/value pairs.',array:'Field type "array". An array contains an ordered collection of values.',string:'Field type "string". Field type is not determined from the value, but always returned as string.'},n.prototype.addTemplates=function(e,t){var i=this,n=i.editor.options.templates;if(null!=n){n.length&&e.push({type:"separator"});var o=function(e,t){i._onAppend(e,t)},r=function(e,t){i._onInsertBefore(e,t)};n.forEach(function(i){e.push({text:i.text,className:i.className||"jsoneditor-type-object",title:i.title,click:t?o.bind(this,i.field,i.value):r.bind(this,i.field,i.value)})})}},n.prototype.showContextMenu=function(e,t){var i=this,o=n.TYPE_TITLES,s=[];if(this.editable.value&&s.push({text:"Type",title:"Change the type of this field",className:"jsoneditor-type-"+this.type,submenu:[{text:"Auto",className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:o.auto,click:function(){i._onChangeType("auto")}},{text:"Array",className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:o.array,click:function(){i._onChangeType("array")}},{text:"Object",className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:o.object,click:function(){i._onChangeType("object")}},{text:"String",className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:o.string,click:function(){i._onChangeType("string")}}]}),this._hasChilds()){var a="asc"==this.sortOrder?"desc":"asc";s.push({text:"Sort",title:"Sort the childs of this "+this.type,className:"jsoneditor-sort-"+a,click:function(){i.sort(a)},submenu:[{text:"Ascending",className:"jsoneditor-sort-asc",title:"Sort the childs of this "+this.type+" in ascending order",click:function(){i.sort("asc")}},{text:"Descending",className:"jsoneditor-sort-desc",title:"Sort the childs of this "+this.type+" in descending order",click:function(){i.sort("desc")}}]})}if(this.parent&&this.parent._hasChilds()){s.length&&s.push({type:"separator"});var l=i.parent.childs;if(i==l[l.length-1]){var c=[{text:"Auto",className:"jsoneditor-type-auto",title:o.auto,click:function(){i._onAppend("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:o.array,click:function(){i._onAppend("",[])}},{text:"Object",className:"jsoneditor-type-object",title:o.object,click:function(){i._onAppend("",{})}},{text:"String",className:"jsoneditor-type-string",title:o.string,click:function(){i._onAppend("","","string")}}];i.addTemplates(c,!0),s.push({text:"Append",title:"Append a new field with type 'auto' after this field (Ctrl+Shift+Ins)",submenuTitle:"Select the type of the field to be appended",className:"jsoneditor-append",click:function(){i._onAppend("","","auto")},submenu:c})}var d=[{text:"Auto",className:"jsoneditor-type-auto",title:o.auto,click:function(){i._onInsertBefore("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:o.array,click:function(){i._onInsertBefore("",[])}},{text:"Object",className:"jsoneditor-type-object",title:o.object,click:function(){i._onInsertBefore("",{})}},{text:"String",className:"jsoneditor-type-string",title:o.string,click:function(){i._onInsertBefore("","","string")}}];i.addTemplates(d,!1),s.push({text:"Insert",title:"Insert a new field with type 'auto' before this field (Ctrl+Ins)",submenuTitle:"Select the type of the field to be inserted",className:"jsoneditor-insert",click:function(){i._onInsertBefore("","","auto")},submenu:d}),this.editable.field&&(s.push({text:"Duplicate",title:"Duplicate this field (Ctrl+D)",className:"jsoneditor-duplicate",click:function(){n.onDuplicate(i)}}),s.push({text:"Remove",title:"Remove this field (Ctrl+Del)",className:"jsoneditor-remove",click:function(){n.onRemove(i)}}))}new r(s,{close:t}).show(e,this.editor.content)},n.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},n.prototype._stringCast=function(e){var t=e.toLowerCase(),i=Number(e),n=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(i)||isNaN(n)?e:i)},n.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t),n=i.substring(1,i.length-1);return!0===this.editor.options.escapeUnicode&&(n=a.escapeUnicodeChars(n)),n},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return a.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},n.prototype._escapeJSON=function(e){for(var t="",i=0;im)return 1}for(var g=0,v=Math.max(u.length,p.length);go)return 1}return 0}},function(e,t,i){"use strict";function n(e){function t(e){this.editor=e,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;this._updateEditability();var t=document.createElement("tr");if(t.node=this,e.tr=t,"tree"===this.editor.options.mode){e.tdDrag=document.createElement("td");var i=document.createElement("td");e.tdMenu=i;var n=document.createElement("button");n.type="button",n.className="jsoneditor-contextmenu",n.title="Click to open the actions menu (Ctrl+M)",e.menu=n,i.appendChild(e.menu)}var o=document.createElement("td"),r=document.createElement("div");return r.innerHTML="(empty)",r.className="jsoneditor-readonly",o.appendChild(r),e.td=o,e.text=r,this.updateDom(),t},t.prototype.updateDom=function(){var e=this.dom,t=e.td;t&&(t.style.paddingLeft=24*this.getLevel()+26+"px");var i=e.text;i&&(i.innerHTML="(empty "+this.parent.type+")");var n=e.tr;this.isVisible()?e.tr.firstChild||(e.tdDrag&&n.appendChild(e.tdDrag),e.tdMenu&&n.appendChild(e.tdMenu),n.appendChild(t)):e.tr.firstChild&&(e.tdDrag&&n.removeChild(e.tdDrag),e.tdMenu&&n.removeChild(e.tdMenu),n.removeChild(t))},t.prototype.isVisible=function(){return 0==this.parent.childs.length},t.prototype.showContextMenu=function(t,i){var n=this,o=e.TYPE_TITLES,s=[{text:"Auto",className:"jsoneditor-type-auto",title:o.auto,click:function(){n._onAppend("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:o.array,click:function(){n._onAppend("",[])}},{text:"Object",className:"jsoneditor-type-object",title:o.object,click:function(){n._onAppend("",{})}},{text:"String",className:"jsoneditor-type-string",title:o.string,click:function(){n._onAppend("","","string")}}];n.addTemplates(s,!0),new r([{text:"Append!",title:"Append a new field with type 'auto' (Ctrl+Shift+Ins)",submenuTitle:"Select the type of the field to be appended",className:"jsoneditor-insert",click:function(){n._onAppend("","","auto")},submenu:s}],{close:i}).show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,i=e.target||e.srcElement,n=this.dom;if(i==n.menu&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&i==n.menu){var r=this.editor.highlighter;r.highlight(this.parent),r.lock(),o.addClassName(n.menu,"jsoneditor-selected"),this.showContextMenu(n.menu,function(){o.removeClassName(n.menu,"jsoneditor-selected"),r.unlock(),r.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var o=i(4),r=i(7);e.exports=n},function(e,t,i){"use strict";function n(e,t,i,n){for(var r={code:{text:"Code",title:"Switch to code highlighter",click:function(){n("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){n("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){n("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){n("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){n("view")}}},s=[],a=0;a0){if(i.length>3){i=i.slice(0,3);var n=this.validateSchema.errors.length-3;i.push("("+n+" more errors...)")}var o=document.createElement("div");o.innerHTML=''+i.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=o,this.frame.appendChild(o);var s=o.clientHeight;this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},e.exports=[{mode:"text",mixin:s,data:"text",load:s.format},{mode:"code",mixin:s,data:"text",load:s.format}]},function(e,t,i){var n;if(window.ace)n=window.ace;else try{n=i(!function(){var e=new Error('Cannot find module "brace"');throw e.code="MODULE_NOT_FOUND",e}()),i(14),i(16)}catch(e){}e.exports=n},function(e,t,i){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,i){"use strict";var n=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:'"',next:"start"},{token:"string",regex:"",next:"start"}]}};n.inherits(r,o),t.JsonHighlightRules=r}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../range").Range,o=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var i=e.getLine(t),o=i.match(/^(\s*\})/);if(!o)return 0;var r=o[1].length,s=e.findMatchingBracket({row:t,column:r});if(!s||s.row==t)return 0;var a=this.$getIndent(e.getLine(s.row));e.replace(new n(t,0,t,r-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(o.prototype),t.MatchingBraceOutdent=o}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,i){"use strict";var n=e("../../lib/oop"),o=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};n.inherits(s,r),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);if(this.singleLineBlockCommentRe.test(n)&&!this.startRegionRe.test(n)&&!this.tripleStarBlockCommentRe.test(n))return"";var o=this._getFoldWidgetBase(e,t,i);return!o&&this.startRegionRe.test(n)?"start":o},this.getFoldWidgetRange=function(e,t,i,n){var o=e.getLine(i);if(this.startRegionRe.test(o))return this.getCommentRegionBlock(e,o,i);var r=o.match(this.foldingStartMarker);if(r){var s=r.index;if(r[1])return this.openingBracketBlock(e,r[1],i,s);var a=e.getCommentFoldRange(i,s+r[0].length,1);return a&&!a.isMultiLine()&&(n?a=this.getSectionRange(e,i):"all"!=t&&(a=null)),a}if("markbegin"!==t){var r=o.match(this.foldingStopMarker);if(r){var s=r.index+r[0].length;return r[1]?this.closingBracketBlock(e,r[1],i,s):e.getCommentFoldRange(i,s,-1)}}},this.getSectionRange=function(e,t){var i=e.getLine(t),n=i.search(/\S/),r=t,s=i.length;t+=1;for(var a=t,l=e.getLength();++tc)break;var d=this.getFoldWidgetRange(e,"all",t);if(d){if(d.start.row<=r)break;if(d.isMultiLine())t=d.end.row;else if(n==c)break}a=t}}return new o(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,i){for(var n=t.search(/\s*$/),r=e.getLength(),s=i,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++is)return new o(s,n,d,t.length)}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){"use strict";var o=e("../lib/oop"),r=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,d=e("../worker/worker_client").WorkerClient,h=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};o.inherits(h,r),function(){this.getNextLineIndent=function(e,t,i){var n=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(n+=i)}return n},this.checkOutdent=function(e,t,i){return this.$outdent.checkOutdent(t,i)},this.autoOutdent=function(e,t,i){this.$outdent.autoOutdent(t,i)},this.createWorker=function(e){var t=new d(["ace"],i(15),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(h.prototype),t.Mode=h})},function(e,t){e.exports.id="ace/mode/json_worker", -e.exports.src='"no use strict";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},function(e,t){ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,i){"use strict";var n=e("../lib/dom"),o=e("../lib/lang"),r=e("../lib/event"),s=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys");n.importCssString("\t.ace_search {\tbackground-color: #ddd;\tborder: 1px solid #cbcbcb;\tborder-top: 0 none;\tmax-width: 325px;\toverflow: hidden;\tmargin: 0;\tpadding: 4px;\tpadding-right: 6px;\tpadding-bottom: 0;\tposition: absolute;\ttop: 0px;\tz-index: 99;\twhite-space: normal;\t}\t.ace_search.left {\tborder-left: 0 none;\tborder-radius: 0px 0px 5px 0px;\tleft: 0;\t}\t.ace_search.right {\tborder-radius: 0px 0px 0px 5px;\tborder-right: 0 none;\tright: 0;\t}\t.ace_search_form, .ace_replace_form {\tborder-radius: 3px;\tborder: 1px solid #cbcbcb;\tfloat: left;\tmargin-bottom: 4px;\toverflow: hidden;\t}\t.ace_search_form.ace_nomatch {\toutline: 1px solid red;\t}\t.ace_search_field {\tbackground-color: white;\tcolor: black;\tborder-right: 1px solid #cbcbcb;\tborder: 0 none;\t-webkit-box-sizing: border-box;\t-moz-box-sizing: border-box;\tbox-sizing: border-box;\tfloat: left;\theight: 22px;\toutline: 0;\tpadding: 0 7px;\twidth: 214px;\tmargin: 0;\t}\t.ace_searchbtn,\t.ace_replacebtn {\tbackground: #fff;\tborder: 0 none;\tborder-left: 1px solid #dcdcdc;\tcursor: pointer;\tfloat: left;\theight: 22px;\tmargin: 0;\tposition: relative;\t}\t.ace_searchbtn:last-child,\t.ace_replacebtn:last-child {\tborder-top-right-radius: 3px;\tborder-bottom-right-radius: 3px;\t}\t.ace_searchbtn:disabled {\tbackground: none;\tcursor: default;\t}\t.ace_searchbtn {\tbackground-position: 50% 50%;\tbackground-repeat: no-repeat;\twidth: 27px;\t}\t.ace_searchbtn.prev {\tbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=); \t}\t.ace_searchbtn.next {\tbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=); \t}\t.ace_searchbtn_close {\tbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\tborder-radius: 50%;\tborder: 0 none;\tcolor: #656565;\tcursor: pointer;\tfloat: right;\tfont: 16px/16px Arial;\theight: 14px;\tmargin: 5px 1px 9px 5px;\tpadding: 0;\ttext-align: center;\twidth: 14px;\t}\t.ace_searchbtn_close:hover {\tbackground-color: #656565;\tbackground-position: 50% 100%;\tcolor: white;\t}\t.ace_replacebtn.prev {\twidth: 54px\t}\t.ace_replacebtn.next {\twidth: 27px\t}\t.ace_button {\tmargin-left: 2px;\tcursor: pointer;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\toverflow: hidden;\topacity: 0.7;\tborder: 1px solid rgba(100,100,100,0.23);\tpadding: 1px;\t-moz-box-sizing: border-box;\tbox-sizing: border-box;\tcolor: black;\t}\t.ace_button:hover {\tbackground-color: #eee;\topacity:1;\t}\t.ace_button:active {\tbackground-color: #ddd;\t}\t.ace_button.checked {\tborder-color: #3399ff;\topacity:1;\t}\t.ace_search_options{\tmargin-bottom: 3px;\ttext-align: right;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\t}","ace_searchbox");var l=''.replace(/>\s+/g,">"),c=function(e,t,i){var o=n.createElement("div");o.innerHTML=l,this.element=o.firstChild,this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.container.appendChild(this.element),this.editor=e},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOptions=e.querySelector(".ace_search_options"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;r.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),r.stopPropagation(e)}),r.addListener(e,"click",function(e){var i=e.target||e.srcElement,n=i.getAttribute("action");n&&t[n]?t[n]():t.$searchBarKb.commands[n]&&t.$searchBarKb.commands[n].exec(t),r.stopPropagation(e)}),r.addCommandKeyListener(e,function(e,i,n){var o=a.keyCodeToString(n),s=t.$searchBarKb.findKeyCommand(i,o);s&&s.exec&&(s.exec(t),r.stopEvent(e))}),this.$onChange=o.delayedCall(function(){t.find(!1,!1)}),r.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),r.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),r.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new s([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new s,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.replaceBox.style.display="",e.replaceInput.focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}}]),this.$syncOptions=function(){n.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),n.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),n.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked),this.find(!1,!1)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,i){var o=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:i}),r=!o&&this.searchInput.value;n.setCssClass(this.searchBox,"ace_nomatch",r),this.editor._emit("findSearchBox",{match:!r}),this.highlight()},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;n.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.element.style.display="",this.replaceBox.style.display=t?"":"none",this.isReplace=t,e&&(this.searchInput.value=e),this.find(!1,!1,!0),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(c.prototype),t.SearchBox=c,t.Search=function(e,t){(e.searchBox||new c(e)).show(e.session.getTextRange(),t)}}),function(){ace.acequire(["ace/ext/searchbox"],function(){})}()},function(e,t){ace.define("ace/theme/jsoneditor",["require","exports","module","ace/lib/dom"],function(e,t,i){t.isDark=!1,t.cssClass="ace-jsoneditor",t.cssText='.ace-jsoneditor .ace_gutter {\tbackground: #ebebeb;\tcolor: #333\t}\t\t.ace-jsoneditor.ace_editor {\tfont-family: droid sans mono, consolas, monospace, courier new, courier, sans-serif;\tline-height: 1.3;\tbackground-color: #fff;\t}\t.ace-jsoneditor .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8\t}\t.ace-jsoneditor .ace_scroller {\tbackground-color: #FFFFFF\t}\t.ace-jsoneditor .ace_text-layer {\tcolor: gray\t}\t.ace-jsoneditor .ace_variable {\tcolor: #1a1a1a\t}\t.ace-jsoneditor .ace_cursor {\tborder-left: 2px solid #000000\t}\t.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {\tborder-left: 0px;\tborder-bottom: 1px solid #000000\t}\t.ace-jsoneditor .ace_marker-layer .ace_selection {\tbackground: lightgray\t}\t.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px #FFFFFF;\tborder-radius: 2px\t}\t.ace-jsoneditor .ace_marker-layer .ace_step {\tbackground: rgb(255, 255, 0)\t}\t.ace-jsoneditor .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid #BFBFBF\t}\t.ace-jsoneditor .ace_marker-layer .ace_active-line {\tbackground: #FFFBD1\t}\t.ace-jsoneditor .ace_gutter-active-line {\tbackground-color : #dcdcdc\t}\t.ace-jsoneditor .ace_marker-layer .ace_selected-word {\tborder: 1px solid lightgray\t}\t.ace-jsoneditor .ace_invisible {\tcolor: #BFBFBF\t}\t.ace-jsoneditor .ace_keyword,\t.ace-jsoneditor .ace_meta,\t.ace-jsoneditor .ace_support.ace_constant.ace_property-value {\tcolor: #AF956F\t}\t.ace-jsoneditor .ace_keyword.ace_operator {\tcolor: #484848\t}\t.ace-jsoneditor .ace_keyword.ace_other.ace_unit {\tcolor: #96DC5F\t}\t.ace-jsoneditor .ace_constant.ace_language {\tcolor: darkorange\t}\t.ace-jsoneditor .ace_constant.ace_numeric {\tcolor: red\t}\t.ace-jsoneditor .ace_constant.ace_character.ace_entity {\tcolor: #BF78CC\t}\t.ace-jsoneditor .ace_invalid {\tcolor: #FFFFFF;\tbackground-color: #FF002A;\t}\t.ace-jsoneditor .ace_fold {\tbackground-color: #AF956F;\tborder-color: #000000\t}\t.ace-jsoneditor .ace_storage,\t.ace-jsoneditor .ace_support.ace_class,\t.ace-jsoneditor .ace_support.ace_function,\t.ace-jsoneditor .ace_support.ace_other,\t.ace-jsoneditor .ace_support.ace_type {\tcolor: #C52727\t}\t.ace-jsoneditor .ace_string {\tcolor: green\t}\t.ace-jsoneditor .ace_comment {\tcolor: #BCC8BA\t}\t.ace-jsoneditor .ace_entity.ace_name.ace_tag,\t.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {\tcolor: #606060\t}\t.ace-jsoneditor .ace_markup.ace_underline {\ttext-decoration: underline\t}\t.ace-jsoneditor .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y\t}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})}])}); -//# sourceMappingURL=jsoneditor-minimalist.map \ No newline at end of file +undefined \ No newline at end of file diff --git a/dist/jsoneditor.css b/dist/jsoneditor.css index 173c927..c738b54 100644 --- a/dist/jsoneditor.css +++ b/dist/jsoneditor.css @@ -926,4 +926,35 @@ table.jsoneditor-search button.jsoneditor-previous { table.jsoneditor-search button.jsoneditor-previous:hover { background-position: -148px -49px; +} +div.jsoneditor div.autocomplete.dropdown { + position: absolute; + background: white; + box-shadow: 2px 2px 12px rgba(128, 128, 128, 0.3); + border: 1px solid #d3d3d3; + z-index: 100; + overflow-x: hidden; + overflow-y: auto; + cursor: default; + margin: 0; + padding-left: 2pt; + padding-right: 5pt; + text-align: left; + outline: 0; + font-family: droid sans mono, consolas, monospace, courier new, courier, sans-serif; + font-size: 10pt; +} + +div.jsoneditor div.autocomplete.dropdown .item { + color: #333; +} + +div.jsoneditor div.autocomplete.dropdown .item.hover { + background-color: #ddd; +} + +div.jsoneditor div.autocomplete.hint { + color: #aaa; + top: 4px; + left: 4px; } \ No newline at end of file diff --git a/dist/jsoneditor.js b/dist/jsoneditor.js index 38fe591..7ca6ddf 100644 --- a/dist/jsoneditor.js +++ b/dist/jsoneditor.js @@ -24,8 +24,8 @@ * Copyright (c) 2011-2017 Jos de Jong, http://jsoneditoronline.org * * @author Jos de Jong, - * @version 5.7.2 - * @date 2017-06-27 + * @version 5.8.0 + * @date 2017-07-02 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') @@ -94,7 +94,7 @@ return /******/ (function(modules) { // webpackBootstrap } var treemode = __webpack_require__(54); - var textmode = __webpack_require__(65); + var textmode = __webpack_require__(66); var util = __webpack_require__(57); /** @@ -164,8 +164,8 @@ return /******/ (function(modules) { // webpackBootstrap // validate options if (options) { var VALID_OPTIONS = [ - 'ace', 'theme', 'ajv', 'schema','templates', + 'ace', 'theme','autocomplete', 'onChange', 'onEditable', 'onError', 'onModeChange', 'escapeUnicode', 'history', 'search', 'mode', 'modes', 'name', 'indentation', 'sortObjectKeys' ]; @@ -8460,6 +8460,7 @@ return /******/ (function(modules) { // webpackBootstrap var Node = __webpack_require__(61); var ModeSwitcher = __webpack_require__(64); var util = __webpack_require__(57); + var autocomplete = __webpack_require__(65); // create a mixin with the functions for tree mode var treemode = {}; @@ -8503,6 +8504,9 @@ return /******/ (function(modules) { // webpackBootstrap this._setOptions(options); + if (options.autocomplete) + this.autocomplete = new autocomplete(options.autocomplete); + if (this.options.history && this.options.mode !== 'view') { this.history = new History(this); } @@ -8559,7 +8563,8 @@ return /******/ (function(modules) { // webpackBootstrap history: true, mode: 'tree', name: undefined, // field name of root node - schema: null + schema: null, + autocomplete: null }; // copy all options @@ -9503,7 +9508,9 @@ return /******/ (function(modules) { // webpackBootstrap */ treemode._onKeyDown = function (event) { var keynum = event.which || event.keyCode; + var altKey = event.altKey; var ctrlKey = event.ctrlKey; + var metaKey = event.metaKey; var shiftKey = event.shiftKey; var handled = false; @@ -9549,6 +9556,41 @@ return /******/ (function(modules) { // webpackBootstrap } } + if ((this.options.autocomplete) && (!handled)) { + if (!ctrlKey && !altKey && !metaKey && (event.key.length == 1 || keynum == 8 || keynum == 46)) { + handled = false; + var jsonElementType = ""; + if (event.target.className.indexOf("jsoneditor-value") >= 0) jsonElementType = "value"; + if (event.target.className.indexOf("jsoneditor-field") >= 0) jsonElementType = "field"; + + var node = Node.getNodeFromTarget(event.target); + // Activate autocomplete + setTimeout(function (hnode, element) { + if (element.innerText.length > 0) { + var result = this.options.autocomplete.getOptions(element.innerText, editor.get(), jsonElementType); + if (typeof result.then === 'function') { + // probably a promise + if (result.then(function (obj) { + if (obj.options) + this.autocomplete.show(element, obj.startFrom, obj.options); + else + this.autocomplete.show(element, 0, obj); + }.bind(this))); + } else { + // definitely not a promise + if (result.options) + this.autocomplete.show(element, result.startFrom, result.options); + else + this.autocomplete.show(element, 0, result); + } + } + else + this.autocomplete.hideDropDown(); + + }.bind(this, node, event.target), 50); + } + } + if (handled) { event.preventDefault(); event.stopPropagation(); @@ -10798,6 +10840,34 @@ return /******/ (function(modules) { // webpackBootstrap return {start: start, end: newEnd}; }; + if (typeof Element !== 'undefined') { + // Polyfill for array remove + (function (arr) { + arr.forEach(function (item) { + if (item.hasOwnProperty('remove')) { + return; + } + Object.defineProperty(item, 'remove', { + configurable: true, + enumerable: true, + writable: true, + value: function remove() { + if (this.parentNode != null) + this.parentNode.removeChild(this); + } + }); + }); + })([Element.prototype, CharacterData.prototype, DocumentType.prototype]); + } + + + // Polyfill for startsWith + if (!String.prototype.startsWith) { + String.prototype.startsWith = function (searchString, position) { + position = position || 0; + return this.substr(position, searchString.length) === searchString; + }; + } /***/ }, /* 58 */ @@ -15997,11 +16067,383 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 65 */ +/***/ function(module, exports) { + + 'use strict'; + + function completely(config) { + config = config || {}; + config.confirmKeys = config.confirmKeys || [39, 35, 9] // right, end, tab + + var fontSize = ''; + var fontFamily = ''; + + var wrapper = document.createElement('div'); + wrapper.style.position = 'relative'; + wrapper.style.outline = '0'; + wrapper.style.border = '0'; + wrapper.style.margin = '0'; + wrapper.style.padding = '0'; + + var dropDown = document.createElement('div'); + dropDown.className = 'autocomplete dropdown'; + dropDown.style.position = 'absolute'; + dropDown.style.visibility = 'hidden'; + + var spacer; + var leftSide; // <-- it will contain the leftSide part of the textfield (the bit that was already autocompleted) + var createDropDownController = function (elem, rs) { + var rows = []; + var ix = 0; + var oldIndex = -1; + + var onMouseOver = function () { this.style.outline = '1px solid #ddd'; } + var onMouseOut = function () { this.style.outline = '0'; } + var onMouseDown = function () { p.hide(); p.onmouseselection(this.__hint, p.rs); } + + var p = { + rs: rs, + hide: function () { + elem.style.visibility = 'hidden'; + //rs.hideDropDown(); + }, + refresh: function (token, array) { + elem.style.visibility = 'hidden'; + ix = 0; + elem.innerHTML = ''; + var vph = (window.innerHeight || document.documentElement.clientHeight); + var rect = elem.parentNode.getBoundingClientRect(); + var distanceToTop = rect.top - 6; // heuristic give 6px + var distanceToBottom = vph - rect.bottom - 6; // distance from the browser border. + + rows = []; + for (var i = 0; i < array.length; i++) { + if (array[i].indexOf(token) !== 0) { continue; } + var divRow = document.createElement('div'); + divRow.className = 'item'; + //divRow.style.color = config.color; + divRow.onmouseover = onMouseOver; + divRow.onmouseout = onMouseOut; + divRow.onmousedown = onMouseDown; + divRow.__hint = array[i]; + divRow.innerHTML = token + '' + array[i].substring(token.length) + ''; + rows.push(divRow); + elem.appendChild(divRow); + } + if (rows.length === 0) { + return; // nothing to show. + } + if (rows.length === 1 && token === rows[0].__hint) { + return; // do not show the dropDown if it has only one element which matches what we have just displayed. + } + + if (rows.length < 2) return; + p.highlight(0); + + if (distanceToTop > distanceToBottom * 3) { // Heuristic (only when the distance to the to top is 4 times more than distance to the bottom + elem.style.maxHeight = distanceToTop + 'px'; // we display the dropDown on the top of the input text + elem.style.top = ''; + elem.style.bottom = '100%'; + } else { + elem.style.top = '100%'; + elem.style.bottom = ''; + elem.style.maxHeight = distanceToBottom + 'px'; + } + elem.style.visibility = 'visible'; + }, + highlight: function (index) { + if (oldIndex != -1 && rows[oldIndex]) { + rows[oldIndex].className = "item"; + } + rows[index].className = "item hover"; + oldIndex = index; + }, + move: function (step) { // moves the selection either up or down (unless it's not possible) step is either +1 or -1. + if (elem.style.visibility === 'hidden') return ''; // nothing to move if there is no dropDown. (this happens if the user hits escape and then down or up) + if (ix + step === -1 || ix + step === rows.length) return rows[ix].__hint; // NO CIRCULAR SCROLLING. + ix += step; + p.highlight(ix); + return rows[ix].__hint;//txtShadow.value = uRows[uIndex].__hint ; + }, + onmouseselection: function () { } // it will be overwritten. + }; + return p; + } + + function setEndOfContenteditable(contentEditableElement) { + var range, selection; + if (document.createRange)//Firefox, Chrome, Opera, Safari, IE 9+ + { + range = document.createRange();//Create a range (a range is a like the selection but invisible) + range.selectNodeContents(contentEditableElement);//Select the entire contents of the element with the range + range.collapse(false);//collapse the range to the end point. false means collapse to end rather than the start + selection = window.getSelection();//get the selection object (allows you to change selection) + selection.removeAllRanges();//remove any selections already made + selection.addRange(range);//make the range you have just created the visible selection + } + else if (document.selection)//IE 8 and lower + { + range = document.body.createTextRange();//Create a range (a range is a like the selection but invisible) + range.moveToElementText(contentEditableElement);//Select the entire contents of the element with the range + range.collapse(false);//collapse the range to the end point. false means collapse to end rather than the start + range.select();//Select the range (make it the visible selection + } + } + + function calculateWidthForText(text) { + if (spacer === undefined) { // on first call only. + spacer = document.createElement('span'); + spacer.style.visibility = 'hidden'; + spacer.style.position = 'fixed'; + spacer.style.outline = '0'; + spacer.style.margin = '0'; + spacer.style.padding = '0'; + spacer.style.border = '0'; + spacer.style.left = '0'; + spacer.style.whiteSpace = 'pre'; + spacer.style.fontSize = fontSize; + spacer.style.fontFamily = fontFamily; + spacer.style.fontWeight = 'normal'; + document.body.appendChild(spacer); + } + + // Used to encode an HTML string into a plain text. + // taken from http://stackoverflow.com/questions/1219860/javascript-jquery-html-encoding + spacer.innerHTML = String(text).replace(/&/g, '&') + .replace(/"/g, '"') + .replace(/'/g, ''') + .replace(//g, '>'); + return spacer.getBoundingClientRect().right; + } + + var rs = { + onArrowDown: function () { }, // defaults to no action. + onArrowUp: function () { }, // defaults to no action. + onEnter: function () { }, // defaults to no action. + onTab: function () { }, // defaults to no action. + startFrom: 0, + options: [], + element: null, + elementHint: null, + elementStyle: null, + wrapper: wrapper, // Only to allow easy access to the HTML elements to the final user (possibly for minor customizations) + show: function (element, startPos, options) { + this.startFrom = startPos; + this.wrapper.remove(); + if (this.elementHint) { + this.elementHint.remove(); + this.elementHint = null; + } + + if (fontSize == '') { + fontSize = window.getComputedStyle(element).getPropertyValue('font-size'); + } + if (fontFamily == '') { + fontFamily = window.getComputedStyle(element).getPropertyValue('font-family'); + } + + var w = element.getBoundingClientRect().right - element.getBoundingClientRect().left; + dropDown.style.marginLeft = '0'; + dropDown.style.marginTop = element.getBoundingClientRect().height + 'px'; + this.options = options; + + if (this.element != element) { + this.element = element; + this.elementStyle = { + zIndex: this.element.style.zIndex, + position: this.element.style.position, + backgroundColor: this.element.style.backgroundColor, + borderColor: this.element.style.borderColor + } + } + + this.element.style.zIndex = 3; + this.element.style.position = 'relative'; + this.element.style.backgroundColor = 'transparent'; + this.element.style.borderColor = 'transparent'; + + this.elementHint = element.cloneNode(); + this.elementHint.className = 'autocomplete hint'; + this.elementHint.style.zIndex = 2; + this.elementHint.style.position = 'absolute'; + this.elementHint.onfocus = function () { this.element.focus(); }.bind(this); + + + + if (this.element.addEventListener) { + this.element.removeEventListener("keydown", keyDownHandler); + this.element.addEventListener("keydown", keyDownHandler, false); + this.element.removeEventListener("blur", onBlurHandler); + this.element.addEventListener("blur", onBlurHandler, false); + } + + wrapper.appendChild(this.elementHint); + wrapper.appendChild(dropDown); + element.parentElement.appendChild(wrapper); + + + this.repaint(element); + }, + setText: function (text) { + this.element.innerText = text; + }, + getText: function () { + return this.element.innerText; + }, + hideDropDown: function () { + this.wrapper.remove(); + if (this.elementHint) { + this.elementHint.remove(); + this.elementHint = null; + dropDownController.hide(); + this.element.style.zIndex = this.elementStyle.zIndex; + this.element.style.position = this.elementStyle.position; + this.element.style.backgroundColor = this.elementStyle.backgroundColor; + this.element.style.borderColor = this.elementStyle.borderColor; + } + + }, + repaint: function (element) { + var text = element.innerText; + text = text.replace('\n', ''); + + var startFrom = this.startFrom; + var options = this.options; + var optionsLength = this.options.length; + + // breaking text in leftSide and token. + + var token = text.substring(this.startFrom); + leftSide = text.substring(0, this.startFrom); + + for (var i = 0; i < optionsLength; i++) { + var opt = this.options[i]; + if (opt.indexOf(token) === 0) { // <-- how about upperCase vs. lowercase + this.elementHint.innerText = leftSide + opt; + break; + } + } + // moving the dropDown and refreshing it. + dropDown.style.left = calculateWidthForText(leftSide) + 'px'; + dropDownController.refresh(token, this.options); + this.elementHint.style.width = calculateWidthForText(this.elementHint.innerText) + 10 + 'px' + var wasDropDownHidden = (dropDown.style.visibility == 'hidden'); + if (!wasDropDownHidden) + this.elementHint.style.width = calculateWidthForText(this.elementHint.innerText) + dropDown.clientWidth + 'px'; + } + }; + + var dropDownController = createDropDownController(dropDown, rs); + + var keyDownHandler = function (e) { + //console.log("Keydown:" + e.keyCode); + e = e || window.event; + var keyCode = e.keyCode; + + if (this.elementHint == null) return; + + if (keyCode == 33) { return; } // page up (do nothing) + if (keyCode == 34) { return; } // page down (do nothing); + + if (keyCode == 27) { //escape + rs.hideDropDown(); + rs.element.focus(); + e.preventDefault(); + e.stopPropagation(); + return; + } + + if (config.confirmKeys.indexOf(keyCode) >= 0) { // (autocomplete triggered) + if (keyCode == 9) { + if (this.elementHint.innerText.length == 0) { + rs.onTab(); + } + } + if (this.elementHint.innerText.length > 0) { // if there is a hint + if (this.element.innerText != this.elementHint.innerText) { + this.element.innerText = this.elementHint.innerText; + rs.hideDropDown(); + setEndOfContenteditable(this.element); + if (keyCode == 9) { + rs.element.focus(); + e.preventDefault(); + e.stopPropagation(); + } + } + } + return; + } + + if (keyCode == 13) { // enter (autocomplete triggered) + if (this.elementHint.innerText.length == 0) { // if there is a hint + rs.onEnter(); + } else { + var wasDropDownHidden = (dropDown.style.visibility == 'hidden'); + dropDownController.hide(); + + if (wasDropDownHidden) { + rs.hideDropDown(); + rs.element.focus(); + rs.onEnter(); + return; + } + + this.element.innerText = this.elementHint.innerText; + rs.hideDropDown(); + setEndOfContenteditable(this.element); + e.preventDefault(); + e.stopPropagation(); + } + return; + } + + if (keyCode == 40) { // down + var m = dropDownController.move(+1); + if (m == '') { rs.onArrowDown(); } + this.elementHint.innerText = leftSide + m; + e.preventDefault(); + e.stopPropagation(); + return; + } + + if (keyCode == 38) { // up + var m = dropDownController.move(-1); + if (m == '') { rs.onArrowUp(); } + this.elementHint.innerText = leftSide + m; + e.preventDefault(); + e.stopPropagation(); + return; + } + + }.bind(rs); + + var onBlurHandler = function (e) { + rs.hideDropDown(); + //console.log("Lost focus."); + }.bind(rs); + + dropDownController.onmouseselection = function (text, rs) { + rs.element.innerText = rs.elementHint.innerText = leftSide + text; + rs.hideDropDown(); + window.setTimeout(function () { + rs.element.focus(); + setEndOfContenteditable(rs.element); + }, 1); + }; + + return rs; + } + + module.exports = completely; + +/***/ }, +/* 66 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var ace = __webpack_require__(66); + var ace = __webpack_require__(67); var ModeSwitcher = __webpack_require__(64); var util = __webpack_require__(57); @@ -16065,7 +16507,7 @@ return /******/ (function(modules) { // webpackBootstrap this.theme = options.theme || DEFAULT_THEME; if (this.theme === DEFAULT_THEME && _ace) { try { - __webpack_require__(73); + __webpack_require__(74); } catch (err) { console.error(err); @@ -16506,7 +16948,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 66 */ +/* 67 */ /***/ function(module, exports, __webpack_require__) { var ace @@ -16517,11 +16959,11 @@ return /******/ (function(modules) { // webpackBootstrap else { try { // load brace - ace = __webpack_require__(67); + ace = __webpack_require__(68); // load required Ace plugins - __webpack_require__(70); - __webpack_require__(72); + __webpack_require__(71); + __webpack_require__(73); } catch (err) { // failed to load brace (can be minimalist bundle). @@ -16533,7 +16975,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 67 */ +/* 68 */ /***/ function(module, exports, __webpack_require__) { /* ***** BEGIN LICENSE BLOCK ***** @@ -20249,7 +20691,7 @@ return /******/ (function(modules) { // webpackBootstrap if (!global || !global.document) return; - options.packaged = packaged || acequire.packaged || module.packaged || (global.define && __webpack_require__(68).packaged); + options.packaged = packaged || acequire.packaged || module.packaged || (global.define && __webpack_require__(69).packaged); var scriptOptions = {}; var scriptUrl = ""; @@ -33333,7 +33775,7 @@ return /******/ (function(modules) { // webpackBootstrap try { var workerSrc = mod.src; - var Blob = __webpack_require__(69); + var Blob = __webpack_require__(70); var blob = new Blob([ workerSrc ], { type: 'application/javascript' }); var blobUrl = (window.URL || window.webkitURL).createObjectURL(blob); @@ -35547,7 +35989,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.acequire = acequire; if (true) - exports.define = __webpack_require__(68); + exports.define = __webpack_require__(69); exports.edit = function(el) { if (typeof el == "string") { var _id = el; @@ -35614,14 +36056,14 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = window.ace.acequire("ace/ace"); /***/ }, -/* 68 */ +/* 69 */ /***/ function(module, exports) { module.exports = function() { throw new Error("define cannot be used indirect"); }; /***/ }, -/* 69 */ +/* 70 */ /***/ function(module, exports) { /* WEBPACK VAR INJECTION */(function(global) {module.exports = get_blob() @@ -35656,7 +36098,7 @@ return /******/ (function(modules) { // webpackBootstrap /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) /***/ }, -/* 70 */ +/* 71 */ /***/ function(module, exports, __webpack_require__) { ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(acequire, exports, module) { @@ -35950,7 +36392,7 @@ return /******/ (function(modules) { // webpackBootstrap }; this.createWorker = function(session) { - var worker = new WorkerClient(["ace"], __webpack_require__(71), "JsonWorker"); + var worker = new WorkerClient(["ace"], __webpack_require__(72), "JsonWorker"); worker.attachToDocument(session.getDocument()); worker.on("annotate", function(e) { @@ -35973,14 +36415,14 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 71 */ +/* 72 */ /***/ function(module, exports) { module.exports.id = 'ace/mode/json_worker'; module.exports.src = "\"no use strict\";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\"\";testPath;){var alias=paths[testPath];if(\"string\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,\"/\")+(tail||alias.main||alias.name);if(alias===!1)return\"\";var i=testPath.lastIndexOf(\"/\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\"error\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\"!\")){var chunks=moduleName.split(\"!\");return window.normalizeModule(parentId,chunks[0])+\"!\"+window.normalizeModule(parentId,chunks[1])}if(\".\"==moduleName.charAt(0)){var base=parentId.split(\"/\").slice(0,-1).join(\"/\");for(moduleName=(base?base+\"/\":\"\")+moduleName;-1!==moduleName.indexOf(\".\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\"worker.js acequire() accepts only (parentId, id) as arguments\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\"unable to load \"+id);var path=resolveModuleId(id,window.acequire.tlns);return\".js\"!=path.slice(-3)&&(path+=\".js\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\"string\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\"function\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\"require\",\"exports\",\"module\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\"require\":return req;case\"exports\":return module.exports;case\"module\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\"ace/lib/event_emitter\").EventEmitter,oop=window.acequire(\"ace/lib/oop\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\"call\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\"event\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\"Unknown command:\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\"ace/lib/es5-shim\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\"object\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\"object\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\"\";switch(delta.action){case\"insert\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\"remove\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\"object\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\"unshift\":\"push\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\"change\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),applyDelta=acequire(\"./apply_delta\").applyDelta,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Anchor=acequire(\"./anchor\").Anchor,Document=function(textOrLines){this.$lines=[\"\"],0===textOrLines.length?this.$lines=[\"\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\"aaa\".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\"changeNewLineMode\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\"\\r\\n\"==text||\"\\r\"==text||\"\\n\"==text},this.getLine=function(row){return this.$lines[row]||\"\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\"\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(position,[\"\",\"\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\"insert\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\"\"]),column=0):(lines=[\"\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\"insert\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\"remove\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\"insert\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\"change\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\"\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\"insert\"==delta.action?\"remove\":\"insert\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\"\").reverse().join(\"\")},exports.stringRepeat=function(string,count){for(var result=\"\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\"\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\"\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\"object\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\"object\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\"[object Object]\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},exports.escapeHTML=function(str){return str.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/'/g,\"'\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\"insert\",start:data[i],lines:data[i+1]};else var d={action:\"remove\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\"ace/mode/json/json_parse\",[\"require\",\"exports\",\"module\"],function(){\"use strict\";var at,ch,text,value,escapee={'\"':'\"',\"\\\\\":\"\\\\\",\"/\":\"/\",b:\"\\b\",f:\"\\f\",n:\"\\n\",r:\"\\r\",t:\"\t\"},error=function(m){throw{name:\"SyntaxError\",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error(\"Expected '\"+c+\"' instead of '\"+ch+\"'\"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string=\"\";for(\"-\"===ch&&(string=\"-\",next(\"-\"));ch>=\"0\"&&\"9\">=ch;)string+=ch,next();if(\".\"===ch)for(string+=\".\";next()&&ch>=\"0\"&&\"9\">=ch;)string+=ch;if(\"e\"===ch||\"E\"===ch)for(string+=ch,next(),(\"-\"===ch||\"+\"===ch)&&(string+=ch,next());ch>=\"0\"&&\"9\">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error(\"Bad number\"),void 0):number},string=function(){var hex,i,uffff,string=\"\";if('\"'===ch)for(;next();){if('\"'===ch)return next(),string;if(\"\\\\\"===ch)if(next(),\"u\"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if(\"string\"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error(\"Bad string\")},white=function(){for(;ch&&\" \">=ch;)next()},word=function(){switch(ch){case\"t\":return next(\"t\"),next(\"r\"),next(\"u\"),next(\"e\"),!0;case\"f\":return next(\"f\"),next(\"a\"),next(\"l\"),next(\"s\"),next(\"e\"),!1;case\"n\":return next(\"n\"),next(\"u\"),next(\"l\"),next(\"l\"),null}error(\"Unexpected '\"+ch+\"'\")},array=function(){var array=[];if(\"[\"===ch){if(next(\"[\"),white(),\"]\"===ch)return next(\"]\"),array;for(;ch;){if(array.push(value()),white(),\"]\"===ch)return next(\"]\"),array;next(\",\"),white()}}error(\"Bad array\")},object=function(){var key,object={};if(\"{\"===ch){if(next(\"{\"),white(),\"}\"===ch)return next(\"}\"),object;for(;ch;){if(key=string(),white(),next(\":\"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key \"'+key+'\"'),object[key]=value(),white(),\"}\"===ch)return next(\"}\"),object;next(\",\"),white()}}error(\"Bad object\")};return value=function(){switch(white(),ch){case\"{\":return object();case\"[\":return array();case'\"':return string();case\"-\":return number();default:return ch>=\"0\"&&\"9\">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=\" \",result=value(),white(),ch&&error(\"Syntax error\"),\"function\"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&\"object\"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({\"\":result},\"\"):result}}),ace.define(\"ace/mode/json_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/json/json_parse\"],function(acequire,exports){\"use strict\";var oop=acequire(\"../lib/oop\"),Mirror=acequire(\"../worker/mirror\").Mirror,parse=acequire(\"./json/json_parse\"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:\"error\"})}this.sender.emit(\"annotate\",errors)}}.call(JsonWorker.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\"sentinel\",{}),\"sentinel\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\"function\"!=typeof target)throw new TypeError(\"Function.prototype.bind called on incompatible \"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\"__defineGetter__\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\"XXX\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\"[object Array]\"==_toString(obj)});var boxedString=Object(\"a\"),splitString=\"a\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduce of empty array with no initial value\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\"reduce of empty array with no initial value\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduceRight of empty array with no initial value\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\"reduceRight of empty array with no initial value\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(object,property){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\"undefined\"==typeof document||doesDefinePropertyWork(document.createElement(\"div\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\"Property description must be an object: \",ERR_NON_OBJECT_TARGET=\"Object.defineProperty called on non-object: \",ERR_ACCESSORS_NOT_SUPPORTED=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(object,property,descriptor){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\"object\"!=typeof descriptor&&\"function\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\"value\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\"get\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\"set\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\"function\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\"\";owns(object,name);)name+=\"?\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(\"Object.keys called on a non-object\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\"\t\\n\u000b\\f\\r   ᠎              \\u2028\\u2029\";if(!String.prototype.trim||ws.trim()){ws=\"[\"+ws+\"]\";var trimBeginRegexp=RegExp(\"^\"+ws+ws+\"*\"),trimEndRegexp=RegExp(ws+ws+\"*$\");String.prototype.trim=function(){return(this+\"\").replace(trimBeginRegexp,\"\").replace(trimEndRegexp,\"\")}}var toObject=function(o){if(null==o)throw new TypeError(\"can't convert \"+o+\" to object\");return Object(o)}});"; /***/ }, -/* 72 */ +/* 73 */ /***/ function(module, exports) { ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"], function(acequire, exports, module) { @@ -36402,7 +36844,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 73 */ +/* 74 */ /***/ function(module, exports) { /* ***** BEGIN LICENSE BLOCK ***** diff --git a/dist/jsoneditor.map b/dist/jsoneditor.map index 2361575..66dc905 100644 --- a/dist/jsoneditor.map +++ b/dist/jsoneditor.map @@ -1 +1 @@ -{"version":3,"sources":["./dist/jsoneditor.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","JSONEditor","container","options","json","Error","ieVersion","util","getInternetExplorerVersion","error","console","warn","onError","change","onChange","editable","onEditable","VALID_OPTIONS","Object","keys","forEach","option","indexOf","arguments","length","_create","Ajv","err","treemode","textmode","modes","prototype","DEBOUNCE_INTERVAL","mode","setMode","destroy","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","data","extend","oldMode","config","asText","clear","mixin","create","load","onModeChange","_onError","getMode","setSchema","schema","ajv","allErrors","verbose","validateSchema","compile","validate","refresh","registerMode","i","prop","isArray","reserved","opts","_opts","copy","_schemas","_refs","_fragments","_formats","formats","format","schemaUriFormat","_schemaUriFormat","_schemaUriFormatFunc","str","test","_cache","cache","Cache","_loadingSchemas","_compilations","RULES","rules","_getId","chooseGetId","loopRequired","Infinity","errorDataPath","_errorDataPathProperty","undefined","serialize","stableStringify","_metaOpts","getMetaSchemaOptions","addInitialFormats","addDraft6MetaSchema","meta","addMetaSchema","addInitialSchemas","patternGroups","schemaKeyRef","v","getSchema","schemaObj","_addSchema","_compile","valid","$async","async","co","errors","_meta","addSchema","key","_skipValidation","Array","resolve","normalizeId","checkUnique","skipValidation","throwOrLogError","$schema","defaultMeta","currentUriFormat","uri","message","errorsText","self","META_SCHEMA_ID","keyRef","_getSchemaObj","_getSchemaFragment","ref","res","baseId","compileSchema","SchemaObject","fragment","removeSchema","RegExp","_removeAllSchemas","del","cacheKey","schemas","regex","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","localRefs","ids","put","callValidate","_validate","result","apply","compiling","currentOpts","refs","refVal","schemaId","_get$Id","_get$IdOrId","$id","separator","dataVar","text","e","dataPath","slice","addFormat","$dataSchema","$data","metaSchema","$dataMetaSchema","META_SUPPORT_DATA","optsSchemas","metaOpts","META_IGNORE_OPTIONS","compileAsync","customKeyword","addKeyword","add","getKeyword","removeKeyword","remove","errorClasses","ValidationError","Validation","MissingRefError","MissingRef","compilation","localCompile","_schema","_root","isRoot","sourceCode","validateGenerator","isTop","schemaPath","errSchemaPath","errorPath","resolveRef","usePattern","useDefault","useCustomRule","vars","refValCode","patterns","patternCode","defaults","defaultCode","customRules","customRuleCode","processCode","Function","equal","ucs2length","source","code","url","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","inlineRef","inlineRefs","replaceLocalRef","refId","inline","regexStr","index","patternsHash","value","toQuotedString","valueStr","defaultsHash","rule","parentSchema","it","definition","macro","keyword","checkCompiling","cv","endCompiling","compIndex","splice","arr","statement","resolveSchema","refPath","_getFullPath","getFullPath","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","hash","parts","split","part","unescapeFragment","PREVENT_SCOPE_CHANGE","$ref","limit","checkNoRef","countKeys","item","count","SIMPLE_INLINED","normalize","protocolSeparator","protocol","href","host","path","replace","TRAILING_SLASH_HASH","resolveIds","baseIds","","fullPaths","traverse","allKeys","sch","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","fullPath","escapeFragment","toHash","Url","slashes","auth","port","hostname","search","query","pathname","urlParse","parseQueryString","slashesDenoteHost","isObject","u","urlFormat","obj","isString","urlResolve","relative","urlResolveObject","resolveObject","arg","isNull","isNullOrUndefined","punycode","protocolPattern","portPattern","delims","unwise","concat","autoEscape","nonHostChars","hostEndingChars","unsafeProtocol","javascript","javascript:","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","file","http:","https:","ftp:","gopher:","file:","querystring","TypeError","rest","trim","proto","exec","lowerProto","toLowerCase","substr","match","hostEnd","hec","atSign","lastIndexOf","decodeURIComponent","parseHost","ipv6Hostname","hostparts","l","newpart","j","k","charCodeAt","validParts","notHost","bit","push","unshift","join","domainArray","newOut","s","encode","h","ae","esc","encodeURIComponent","escape","qm","charAt","rel","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","pop","authInHost","last","hasTrailingSlash","up","isAbsolute","__WEBPACK_AMD_DEFINE_RESULT__","global","type","RangeError","map","array","fn","mapDomain","string","regexSeparators","ucs2decode","extra","output","counter","ucs2encode","stringFromCharCode","basicToDigit","codePoint","base","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","floor","damp","baseMinusTMin","tMax","skew","decode","input","out","basic","oldi","w","t","baseMinusT","inputLength","n","initialN","bias","initialBias","delimiter","maxInt","tMin","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toASCII","regexNonASCII","freeGlobal","nodeType","overflow","not-basic","invalid-input","Math","String","fromCharCode","version","ucs2","webpackPolyfill","deprecate","paths","children","hasOwnProperty","qs","sep","eq","maxKeys","len","kstr","vstr","x","idx","stringifyPrimitive","isFinite","ks","a","b","arrA","arrB","dateA","Date","dateB","getTime","regexpA","regexpB","toString","o","to","checkDataType","dataType","negate","EQUAL","AND","OK","NOT","checkDataTypes","dataTypes","types","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","IDENTIFIER","escapeQuotes","SINGLE_QUOTE","varOccurences","matches","varReplace","expr","cleanUpCode","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","finalCleanUpCode","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","RETURN_DATA_ASYNC","REMOVE_ERRORS","RETURN_VALID","RETURN_TRUE","ROOTDATA_REGEXP","REMOVE_ROOTDATA","schemaHasRules","schemaHasRulesExcept","exceptKeyword","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","escapeJsonPointer","getData","lvl","jsonPointer","JSON_POINTER","RELATIVE_JSON_POINTER","segments","segment","unescapeJsonPointer","pos","_traverse","cb","arrayKeywords","propsKeywords","escapeJsonPtr","keywords","skipKeywords","additionalItems","items","contains","additionalProperties","propertyNames","not","allOf","anyOf","oneOf","definitions","properties","patternProperties","dependencies","enum","const","required","maximum","minimum","exclusiveMaximum","exclusiveMinimum","multipleOf","maxLength","minLength","pattern","maxItems","minItems","uniqueItems","maxProperties","minProperties","validation","missingRef","missingSchema","errorSubclass","Subclass","constructor","cmp","space","cycles","replacer","f","node","aobj","bobj","seen","parent","level","indent","colonSeparator","toJSON","objectKeys","sort","keyValue","has","at","ch","escapee","\"","\\","/","r","next","hex","uffff","parseInt","white","word","reviver","walk","holder","quote","escapable","lastIndex","partial","mind","gap","rep","\b","\t","\n","\f","\r","$keyword","$ruleType","$shouldUseGroup","$rulesGroup","$shouldUseRule","$rule","implements","$ruleImlementsSomeKeyword","impl","$refKeywords","all","$es7","yieldAwait","$errorKeyword","$lvl","$dataLvl","dataLevel","$schemaPath","$errSchemaPath","$breakOnError","$valid","$$outStack","createErrors","messages","__err","compositeRule","$top","rootId","dataPathArr","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","extendRefs","coerceTypes","$coerceToTypes","$method","$dataType","$coerced","$bracesCoercion","arr1","$type","$i","l1","$parentData","$parentDataProperty","v5","arr2","i2","l2","useDefaults","$schemaKeys","arr3","$propertyKey","i3","l3","$sch","default","$passData","arr4","l4","arr5","i5","l5","$code","gen","ctx","args","Promise","reject","onFulfilled","ret","onRejected","throw","done","toPromise","isPromise","then","isGeneratorFunction","isGenerator","thunkToPromise","arrayToPromise","objectToPromise","results","promises","promise","displayName","val","wrap","createPromise","__generatorFunction__","date","DATE","month","day","DAYS","time","full","TIME","hour","minute","second","timeZone","date_time","dateTime","DATE_TIME_SEPARATOR","HOSTNAME","NOT_URI_FRAGMENT","URI","Z_ANCHOR","URITEMPLATE","URL","UUID","fast","date-time","uri-reference","uri-template","email","ipv4","ipv6","uuid","json-pointer","relative-json-pointer","ruleModules","ALL","KEYWORDS","TYPES","group","implKeywords","custom","$refCode","$refVal","$message","missingRefs","$it","$nextValid","passContext","__callValidate","$closingBraces","$currentBaseId","$allSchemasEmpty","$errs","every","$wasComposite","$isData","$idx","$dataNxt","$nextData","$nonEmptySchema","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$prop","$useData","$propertyPath","$missingProperty","$vSchema","$schemaValue","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","$formatRef","$additionalItems","$currErrSchemaPath","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opExpr","$opStr","unicode","multipleOfPrecision","$allErrorsOption","$regexp","$key","$dataProperties","$pProperties","$pPropertyKeys","$aProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","$requiredHash","$pgProperties","$pgPropertyKeys","i1","$pProperty","$pgProperty","$additionalProperty","$useDefaults","i4","$hasDefault","arr6","i6","l6","$pgSchema","$pgMin","$pgMax","$limit","$reason","$moreOrLess","$invalidName","$propertySch","$loopRequired","keywordsJsonPointers","metaSchemaRef","callback","loadMetaSchemaOf","_compileAsync","removePromise","added","schemaPromise","loadSchema","_addRule","ruleGroup","rg","$compile","$inline","$macro","$ruleValidate","$validateCode","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","def_callRuleValidate","modifying","def_customError","description","title","schemaArray","nonNegativeInteger","nonNegativeIntegerDefault0","simpleTypes","stringArray","Highlighter","History","SearchBox","ContextMenu","Node","ModeSwitcher","dom","highlighter","selection","multiselection","nodes","errorNodes","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","debounce","bind","content","table","params","field","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","updateField","focus","querySelector","menu","collapse","tbody","getDom","expandAll","collapseAll","_onAction","action","_onChange","setError","duplicateErrors","schemaErrors","improveSchemaError","findNode","filter","entry","reduce","findParents","child","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setSelection","select","range","setSelectionOffset","getSelection","getSelectionOffset","nodeName","scrollTo","editor","animateTimeout","animateCallback","finalScrollTop","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","document","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","_onKeyDown","_startDragDistance","_updateDragDistance","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","removeEventListener","clearStartAndEnd","setSelected","first","startPath","getNodePath","endPath","startChild","endChild","childs","startIndex","endIndex","firstIndex","keynum","which","keyCode","ctrlKey","shiftKey","handled","selectContentEditable","previous","stopPropagation","contentOuter","col","colgroupContent","width","anchor","onClose","click","onDuplicate","onRemove","close","show","locked","highlight","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","actions","editField","oldValue","newValue","editValue","updateValue","changeType","oldType","newType","appendNodes","insertBeforeNodes","insertBefore","beforeNode","insertAfterNodes","afterNode","insertAfter","removeNodes","append","duplicateNodes","moveNodes","oldBeforeNode","moveBefore","newBeforeNode","hideChilds","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","oldSelection","newSelection","jsonlint","jsonString","sanitize","jsString","curr","prev","chars","pp","specialValues","regexp","escapeUnicodeChars","Number","Boolean","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","addClassName","classes","removeClassName","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","element","buffer","flush","nodeValue","hasChildNodes","innerText","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","detachEvent","parsePath","jsonPath","remainder","SyntaxError","substring","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","later","callNow","textDiff","oldText","newText","oldEnd","newEnd","parser","trace","yy","symbols_","JSONString","STRING","JSONNumber","NUMBER","JSONNullLiteral","NULL","JSONBooleanLiteral","TRUE","FALSE","JSONText","JSONValue","EOF","JSONObject","JSONArray","{","}","JSONMemberList","JSONMember",":",",","[","]","JSONElementList","$accept","$end","terminals_","2","4","6","8","10","11","14","17","18","21","22","23","24","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","3","5","7","9","12","13","15","16","1","19","20","25","defaultActions","parseError","lex","token","lexer","stack","vstack","lstack","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","state","newState","expected","yyval","errStr","showPosition","line","loc","first_line","last_line","first_column","last_column","_input","_more","_less","matched","conditionStack","unput","less","pastInput","past","upcomingInput","pre","tempMatch","lines","_currentRules","flex","begin","condition","popState","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","searchFieldActive","searchValueActive","_clearDelay","forceSearch","resultCount","innerHTML","createMenuItems","list","domItems","li","domItem","button","hide","submenu","divIcon","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","contentRect","anchorHeight","offsetHeight","mousedown","_isChildOf","keydown","alreadyVisible","padding","display","childsHeight","targetIndex","prevButton","nextButton","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","naturalSort","appendNodeFactory","_updateEditability","parents","tdError","tdValue","popover","onfocus","directions","direction","popoverRect","getIndex","setParent","previousField","getField","_getDomField","childValue","_getType","childField","sortObjectKeys","previousValue","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppend","nextTr","nextSibling","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","moveTo","searchField","searchValue","_updateDomField","childResults","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","checkbox","tdCheckbox","checked","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","firstNode","lastNode","draggedNode","_nextSibling","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","some","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_escapeHTML","_updateSchema","_updateDomIndexes","_findSchema","_findEnum","composite","childSchema","_createDomValue","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","open","offsetX","onKeyDown","nextNode","nextDom","nextDom2","altKey","selectedNodes","_onInsertBefore","_onInsertAfter","endNode","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","isVisible","_nextNode","blurNodes","clones","newNode","_onAppend","_onChangeType","order","oldSortOrder","sortOrder","firstDom","lastDom","lastChild","TYPE_TITLES","auto","addTemplates","templates","appendData","insertData","template","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","isNaN","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","insensitive","y","xN","yN","xD","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","current","onSwitch","availableModes","form","view","currentMode","currentTitle","box","position","ace","indentation","_ace","theme","aceEditor","textarea","clientWidth","buttonFormat","buttonCompact","compact","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","defineProperty","poweredBy","on","resize","originalOnChange","validationErrors","marginBottom","paddingBottom","doValidate","hidden","deps","payload","original","payloads","_acequire","parentId","lookup","dep","acequire","packagedModule","normalizeModule","moduleName","chunks","mod","packaged","ns","getNativeFlags","ignoreCase","multiline","extended","sticky","from","real","compliantExecNpcg","compliantLastIndexIncrement","r2","_xregexp","captureNames","Empty","doesDefinePropertyWork","exception","toInteger","that","bound","defineGetter","defineSetter","lookupGetter","lookupSetter","supportsAccessors","prototypeOfArray","prototypeOfObject","_toString","owns","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","makeArray","lengthBefore","array_splice","deleteCount","removeCount","removed","insert","tailOldPos","tailNewPos","tailCount","lengthAfterRemove","boxedString","splitString","fun","toObject","thisp","reduceRight","sought","getPrototypeOf","__proto__","getOwnPropertyDescriptor","property","descriptor","getter","setter","enumerable","configurable","getOwnPropertyNames","createEmpty","empty","propertyIsEnumerable","isPrototypeOf","toLocaleString","valueOf","Type","defineProperties","definePropertyWorksOnObject","definePropertyWorksOnDom","definePropertyFallback","seal","freeze","freezeObject","preventExtensions","isSealed","isFrozen","isExtensible","returnValue","hasDontEnumBug","dontEnums","dontEnumsLength","ii","dontEnum","now","ws","trimBeginRegexp","trimEndRegexp","getDocumentHead","doc","head","getElementsByTagName","documentElement","tag","createElementNS","hasCssClass","el","addCssClass","removeCssClass","toggleCssClass","setCssClass","include","hasCssString","sheets","createStyleSheet","styleSheets","owningElement","importCssString","cssText","importCssStylsheet","link","getInnerWidth","computedStyle","getInnerHeight","scrollbarWidth","inner","minWidth","outer","noScrollbar","offsetWidth","withScrollbar","getPageScrollTop","getPageScrollLeft","getComputedStyle","currentStyle","setInnerHtml","innerHtml","cloneNode","replaceChild","setInnerText","textContent","getParentWindow","defaultView","parentWindow","inherits","ctor","superCtor","super_","writable","implement","oop","Keys","MODIFIER_KEYS","224","KEY_MODS","ctrl","alt","super","command","cmd","FUNCTION_KEYS","27","32","33","34","35","36","37","38","39","40","44","45","46","96","97","98","99","100","101","102","103","104","105","-13","112","113","114","115","116","117","118","119","120","121","122","123","144","145","PRINTABLE_KEYS","48","49","50","51","52","53","54","55","56","57","59","61","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","107","109","110","186","187","188","189","190","191","192","219","220","221","222","111","106","enter","mods","pow","keyCodeToString","keyString","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","os","platform","isWin","isIE","isOldIE","isGecko","isMozilla","Controllers","controllers","product","isOldGecko","isOpera","opera","isWebKit","isChrome","isAIR","isIPad","isTouchPad","isChromeOS","normalizeCommandKeys","hashId","getModifierHash","useragent","pressedKeys","getModifierState","altGr","location","keyLocation","ts","timeStamp","dt","defaultPrevented","resetPressedKeys","addListener","wrapper","_wrapper","removeListener","stopEvent","cancelBubble","getButton","capture","eventHandler","releaseCaptureHandler","onMouseUp","addTouchMoveListener","startx","starty","touchObj","changedTouches","clientX","clientY","wheelX","wheelY","addMouseWheelListener","wheelDeltaX","wheelDeltaY","wheelDelta","deltaMode","DOM_DELTA_PIXEL","deltaX","deltaY","DOM_DELTA_LINE","DOM_DELTA_PAGE","axis","HORIZONTAL_AXIS","detail","addMultiMouseDownListener","elements","timeouts","callbackName","onMousedown","clicks","isNewClick","startX","startY","timer","_clicks","eventNames","onDblclick","metaKey","getModifierString","addCommandKeyListener","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","nextTick","win","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","stringReverse","reverse","stringRepeat","stringTrimLeft","stringTrimRight","copyObject","copyArray","deepCopy","arrayToMap","createMap","props","arrayRemove","escapeRegExp","escapeHTML","getMatchOffsets","regExp","offset","deferredCall","fcn","deferred","cancel","schedule","isPending","delayedCall","defaultTimeout","_self","lang","BROKEN_SETDATA","USE_IE_MIME_TYPE","TextInput","resetSelection","isEmpty","inComposition","inputHandler","selectionStart","selectionEnd","setSelectionRange","resetValue","PLACEHOLDER","syncValue","onContextMenuClose","closeTimeout","tempStyle","renderer","$keepTextAreaAtCursor","$moveTextAreaToCursor","setAttribute","opacity","copied","pasted","isSelectionEmpty","isFocused","activeElement","onBlur","onFocus","syncSelection","isAllSelected","createTextRange","moveStart","moveEnd","ownerDocument","parentElement","inPropertyChange","onPropertyChange","syncProperty","sendText","keytable","onCompositionEnd","onCompositionUpdate","onCompositionStart","onSelect","selectAll","setInputHandler","getInputHandler","afterContextMenu","onPaste","execCommand","onTextInput","onInput","handleClipboardData","forceIEMime","clipboardData","mime","setData","doCopy","isCut","getCopyText","onCut","onCopy","onCommandKey","$readOnly","session","$undoManager","markUndoGroup","clearSelection","lastValue","getRange","setRange","syncComposition","getElement","setReadOnly","onContextMenu","_emit","domEvent","moveToMouse","bringToFront","rect","borderTopWidth","borderLeftWidth","maxTop","move","textInput","scroller","DefaultHandlers","mouseHandler","$clickSelection","setDefaultHandler","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","onTouchMove","selectByLines","extendSelectionBy","selectByWords","calcDistance","ax","ay","bx","by","calcRangeOrientation","row","column","ev","inSelection","getDocumentPosition","mousedownEvent","selectionRange","getSelectionRange","selectionEmpty","moveToPosition","$focusTimout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","getShiftKey","selectToPosition","setCapture","setStyle","comparePoint","orientedRange","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","unsetStyle","releaseCapture","focusWait","distance","getBracketRange","getWordRange","isMultiLine","getLineRange","getAccelKey","$lastScrollTime","isScrollableBy","speed","scrollBy","stop","Tooltip","isOpen","$element","$parentNode","$init","setHtml","setPosition","setClassName","getHeight","getWidth","GutterHandler","showTooltip","mouseEvent","annotation","gutter","$annotations","hideTooltip","getLength","screenRow","pixelToScreenCoordinates","$pos","documentToScreenRow","tooltipAnnotation","tooltip","_signal","$tooltipFollowsMouse","moveTooltip","gutterElement","tooltipTimeout","$gutterLayer","GutterTooltip","getRegion","selectTo","isMousePressed","$gutter","windowWidth","innerWidth","windowHeight","innerHeight","MouseEvent","$inSelection","propagationStopped","DragdropHandler","prevCursor","vMovement","hMovement","cursorMovedTime","moveCursorToPosition","cursorPointOnCaretMoved","SCROLL_CURSOR_HYSTERESIS","SCROLL_CURSOR_DELAY","autoScroll","lineHeight","layerConfig","characterWidth","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScrollStartTime","AUTOSCROLL_DELAY","onDragInterval","dragCursor","addDragMarker","toOrientedRange","dragSelectionMarker","addMarker","getSelectionStyle","$cursorLayer","setBlinking","clearInterval","timerId","onMouseMove","clearDragMarker","removeMarker","fromOrientedRange","isInternal","getReadOnly","onMouseMoveTimer","canAccept","dataTransfer","getDropEffect","copyAllowed","moveAllowed","copyModifierState","effectAllowed","dropEffect","blankImage","src","dragOperation","mouseTarget","cancelDrag","draggable","setDragImage","clearData","getTextRange","setCursorStyle","onDragEnter","onDragOver","onDragLeave","onDrop","moveText","dropData","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","dragDrop","$dragEnabled","eventTarget","unselectable","xhr","XMLHttpRequest","onreadystatechange","readyState","responseText","send","loadScript","onload","_","isAbort","qualifyURL","EventEmitter","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","once","newCallback","handlers","_disabled_","old","removeDefaultHandler","capturing","off","removeAllListeners","reportError","msg","optionsProvider","optList","setOption","getOptions","optionNames","$options","getOption","opt","forwardTo","handlesSet","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","setDefaultValues","optionHash","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","script","getAttribute","attr","deHyphenate","basePath","workerPath","modePath","themePath","m1","toUpperCase","net","suffix","$moduleUrls","moduleUrl","component","setModuleUrl","subst","$loading","loadModule","onLoad","moduleType","afterLoad","DefaultGutterHandler","MouseHandler","focusEditor","hasFocus","getMouseEventTarget","onMouseEvent","scrollBarV","scrollBarH","gutterEl","$dragDelay","character","insideStart","$scrollSpeed","mouseMoveHandler","releaseMouse","$mouseMoved","onCaptureEnd","onCaptureInterval","$onCaptureMouseMove","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimout","tooltipFollowsMouse","FoldHandler","fold","getFoldAt","removeFold","expandFold","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","getLine","addFold","keyUtil","KeyBinding","$editor","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","passEvent","comparePoints","p1","p2","Range","startRow","startColumn","endRow","endColumn","isEqual","compare","compareRange","containsRange","intersects","isEnd","isStart","inside","insideEnd","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","collapseRows","toScreenRange","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","Selection","getDocument","lead","selectionLead","createAnchor","selectionAnchor","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","getCursor","getPosition","getSelectionAnchor","getSelectionLead","shiftSelection","columns","moveCursorTo","isBackwards","$moveSelection","mover","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectWord","selectAWord","getAWordRange","excludeLastChar","rowEnd","rowStart","foldLine","getFoldLine","selectLine","moveCursorBy","tabSize","getTabSize","isTabStop","firstColumnPosition","screenToDocumentPosition","beforeCursor","getDisplayLine","leadingSpace","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","screenPos","docPos","lineWidgets","keepDesiredColumn","moveCursorToScreen","desiredColumn","getRangeOfMovements","ranges","r1","fromJSON","rangeList","toSingleRange","MAX_TOKEN_COUNT","Tokenizer","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","splitterRurles","caseInsensitive","adjustedregex","matchcount","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","values","tokens","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","merge","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","$embeds","getEmbeds","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","splitChar","$keywordList","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","rowCount","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getCursorPosition","getWrapBehavioursEnabled","isSaneInsertion","recordAutoInsert","recordMaybeInsert","rightChar","matching","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","lineCommentStart","leftChar","rightToken","pair","stringBefore","stringAfter","wordRe","$mode","isWordBefore","isWordAfter","iterator","$matchTokenType","iterator2","bracket","packages","pack","L","Ll","Lu","Lt","Lm","Lo","M","Mn","Mc","Me","N","Nd","Nl","No","P","Pd","Ps","Pe","Pi","Pf","Pc","Po","S","Sm","Sc","Sk","So","Z","Zs","Zl","Zp","C","Cc","Cf","Co","Cs","Cn","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","iter","ignoreBlankLines","shouldRemove","minIndent","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","removeInLine","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","minEmptyLength","toggleBlockComment","colDiff","initialRange","startRange","endRange","getNextLineIndent","tab","checkOutdent","autoOutdent","createWorker","createModeDelegates","$modes","delegations","scope","functionName","$delegator","method","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","score","applyDelta","docLines","doNotValidate","Anchor","$onChange","$pointsInOrder","point1","point2","equalPointsInOrder","bColIsAfter","$getTransformedPoint","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$clipPositionToDocument","$insertRight","noClip","Document","textOrLines","$lines","insertMergedLines","getAllLines","getNewLineCharacter","$split","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","clippedPos","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","startCol","endCol","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","MAX","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","scheduleStart","$updateOnChange","getState","SearchHighlight","clazz","setRegexp","MAX_RANGES","update","markerLayer","drawSingleLineMarker","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","log","foldBefore","newFoldLine","foldLineNext","idxToPosition","lastFoldEndColumn","RangeList","pointIndex","excludeEdges","addList","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","consumePoint","consumeRange","restorePoint","restoreRange","Fold","subFolds","subFold","collapseChildren","addSubFold","afterStart","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","lastFold","docRow","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","$clipRangeToDocument","startFold","endFold","removeFolds","$useWrapMode","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","dir","depth","getFoldWidget","getFoldWidgetRange","$foldStyles","manual","markbegin","markbeginend","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","$brackets",")","(","typeRe","openBracket","valueIndex","closingBracket","valueLength","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","onChangeFold","isFullWidth","bgTokenizer","resetCaches","$resetRowCache","$docRowCache","$screenRowCache","$getRowCacheIndex","cacheArray","low","hi","mid","$wrapData","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$fromUndo","ignore","$deltasDoc","$deltasFold","$informUndoManager","$deltas","setUndoManager","getUndoManager","reset","undoManager","$syncInformUndoManager","execute","mergeUndoDeltas","$defaultUndoManager","$useSoftTabs","$indentWithTabs","$tabSize","$overwrite","setOverwrite","overwrite","getOverwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","setBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","marker","addDynamicMarker","markerId","markers","getMarkers","$searchHighlight","highlightLines","setAnnotations","annotations","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$modeId","$onChangeMode","$isPlaceholder","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","$scrollTop","setScrollTop","getScrollTop","$scrollLeft","setScrollLeft","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","undoChanges","dontSelect","lastUndoRange","$getUndoSelection","foldDelta","redoChanges","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","size","$moveLines","$clipRowToDocument","MAX_VALUE","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","$wrapLimitRange","useWrapMode","getUseWrapMode","setWrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","SPACE","TAB","TAB_SPACE","getWrapIndent","maxIndent","indentedSoftWrap","isCode","addSplit","displayed","lastSplit","splits","lastDocSplit","displayLength","$wrapAsCode","$indentedSoftWrap","minSplit","getScreenTabSize","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","rowCache","doCache","maxRow","wrapIndent","splitIndex","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","$wrap","firstLineNumber","useSoftTabs","addWordBoundary","needle","wordBoundary","Search","find","$matchIterator","skipCurrent","findAll","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","matchIterator","backwards","lineIterator","$lineIterator","_callback","$disableFakeMultiline","wholeWord","modifier","caseSensitive","$assembleMultilineRegExp","HashHandler","commandKeyBinding","addCommands","$singleCommand","MultiHashHandler","addCommand","removeCommand","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","isDefault","other","otherPos","removeCommands","bindKeys","keyList","findKeyCommand","$keyChain","CommandManager","byName","toggleRecording","$inReplay","recording","$addCommandToMacro","oldMacro","replay","trimMacro","mac","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","prompt","gotoLine","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","firstLineEndCol","selectedText","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","defaultCommands","Editor","getContainerElement","getTextAreaContainer","keyBinding","$mouseHandler","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","selections","startOperation","endOperation","$opResetTimer","curOp","docChanged","selectionChanged","prevOp","commadEvent","previousCommand","scrollSelectionIntoView","animateScrolling","$mergeableCommands","$mergeUndoDeltas","mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","handler","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","updateFull","oldEditor","cursorPos","onResize","getTheme","getFontSize","$highlightBrackets","$bracketHighlight","$highlightPending","getMatching","$highlightTags","$highlightTagPending","$tagHighlight","prevToken","sbm","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","updateLines","$updateHighlightActiveLine","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","startOuter","endOuter","lineCols","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","inVirtualSelectionMode","getBehavioursEnabled","transform","$mergeNextCommand","d","lineState","shouldOutdent","lineIndent","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","setShowInvisibles","showInvisibles","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","swap","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","nr","fp","decimals","nnr","toFixed","replaceRange","endPoint","totalDiff","rangeIndex","subRows","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","isRowVisible","isRowFullyVisible","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","scrollToLine","center","alignCursor","getCursorPositionScreen","matchType","bracketType","found","brackets","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","preventScroll","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","$pixelPos","$resetCursorStyle","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","behavioursEnabled","wrapBehavioursEnabled","autoScrollEditorIntoView","keybindingId","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","showLineNumbers","showGutter","displayIndentGuides","fontSize","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","foldStyle","UndoManager","$serializeDelta","$deserializeDelta","cloneDeltaSetsObj","deltaSets_old","fnGetModifiedDelta","deltaSets_new","deltaSet_old","deltaSet_new","delta_old","deltaSets","$doc","hasUndo","dirtyCounter","$undoStack","$redoStack","NaN","undoSelectionRange","redoSelectionRange","$deserializeDeltas","hasRedo","markClean","isClean","$serializeDeltas","Gutter","parentEl","$showFoldWidgets","gutterWidth","$updateAnnotations","$cells","rowInfo","annoText","gutterOffset","breakpoints","decorations","$firstLineNumber","lastLineNumber","gutterRenderer","$renderer","cell","textNode","foldWidget","minHeight","$fixedWidth","$padding","$computePadding","ceil","$showLineNumbers","setShowLineNumbers","getShowLineNumbers","paddingRight","Marker","getBorderClass","tl","br","bl","setPadding","setMarkers","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","firstRowScreen","stringBuilder","extraStyle","lineRange","radiusClass","extraLength","Text","$updateEolChar","EOF_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","EOL_CHAR","TAB_CHAR","SPACE_CHAR","getLineHeight","$fontMetrics","$characterSize","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","$tabStrings","tabStr","$indentGuideRe","spaceClass","tabClass","spaceContent","tabContent","scrollLines","lineElements","lineElementsIdx","lineElement","$renderLine","$useLineGroups","oldConfig","$renderLinesFragment","createDocumentFragment","$textToken","rparen","lparen","$renderToken","replaceFunc","tabIdx","idx4","classToUse","renderIndentGuide","cols","$renderWrappedLine","onlyContents","splitChars","$renderSimpleLine","$getFoldLineTokens","addTokens","renderTokens","$measureNode","isIE8","Cursor","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateVisibility","$updateOpacity","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","blink","getPixelPosition","onScreen","$selectionMarkers","cursorIndex","pixelPos","drawCursor","$setOverwrite","ScrollBar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","$scrollbarWidth","setHeight","setInnerHeight","setScrollHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBarV","ScrollBarH","RenderLoop","onRender","pending","changes","CHAR_COUNT","FontMetrics","$setMeasureNodeStyles","$main","$testFractionalRect","whiteSpace","font","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","setPolling","$measureCharWidth","GutterLayer","MarkerLayer","TextLayer","CursorLayer","VirtualRenderer","onGutterResize","$markerBack","textLayer","$textLayer","canvas","$markerFront","$horizScroll","$vScroll","scrollBar","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","$loop","$renderChanges","CHANGE_FULL","CHANGE_CURSOR","CHANGE_MARKER","CHANGE_GUTTER","CHANGE_SCROLL","CHANGE_LINES","CHANGE_TEXT","CHANGE_SIZE","CHANGE_MARKER_BACK","CHANGE_MARKER_FRONT","CHANGE_H_SCROLL","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","updateFontSize","$changes","$updateSizeAsync","resizing","scrollWidth","$updateCachedSize","$extraHeight","oldSize","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$updateGutterLineHighlight","$gutterLineHighlight","$printMarginEl","containerEl","posTop","posLeft","$composition","setScrollMargin","sm","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","$frozen","unfreeze","st","marginTop","$highlightGutterLine","$updateLines","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","screenLines","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","topMargin","bottomMargin","alignment","STEPS","$calcSteps","fromValue","toValue","steps","x_min","dx","initialScroll","oldSteps","$timer","canvasPos","textToScreenCoordinates","keepTextAreaAtCursor","$themeId","cssClass","$theme","isDark","setMouseCursor","maxPixelHeight","WorkerClient","topLevelNamespaces","classname","workerUrl","$sendDeltaQueue","changeListener","onMessage","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","workerSrc","Blob","blob","blobUrl","webkitURL","createObjectURL","Worker","DOMException","$workerBlob","blobURL","revokeObjectURL","callbackId","callbacks","onmessage","deltaQueue","emit","ex","attachToDocument","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","blobBuilder","getBlob","UIWorkerClient","messageBuffer","main","emitSync","sender","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","selectionBefore","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","updateMarkers","updateMarker","undosRequired","isSamePoint","accel","selectionMode","isMultiSelect","onMouseSelection","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onMouseSelectionEnd","onSelectionInterval","selectMoreLines","selectMore","splitIntoLines","alignCursors","multiSelectCommands","isAvailable","MultiSelect","$multiselectOnSessionChange","$onAddRange","$onRemoveRange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","addAltCursorListeners","altCursor","altDown","getSelectionMarkers","$blockChangeEvents","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","yBackwards","docEnd","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","forEachSelection","keepOrder","$byLines","reg","cmdResult","anim","buf","nl","additive","skip","screenLead","toRemove","tmp","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","alignLeft","startW","textW","endW","alignRight","unAlign","isLeftAligned","isRightAligned","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","addLineWidget","zIndex","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","changedWidgets","fixedWidth","coverLine","fullWidth","binarySearch","comparator","findAnnotations","oldWidget","gutterAnno","sc","arrow","Renderer","_id","getElementById","env","tagName","oldNode","createEditSession","Builder","MSBlobBuilder","bag","builder","endings","JsonHighlightRules","MatchingBraceOutdent","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","worker","showReplaceForm","div","setEditor","$initElements","sb","replaceBox","searchOptions","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","_this","activeInput","$searchBarKb","$closeSearchBarKb","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","Ctrl-Shift-G|Command-Shift-G","findPrev","Return","Shift-Return","Alt-Return","Tab","$syncOptions","noMatch","replaceAndFindNext"],"mappings":"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","file":"jsoneditor"} \ No newline at end of file +undefined \ No newline at end of file diff --git a/dist/jsoneditor.min.css b/dist/jsoneditor.min.css index 204f6e5..e8bb87d 100644 --- a/dist/jsoneditor.min.css +++ b/dist/jsoneditor.min.css @@ -1 +1 @@ -div.jsoneditor .jsoneditor-search input{height:auto;border:inherit}div.jsoneditor .jsoneditor-search input:focus{border:none!important;box-shadow:none!important}div.jsoneditor table{border-collapse:collapse;width:auto}div.jsoneditor td,div.jsoneditor th{padding:0;display:table-cell;text-align:left;vertical-align:inherit;border-radius:inherit}div.jsoneditor-field,div.jsoneditor-readonly,div.jsoneditor-value{border:1px solid transparent;min-height:16px;min-width:32px;padding:2px;margin:1px;word-wrap:break-word;float:left}div.jsoneditor-field p,div.jsoneditor-value p{margin:0}div.jsoneditor-value{word-break:break-word}div.jsoneditor-readonly{min-width:16px;color:gray}div.jsoneditor-empty{border-color:#d3d3d3;border-style:dashed;border-radius:2px}div.jsoneditor-field.jsoneditor-empty::after,div.jsoneditor-value.jsoneditor-empty::after{pointer-events:none;color:#d3d3d3;font-size:8pt}div.jsoneditor-field.jsoneditor-empty::after{content:"field"}div.jsoneditor-value.jsoneditor-empty::after{content:"value"}a.jsoneditor-value.jsoneditor-url,div.jsoneditor-value.jsoneditor-url{color:green;text-decoration:underline}a.jsoneditor-value.jsoneditor-url{display:inline-block;padding:2px;margin:2px}a.jsoneditor-value.jsoneditor-url:focus,a.jsoneditor-value.jsoneditor-url:hover{color:#ee422e}div.jsoneditor td.jsoneditor-separator{padding:3px 0;vertical-align:top;color:gray}div.jsoneditor-field.jsoneditor-highlight,div.jsoneditor-field[contenteditable=true]:focus,div.jsoneditor-field[contenteditable=true]:hover,div.jsoneditor-value.jsoneditor-highlight,div.jsoneditor-value[contenteditable=true]:focus,div.jsoneditor-value[contenteditable=true]:hover{background-color:#ffffab;border:1px solid #ff0;border-radius:2px}div.jsoneditor-field.jsoneditor-highlight-active,div.jsoneditor-field.jsoneditor-highlight-active:focus,div.jsoneditor-field.jsoneditor-highlight-active:hover,div.jsoneditor-value.jsoneditor-highlight-active,div.jsoneditor-value.jsoneditor-highlight-active:focus,div.jsoneditor-value.jsoneditor-highlight-active:hover{background-color:#fe0;border:1px solid #ffc700;border-radius:2px}div.jsoneditor-value.jsoneditor-string{color:green}div.jsoneditor-value.jsoneditor-array,div.jsoneditor-value.jsoneditor-object{min-width:16px;color:grey}div.jsoneditor-value.jsoneditor-number{color:#ee422e}div.jsoneditor-value.jsoneditor-boolean{color:#ff8c00}div.jsoneditor-value.jsoneditor-null{color:#004ed0}div.jsoneditor-value.jsoneditor-invalid{color:#000}div.jsoneditor-tree button{width:24px;height:24px;padding:0;margin:0;border:none;cursor:pointer;background:transparent url(img/jsoneditor-icons.svg)}div.jsoneditor-mode-form tr.jsoneditor-expandable td.jsoneditor-tree,div.jsoneditor-mode-view tr.jsoneditor-expandable td.jsoneditor-tree{cursor:pointer}div.jsoneditor-tree button.jsoneditor-collapsed{background-position:0 -48px}div.jsoneditor-tree button.jsoneditor-expanded{background-position:0 -72px}div.jsoneditor-tree button.jsoneditor-contextmenu{background-position:-48px -72px}div.jsoneditor-tree button.jsoneditor-contextmenu.jsoneditor-selected,div.jsoneditor-tree button.jsoneditor-contextmenu:focus,div.jsoneditor-tree button.jsoneditor-contextmenu:hover,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu{background-position:-48px -48px}div.jsoneditor-tree :focus{outline:0}div.jsoneditor-tree button:focus{background-color:#f5f5f5;outline:#e5e5e5 solid 1px}div.jsoneditor-tree button.jsoneditor-invisible{visibility:hidden;background:0 0}div.jsoneditor{color:#1a1a1a;border:1px solid #3883fa;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;position:relative;padding:0;line-height:100%}div.jsoneditor-tree table.jsoneditor-tree{border-collapse:collapse;border-spacing:0;width:100%;margin:0}div.jsoneditor-outer{position:static;width:100%;height:100%;margin:-35px 0 0 0;padding:35px 0 0 0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.ace-jsoneditor,textarea.jsoneditor-text{min-height:150px}div.jsoneditor-tree{width:100%;height:100%;position:relative;overflow:auto}textarea.jsoneditor-text{width:100%;height:100%;margin:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;outline-width:0;border:none;background-color:#fff;resize:none}tr.jsoneditor-highlight,tr.jsoneditor-selected{background-color:#e6e6e6}tr.jsoneditor-selected button.jsoneditor-contextmenu,tr.jsoneditor-selected button.jsoneditor-dragarea{visibility:hidden}tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea{visibility:visible}div.jsoneditor-tree button.jsoneditor-dragarea{background:url(img/jsoneditor-icons.svg) -72px -72px;cursor:move}div.jsoneditor-tree button.jsoneditor-dragarea:focus,div.jsoneditor-tree button.jsoneditor-dragarea:hover,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea{background-position:-72px -48px}div.jsoneditor td,div.jsoneditor th,div.jsoneditor tr{padding:0;margin:0}div.jsoneditor td{vertical-align:top}div.jsoneditor td.jsoneditor-tree{vertical-align:top}.jsoneditor-schema-error,div.jsoneditor td,div.jsoneditor textarea,div.jsoneditor th,div.jsoneditor-field,div.jsoneditor-value{font-family:droid sans mono,consolas,monospace,courier new,courier,sans-serif;font-size:10pt;color:#1a1a1a}.jsoneditor-schema-error{cursor:default;display:inline-block;height:24px;line-height:24px;position:relative;text-align:center;width:24px}div.jsoneditor-tree .jsoneditor-schema-error{width:24px;height:24px;padding:0;margin:0 4px 0 0;background:url(img/jsoneditor-icons.svg) -168px -48px}.jsoneditor-schema-error .jsoneditor-popover{background-color:#4c4c4c;border-radius:3px;box-shadow:0 0 5px rgba(0,0,0,.4);color:#fff;display:none;padding:7px 10px;position:absolute;width:200px;z-index:4}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-above{bottom:32px;left:-98px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-below{top:32px;left:-98px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-left{top:-7px;right:32px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-right{top:-7px;left:32px}.jsoneditor-schema-error .jsoneditor-popover:before{border-right:7px solid transparent;border-left:7px solid transparent;content:'';display:block;left:50%;margin-left:-7px;position:absolute}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-above:before{border-top:7px solid #4c4c4c;bottom:-7px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-below:before{border-bottom:7px solid #4c4c4c;top:-7px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-left:before{border-left:7px solid #4c4c4c;border-top:7px solid transparent;border-bottom:7px solid transparent;content:'';top:19px;right:-14px;left:inherit;margin-left:inherit;margin-top:-7px;position:absolute}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-right:before{border-right:7px solid #4c4c4c;border-top:7px solid transparent;border-bottom:7px solid transparent;content:'';top:19px;left:-14px;margin-left:inherit;margin-top:-7px;position:absolute}.jsoneditor-schema-error:focus .jsoneditor-popover,.jsoneditor-schema-error:hover .jsoneditor-popover{display:block;-webkit-animation:fade-in .3s linear 1,move-up .3s linear 1;-moz-animation:fade-in .3s linear 1,move-up .3s linear 1;-ms-animation:fade-in .3s linear 1,move-up .3s linear 1}@-webkit-keyframes fade-in{from{opacity:0}to{opacity:1}}@-moz-keyframes fade-in{from{opacity:0}to{opacity:1}}@-ms-keyframes fade-in{from{opacity:0}to{opacity:1}}.jsoneditor .jsoneditor-text-errors{width:100%;border-collapse:collapse;background-color:#ffef8b;border-top:1px solid gold}.jsoneditor .jsoneditor-text-errors td{padding:3px 6px;vertical-align:middle}.jsoneditor-text-errors .jsoneditor-schema-error{border:none;width:24px;height:24px;padding:0;margin:0 4px 0 0;background:url(img/jsoneditor-icons.svg) -168px -48px}div.jsoneditor-contextmenu-root{position:relative;width:0;height:0}div.jsoneditor-contextmenu{position:absolute;box-sizing:content-box;z-index:99999}div.jsoneditor-contextmenu li,div.jsoneditor-contextmenu ul{box-sizing:content-box}div.jsoneditor-contextmenu ul{position:relative;left:0;top:0;width:124px;background:#fff;border:1px solid #d3d3d3;box-shadow:2px 2px 12px rgba(128,128,128,.3);list-style:none;margin:0;padding:0}div.jsoneditor-contextmenu ul li button{padding:0;margin:0;width:124px;height:24px;border:none;cursor:pointer;color:#4d4d4d;background:0 0;font-size:10pt;font-family:arial,sans-serif;box-sizing:border-box;line-height:26px;text-align:left}div.jsoneditor-contextmenu ul li button::-moz-focus-inner{padding:0;border:0}div.jsoneditor-contextmenu ul li button:focus,div.jsoneditor-contextmenu ul li button:hover{color:#1a1a1a;background-color:#f5f5f5;outline:0}div.jsoneditor-contextmenu ul li button.jsoneditor-default{width:92px}div.jsoneditor-contextmenu ul li button.jsoneditor-expand{float:right;width:32px;height:24px;border-left:1px solid #e5e5e5}div.jsoneditor-contextmenu div.jsoneditor-icon{float:left;width:24px;height:24px;border:none;padding:0;margin:0;background-image:url(img/jsoneditor-icons.svg)}div.jsoneditor-contextmenu ul li button div.jsoneditor-expand{float:right;width:24px;height:24px;padding:0;margin:0 4px 0 0;background:url(img/jsoneditor-icons.svg) 0 -72px;opacity:.4}div.jsoneditor-contextmenu ul li button.jsoneditor-expand:focus div.jsoneditor-expand,div.jsoneditor-contextmenu ul li button.jsoneditor-expand:hover div.jsoneditor-expand,div.jsoneditor-contextmenu ul li button:focus div.jsoneditor-expand,div.jsoneditor-contextmenu ul li button:hover div.jsoneditor-expand,div.jsoneditor-contextmenu ul li.jsoneditor-selected div.jsoneditor-expand{opacity:1}div.jsoneditor-contextmenu div.jsoneditor-separator{height:0;border-top:1px solid #e5e5e5;padding-top:5px;margin-top:5px}div.jsoneditor-contextmenu button.jsoneditor-remove>div.jsoneditor-icon{background-position:-24px -24px}div.jsoneditor-contextmenu button.jsoneditor-remove:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-remove:hover>div.jsoneditor-icon{background-position:-24px 0}div.jsoneditor-contextmenu button.jsoneditor-append>div.jsoneditor-icon{background-position:0 -24px}div.jsoneditor-contextmenu button.jsoneditor-append:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-append:hover>div.jsoneditor-icon{background-position:0 0}div.jsoneditor-contextmenu button.jsoneditor-insert>div.jsoneditor-icon{background-position:0 -24px}div.jsoneditor-contextmenu button.jsoneditor-insert:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-insert:hover>div.jsoneditor-icon{background-position:0 0}div.jsoneditor-contextmenu button.jsoneditor-duplicate>div.jsoneditor-icon{background-position:-48px -24px}div.jsoneditor-contextmenu button.jsoneditor-duplicate:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-duplicate:hover>div.jsoneditor-icon{background-position:-48px 0}div.jsoneditor-contextmenu button.jsoneditor-sort-asc>div.jsoneditor-icon{background-position:-168px -24px}div.jsoneditor-contextmenu button.jsoneditor-sort-asc:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-sort-asc:hover>div.jsoneditor-icon{background-position:-168px 0}div.jsoneditor-contextmenu button.jsoneditor-sort-desc>div.jsoneditor-icon{background-position:-192px -24px}div.jsoneditor-contextmenu button.jsoneditor-sort-desc:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-sort-desc:hover>div.jsoneditor-icon{background-position:-192px 0}div.jsoneditor-contextmenu ul li button.jsoneditor-selected,div.jsoneditor-contextmenu ul li button.jsoneditor-selected:focus,div.jsoneditor-contextmenu ul li button.jsoneditor-selected:hover{color:#fff;background-color:#ee422e}div.jsoneditor-contextmenu ul li{overflow:hidden}div.jsoneditor-contextmenu ul li ul{display:none;position:relative;left:-10px;top:0;border:none;box-shadow:inset 0 0 10px rgba(128,128,128,.5);padding:0 10px;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}div.jsoneditor-contextmenu ul li ul li button{padding-left:24px;animation:all ease-in-out 1s}div.jsoneditor-contextmenu ul li ul li button:focus,div.jsoneditor-contextmenu ul li ul li button:hover{background-color:#f5f5f5}div.jsoneditor-contextmenu button.jsoneditor-type-string>div.jsoneditor-icon{background-position:-144px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-string.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-string:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-string:hover>div.jsoneditor-icon{background-position:-144px 0}div.jsoneditor-contextmenu button.jsoneditor-type-auto>div.jsoneditor-icon{background-position:-120px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-auto.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-auto:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-auto:hover>div.jsoneditor-icon{background-position:-120px 0}div.jsoneditor-contextmenu button.jsoneditor-type-object>div.jsoneditor-icon{background-position:-72px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-object.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-object:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-object:hover>div.jsoneditor-icon{background-position:-72px 0}div.jsoneditor-contextmenu button.jsoneditor-type-array>div.jsoneditor-icon{background-position:-96px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-array.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-array:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-array:hover>div.jsoneditor-icon{background-position:-96px 0}div.jsoneditor-contextmenu button.jsoneditor-type-modes>div.jsoneditor-icon{background-image:none;width:6px}div.jsoneditor-menu{width:100%;height:35px;padding:2px;margin:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;background-color:#3883fa;border-bottom:1px solid #3883fa}div.jsoneditor-menu>button,div.jsoneditor-menu>div.jsoneditor-modes>button{width:26px;height:26px;margin:2px;padding:0;border-radius:2px;border:1px solid transparent;background:transparent url(img/jsoneditor-icons.svg);color:#fff;opacity:.8;font-family:arial,sans-serif;font-size:10pt;float:left}div.jsoneditor-menu>button:hover,div.jsoneditor-menu>div.jsoneditor-modes>button:hover{background-color:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.4)}div.jsoneditor-menu>button:active,div.jsoneditor-menu>button:focus,div.jsoneditor-menu>div.jsoneditor-modes>button:active,div.jsoneditor-menu>div.jsoneditor-modes>button:focus{background-color:rgba(255,255,255,.3)}div.jsoneditor-menu>button:disabled,div.jsoneditor-menu>div.jsoneditor-modes>button:disabled{opacity:.5}div.jsoneditor-menu>button.jsoneditor-collapse-all{background-position:0 -96px}div.jsoneditor-menu>button.jsoneditor-expand-all{background-position:0 -120px}div.jsoneditor-menu>button.jsoneditor-undo{background-position:-24px -96px}div.jsoneditor-menu>button.jsoneditor-undo:disabled{background-position:-24px -120px}div.jsoneditor-menu>button.jsoneditor-redo{background-position:-48px -96px}div.jsoneditor-menu>button.jsoneditor-redo:disabled{background-position:-48px -120px}div.jsoneditor-menu>button.jsoneditor-compact{background-position:-72px -96px}div.jsoneditor-menu>button.jsoneditor-format{background-position:-72px -120px}div.jsoneditor-menu>div.jsoneditor-modes{display:inline-block;float:left}div.jsoneditor-menu>div.jsoneditor-modes>button{background-image:none;width:auto;padding-left:6px;padding-right:6px}div.jsoneditor-menu>button.jsoneditor-separator,div.jsoneditor-menu>div.jsoneditor-modes>button.jsoneditor-separator{margin-left:10px}div.jsoneditor-menu a{font-family:arial,sans-serif;font-size:10pt;color:#fff;opacity:.8;vertical-align:middle}div.jsoneditor-menu a:hover{opacity:1}div.jsoneditor-menu a.jsoneditor-poweredBy{font-size:8pt;position:absolute;right:0;top:0;padding:10px}table.jsoneditor-search div.jsoneditor-results,table.jsoneditor-search input{font-family:arial,sans-serif;font-size:10pt;color:#1a1a1a;background:0 0}table.jsoneditor-search div.jsoneditor-results{color:#fff;padding-right:5px;line-height:24px}table.jsoneditor-search{position:absolute;right:4px;top:4px;border-collapse:collapse;border-spacing:0}table.jsoneditor-search div.jsoneditor-frame{border:1px solid transparent;background-color:#fff;padding:0 2px;margin:0}table.jsoneditor-search div.jsoneditor-frame table{border-collapse:collapse}table.jsoneditor-search input{width:120px;border:none;outline:0;margin:1px;line-height:20px}table.jsoneditor-search button{width:16px;height:24px;padding:0;margin:0;border:none;background:url(img/jsoneditor-icons.svg);vertical-align:top}table.jsoneditor-search button:hover{background-color:transparent}table.jsoneditor-search button.jsoneditor-refresh{width:18px;background-position:-99px -73px}table.jsoneditor-search button.jsoneditor-next{cursor:pointer;background-position:-124px -73px}table.jsoneditor-search button.jsoneditor-next:hover{background-position:-124px -49px}table.jsoneditor-search button.jsoneditor-previous{cursor:pointer;background-position:-148px -73px;margin-right:2px}table.jsoneditor-search button.jsoneditor-previous:hover{background-position:-148px -49px} \ No newline at end of file +div.jsoneditor .jsoneditor-search input{height:auto;border:inherit}div.jsoneditor .jsoneditor-search input:focus{border:none!important;box-shadow:none!important}div.jsoneditor table{border-collapse:collapse;width:auto}div.jsoneditor td,div.jsoneditor th{padding:0;display:table-cell;text-align:left;vertical-align:inherit;border-radius:inherit}div.jsoneditor-field,div.jsoneditor-readonly,div.jsoneditor-value{border:1px solid transparent;min-height:16px;min-width:32px;padding:2px;margin:1px;word-wrap:break-word;float:left}div.jsoneditor-field p,div.jsoneditor-value p{margin:0}div.jsoneditor-value{word-break:break-word}div.jsoneditor-readonly{min-width:16px;color:gray}div.jsoneditor-empty{border-color:#d3d3d3;border-style:dashed;border-radius:2px}div.jsoneditor-field.jsoneditor-empty::after,div.jsoneditor-value.jsoneditor-empty::after{pointer-events:none;color:#d3d3d3;font-size:8pt}div.jsoneditor-field.jsoneditor-empty::after{content:"field"}div.jsoneditor-value.jsoneditor-empty::after{content:"value"}a.jsoneditor-value.jsoneditor-url,div.jsoneditor-value.jsoneditor-url{color:green;text-decoration:underline}a.jsoneditor-value.jsoneditor-url{display:inline-block;padding:2px;margin:2px}a.jsoneditor-value.jsoneditor-url:focus,a.jsoneditor-value.jsoneditor-url:hover{color:#ee422e}div.jsoneditor td.jsoneditor-separator{padding:3px 0;vertical-align:top;color:gray}div.jsoneditor-field.jsoneditor-highlight,div.jsoneditor-field[contenteditable=true]:focus,div.jsoneditor-field[contenteditable=true]:hover,div.jsoneditor-value.jsoneditor-highlight,div.jsoneditor-value[contenteditable=true]:focus,div.jsoneditor-value[contenteditable=true]:hover{background-color:#ffffab;border:1px solid #ff0;border-radius:2px}div.jsoneditor-field.jsoneditor-highlight-active,div.jsoneditor-field.jsoneditor-highlight-active:focus,div.jsoneditor-field.jsoneditor-highlight-active:hover,div.jsoneditor-value.jsoneditor-highlight-active,div.jsoneditor-value.jsoneditor-highlight-active:focus,div.jsoneditor-value.jsoneditor-highlight-active:hover{background-color:#fe0;border:1px solid #ffc700;border-radius:2px}div.jsoneditor-value.jsoneditor-string{color:green}div.jsoneditor-value.jsoneditor-array,div.jsoneditor-value.jsoneditor-object{min-width:16px;color:grey}div.jsoneditor-value.jsoneditor-number{color:#ee422e}div.jsoneditor-value.jsoneditor-boolean{color:#ff8c00}div.jsoneditor-value.jsoneditor-null{color:#004ed0}div.jsoneditor-value.jsoneditor-invalid{color:#000}div.jsoneditor-tree button{width:24px;height:24px;padding:0;margin:0;border:none;cursor:pointer;background:transparent url(img/jsoneditor-icons.svg)}div.jsoneditor-mode-form tr.jsoneditor-expandable td.jsoneditor-tree,div.jsoneditor-mode-view tr.jsoneditor-expandable td.jsoneditor-tree{cursor:pointer}div.jsoneditor-tree button.jsoneditor-collapsed{background-position:0 -48px}div.jsoneditor-tree button.jsoneditor-expanded{background-position:0 -72px}div.jsoneditor-tree button.jsoneditor-contextmenu{background-position:-48px -72px}div.jsoneditor-tree button.jsoneditor-contextmenu.jsoneditor-selected,div.jsoneditor-tree button.jsoneditor-contextmenu:focus,div.jsoneditor-tree button.jsoneditor-contextmenu:hover,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu{background-position:-48px -48px}div.jsoneditor-tree :focus{outline:0}div.jsoneditor-tree button:focus{background-color:#f5f5f5;outline:#e5e5e5 solid 1px}div.jsoneditor-tree button.jsoneditor-invisible{visibility:hidden;background:0 0}div.jsoneditor{color:#1a1a1a;border:1px solid #3883fa;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;position:relative;padding:0;line-height:100%}div.jsoneditor-tree table.jsoneditor-tree{border-collapse:collapse;border-spacing:0;width:100%;margin:0}div.jsoneditor-outer{position:static;width:100%;height:100%;margin:-35px 0 0 0;padding:35px 0 0 0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.ace-jsoneditor,textarea.jsoneditor-text{min-height:150px}div.jsoneditor-tree{width:100%;height:100%;position:relative;overflow:auto}textarea.jsoneditor-text{width:100%;height:100%;margin:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;outline-width:0;border:none;background-color:#fff;resize:none}tr.jsoneditor-highlight,tr.jsoneditor-selected{background-color:#e6e6e6}tr.jsoneditor-selected button.jsoneditor-contextmenu,tr.jsoneditor-selected button.jsoneditor-dragarea{visibility:hidden}tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea{visibility:visible}div.jsoneditor-tree button.jsoneditor-dragarea{background:url(img/jsoneditor-icons.svg) -72px -72px;cursor:move}div.jsoneditor-tree button.jsoneditor-dragarea:focus,div.jsoneditor-tree button.jsoneditor-dragarea:hover,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea{background-position:-72px -48px}div.jsoneditor td,div.jsoneditor th,div.jsoneditor tr{padding:0;margin:0}div.jsoneditor td{vertical-align:top}div.jsoneditor td.jsoneditor-tree{vertical-align:top}.jsoneditor-schema-error,div.jsoneditor td,div.jsoneditor textarea,div.jsoneditor th,div.jsoneditor-field,div.jsoneditor-value{font-family:droid sans mono,consolas,monospace,courier new,courier,sans-serif;font-size:10pt;color:#1a1a1a}.jsoneditor-schema-error{cursor:default;display:inline-block;height:24px;line-height:24px;position:relative;text-align:center;width:24px}div.jsoneditor-tree .jsoneditor-schema-error{width:24px;height:24px;padding:0;margin:0 4px 0 0;background:url(img/jsoneditor-icons.svg) -168px -48px}.jsoneditor-schema-error .jsoneditor-popover{background-color:#4c4c4c;border-radius:3px;box-shadow:0 0 5px rgba(0,0,0,.4);color:#fff;display:none;padding:7px 10px;position:absolute;width:200px;z-index:4}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-above{bottom:32px;left:-98px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-below{top:32px;left:-98px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-left{top:-7px;right:32px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-right{top:-7px;left:32px}.jsoneditor-schema-error .jsoneditor-popover:before{border-right:7px solid transparent;border-left:7px solid transparent;content:'';display:block;left:50%;margin-left:-7px;position:absolute}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-above:before{border-top:7px solid #4c4c4c;bottom:-7px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-below:before{border-bottom:7px solid #4c4c4c;top:-7px}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-left:before{border-left:7px solid #4c4c4c;border-top:7px solid transparent;border-bottom:7px solid transparent;content:'';top:19px;right:-14px;left:inherit;margin-left:inherit;margin-top:-7px;position:absolute}.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-right:before{border-right:7px solid #4c4c4c;border-top:7px solid transparent;border-bottom:7px solid transparent;content:'';top:19px;left:-14px;margin-left:inherit;margin-top:-7px;position:absolute}.jsoneditor-schema-error:focus .jsoneditor-popover,.jsoneditor-schema-error:hover .jsoneditor-popover{display:block;-webkit-animation:fade-in .3s linear 1,move-up .3s linear 1;-moz-animation:fade-in .3s linear 1,move-up .3s linear 1;-ms-animation:fade-in .3s linear 1,move-up .3s linear 1}@-webkit-keyframes fade-in{from{opacity:0}to{opacity:1}}@-moz-keyframes fade-in{from{opacity:0}to{opacity:1}}@-ms-keyframes fade-in{from{opacity:0}to{opacity:1}}.jsoneditor .jsoneditor-text-errors{width:100%;border-collapse:collapse;background-color:#ffef8b;border-top:1px solid gold}.jsoneditor .jsoneditor-text-errors td{padding:3px 6px;vertical-align:middle}.jsoneditor-text-errors .jsoneditor-schema-error{border:none;width:24px;height:24px;padding:0;margin:0 4px 0 0;background:url(img/jsoneditor-icons.svg) -168px -48px}div.jsoneditor-contextmenu-root{position:relative;width:0;height:0}div.jsoneditor-contextmenu{position:absolute;box-sizing:content-box;z-index:99999}div.jsoneditor-contextmenu li,div.jsoneditor-contextmenu ul{box-sizing:content-box}div.jsoneditor-contextmenu ul{position:relative;left:0;top:0;width:124px;background:#fff;border:1px solid #d3d3d3;box-shadow:2px 2px 12px rgba(128,128,128,.3);list-style:none;margin:0;padding:0}div.jsoneditor-contextmenu ul li button{padding:0;margin:0;width:124px;height:24px;border:none;cursor:pointer;color:#4d4d4d;background:0 0;font-size:10pt;font-family:arial,sans-serif;box-sizing:border-box;line-height:26px;text-align:left}div.jsoneditor-contextmenu ul li button::-moz-focus-inner{padding:0;border:0}div.jsoneditor-contextmenu ul li button:focus,div.jsoneditor-contextmenu ul li button:hover{color:#1a1a1a;background-color:#f5f5f5;outline:0}div.jsoneditor-contextmenu ul li button.jsoneditor-default{width:92px}div.jsoneditor-contextmenu ul li button.jsoneditor-expand{float:right;width:32px;height:24px;border-left:1px solid #e5e5e5}div.jsoneditor-contextmenu div.jsoneditor-icon{float:left;width:24px;height:24px;border:none;padding:0;margin:0;background-image:url(img/jsoneditor-icons.svg)}div.jsoneditor-contextmenu ul li button div.jsoneditor-expand{float:right;width:24px;height:24px;padding:0;margin:0 4px 0 0;background:url(img/jsoneditor-icons.svg) 0 -72px;opacity:.4}div.jsoneditor-contextmenu ul li button.jsoneditor-expand:focus div.jsoneditor-expand,div.jsoneditor-contextmenu ul li button.jsoneditor-expand:hover div.jsoneditor-expand,div.jsoneditor-contextmenu ul li button:focus div.jsoneditor-expand,div.jsoneditor-contextmenu ul li button:hover div.jsoneditor-expand,div.jsoneditor-contextmenu ul li.jsoneditor-selected div.jsoneditor-expand{opacity:1}div.jsoneditor-contextmenu div.jsoneditor-separator{height:0;border-top:1px solid #e5e5e5;padding-top:5px;margin-top:5px}div.jsoneditor-contextmenu button.jsoneditor-remove>div.jsoneditor-icon{background-position:-24px -24px}div.jsoneditor-contextmenu button.jsoneditor-remove:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-remove:hover>div.jsoneditor-icon{background-position:-24px 0}div.jsoneditor-contextmenu button.jsoneditor-append>div.jsoneditor-icon{background-position:0 -24px}div.jsoneditor-contextmenu button.jsoneditor-append:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-append:hover>div.jsoneditor-icon{background-position:0 0}div.jsoneditor-contextmenu button.jsoneditor-insert>div.jsoneditor-icon{background-position:0 -24px}div.jsoneditor-contextmenu button.jsoneditor-insert:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-insert:hover>div.jsoneditor-icon{background-position:0 0}div.jsoneditor-contextmenu button.jsoneditor-duplicate>div.jsoneditor-icon{background-position:-48px -24px}div.jsoneditor-contextmenu button.jsoneditor-duplicate:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-duplicate:hover>div.jsoneditor-icon{background-position:-48px 0}div.jsoneditor-contextmenu button.jsoneditor-sort-asc>div.jsoneditor-icon{background-position:-168px -24px}div.jsoneditor-contextmenu button.jsoneditor-sort-asc:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-sort-asc:hover>div.jsoneditor-icon{background-position:-168px 0}div.jsoneditor-contextmenu button.jsoneditor-sort-desc>div.jsoneditor-icon{background-position:-192px -24px}div.jsoneditor-contextmenu button.jsoneditor-sort-desc:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-sort-desc:hover>div.jsoneditor-icon{background-position:-192px 0}div.jsoneditor-contextmenu ul li button.jsoneditor-selected,div.jsoneditor-contextmenu ul li button.jsoneditor-selected:focus,div.jsoneditor-contextmenu ul li button.jsoneditor-selected:hover{color:#fff;background-color:#ee422e}div.jsoneditor-contextmenu ul li{overflow:hidden}div.jsoneditor-contextmenu ul li ul{display:none;position:relative;left:-10px;top:0;border:none;box-shadow:inset 0 0 10px rgba(128,128,128,.5);padding:0 10px;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}div.jsoneditor-contextmenu ul li ul li button{padding-left:24px;animation:all ease-in-out 1s}div.jsoneditor-contextmenu ul li ul li button:focus,div.jsoneditor-contextmenu ul li ul li button:hover{background-color:#f5f5f5}div.jsoneditor-contextmenu button.jsoneditor-type-string>div.jsoneditor-icon{background-position:-144px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-string.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-string:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-string:hover>div.jsoneditor-icon{background-position:-144px 0}div.jsoneditor-contextmenu button.jsoneditor-type-auto>div.jsoneditor-icon{background-position:-120px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-auto.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-auto:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-auto:hover>div.jsoneditor-icon{background-position:-120px 0}div.jsoneditor-contextmenu button.jsoneditor-type-object>div.jsoneditor-icon{background-position:-72px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-object.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-object:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-object:hover>div.jsoneditor-icon{background-position:-72px 0}div.jsoneditor-contextmenu button.jsoneditor-type-array>div.jsoneditor-icon{background-position:-96px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-array.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-array:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-array:hover>div.jsoneditor-icon{background-position:-96px 0}div.jsoneditor-contextmenu button.jsoneditor-type-modes>div.jsoneditor-icon{background-image:none;width:6px}div.jsoneditor-menu{width:100%;height:35px;padding:2px;margin:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;background-color:#3883fa;border-bottom:1px solid #3883fa}div.jsoneditor-menu>button,div.jsoneditor-menu>div.jsoneditor-modes>button{width:26px;height:26px;margin:2px;padding:0;border-radius:2px;border:1px solid transparent;background:transparent url(img/jsoneditor-icons.svg);color:#fff;opacity:.8;font-family:arial,sans-serif;font-size:10pt;float:left}div.jsoneditor-menu>button:hover,div.jsoneditor-menu>div.jsoneditor-modes>button:hover{background-color:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.4)}div.jsoneditor-menu>button:active,div.jsoneditor-menu>button:focus,div.jsoneditor-menu>div.jsoneditor-modes>button:active,div.jsoneditor-menu>div.jsoneditor-modes>button:focus{background-color:rgba(255,255,255,.3)}div.jsoneditor-menu>button:disabled,div.jsoneditor-menu>div.jsoneditor-modes>button:disabled{opacity:.5}div.jsoneditor-menu>button.jsoneditor-collapse-all{background-position:0 -96px}div.jsoneditor-menu>button.jsoneditor-expand-all{background-position:0 -120px}div.jsoneditor-menu>button.jsoneditor-undo{background-position:-24px -96px}div.jsoneditor-menu>button.jsoneditor-undo:disabled{background-position:-24px -120px}div.jsoneditor-menu>button.jsoneditor-redo{background-position:-48px -96px}div.jsoneditor-menu>button.jsoneditor-redo:disabled{background-position:-48px -120px}div.jsoneditor-menu>button.jsoneditor-compact{background-position:-72px -96px}div.jsoneditor-menu>button.jsoneditor-format{background-position:-72px -120px}div.jsoneditor-menu>div.jsoneditor-modes{display:inline-block;float:left}div.jsoneditor-menu>div.jsoneditor-modes>button{background-image:none;width:auto;padding-left:6px;padding-right:6px}div.jsoneditor-menu>button.jsoneditor-separator,div.jsoneditor-menu>div.jsoneditor-modes>button.jsoneditor-separator{margin-left:10px}div.jsoneditor-menu a{font-family:arial,sans-serif;font-size:10pt;color:#fff;opacity:.8;vertical-align:middle}div.jsoneditor-menu a:hover{opacity:1}div.jsoneditor-menu a.jsoneditor-poweredBy{font-size:8pt;position:absolute;right:0;top:0;padding:10px}table.jsoneditor-search div.jsoneditor-results,table.jsoneditor-search input{font-family:arial,sans-serif;font-size:10pt;color:#1a1a1a;background:0 0}table.jsoneditor-search div.jsoneditor-results{color:#fff;padding-right:5px;line-height:24px}table.jsoneditor-search{position:absolute;right:4px;top:4px;border-collapse:collapse;border-spacing:0}table.jsoneditor-search div.jsoneditor-frame{border:1px solid transparent;background-color:#fff;padding:0 2px;margin:0}table.jsoneditor-search div.jsoneditor-frame table{border-collapse:collapse}table.jsoneditor-search input{width:120px;border:none;outline:0;margin:1px;line-height:20px}table.jsoneditor-search button{width:16px;height:24px;padding:0;margin:0;border:none;background:url(img/jsoneditor-icons.svg);vertical-align:top}table.jsoneditor-search button:hover{background-color:transparent}table.jsoneditor-search button.jsoneditor-refresh{width:18px;background-position:-99px -73px}table.jsoneditor-search button.jsoneditor-next{cursor:pointer;background-position:-124px -73px}table.jsoneditor-search button.jsoneditor-next:hover{background-position:-124px -49px}table.jsoneditor-search button.jsoneditor-previous{cursor:pointer;background-position:-148px -73px;margin-right:2px}table.jsoneditor-search button.jsoneditor-previous:hover{background-position:-148px -49px}div.jsoneditor div.autocomplete.dropdown{position:absolute;background:#fff;box-shadow:2px 2px 12px rgba(128,128,128,.3);border:1px solid #d3d3d3;z-index:100;overflow-x:hidden;overflow-y:auto;cursor:default;margin:0;padding-left:2pt;padding-right:5pt;text-align:left;outline:0;font-family:droid sans mono,consolas,monospace,courier new,courier,sans-serif;font-size:10pt}div.jsoneditor div.autocomplete.dropdown .item{color:#333}div.jsoneditor div.autocomplete.dropdown .item.hover{background-color:#ddd}div.jsoneditor div.autocomplete.hint{color:#aaa;top:4px;left:4px} \ No newline at end of file diff --git a/dist/jsoneditor.min.js b/dist/jsoneditor.min.js index bcac725..66dc905 100644 --- a/dist/jsoneditor.min.js +++ b/dist/jsoneditor.min.js @@ -1,40 +1 @@ -/*! - * jsoneditor.js - * - * @brief - * JSONEditor is a web-based tool to view, edit, format, and validate JSON. - * It has various modes such as a tree editor, a code editor, and a plain text - * editor. - * - * Supported browsers: Chrome, Firefox, Safari, Opera, Internet Explorer 8+ - * - * @license - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy - * of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - * - * Copyright (c) 2011-2017 Jos de Jong, http://jsoneditoronline.org - * - * @author Jos de Jong, - * @version 5.7.2 - * @date 2017-06-27 - */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(n){if(i[n])return i[n].exports;var r=i[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}([function(e,t,i){"use strict";function n(e,t,i){if(!(this instanceof n))throw new Error('JSONEditor constructor called without "new".');var r=a.getInternetExplorerVersion();if(-1!=r&&r<9)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");if(t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t)){var o=["ace","theme","ajv","schema","templates","onChange","onEditable","onError","onModeChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys"];Object.keys(t).forEach(function(e){-1===o.indexOf(e)&&console.warn('Unknown option "'+e+'". This option will be ignored')})}arguments.length&&this._create(e,t,i)}var r;try{r=i(1)}catch(e){}var o=i(54),s=i(65),a=i(57);n.modes={},n.prototype.DEBOUNCE_INTERVAL=150,n.prototype._create=function(e,t,i){this.container=e,this.options=t||{},this.json=i||{};var n=this.options.mode||"tree";this.setMode(n)},n.prototype.destroy=function(){},n.prototype.set=function(e){this.json=e},n.prototype.get=function(){return this.json},n.prototype.setText=function(e){this.json=a.parse(e)},n.prototype.getText=function(){return JSON.stringify(this.json)},n.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},n.prototype.getName=function(){return this.options&&this.options.name},n.prototype.setMode=function(e){var t,i,r=this.container,o=a.extend({},this.options),s=o.mode;o.mode=e;var l=n.modes[e];if(!l)throw new Error('Unknown mode "'+o.mode+'"');try{var c="text"==l.data;if(i=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(r,o),this.setName(i),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof o.onModeChange&&e!==s)try{o.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},n.prototype.getMode=function(){return this.options.mode},n.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},n.prototype.setSchema=function(e){if(e){var t;try{t=this.options.ajv||r({allErrors:!0,verbose:!0})}catch(e){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}t&&(this.validateSchema=t.compile(e),this.options.schema=e,this.validate()),this.refresh()}else this.validateSchema=null,this.options.schema=null,this.validate(),this.refresh()},n.prototype.validate=function(){},n.prototype.refresh=function(){},n.registerMode=function(e){var t,i;if(a.isArray(e))for(t=0;t=0?{index:n,compiling:!0}:(n=this._compilations.length,this._compilations[n]={schema:e,root:t,baseId:i},{index:n,compiling:!1})}function o(e,t,i){var n=s.call(this,e,t,i);n>=0&&this._compilations.splice(n,1)}function s(e,t,i){for(var n=0;n",'"',"`"," ","\r","\n","\t"],m=["{","}","|","\\","^","`"].concat(g),v=["'"].concat(m),w=["%","/","?",";","#"].concat(v),y=["/","?","#"],A={javascript:!0,"javascript:":!0},C={javascript:!0,"javascript:":!0},E={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=i(7);n.prototype.parse=function(e,t,i){if(!l(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var n=e;n=n.trim();var r=f.exec(n);if(r){r=r[0];var o=r.toLowerCase();this.protocol=o,n=n.substr(r.length)}if(i||r||n.match(/^\/\/[^@\/]+@[^@\/]+/)){var s="//"===n.substr(0,2);!s||r&&C[r]||(n=n.substr(2),this.slashes=!0)}if(!C[r]&&(s||r&&!E[r])){for(var a=-1,c=0;c127?S+="x":S+=x[$];if(!S.match(/^[a-z0-9A-Z_-]{0,63}$/)){var k=m.slice(0,c),B=m.slice(c+1),_=x.match(/^([a-z0-9A-Z_-]{0,63})(.*)$/);_&&(k.push(_[1]),B.unshift(_[2])),B.length&&(n="/"+B.join(".")+n),this.hostname=k.join(".");break}}}if(this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),!g){for(var L=this.hostname.split("."),R=[],c=0;c0)&&i.host.split("@");m&&(i.auth=m.shift(),i.host=i.hostname=m.shift())}return i.search=e.search,i.query=e.query,h(i.pathname)&&h(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.href=i.format(),i}if(!p.length)return i.pathname=null,i.search?i.path="/"+i.search:i.path=null,i.href=i.format(),i;for(var v=p.slice(-1)[0],w=(i.host||e.host)&&("."===v||".."===v)||""===v,y=0,A=p.length;A>=0;A--)v=p[A],"."==v?p.splice(A,1):".."===v?(p.splice(A,1),y++):y&&(p.splice(A,1),y--);if(!d&&!f)for(;y--;y)p.unshift("..");!d||""===p[0]||p[0]&&"/"===p[0].charAt(0)||p.unshift(""),w&&"/"!==p.join("/").substr(-1)&&p.push("");var b=""===p[0]||p[0]&&"/"===p[0].charAt(0);if(g){i.hostname=i.host=b?"":p.length?p.shift():"";var m=!!(i.host&&i.host.indexOf("@")>0)&&i.host.split("@");m&&(i.auth=m.shift(),i.host=i.hostname=m.shift())}return d=d||i.host&&p.length,d&&!b&&p.unshift(""),p.length?i.pathname=p.join("/"):(i.pathname=null,i.path=null),h(i.pathname)&&h(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.auth=e.auth||i.auth,i.slashes=i.slashes||e.slashes,i.href=i.format(),i},n.prototype.parseHost=function(){var e=this.host,t=p.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,i){var n;(function(e,r){!function(o){function s(e){throw RangeError(L[e])}function a(e,t){for(var i=e.length,n=[];i--;)n[i]=t(e[i]);return n}function l(e,t){var i=e.split("@"),n="";return i.length>1&&(n=i[0]+"@",e=i[1]),e=e.replace(_,"."),n+a(e.split("."),t).join(".")}function c(e){for(var t,i,n=[],r=0,o=e.length;r=55296&&t<=56319&&r65535&&(e-=65536,t+=P(e>>>10&1023|55296),e=56320|1023&e),t+=P(e)}).join("")}function u(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:C}function d(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function f(e,t,i){var n=0;for(e=i?T(e/x):e>>1,e+=T(e/t);e>R*b>>1;n+=C)e=T(e/R);return T(n+(R+1)*e/(e+F))}function p(e){var t,i,n,r,o,a,l,c,d,p,g=[],m=e.length,v=0,w=$,y=S;for(i=e.lastIndexOf(D),i<0&&(i=0),n=0;n=128&&s("not-basic"),g.push(e.charCodeAt(n));for(r=i>0?i+1:0;r=m&&s("invalid-input"),c=u(e.charCodeAt(r++)),(c>=C||c>T((A-v)/a))&&s("overflow"),v+=c*a,d=l<=y?E:l>=y+b?b:l-y,!(cT(A/p)&&s("overflow"),a*=p;t=g.length+1,y=f(v-o,t,0==o),T(v/t)>A-w&&s("overflow"),w+=T(v/t),v%=t,g.splice(v++,0,w)}return h(g)}function g(e){var t,i,n,r,o,a,l,h,u,p,g,m,v,w,y,F=[];for(e=c(e),m=e.length,t=$,i=0,o=S,a=0;a=t&&gT((A-i)/v)&&s("overflow"),i+=(l-t)*v,t=l,a=0;aA&&s("overflow"),g==t){for(h=i,u=C;p=u<=o?E:u>=o+b?b:u-o,!(h= 0x80 (not a basic code point)","invalid-input":"Invalid input"},R=C-E,T=Math.floor,P=String.fromCharCode;y={version:"1.3.2",ucs2:{decode:c,encode:h},decode:p,encode:g,toASCII:v,toUnicode:m},void 0!==(n=function(){return y}.call(t,i,t,e))&&(e.exports=n)}()}).call(t,i(6)(e),function(){return this}())},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t,i){"use strict";t.decode=t.parse=i(8),t.encode=t.stringify=i(9)},function(e,t){"use strict";function i(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,r){t=t||"&",n=n||"=";var o={};if("string"!=typeof e||0===e.length)return o;e=e.split(t);var s=1e3;r&&"number"==typeof r.maxKeys&&(s=r.maxKeys);var a=e.length;s>0&&a>s&&(a=s);for(var l=0;l=0?(c=f.substr(0,p),h=f.substr(p+1)):(c=f,h=""),u=decodeURIComponent(c),d=decodeURIComponent(h),i(o,u)?Array.isArray(o[u])?o[u].push(d):o[u]=[o[u],d]:o[u]=d}return o}},function(e,t){"use strict";var i=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,r){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map(function(r){var o=encodeURIComponent(i(r))+n;return Array.isArray(e[r])?e[r].map(function(e){return o+encodeURIComponent(i(e))}).join(t):o+encodeURIComponent(i(e[r]))}).join(t):r?encodeURIComponent(i(r))+n+encodeURIComponent(i(e)):""}},function(e,t){"use strict";e.exports=function e(t,i){if(t===i)return!0;var n,r=Array.isArray(t),o=Array.isArray(i);if(r&&o){if(t.length!=i.length)return!1;for(n=0;n=t)throw new Error("Cannot access property/index "+n+" levels up, current level is "+t);return i[t-n]}if(n>t)throw new Error("Cannot access data "+n+" levels up, current level is "+t);if(o="data"+(t-n||""),!r)return o}for(var a=o,c=r.split("/"),h=0;h=55296&&t<=56319&&r="0"&&n<="9";)t+=n,l();if("."===n)for(t+=".";l()&&n>="0"&&n<="9";)t+=n;if("e"===n||"E"===n)for(t+=n,l(),"-"!==n&&"+"!==n||(t+=n,l());n>="0"&&n<="9";)t+=n,l();if(e=+t,isFinite(e))return e;a("Bad number")},h=function(){var e,t,i,r="";if('"'===n)for(;l();){if('"'===n)return l(),r;if("\\"===n)if(l(),"u"===n){for(i=0,t=0;t<4&&(e=parseInt(l(),16),isFinite(e));t+=1)i=16*i+e;r+=String.fromCharCode(i)}else{if("string"!=typeof s[n])break;r+=s[n]}else r+=n}a("Bad string")},u=function(){for(;n&&n<=" ";)l()},d=function(){switch(n){case"t":return l("t"),l("r"),l("u"),l("e"),!0;case"f":return l("f"),l("a"),l("l"),l("s"),l("e"),!1;case"n":return l("n"),l("u"),l("l"),l("l"),null}a("Unexpected '"+n+"'")},f=function(){var e=[];if("["===n){if(l("["),u(),"]"===n)return l("]"),e;for(;n;){if(e.push(o()),u(),"]"===n)return l("]"),e;l(","),u()}}a("Bad array")},p=function(){var e,t={};if("{"===n){if(l("{"),u(),"}"===n)return l("}"),t;for(;n;){if(e=h(),u(),l(":"),Object.hasOwnProperty.call(t,e)&&a('Duplicate key "'+e+'"'),t[e]=o(),u(),"}"===n)return l("}"),t;l(","),u()}}a("Bad object")};o=function(){switch(u(),n){case"{":return p();case"[":return f();case'"':return h();case"-":return c();default:return n>="0"&&n<="9"?c():d()}},e.exports=function(e,t){var s;return r=e,i=0,n=" ",s=o(),u(),n&&a("Syntax error"),"function"==typeof t?function e(i,n){var r,o,s=i[n];if(s&&"object"==typeof s)for(r in s)Object.prototype.hasOwnProperty.call(s,r)&&(o=e(s,r),void 0!==o?s[r]=o:delete s[r]);return t.call(i,n,s)}({"":s},""):s}},function(e,t){function i(e){return a.lastIndex=0,a.test(e)?'"'+e.replace(a,function(e){var t=l[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'}function n(e,t){var a,l,c,h,u,d=r,f=t[e];switch(f&&"object"==typeof f&&"function"==typeof f.toJSON&&(f=f.toJSON(e)),"function"==typeof s&&(f=s.call(t,e,f)),typeof f){case"string":return i(f);case"number":return isFinite(f)?String(f):"null";case"boolean":case"null":return String(f);case"object":if(!f)return"null";if(r+=o,u=[],"[object Array]"===Object.prototype.toString.apply(f)){for(h=f.length,a=0;a2&&(t=u.call(arguments,1)),i(t)})})}function o(e){return Promise.all(e.map(n,this))}function s(e){for(var t=new e.constructor,i=Object.keys(e),r=[],o=0;o=1&&i<=12&&n>=1&&n<=d[i]}function o(e,t){var i=e.match(f);if(!i)return!1;var n=i[1],r=i[2],o=i[3],s=i[5];return n<=23&&r<=59&&o<=59&&(!t||s)}function s(e){var t=e.split(A);return 2==t.length&&r(t[0])&&o(t[1],!0)}function a(e){return e.length<=255&&p.test(e)}function l(e){return C.test(e)&&g.test(e)}function c(e){if(E.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}var h=i(11),u=/^\d\d\d\d-(\d\d)-(\d\d)$/,d=[0,31,29,31,30,31,30,31,31,30,31,30,31],f=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i,p=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i,g=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i,m=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#.\/;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?:\:[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?:\:[1-9][0-9]{0,3}|\*)?)*\})*$/i,v=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+\-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+\-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,w=/^(?:urn\:uuid\:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,y=/^(?:\/(?:[^~\/]|~0|~1)*)*$|^\#(?:\/(?:[a-z0-9_\-\.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;e.exports=n,n.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,uri:/^(?:[a-z][a-z0-9+-.]*)(?:\:|\/)\/?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/\/)?[^\s]*$/i,"uri-template":m,url:v,email:/^[a-z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:p,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:w,"json-pointer":y,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:\#|(?:\/(?:[^~\/]|~0|~1)*)*)$/},n.full={date:r,time:o,"date-time":s,uri:l,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'"()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i,"uri-template":m,url:v,email:/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:a,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:w,"json-pointer":y,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:\#|(?:\/(?:[^~\/]|~0|~1)*)*)$/};var A=/t|\s/i,C=/\/|\:/,E=/[^\\]\\Z/},function(e,t,i){"use strict";var n=i(25),r=i(11).toHash;e.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","uniqueItems","contains","items"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf"]}],t=["type"],i=["additionalItems","$schema","id","title","description","default","definitions"],o=["number","integer","string","array","object","boolean","null"];return e.all=r(t),e.types=r(o),e.forEach(function(i){i.rules=i.rules.map(function(i){var r;if("object"==typeof i){var o=Object.keys(i)[0];r=i[o],i=o,r.forEach(function(i){t.push(i),e.all[i]=!0})}return t.push(i),e.all[i]={keyword:i,code:n[i],implements:r}}),i.type&&(e.types[i.type]=i)}),e.keywords=r(t.concat(i)),e.custom={},e}},function(e,t,i){"use strict";e.exports={$ref:i(26),allOf:i(27),anyOf:i(28),const:i(29),contains:i(30),dependencies:i(31),enum:i(32),format:i(33),items:i(34),maximum:i(35),minimum:i(35),maxItems:i(36),minItems:i(36),maxLength:i(37),minLength:i(37),maxProperties:i(38),minProperties:i(38),multipleOf:i(39),not:i(40),oneOf:i(41),pattern:i(42),properties:i(43),propertyNames:i(44),required:i(45),uniqueItems:i(46),validate:i(20)}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,u="data"+(a||""),d="valid"+s;if("#"==l||"#/"==l)e.isRoot?(n=e.async,r="validate"):(n=!0===e.root.schema.$async,r="root.refVal[0]");else{var f=e.resolveRef(e.baseId,l,e.isRoot);if(void 0===f){var p=e.MissingRefError.message(e.baseId,l);if("fail"==e.opts.missingRefs){console.error(p);var g=g||[];g.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(l)+"' } ",!1!==e.opts.messages&&(o+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(l)+"' "),e.opts.verbose&&(o+=" , schema: "+e.util.toQuotedString(l)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var m=o;o=g.pop(),!e.compositeRule&&h?e.async?o+=" throw new ValidationError(["+m+"]); ":o+=" validate.errors = ["+m+"]; return false; ":o+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(o+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,l,p);console.warn(p),h&&(o+=" if (true) { ")}}else if(f.inline){var v=e.util.copy(e);v.level++;var w="valid"+v.level;v.schema=f.schema,v.schemaPath="",v.errSchemaPath=l;var y=e.validate(v).replace(/validate\.schema/g,f.code);o+=" "+y+" ",h&&(o+=" if ("+w+") { ")}else n=!0===f.$async,r=f.code}if(r){var g=g||[];g.push(o),o="",e.opts.passContext?o+=" "+r+".call(this, ":o+=" "+r+"( ",o+=" "+u+", (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath);o+=" , "+(a?"data"+(a-1||""):"parentData")+" , "+(a?e.dataPathArr[a]:"parentDataProperty")+", rootData) ";var A=o;if(o=g.pop(),n){if(!e.async)throw new Error("async schema referenced by sync schema");h&&(o+=" var "+d+"; "),o+=" try { "+e.yieldAwait+" "+A+"; ",h&&(o+=" "+d+" = true; "),o+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",h&&(o+=" "+d+" = false; "),o+=" } ",h&&(o+=" if ("+d+") { ")}else o+=" if (!"+A+") { if (vErrors === null) vErrors = "+r+".errors; else vErrors = vErrors.concat("+r+".errors); errors = vErrors.length; } ",h&&(o+=" else { ")}return o}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,a=!e.opts.allErrors,l=e.util.copy(e),c="";l.level++;var h="valid"+l.level,u=l.baseId,d=!0,f=r;if(f)for(var p,g=-1,m=f.length-1;g=0)return c&&(n+=" if (true) { "),n;throw new Error('unknown format "'+s+'" is used in schema at path "'+e.errSchemaPath+'"')}var m="object"==typeof g&&!(g instanceof RegExp)&&g.validate,v=m&&g.type||"string";if(m){var w=!0===g.async;g=g.validate}if(v!=i)return c&&(n+=" if (true) { "),n;if(w){if(!e.async)throw new Error("async format in sync schema");var y="formats"+e.util.getProperty(s)+".validate";n+=" if (!("+e.yieldAwait+" "+y+"("+h+"))) { "}else{n+=" if (! ";var y="formats"+e.util.getProperty(s);m&&(y+=".validate"),n+="function"==typeof g?" "+y+"("+h+") ":" "+y+".test("+h+") ",n+=") { "}}var A=A||[];A.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",n+=d?""+u:""+e.util.toQuotedString(s),n+=" } ",!1!==e.opts.messages&&(n+=" , message: 'should match format \"",n+=d?"' + "+u+" + '":""+e.util.escapeQuotes(s),n+="\"' "),e.opts.verbose&&(n+=" , schema: ",n+=d?"validate.schema"+a:""+e.util.toQuotedString(s),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var C=n;return n=A.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+C+"]); ":n+=" validate.errors = ["+C+"]; return false; ":n+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",c&&(n+=" else { "),n}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+r,d="errs__"+r,f=e.util.copy(e),p="";f.level++;var g="valid"+f.level,m="i"+r,v=f.dataLevel=e.dataLevel+1,w="data"+v,y=e.baseId;if(n+="var "+d+" = errors;var "+u+";",Array.isArray(s)){var A=e.schema.additionalItems;if(!1===A){n+=" "+u+" = "+h+".length <= "+s.length+"; ";var C=l;l=e.errSchemaPath+"/additionalItems",n+=" if (!"+u+") { ";var E=E||[];E.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+s.length+" } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have more than "+s.length+" items' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var b=n;n=E.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+b+"]); ":n+=" validate.errors = ["+b+"]; return false; ":n+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",l=C,c&&(p+="}",n+=" else { ")}var F=s;if(F)for(var x,S=-1,$=F.length-1;S<$;)if(x=F[S+=1],e.util.schemaHasRules(x,e.RULES.all)){n+=" "+g+" = true; if ("+h+".length > "+S+") { ";var D=h+"["+S+"]";f.schema=x,f.schemaPath=a+"["+S+"]",f.errSchemaPath=l+"/"+S,f.errorPath=e.util.getPathExpr(e.errorPath,S,e.opts.jsonPointers,!0),f.dataPathArr[v]=S;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",n+=" } ",c&&(n+=" if ("+g+") { ",p+="}")}if("object"==typeof A&&e.util.schemaHasRules(A,e.RULES.all)){f.schema=A,f.schemaPath=e.schemaPath+".additionalItems",f.errSchemaPath=e.errSchemaPath+"/additionalItems",n+=" "+g+" = true; if ("+h+".length > "+s.length+") { for (var "+m+" = "+s.length+"; "+m+" < "+h+".length; "+m+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);var D=h+"["+m+"]";f.dataPathArr[v]=m;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",c&&(n+=" if (!"+g+") break; "),n+=" } } ",c&&(n+=" if ("+g+") { ",p+="}")}}else if(e.util.schemaHasRules(s,e.RULES.all)){f.schema=s,f.schemaPath=a,f.errSchemaPath=l,n+=" for (var "+m+" = 0; "+m+" < "+h+".length; "+m+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);var D=h+"["+m+"]";f.dataPathArr[v]=m;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",c&&(n+=" if (!"+g+") break; "),n+=" }"}return c&&(n+=" "+p+" if ("+d+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maximum"==t,g=p?"exclusiveMaximum":"exclusiveMinimum",m=e.schema[g],v=e.opts.$data&&m&&m.$data,w=p?"<":">",y=p?">":"<",n=void 0;if(v){var A=e.util.getData(m.$data,a,e.dataPathArr),C="exclusive"+s,E="exclType"+s,b="exclIsNumber"+s,F="op"+s,x="' + "+F+" + '";o+=" var schemaExcl"+s+" = "+A+"; ",A="schemaExcl"+s,o+=" var "+C+"; var "+E+" = typeof "+A+"; if ("+E+" != 'boolean' && "+E+" != 'undefined' && "+E+" != 'number') { ";var n=g,S=S||[];S.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: {} ",!1!==e.opts.messages&&(o+=" , message: '"+g+" should be boolean' "),e.opts.verbose&&(o+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var $=o;o=S.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+$+"]); ":o+=" validate.errors = ["+$+"]; return false; ":o+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+=" } else if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+E+" == 'number' ? ( ("+C+" = "+r+" === undefined || "+A+" "+w+"= "+r+") ? "+d+" "+y+"= "+A+" : "+d+" "+y+" "+r+" ) : ( ("+C+" = "+A+" === true) ? "+d+" "+y+"= "+r+" : "+d+" "+y+" "+r+" ) || "+d+" !== "+d+") { var op"+s+" = "+C+" ? '"+w+"' : '"+w+"=';"}else{var b="number"==typeof m,x=w;if(b&&f){var F="'"+x+"'";o+=" if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" ( "+r+" === undefined || "+m+" "+w+"= "+r+" ? "+d+" "+y+"= "+m+" : "+d+" "+y+" "+r+" ) || "+d+" !== "+d+") { "}else{b&&void 0===l?(C=!0,n=g,h=e.errSchemaPath+"/"+g,r=m,y+="="):(b&&(r=Math[p?"min":"max"](m,l)),m===(!b||r)?(C=!0,n=g,h=e.errSchemaPath+"/"+g,y+="="):(C=!1,x+="="));var F="'"+x+"'";o+=" if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+d+" "+y+" "+r+" || "+d+" !== "+d+") { "}}n=n||t;var S=S||[];S.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { comparison: "+F+", limit: "+r+", exclusive: "+C+" } ",!1!==e.opts.messages&&(o+=" , message: 'should be "+x+" ",o+=f?"' + "+r:r+"'"),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var $=o;return o=S.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+$+"]); ":o+=" validate.errors = ["+$+"]; return false; ":o+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+=" } ",u&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxItems"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+d+".length "+p+" "+r+") { ";var n=t,g=g||[];g.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT have ",o+="maxItems"==t?"more":"less",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" items' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var m=o;return o=g.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+m+"]); ":o+=" validate.errors = ["+m+"]; return false; ":o+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",u&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxLength"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),!1===e.opts.unicode?o+=" "+d+".length ":o+=" ucs2length("+d+") ",o+=" "+p+" "+r+") { ";var n=t,g=g||[];g.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT be ",o+="maxLength"==t?"longer":"shorter",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" characters' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var m=o;return o=g.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+m+"]); ":o+=" validate.errors = ["+m+"]; return false; ":o+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",u&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxProperties"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" Object.keys("+d+").length "+p+" "+r+") { ";var n=t,g=g||[];g.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT have ",o+="maxProperties"==t?"more":"less",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" properties' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var m=o;return o=g.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+m+"]); ":o+=" validate.errors = ["+m+"]; return false; ":o+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",u&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r=" ",o=e.level,s=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,u="data"+(s||""),d=e.opts.$data&&a&&a.$data;d?(r+=" var schema"+o+" = "+e.util.getData(a.$data,s,e.dataPathArr)+"; ",n="schema"+o):n=a,r+="var division"+o+";if (",d&&(r+=" "+n+" !== undefined && ( typeof "+n+" != 'number' || "),r+=" (division"+o+" = "+u+" / "+n+", ",e.opts.multipleOfPrecision?r+=" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+e.opts.multipleOfPrecision+" ":r+=" division"+o+" !== parseInt(division"+o+") ",r+=" ) ",d&&(r+=" ) "),r+=" ) { ";var f=f||[];f.push(r),r="",!1!==e.createErrors?(r+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+n+" } ",!1!==e.opts.messages&&(r+=" , message: 'should be multiple of ",r+=d?"' + "+n:n+"'"),e.opts.verbose&&(r+=" , schema: ",r+=d?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";var p=r;return r=f.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+p+"]); ":r+=" validate.errors = ["+p+"]; return false; ":r+=" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",h&&(r+=" else { "),r}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),u="errs__"+r,d=e.util.copy(e);d.level++;var f="valid"+d.level;if(e.util.schemaHasRules(s,e.RULES.all)){d.schema=s,d.schemaPath=a,d.errSchemaPath=l,n+=" var "+u+" = errors; ";var p=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.createErrors=!1;var g;d.opts.allErrors&&(g=d.opts.allErrors,d.opts.allErrors=!1),n+=" "+e.validate(d)+" ",d.createErrors=!0,g&&(d.opts.allErrors=g),e.compositeRule=d.compositeRule=p,n+=" if ("+f+") { ";var m=m||[];m.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var v=n;n=m.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+v+"]); ":n+=" validate.errors = ["+v+"]; return false; ":n+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { errors = "+u+"; if (vErrors !== null) { if ("+u+") vErrors.length = "+u+"; else vErrors = null; } ",e.opts.allErrors&&(n+=" } ")}else n+=" var err = ",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(n+=" if (false) { ");return n}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+r,d="errs__"+r,f=e.util.copy(e),p="";f.level++;var g="valid"+f.level;n+="var "+d+" = errors;var prevValid"+r+" = false;var "+u+" = false;";var m=f.baseId,v=e.compositeRule;e.compositeRule=f.compositeRule=!0;var w=s;if(w)for(var y,A=-1,C=w.length-1;A5)n+=" || validate.schema"+a+"["+m+"] ";else{var M=C;if(M)for(var O,N=-1,I=M.length-1;N= "+ve+"; ",l=e.errSchemaPath+"/patternGroups/minimum",n+=" if (!"+u+") { ";var Y=Y||[];Y.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Ae+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+Ce+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(U)+"\"' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var J=n;n=Y.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+J+"]); ":n+=" validate.errors = ["+J+"]; return false; ":n+=" var err = "+J+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",void 0!==we&&(n+=" else ")}if(void 0!==we){var ye=we,Ae="maximum",Ce="more";n+=" "+u+" = pgPropCount"+r+" <= "+we+"; ",l=e.errSchemaPath+"/patternGroups/maximum",n+=" if (!"+u+") { ";var Y=Y||[];Y.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Ae+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+Ce+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(U)+"\"' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var J=n;n=Y.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+J+"]); ":n+=" validate.errors = ["+J+"]; return false; ":n+=" var err = "+J+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } "}l=Q,c&&(n+=" if ("+u+") { ",p+="}")}}}}return c&&(n+=" "+p+" if ("+d+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),u="errs__"+r,d=e.util.copy(e);d.level++;var f="valid"+d.level;if(e.util.schemaHasRules(s,e.RULES.all)){d.schema=s,d.schemaPath=a,d.errSchemaPath=l;var p="key"+r,g="idx"+r,m="i"+r,v="' + "+p+" + '",w=d.dataLevel=e.dataLevel+1,y="data"+w,A="dataProperties"+r,C=e.opts.ownProperties,E=e.baseId;n+=" var "+u+" = errors; ",C&&(n+=" var "+A+" = undefined; "),n+=C?" "+A+" = "+A+" || Object.keys("+h+"); for (var "+g+"=0; "+g+"<"+A+".length; "+g+"++) { var "+p+" = "+A+"["+g+"]; ":" for (var "+p+" in "+h+") { ",n+=" var startErrs"+r+" = errors; ";var b=p,F=e.compositeRule;e.compositeRule=d.compositeRule=!0;var x=e.validate(d);d.baseId=E,e.util.varOccurences(x,y)<2?n+=" "+e.util.varReplace(x,y,b)+" ":n+=" var "+y+" = "+b+"; "+x+" ",e.compositeRule=d.compositeRule=F,n+=" if (!"+f+") { for (var "+m+"=startErrs"+r+"; "+m+"=e.opts.loopRequired,E=e.opts.ownProperties;if(c)if(n+=" var missing"+r+"; ",C){d||(n+=" var "+f+" = validate.schema"+a+"; ");var b="i"+r,F="schema"+r+"["+b+"]",x="' + "+F+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(A,F,e.opts.jsonPointers)),n+=" var "+u+" = true; ",d&&(n+=" if (schema"+r+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+r+")) "+u+" = false; else {"),n+=" for (var "+b+" = 0; "+b+" < "+f+".length; "+b+"++) { "+u+" = "+h+"["+f+"["+b+"]] !== undefined ",E&&(n+=" && Object.prototype.hasOwnProperty.call("+h+", "+f+"["+b+"]) "),n+="; if (!"+u+") break; } ",d&&(n+=" } "),n+=" if (!"+u+") { ";var S=S||[];S.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+x+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+x+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var $=n;n=S.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+$+"]); ":n+=" validate.errors = ["+$+"]; return false; ":n+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else{n+=" if ( ";var D=p;if(D)for(var k,b=-1,B=D.length-1;b 1) { var i = "+u+".length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal("+u+"[i], "+u+"[j])) { "+d+" = false; break outer; } } } } ",f&&(r+=" } "),r+=" if (!"+d+") { ";var p=p||[];p.push(r),r="",!1!==e.createErrors?(r+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(r+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(r+=" , schema: ",r+=f?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";var g=r;r=p.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+g+"]); ":r+=" validate.errors = ["+g+"]; return false; ":r+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } ",h&&(r+=" else { ")}else h&&(r+=" if (true) { ");return r}},function(e,t){"use strict";var i=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];e.exports=function(e,t){for(var n=0;n0?this.autoScrollStep=(n+24-e)/3:e>o-24&&r+i.scrollTop3?(i.scrollTop+=r/3,n.animateCallback=t,n.animateTimeout=setTimeout(a,50)):(t&&t(!0),i.scrollTop=s,delete n.animateTimeout,delete n.animateCallback)};a()}else t&&t(!1)},h._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var i=t.target;e(t),"BUTTON"==i.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,c.addEventListener(this.frame,"focus",e,!0),c.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var i=document.createElement("button");i.type="button",i.className="jsoneditor-expand-all",i.title="Expand all fields",i.onclick=function(){t.expandAll()},this.menu.appendChild(i);var n=document.createElement("button");if(n.type="button",n.title="Collapse all fields",n.className="jsoneditor-collapse-all",n.onclick=function(){t.collapseAll()},this.menu.appendChild(n),this.history){var r=document.createElement("button");r.type="button",r.className="jsoneditor-undo jsoneditor-separator",r.title="Undo last action (Ctrl+Z)",r.onclick=function(){t._onUndo()},this.menu.appendChild(r),this.dom.undo=r;var s=document.createElement("button");s.type="button",s.className="jsoneditor-redo",s.title="Redo (Ctrl+Shift+Z)",s.onclick=function(){t._onRedo()},this.menu.appendChild(s),this.dom.redo=s,this.history.onChange=function(){r.disabled=!t.history.canUndo(),s.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var a=this;this.modeSwitcher=new l(this.menu,this.options.modes,this.options.mode,function(e){a.modeSwitcher.destroy(),a.setMode(e),a.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new o(this,this.menu))},h._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},h._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},h._onEvent=function(e){"keydown"==e.type&&this._onKeyDown(e),"focus"==e.type&&(this.focusTarget=e.target),"mousedown"==e.type&&this._startDragDistance(e),"mousemove"!=e.type&&"mouseup"!=e.type&&"click"!=e.type||this._updateDragDistance(e);var t=a.getNodeFromTarget(e.target);if(t&&t.selected){if("click"==e.type){ -if(e.target==t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"==e.type&&a.onDragStart(this.multiselection.nodes,e)}else"mousedown"==e.type&&(this.deselect(),t&&e.target==t.dom.drag?a.onDragStart(t,e):(!t||e.target!=t.dom.field&&e.target!=t.dom.value&&e.target!=t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},h._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},h._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,i=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+i*i),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},h._onMultiSelectStart=function(e){var t=a.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var i=this;this.mousemove||(this.mousemove=c.addEventListener(window,"mousemove",function(e){i._onMultiSelect(e)})),this.mouseup||(this.mouseup=c.addEventListener(window,"mouseup",function(e){i._onMultiSelectEnd(e)}))}},h._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=a.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var i=this.multiselection.start,n=this.multiselection.end||this.multiselection.start;i&&n&&(this.multiselection.nodes=this._findTopLevelNodes(i,n),this.select(this.multiselection.nodes))}},h._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(c.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(c.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},h.deselect=function(e){this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null)},h.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];e.forEach(function(e){e.setSelected(!0,e===t)})}},h._findTopLevelNodes=function(e,t){for(var i=e.getNodePath(),n=t.getNodePath(),r=0;r=0},n.prototype.canRedo=function(){return this.index=0;){var t=r[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],i="",n=t(),s=/[a-zA-Z_$\d]/;s.test(n);)i+=n,o++,n=t();-1===e.indexOf(i)?r.push('"'+i+'"'):r.push(i)}():(r.push(a),o++)}return r.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==n?n.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var r=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&r.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var i=e.className.split(" ");-1==i.indexOf(t)&&(i.push(t),e.className=i.join(" "))},t.removeClassName=function(e,t){var i=e.className.split(" "),n=i.indexOf(t);-1!=n&&(i.splice(n,1),e.className=i.join(" "))},t.stripFormatting=function(e){for(var i=e.childNodes,n=0,r=i.length;n=0;a--){var l=s[a];!0===l.specified&&o.removeAttribute(l.name)}t.stripFormatting(o)}},t.setEndOfContentEditable=function(e){var t,i;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),i=window.getSelection(),i.removeAllRanges(),i.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,i;window.getSelection&&document.createRange&&(i=document.createRange(),i.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(i))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){if(window.getSelection()){var i=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),i.setStart(e.container.firstChild,e.startOffset),i.setEnd(e.container.firstChild,e.endOffset),t.setSelection(i)}}},t.getInnerText=function(e,i){if(void 0==i&&(i={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return i.flush()+e.nodeValue;if(e.hasChildNodes()){for(var n=e.childNodes,r="",o=0,s=n.length;o5){var i=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(i)}e.message="should be equal to one of: "+t.join(", ")}}return"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),e},t.insideRect=function(e,t,i){var n=void 0!==i?i:0;return t.left-n>=e.left&&t.right+n<=e.right&&t.top-n>=e.top&&t.bottom+n<=e.bottom},t.debounce=function(e,t,i){var n;return function(){var r=this,o=arguments,s=function(){n=null,i||e.apply(r,o)},a=i&&!n;clearTimeout(n),n=setTimeout(s,t),a&&e.apply(r,o)}},t.textDiff=function(e,t){for(var i=t.length,n=0,r=e.length,o=t.length;t.charAt(n)===e.charAt(n)&&nn&&r>0;)o--,r--;return{start:n,end:o}}},function(e,t,i){var n=function(){var e={trace:function(){},yy:{},symbols_:{error:2,JSONString:3,STRING:4,JSONNumber:5,NUMBER:6,JSONNullLiteral:7,NULL:8,JSONBooleanLiteral:9,TRUE:10,FALSE:11,JSONText:12,JSONValue:13,EOF:14,JSONObject:15,JSONArray:16,"{":17,"}":18,JSONMemberList:19,JSONMember:20,":":21,",":22,"[":23,"]":24,JSONElementList:25,$accept:0,$end:1},terminals_:{2:"error",4:"STRING",6:"NUMBER",8:"NULL",10:"TRUE",11:"FALSE",14:"EOF",17:"{",18:"}",21:":",22:",",23:"[",24:"]"},productions_:[0,[3,1],[5,1],[7,1],[9,1],[9,1],[12,2],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[15,2],[15,3],[20,3],[19,1],[19,3],[16,2],[16,3],[25,1],[25,3]],performAction:function(e,t,i,n,r,o,s){var a=o.length-1;switch(r){case 1:this.$=e.replace(/\\(\\|")/g,"$1").replace(/\\n/g,"\n").replace(/\\r/g,"\r").replace(/\\t/g,"\t").replace(/\\v/g,"\v").replace(/\\f/g,"\f").replace(/\\b/g,"\b");break;case 2:this.$=Number(e);break;case 3:this.$=null;break;case 4:this.$=!0;break;case 5:this.$=!1;break;case 6:return this.$=o[a-1];case 13:this.$={};break;case 14:this.$=o[a-1];break;case 15:this.$=[o[a-2],o[a]];break;case 16:this.$={},this.$[o[a][0]]=o[a][1];break;case 17:this.$=o[a-2],o[a-2][o[a][0]]=o[a][1];break;case 18:this.$=[];break;case 19:this.$=o[a-1];break;case 20:this.$=[o[a]];break;case 21:this.$=o[a-2],o[a-2].push(o[a])}},table:[{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],12:1,13:2,15:7,16:8,17:[1,14],23:[1,15]},{1:[3]},{14:[1,16]},{14:[2,7],18:[2,7],22:[2,7],24:[2,7]},{14:[2,8],18:[2,8],22:[2,8],24:[2,8]},{14:[2,9],18:[2,9],22:[2,9],24:[2,9]},{14:[2,10],18:[2,10],22:[2,10],24:[2,10]},{14:[2,11],18:[2,11],22:[2,11],24:[2,11]},{14:[2,12],18:[2,12],22:[2,12],24:[2,12]},{14:[2,3],18:[2,3],22:[2,3],24:[2,3]},{14:[2,4],18:[2,4],22:[2,4],24:[2,4]},{14:[2,5],18:[2,5],22:[2,5],24:[2,5]},{14:[2,1],18:[2,1],21:[2,1],22:[2,1],24:[2,1]},{14:[2,2],18:[2,2],22:[2,2],24:[2,2]},{3:20,4:[1,12],18:[1,17],19:18,20:19},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:23,15:7,16:8,17:[1,14],23:[1,15],24:[1,21],25:22},{1:[2,6]},{14:[2,13],18:[2,13],22:[2,13],24:[2,13]},{18:[1,24],22:[1,25]},{18:[2,16],22:[2,16]},{21:[1,26]},{14:[2,18],18:[2,18],22:[2,18],24:[2,18]},{22:[1,28],24:[1,27]},{22:[2,20],24:[2,20]},{14:[2,14],18:[2,14],22:[2,14],24:[2,14]},{3:20,4:[1,12],20:29},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:30,15:7,16:8,17:[1,14],23:[1,15]},{14:[2,19],18:[2,19],22:[2,19],24:[2,19]},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:31,15:7,16:8,17:[1,14],23:[1,15]},{18:[2,17],22:[2,17]},{18:[2,15],22:[2,15]},{22:[2,21],24:[2,21]}],defaultActions:{16:[2,6]},parseError:function(e,t){throw new Error(e)},parse:function(e){function t(){var e;return e=i.lexer.lex()||1,"number"!=typeof e&&(e=i.symbols_[e]||e),e}var i=this,n=[0],r=[null],o=[],s=this.table,a="",l=0,c=0,h=0,u=2;this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,void 0===this.lexer.yylloc&&(this.lexer.yylloc={});var d=this.lexer.yylloc;o.push(d),"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var f,p,g,m,v,w,y,A,C,E={};;){if(g=n[n.length-1],this.defaultActions[g]?m=this.defaultActions[g]:(null==f&&(f=t()),m=s[g]&&s[g][f]),void 0===m||!m.length||!m[0]){if(!h){C=[];for(w in s[g])this.terminals_[w]&&w>2&&C.push("'"+this.terminals_[w]+"'");var b="";b=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+C.join(", ")+", got '"+this.terminals_[f]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(b,{text:this.lexer.match,token:this.terminals_[f]||f,line:this.lexer.yylineno,loc:d,expected:C})}if(3==h){if(1==f)throw new Error(b||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,d=this.lexer.yylloc,f=t()}for(;;){if(u.toString()in s[g])break;if(0==g)throw new Error(b||"Parsing halted.");!function(e){n.length=n.length-2*e,r.length=r.length-e,o.length=o.length-e}(1),g=n[n.length-1]}p=f,f=u,g=n[n.length-1],m=s[g]&&s[g][u],h=3}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+g+", token: "+f);switch(m[0]){case 1:n.push(f),r.push(this.lexer.yytext),o.push(this.lexer.yylloc),n.push(m[1]),f=null,p?(f=p,p=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,d=this.lexer.yylloc,h>0&&h--);break;case 2:if(y=this.productions_[m[1]][1],E.$=r[r.length-y],E._$={first_line:o[o.length-(y||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(y||1)].first_column,last_column:o[o.length-1].last_column},void 0!==(v=this.performAction.call(E,a,c,l,this.yy,m[1],r,o)))return v;y&&(n=n.slice(0,-1*y*2),r=r.slice(0,-1*y),o=o.slice(0,-1*y)),n.push(this.productions_[m[1]][0]),r.push(E.$),o.push(E._$),A=s[n[n.length-2]][n[n.length-1]],n.push(A);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,i,n,r;this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)||(t=i,n=s,this.options.flex));s++);return t?(r=t[0].match(/\n.*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,o[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,i,n){switch(i){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=n,t.parse=n.parse.bind(n)},function(e,t){"use strict";function i(e,t){var i=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var n=document.createElement("table");this.dom.table=n,n.className="jsoneditor-search",t.appendChild(n);var r=document.createElement("tbody");this.dom.tbody=r,n.appendChild(r);var o=document.createElement("tr");r.appendChild(o);var s=document.createElement("td");o.appendChild(s);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",s.appendChild(a),s=document.createElement("td"),o.appendChild(s);var l=document.createElement("div");this.dom.input=l,l.className="jsoneditor-frame",l.title="Search fields and values",s.appendChild(l);var c=document.createElement("table");l.appendChild(c);var h=document.createElement("tbody");c.appendChild(h),o=document.createElement("tr"),h.appendChild(o);var u=document.createElement("button");u.type="button",u.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(u),o.appendChild(s);var d=document.createElement("input");this.dom.search=d,d.oninput=function(e){i._onDelayedSearch(e)},d.onchange=function(e){i._onSearch()},d.onkeydown=function(e){i._onKeyDown(e)},d.onkeyup=function(e){i._onKeyUp(e)},u.onclick=function(e){d.select()},s=document.createElement("td"),s.appendChild(d),o.appendChild(s);var f=document.createElement("button");f.type="button",f.title="Next result (Enter)",f.className="jsoneditor-next",f.onclick=function(){i.next()},s=document.createElement("td"),s.appendChild(f),o.appendChild(s);var p=document.createElement("button");p.type="button",p.title="Previous result (Shift+Enter)",p.className="jsoneditor-previous",p.onclick=function(){i.previous()},s=document.createElement("td"),s.appendChild(p),o.appendChild(s)}i.prototype.next=function(e){if(void 0!=this.results){var t=void 0!=this.resultIndex?this.resultIndex+1:0;t>this.results.length-1&&(t=0),this._setActiveResult(t,e)}},i.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,i=void 0!=this.resultIndex?this.resultIndex-1:t;i<0&&(i=t),this._setActiveResult(i,e)}},i.prototype._setActiveResult=function(e,t){if(this.activeResult){var i=this.activeResult.node;"field"==this.activeResult.elem?delete i.searchFieldActive:delete i.searchValueActive,i.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var n=this.results[this.resultIndex].node,r=this.results[this.resultIndex].elem;"field"==r?n.searchFieldActive=!0:n.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],n.updateDom(),n.scrollTo(function(){t&&n.focus(r)})},i.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},i.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},i.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,i=t.length>0?t:void 0;if(i!=this.lastText||e)if(this.lastText=i,this.results=this.editor.search(i),this._setActiveResult(void 0),void 0!=i){var n=this.results.length;switch(n){case 0:this.dom.results.innerHTML="no results";break;case 1:this.dom.results.innerHTML="1 result";break;default:this.dom.results.innerHTML=n+" results"}}else this.dom.results.innerHTML=""},i.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},i.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},i.prototype.clear=function(){this.dom.search.value="",this._onSearch()},i.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=i},function(e,t,i){"use strict";function n(e,t){function i(e,t,r){r.forEach(function(r){if("separator"==r.type){var o=document.createElement("div");o.className="jsoneditor-separator",a=document.createElement("li"),a.appendChild(o),e.appendChild(a)}else{var s={},a=document.createElement("li");e.appendChild(a);var l=document.createElement("button");if(l.type="button",l.className=r.className,s.button=l,r.title&&(l.title=r.title),r.click&&(l.onclick=function(e){e.preventDefault(),n.hide(),r.click()}),a.appendChild(l),r.submenu){var c=document.createElement("div");c.className="jsoneditor-icon",l.appendChild(c),l.appendChild(document.createTextNode(r.text));var h;if(r.click){l.className+=" jsoneditor-default";var u=document.createElement("button");u.type="button",s.buttonExpand=u,u.className="jsoneditor-expand",u.innerHTML='
',a.appendChild(u),r.submenuTitle&&(u.title=r.submenuTitle),h=u}else{var d=document.createElement("div");d.className="jsoneditor-expand",l.appendChild(d),h=l}h.onclick=function(e){e.preventDefault(),n._onExpandItem(s),h.focus()};var f=[];s.subItems=f;var p=document.createElement("ul");s.ul=p,p.className="jsoneditor-menu",p.style.height="0",a.appendChild(p),i(p,f,r.submenu)}else l.innerHTML='
'+r.text;t.push(s)}})}this.dom={};var n=this,r=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var o=document.createElement("div");o.className="jsoneditor-contextmenu-root",r.root=o;var s=document.createElement("div");s.className="jsoneditor-contextmenu",r.menu=s,o.appendChild(s);var a=document.createElement("ul");a.className="jsoneditor-menu",s.appendChild(a),r.list=a,r.items=[];var l=document.createElement("button");l.type="button",r.focusButton=l;var c=document.createElement("li");c.style.overflow="hidden",c.style.height="0",c.appendChild(l),a.appendChild(c),i(a,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var i=24*(e.length+(t.submenu?t.submenu.length:0));n.maxHeight=Math.max(n.maxHeight,i)})}var r=i(57);n.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(i){e.push(i.button),i.buttonExpand&&e.push(i.buttonExpand),i.subItems&&i==t.expandedItem&&i.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},n.visibleMenu=void 0,n.prototype.show=function(e,t){this.hide();var i=!0;if(t){var o=e.getBoundingClientRect(),s=t.getBoundingClientRect();o.bottom+this.maxHeights.top&&(i=!1)}if(i){var a=e.offsetHeight;this.dom.menu.style.left="0px",this.dom.menu.style.top=a+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left="0px",this.dom.menu.style.top="",this.dom.menu.style.bottom="0px";var l=e.parentNode;l.insertBefore(this.dom.root,l.firstChild);var c=this,h=this.dom.list;this.eventListeners.mousedown=r.addEventListener(window,"mousedown",function(e){var t=e.target;t==h||c._isChildOf(t,h)||(c.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=r.addEventListener(window,"keydown",function(e){c._onKeyDown(e)}),this.selection=r.getSelection(),this.anchor=e,setTimeout(function(){c.dom.focusButton.focus()},0),n.visibleMenu&&n.visibleMenu.hide(),n.visibleMenu=this},n.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&r.removeEventListener(window,e,t),delete this.eventListeners[e]}n.visibleMenu==this&&(n.visibleMenu=void 0)},n.prototype._onExpandItem=function(e){var t=this,i=e==this.expandedItem,n=this.expandedItem;if(n&&(n.ul.style.height="0",n.ul.style.padding="",setTimeout(function(){t.expandedItem!=n&&(n.ul.style.display="",r.removeClassName(n.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!i){var o=e.ul;o.style.display="block";o.clientHeight;setTimeout(function(){if(t.expandedItem==e){for(var i=0,n=0;n0;){var n=t.shift();if("number"==typeof n){if("array"!==i.type)throw new Error("Cannot get child node at index "+n+": node is no array");i=i.childs[n]}else{if("object"!==i.type)throw new Error("Cannot get child node "+n+": node is no object");i=i.childs.filter(function(e){return e.field===n})[0]}}return i},n.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},n.prototype.setError=function(e,t){this.getDom(),this.error=e;var i=this.dom.tdError;if(e){i||(i=document.createElement("td"),this.dom.tdError=i,this.dom.tdValue.parentNode.appendChild(i));var n=document.createElement("div");n.className="jsoneditor-popover jsoneditor-right",n.appendChild(document.createTextNode(e.message));var r=document.createElement("button");for(r.type="button",r.className="jsoneditor-schema-error",r.appendChild(n),r.onmouseover=r.onfocus=function(){for(var e=["right","above","below","left"],t=0;t0&&(e=this.childs.filter(function(e){return-1!==i.indexOf(e.field)}).map(function(e){return{node:e,error:{message:'duplicate key "'+e.field+'"'}}}))}if(this.childs)for(var n=0;n0&&(e=e.concat(o))}return e},n.prototype.clearDom=function(){this.dom={}},n.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var i=document.createElement("button");i.type="button",e.drag=i,i.className="jsoneditor-dragarea",i.title="Drag to move this field (Alt+Shift+Arrows)",t.appendChild(i)}e.tr.appendChild(t);var n=document.createElement("td"),r=document.createElement("button");r.type="button",e.menu=r,r.className="jsoneditor-contextmenu",r.title="Click to open the actions menu (Ctrl+M)",n.appendChild(e.menu),e.tr.appendChild(n)}var o=document.createElement("td");return e.tr.appendChild(o),e.tree=this._createDomTree(),o.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},n.onDragStart=function(e,t){if(!Array.isArray(e))return n.onDragStart([e],t);if(0!==e.length){var i=e[0],r=e[e.length-1],o=n.getNodeFromTarget(t.target),s=r._nextSibling(),l=i.editor,c=a.getAbsoluteTop(o.dom.tr)-a.getAbsoluteTop(i.dom.tr);l.mousemove||(l.mousemove=a.addEventListener(window,"mousemove",function(t){n.onDrag(e,t)})),l.mouseup||(l.mouseup=a.addEventListener(window,"mouseup",function(t){n.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getSelection(),oldBeforeNode:s,mouseX:t.pageX,offsetY:c,level:i.getLevel()},document.body.style.cursor="move",t.preventDefault()}},n.onDrag=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i,r,o,s,c,h,u,d,f,p,g,m,v,w,y=e[0].editor,A=t.pageY-y.drag.offsetY,C=t.pageX,E=!1,b=e[0];if(i=b.dom.tr,f=a.getAbsoluteTop(i),m=i.offsetHeight,Ap+m&&(u=void 0)),u&&(e.forEach(function(e){u.parent.moveBefore(e,u)}),E=!0)}else{var F=e[e.length-1];if(c=F.expanded&&F.append?F.append.getDom():F.dom.tr,s=c?c.nextSibling:void 0){g=a.getAbsoluteTop(s),o=s;do{d=n.getNodeFromTarget(o),o&&(v=o.nextSibling?a.getAbsoluteTop(o.nextSibling):0,w=o?v-g:0,d.parent.childs.length==e.length&&d.parent.childs[e.length-1]==F&&(f+=27)),o=o.nextSibling}while(o&&A>f+w);if(d&&d.parent){var x=C-y.drag.mouseX,S=Math.round(x/24/2),$=y.drag.level+S,D=d.getLevel();for(r=d.dom.tr.previousSibling;D<$&&r;){u=n.getNodeFromTarget(r);if(e.some(function(e){return e===u||u._isChildOf(e)}));else{if(!(u instanceof l))break;var k=u.parent.childs;if(k.length==e.length&&k[e.length-1]==F)break;d=n.getNodeFromTarget(r),D=d.getLevel()}r=r.previousSibling}c.nextSibling!=d.dom.tr&&(e.forEach(function(e){d.parent.moveBefore(e,d)}),E=!0)}}}E&&(y.drag.mouseX=C,y.drag.level=b.getLevel()),y.startAutoScroll(A),t.preventDefault()}},n.onDragEnd=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i=e[0],r=i.editor,o=i.parent,s=o.childs.indexOf(i),l=o.childs[s+e.length]||o.append;e[0]&&e[0].dom.menu.focus();var c={nodes:e,oldSelection:r.drag.oldSelection,newSelection:r.getSelection(),oldBeforeNode:r.drag.oldBeforeNode,newBeforeNode:l};c.oldBeforeNode!=c.newBeforeNode&&r._onAction("moveNodes",c),document.body.style.cursor=r.drag.oldCursor,r.highlighter.unlock(),e.forEach(function(e){t.target!==e.dom.drag&&t.target!==e.dom.menu&&r.highlighter.unhighlight()}),delete r.drag,r.mousemove&&(a.removeEventListener(window,"mousemove",r.mousemove),delete r.mousemove),r.mouseup&&(a.removeEventListener(window,"mouseup",r.mouseup),delete r.mouseup),r.stopAutoScroll(),t.preventDefault()}},n.prototype._isChildOf=function(e){for(var t=this.parent;t;){if(t==e)return!0;t=t.parent}return!1},n.prototype._createDomField=function(){return document.createElement("div")},n.prototype.setHighlight=function(e){this.dom.tr&&(e?a.addClassName(this.dom.tr,"jsoneditor-highlight"):a.removeClassName(this.dom.tr,"jsoneditor-highlight"),this.append&&this.append.setHighlight(e),this.childs&&this.childs.forEach(function(t){t.setHighlight(e)}))},n.prototype.setSelected=function(e,t){this.selected=e,this.dom.tr&&(e?a.addClassName(this.dom.tr,"jsoneditor-selected"):a.removeClassName(this.dom.tr,"jsoneditor-selected"),t?a.addClassName(this.dom.tr,"jsoneditor-first"):a.removeClassName(this.dom.tr,"jsoneditor-first"),this.append&&this.append.setSelected(e),this.childs&&this.childs.forEach(function(t){t.setSelected(e)}))},n.prototype.updateValue=function(e){this.value=e,this.updateDom()},n.prototype.updateField=function(e){this.field=e,this.updateDom()},n.prototype.updateDom=function(e){var t=this.dom.tree;t&&(t.style.marginLeft=24*this.getLevel()+"px");var i=this.dom.field;if(i){this.fieldEditable?(i.contentEditable=this.editable.field,i.spellcheck=!1,i.className="jsoneditor-field"):i.className="jsoneditor-readonly";var n;n=void 0!=this.index?this.index:void 0!=this.field?this.field:this._hasChilds()?this.type:"",i.innerHTML=this._escapeHTML(n),this._updateSchema()}var r=this.dom.value;if(r){var o=this.childs?this.childs.length:0;"array"==this.type?(r.innerHTML="["+o+"]",a.addClassName(this.dom.tr,"jsoneditor-expandable")):"object"==this.type?(r.innerHTML="{"+o+"}",a.addClassName(this.dom.tr,"jsoneditor-expandable")):(r.innerHTML=this._escapeHTML(this.value),a.removeClassName(this.dom.tr,"jsoneditor-expandable"))}this._updateDomField(),this._updateDomValue(),e&&!0===e.updateIndexes&&this._updateDomIndexes(),e&&!0===e.recurse&&this.childs&&this.childs.forEach(function(t){t.updateDom(e)}),this.append&&this.append.updateDom()},n.prototype._updateSchema=function(){this.editor&&this.editor.options&&(this.schema=n._findSchema(this.editor.options.schema,this.getPath()),this.schema?this.enum=n._findEnum(this.schema):delete this.enum)},n._findEnum=function(e){if(e.enum)return e.enum;var t=e.oneOf||e.anyOf||e.allOf;if(t){var i=t.filter(function(e){return e.enum});if(i.length>0)return i[0].enum}return null},n._findSchema=function(e,t){for(var i=e,n=0;n0?this.editor.multiselection.nodes:[this],A=y[0],C=y[y.length-1];if(13==d){if(f==this.dom.value)this.editable.value&&!e.ctrlKey||a.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(f==this.dom.expand){var E=this._hasChilds();if(E){var b=e.ctrlKey;this._onExpand(b),f.focus(),v=!0}}}else if(68==d)p&&w&&(n.onDuplicate(y),v=!0);else if(69==d)p&&(this._onExpand(g),f.focus(),v=!0);else if(77==d&&w)p&&(this.showContextMenu(f),v=!0);else if(46==d&&w)p&&(n.onRemove(y),v=!0);else if(45==d&&w)p&&!g?(this._onInsertBefore(),v=!0):p&&g&&(this._onInsertAfter(),v=!0);else if(35==d){if(m){var F=this._lastNode();F&&F.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(36==d){if(m){var x=this._firstNode();x&&x.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(37==d){if(m&&!g){var S=this._previousElement(f);S&&this.focus(this._getElementName(S)),v=!0}else if(m&&g&&w){if(C.expanded){var $=C.getAppend();r=$?$.nextSibling:void 0}else{var D=C.getDom();r=D.nextSibling}r&&(i=n.getNodeFromTarget(r),o=r.nextSibling,_=n.getNodeFromTarget(o),i&&i instanceof l&&1!=C.parent.childs.length&&_&&_.parent&&(s=this.editor.getSelection(),c=C._nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:c,newBeforeNode:_,oldSelection:s,newSelection:this.editor.getSelection()})))}}else if(38==d)m&&!g?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(n.focusElement||this._getElementName(f))),v=!0):!m&&p&&g&&w?(t=this._previousNode(),t&&(u=this.editor.multiselection,u.start=u.start||this,u.end=t,h=this.editor._findTopLevelNodes(u.start,u.end),this.editor.select(h),t.focus("field")),v=!0):m&&g&&w&&(t=A._previousNode(),t&&t.parent&&(s=this.editor.getSelection(),c=C._nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:c,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()})),v=!0);else if(39==d){if(m&&!g){var k=this._nextElement(f);k&&this.focus(this._getElementName(k)),v=!0}else if(m&&g&&w){D=A.getDom();var B=D.previousSibling;B&&(t=n.getNodeFromTarget(B))&&t.parent&&t instanceof l&&!t.isVisible()&&(s=this.editor.getSelection(),c=C._nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:c,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()}))}}else if(40==d)if(m&&!g)i=this._nextNode(),i&&(this.editor.deselect(!0),i.focus(n.focusElement||this._getElementName(f))),v=!0;else if(!m&&p&&g&&w)i=this._nextNode(),i&&(u=this.editor.multiselection,u.start=u.start||this,u.end=i,h=this.editor._findTopLevelNodes(u.start,u.end),this.editor.select(h),i.focus("field")),v=!0;else if(m&&g&&w){i=C.expanded?C.append?C.append._nextNode():void 0:C._nextNode();var _=i&&(i._nextNode()||i.parent.append);_&&_.parent&&(s=this.editor.getSelection(),c=C._nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:c,newBeforeNode:_,oldSelection:s,newSelection:this.editor.getSelection()})),v=!0}v&&(e.preventDefault(),e.stopPropagation())},n.prototype._onExpand=function(e){if(e){var t=this.dom.tr.parentNode,i=t.parentNode,n=i.scrollTop;i.removeChild(t)}this.expanded?this.collapse(e):this.expand(e),e&&(i.appendChild(t),i.scrollTop=n)},n.onRemove=function(e){if(!Array.isArray(e))return n.onRemove([e]);if(e&&e.length>0){var t=e[0],i=t.parent,r=t.editor,o=t.getIndex();r.highlighter.unhighlight();var s=r.getSelection();n.blurNodes(e);var a=r.getSelection();e.forEach(function(e){e.parent._remove(e)}),r._onAction("removeNodes",{nodes:e.slice(0),parent:i,index:o,oldSelection:s,newSelection:a})}},n.onDuplicate=function(e){if(!Array.isArray(e))return n.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],i=t.parent,r=t.editor;r.deselect(r.multiselection.nodes);var o=r.getSelection(),s=t,a=e.map(function(e){var t=e.clone();return i.insertAfter(t,s),s=t,t});1===e.length?a[0].focus():r.select(a);var l=r.getSelection();r._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:i,oldSelection:o,newSelection:l})}},n.prototype._onInsertBefore=function(e,t,i){var r=this.editor.getSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertBefore(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertBeforeNodes",{nodes:[o],beforeNode:this,parent:this.parent,oldSelection:r,newSelection:s})}, -n.prototype._onInsertAfter=function(e,t,i){var r=this.editor.getSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertAfter(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertAfterNodes",{nodes:[o],afterNode:this,parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onAppend=function(e,t,i){var r=this.editor.getSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.appendChild(o),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getSelection();this.editor._onAction("appendNodes",{nodes:[o],parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var i=this.editor.getSelection();this.changeType(e);var n=this.editor.getSelection();this.editor._onAction("changeType",{node:this,oldType:t,newType:e,oldSelection:i,newSelection:n})}},n.prototype.sort=function(e){if(this._hasChilds()){var t="desc"==e?-1:1,i="array"==this.type?"value":"field";this.hideChilds();var n=this.childs,o=this.sortOrder;this.childs=this.childs.concat(),this.childs.sort(function(e,n){return t*r(e[i],n[i])}),this.sortOrder=1==t?"asc":"desc",this.editor._onAction("sort",{node:this,oldChilds:n,oldSort:o,newChilds:this.childs,newSort:this.sortOrder}),this.showChilds()}},n.prototype.getAppend=function(){return this.append||(this.append=new l(this.editor),this.append.setParent(this)),this.append.getDom()},n.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},n.blurNodes=function(e){if(!Array.isArray(e))return void n.blurNodes([e]);var t=e[0],i=t.parent,r=t.getIndex();i.childs[r+e.length]?i.childs[r+e.length].focus():i.childs[r-1]?i.childs[r-1].focus():i.focus()},n.prototype._nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},n.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.previousSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof l&&!e.isVisible())}return e},n.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.nextSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof l&&!e.isVisible())}return e},n.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.firstChild;e=n.getNodeFromTarget(i)}return e},n.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.lastChild;for(e=n.getNodeFromTarget(i);i&&e instanceof l&&!e.isVisible();)i=i.previousSibling,e=n.getNodeFromTarget(i)}return e},n.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},n.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},n.prototype._getElementName=function(e){var t=this.dom;for(var i in t)if(t.hasOwnProperty(i)&&t[i]==e)return i;return null},n.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},n.TYPE_TITLES={auto:'Field type "auto". The field type is automatically determined from the value and can be a string, number, boolean, or null.',object:'Field type "object". An object contains an unordered set of key/value pairs.',array:'Field type "array". An array contains an ordered collection of values.',string:'Field type "string". Field type is not determined from the value, but always returned as string.'},n.prototype.addTemplates=function(e,t){var i=this,n=i.editor.options.templates;if(null!=n){n.length&&e.push({type:"separator"});var r=function(e,t){i._onAppend(e,t)},o=function(e,t){i._onInsertBefore(e,t)};n.forEach(function(i){e.push({text:i.text,className:i.className||"jsoneditor-type-object",title:i.title,click:t?r.bind(this,i.field,i.value):o.bind(this,i.field,i.value)})})}},n.prototype.showContextMenu=function(e,t){var i=this,r=n.TYPE_TITLES,s=[];if(this.editable.value&&s.push({text:"Type",title:"Change the type of this field",className:"jsoneditor-type-"+this.type,submenu:[{text:"Auto",className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:r.auto,click:function(){i._onChangeType("auto")}},{text:"Array",className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:r.array,click:function(){i._onChangeType("array")}},{text:"Object",className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:r.object,click:function(){i._onChangeType("object")}},{text:"String",className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:r.string,click:function(){i._onChangeType("string")}}]}),this._hasChilds()){var a="asc"==this.sortOrder?"desc":"asc";s.push({text:"Sort",title:"Sort the childs of this "+this.type,className:"jsoneditor-sort-"+a,click:function(){i.sort(a)},submenu:[{text:"Ascending",className:"jsoneditor-sort-asc",title:"Sort the childs of this "+this.type+" in ascending order",click:function(){i.sort("asc")}},{text:"Descending",className:"jsoneditor-sort-desc",title:"Sort the childs of this "+this.type+" in descending order",click:function(){i.sort("desc")}}]})}if(this.parent&&this.parent._hasChilds()){s.length&&s.push({type:"separator"});var l=i.parent.childs;if(i==l[l.length-1]){var c=[{text:"Auto",className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onAppend("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:r.array,click:function(){i._onAppend("",[])}},{text:"Object",className:"jsoneditor-type-object",title:r.object,click:function(){i._onAppend("",{})}},{text:"String",className:"jsoneditor-type-string",title:r.string,click:function(){i._onAppend("","","string")}}];i.addTemplates(c,!0),s.push({text:"Append",title:"Append a new field with type 'auto' after this field (Ctrl+Shift+Ins)",submenuTitle:"Select the type of the field to be appended",className:"jsoneditor-append",click:function(){i._onAppend("","","auto")},submenu:c})}var h=[{text:"Auto",className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onInsertBefore("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:r.array,click:function(){i._onInsertBefore("",[])}},{text:"Object",className:"jsoneditor-type-object",title:r.object,click:function(){i._onInsertBefore("",{})}},{text:"String",className:"jsoneditor-type-string",title:r.string,click:function(){i._onInsertBefore("","","string")}}];i.addTemplates(h,!1),s.push({text:"Insert",title:"Insert a new field with type 'auto' before this field (Ctrl+Ins)",submenuTitle:"Select the type of the field to be inserted",className:"jsoneditor-insert",click:function(){i._onInsertBefore("","","auto")},submenu:h}),this.editable.field&&(s.push({text:"Duplicate",title:"Duplicate this field (Ctrl+D)",className:"jsoneditor-duplicate",click:function(){n.onDuplicate(i)}}),s.push({text:"Remove",title:"Remove this field (Ctrl+Del)",className:"jsoneditor-remove",click:function(){n.onRemove(i)}}))}new o(s,{close:t}).show(e,this.editor.content)},n.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},n.prototype._stringCast=function(e){var t=e.toLowerCase(),i=Number(e),n=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(i)||isNaN(n)?e:i)},n.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t),n=i.substring(1,i.length-1);return!0===this.editor.options.escapeUnicode&&(n=a.escapeUnicodeChars(n)),n},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return a.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},n.prototype._escapeJSON=function(e){for(var t="",i=0;ig)return 1}for(var m=0,v=Math.max(d.length,f.length);mr)return 1}return 0}},function(e,t,i){"use strict";function n(e){function t(e){this.editor=e,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;this._updateEditability();var t=document.createElement("tr");if(t.node=this,e.tr=t,"tree"===this.editor.options.mode){e.tdDrag=document.createElement("td");var i=document.createElement("td");e.tdMenu=i;var n=document.createElement("button");n.type="button",n.className="jsoneditor-contextmenu",n.title="Click to open the actions menu (Ctrl+M)",e.menu=n,i.appendChild(e.menu)}var r=document.createElement("td"),o=document.createElement("div");return o.innerHTML="(empty)",o.className="jsoneditor-readonly",r.appendChild(o),e.td=r,e.text=o,this.updateDom(),t},t.prototype.updateDom=function(){var e=this.dom,t=e.td;t&&(t.style.paddingLeft=24*this.getLevel()+26+"px");var i=e.text;i&&(i.innerHTML="(empty "+this.parent.type+")");var n=e.tr;this.isVisible()?e.tr.firstChild||(e.tdDrag&&n.appendChild(e.tdDrag),e.tdMenu&&n.appendChild(e.tdMenu),n.appendChild(t)):e.tr.firstChild&&(e.tdDrag&&n.removeChild(e.tdDrag),e.tdMenu&&n.removeChild(e.tdMenu),n.removeChild(t))},t.prototype.isVisible=function(){return 0==this.parent.childs.length},t.prototype.showContextMenu=function(t,i){var n=this,r=e.TYPE_TITLES,s=[{text:"Auto",className:"jsoneditor-type-auto",title:r.auto,click:function(){n._onAppend("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:r.array,click:function(){n._onAppend("",[])}},{text:"Object",className:"jsoneditor-type-object",title:r.object,click:function(){n._onAppend("",{})}},{text:"String",className:"jsoneditor-type-string",title:r.string,click:function(){n._onAppend("","","string")}}];n.addTemplates(s,!0),new o([{text:"Append!",title:"Append a new field with type 'auto' (Ctrl+Shift+Ins)",submenuTitle:"Select the type of the field to be appended",className:"jsoneditor-insert",click:function(){n._onAppend("","","auto")},submenu:s}],{close:i}).show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,i=e.target||e.srcElement,n=this.dom;if(i==n.menu&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&i==n.menu){var o=this.editor.highlighter;o.highlight(this.parent),o.lock(),r.addClassName(n.menu,"jsoneditor-selected"),this.showContextMenu(n.menu,function(){r.removeClassName(n.menu,"jsoneditor-selected"),o.unlock(),o.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var r=i(57),o=i(60);e.exports=n},function(e,t,i){"use strict";function n(e,t,i,n){for(var o={code:{text:"Code",title:"Switch to code highlighter",click:function(){n("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){n("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){n("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){n("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){n("view")}}},s=[],a=0;a0){if(i.length>3){i=i.slice(0,3);var n=this.validateSchema.errors.length-3;i.push("("+n+" more errors...)")}var r=document.createElement("div");r.innerHTML=''+i.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=r,this.frame.appendChild(r);var s=r.clientHeight;this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},e.exports=[{mode:"text",mixin:s,data:"text",load:s.format},{mode:"code",mixin:s,data:"text",load:s.format}]},function(e,t,i){var n;if(window.ace)n=window.ace;else try{n=i(67),i(70),i(72)}catch(e){}e.exports=n},function(e,t,i){!function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,i,n){if("string"!=typeof e)return void(t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace()));2==arguments.length&&(n=i),t.modules[e]||(t.payloads[e]=n,t.modules[e]=null)};t.modules={},t.payloads={};var i=function(e,t,i){if("string"==typeof t){var r=o(e,t);if(void 0!=r)return i&&i(),r}else if("[object Array]"===Object.prototype.toString.call(t)){for(var s=[],a=0,l=t.length;a1&&r(l,"")>-1&&(i=RegExp(this.source,o.replace.call(n(this),"g","")),o.replace.call(e.slice(l.index),i,function(){for(var e=1;el.index&&this.lastIndex--}return l},a||(RegExp.prototype.test=function(e){var t=o.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t}))}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,i){function n(){}function r(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(e){}}function o(e){return e=+e,e!==e?e=0:0!==e&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError("Function.prototype.bind called on incompatible "+t);var i=p.call(arguments,1),r=function(){if(this instanceof r){var n=t.apply(this,i.concat(p.call(arguments)));return Object(n)===n?n:this}return t.apply(e,i.concat(p.call(arguments)))};return t.prototype&&(n.prototype=t.prototype,r.prototype=new n,n.prototype=null),r});var s,a,l,c,h,u=Function.prototype.call,d=Array.prototype,f=Object.prototype,p=d.slice,g=u.bind(f.toString),m=u.bind(f.hasOwnProperty);if((h=m(f,"__defineGetter__"))&&(s=u.bind(f.__defineGetter__),a=u.bind(f.__defineSetter__),l=u.bind(f.__lookupGetter__),c=u.bind(f.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t,i=[];if(i.splice.apply(i,e(20)),i.splice.apply(i,e(26)),t=i.length,i.splice(5,0,"XXX"),i.length,t+1==i.length)return!0}()){var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[void 0===e?0:e,void 0===t?this.length-e:t].concat(p.call(arguments,2))):[]}}else Array.prototype.splice=function(e,t){var i=this.length;e>0?e>i&&(e=i):void 0==e?e=0:e<0&&(e=Math.max(i+e,0)),e+ta)for(u=c;u--;)this[l+u]=this[a+u];if(o&&e===h)this.length=h,this.push.apply(this,r);else for(this.length=h+o,u=0;u>>0;if("[object Function]"!=g(e))throw new TypeError;for(;++r>>0,r=Array(n),o=arguments[1];if("[object Function]"!=g(e))throw new TypeError(e+" is not a function");for(var s=0;s>>0,o=[],s=arguments[1];if("[object Function]"!=g(e))throw new TypeError(e+" is not a function");for(var a=0;a>>0,r=arguments[1];if("[object Function]"!=g(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0,r=arguments[1];if("[object Function]"!=g(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0;if("[object Function]"!=g(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var r,o=0;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o++];break}if(++o>=n)throw new TypeError("reduce of empty array with no initial value")}for(;o>>0;if("[object Function]"!=g(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var r,o=n-1;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}do{o in this&&(r=e.call(void 0,r,i[o],o,t))}while(o--);return r}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(e){var t=y&&"[object String]"==g(this)?this.split(""):_(this),i=t.length>>>0;if(!i)return-1;var n=0;for(arguments.length>1&&(n=o(arguments[1])),n=n>=0?n:Math.max(0,i+n);n>>0;if(!i)return-1;var n=i-1;for(arguments.length>1&&(n=Math.min(n,o(arguments[1]))),n=n>=0?n:i-Math.abs(n);n>=0;n--)if(n in t&&e===t[n])return n;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:f)}),!Object.getOwnPropertyDescriptor){Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.getOwnPropertyDescriptor called on a non-object: "+e);if(m(e,t)){var i,n,r;if(i={enumerable:!0,configurable:!0},h){var o=e.__proto__;e.__proto__=f;var n=l(e,t),r=c(e,t);if(e.__proto__=o,n||r)return n&&(i.get=n),r&&(i.set=r),i}return i.value=e[t],i}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)}),!Object.create){var A;A=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(e,t){var i;if(null===e)i=A();else{if("object"!=typeof e)throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var n=function(){};n.prototype=e,i=new n,i.__proto__=e}return void 0!==t&&Object.defineProperties(i,t),i}}if(Object.defineProperty){var C=r({}),E="undefined"==typeof document||r(document.createElement("div"));if(!C||!E)var b=Object.defineProperty}if(!Object.defineProperty||b){Object.defineProperty=function(e,t,i){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.defineProperty called on non-object: "+e);if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError("Property description must be an object: "+i);if(b)try{return b.call(Object,e,t,i)}catch(e){}if(m(i,"value"))if(h&&(l(e,t)||c(e,t))){var n=e.__proto__;e.__proto__=f,delete e[t],e[t]=i.value,e.__proto__=n}else e[t]=i.value;else{if(!h)throw new TypeError("getters & setters can not be defined on this javascript engine");m(i,"get")&&s(e,t,i.get),m(i,"set")&&a(e,t,i.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var i in t)m(t,i)&&Object.defineProperty(e,i,t[i]);return e}),Object.seal||(Object.seal=function(e){return e}),Object.freeze||(Object.freeze=function(e){return e});try{Object.freeze(function(){})}catch(e){Object.freeze=function(e){return function(t){return"function"==typeof t?t:e(t)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(e){return e}),Object.isSealed||(Object.isSealed=function(e){return!1}),Object.isFrozen||(Object.isFrozen=function(e){return!1}),Object.isExtensible||(Object.isExtensible=function(e){if(Object(e)===e)throw new TypeError;for(var t="";m(e,t);)t+="?";e[t]=!0;var i=m(e,t);return delete e[t],i}),!Object.keys){var F=!0,x=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],S=x.length;for(var $ in{toString:null})F=!1;Object.keys=function(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var t=[];for(var i in e)m(e,i)&&t.push(i);if(F)for(var n=0,r=S;n=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&"Gecko"===window.navigator.product,t.isOldGecko=t.isGecko&&parseInt((r.match(/rv:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isIPad=r.indexOf("iPad")>=0,t.isTouchPad=r.indexOf("TouchPad")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t,i){var n=c(t);if(!s.isMac&&a){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(n|=8),a.altGr){if(3==(3&n))return;a.altGr=0}if(18===i||17===i){var r="location"in t?t.location:t.keyLocation;if(17===i&&1===r)1==a[i]&&(l=t.timeStamp);else if(18===i&&3===n&&2===r){var h=t.timeStamp-l;h<50&&(a.altGr=!0)}}}if(i in o.MODIFIER_KEYS&&(i=-1),8&n&&i>=91&&i<=93&&(i=-1),!n&&13===i){var r="location"in t?t.location:t.keyLocation;if(3===r&&(e(t,n,-i),t.defaultPrevented))return}if(s.isChromeOS&&8&n){if(e(t,n,i),t.defaultPrevented)return;n&=-9}return!!(n||i in o.FUNCTION_KEYS||i in o.PRINTABLE_KEYS)&&e(t,n,i)}function r(){a=Object.create(null)}var o=e("./keys"),s=e("./useragent"),a=null,l=0;t.addListener=function(e,t,i){if(e.addEventListener)return e.addEventListener(t,i,!1);if(e.attachEvent){var n=function(){i.call(e,window.event)};i._wrapper=n,e.attachEvent("on"+t,n)}},t.removeListener=function(e,t,i){if(e.removeEventListener)return e.removeEventListener(t,i,!1);e.detachEvent&&e.detachEvent("on"+t,i._wrapper||i)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return"dblclick"==e.type?0:"contextmenu"==e.type||s.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,i,n){function r(e){i&&i(e),n&&n(e),t.removeListener(document,"mousemove",i,!0),t.removeListener(document,"mouseup",r,!0),t.removeListener(document,"dragstart",r,!0)}return t.addListener(document,"mousemove",i,!0),t.addListener(document,"mouseup",r,!0),t.addListener(document,"dragstart",r,!0),r},t.addTouchMoveListener=function(e,i){if("ontouchmove"in e){var n,r;t.addListener(e,"touchstart",function(e){var t=e.changedTouches[0];n=t.clientX,r=t.clientY}),t.addListener(e,"touchmove",function(e){var t=e.changedTouches[0];e.wheelX=-(t.clientX-n)/1,e.wheelY=-(t.clientY-r)/1,n=t.clientX,r=t.clientY,i(e)})}},t.addMouseWheelListener=function(e,i){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/8,e.wheelY=-e.wheelDeltaY/8):(e.wheelX=0,e.wheelY=-e.wheelDelta/8),i(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=.35*e.deltaX||0,e.wheelY=.35*e.deltaY||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=5*(e.deltaX||0),e.wheelY=5*(e.deltaY||0)}i(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=5*(e.detail||0),e.wheelY=0):(e.wheelX=0,e.wheelY=5*(e.detail||0)),i(e)})},t.addMultiMouseDownListener=function(e,i,n,r){function o(e){if(0!==t.getButton(e)?u=0:e.detail>1?++u>4&&(u=1):u=1,s.isIE){var o=Math.abs(e.clientX-l)>5||Math.abs(e.clientY-c)>5;h&&!o||(u=1),h&&clearTimeout(h),h=setTimeout(function(){h=null},i[u-1]||600),1==u&&(l=e.clientX,c=e.clientY)}if(e._clicks=u,n[r]("mousedown",e),u>4)u=0;else if(u>1)return n[r](d[u],e)}function a(e){u=2,h&&clearTimeout(h),h=setTimeout(function(){h=null},i[u-1]||600),n[r]("mousedown",e),n[r](d[u],e)}var l,c,h,u=0,d={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,"mousedown",o),s.isOldIE&&t.addListener(e,"dblclick",a)})};var c=!s.isMac||!s.isOpera||"KeyboardEvent"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};if(t.getModifierString=function(e){return o.KEY_MODS[c(e)]},t.addCommandKeyListener=function(e,i){var o=t.addListener;if(s.isOldGecko||s.isOpera&&!("KeyboardEvent"in window)){var l=null;o(e,"keydown",function(e){l=e.keyCode}),o(e,"keypress",function(e){return n(i,e,l)})}else{var c=null;o(e,"keydown",function(e){a[e.keyCode]=(a[e.keyCode]||0)+1;var t=n(i,e,e.keyCode);return c=e.defaultPrevented,t}),o(e,"keypress",function(e){c&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),c=null)}),o(e,"keyup",function(e){a[e.keyCode]=null}),a||(r(),o(window,"focus",r))}},"object"==typeof window&&window.postMessage&&!s.isOldIE){t.nextTick=function(e,i){i=i||window;t.addListener(i,"message",function n(r){"zero-timeout-message-1"==r.data&&(t.stopPropagation(r),t.removeListener(i,"message",n),e())}),i.postMessage("zero-timeout-message-1","*")}}t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,i){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){for(var i="";t>0;)1&t&&(i+=e),(t>>=1)&&(e+=e);return i};t.stringTrimLeft=function(e){return e.replace(/^\s\s*/,"")},t.stringTrimRight=function(e){return e.replace(/\s\s*$/,"")},t.copyObject=function(e){var t={};for(var i in e)t[i]=e[i];return t},t.copyArray=function(e){for(var t=[],i=0,n=e.length;i=53&&B()}},I=s.delayedCall(O,50);n.addListener(u,"compositionstart",M),r.isGecko?n.addListener(u,"text",function(){I.schedule()}):(n.addListener(u,"keyup",function(){I.schedule()}),n.addListener(u,"keydown",function(){I.schedule()})),n.addListener(u,"compositionend",N),this.getElement=function(){return u},this.setReadOnly=function(e){u.readOnly=e},this.onContextMenu=function(e){D=!0,i(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){if(i||!r.isOldIE){m||(m=u.style.cssText),u.style.cssText=(i?"z-index:100000;":"")+"height:"+u.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),l=s.top+(parseInt(a.borderTopWidth)||0),c=s.left+(parseInt(s.borderLeftWidth)||0),d=s.bottom-l-u.clientHeight-2,f=function(e){u.style.left=e.clientX-c-2+"px",u.style.top=Math.min(e.clientY-l-2,d)+"px"};f(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(j),r.isWin&&!r.isOldIE&&n.capture(t.container,f,h))}},this.onContextMenuClose=h;var j,W=function(e){t.textInput.onContextMenu(e),h()};n.addListener(u,"mouseup",W),n.addListener(u,"mousedown",function(e){e.preventDefault(),h()}),n.addListener(t.renderer.scroller,"contextmenu",W),n.addListener(u,"contextmenu",W)};t.TextInput=c}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),t.setDefaultHandler("touchmove",this.onTouchMove.bind(e)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}function o(e,t){if(e.start.row==e.end.row)var i=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)var i=2*t.row-e.start.row-e.end.row;else var i=t.column-4;return i<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}e("../lib/dom"),e("../lib/event"),e("../lib/useragent");(function(){this.onMouseDown=function(e){var t=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var n=this.editor,r=e.getButton();if(0!==r){var o=n.getSelectionRange(),s=o.isEmpty();return n.$blockScrolling++,(s||1==r)&&n.selection.moveToPosition(i),n.$blockScrolling--,void(2==r&&n.textInput.onContextMenu(e.domEvent))}return this.mousedownEvent.time=Date.now(),!t||n.isFocused()||(n.focus(),!this.$focusTimout||this.$clickSelection||n.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(i,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e))},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var i=this.editor;i.$blockScrolling++,this.mousedownEvent.getShiftKey()?i.selection.selectToPosition(e):t||i.selection.moveToPosition(e),t||this.select(),i.renderer.scroller.setCapture&&i.renderer.scroller.setCapture(),i.setStyle("ace_selecting"),this.setState("select"),i.$blockScrolling--},this.select=function(){var e,t=this.editor,i=t.renderer.screenToTextCoordinates(this.x,this.y);if(t.$blockScrolling++,this.$clickSelection){var n=this.$clickSelection.comparePoint(i);if(-1==n)e=this.$clickSelection.end;else if(1==n)e=this.$clickSelection.start;else{var r=o(this.$clickSelection,i);i=r.cursor,e=r.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(i),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,i=this.editor,n=i.renderer.screenToTextCoordinates(this.x,this.y),r=i.selection[e](n.row,n.column);if(i.$blockScrolling++,this.$clickSelection){var s=this.$clickSelection.comparePoint(r.start),a=this.$clickSelection.comparePoint(r.end);if(-1==s&&a<=0)t=this.$clickSelection.end,r.end.row==n.row&&r.end.column==n.column||(n=r.start);else if(1==a&&s>=0)t=this.$clickSelection.start,r.start.row==n.row&&r.start.column==n.column||(n=r.end);else if(-1==s&&1==a)n=r.end,t=r.start;else{var l=o(this.$clickSelection,n);n=l.cursor,t=l.anchor}i.selection.setSelectionAnchor(t.row,t.column)}i.selection.selectToPosition(n),i.$blockScrolling--,i.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>0||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),i=this.editor,n=i.session,r=n.getBracketRange(t);r?(r.isEmpty()&&(r.start.column--,r.end.column++),this.setState("select")):(r=i.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=r,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),i=this.editor;this.setState("selectByLines");var n=i.getSelectionRange();n.isMultiLine()&&n.contains(t.row,t.column)?(this.$clickSelection=i.selection.getLineRange(n.start.row),this.$clickSelection.end=i.selection.getLineRange(n.end.row).end):this.$clickSelection=i.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=e.domEvent.timeStamp,i=t-(this.$lastScrollTime||0),n=this.editor;return n.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed)||i<200?(this.$lastScrollTime=t,n.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},this.onTouchMove=function(e){var t=e.domEvent.timeStamp,i=t-(this.$lastScrollTime||0),n=this.editor;if(n.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed)||i<200)return this.$lastScrollTime=t,n.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}}).call(n.prototype),t.DefaultHandlers=n}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,i){"use strict";function n(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=(e("./lib/oop"),e("./lib/dom"));(function(){this.$init=function(){return this.$element=r.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){r.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){r.addCssClass(this.getElement(),e)},this.show=function(e,t,i){null!=e&&this.setText(e),null!=t&&null!=i&&this.setPosition(t,i),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth}}).call(n.prototype),t.Tooltip=n}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,i){"use strict";function n(e){function t(){var t=u.getDocumentPosition().row,r=l.$annotations[t];if(!r)return i();if(t==s.session.getLength()){var o=s.renderer.pixelToScreenCoordinates(0,u.y).row,a=u.$pos;if(o>s.session.documentToScreenRow(a.row,a.column))return i()}if(d!=r)if(d=r.text.join("
"),c.setHtml(d),c.show(),s._signal("showGutterTooltip",c),s.on("mousewheel",i),e.$tooltipFollowsMouse)n(u);else{var h=u.domEvent.target,f=h.getBoundingClientRect(),p=c.getElement().style;p.left=f.right+"px",p.top=f.bottom+"px"}}function i(){h&&(h=clearTimeout(h)),d&&(c.hide(),d=null,s._signal("hideGutterTooltip",c),s.removeEventListener("mousewheel",i))}function n(e){c.setPosition(e.x,e.y)}var s=e.editor,l=s.renderer.$gutterLayer,c=new r(s.container);e.editor.setDefaultHandler("guttermousedown",function(t){if(s.isFocused()&&0==t.getButton()){if("foldWidgets"!=l.getRegion(t)){var i=t.getDocumentPosition().row,n=s.session.selection;if(t.getShiftKey())n.selectTo(i,0);else{if(2==t.domEvent.detail)return s.selectAll(),t.preventDefault();e.$clickSelection=s.selection.getLineRange(i)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}}});var h,u,d;e.editor.setDefaultHandler("guttermousemove",function(r){var s=r.domEvent.target||r.domEvent.srcElement;if(o.hasCssClass(s,"ace_fold-widget"))return i();d&&e.$tooltipFollowsMouse&&n(r),u=r,h||(h=setTimeout(function(){h=null,u&&!e.isMousePressed?t():i()},50))}),a.addListener(s.renderer.$gutter,"mouseout",function(e){u=null,d&&!h&&(h=setTimeout(function(){h=null,i()},50))}),s.on("changeSession",i)}function r(e){l.call(this,e)}var o=e("../lib/dom"),s=e("../lib/oop"),a=e("../lib/event"),l=e("../tooltip").Tooltip;s.inherits(r,l),function(){this.setPosition=function(e,t){var i=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,r=this.getWidth(),o=this.getHeight();e+=15,t+=15,e+r>i&&(e-=e+r-i),t+o>n&&(t-=20+o),l.prototype.setPosition.call(this,e,t)}}.call(r.prototype),t.GutterHandler=n}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){n.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){n.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var i=this.getDocumentPosition();this.$inSelection=t.contains(i.row,i.column)}return this.$inSelection},this.getButton=function(){return n.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=r.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(o.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){function t(e,t){var i=Date.now(),n=!t||e.row!=t.row,o=!t||e.column!=t.column;if(!$||n||o)m.$blockScrolling+=1,m.moveCursorToPosition(e),m.$blockScrolling-=1,$=i,D={x:y,y:A};else{r(D.x,D.y,y,A)>h?$=null:i-$>=c&&(m.renderer.scrollCursorIntoView(),$=null)}}function i(e,t){var i=Date.now(),n=m.renderer.layerConfig.lineHeight,r=m.renderer.layerConfig.characterWidth,o=m.renderer.scroller.getBoundingClientRect(),s={x:{left:y-o.left,right:o.right-y},y:{top:A-o.top,bottom:o.bottom-A}},a=Math.min(s.x.left,s.x.right),c=Math.min(s.y.top,s.y.bottom),h={row:e.row,column:e.column};a/r<=2&&(h.column+=s.x.left=l&&m.renderer.scrollCursorIntoView(h):S=i:S=null}function n(){var e=b;b=m.renderer.screenToTextCoordinates(y,A),t(b,e),i(b,e)}function u(){E=m.selection.toOrientedRange(),w=m.session.addMarker(E,"ace_selection",m.getSelectionStyle()),m.clearSelection(),m.isFocused()&&m.renderer.$cursorLayer.setBlinking(!1),clearInterval(C),n(),C=setInterval(n,20),B=0,s.addListener(document,"mousemove",f)}function d(){clearInterval(C),m.session.removeMarker(w),w=null,m.$blockScrolling+=1,m.selection.fromOrientedRange(E),m.$blockScrolling-=1,m.isFocused()&&!x&&m.renderer.$cursorLayer.setBlinking(!m.getReadOnly()),E=null,b=null,B=0,S=null,$=null,s.removeListener(document,"mousemove",f)}function f(){null==_&&(_=setTimeout(function(){null!=_&&w&&d()},20))}function p(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return"text/plain"==e||"Text"==e})}function g(e){var t=["copy","copymove","all","uninitialized"],i=["move","copymove","linkmove","all","uninitialized"],n=a.isMac?e.altKey:e.ctrlKey,r="uninitialized";try{r=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return n&&t.indexOf(r)>=0?o="copy":i.indexOf(r)>=0?o="move":t.indexOf(r)>=0&&(o="copy"),o}var m=e.editor,v=o.createElement("img");v.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",a.isOpera&&(v.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;"),["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach(function(t){ -e[t]=this[t]},this),m.addEventListener("mousedown",this.onMouseDown.bind(e));var w,y,A,C,E,b,F,x,S,$,D,k=m.container,B=0;this.onDragStart=function(e){if(this.cancelDrag||!k.draggable){var t=this;return setTimeout(function(){t.startSelect(),t.captureMouse(e)},0),e.preventDefault()}E=m.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=m.getReadOnly()?"copy":"copyMove",a.isOpera&&(m.container.appendChild(v),v.scrollTop=0),i.setDragImage&&i.setDragImage(v,0,0),a.isOpera&&m.container.removeChild(v),i.clearData(),i.setData("Text",m.session.getTextRange()),x=!0,this.setState("drag")},this.onDragEnd=function(e){if(k.draggable=!1,x=!1,this.setState(null),!m.getReadOnly()){var t=e.dataTransfer.dropEffect;F||"move"!=t||m.session.remove(m.getSelectionRange()),m.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!m.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||u(),B++,e.dataTransfer.dropEffect=F=g(e),s.preventDefault(e)},this.onDragOver=function(e){if(!m.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||(u(),B++),null!==_&&(_=null),e.dataTransfer.dropEffect=F=g(e),s.preventDefault(e)},this.onDragLeave=function(e){if(--B<=0&&w)return d(),F=null,s.preventDefault(e)},this.onDrop=function(e){if(b){var t=e.dataTransfer;if(x)switch(F){case"move":E=E.contains(b.row,b.column)?{start:b,end:b}:m.moveText(E,b);break;case"copy":E=m.moveText(E,b,!0)}else{var i=t.getData("Text");E={start:b,end:m.session.insert(b,i)},m.focus(),F=null}return d(),s.preventDefault(e)}},s.addListener(k,"dragstart",this.onDragStart.bind(e)),s.addListener(k,"dragend",this.onDragEnd.bind(e)),s.addListener(k,"dragenter",this.onDragEnter.bind(e)),s.addListener(k,"dragover",this.onDragOver.bind(e)),s.addListener(k,"dragleave",this.onDragLeave.bind(e)),s.addListener(k,"drop",this.onDrop.bind(e));var _=null}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}var o=e("../lib/dom"),s=e("../lib/event"),a=e("../lib/useragent"),l=200,c=200,h=5;(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=a.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(a.isIE&&"dragReady"==this.state){var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>3&&t.dragDrop()}if("dragWait"===this.state){var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,i=e.inSelection(),n=e.getButton();if(1===(e.domEvent.detail||1)&&0===n&&i){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var r=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in r&&(r.unselectable="on"),t.getDragDelay()){if(a.isWebKit){this.cancelDrag=!0;t.container.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(n.prototype),t.DragdropHandler=n}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n=e("./dom");t.get=function(e,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.onreadystatechange=function(){4===i.readyState&&t(i.responseText)},i.send(null)},t.loadScript=function(e,t){var i=n.getDocumentHead(),r=document.createElement("script");r.src=e,i.appendChild(r),r.onload=r.onreadystatechange=function(e,i){!i&&r.readyState&&"loaded"!=r.readyState&&"complete"!=r.readyState||(r=r.onload=r.onreadystatechange=null,i||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,i){"use strict";var n={},r=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};n._emit=n._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var i=this._eventRegistry[e]||[],n=this._defaultHandlers[e];if(i.length||n){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=r),t.preventDefault||(t.preventDefault=o),i=i.slice();for(var s=0;s1&&(r=i[i.length-2]);var s=h[t+"Path"];return null==s?s=h.basePath:"/"==n&&(t=n=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+n+r+this.get("suffix")},t.setModuleUrl=function(e,t){return h.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(i,n){var r,o;Array.isArray(i)&&(o=i[0],i=i[1]);try{r=e(i)}catch(e){}if(r&&!t.$loading[i])return n&&n(r);if(t.$loading[i]||(t.$loading[i]=[]),t.$loading[i].push(n),!(t.$loading[i].length>1)){var s=function(){e([i],function(e){t._emit("load.module",{name:i,module:e});var n=t.$loading[i];t.$loading[i]=null,n.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return s();a.loadScript(t.moduleUrl(i,o),s)}},r(!0),t.init=r}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=e("./default_handlers").DefaultHandlers,s=e("./default_gutter_handler").GutterHandler,a=e("./mouse_event").MouseEvent,l=e("./dragdrop_handler").DragdropHandler,c=e("../config"),h=function(e){var t=this;this.editor=e,new o(this),new s(this),new l(this);var i=function(t){(!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement()))&&window.focus(),e.focus()},a=e.renderer.getMouseEventTarget();n.addListener(a,"click",this.onMouseEvent.bind(this,"click")),n.addListener(a,"mousemove",this.onMouseMove.bind(this,"mousemove")),n.addMultiMouseDownListener([a,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),n.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),n.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var c=e.renderer.$gutter;n.addListener(c,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),n.addListener(c,"click",this.onMouseEvent.bind(this,"gutterclick")),n.addListener(c,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),n.addListener(c,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),n.addListener(a,"mousedown",i),n.addListener(c,"mousedown",i),r.isIE&&e.renderer.scrollBarV&&(n.addListener(e.renderer.scrollBarV.element,"mousedown",i),n.addListener(e.renderer.scrollBarH.element,"mousedown",i)),e.on("mousemove",function(i){if(!t.state&&!t.$dragDelay&&t.$dragEnabled){var n=e.renderer.screenToTextCoordinates(i.x,i.y),r=e.session.selection.getRange(),o=e.renderer;!r.isEmpty()&&r.insideStart(n.row,n.column)?o.setCursorStyle("default"):o.setCursorStyle("")}})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new a(t,this.editor))},this.onMouseMove=function(e,t){var i=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;i&&i.length&&this.editor._emit(e,new a(t,this.editor))},this.onMouseWheel=function(e,t){var i=new a(t,this.editor);i.speed=2*this.$scrollSpeed,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.onTouchMove=function(e,t){var i=new a(t,this.editor);i.speed=1,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var i=this.editor.renderer;i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=null);var o=this,s=function(e){if(e){if(r.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new a(e,o.editor),o.$mouseMoved=!0}},l=function(e){clearInterval(h),c(),o[o.state+"End"]&&o[o.state+"End"](e),o.state="",null==i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=!0,i.$moveTextAreaToCursor()),o.isMousePressed=!1,o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent("mouseup",e)},c=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(r.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout(function(){l(e)});o.$onCaptureMouseMove=s,o.releaseMouse=n.capture(this.editor.container,s,l);var h=setInterval(c,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){t&&t.domEvent&&"contextmenu"!=t.domEvent.type||(this.editor.off("nativecontextmenu",e),t&&t.domEvent&&n.stopEvent(t.domEvent))}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(h.prototype),c.defineOptions(h.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:r.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=h}),ace.define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,i){"use strict";function n(e){e.on("click",function(t){var i=t.getDocumentPosition(),n=e.session,r=n.getFoldAt(i.row,i.column,1);r&&(t.getAccelKey()?n.removeFold(r):n.expandFold(r),t.stop())}),e.on("gutterclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session;n.foldWidgets&&n.foldWidgets[i]&&e.session.onFoldWidgetClick(i,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session,r=n.getParentFoldRangeData(i,!0),o=r.range||r.firstRange;if(o){i=o.start.row;var s=n.getFoldAt(i,n.getLine(i).length,1);s?n.removeFold(s):(n.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}t.FoldHandler=n}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,i){"use strict";var n=e("../lib/keys"),r=e("../lib/event"),o=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]!=e){for(;t[t.length-1]&&t[t.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)}},this.addKeyboardHandler=function(e,t){if(e){"function"!=typeof e||e.handleKeyboard||(e.handleKeyboard=e);var i=this.$handlers.indexOf(e);-1!=i&&this.$handlers.splice(i,1),void 0==t?this.$handlers.push(e):this.$handlers.splice(t,0,e),-1==i&&e.attach&&e.attach(this.$editor)}},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return-1!=t&&(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(i){return i.getStatusText&&i.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,i,n){for(var o,s=!1,a=this.$editor.commands,l=this.$handlers.length;l--&&!((o=this.$handlers[l].handleKeyboard(this.$data,e,t,i,n))&&o.command&&(s="null"==o.command||a.exec(o.command,this.$editor,o.args,n),s&&n&&-1!=e&&1!=o.passEvent&&1!=o.command.passEvent&&r.stopEvent(n),s)););return s||-1!=e||(o={command:"insertstring"},s=a.exec("insertstring",this.$editor,t)),s&&this.$editor._signal&&this.$editor._signal("keyboardActivity",o),s},this.onCommandKey=function(e,t,i){var r=n.keyCodeToString(i);this.$callKeyboardHandlers(t,r,i,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(o.prototype),t.KeyBinding=o}),ace.define("ace/range",["require","exports","module"],function(e,t,i){"use strict";var n=function(e,t){return e.row-t.row||e.column-t.column},r=function(e,t,i,n){this.start={row:e,column:t},this.end={row:i,column:n}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t,i=e.end,n=e.start;return t=this.compare(i.row,i.column),1==t?(t=this.compare(n.row,n.column),1==t?2:0==t?1:0):-1==t?-2:(t=this.compare(n.row,n.column),-1==t?-1:1==t?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)&&(!this.isEnd(e,t)&&!this.isStart(e,t))},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var i={row:t+1,column:0};else if(this.end.rowt)var n={row:t+1,column:0};else if(this.start.rowt.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(void 0===t){var i=e||this.lead;e=i.row,t=i.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var i,n="number"==typeof e?e:this.lead.row,r=this.session.getFoldLine(n);return r?(n=r.start.row,i=r.end.row):i=n,!0===t?new s(n,0,i,this.session.getLine(i).length):new s(n,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var i=this.session.getTabSize();this.session.isTabStop(t)&&this.doc.getLine(t.row).slice(t.column-i,t.column).split(" ").length-1==i?this.moveCursorBy(0,-i):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=n)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(e,t,1);return r?void this.moveCursorTo(r.end.row,r.end.column):(this.session.nonTokenRe.exec(n)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,n=i.substring(t)),t>=i.length?(this.moveCursorTo(e,i.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(o)&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,i)},this.$shortWordEndIndex=function(e){var t,i=0,n=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,this.session.tokenRe.exec(e))i=this.session.tokenRe.lastIndex;else{for(;(t=e[i])&&n.test(t);)i++;if(i<1)for(r.lastIndex=0;(t=e[i])&&!r.test(t);)if(r.lastIndex=0,i++,n.test(t)){if(i>2){i--;break}for(;(t=e[i])&&n.test(t);)i++;if(i>2)break}}return r.lastIndex=0,i},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t),r=this.session.getFoldAt(e,t,1);if(r)return this.moveCursorTo(r.end.row,r.end.column);if(t==i.length){var o=this.doc.getLength();do{e++,n=this.doc.getLine(e)}while(e0&&/^\s*$/.test(n));i=n.length,/\s+$/.test(n)||(n="")}var o=r.stringReverse(n),s=this.$shortWordEndIndex(o);return this.moveCursorTo(t,i-s)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var i=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===t&&(this.$desiredColumn?i.column=this.$desiredColumn:this.$desiredColumn=i.column);var n=this.session.screenToDocumentPosition(i.row+e,i.column);0!==e&&0===t&&n.row===this.lead.row&&n.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[n.row]&&(n.row>0||e>0)&&n.row++,this.moveCursorTo(n.row,n.column+t,0===t)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,i){var n=this.session.getFoldAt(e,t,1);n&&(e=n.start.row,t=n.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,i||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,i){var n=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(n.row,n.column,i)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var i=this.getCursor();return s.fromPoints(t,i)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(void 0==e.start){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var i=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(i.cursor=i.start),this.addRange(i,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(a.prototype),t.Selection=a}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,i){"use strict";var n=e("./config"),r=2e3,o=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){for(var i=this.states[t],n=[],r=0,o=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),u>1&&(/\\\d/.test(c.regex)?h=c.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+r+1)}):(u=1,h=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),o[r]=l,r+=u,n.push(h),c.onMatch||(c.onMatch=null)}}n.length||(o[0]=0,n.push("$")),a.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)},this),this.regExps[t]=new RegExp("("+n.join(")|(")+")|($)",s)}};(function(){this.$setMaxTokenCount=function(e){r=0|e},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),i=this.token.apply(this,t);if("string"==typeof i)return[{type:i,value:e}];for(var n=[],r=0,o=i.length;rh){var v=e.substring(h,m-g.length);d.type==f?d.value+=v:(d.type&&c.push(d),d={type:f,value:v})}for(var w=0;wr){for(u>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});h1&&i[0]!==n&&i.unshift("#tmp",n),{tokens:c,state:i.length?i:n}},this.reportError=n.reportError}).call(o.prototype),t.Tokenizer=o}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,i){"use strict";var n=e("../lib/lang"),r=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var i in e){for(var n=e[i],r=0;r=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,i=e[t].start;if(void 0!==i)return i;for(i=0;t>0;)t-=1,i+=e[t].value.length;return i},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}}}).call(n.prototype),t.TokenIterator=n}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,i){"use strict";var n,r=e("../../lib/oop"),o=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","punctuation.operator"],c=["text","paren.rparen","punctuation.operator","comment"],h={},u=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,h.rangeCount!=e.multiSelect.rangeCount&&(h={rangeCount:e.multiSelect.rangeCount})),h[t])return n=h[t];n=h[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},d=function(e,t,i,n){var r=e.end.row-e.start.row;return{text:i+t+n,selection:[0,e.start.column+1,r,e.end.column+(r?0:1)]}},f=function(){this.add("braces","insertion",function(e,t,i,r,o){var s=i.getCursorPosition(),l=r.doc.getLine(s.row);if("{"==o){u(i);var c=i.getSelectionRange(),h=r.doc.getTextRange(c);if(""!==h&&"{"!==h&&i.getWrapBehavioursEnabled())return d(c,h,"{","}");if(f.isSaneInsertion(i,r))return/[\]\}\)]/.test(l[s.column])||i.inMultiSelectMode?(f.recordAutoInsert(i,r,"}"),{text:"{}",selection:[1,1]}):(f.recordMaybeInsert(i,r,"{"),{text:"{",selection:[1,1]})}else if("}"==o){u(i);var p=l.substring(s.column,s.column+1);if("}"==p){var g=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(null!==g&&f.isAutoInsertedClosing(s,l,o))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if("\n"==o||"\r\n"==o){u(i);var m="";f.isMaybeInsertedClosing(s,l)&&(m=a.stringRepeat("}",n.maybeInsertedBrackets),f.clearMaybeInsertedClosing());var p=l.substring(s.column,s.column+1);if("}"===p){var v=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!v)return null;var w=this.$getIndent(r.getLine(v.row))}else{if(!m)return void f.clearMaybeInsertedClosing();var w=this.$getIndent(l)}var y=w+r.getTabString();return{text:"\n"+y+"\n"+w+m,selection:[1,y.length,1,y.length]}}f.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,i,r,o){var s=r.doc.getTextRange(o);if(!o.isMultiLine()&&"{"==s){u(i);if("}"==r.doc.getLine(o.start.row).substring(o.end.column,o.end.column+1))return o.end.column++,o;n.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,i,n,r){if("("==r){u(i);var o=i.getSelectionRange(),s=n.doc.getTextRange(o);if(""!==s&&i.getWrapBehavioursEnabled())return d(o,s,"(",")");if(f.isSaneInsertion(i,n))return f.recordAutoInsert(i,n,")"),{text:"()",selection:[1,1]}}else if(")"==r){u(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row),c=l.substring(a.column,a.column+1);if(")"==c){var h=n.$findOpeningBracket(")",{column:a.column+1,row:a.row});if(null!==h&&f.isAutoInsertedClosing(a,l,r))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"("==o){u(i);if(")"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2))return r.end.column++,r}}),this.add("brackets","insertion",function(e,t,i,n,r){if("["==r){u(i);var o=i.getSelectionRange(),s=n.doc.getTextRange(o);if(""!==s&&i.getWrapBehavioursEnabled())return d(o,s,"[","]");if(f.isSaneInsertion(i,n))return f.recordAutoInsert(i,n,"]"),{text:"[]",selection:[1,1]}}else if("]"==r){u(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row),c=l.substring(a.column,a.column+1);if("]"==c){var h=n.$findOpeningBracket("]",{column:a.column+1,row:a.row});if(null!==h&&f.isAutoInsertedClosing(a,l,r))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"["==o){u(i);if("]"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2))return r.end.column++,r}}),this.add("string_dquotes","insertion",function(e,t,i,n,r){if('"'==r||"'"==r){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(r))return;u(i);var o=r,s=i.getSelectionRange(),a=n.doc.getTextRange(s);if(""!==a&&"'"!==a&&'"'!=a&&i.getWrapBehavioursEnabled())return d(s,a,o,o);if(!a){var l=i.getCursorPosition(),c=n.doc.getLine(l.row),h=c.substring(l.column-1,l.column),f=c.substring(l.column,l.column+1),p=n.getTokenAt(l.row,l.column),g=n.getTokenAt(l.row,l.column+1);if("\\"==h&&p&&/escape/.test(p.type))return null;var m,v=p&&/string|escape/.test(p.type),w=!g||/string|escape/.test(g.type);if(f==o)(m=v!==w)&&/string\.end/.test(g.type)&&(m=!1);else{if(v&&!w)return null;if(v&&w)return null;var y=n.$mode.tokenRe;y.lastIndex=0;var A=y.test(h);y.lastIndex=0;var C=y.test(h);if(A||C)return null;if(f&&!/[\s;,.})\]\\]/.test(f))return null;m=!0}return{text:m?o+o:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&('"'==o||"'"==o)){u(i);if(n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)==o)return r.end.column++,r}})};f.isSaneInsertion=function(e,t){var i=e.getCursorPosition(),n=new s(t,i.row,i.column);if(!this.$matchTokenType(n.getCurrentToken()||"text",l)){var r=new s(t,i.row,i.column+1);if(!this.$matchTokenType(r.getCurrentToken()||"text",l))return!1}return n.stepForward(),n.getCurrentTokenRow()!==i.row||this.$matchTokenType(n.getCurrentToken()||"text",c)},f.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},f.recordAutoInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,o,n.autoInsertedLineEnd[0])||(n.autoInsertedBrackets=0),n.autoInsertedRow=r.row,n.autoInsertedLineEnd=i+o.substr(r.column),n.autoInsertedBrackets++},f.recordMaybeInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,o)||(n.maybeInsertedBrackets=0),n.maybeInsertedRow=r.row,n.maybeInsertedLineStart=o.substr(0,r.column)+i,n.maybeInsertedLineEnd=o.substr(r.column),n.maybeInsertedBrackets++},f.isAutoInsertedClosing=function(e,t,i){return n.autoInsertedBrackets>0&&e.row===n.autoInsertedRow&&i===n.autoInsertedLineEnd[0]&&t.substr(e.column)===n.autoInsertedLineEnd},f.isMaybeInsertedClosing=function(e,t){return n.maybeInsertedBrackets>0&&e.row===n.maybeInsertedRow&&t.substr(e.column)===n.maybeInsertedLineEnd&&t.substr(0,e.column)==n.maybeInsertedLineStart},f.popAutoInsertedClosing=function(){n.autoInsertedLineEnd=n.autoInsertedLineEnd.substr(1),n.autoInsertedBrackets--},f.clearMaybeInsertedClosing=function(){n&&(n.maybeInsertedBrackets=0,n.maybeInsertedRow=-1)},r.inherits(f,o),t.CstyleBehaviour=f}),ace.define("ace/unicode",["require","exports","module"],function(e,t,i){"use strict";t.packages={},function(e){for(var i in e)t.packages[i]=e[i].replace(/\w{4}/g,"\\u$&")}({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F", -Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})}),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,i){"use strict";var n=e("../tokenizer").Tokenizer,r=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour/cstyle").CstyleBehaviour,s=e("../unicode"),a=e("../lib/lang"),l=e("../token_iterator").TokenIterator,c=e("../range").Range,h=function(){this.HighlightRules=r};(function(){this.$defaultBehaviour=new o,this.tokenRe=new RegExp("^["+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new n(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,i,n){function r(e){for(var t=i;t<=n;t++)e(o.getLine(t),t)}var o=t.doc,s=!0,l=!0,c=1/0,h=t.getTabSize(),u=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var d=this.lineCommentStart.map(a.escapeRegExp).join("|"),f=this.lineCommentStart[0];else var d=a.escapeRegExp(this.lineCommentStart),f=this.lineCommentStart;d=new RegExp("^(\\s*)(?:"+d+") ?"),u=t.getUseSoftTabs();var p=function(e,t){var i=e.match(d);if(i){var n=i[1].length,r=i[0].length;w(e,n,r)||" "!=i[0][r-1]||r--,o.removeInLine(t,n,r)}},g=f+" ",m=function(e,t){s&&!/\S/.test(e)||(w(e,c,c)?o.insertInLine({row:t,column:c},g):o.insertInLine({row:t,column:c},f))},v=function(e,t){return d.test(e)},w=function(e,t,i){for(var n=0;t--&&" "==e.charAt(t);)n++;if(n%h!=0)return!1;for(var n=0;" "==e.charAt(i++);)n++;return h>2?n%h!=h-1:n%h==0}}else{if(!this.blockComment)return!1;var f=this.blockComment.start,y=this.blockComment.end,d=new RegExp("^(\\s*)(?:"+a.escapeRegExp(f)+")"),A=new RegExp("(?:"+a.escapeRegExp(y)+")\\s*$"),m=function(e,t){v(e,t)||s&&!/\S/.test(e)||(o.insertInLine({row:t,column:e.length},y),o.insertInLine({row:t,column:c},f))},p=function(e,t){var i;(i=e.match(A))&&o.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(d))&&o.removeInLine(t,i[1].length,i[0].length)},v=function(e,i){if(d.test(e))return!0;for(var n=t.getTokens(i),r=0;re.length&&(C=e.length)}),c==1/0&&(c=C,s=!1,l=!1),u&&c%h!=0&&(c=Math.floor(c/h)*h),r(l?p:m)},this.toggleBlockComment=function(e,t,i,n){var r=this.blockComment;if(r){!r.start&&r[0]&&(r=r[0]);var o,s,a=new l(t,n.row,n.column),h=a.getCurrentToken(),u=(t.selection,t.selection.toOrientedRange());if(h&&/comment/.test(h.type)){for(var d,f;h&&/comment/.test(h.type);){var p=h.value.indexOf(r.start);if(-1!=p){var g=a.getCurrentTokenRow(),m=a.getCurrentTokenColumn()+p;d=new c(g,m,g,m+r.start.length);break}h=a.stepBackward()}for(var a=new l(t,n.row,n.column),h=a.getCurrentToken();h&&/comment/.test(h.type);){var p=h.value.indexOf(r.end);if(-1!=p){var g=a.getCurrentTokenRow(),m=a.getCurrentTokenColumn()+p;f=new c(g,m,g,m+r.end.length);break}h=a.stepForward()}f&&t.remove(f),d&&(t.remove(d),o=d.start.row,s=-r.start.length)}else s=r.start.length,o=i.start.row,t.insert(i.end,r.end),t.insert(i.start,r.start);u.start.row==o&&(u.start.column+=s),u.end.row==o&&(u.end.column+=s),t.selection.fromOrientedRange(u)}},this.getNextLineIndent=function(e,t,i){return this.$getIndent(t)},this.checkOutdent=function(e,t,i){return!1},this.autoOutdent=function(e,t,i){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);for(var i=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],t=0;tthis.row)){var i=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(i.row,i.column,!0)}},this.setPosition=function(e,t,i){var n;if(n=i?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=n.row||this.column!=n.column){var r={row:this.row,column:this.column};this.row=n.row,this.column=n.column,this._signal("change",{old:r,value:n})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var i={};return e>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):e<0?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),t<0&&(i.column=0),i}}).call(o.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./apply_delta").applyDelta,o=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=e("./anchor").Anchor,l=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){n.implement(this,o),this.setValue=function(e){var t=this.getLength()-1;this.remove(new s(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new a(this,e,t)},0==="aaa".split(/a/).length?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var i=t.length-1;e.end.row-e.start.row==i&&(t[i]=t[i].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var i=this.clippedPos(e.row,e.column),n=this.pos(e.row,e.column+t.length);return this.applyDelta({start:i,end:n,action:"insert",lines:[t]},!0),this.clonePos(n)},this.clippedPos=function(e,t){var i=this.getLength();void 0===e?e=i:e<0?e=0:e>=i&&(e=i-1,t=void 0);var n=this.getLine(e);return void 0==t&&(t=n.length),t=Math.min(Math.max(t,0),n.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var i=0;e0,n=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){if(e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);return t?this.insert(e.start,t):e.start},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var i="insert"==e.action;(i?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),r(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){for(var i=e.lines,n=i.length,r=e.start.row,o=e.start.column,s=0,a=0;;){s=a,a+=t-1;var l=i.slice(s,a);if(a>n){e.lines=l,e.start.row=r+s,e.start.column=o;break}l.push(""),this.applyDelta({start:this.pos(r+s,o),end:this.pos(r+a,o=0),action:e.action,lines:l},!0)}},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:"insert"==e.action?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,r=t||0,o=i.length;r20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,o<=n&&i.fireUpdateEvent(o,n)}}};(function(){n.implement(this,r),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var i={first:e,last:t};this._signal("update",{data:i})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,i+1,null),this.states.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.lines.splice.apply(this.lines,n),this.states.splice.apply(this.states,n)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),i=this.states[e-1],n=this.tokenizer.getLineTokens(t,i,e);return this.states[e]+""!=n.state+""?(this.states[e]=n.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=n.tokens}}).call(o.prototype),t.BackgroundTokenizer=o}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";var n=e("./lib/lang"),r=(e("./lib/oop"),e("./range").Range),o=function(e,t,i){this.setRegexp(e),this.clazz=t,this.type=i||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},this.update=function(e,t,i,o){if(this.regExp)for(var s=o.firstRow,a=o.lastRow,l=s;l<=a;l++){var c=this.cache[l];null==c&&(c=n.getMatchOffsets(i.getLine(l),this.regExp),c.length>this.MAX_RANGES&&(c=c.slice(0,this.MAX_RANGES)),c=c.map(function(e){return new r(l,e.offset,l,e.offset+e.length)}),this.cache[l]=c.length?c:"");for(var h=c.length;h--;)t.drawSingleLineMarker(e,c[h].toScreenRange(i),this.clazz,o)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,i){"use strict";function n(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var i=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,i.end.row,i.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,i){var n,r,o,s=0,a=this.folds,l=!0;null==t&&(t=this.end.row,i=this.end.column);for(var c=0;c0)){var l=r(e,s.start);return 0===a?t&&0!==l?-o-2:o:l>0||0===l&&!t?o:-o-1}}return-o-1},this.add=function(e){var t=!e.isEmpty(),i=this.pointIndex(e.start,t);i<0&&(i=-i-1);var n=this.pointIndex(e.end,t,i);return n<0?n=-n-1:n++,this.ranges.splice(i,n-i,e)},this.addList=function(e){for(var t=[],i=e.length;i--;)t.push.apply(t,this.add(e[i]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return r(e.start,t.start)});for(var i,n=t[0],o=1;o=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var i=this.ranges;if(i[0].start.row>t||i[i.length-1].start.rown)break;if(h.start.row==n&&h.start.column>=t.column&&(h.start.column==t.column&&this.$insertRight||(h.start.column+=s,h.start.row+=o)),h.end.row==n&&h.end.column>=t.column){if(h.end.column==t.column&&this.$insertRight)continue;h.end.column==t.column&&s>0&&lh.start.column&&h.end.column==a[l+1].start.column&&(h.end.column-=s),h.end.column+=s,h.end.row+=o}}}if(0!=o&&l=e)return r;if(r.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var i=this.$foldData,n=0;for(t&&(n=i.indexOf(t)),-1==n&&(n=0),n;n=e)return r}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,r=0;r=t){a=e?n-=t-a:n=0);break}s>=e&&(n-=a>=e?s-a:s-e+1)}return n},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var i,n=this.$foldData,r=!1;e instanceof s?i=e:(i=new s(t,e),i.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(i.range);var a=i.start.row,l=i.start.column,c=i.end.row,h=i.end.column;if(!(a0&&(this.removeFolds(f),f.forEach(function(e){i.addSubFold(e)}));for(var p=0;p0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var i,n;if(null==e?(i=new r(0,0,this.getLength(),0),t=!0):i="number"==typeof e?new r(e,0,e,this.getLine(e).length):"row"in e?r.fromPoints(e,e):e,n=this.getFoldsInRangeList(i),t)this.removeFolds(n);else for(var o=n;o.length;)this.expandFolds(o),o=this.getFoldsInRangeList(i);if(n.length)return n},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var i=this.getFoldLine(e,t);return i?i.end.row:e},this.getRowFoldStart=function(e,t){var i=this.getFoldLine(e,t);return i?i.start.row:e},this.getFoldDisplayLine=function(e,t,i,n,r){null==n&&(n=e.start.row),null==r&&(r=0),null==t&&(t=e.end.row),null==i&&(i=this.getLine(t).length);var o=this.doc,s="";return e.walk(function(e,t,i,a){if(!(t=e){r=o.end.row;try{var s=this.addFold("...",o);s&&(s.collapseChildren=i)}catch(e){}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=e){this.$foldStyle=e,"manual"==e&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)}},this.$setFolding=function(e){if(this.$foldMode!=e){if(this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!e||"manual"==this.$foldStyle)return void(this.foldWidgets=null);this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(e,t){var i=this.foldWidgets;if(!i||t&&i[e])return{};for(var n,r=e-1;r>=0;){var o=i[r];if(null==o&&(o=i[r]=this.getFoldWidget(r)),"start"==o){var s=this.getFoldWidgetRange(r);if(n||(n=s),s&&s.end.row>=e)break}r--}return{range:-1!==r&&s,firstRange:n}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var i={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,i)){var n=t.target||t.srcElement;n&&/ace_fold-widget/.test(n.className)&&(n.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var i=this.getFoldWidget(e),n=this.getLine(e),r="end"===i?-1:1,o=this.getFoldAt(e,-1===r?0:n.length,r);if(o)return t.children||t.all?this.removeFold(o):this.expandFold(o),o;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(o=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(o.range))return this.removeFold(o),o;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var i=this.$toggleFoldWidget(t,{});if(!i){var n=this.getParentFoldRangeData(t,!0);if(i=n.range||n.firstRange){t=i.start.row;var r=this.getFoldAt(t,this.getLine(t).length,1);r?this.removeFold(r):this.addFold("...",i)}}},this.updateFoldWidgets=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,n)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,o=e("./fold_line").FoldLine,s=e("./fold").Fold,a=e("../token_iterator").TokenIterator;t.Folding=n}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,i){"use strict";function n(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var i=t||this.getLine(e.row).charAt(e.column-1);if(""==i)return null;var n=i.match(/([\(\[\{])|([\)\]\}])/);return n?n[1]?this.$findClosingBracket(n[1],e):this.$findOpeningBracket(n[2],e):null},this.getBracketRange=function(e){var t,i=this.getLine(e.row),n=!0,r=i.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=i.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),n=!1),!s)return null;if(s[1]){var a=this.$findClosingBracket(s[1],e);if(!a)return null;t=o.fromPoints(e,a),n||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a=this.$findOpeningBracket(s[2],e);if(!a)return null;t=o.fromPoints(a,e),n||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var h=c.charAt(l);if(h==n){if(0==(o-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else h==e&&(o+=1);l-=1}do{a=s.stepBackward()}while(a&&!i.test(a.type));if(null==a)break;c=a.value,l=c.length-1}return null}},this.$findClosingBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,h=c.length;l=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}n.implement(this,s),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e)return this.$docRowCache=[],void(this.$screenRowCache=[]);var t=this.$docRowCache.length,i=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>i&&(this.$docRowCache.splice(i,t),this.$screenRowCache.splice(i,t))},this.$getRowCacheIndex=function(e,t){for(var i=0,n=e.length-1;i<=n;){var r=i+n>>1,o=e[r];if(t>o)i=r+1;else{if(!(t=t);o++);return(i=n[o])?(i.index=o,i.start=r-i.value.length,i):null},this.setUndoManager=function(e){if(this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):"\t"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(n=!!i.charAt(t-1).match(this.tokenRe)),n||(n=!!i.charAt(t).match(this.tokenRe)),n)var r=this.tokenRe;else if(/^\s+$/.test(i.slice(t-1,t+1)))var r=/\s/;else var r=this.nonTokenRe;var o=t;if(o>0){do{o--}while(o>=0&&i.charAt(o).match(r));o++}for(var s=t;se&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),i=this.$rowLengthCache,n=0,r=0,o=this.$foldData[r],s=o?o.start.row:1/0,a=t.length,l=0;ls){if((l=o.end.row+1)>=a)break;o=this.$foldData[r++],s=o?o.start.row:1/0}null==i[l]&&(i[l]=this.$getStringScreenWidth(t[l])[0]),i[l]>n&&(n=i[l])}this.screenWidth=n}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=e.length-1;-1!=n;n--){var r=e[n];"doc"==r.group?(this.doc.revertDeltas(r.deltas),i=this.$getUndoSelection(r.deltas,!0,i)):r.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,i&&this.$undoSelect&&!t&&this.selection.setSelectionRange(i),i}},this.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=0;ne.end.column&&(o.start.column+=a),o.end.row==e.end.row&&o.end.column>e.end.column&&(o.end.column+=a)),s&&o.start.row>=e.end.row&&(o.start.row+=s,o.end.row+=s)}if(o.end=this.insert(o.start,n),r.length){var l=e.start,h=o.start,s=h.row-l.row,a=h.column-l.column;this.addFolds(r.map(function(e){return e=e.clone(),e.start.row==l.row&&(e.start.column+=a),e.end.row==l.row&&(e.end.column+=a),e.start.row+=s,e.end.row+=s,e}))}return o},this.indentRows=function(e,t,i){i=i.replace(/\t/g,this.getTabString());for(var n=e;n<=t;n++)this.doc.insertInLine({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new c(0,0,0,0),n=this.getTabSize(),r=t.start.row;r<=t.end.row;++r){var o=this.getLine(r);i.start.row=r,i.end.row=r;for(var s=0;s0){var n=this.getRowFoldEnd(t+i);if(n>this.doc.getLength()-1)return 0;var r=n-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var r=t-e+1}var o=new c(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(o).map(function(e){return e=e.clone(),e.start.row+=r,e.end.row+=r,e}),a=0==i?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+r,a),s.length&&this.addFolds(s),r},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var i=this.doc.getLength();e>=i?(e=i-1,t=this.doc.getLine(i-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(e,t){var i=this.$wrapLimitRange;i.max<0&&(i={min:t,max:t});var n=this.$constrainWrapLimit(e,i.min,i.max);return n!=this.$wrapLimit&&n>1&&(this.$wrapLimit=n,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},this.$constrainWrapLimit=function(e,t,i){return t&&(e=Math.max(t,e)),i&&(e=Math.min(i,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,i=e.action,n=e.start,r=e.end,o=n.row,s=r.row,a=s-o,l=null;if(this.$updating=!0,0!=a)if("remove"===i){this[t?"$wrapData":"$rowLengthCache"].splice(o,a);var c=this.$foldData -;l=this.getFoldsInRange(e),this.removeFolds(l);var h=this.getFoldLine(r.row),u=0;if(h){h.addRemoveChars(r.row,r.column,n.column-r.column),h.shiftRow(-a);var d=this.getFoldLine(o);d&&d!==h&&(d.merge(h),h=d),u=c.indexOf(h)+1}for(u;u=r.row&&h.shiftRow(-a)}s=o}else{var f=Array(a);f.unshift(o,0);var p=t?this.$wrapData:this.$rowLengthCache;p.splice.apply(p,f);var c=this.$foldData,h=this.getFoldLine(o),u=0;if(h){var g=h.range.compareInside(n.row,n.column);0==g?(h=h.split(n.row,n.column))&&(h.shiftRow(a),h.addRemoveChars(s,0,r.column-n.column)):-1==g&&(h.addRemoveChars(o,0,r.column-n.column),h.shiftRow(a)),u=c.indexOf(h)+1}for(u;u=o&&h.shiftRow(a)}}else{a=Math.abs(e.start.column-e.end.column),"remove"===i&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a);var h=this.getFoldLine(o);h&&h.addRemoveChars(o,n.column,a)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(o,s):this.$updateRowLengthCache(o,s),l},this.$updateRowLengthCache=function(e,t,i){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,n){var r,o,s=this.doc.getAllLines(),a=this.getTabSize(),l=this.$wrapData,c=this.$wrapLimit,h=e;for(n=Math.min(n,s.length-1);h<=n;)o=this.getFoldLine(h,o),o?(r=[],o.walk(function(e,n,o,a){var l;if(null!=e){l=this.$getDisplayTokens(e,r.length),l[0]=t;for(var c=1;cn-v;){var w=u+n-v;if(e[w-1]>=a&&e[w]>=a)s(w);else if(e[w]!=t&&e[w]!=i){for(var y=Math.max(w-(n-(n>>2)),u-1);w>y&&e[w]y&&e[w]y&&9==e[w];)w--}else for(;w>y&&e[w]y?s(++w):(w=u+n,2==e[w]&&w--,s(w-v))}else{for(w;w!=u-1&&e[w]!=t;w--);if(w>u){s(w);continue}for(w=u+n;w39&&s<48||s>57&&s<64?r.push(9):s>=4352&&e(s)?r.push(1,2):r.push(1)}return r},this.$getStringScreenWidth=function(t,i,n){if(0==i)return[0,0];null==i&&(i=1/0),n=n||0;var r,o;for(o=0;o=4352&&e(r)?n+=2:n+=1,!(n>i));o++);return[n,o]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),i=this.$wrapData[t.row];return i.length&&i[0]=0)var s=l[c],r=this.$docRowCache[c],u=e>l[h-1];else var u=!h;for(var d=this.getLength()-1,f=this.getNextFoldLine(r),p=f?f.start.row:1/0;s<=e&&(a=this.getRowLength(r),!(s+a>e||r>=d));)s+=a,++r>p&&(r=f.end.row+1,f=this.getNextFoldLine(r,f),p=f?f.start.row:1/0),u&&(this.$docRowCache.push(r),this.$screenRowCache.push(s));if(f&&f.start.row<=r)i=this.getFoldDisplayLine(f),r=f.start.row;else{if(s+a<=e||r>d)return{row:d,column:this.getLine(d).length};i=this.getLine(r),f=null}var g=0;if(this.$useWrapMode){var m=this.$wrapData[r];if(m){var v=Math.floor(e-s);n=m[v],v>0&&m.length&&(g=m.indent,o=m[v-1]||m[m.length-1],i=i.substring(o))}}return o+=this.$getStringScreenWidth(i,t-g)[1],this.$useWrapMode&&o>=n&&(o=n-1),f?f.idxToPosition(o):{row:r,column:o}},this.documentToScreenPosition=function(e,t){if(void 0===t)var i=this.$clipPositionToDocument(e.row,e.column);else i=this.$clipPositionToDocument(e,t);e=i.row,t=i.column;var n=0,r=null,o=null;(o=this.getFoldAt(e,t,1))&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),h=l.length;if(h&&c>=0)var a=l[c],n=this.$screenRowCache[c],u=e>l[h-1];else var u=!h;for(var d=this.getNextFoldLine(a),f=d?d.start.row:1/0;a=f){if((s=d.end.row+1)>e)break;d=this.getNextFoldLine(s,d),f=d?d.start.row:1/0}else s=a+1;n+=this.getRowLength(a),a=s,u&&(this.$docRowCache.push(a),this.$screenRowCache.push(n))}var p="";d&&a>=f?(p=this.getFoldDisplayLine(d,e,t),r=d.start.row):(p=this.getLine(e).substring(0,t),r=e);var g=0;if(this.$useWrapMode){var m=this.$wrapData[r];if(m){for(var v=0;p.length>=m[v];)n++,v++;p=p.substring(m[v-1]||0,p.length),g=v>0?m.indent:0}}return{row:n,column:g+this.$getStringScreenWidth(p)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var i=this.$wrapData.length,n=0,r=0,t=this.$foldData[r++],o=t?t.start.row:1/0;no&&(n=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:1/0)}else{e=this.getLength();for(var a=this.$foldData,r=0;ri));o++);return[n,o]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()}}).call(f.prototype),e("./edit_session/folding").Folding.call(f.prototype),e("./edit_session/bracket_match").BracketMatch.call(f.prototype),o.defineOptions(f.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){isNaN(e)||this.$tabSize===e||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=f}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";function n(e,t){function i(e){return/\w/.test(e)||t.regExp?"\\b":""}return i(e[0])+e+i(e[e.length-1])}var r=e("./lib/lang"),o=e("./lib/oop"),s=e("./range").Range,a=function(){this.$options={}};(function(){this.set=function(e){return o.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,i=this.$matchIterator(e,t);if(!i)return!1;var n=null;return i.forEach(function(e,i,r){if(e.start)n=e;else{var o=e.offset+(r||0);if(n=new s(i,o,i,o+e.length),!e.length&&t.start&&t.start.start&&0!=t.skipCurrent&&n.isEqual(t.start))return n=null,!1}return!0}),n},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var i=t.range,n=i?e.getLines(i.start.row,i.end.row):e.doc.getAllLines(),o=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,h=n.length-c;e:for(var u=a.offset||0;u<=h;u++){for(var d=0;dg||(o.push(l=new s(u,g,u+c-1,m)),c>2&&(u=u+c-2))}}else for(var v=0;vC&&o[d].end.row==i.end.row;)d--;for(o=o.slice(v,d+1),v=0,d=o.length;v=0;a--)if(n(s[a],t,o))return!0};else var a=function(e,t,o){for(var s=r.getMatchOffsets(e,i),a=0;a=s;n--)if(i(e.getLine(n),n))return;if(0!=t.wrap)for(n=a,s=o.row;n>=s;n--)if(i(e.getLine(n),n))return}}:function(i){var n=o.row;if(!i(e.getLine(n).substr(o.column),n,o.column)){for(n+=1;n<=a;n++)if(i(e.getLine(n),n))return;if(0!=t.wrap)for(n=s,a=o.row;n<=a;n++)if(i(e.getLine(n),n))return}}}}}).call(a.prototype),t.Search=a}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function r(e,t){n.call(this,e,t),this.$singleCommand=!1}var o=e("../lib/keys"),s=e("../lib/useragent"),a=o.KEY_MODS;r.prototype=n.prototype,function(){function e(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||0}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var i=e&&("string"==typeof e?e:e.name);e=this.commands[i],t||delete this.commands[i];var n=this.commandKeyBinding;for(var r in n){var o=n[r];if(o==e)delete n[r];else if(Array.isArray(o)){var s=o.indexOf(e);-1!=s&&(o.splice(s,1),1==o.length&&(n[r]=o[0]))}}},this.bindKey=function(e,t,i){if("object"==typeof e&&e&&(void 0==i&&(i=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach(function(e){var n="";if(-1!=e.indexOf(" ")){var r=e.split(/\s+/);e=r.pop(),r.forEach(function(e){var t=this.parseKeys(e),i=a[t.hashId]+t.key;n+=(n?" ":"")+i,this._addCommandToBinding(n,"chainKeys")},this),n+=" "}var o=this.parseKeys(e),s=a[o.hashId]+o.key;this._addCommandToBinding(n+s,t,i)},this)},this._addCommandToBinding=function(t,i,n){var r,o=this.commandKeyBinding;if(i)if(!o[t]||this.$singleCommand)o[t]=i;else{Array.isArray(o[t])?-1!=(r=o[t].indexOf(i))&&o[t].splice(r,1):o[t]=[o[t]],"number"!=typeof n&&(n=n||i.isDefault?-100:e(i));var s=o[t];for(r=0;rn)break}s.splice(r,0,i)}else delete o[t]},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var i=e[t];if(i){if("string"==typeof i)return this.bindKey(i,t);"function"==typeof i&&(i={exec:i}),"object"==typeof i&&(i.name||(i.name=t),this.addCommand(i))}},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),i=t.pop(),n=o[i];if(o.FUNCTION_KEYS[n])i=o.FUNCTION_KEYS[n].toLowerCase();else{if(!t.length)return{key:i,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:i.toUpperCase(),hashId:-1}}for(var r=0,s=t.length;s--;){var a=o.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;r|=a}return{key:i,hashId:r}},this.findKeyCommand=function(e,t){var i=a[e]+t;return this.commandKeyBinding[i]},this.handleKeyboard=function(e,t,i,n){if(!(n<0)){var r=a[t]+i,o=this.commandKeyBinding[r];return e.$keyChain&&(e.$keyChain+=" "+r,o=this.commandKeyBinding[e.$keyChain]||o),!o||"chainKeys"!=o&&"chainKeys"!=o[o.length-1]?(e.$keyChain&&(t&&4!=t||1!=i.length?(-1==t||n>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-r.length-1)),{command:o}):(e.$keyChain=e.$keyChain||r,{command:"null"})}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(n.prototype),t.HashHandler=n,t.MultiHashHandler=r}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,s=function(e,t){r.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};n.inherits(s,r),function(){n.implement(this,o),this.exec=function(e,t,i){if(Array.isArray(e)){for(var n=e.length;n--;)if(this.exec(e[n],t,i))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;var r={editor:t,command:e,args:i};return r.returnValue=this._emit("exec",r),this._signal("afterExec",r),!1!==r.returnValue},this.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(e){return e.map(function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(s.prototype),t.CommandManager=s}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,i){"use strict";function n(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),o=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:n("Ctrl-,","Command-,"),exec:function(e){o.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:n("Alt-E","F4"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:n("Alt-Shift-E","Shift-F4"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:n("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:n(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:n("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:n("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:n("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:n("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:n("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:n(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:n("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:n("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:n("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:n("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:n("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:n("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:n("Ctrl-F","Command-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:n("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:n("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:n("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:n("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:n("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:n("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:n("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:n("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:n("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:n("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:n("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:n("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:n("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:n("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:n("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:n("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:n("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:n("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:n("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:n("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:n(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:n("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:n(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:n("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:n("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:n("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:n("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:n("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:n("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:n("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:n(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(e){},readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:n("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:n("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:n("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:n("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:n("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:n("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:n("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:n("Ctrl-H","Command-Option-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",bindKey:n("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:n("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:n("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:n("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:n("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:n("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:n("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:n("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:n("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:n("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:n("Alt-Delete","Ctrl-K"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:n("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:n("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:n("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:n("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:n("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:n("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:n(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:n("Ctrl-T","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:n("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:n("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:n("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:n(null,null),exec:function(e){for(var t=e.selection.isBackwards(),i=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),n=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(i.row).length,a=e.session.doc.getTextRange(e.selection.getRange()),l=a.replace(/\n\s*/," ").length,c=e.session.doc.getLine(i.row),h=i.row+1;h<=n.row+1;h++){var u=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(h)));0!==u.length&&(u=" "+u),c+=u}n.row+10?(e.selection.moveCursorTo(i.row,i.column),e.selection.selectTo(i.row,i.column+l)):(o=e.session.doc.getLine(i.row).length>o?o+1:o,e.selection.moveCursorTo(i.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:n(null,null),exec:function(e){var t=e.session.doc.getLength()-1,i=e.session.doc.getLine(t).length,n=e.selection.rangeList.ranges,r=[];n.length<1&&(n=[e.selection.getRange()]);for(var o=0;o0&&this.$blockScrolling--;var i=t&&t.scrollIntoView;if(i){switch(i){case"center-animate":i="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var n=this.selection.getRange(),r=this.renderer.layerConfig;(n.start.row>=r.lastRow||n.end.row<=r.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==i&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,i=this.$mergeableCommands,n=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var r=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),n=n&&this.mergeNextCommand&&(!/\s/.test(r)||/\s/.test(t.args)),this.mergeNextCommand=!0}else n=n&&-1!==i.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(n=!1),n?this.session.mergeUndoDeltas=!0:-1!==i.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e){this.$keybindingId=e;var i=this;v.loadModule(["keybinding",e],function(n){i.$keybindingId==e&&i.keyBinding.setKeyboardHandler(n&&n.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var i=this.session.getSelection();i.off("changeCursor",this.$onCursorChange),i.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this})}},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=t.findMatchingBracket(e.getCursorPosition());if(i)var n=new f(i.row,i.column,i.row,i.column+1);else if(t.$mode.getMatching)var n=t.$mode.getMatching(e.session);n&&(t.$bracketHighlight=t.addMarker(n,"ace_bracket","text"))}},50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=e.getCursorPosition(),n=new w(e.session,i.row,i.column),r=n.getCurrentToken();if(!r||!/\b(?:tag-open|tag-name)/.test(r.type))return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);if(-1==r.type.indexOf("tag-open")||(r=n.stepForward())){var o=r.value,s=0,a=n.stepBackward();if("<"==a.value)do{a=r,(r=n.stepForward())&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"=0);else{do{r=a,a=n.stepBackward(),r&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var i=new f(e.row,e.column,e.row,1/0);i.id=t.addMarker(i,"ace_active-line","screenLine"),t.$highlightLineMarker=i}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var i=this.selection.getRange(),n=this.getSelectionStyle();t.$selectionMarker=t.addMarker(i,"ace_selection",n)}var r=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(r),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var i=t.start.column-1,n=t.end.column+1,r=e.getLine(t.start.row),o=r.length,s=r.substring(Math.max(i,0),Math.min(n,o));if(!(i>=0&&/^[\w\d]/.test(s)||n<=o&&/[\w\d]$/.test(s))&&(s=r.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(s))){return this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s})}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var i={text:e,event:t};this.commands.exec("paste",this,i)},this.$handlePaste=function(e){"string"==typeof e&&(e={text:e}),this._signal("paste",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var i=t.split(/\r\n|\r|\n/),n=this.selection.rangeList.ranges;if(i.length>n.length||i.length<2||!i[1])return this.commands.exec("insertstring",this,t);for(var r=n.length;r--;){var o=n[r];o.isEmpty()||this.session.remove(o),this.session.insert(o.start,i[r])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var i=this.session,n=i.getMode(),r=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var o=n.transformAction(i.getState(r.row),"insertion",this,i,e);o&&(e!==o.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=o.text)}if("\t"==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()){var s=new f.fromPoints(r,r);s.end.column+=e.length,this.session.remove(s)}}else{var s=this.getSelectionRange();r=this.session.remove(s),this.clearSelection()}if("\n"==e||"\r\n"==e){var a=i.getLine(r.row);if(r.column>a.search(/\S|$/)){var l=a.substr(r.column).search(/\S|$/);i.doc.removeInLine(r.row,r.column,r.column+l)}}this.clearSelection();var c=r.column,h=i.getState(r.row),a=i.getLine(r.row),u=n.checkOutdent(h,a,e);i.insert(r,e);if(o&&o.selection&&(2==o.selection.length?this.selection.setSelectionRange(new f(r.row,c+o.selection[0],r.row,c+o.selection[1])):this.selection.setSelectionRange(new f(r.row+o.selection[0],o.selection[1],r.row+o.selection[2],o.selection[3]))),i.getDocument().isNewLine(e)){var d=n.getNextLineIndent(h,a.slice(0,r.column),i.getTabString());i.insert({row:r.row+1,column:0},d)}u&&n.autoOutdent(h,i,r.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,i){this.keyBinding.onCommandKey(e,t,i)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var i=this.session,n=i.getState(t.start.row),r=i.getMode().transformAction(n,"deletion",this,i,t);if(0===t.end.column){var o=i.getTextRange(t);if("\n"==o[o.length-1]){var s=i.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}r&&(t=r)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var i,n,r=this.session.getLine(e.row);tt.toLowerCase()?1:0});for(var n=new f(0,0,0,0),r=e.first;r<=e.last;r++){var o=t.getLine(r);n.start.row=r,n.end.row=r,n.end.column=o.length,t.replace(n,i[r-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),i=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,i,e)},this.getNumberAt=function(e,t){var i=/[\-]?[0-9]+(?:\.[0-9]+)?/g;i.lastIndex=0;for(var n=this.session.getLine(e);i.lastIndex=t){return{value:r[0],start:r.index,end:r.index+r[0].length}}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,i=this.selection.getCursor().column,n=new f(t,i-1,t,i),r=this.session.getTextRange(n);if(!isNaN(parseFloat(r))&&isFinite(r)){var o=this.getNumberAt(t,i);if(o){var s=o.value.indexOf(".")>=0?o.start+o.value.indexOf(".")+1:o.end,a=o.start+o.value.length-s,l=parseFloat(o.value);l*=Math.pow(10,a),s!==o.end&&if+1)break;f=p.last}for(h--,a=this.session.$moveLines(d,f,t?0:e),t&&-1==e&&(u=h+1);u<=h;)s[u].moveBy(a,0),u++;t||(a=0),l+=a}r.fromOrientedRange(r.ranges[0]),r.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var i=this.renderer,n=this.renderer.layerConfig,r=e*Math.floor(n.height/n.lineHeight);this.$blockScrolling++,!0===t?this.selection.$moveSelection(function(){this.moveCursorBy(r,0)}):!1===t&&(this.selection.moveCursorBy(r,0),this.selection.clearSelection()),this.$blockScrolling--;var o=i.scrollTop;i.scrollBy(0,r*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(o)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,i,n){this.renderer.scrollToLine(e,t,i,n)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var i=this.getCursorPosition(),n=new w(this.session,i.row,i.column),r=n.getCurrentToken(),o=r||n.stepForward();if(o){var s,a,l=!1,c={},h=i.column-o.start,u={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g)){for(;h=0;--o)this.$tryReplace(i[o],e)&&n++;return this.selection.setSelectionRange(r),this.$blockScrolling-=1,n},this.$tryReplace=function(e,t){var i=this.session.getTextRange(e);return t=this.$search.replace(i,t),null!==t?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,i){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&n.mixin(t,e);var r=this.selection.getRange();null==t.needle&&(e=this.session.getTextRange(r)||this.$search.$options.needle,e||(r=this.session.getWordRange(r.start.row,r.start.column),e=this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var o=this.$search.find(this.session);return t.preventScroll?o:o?(this.revealRange(o,i),o):(t.backwards?r.start=r.end:r.end=r.start,void this.selection.setRange(r))},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var i=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(i)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(e){var t,i=this,n=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var r=this.$scrollAnchor;r.style.cssText="position:absolute",this.container.insertBefore(r,this.container.firstChild);var o=this.on("changeSelection",function(){n=!0}),s=this.renderer.on("beforeRender",function(){n&&(t=i.renderer.container.getBoundingClientRect())}),a=this.renderer.on("afterRender",function(){if(n&&t&&(i.isFocused()||i.searchBox&&i.searchBox.isFocused())){var e=i.renderer,o=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=o.top-s.offset;n=o.top>=0&&a+t.top<0||!(o.topwindow.innerHeight)&&null,null!=n&&(r.style.top=a+"px",r.style.left=o.left+"px",r.style.height=s.lineHeight+"px",r.scrollIntoView(n)),n=t=null}});this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",o),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))}}).call(y.prototype),v.defineOptions(y.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),t.Editor=y}),ace.define("ace/undomanager",["require","exports","module"],function(e,t,i){"use strict";var n=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:1==e.lines.length?null:e.lines,text:1==e.lines.length?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function i(e,t){for(var i=new Array(e.length),n=0;n0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return 0===this.dirtyCounter},this.$serializeDeltas=function(t){return i(t,e)},this.$deserializeDeltas=function(e){return i(e,t)}}).call(n.prototype),t.UndoManager=n}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/lang"),s=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=n.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){r.implement(this,s),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;ts&&(g=o.end.row+1,o=t.getNextFoldLine(g,o),s=o?o.start.row:1/0),g>r){for(;this.$cells.length>p+1;)f=this.$cells.pop(),this.element.removeChild(f.element);break}f=this.$cells[++p],f||(f={element:null,textNode:null,foldWidget:null},f.element=n.createElement("div"),f.textNode=document.createTextNode(""),f.element.appendChild(f.textNode),this.element.appendChild(f.element),this.$cells[p]=f);var m="ace_gutter-cell ";l[g]&&(m+=l[g]),c[g]&&(m+=c[g]),this.$annotations[g]&&(m+=this.$annotations[g].className),f.element.className!=m&&(f.element.className=m);var v=t.getRowLength(g)*e.lineHeight+"px";if(v!=f.element.style.height&&(f.element.style.height=v),a){var w=a[g];null==w&&(w=a[g]=t.getFoldWidget(g))}if(w){f.foldWidget||(f.foldWidget=n.createElement("span"),f.element.appendChild(f.foldWidget));var m="ace_fold-widget ace_"+w;"start"==w&&g==s&&gi.right-t.right?"foldWidgets":void 0}}).call(a.prototype),t.Gutter=a}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,i){"use strict";var n=e("../range").Range,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,i,n){return(e?1:0)|(t?2:0)|(i?4:0)|(n?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){var e=e||this.config;if(e){this.config=e;var t=[];for(var i in this.markers){var n=this.markers[i];if(n.range){var r=n.range.clipRows(e.firstRow,e.lastRow);if(!r.isEmpty())if(r=r.toScreenRange(this.session),n.renderer){var o=this.$getTop(r.start.row,e),s=this.$padding+r.start.column*e.characterWidth;n.renderer(t,r,s,o,e)}else"fullLine"==n.type?this.drawFullLineMarker(t,r,n.clazz,e):"screenLine"==n.type?this.drawScreenLineMarker(t,r,n.clazz,e):r.isMultiLine()?"text"==n.type?this.drawTextMarker(t,r,n.clazz,e):this.drawMultiLineMarker(t,r,n.clazz,e):this.drawSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e)}else n.update(t,this,this.session,e)}this.element.innerHTML=t.join("")}},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,i,r,o,s){for(var a=this.session,l=i.start.row,c=i.end.row,h=l,u=0,d=0,f=a.getScreenLastRowColumn(h),p=new n(h,i.start.column,h,d);h<=c;h++)p.start.row=p.end.row=h,p.start.column=h==l?i.start.column:a.getRowWrapIndent(h),p.end.column=f,u=d,d=f,f=h+1f,h==c),o,h==c?0:1,s)},this.drawMultiLineMarker=function(e,t,i,n,r){var o=this.$padding,s=n.lineHeight,a=this.$getTop(t.start.row,n),l=o+t.start.column*n.characterWidth;r=r||"",e.push("
"),a=this.$getTop(t.end.row,n);var c=t.end.column*n.characterWidth;if(e.push("
"),!((s=(t.end.row-t.start.row-1)*n.lineHeight)<=0)){a=this.$getTop(t.start.row+1,n);var h=(t.start.column?1:0)|(t.end.column?0:8);e.push("
")}},this.drawSingleLineMarker=function(e,t,i,n,r,o){var s=n.lineHeight,a=(t.end.column+(r||0)-t.start.column)*n.characterWidth,l=this.$getTop(t.start.row,n),c=this.$padding+t.start.column*n.characterWidth;e.push("
")},this.drawFullLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,n)-o),e.push("
")},this.drawScreenLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;e.push("
")}}).call(o.prototype),t.Marker=o}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=(e("../lib/useragent"),e("../lib/event_emitter").EventEmitter),a=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){n.implement(this,s),this.EOF_CHAR="¶",this.EOL_CHAR_LF="¬",this.EOL_CHAR_CRLF="¤",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="—",this.SPACE_CHAR="·",this.$padding=0,this.$updateEolChar=function(){var e="\n"==this.session.doc.getNewLineCharacter()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],i=1;i"+o.stringRepeat(this.TAB_CHAR,i)+""):t.push(o.stringRepeat(" ",i));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var n="ace_indent-guide",r="",s="";if(this.showInvisibles){n+=" ace_invisible",r=" ace_invisible_space",s=" ace_invisible_tab";var a=o.stringRepeat(this.SPACE_CHAR,this.tabSize),l=o.stringRepeat(this.TAB_CHAR,this.tabSize)}else var a=o.stringRepeat(" ",this.tabSize),l=a;this.$tabStrings[" "]=""+a+"",this.$tabStrings["\t"]=""+l+""}},this.updateLines=function(e,t,i){this.config.lastRow==e.lastRow&&this.config.firstRow==e.firstRow||this.scrollLines(e),this.config=e;for(var n=Math.max(t,e.firstRow),r=Math.min(i,e.lastRow),o=this.element.childNodes,s=0,a=e.firstRow;ac&&(a=l.end.row+1,l=this.session.getNextFoldLine(a,l),c=l?l.start.row:1/0),a>r)break;var h=o[s++];if(h){var u=[];this.$renderLine(u,a,!this.$useLineGroups(),a==c&&l),h.style.height=e.lineHeight*this.session.getRowLength(a)+"px",h.innerHTML=u.join("")}a++}},this.scrollLines=function(e){var t=this.config;if(this.config=e,!t||t.lastRow0;n--)i.removeChild(i.firstChild);if(t.lastRow>e.lastRow)for(var n=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);n>0;n--)i.removeChild(i.lastChild);if(e.firstRowt.lastRow){var r=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);i.appendChild(r)}},this.$renderLinesFragment=function(e,t,i){for(var n=this.element.ownerDocument.createDocumentFragment(),o=t,s=this.session.getNextFoldLine(o),a=s?s.start.row:1/0;;){if(o>a&&(o=s.end.row+1,s=this.session.getNextFoldLine(o,s),a=s?s.start.row:1/0),o>i)break;var l=r.createElement("div"),c=[];if(this.$renderLine(c,o,!1,o==a&&s),l.innerHTML=c.join(""),this.$useLineGroups())l.className="ace_line_group",n.appendChild(l),l.style.height=e.lineHeight*this.session.getRowLength(o)+"px";else for(;l.firstChild;)n.appendChild(l.firstChild);o++}return n},this.update=function(e){this.config=e;for(var t=[],i=e.firstRow,n=e.lastRow,r=i,o=this.session.getNextFoldLine(r),s=o?o.start.row:1/0;;){if(r>s&&(r=o.end.row+1,o=this.session.getNextFoldLine(r,o),s=o?o.start.row:1/0),r>n)break;this.$useLineGroups()&&t.push("
"),this.$renderLine(t,r,!1,r==s&&o),this.$useLineGroups()&&t.push("
"),r++}this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,i,n){var r=this,s=function(e,i,n,s,a){if(i)return r.showInvisibles?""+o.stringRepeat(r.SPACE_CHAR,e.length)+"":e;if("&"==e)return"&";if("<"==e)return"<";if(">"==e)return">";if("\t"==e){var l=r.session.getScreenTabSize(t+s);return t+=l-1,r.$tabStrings[l]}if(" "==e){var c=r.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",h=r.showInvisibles?r.SPACE_CHAR:"";return t+=1,""+h+""}return n?""+r.SPACE_CHAR+"":(t+=1,""+e+"")},a=n.replace(/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g,s);if(this.$textToken[i.type])e.push(a);else{var l="ace_"+i.type.replace(/\./g," ace_"),c="";"fold"==i.type&&(c=" style='width:"+i.value.length*this.config.characterWidth+"px;' "),e.push("",a,"")}return t+n.length},this.renderIndentGuide=function(e,t,i){var n=t.search(this.$indentGuideRe);return n<=0||n>=i?t:" "==t[0]?(n-=n%this.tabSize,e.push(o.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):"\t"==t[0]?(e.push(o.stringRepeat(this.$tabStrings["\t"],n)),t.substr(n)):t},this.$renderWrappedLine=function(e,t,i,n){for(var r=0,s=0,a=i[0],l=0,c=0;c=a;)l=this.$renderToken(e,l,h,u.substring(0,a-r)),u=u.substring(a-r),r=a,n||e.push("","
"),e.push(o.stringRepeat(" ",i.indent)),s++,l=0,a=i[s]||Number.MAX_VALUE;0!=u.length&&(r+=u.length,l=this.$renderToken(e,l,h,u))}}},this.$renderSimpleLine=function(e,t){var i=0,n=t[0],r=n.value;this.displayIndentGuides&&(r=this.renderIndentGuide(e,r)),r&&(i=this.$renderToken(e,i,n,r));for(var o=1;o"),r.length){var o=this.session.getRowSplitData(t);o&&o.length?this.$renderWrappedLine(e,r,o,i):this.$renderSimpleLine(e,r)}this.showInvisibles&&(n&&(t=n.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),i||e.push("
")},this.$getFoldLineTokens=function(e,t){function i(e,t,i){for(var n=0,o=0;o+e[n].value.lengthi-t&&(s=s.substring(0,i-t)),r.push({type:e[n].type,value:s}),o=t+s.length,n+=1}for(;oi?r.push({type:e[n].type,value:s.substring(0,i-o)}):r.push(e[n]),o+=s.length,n+=1}}var n=this.session,r=[],o=n.getTokens(e);return t.walk(function(e,t,s,a,l){null!=e?r.push({type:"fold",value:e}):(l&&(o=n.getTokens(t)),o.length&&i(o,a,s))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),void 0===n&&(n=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(n?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e==this.smoothBlinking||n||(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible){this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var i=this.session.documentToScreenPosition(e);return{left:this.$padding+i.column*this.config.characterWidth,top:(i.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,i=0,n=0;void 0!==t&&0!==t.length||(t=[{cursor:null}]);for(var i=0,r=t.length;ie.height+e.offset||o.top<0)&&i>1)){var s=(this.cursors[n++]||this.addCursor()).style;this.drawCursor?this.drawCursor(s,o,e,t[i],this.session):(s.left=o.left+"px",s.top=o.top+"px",s.width=e.characterWidth+"px",s.height=e.lineHeight+"px")}}for(;this.cursors.length>n;)this.removeCursor();var a=this.session.getOverwrite();this.$setOverwrite(a),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(o.prototype),t.Cursor=o}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./lib/event"),s=e("./lib/event_emitter").EventEmitter,a=function(e){this.element=r.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=r.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)};(function(){n.implement(this,s),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(a.prototype);var l=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=r.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px"};n.inherits(l,a),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return this.isVisible?this.width:0},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>32768?(this.coeff=32768/e,e=32768):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(l.prototype);var c=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};n.inherits(c,a),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(c.prototype),t.ScrollBar=l,t.ScrollBarV=l,t.ScrollBarH=c,t.VScrollBar=l,t.HScrollBar=c}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,i){"use strict";var n=e("./lib/event"),r=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){if(this.changes=this.changes|e,!this.pending&&this.changes){this.pending=!0;var t=this;n.nextFrame(function(){t.pending=!1;for(var e;e=t.changes;)t.changes=0,t.onRender(e)},this.window)}}}).call(r.prototype),t.RenderLoop=r}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=e("../lib/useragent"),a=e("../lib/event_emitter").EventEmitter,l=0,c=t.FontMetrics=function(e){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),l||this.$testFractionalRect(),this.$measureNode.innerHTML=o.stringRepeat("X",l),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){n.implement(this,a),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=r.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;l=t>0&&t<1?50:100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",s.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(50===l){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var t={height:e.height,width:e.width/l}}else var t={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/l};return 0===t.width||0===t.height?null:t},this.$measureCharWidth=function(e){return this.$main.innerHTML=o.stringRepeat(e,l),this.$main.getBoundingClientRect().width/l},this.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(c.prototype)}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./config"),s=e("./lib/useragent"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,h=e("./layer/cursor").Cursor,u=e("./scrollbar").HScrollBar,d=e("./scrollbar").VScrollBar,f=e("./renderloop").RenderLoop,p=e("./layer/font_metrics").FontMetrics,g=e("./lib/event_emitter").EventEmitter;r.importCssString('.ace_editor {\tposition: relative;\toverflow: hidden;\tfont: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;\tdirection: ltr;\ttext-align: left;\t}\t.ace_scroller {\tposition: absolute;\toverflow: hidden;\ttop: 0;\tbottom: 0;\tbackground-color: inherit;\t-ms-user-select: none;\t-moz-user-select: none;\t-webkit-user-select: none;\tuser-select: none;\tcursor: text;\t}\t.ace_content {\tposition: absolute;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tmin-width: 100%;\t}\t.ace_dragging .ace_scroller:before{\tposition: absolute;\ttop: 0;\tleft: 0;\tright: 0;\tbottom: 0;\tcontent: \'\';\tbackground: rgba(250, 250, 250, 0.01);\tz-index: 1000;\t}\t.ace_dragging.ace_dark .ace_scroller:before{\tbackground: rgba(0, 0, 0, 0.01);\t}\t.ace_selecting, .ace_selecting * {\tcursor: text !important;\t}\t.ace_gutter {\tposition: absolute;\toverflow : hidden;\twidth: auto;\ttop: 0;\tbottom: 0;\tleft: 0;\tcursor: default;\tz-index: 4;\t-ms-user-select: none;\t-moz-user-select: none;\t-webkit-user-select: none;\tuser-select: none;\t}\t.ace_gutter-active-line {\tposition: absolute;\tleft: 0;\tright: 0;\t}\t.ace_scroller.ace_scroll-left {\tbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\t}\t.ace_gutter-cell {\tpadding-left: 19px;\tpadding-right: 6px;\tbackground-repeat: no-repeat;\t}\t.ace_gutter-cell.ace_error {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\tbackground-repeat: no-repeat;\tbackground-position: 2px center;\t}\t.ace_gutter-cell.ace_warning {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\tbackground-position: 2px center;\t}\t.ace_gutter-cell.ace_info {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\tbackground-position: 2px center;\t}\t.ace_dark .ace_gutter-cell.ace_info {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\t}\t.ace_scrollbar {\tposition: absolute;\tright: 0;\tbottom: 0;\tz-index: 6;\t}\t.ace_scrollbar-inner {\tposition: absolute;\tcursor: text;\tleft: 0;\ttop: 0;\t}\t.ace_scrollbar-v{\toverflow-x: hidden;\toverflow-y: scroll;\ttop: 0;\t}\t.ace_scrollbar-h {\toverflow-x: scroll;\toverflow-y: hidden;\tleft: 0;\t}\t.ace_print-margin {\tposition: absolute;\theight: 100%;\t}\t.ace_text-input {\tposition: absolute;\tz-index: 0;\twidth: 0.5em;\theight: 1em;\topacity: 0;\tbackground: transparent;\t-moz-appearance: none;\tappearance: none;\tborder: none;\tresize: none;\toutline: none;\toverflow: hidden;\tfont: inherit;\tpadding: 0 1px;\tmargin: 0 -1px;\ttext-indent: -1em;\t-ms-user-select: text;\t-moz-user-select: text;\t-webkit-user-select: text;\tuser-select: text;\twhite-space: pre!important;\t}\t.ace_text-input.ace_composition {\tbackground: inherit;\tcolor: inherit;\tz-index: 1000;\topacity: 1;\ttext-indent: 0;\t}\t.ace_layer {\tz-index: 1;\tposition: absolute;\toverflow: hidden;\tword-wrap: normal;\twhite-space: pre;\theight: 100%;\twidth: 100%;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tpointer-events: none;\t}\t.ace_gutter-layer {\tposition: relative;\twidth: auto;\ttext-align: right;\tpointer-events: auto;\t}\t.ace_text-layer {\tfont: inherit !important;\t}\t.ace_cjk {\tdisplay: inline-block;\ttext-align: center;\t}\t.ace_cursor-layer {\tz-index: 4;\t}\t.ace_cursor {\tz-index: 4;\tposition: absolute;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tborder-left: 2px solid;\ttransform: translatez(0);\t}\t.ace_slim-cursors .ace_cursor {\tborder-left-width: 1px;\t}\t.ace_overwrite-cursors .ace_cursor {\tborder-left-width: 0;\tborder-bottom: 1px solid;\t}\t.ace_hidden-cursors .ace_cursor {\topacity: 0.2;\t}\t.ace_smooth-blinking .ace_cursor {\t-webkit-transition: opacity 0.18s;\ttransition: opacity 0.18s;\t}\t.ace_editor.ace_multiselect .ace_cursor {\tborder-left-width: 1px;\t}\t.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\tposition: absolute;\tz-index: 3;\t}\t.ace_marker-layer .ace_selection {\tposition: absolute;\tz-index: 5;\t}\t.ace_marker-layer .ace_bracket {\tposition: absolute;\tz-index: 6;\t}\t.ace_marker-layer .ace_active-line {\tposition: absolute;\tz-index: 2;\t}\t.ace_marker-layer .ace_selected-word {\tposition: absolute;\tz-index: 4;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\t}\t.ace_line .ace_fold {\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tdisplay: inline-block;\theight: 11px;\tmargin-top: -2px;\tvertical-align: middle;\tbackground-image:\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\tbackground-repeat: no-repeat, repeat-x;\tbackground-position: center center, top left;\tcolor: transparent;\tborder: 1px solid black;\tborder-radius: 2px;\tcursor: pointer;\tpointer-events: auto;\t}\t.ace_dark .ace_fold {\t}\t.ace_fold:hover{\tbackground-image:\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\t}\t.ace_tooltip {\tbackground-color: #FFF;\tbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\tbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\tborder: 1px solid gray;\tborder-radius: 1px;\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\tcolor: black;\tmax-width: 100%;\tpadding: 3px 4px;\tposition: fixed;\tz-index: 999999;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tcursor: default;\twhite-space: pre;\tword-wrap: break-word;\tline-height: normal;\tfont-style: normal;\tfont-weight: normal;\tletter-spacing: normal;\tpointer-events: none;\t}\t.ace_folding-enabled > .ace_gutter-cell {\tpadding-right: 13px;\t}\t.ace_fold-widget {\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tmargin: 0 -12px 0 1px;\tdisplay: none;\twidth: 11px;\tvertical-align: top;\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\tbackground-repeat: no-repeat;\tbackground-position: center;\tborder-radius: 3px;\tborder: 1px solid transparent;\tcursor: pointer;\t}\t.ace_folding-enabled .ace_fold-widget {\tdisplay: inline-block; \t}\t.ace_fold-widget.ace_end {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\t}\t.ace_fold-widget.ace_closed {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\t}\t.ace_fold-widget:hover {\tborder: 1px solid rgba(0, 0, 0, 0.3);\tbackground-color: rgba(255, 255, 255, 0.2);\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\t}\t.ace_fold-widget:active {\tborder: 1px solid rgba(0, 0, 0, 0.4);\tbackground-color: rgba(0, 0, 0, 0.05);\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\t}\t.ace_dark .ace_fold-widget {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\t}\t.ace_dark .ace_fold-widget.ace_end {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\t}\t.ace_dark .ace_fold-widget.ace_closed {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\t}\t.ace_dark .ace_fold-widget:hover {\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\tbackground-color: rgba(255, 255, 255, 0.1);\t}\t.ace_dark .ace_fold-widget:active {\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\t}\t.ace_fold-widget.ace_invalid {\tbackground-color: #FFB4B4;\tborder-color: #DE5555;\t}\t.ace_fade-fold-widgets .ace_fold-widget {\t-webkit-transition: opacity 0.4s ease 0.05s;\ttransition: opacity 0.4s ease 0.05s;\topacity: 0;\t}\t.ace_fade-fold-widgets:hover .ace_fold-widget {\t-webkit-transition: opacity 0.05s ease 0.05s;\ttransition: opacity 0.05s ease 0.05s;\topacity:1;\t}\t.ace_underline {\ttext-decoration: underline;\t}\t.ace_bold {\tfont-weight: bold;\t}\t.ace_nobold .ace_bold {\tfont-weight: normal;\t}\t.ace_italic {\tfont-style: italic;\t}\t.ace_error-marker {\tbackground-color: rgba(255, 0, 0,0.2);\tposition: absolute;\tz-index: 9;\t}\t.ace_highlight-marker {\tbackground-color: rgba(255, 255, 0,0.2);\tposition: absolute;\tz-index: 8;\t}\t.ace_br1 {border-top-left-radius : 3px;}\t.ace_br2 {border-top-right-radius : 3px;}\t.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\t.ace_br4 {border-bottom-right-radius: 3px;}\t.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\t.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\t.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\t.ace_br8 {border-bottom-left-radius : 3px;}\t.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\t.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\t.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t',"ace_editor.css");var m=function(e,t){var i=this;this.container=e||r.createElement("div"),this.$keepTextAreaAtCursor=!s.isOldIE,r.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=r.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=r.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=r.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var n=this.$textLayer=new c(this.content);this.canvas=n.element,this.$markerFront=new l(this.content),this.$cursorLayer=new h(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new d(this.container,this),this.scrollBarH=new u(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollTop(e.data-i.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollLeft(e.data-i.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new p(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(e){i.updateCharacterSize(),i.onResize(!0,i.gutterWidth,i.$size.width,i.$size.height),i._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new f(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),o.resetOptions(this),o._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,n.implement(this,g),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(e,t,i){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar()},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,i,n){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var r=this.container;n||(n=r.clientHeight||r.scrollHeight),i||(i=r.clientWidth||r.scrollWidth);var o=this.$updateCachedSize(e,t,i,n);if(!this.$size.scrollerHeight||!i&&!n)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(o|this.$changes,!0):this.$loop.schedule(o|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(e,t,i,n){n-=this.$extraHeight||0;var r=0,o=this.$size,s={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};return n&&(e||o.height!=n)&&(o.height=n,r|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),i&&(e||o.width!=i)&&(r|=this.CHANGE_SIZE,o.width=i,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",o.scrollerWidth=Math.max(0,i-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px",(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)),o.$dirty=!i||!n,r&&this._signal("resize",s),r},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var i=this.session.selection.getCursor();i.column=0,e=this.$cursorLayer.getPixelPosition(i,!0),t*=this.session.getRowLength(i.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=r.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=r.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$keepTextAreaAtCursor){var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,i=this.$cursorLayer.$pixelPos.left;t-=e.offset;var n=this.textarea.style,r=this.lineHeight;if(t<0||t>e.height-r)return void(n.top=n.left="0");var o=this.characterWidth;if(this.$composition){var s=this.textarea.value.replace(/^\x01+/,"");o*=this.session.$getStringScreenWidth(s)[0]+2,r+=2}i-=this.scrollLeft,i>this.$size.scrollerWidth-o&&(i=this.$size.scrollerWidth-o),i+=this.gutterWidth,n.height=r+"px",n.width=o+"px",n.left=Math.min(i,this.$size.scrollerWidth-o)+"px",n.top=Math.min(t,this.$size.height-r)+"px"}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,i,n){var r=this.scrollMargin;r.top=0|e,r.bottom=0|t,r.right=0|n,r.left=0|i,r.v=r.top+r.bottom,r.h=r.left+r.right,r.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-r.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t)return void(this.$changes|=e);if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender");var i=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig(),i.firstRow!=this.layerConfig.firstRow&&i.firstRowScreen==this.layerConfig.firstRowScreen){var n=this.scrollTop+(i.firstRow-this.layerConfig.firstRow)*this.lineHeight;n>0&&(this.scrollTop=n,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}i=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-i.offset+"px",this.content.style.marginTop=-i.offset+"px",this.content.style.width=i.width+2*this.$padding+"px",this.content.style.height=i.minHeight+"px"}return e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),e&this.CHANGE_FULL?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),void this._signal("afterRender")):e&this.CHANGE_SCROLL?(e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(i):this.$textLayer.scrollLines(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),void this._signal("afterRender")):(e&this.CHANGE_TEXT?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(i):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(i),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(i),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(i),void this._signal("afterRender"))},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,i=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(i+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&i>this.$maxPixelHeight&&(i=this.$maxPixelHeight);var n=e>t;if(i!=this.desiredHeight||this.$size.height!=this.desiredHeight||n!=this.$vScroll){n!=this.$vScroll&&(this.$vScroll=n,this.scrollBarV.setVisible(n));var r=this.container.clientWidth;this.container.style.height=i+"px",this.$updateCachedSize(!0,this.$gutterWidth,r,i),this.desiredHeight=i,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,i=t.height<=2*this.lineHeight,n=this.session.getScreenLength(),r=n*this.lineHeight,o=this.$getLongestLine(),s=!i&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-o-2*this.$padding<0),a=this.$horizScroll!==s;a&&(this.$horizScroll=s,this.scrollBarH.setVisible(s));var l=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var c=this.scrollTop%this.lineHeight,h=t.scrollerHeight+this.lineHeight,u=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;r+=u;var d=this.scrollMargin;this.session.setScrollTop(Math.max(-d.top,Math.min(this.scrollTop,r-t.scrollerHeight+d.bottom))),this.session.setScrollLeft(Math.max(-d.left,Math.min(this.scrollLeft,o+2*this.$padding-t.scrollerWidth+d.right)));var f=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-r+u<0||this.scrollTop>d.top),p=l!==f;p&&(this.$vScroll=f,this.scrollBarV.setVisible(f));var g,m,v=Math.ceil(h/this.lineHeight)-1,w=Math.max(0,Math.round((this.scrollTop-c)/this.lineHeight)),y=w+v,A=this.lineHeight;w=e.screenToDocumentRow(w,0);var C=e.getFoldLine(w);C&&(w=C.start.row),g=e.documentToScreenRow(w,0),m=e.getRowLength(w)*A,y=Math.min(e.screenToDocumentRow(y,0),e.getLength()-1),h=t.scrollerHeight+e.getRowLength(y)*A+m,c=this.scrollTop-g*A;var E=0;return this.layerConfig.width!=o&&(E=this.CHANGE_H_SCROLL),(a||p)&&(E=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(o=this.$getLongestLine())),this.layerConfig={width:o,padding:this.$padding,firstRow:w,firstRowScreen:g,lastRow:y,lineHeight:A,characterWidth:this.characterWidth,minHeight:h,maxHeight:r,offset:c,gutterOffset:A?Math.max(0,Math.ceil((c+t.height-t.scrollerHeight)/A)):0,height:this.$size.scrollerHeight},E},this.$updateLines=function(){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var i=this.layerConfig;if(!(e>i.lastRow+1||to?(t&&l+s>o+this.lineHeight&&(o-=t*this.$size.scrollerHeight),0===o&&(o=-this.scrollMargin.top),this.session.setScrollTop(o)):l+this.$size.scrollerHeight-ar?(r=1-this.scrollMargin.top||(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0)))},this.pixelToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=(e+this.scrollLeft-i.left-this.$padding)/this.characterWidth,r=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),o=Math.round(n);return{row:r,column:o,side:n-o>0?1:-1}},this.screenToTextCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=Math.round((e+this.scrollLeft-i.left-this.$padding)/this.characterWidth),r=(t+this.scrollTop-i.top)/this.lineHeight;return this.session.screenToDocumentPosition(r,Math.max(n,0))},this.textToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=this.session.documentToScreenPosition(e,t),r=this.$padding+Math.round(n.column*this.characterWidth),o=n.row*this.lineHeight;return{pageX:i.left+r-this.scrollLeft,pageY:i.top+o-this.scrollTop}},this.visualizeFocus=function(){r.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){r.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,r.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(r.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(e,t){function i(i){if(n.$themeId!=e)return t&&t();if(!i||!i.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");r.importCssString(i.cssText,i.cssClass,n.container.ownerDocument),n.theme&&r.removeCssClass(n.container,n.theme.cssClass);var o="padding"in i?i.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&o!=n.$padding&&n.setPadding(o),n.$theme=i.cssClass,n.theme=i,r.addCssClass(n.container,i.cssClass),r.setCssClass(n.container,"ace_dark",i.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:i}),t&&t()}var n=this;if(this.$themeId=e,n._dispatchEvent("themeChange",{theme:e}),e&&"string"!=typeof e)i(e);else{var s=e||this.$options.theme.initialValue;o.loadModule(["theme",s],i)}},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){r.setCssClass(this.container,e,!1!==t)},this.unsetStyle=function(e){r.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(m.prototype),o.defineOptions(m.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){r.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight)return this.$gutterLineHighlight=r.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",void this.$gutter.appendChild(this.$gutterLineHighlight);this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=m}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("../lib/net"),s=e("../lib/event_emitter").EventEmitter,a=e("../config"),l=function(t,n,r,o){if(this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),a.get("packaged")||!e.toUrl)o=o||a.moduleUrl(n.id,"worker");else{var s=this.$normalizePath;o=o||s(e.toUrl("ace/worker/worker.js",null,"_"));var l={};t.forEach(function(t){l[t]=s(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}try{var c=n.src,h=i(69),u=new h([c],{type:"application/javascript"}),d=(window.URL||window.webkitURL).createObjectURL(u);this.$worker=new Worker(d)}catch(e){if(!(e instanceof window.DOMException))throw e;var u=this.$workerBlob(o),f=window.URL||window.webkitURL,p=f.createObjectURL(u);this.$worker=new Worker(p),f.revokeObjectURL(p)}this.$worker.postMessage({init:!0,tlns:l,module:n.id,classname:r}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var i=this.callbacks[t.id];i&&(i(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return o.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,i){if(i){var n=this.callbackId++;this.callbacks[n]=i,t.push(n)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))},this.$workerBlob=function(e){var t="importScripts('"+o.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(e){var i=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,n=new i;return n.append(t),n.getBlob("application/javascript")}}}).call(l.prototype);var c=function(e,t,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var n=null,r=!1,o=Object.create(s),l=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){l.messageBuffer.push(e),n&&(r?setTimeout(c):c())},this.setEmitSync=function(e){r=e};var c=function(){var e=l.messageBuffer.shift();e.command?n[e.command].apply(n,e.args):e.event&&o._signal(e.event,e.data)};o.postMessage=function(e){l.onMessage({data:e})},o.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},o.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},a.loadModule(["worker",t],function(e){for(n=new e[i](o);l.messageBuffer.length;)c()})};c.prototype=l.prototype,t.UIWorkerClient=c,t.WorkerClient=l}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,i){"use strict";var n=e("./range").Range,r=e("./lib/event_emitter").EventEmitter,o=e("./lib/oop"),s=function(e,t,i,n,r,o){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=r,this.othersClass=o,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=n,this.$onCursorChange=function(){setTimeout(function(){s.onCursorChange()})},this.$pos=i;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){o.implement(this,r),this.setup=function(){var e=this,t=this.doc,i=this.session;this.selectionBefore=i.selection.toJSON(),i.selection.inMultiSelectMode&&i.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var r=this.pos;r.$insertRight=!0,r.detach(),r.markerId=i.addMarker(new n(r.row,r.column,r.row,r.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(i){var n=t.createAnchor(i.row,i.column);n.$insertRight=!0,n.detach(),e.others.push(n)}),i.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(i){i.markerId=e.addMarker(new n(i.row,i.column,i.row,i.column+t.length),t.othersClass,null,!1)})}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,o=t.start.column-this.pos.column;if(this.updateAnchors(e),r&&(this.length+=i),r&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a=this.others[s],l={row:a.row,column:a.column+o};this.doc.insertMergedLines(l,e.lines)}else if("remove"===e.action)for(var s=this.others.length-1;s>=0;s--){var a=this.others[s],l={row:a.row,column:a.column+o};this.doc.remove(new n(l.row,l.column,l.row,l.column-i))}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,i=function(i,r){t.removeMarker(i.markerId),i.markerId=t.addMarker(new n(i.row,i.column,i.row,i.column+e.length),r,null,!1)};i(this.pos,this.mainClass);for(var r=this.others.length;r--;)i(this.others[r],this.othersClass)}},this.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,i=0;i1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var i=e.length;i--;){var n=this.ranges.indexOf(e[i]);this.ranges.splice(n,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new a,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],i=l.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var i=this.getRange(),n=this.isBackwards(),r=i.start.row,o=i.end.row;if(r==o){if(n)var s=i.end,a=i.start;else var s=i.start,a=i.end;return this.addRange(l.fromPoints(a,a)),void this.addRange(l.fromPoints(s,s))}var c=[],h=this.getLineRange(r,!0);h.start.column=i.start.column,c.push(h);for(var u=r+1;u1){var e=this.rangeList.ranges,t=e[e.length-1],i=l.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var n=this.session.documentToScreenPosition(this.selectionLead),r=this.session.documentToScreenPosition(this.selectionAnchor);this.rectangularRangeBlock(n,r).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,i){var n=[],o=e.column0;)g--;if(g>0)for(var m=0;n[m].isEmpty();)m++;for(var v=g;v>=m;v--)n[v].isEmpty()&&n.splice(v,1)}return n}}.call(c.prototype);var v=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,i=e.length;i--;){var n=e[i];if(n.marker){this.session.removeMarker(n.marker);var r=t.indexOf(n);-1!=r&&t.splice(r,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,i=e.editor;if(i.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?n=i.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?n=i.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(i.exitMultiSelectMode(),n=t.exec(i,e.args||{})):n=t.multiSelectAction(i,e.args||{});else{var n=t.exec(i,e.args||{});i.multiSelect.addRange(i.multiSelect.toOrientedRange()),i.multiSelect.mergeOverlappingRanges()}return n}},this.forEachSelection=function(e,t,i){if(!this.inVirtualSelectionMode){var n,r=i&&i.keepOrder,o=1==i||i&&i.$byLines,s=this.session,a=this.selection,l=a.rangeList,h=(r?a:l).ranges;if(!h.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var u=a._eventRegistry;a._eventRegistry={};var d=new c(s);this.inVirtualSelectionMode=!0;for(var f=h.length;f--;){if(o)for(;f>0&&h[f].start.row==h[f-1].end.row;)f--;d.fromOrientedRange(h[f]),d.index=f,this.selection=s.selection=d;var p=e.exec?e.exec(this,t||{}):e(this,t||{});n||void 0===p||(n=p),d.toOrientedRange(h[f])}d.detach(),this.selection=s.selection=a,this.inVirtualSelectionMode=!1,a._eventRegistry=u,a.mergeOverlappingRanges();var g=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),g&&g.from==g.to&&this.renderer.animateScrolling(g.from),n}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,i=[],n=0;no&&(o=i.column),rc?e.insert(n,d.stringRepeat(" ",r-c)):e.remove(new l(n.row,n.column,n.row,n.column-r+c)),t.start.column=t.end.column=o,t.start.row=t.end.row=n.row,t.cursor=t.end}),t.fromOrientedRange(i[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var c=this.selection.getRange(),h=c.start.row,u=c.end.row,f=h==u;if(f){var p,g=this.session.getLength();do{p=this.session.getLine(u)}while(/[=:]/.test(p)&&++u0);h<0&&(h=0),u>=g&&(u=g-1)}var m=this.session.removeFullLines(h,u);m=this.$reAlignText(m,f),this.session.insert({row:h,column:0},m.join("\n")+"\n"),f||(c.start.column=0,c.end.column=m[m.length-1].length),this.selection.setRange(c)}},this.$reAlignText=function(e,t){function i(e){return d.stringRepeat(" ",e)}function n(e){return e[2]?i(s)+e[2]+i(a-e[2].length+l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function r(e){return e[2]?i(s+a-e[2].length)+e[2]+i(l," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function o(e){return e[2]?i(s)+e[2]+i(l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var s,a,l,c=!0,h=!0;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==s?(s=t[1].length,a=t[2].length,l=t[3].length,t):(s+a+l!=t[1].length+t[2].length+t[3].length&&(h=!1),s!=t[1].length&&(c=!1),s>t[1].length&&(s=t[1].length),at[3].length&&(l=t[3].length),t):[e]}).map(t?n:c?h?r:n:o)}}).call(v.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var i=e.oldSession;i&&(i.multiSelect.off("addRange",this.$onAddRange),i.multiSelect.off("removeRange",this.$onRemoveRange),i.multiSelect.off("multiSelect",this.$onMultiSelect),i.multiSelect.off("singleSelect",this.$onSingleSelect),i.multiSelect.lead.off("change",this.$checkMultiselectChange),i.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=o,e("./config").defineOptions(v.prototype,"editor",{enableMultiselect:{set:function(e){o(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",h)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",h))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../../range").Range,r=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);return this.foldingStartMarker.test(n)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(n)?"end":""},this.getFoldWidgetRange=function(e,t,i){return null},this.indentationBlock=function(e,t,i){var r=e.getLine(t),o=r.search(/\S/);if(-1!=o){for(var s=i||r.length,a=e.getLength(),l=t,c=t;++tl){var u=e.getLine(c).length;return new n(l,s,c,u)}}},this.openingBracketBlock=function(e,t,i,r,o){var s={row:i,column:r+1},a=e.$findClosingBracket(t,s,o);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),n.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,i,r,o){var s={row:i,column:r},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,n.fromPoints(a,s)}}).call(r.prototype)}),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {\tbackground: #f0f0f0;\tcolor: #333;\t}\t.ace-tm .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8;\t}\t.ace-tm .ace_fold {\tbackground-color: #6B72E6;\t}\t.ace-tm {\tbackground-color: #FFFFFF;\tcolor: black;\t}\t.ace-tm .ace_cursor {\tcolor: black;\t}\t.ace-tm .ace_invisible {\tcolor: rgb(191, 191, 191);\t}\t.ace-tm .ace_storage,\t.ace-tm .ace_keyword {\tcolor: blue;\t}\t.ace-tm .ace_constant {\tcolor: rgb(197, 6, 11);\t}\t.ace-tm .ace_constant.ace_buildin {\tcolor: rgb(88, 72, 246);\t}\t.ace-tm .ace_constant.ace_language {\tcolor: rgb(88, 92, 246);\t}\t.ace-tm .ace_constant.ace_library {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_invalid {\tbackground-color: rgba(255, 0, 0, 0.1);\tcolor: red;\t}\t.ace-tm .ace_support.ace_function {\tcolor: rgb(60, 76, 114);\t}\t.ace-tm .ace_support.ace_constant {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_support.ace_type,\t.ace-tm .ace_support.ace_class {\tcolor: rgb(109, 121, 222);\t}\t.ace-tm .ace_keyword.ace_operator {\tcolor: rgb(104, 118, 135);\t}\t.ace-tm .ace_string {\tcolor: rgb(3, 106, 7);\t}\t.ace-tm .ace_comment {\tcolor: rgb(76, 136, 107);\t}\t.ace-tm .ace_comment.ace_doc {\tcolor: rgb(0, 102, 255);\t}\t.ace-tm .ace_comment.ace_doc.ace_tag {\tcolor: rgb(128, 159, 191);\t}\t.ace-tm .ace_constant.ace_numeric {\tcolor: rgb(0, 0, 205);\t}\t.ace-tm .ace_variable {\tcolor: rgb(49, 132, 149);\t}\t.ace-tm .ace_xml-pe {\tcolor: rgb(104, 104, 91);\t}\t.ace-tm .ace_entity.ace_name.ace_function {\tcolor: #0000A2;\t}\t.ace-tm .ace_heading {\tcolor: rgb(12, 7, 255);\t}\t.ace-tm .ace_list {\tcolor:rgb(185, 6, 144);\t}\t.ace-tm .ace_meta.ace_tag {\tcolor:rgb(0, 22, 142);\t}\t.ace-tm .ace_string.ace_regex {\tcolor: rgb(255, 0, 0)\t}\t.ace-tm .ace_marker-layer .ace_selection {\tbackground: rgb(181, 213, 255);\t}\t.ace-tm.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px white;\t}\t.ace-tm .ace_marker-layer .ace_step {\tbackground: rgb(252, 255, 0);\t}\t.ace-tm .ace_marker-layer .ace_stack {\tbackground: rgb(164, 229, 101);\t}\t.ace-tm .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid rgb(192, 192, 192);\t}\t.ace-tm .ace_marker-layer .ace_active-line {\tbackground: rgba(0, 0, 0, 0.07);\t}\t.ace-tm .ace_gutter-active-line {\tbackground-color : #dcdcdc;\t}\t.ace-tm .ace_marker-layer .ace_selected-word {\tbackground: rgb(250, 250, 255);\tborder: 1px solid rgb(200, 200, 250);\t}\t.ace-tm .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\t}\t',e("../lib/dom").importCssString(t.cssText,t.cssClass)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}var r=(e("./lib/oop"),e("./lib/dom"));e("./range").Range;(function(){this.getRowLength=function(e){var t;return t=this.lineWidgets?this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:0,this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach(),this.editor!=e&&(this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(e){var t=this.editor;if(t){this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var i=this.session.lineWidgets;i&&i.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})}},this.updateOnFold=function(e,t){var i=t.lineWidgets;if(i&&e.action){for(var n=e.data,r=n.start.row,o=n.end.row,s="add"==e.action,a=r+1;a0&&!n[r];)r--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var s=r;s<=o;s++){var a=n[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=i.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-i.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=i.width+2*i.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}}}).call(n.prototype),t.LineWidgets=n}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(e,t,i){for(var n=0,r=e.length-1;n<=r;){var o=n+r>>1,s=i(t,e[o]);if(s>0)n=o+1;else{if(!(s<0))return o;r=o-1}}return-(n+1)}function r(e,t,i){var r=e.getAnnotations().sort(a.comparePoints);if(r.length){var o=n(r,{row:t,column:-1},a.comparePoints);o<0&&(o=-o-1),o>=r.length?o=i>0?0:r.length-1:0===o&&i<0&&(o=r.length-1);var s=r[o];if(s&&i){if(s.row===t){do{s=r[o+=i]}while(s&&s.row===t);if(!s)return r.slice()}var l=[];t=s.row;do{l[i<0?"unshift":"push"](s),s=r[o+=i]}while(s&&s.row==t);return l.length&&l}}}var o=e("../line_widgets").LineWidgets,s=e("../lib/dom"),a=e("../range").Range;t.showErrorMarker=function(e,t){var i=e.session;i.widgetManager||(i.widgetManager=new o(i),i.widgetManager.attach(e));var n=e.getCursorPosition(),a=n.row,l=i.widgetManager.getWidgetsAtRow(a).filter(function(e){return"errorMarker"==e.type})[0];l?l.destroy():a-=t;var c,h=r(i,a,t);if(h){var u=h[0];n.column=(u.pos&&"number"!=typeof u.column?u.pos.sc:u.column)||0,n.row=u.row,c=e.renderer.$gutterLayer.$annotations[n.row]}else{if(l)return;c={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(n.row),e.selection.moveToPosition(n);var d={row:n.row,fixedWidth:!0,coverGutter:!0,el:s.createElement("div"),type:"errorMarker"},f=d.el.appendChild(s.createElement("div")),p=d.el.appendChild(s.createElement("div"));p.className="error_widget_arrow "+c.className;var g=e.renderer.$cursorLayer.getPixelPosition(n).left;p.style.left=g+e.renderer.gutterWidth-5+"px",d.el.className="error_widget_wrapper",f.className="error_widget "+c.className,f.innerHTML=c.text.join("
"),f.appendChild(s.createElement("div"));var m=function(e,t,i){if(0===t&&("esc"===i||"return"===i))return d.destroy(),{command:"null"}};d.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(m),i.widgetManager.removeLineWidget(d),e.off("changeSelection",d.destroy),e.off("changeSession",d.destroy),e.off("mouseup",d.destroy),e.off("change",d.destroy))},e.keyBinding.addKeyboardHandler(m),e.on("changeSelection",d.destroy),e.on("changeSession",d.destroy),e.on("mouseup",d.destroy),e.on("change",d.destroy),e.session.widgetManager.addLineWidget(d),d.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:d.el.offsetHeight})},s.importCssString("\t .error_widget_wrapper {\t background: inherit;\t color: inherit;\t border:none\t }\t .error_widget {\t border-top: solid 2px;\t border-bottom: solid 2px;\t margin: 5px 0;\t padding: 10px 40px;\t white-space: pre-wrap;\t }\t .error_widget.ace_error, .error_widget_arrow.ace_error{\t border-color: #ff5a5a\t }\t .error_widget.ace_warning, .error_widget_arrow.ace_warning{\t border-color: #F1D817\t }\t .error_widget.ace_info, .error_widget_arrow.ace_info{\t border-color: #5a5a5a\t }\t .error_widget.ace_ok, .error_widget_arrow.ace_ok{\t border-color: #5aaa5a\t }\t .error_widget_arrow {\t position: absolute;\t border: solid 5px;\t border-top-color: transparent!important;\t border-right-color: transparent!important;\t border-left-color: transparent!important;\t top: -5px;\t }\t","")}),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),o=e("./lib/event"),s=e("./editor").Editor,a=e("./edit_session").EditSession,l=e("./undomanager").UndoManager,c=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.acequire=e,t.define=i(68),t.edit=function(e){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var n="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;n=a.value,e=r.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(n=r.getInnerText(e),e.innerHTML="");var l=t.createEditSession(n),h=new s(new c(e));h.setSession(l);var u={document:l,editor:h,onResize:h.resize.bind(h,null)};return a&&(u.textarea=a),o.addListener(window,"resize",u.onResize),h.on("destroy",function(){o.removeListener(window,"resize",u.onResize),u.editor.container.env=null}),h.container.env=h.env=u,h},t.createEditSession=function(e,t){var i=new a(e,t);return i.setUndoManager(new l),i},t.EditSession=a,t.UndoManager=l,t.version="1.2.6"}),function(){ace.acequire(["ace/ace"],function(e){e&&(e.config.init(!0),e.define=ace.define),window.ace||(window.ace=e);for(var t in e)e.hasOwnProperty(t)&&(window.ace[t]=e[t])})}(),e.exports=window.ace.acequire("ace/ace")},function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t){(function(t){e.exports=function(){if(t.Blob)try{return new Blob(["asdf"],{type:"text/plain"}),Blob}catch(e){}var e=t.WebKitBlobBuilder||t.MozBlobBuilder||t.MSBlobBuilder;return function(t,i){var n=new e,r=i.endings,o=i.type;if(r)for(var s=0,a=t.length;sc)break;var h=this.getFoldWidgetRange(e,"all",t);if(h){if(h.start.row<=o)break;if(h.isMultiLine())t=h.end.row;else if(n==c)break}a=t}}return new r(o,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,i){for(var n=t.search(/\s*$/),o=e.getLength(),s=i,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++is)return new r(s,n,h,t.length)}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=e("../worker/worker_client").WorkerClient,u=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};r.inherits(u,o),function(){this.getNextLineIndent=function(e,t,i){var n=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(n+=i)}return n},this.checkOutdent=function(e,t,i){return this.$outdent.checkOutdent(t,i)},this.autoOutdent=function(e,t,i){this.$outdent.autoOutdent(t,i)},this.createWorker=function(e){var t=new h(["ace"],i(71),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(u.prototype),t.Mode=u})},function(e,t){e.exports.id="ace/mode/json_worker", -e.exports.src='"no use strict";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},function(e,t){ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,i){"use strict";var n=e("../lib/dom"),r=e("../lib/lang"),o=e("../lib/event"),s=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys");n.importCssString("\t.ace_search {\tbackground-color: #ddd;\tborder: 1px solid #cbcbcb;\tborder-top: 0 none;\tmax-width: 325px;\toverflow: hidden;\tmargin: 0;\tpadding: 4px;\tpadding-right: 6px;\tpadding-bottom: 0;\tposition: absolute;\ttop: 0px;\tz-index: 99;\twhite-space: normal;\t}\t.ace_search.left {\tborder-left: 0 none;\tborder-radius: 0px 0px 5px 0px;\tleft: 0;\t}\t.ace_search.right {\tborder-radius: 0px 0px 0px 5px;\tborder-right: 0 none;\tright: 0;\t}\t.ace_search_form, .ace_replace_form {\tborder-radius: 3px;\tborder: 1px solid #cbcbcb;\tfloat: left;\tmargin-bottom: 4px;\toverflow: hidden;\t}\t.ace_search_form.ace_nomatch {\toutline: 1px solid red;\t}\t.ace_search_field {\tbackground-color: white;\tcolor: black;\tborder-right: 1px solid #cbcbcb;\tborder: 0 none;\t-webkit-box-sizing: border-box;\t-moz-box-sizing: border-box;\tbox-sizing: border-box;\tfloat: left;\theight: 22px;\toutline: 0;\tpadding: 0 7px;\twidth: 214px;\tmargin: 0;\t}\t.ace_searchbtn,\t.ace_replacebtn {\tbackground: #fff;\tborder: 0 none;\tborder-left: 1px solid #dcdcdc;\tcursor: pointer;\tfloat: left;\theight: 22px;\tmargin: 0;\tposition: relative;\t}\t.ace_searchbtn:last-child,\t.ace_replacebtn:last-child {\tborder-top-right-radius: 3px;\tborder-bottom-right-radius: 3px;\t}\t.ace_searchbtn:disabled {\tbackground: none;\tcursor: default;\t}\t.ace_searchbtn {\tbackground-position: 50% 50%;\tbackground-repeat: no-repeat;\twidth: 27px;\t}\t.ace_searchbtn.prev {\tbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=); \t}\t.ace_searchbtn.next {\tbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=); \t}\t.ace_searchbtn_close {\tbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\tborder-radius: 50%;\tborder: 0 none;\tcolor: #656565;\tcursor: pointer;\tfloat: right;\tfont: 16px/16px Arial;\theight: 14px;\tmargin: 5px 1px 9px 5px;\tpadding: 0;\ttext-align: center;\twidth: 14px;\t}\t.ace_searchbtn_close:hover {\tbackground-color: #656565;\tbackground-position: 50% 100%;\tcolor: white;\t}\t.ace_replacebtn.prev {\twidth: 54px\t}\t.ace_replacebtn.next {\twidth: 27px\t}\t.ace_button {\tmargin-left: 2px;\tcursor: pointer;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\toverflow: hidden;\topacity: 0.7;\tborder: 1px solid rgba(100,100,100,0.23);\tpadding: 1px;\t-moz-box-sizing: border-box;\tbox-sizing: border-box;\tcolor: black;\t}\t.ace_button:hover {\tbackground-color: #eee;\topacity:1;\t}\t.ace_button:active {\tbackground-color: #ddd;\t}\t.ace_button.checked {\tborder-color: #3399ff;\topacity:1;\t}\t.ace_search_options{\tmargin-bottom: 3px;\ttext-align: right;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\t}","ace_searchbox");var l=''.replace(/>\s+/g,">"),c=function(e,t,i){var r=n.createElement("div");r.innerHTML=l,this.element=r.firstChild,this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.container.appendChild(this.element),this.editor=e},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOptions=e.querySelector(".ace_search_options"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;o.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),o.stopPropagation(e)}),o.addListener(e,"click",function(e){var i=e.target||e.srcElement,n=i.getAttribute("action");n&&t[n]?t[n]():t.$searchBarKb.commands[n]&&t.$searchBarKb.commands[n].exec(t),o.stopPropagation(e)}),o.addCommandKeyListener(e,function(e,i,n){var r=a.keyCodeToString(n),s=t.$searchBarKb.findKeyCommand(i,r);s&&s.exec&&(s.exec(t),o.stopEvent(e))}),this.$onChange=r.delayedCall(function(){t.find(!1,!1)}),o.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),o.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),o.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new s([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new s,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.replaceBox.style.display="",e.replaceInput.focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}}]),this.$syncOptions=function(){n.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),n.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),n.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked),this.find(!1,!1)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,i){var r=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:i}),o=!r&&this.searchInput.value;n.setCssClass(this.searchBox,"ace_nomatch",o),this.editor._emit("findSearchBox",{match:!o}),this.highlight()},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;n.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.element.style.display="",this.replaceBox.style.display=t?"":"none",this.isReplace=t,e&&(this.searchInput.value=e),this.find(!1,!1,!0),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(c.prototype),t.SearchBox=c,t.Search=function(e,t){(e.searchBox||new c(e)).show(e.session.getTextRange(),t)}}),function(){ace.acequire(["ace/ext/searchbox"],function(){})}()},function(e,t){ace.define("ace/theme/jsoneditor",["require","exports","module","ace/lib/dom"],function(e,t,i){t.isDark=!1,t.cssClass="ace-jsoneditor",t.cssText='.ace-jsoneditor .ace_gutter {\tbackground: #ebebeb;\tcolor: #333\t}\t\t.ace-jsoneditor.ace_editor {\tfont-family: droid sans mono, consolas, monospace, courier new, courier, sans-serif;\tline-height: 1.3;\tbackground-color: #fff;\t}\t.ace-jsoneditor .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8\t}\t.ace-jsoneditor .ace_scroller {\tbackground-color: #FFFFFF\t}\t.ace-jsoneditor .ace_text-layer {\tcolor: gray\t}\t.ace-jsoneditor .ace_variable {\tcolor: #1a1a1a\t}\t.ace-jsoneditor .ace_cursor {\tborder-left: 2px solid #000000\t}\t.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {\tborder-left: 0px;\tborder-bottom: 1px solid #000000\t}\t.ace-jsoneditor .ace_marker-layer .ace_selection {\tbackground: lightgray\t}\t.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px #FFFFFF;\tborder-radius: 2px\t}\t.ace-jsoneditor .ace_marker-layer .ace_step {\tbackground: rgb(255, 255, 0)\t}\t.ace-jsoneditor .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid #BFBFBF\t}\t.ace-jsoneditor .ace_marker-layer .ace_active-line {\tbackground: #FFFBD1\t}\t.ace-jsoneditor .ace_gutter-active-line {\tbackground-color : #dcdcdc\t}\t.ace-jsoneditor .ace_marker-layer .ace_selected-word {\tborder: 1px solid lightgray\t}\t.ace-jsoneditor .ace_invisible {\tcolor: #BFBFBF\t}\t.ace-jsoneditor .ace_keyword,\t.ace-jsoneditor .ace_meta,\t.ace-jsoneditor .ace_support.ace_constant.ace_property-value {\tcolor: #AF956F\t}\t.ace-jsoneditor .ace_keyword.ace_operator {\tcolor: #484848\t}\t.ace-jsoneditor .ace_keyword.ace_other.ace_unit {\tcolor: #96DC5F\t}\t.ace-jsoneditor .ace_constant.ace_language {\tcolor: darkorange\t}\t.ace-jsoneditor .ace_constant.ace_numeric {\tcolor: red\t}\t.ace-jsoneditor .ace_constant.ace_character.ace_entity {\tcolor: #BF78CC\t}\t.ace-jsoneditor .ace_invalid {\tcolor: #FFFFFF;\tbackground-color: #FF002A;\t}\t.ace-jsoneditor .ace_fold {\tbackground-color: #AF956F;\tborder-color: #000000\t}\t.ace-jsoneditor .ace_storage,\t.ace-jsoneditor .ace_support.ace_class,\t.ace-jsoneditor .ace_support.ace_function,\t.ace-jsoneditor .ace_support.ace_other,\t.ace-jsoneditor .ace_support.ace_type {\tcolor: #C52727\t}\t.ace-jsoneditor .ace_string {\tcolor: green\t}\t.ace-jsoneditor .ace_comment {\tcolor: #BCC8BA\t}\t.ace-jsoneditor .ace_entity.ace_name.ace_tag,\t.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {\tcolor: #606060\t}\t.ace-jsoneditor .ace_markup.ace_underline {\ttext-decoration: underline\t}\t.ace-jsoneditor .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y\t}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})}])}); -//# sourceMappingURL=jsoneditor.map \ No newline at end of file +undefined \ No newline at end of file diff --git a/package.json b/package.json index ae19897..d23210b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jsoneditor", - "version": "5.7.2", + "version": "5.8.0", "main": "./index", "description": "A web-based tool to view, edit, format, and validate JSON", "tags": [ diff --git a/src/js/util.js b/src/js/util.js index a935e88..6b41d97 100644 --- a/src/js/util.js +++ b/src/js/util.js @@ -777,23 +777,25 @@ exports.textDiff = function textDiff(oldText, newText) { return {start: start, end: newEnd}; }; -// Polyfill for array remove -(function (arr) { +if (typeof Element !== 'undefined') { + // Polyfill for array remove + (function (arr) { arr.forEach(function (item) { - if (item.hasOwnProperty('remove')) { - return; + if (item.hasOwnProperty('remove')) { + return; + } + Object.defineProperty(item, 'remove', { + configurable: true, + enumerable: true, + writable: true, + value: function remove() { + if (this.parentNode != null) + this.parentNode.removeChild(this); } - Object.defineProperty(item, 'remove', { - configurable: true, - enumerable: true, - writable: true, - value: function remove() { - if (this.parentNode != null) - this.parentNode.removeChild(this); - } - }); + }); }); -})([Element.prototype, CharacterData.prototype, DocumentType.prototype]); + })([Element.prototype, CharacterData.prototype, DocumentType.prototype]); +} // Polyfill for startsWith