diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | js/vendor/ace/src-noconflict/worker-coffee.js | 7441 | ||||
-rw-r--r-- | js/vendor/ace/src-noconflict/worker-css.js | 8235 | ||||
-rw-r--r-- | js/vendor/ace/src-noconflict/worker-javascript.js | 9980 | ||||
-rw-r--r-- | js/vendor/ace/src-noconflict/worker-json.js | 2251 | ||||
-rw-r--r-- | js/vendor/ace/src-noconflict/worker-lua.js | 3487 | ||||
-rw-r--r-- | js/vendor/ace/src-noconflict/worker-php.js | 6847 | ||||
-rw-r--r-- | js/vendor/ace/src-noconflict/worker-xquery.js | 21843 |
8 files changed, 1 insertions, 60084 deletions
@@ -2,3 +2,4 @@ .DS_Store # Tests - auto-generated files /tests/clover.xml +/js/vendor/ace/src-noconflict/worker-* diff --git a/js/vendor/ace/src-noconflict/worker-coffee.js b/js/vendor/ace/src-noconflict/worker-coffee.js deleted file mode 100644 index e8e3484..0000000 --- a/js/vendor/ace/src-noconflict/worker-coffee.js +++ /dev/null @@ -1,7441 +0,0 @@ -"no use strict"; -;(function(window) { -if (typeof window.window != "undefined" && window.document) { - return; -} - -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.normalizeModule = function(parentId, moduleName) { - if (moduleName.indexOf("!") !== -1) { - var chunks = moduleName.split("!"); - return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]); - } - if (moduleName.charAt(0) == ".") { - var base = parentId.split("/").slice(0, -1).join("/"); - moduleName = base + "/" + moduleName; - - while(moduleName.indexOf(".") !== -1 && previous != moduleName) { - var previous = moduleName; - moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, ""); - } - } - - return moduleName; -}; - -window.require = function(parentId, id) { - if (!id) { - id = parentId - parentId = null; - } - if (!id.charAt) - throw new Error("worker.js require() accepts only (parentId, id) as arguments"); - - id = normalizeModule(parentId, id); - - var module = require.modules[id]; - if (module) { - if (!module.initialized) { - module.initialized = true; - module.exports = module.factory().exports; - } - return module.exports; - } - - var chunks = id.split("/"); - chunks[0] = require.tlns[chunks[0]] || chunks[0]; - var path = chunks.join("/") + ".js"; - - require.id = id; - importScripts(path); - return require(parentId, id); -}; - -require.modules = {}; -require.tlns = {}; - -window.define = function(id, deps, factory) { - if (arguments.length == 2) { - factory = deps; - if (typeof id != "string") { - deps = id; - id = require.id; - } - } else if (arguments.length == 1) { - factory = id; - id = require.id; - } - - if (id.indexOf("text!") === 0) - return; - - var req = function(deps, factory) { - return require(id, deps, factory); - }; - - require.modules[id] = { - exports: {}, - factory: function() { - var module = this; - var returnExports = factory(req, module.exports, module); - if (returnExports) - module.exports = returnExports; - return module; - } - }; -}; - -window.initBaseUrls = function initBaseUrls(topLevelNamespaces) { - require.tlns = topLevelNamespaces; -} - -window.initSender = function initSender() { - - var EventEmitter = require("ace/lib/event_emitter").EventEmitter; - var oop = require("ace/lib/oop"); - - var Sender = function() {}; - - (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); - - return new Sender(); -} - -window.main = null; -window.sender = null; - -window.onmessage = function(e) { - var msg = e.data; - if (msg.command) { - if (main[msg.command]) - main[msg.command].apply(main, msg.args); - else - throw new Error("Unknown command:" + msg.command); - } - else if (msg.init) { - initBaseUrls(msg.tlns); - require("ace/lib/es5-shim"); - sender = initSender(); - var clazz = require(msg.module)[msg.classname]; - main = new clazz(sender); - } - else if (msg.event && sender) { - sender._emit(msg.event, msg.data); - } -}; -})(this); - -ace.define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) { - - -var EventEmitter = {}; -var stopPropagation = function() { this.propagationStopped = true; }; -var preventDefault = function() { this.defaultPrevented = true; }; - -EventEmitter._emit = -EventEmitter._dispatchEvent = function(eventName, e) { - this._eventRegistry || (this._eventRegistry = {}); - this._defaultHandlers || (this._defaultHandlers = {}); - - var listeners = this._eventRegistry[eventName] || []; - var defaultHandler = this._defaultHandlers[eventName]; - if (!listeners.length && !defaultHandler) - return; - - if (typeof e != "object" || !e) - e = {}; - - if (!e.type) - e.type = eventName; - if (!e.stopPropagation) - e.stopPropagation = stopPropagation; - if (!e.preventDefault) - e.preventDefault = preventDefault; - - for (var i=0; i<listeners.length; i++) { - listeners[i](e, this); - if (e.propagationStopped) - break; - } - - if (defaultHandler && !e.defaultPrevented) - return defaultHandler(e, this); -}; - - -EventEmitter._signal = function(eventName, e) { - var listeners = (this._eventRegistry || {})[eventName]; - if (!listeners) - return; - - for (var i=0; i<listeners.length; 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_: {}}; - - if (handlers[eventName]) { - var old = handlers[eventName]; - var disabled = handlers._disabled_[eventName]; - if (!disabled) - handlers._disabled_[eventName] = disabled = []; - disabled.push(old); - var i = disabled.indexOf(callback); - if (i != -1) - disabled.splice(i, 1); - } - handlers[eventName] = callback; -}; -EventEmitter.removeDefaultHandler = function(eventName, callback) { - var handlers = this._defaultHandlers - if (!handlers) - return; - var disabled = handlers._disabled_[eventName]; - - if (handlers[eventName] == callback) { - var old = handlers[eventName]; - if (disabled) - this.setDefaultHandler(eventName, disabled.pop()); - } else if (disabled) { - var i = disabled.indexOf(callback); - if (i != -1) - disabled.splice(i, 1); - } -}; - -EventEmitter.on = -EventEmitter.addEventListener = function(eventName, callback, capturing) { - this._eventRegistry = this._eventRegistry || {}; - - var listeners = this._eventRegistry[eventName]; - if (!listeners) - listeners = this._eventRegistry[eventName] = []; - - if (listeners.indexOf(callback) == -1) - listeners[capturing ? "unshift" : "push"](callback); - return callback; -}; - -EventEmitter.off = -EventEmitter.removeListener = -EventEmitter.removeEventListener = function(eventName, callback) { - this._eventRegistry = this._eventRegistry || {}; - - var listeners = this._eventRegistry[eventName]; - if (!listeners) - return; - - var index = listeners.indexOf(callback); - if (index !== -1) - listeners.splice(index, 1); -}; - -EventEmitter.removeAllListeners = function(eventName) { - if (this._eventRegistry) this._eventRegistry[eventName] = []; -}; - -exports.EventEmitter = EventEmitter; - -}); - -ace.define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) { - - -exports.inherits = (function() { - var tempCtor = function() {}; - return function(ctor, superCtor) { - tempCtor.prototype = superCtor.prototype; - ctor.super_ = superCtor.prototype; - ctor.prototype = new tempCtor(); - ctor.prototype.constructor = ctor; - }; -}()); - -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/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) { - -function Empty() {} - -if (!Function.prototype.bind) { - Function.prototype.bind = function bind(that) { // .length is 1 - var target = this; - if (typeof target != "function") { - throw new TypeError("Function.prototype.bind called on incompatible " + target); - } - var args = slice.call(arguments, 1); // for normal call - var bound = function () { - - if (this instanceof bound) { - - var result = target.apply( - this, - args.concat(slice.call(arguments)) - ); - if (Object(result) === result) { - return result; - } - return this; - - } else { - return target.apply( - that, - args.concat(slice.call(arguments)) - ); - - } - - }; - if(target.prototype) { - Empty.prototype = target.prototype; - bound.prototype = new Empty(); - Empty.prototype = null; - } - return bound; - }; -} -var call = Function.prototype.call; -var prototypeOfArray = Array.prototype; -var prototypeOfObject = Object.prototype; -var slice = prototypeOfArray.slice; -var _toString = call.bind(prototypeOfObject.toString); -var owns = call.bind(prototypeOfObject.hasOwnProperty); -var defineGetter; -var defineSetter; -var lookupGetter; -var lookupSetter; -var supportsAccessors; -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__); -} -if ([1,2].splice(0).length != 2) { - if(function() { // test IE < 9 to splice bug - see issue #138 - function makeArray(l) { - var a = new Array(l+2); - a[0] = a[1] = 0; - return a; - } - var array = [], lengthBefore; - - array.splice.apply(array, makeArray(20)); - array.splice.apply(array, makeArray(26)); - - lengthBefore = array.length; //46 - array.splice(5, 0, "XXX"); // add one element - - lengthBefore + 1 == array.length - - if (lengthBefore + 1 == array.length) { - return true;// has right splice implementation without bugs - } - }()) {//IE 6/7 - var array_splice = Array.prototype.splice; - Array.prototype.splice = function(start, deleteCount) { - if (!arguments.length) { - return []; - } else { - return array_splice.apply(this, [ - start === void 0 ? 0 : start, - deleteCount === void 0 ? (this.length - start) : deleteCount - ].concat(slice.call(arguments, 2))) - } - }; - } else {//IE8 - Array.prototype.splice = function(pos, removeCount){ - var length = this.length; - if (pos > 0) { - if (pos > length) - pos = length; - } else if (pos == void 0) { - pos = 0; - } else if (pos < 0) { - pos = Math.max(length + pos, 0); - } - - if (!(pos+removeCount < length)) - removeCount = length - pos; - - var removed = this.slice(pos, pos+removeCount); - var insert = slice.call(arguments, 2); - var add = insert.length; - if (pos === length) { - if (add) { - this.push.apply(this, insert); - } - } else { - var remove = Math.min(removeCount, length - pos); - var tailOldPos = pos + remove; - var tailNewPos = tailOldPos + add - remove; - var tailCount = length - tailOldPos; - var lengthAfterRemove = length - remove; - - if (tailNewPos < tailOldPos) { // case A - for (var i = 0; i < tailCount; ++i) { - this[tailNewPos+i] = this[tailOldPos+i]; - } - } else if (tailNewPos > tailOldPos) { // case B - for (i = tailCount; i--; ) { - this[tailNewPos+i] = this[tailOldPos+i]; - } - } // else, add == remove (nothing to do) - - if (add && pos === lengthAfterRemove) { - this.length = lengthAfterRemove; // truncate array - this.push.apply(this, insert); - } else { - this.length = lengthAfterRemove + add; // reserves space - for (i = 0; i < add; ++i) { - this[pos+i] = insert[i]; - } - } - } - return removed; - }; - } -} -if (!Array.isArray) { - Array.isArray = function isArray(obj) { - return _toString(obj) == "[object Array]"; - }; -} -var boxedString = Object("a"), - splitString = boxedString[0] != "a" || !(0 in boxedString); - -if (!Array.prototype.forEach) { - Array.prototype.forEach = function forEach(fun /*, thisp*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - thisp = arguments[1], - i = -1, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(); // TODO message - } - - while (++i < length) { - if (i in self) { - fun.call(thisp, self[i], i, object); - } - } - }; -} -if (!Array.prototype.map) { - Array.prototype.map = function map(fun /*, thisp*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - result = Array(length), - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self) - result[i] = fun.call(thisp, self[i], i, object); - } - return result; - }; -} -if (!Array.prototype.filter) { - Array.prototype.filter = function filter(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - result = [], - value, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self) { - value = self[i]; - if (fun.call(thisp, value, i, object)) { - result.push(value); - } - } - } - return result; - }; -} -if (!Array.prototype.every) { - Array.prototype.every = function every(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self && !fun.call(thisp, self[i], i, object)) { - return false; - } - } - return true; - }; -} -if (!Array.prototype.some) { - Array.prototype.some = function some(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self && fun.call(thisp, self[i], i, object)) { - return true; - } - } - return false; - }; -} -if (!Array.prototype.reduce) { - Array.prototype.reduce = function reduce(fun /*, initial*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - if (!length && arguments.length == 1) { - throw new TypeError("reduce of empty array with no initial value"); - } - - var i = 0; - var result; - if (arguments.length >= 2) { - result = arguments[1]; - } else { - do { - if (i in self) { - result = self[i++]; - break; - } - if (++i >= length) { - throw new TypeError("reduce of empty array with no initial value"); - } - } while (true); - } - - for (; i < length; i++) { - if (i in self) { - result = fun.call(void 0, result, self[i], i, object); - } - } - - return result; - }; -} -if (!Array.prototype.reduceRight) { - Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - if (!length && arguments.length == 1) { - throw new TypeError("reduceRight of empty array with no initial value"); - } - - var result, i = length - 1; - if (arguments.length >= 2) { - result = arguments[1]; - } else { - do { - if (i in self) { - result = self[i--]; - break; - } - if (--i < 0) { - throw new TypeError("reduceRight of empty array with no initial value"); - } - } while (true); - } - - do { - if (i in this) { - result = fun.call(void 0, result, self[i], i, object); - } - } while (i--); - - return result; - }; -} -if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) { - Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) { - var self = splitString && _toString(this) == "[object String]" ? - this.split("") : - toObject(this), - length = self.length >>> 0; - - if (!length) { - return -1; - } - - var i = 0; - if (arguments.length > 1) { - i = toInteger(arguments[1]); - } - i = i >= 0 ? i : Math.max(0, length + i); - for (; i < length; i++) { - if (i in self && self[i] === sought) { - return i; - } - } - return -1; - }; -} -if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) { - Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) { - var self = splitString && _toString(this) == "[object String]" ? - this.split("") : - toObject(this), - length = self.length >>> 0; - - if (!length) { - return -1; - } - var i = length - 1; - if (arguments.length > 1) { - i = Math.min(i, toInteger(arguments[1])); - } - i = i >= 0 ? i : length - Math.abs(i); - for (; i >= 0; i--) { - if (i in self && sought === self[i]) { - return i; - } - } - return -1; - }; -} -if (!Object.getPrototypeOf) { - Object.getPrototypeOf = function getPrototypeOf(object) { - return object.__proto__ || ( - object.constructor ? - object.constructor.prototype : - prototypeOfObject - ); - }; -} -if (!Object.getOwnPropertyDescriptor) { - var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " + - "non-object: "; - Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) { - if ((typeof object != "object" && typeof object != "function") || object === null) - throw new TypeError(ERR_NON_OBJECT + object); - if (!owns(object, property)) - return; - - var descriptor, getter, setter; - descriptor = { enumerable: true, configurable: true }; - if (supportsAccessors) { - var prototype = object.__proto__; - object.__proto__ = prototypeOfObject; - - var getter = lookupGetter(object, property); - var setter = lookupSetter(object, property); - object.__proto__ = prototype; - - if (getter || setter) { - if (getter) descriptor.get = getter; - if (setter) descriptor.set = setter; - return descriptor; - } - } - descriptor.value = object[property]; - return descriptor; - }; -} -if (!Object.getOwnPropertyNames) { - Object.getOwnPropertyNames = function getOwnPropertyNames(object) { - return Object.keys(object); - }; -} -if (!Object.create) { - var createEmpty; - if (Object.prototype.__proto__ === null) { - createEmpty = function () { - return { "__proto__": null }; - }; - } else { - createEmpty = function () { - var empty = {}; - for (var i in empty) - empty[i] = null; - empty.constructor = - empty.hasOwnProperty = - empty.propertyIsEnumerable = - empty.isPrototypeOf = - empty.toLocaleString = - empty.toString = - empty.valueOf = - empty.__proto__ = null; - return empty; - } - } - - Object.create = function create(prototype, properties) { - var object; - if (prototype === null) { - object = createEmpty(); - } else { - if (typeof prototype != "object") - throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'"); - var Type = function () {}; - Type.prototype = prototype; - object = new Type(); - object.__proto__ = prototype; - } - if (properties !== void 0) - Object.defineProperties(object, properties); - return object; - }; -} - -function doesDefinePropertyWork(object) { - try { - Object.defineProperty(object, "sentinel", {}); - return "sentinel" in object; - } catch (exception) { - } -} -if (Object.defineProperty) { - var definePropertyWorksOnObject = doesDefinePropertyWork({}); - var definePropertyWorksOnDom = typeof document == "undefined" || - 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: "; - var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: " - var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " + - "on this javascript engine"; - - Object.defineProperty = function defineProperty(object, property, descriptor) { - if ((typeof object != "object" && typeof object != "function") || object === null) - throw new TypeError(ERR_NON_OBJECT_TARGET + object); - if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null) - 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); - if (owns(descriptor, "get")) - defineGetter(object, property, descriptor.get); - if (owns(descriptor, "set")) - defineSetter(object, property, descriptor.set); - } - - return object; - }; -} -if (!Object.defineProperties) { - Object.defineProperties = function defineProperties(object, properties) { - for (var property in properties) { - if (owns(properties, property)) - Object.defineProperty(object, property, properties[property]); - } - return object; - }; -} -if (!Object.seal) { - Object.seal = function seal(object) { - return object; - }; -} -if (!Object.freeze) { - Object.freeze = function freeze(object) { - return object; - }; -} -try { - Object.freeze(function () {}); -} catch (exception) { - Object.freeze = (function freeze(freezeObject) { - return function freeze(object) { - if (typeof object == "function") { - return object; - } else { - return freezeObject(object); - } - }; - })(Object.freeze); -} -if (!Object.preventExtensions) { - Object.preventExtensions = function preventExtensions(object) { - return object; - }; -} -if (!Object.isSealed) { - Object.isSealed = function isSealed(object) { - return false; - }; -} -if (!Object.isFrozen) { - Object.isFrozen = function isFrozen(object) { - return false; - }; -} -if (!Object.isExtensible) { - Object.isExtensible = function isExtensible(object) { - if (Object(object) === object) { - throw new TypeError(); // TODO message - } - var name = ''; - while (owns(object, name)) { - name += '?'; - } - object[name] = true; - var returnValue = owns(object, name); - delete object[name]; - return returnValue; - }; -} -if (!Object.keys) { - var hasDontEnumBug = true, - dontEnums = [ - "toString", - "toLocaleString", - "valueOf", - "hasOwnProperty", - "isPrototypeOf", - "propertyIsEnumerable", - "constructor" - ], - dontEnumsLength = dontEnums.length; - - for (var key in {"toString": null}) { - hasDontEnumBug = false; - } - - Object.keys = function keys(object) { - - if ( - (typeof object != "object" && typeof object != "function") || - object === null - ) { - throw new TypeError("Object.keys called on a non-object"); - } - - var keys = []; - for (var name in object) { - if (owns(object, name)) { - keys.push(name); - } - } - - if (hasDontEnumBug) { - for (var i = 0, ii = dontEnumsLength; i < ii; i++) { - var dontEnum = dontEnums[i]; - if (owns(object, dontEnum)) { - keys.push(dontEnum); - } - } - } - return keys; - }; - -} -if (!Date.now) { - Date.now = function now() { - return new Date().getTime(); - }; -} -var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" + - "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" + - "\u2029\uFEFF"; -if (!String.prototype.trim || ws.trim()) { - ws = "[" + ws + "]"; - var trimBeginRegexp = new RegExp("^" + ws + ws + "*"), - trimEndRegexp = new RegExp(ws + ws + "*$"); - String.prototype.trim = function trim() { - return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, ""); - }; -} - -function toInteger(n) { - n = +n; - if (n !== n) { // isNaN - n = 0; - } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) { - n = (n > 0 || -1) * Math.floor(Math.abs(n)); - } - return n; -} - -function isPrimitive(input) { - var type = typeof input; - return ( - input === null || - type === "undefined" || - type === "boolean" || - type === "number" || - type === "string" - ); -} - -function toPrimitive(input) { - var val, valueOf, toString; - if (isPrimitive(input)) { - return input; - } - valueOf = input.valueOf; - if (typeof valueOf === "function") { - val = valueOf.call(input); - if (isPrimitive(val)) { - return val; - } - } - toString = input.toString; - if (typeof toString === "function") { - val = toString.call(input); - if (isPrimitive(val)) { - return val; - } - } - throw new TypeError(); -} -var toObject = function (o) { - if (o == null) { // this matches both null and undefined - throw new TypeError("can't convert "+o+" to object"); - } - return Object(o); -}; - -}); - -ace.define('ace/mode/coffee_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/coffee/coffee-script'], function(require, exports, module) { - - -var oop = require("../lib/oop"); -var Mirror = require("../worker/mirror").Mirror; -var coffee = require("../mode/coffee/coffee-script"); - -window.addEventListener = function() {}; - - -var Worker = exports.Worker = function(sender) { - Mirror.call(this, sender); - this.setTimeout(250); -}; - -oop.inherits(Worker, Mirror); - -(function() { - - this.onUpdate = function() { - var value = this.doc.getValue(); - - try { - coffee.parse(value).compile(); - } catch(e) { - var loc = e.location; - if (loc) { - this.sender.emit("error", { - row: loc.first_line, - column: loc.first_column, - endRow: loc.last_line, - endColumn: loc.last_column, - text: e.message, - type: "error" - }); - } - return; - } - this.sender.emit("ok"); - }; - -}).call(Worker.prototype); - -}); -ace.define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) { - - -var Document = require("../document").Document; -var lang = require("../lib/lang"); - -var Mirror = exports.Mirror = function(sender) { - this.sender = sender; - var doc = this.doc = new Document(""); - - var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this)); - - var _self = this; - sender.on("change", function(e) { - doc.applyDeltas(e.data); - deferredUpdate.schedule(_self.$timeout); - }); -}; - -(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() { - }; - -}).call(Mirror.prototype); - -}); - -ace.define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) { - - -var oop = require("./lib/oop"); -var EventEmitter = require("./lib/event_emitter").EventEmitter; -var Range = require("./range").Range; -var Anchor = require("./anchor").Anchor; - -var Document = function(text) { - this.$lines = []; - if (text.length == 0) { - this.$lines = [""]; - } else if (Array.isArray(text)) { - this._insertLines(0, text); - } else { - this.insert({row: 0, column:0}, text); - } -}; - -(function() { - - oop.implement(this, EventEmitter); - this.setValue = function(text) { - var len = this.getLength(); - this.remove(new Range(0, 0, len, this.getLine(len-1).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); - }; - if ("aaa".split(/a/).length == 0) - this.$split = function(text) { - return text.replace(/\r\n|\r/g, "\n").split("\n"); - } - else - this.$split = 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.getNewLineCharacter = function() { - switch (this.$newLineMode) { - case "windows": - return "\r\n"; - case "unix": - return "\n"; - default: - return this.$autoNewLine; - } - }; - - this.$autoNewLine = "\n"; - this.$newLineMode = "auto"; - this.setNewLineMode = function(newLineMode) { - if (this.$newLineMode === newLineMode) - return; - - this.$newLineMode = newLineMode; - }; - this.getNewLineMode = function() { - return this.$newLineMode; - }; - this.isNewLine = function(text) { - return (text == "\r\n" || text == "\r" || text == "\n"); - }; - 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) { - if (range.start.row == range.end.row) { - return this.getLine(range.start.row) - .substring(range.start.column, range.end.column); - } - var lines = this.getLines(range.start.row, range.end.row); - lines[0] = (lines[0] || "").substring(range.start.column); - var l = lines.length - 1; - if (range.end.row - range.start.row == l) - lines[l] = lines[l].substring(0, range.end.column); - return lines.join(this.getNewLineCharacter()); - }; - - this.$clipPosition = function(position) { - var length = this.getLength(); - if (position.row >= length) { - position.row = Math.max(0, length - 1); - position.column = this.getLine(length-1).length; - } else if (position.row < 0) - position.row = 0; - return position; - }; - this.insert = function(position, text) { - if (!text || text.length === 0) - return position; - - position = this.$clipPosition(position); - if (this.getLength() <= 1) - this.$detectNewLine(text); - - var lines = this.$split(text); - var firstLine = lines.splice(0, 1)[0]; - var lastLine = lines.length == 0 ? null : lines.splice(lines.length - 1, 1)[0]; - - position = this.insertInLine(position, firstLine); - if (lastLine !== null) { - position = this.insertNewLine(position); // terminate first line - position = this._insertLines(position.row, lines); - position = this.insertInLine(position, lastLine || ""); - } - return position; - }; - this.insertLines = function(row, lines) { - if (row >= this.getLength()) - return this.insert({row: row, column: 0}, "\n" + lines.join("\n")); - return this._insertLines(Math.max(row, 0), lines); - }; - this._insertLines = function(row, lines) { - if (lines.length == 0) - return {row: row, column: 0}; - if (lines.length > 0xFFFF) { - var end = this._insertLines(row, lines.slice(0xFFFF)); - lines = lines.slice(0, 0xFFFF); - } - - var args = [row, 0]; - args.push.apply(args, lines); - this.$lines.splice.apply(this.$lines, args); - - var range = new Range(row, 0, row + lines.length, 0); - var delta = { - action: "insertLines", - range: range, - lines: lines - }; - this._emit("change", { data: delta }); - return end || range.end; - }; - this.insertNewLine = function(position) { - position = this.$clipPosition(position); - var line = this.$lines[position.row] || ""; - - this.$lines[position.row] = line.substring(0, position.column); - this.$lines.splice(position.row + 1, 0, line.substring(position.column, line.length)); - - var end = { - row : position.row + 1, - column : 0 - }; - - var delta = { - action: "insertText", - range: Range.fromPoints(position, end), - text: this.getNewLineCharacter() - }; - this._emit("change", { data: delta }); - - return end; - }; - this.insertInLine = function(position, text) { - if (text.length == 0) - return position; - - var line = this.$lines[position.row] || ""; - - this.$lines[position.row] = line.substring(0, position.column) + text - + line.substring(position.column); - - var end = { - row : position.row, - column : position.column + text.length - }; - - var delta = { - action: "insertText", - range: Range.fromPoints(position, end), - text: text - }; - this._emit("change", { data: delta }); - - return end; - }; - this.remove = function(range) { - range.start = this.$clipPosition(range.start); - range.end = this.$clipPosition(range.end); - - if (range.isEmpty()) - return range.start; - - var firstRow = range.start.row; - var lastRow = range.end.row; - - if (range.isMultiLine()) { - var firstFullRow = range.start.column == 0 ? firstRow : firstRow + 1; - var lastFullRow = lastRow - 1; - - if (range.end.column > 0) - this.removeInLine(lastRow, 0, range.end.column); - - if (lastFullRow >= firstFullRow) - this._removeLines(firstFullRow, lastFullRow); - - if (firstFullRow != firstRow) { - this.removeInLine(firstRow, range.start.column, this.getLine(firstRow).length); - this.removeNewLine(range.start.row); - } - } - else { - this.removeInLine(firstRow, range.start.column, range.end.column); - } - return range.start; - }; - this.removeInLine = function(row, startColumn, endColumn) { - if (startColumn == endColumn) - return; - - var range = new Range(row, startColumn, row, endColumn); - var line = this.getLine(row); - var removed = line.substring(startColumn, endColumn); - var newLine = line.substring(0, startColumn) + line.substring(endColumn, line.length); - this.$lines.splice(row, 1, newLine); - - var delta = { - action: "removeText", - range: range, - text: removed - }; - this._emit("change", { data: delta }); - return range.start; - }; - this.removeLines = function(firstRow, lastRow) { - if (firstRow < 0 || lastRow >= this.getLength()) - return this.remove(new Range(firstRow, 0, lastRow + 1, 0)); - return this._removeLines(firstRow, lastRow); - }; - - this._removeLines = function(firstRow, lastRow) { - var range = new Range(firstRow, 0, lastRow + 1, 0); - var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1); - - var delta = { - action: "removeLines", - range: range, - nl: this.getNewLineCharacter(), - lines: removed - }; - this._emit("change", { data: delta }); - return removed; - }; - this.removeNewLine = function(row) { - var firstLine = this.getLine(row); - var secondLine = this.getLine(row+1); - - var range = new Range(row, firstLine.length, row+1, 0); - var line = firstLine + secondLine; - - this.$lines.splice(row, 2, line); - - var delta = { - action: "removeText", - range: range, - text: this.getNewLineCharacter() - }; - this._emit("change", { data: delta }); - }; - this.replace = function(range, text) { - if (text.length == 0 && range.isEmpty()) - return range.start; - if (text == this.getTextRange(range)) - return range.end; - - this.remove(range); - if (text) { - var end = this.insert(range.start, text); - } - else { - end = range.start; - } - - return end; - }; - this.applyDeltas = function(deltas) { - for (var i=0; i<deltas.length; i++) { - var delta = deltas[i]; - var range = Range.fromPoints(delta.range.start, delta.range.end); - - if (delta.action == "insertLines") - this.insertLines(range.start.row, delta.lines); - else if (delta.action == "insertText") - this.insert(range.start, delta.text); - else if (delta.action == "removeLines") - this._removeLines(range.start.row, range.end.row - 1); - else if (delta.action == "removeText") - this.remove(range); - } - }; - this.revertDeltas = function(deltas) { - for (var i=deltas.length-1; i>=0; i--) { - var delta = deltas[i]; - - var range = Range.fromPoints(delta.range.start, delta.range.end); - - if (delta.action == "insertLines") - this._removeLines(range.start.row, range.end.row - 1); - else if (delta.action == "insertText") - this.remove(range); - else if (delta.action == "removeLines") - this._insertLines(range.start.row, delta.lines); - else if (delta.action == "removeText") - this.insert(range.start, delta.text); - } - }; - this.indexToPosition = function(index, startRow) { - var lines = this.$lines || this.getAllLines(); - var newlineLength = this.getNewLineCharacter().length; - for (var i = startRow || 0, l = lines.length; i < l; i++) { - index -= lines[i].length + newlineLength; - if (index < 0) - return {row: i, column: index + lines[i].length + newlineLength}; - } - return {row: l-1, column: lines[l-1].length}; - }; - this.positionToIndex = function(pos, startRow) { - var lines = this.$lines || this.getAllLines(); - var newlineLength = this.getNewLineCharacter().length; - var index = 0; - var row = Math.min(pos.row, lines.length); - for (var i = startRow || 0; i < row; ++i) - index += lines[i].length + newlineLength; - - return index + pos.column; - }; - -}).call(Document.prototype); - -exports.Document = Document; -}); - -ace.define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) { - -var comparePoints = function(p1, p2) { - return p1.row - p2.row || p1.column - p2.column; -}; -var 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 this.compare(row, column) == 0; - }; - this.compareRange = function(range) { - var cmp, - end = range.end, - start = range.start; - - cmp = this.compare(end.row, end.column); - if (cmp == 1) { - cmp = this.compare(start.row, start.column); - if (cmp == 1) { - return 2; - } else if (cmp == 0) { - return 1; - } else { - return 0; - } - } else if (cmp == -1) { - return -2; - } else { - cmp = this.compare(start.row, start.column); - if (cmp == -1) { - return -1; - } else if (cmp == 1) { - return 42; - } else { - return 0; - } - } - }; - this.comparePoint = function(p) { - return this.compare(p.row, p.column); - }; - this.containsRange = function(range) { - return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0; - }; - this.intersects = function(range) { - var cmp = this.compareRange(range); - return (cmp == -1 || cmp == 0 || cmp == 1); - }; - 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) { - if (typeof row == "object") { - this.start.column = row.column; - this.start.row = row.row; - } else { - this.start.row = row; - this.start.column = column; - } - }; - this.setEnd = function(row, column) { - if (typeof row == "object") { - this.end.column = row.column; - this.end.row = row.row; - } else { - this.end.row = row; - this.end.column = column; - } - }; - this.inside = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isEnd(row, column) || this.isStart(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.insideStart = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isEnd(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.insideEnd = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isStart(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.compare = function(row, column) { - if (!this.isMultiLine()) { - if (row === this.start.row) { - return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0); - }; - } - - if (row < this.start.row) - return -1; - - if (row > this.end.row) - return 1; - - if (this.start.row === row) - return column >= this.start.column ? 0 : -1; - - if (this.end.row === row) - return column <= this.end.column ? 0 : 1; - - return 0; - }; - this.compareStart = function(row, column) { - if (this.start.row == row && this.start.column == column) { - return -1; - } else { - return this.compare(row, column); - } - }; - this.compareEnd = function(row, column) { - if (this.end.row == row && this.end.column == column) { - return 1; - } else { - return this.compare(row, column); - } - }; - this.compareInside = function(row, column) { - if (this.end.row == row && this.end.column == column) { - return 1; - } else if (this.start.row == row && this.start.column == column) { - return -1; - } else { - return this.compare(row, column); - } - }; - this.clipRows = function(firstRow, lastRow) { - if (this.end.row > lastRow) - var end = {row: lastRow + 1, column: 0}; - else if (this.end.row < firstRow) - var end = {row: firstRow, column: 0}; - - if (this.start.row > lastRow) - var start = {row: lastRow + 1, column: 0}; - else if (this.start.row < firstRow) - 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 (cmp == 0) - return this; - else if (cmp == -1) - 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() { - if (this.end.column == 0) - return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0) - else - return new Range(this.start.row, 0, this.end.row, 0) - }; - this.toScreenRange = function(session) { - var screenPosStart = session.documentToScreenPosition(this.start); - var 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/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) { - - -var oop = require("./lib/oop"); -var EventEmitter = require("./lib/event_emitter").EventEmitter; - -var Anchor = exports.Anchor = function(doc, row, column) { - this.$onChange = this.onChange.bind(this); - this.attach(doc); - - if (typeof column == "undefined") - this.setPosition(row.row, row.column); - else - this.setPosition(row, column); -}; - -(function() { - - oop.implement(this, EventEmitter); - this.getPosition = function() { - return this.$clipPositionToDocument(this.row, this.column); - }; - this.getDocument = function() { - return this.document; - }; - this.onChange = function(e) { - var delta = e.data; - var range = delta.range; - - if (range.start.row == range.end.row && range.start.row != this.row) - return; - - if (range.start.row > this.row) - return; - - if (range.start.row == this.row && range.start.column > this.column) - return; - - var row = this.row; - var column = this.column; - var start = range.start; - var end = range.end; - - if (delta.action === "insertText") { - if (start.row === row && start.column <= column) { - if (start.row === end.row) { - column += end.column - start.column; - } else { - column -= start.column; - row += end.row - start.row; - } - } else if (start.row !== end.row && start.row < row) { - row += end.row - start.row; - } - } else if (delta.action === "insertLines") { - if (start.row <= row) { - row += end.row - start.row; - } - } else if (delta.action === "removeText") { - if (start.row === row && start.column < column) { - if (end.column >= column) - column = start.column; - else - column = Math.max(0, column - (end.column - start.column)); - - } else if (start.row !== end.row && start.row < row) { - if (end.row === row) - column = Math.max(0, column - end.column) + start.column; - row -= (end.row - start.row); - } else if (end.row === row) { - row -= end.row - start.row; - column = Math.max(0, column - end.column) + start.column; - } - } else if (delta.action == "removeLines") { - if (start.row <= row) { - if (end.row <= row) - row -= end.row - start.row; - else { - row = start.row; - column = 0; - } - } - } - - this.setPosition(row, column, true); - }; - this.setPosition = function(row, column, noClip) { - var pos; - if (noClip) { - pos = { - row: row, - column: column - }; - } else { - pos = this.$clipPositionToDocument(row, column); - } - - if (this.row == pos.row && this.column == pos.column) - return; - - var old = { - row: this.row, - column: this.column - }; - - this.row = pos.row; - this.column = pos.column; - this._emit("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 = {}; - - if (row >= this.document.getLength()) { - pos.row = Math.max(0, this.document.getLength() - 1); - pos.column = this.document.getLine(pos.row).length; - } - else if (row < 0) { - pos.row = 0; - pos.column = 0; - } - else { - pos.row = row; - pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column)); - } - - if (column < 0) - pos.column = 0; - - return pos; - }; - -}).call(Anchor.prototype); - -}); - -ace.define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) { - - -exports.stringReverse = function(string) { - return string.split("").reverse().join(""); -}; - -exports.stringRepeat = function (string, count) { - var result = ''; - while (count > 0) { - if (count & 1) - result += string; - - if (count >>= 1) - string += string; - } - return result; -}; - -var trimBeginRegexp = /^\s\s*/; -var 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){ - var copy = []; - for (var i=0, l=array.length; i<l; i++) { - if (array[i] && typeof array[i] == "object") - copy[i] = this.copyObject( array[i] ); - else - copy[i] = array[i]; - } - return copy; -}; - -exports.deepCopy = function (obj) { - if (typeof obj != "object") { - return obj; - } - - var copy = obj.constructor(); - for (var key in obj) { - if (typeof obj[key] == "object") { - copy[key] = this.deepCopy(obj[key]); - } else { - copy[key] = obj[key]; - } - } - return copy; -}; - -exports.arrayToMap = function(arr) { - var map = {}; - for (var i=0; i<arr.length; 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; i <= array.length; i++) { - if (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(/</g, "<"); -}; - -exports.getMatchOffsets = function(string, regExp) { - var matches = []; - - string.replace(regExp, function(str) { - matches.push({ - offset: arguments[arguments.length-2], - length: str.length - }); - }); - - return matches; -}; -exports.deferredCall = function(fcn) { - - var timer = null; - var callback = function() { - timer = null; - fcn(); - }; - - var deferred = function(timeout) { - deferred.cancel(); - timer = setTimeout(callback, timeout || 0); - return deferred; - }; - - deferred.schedule = deferred; - - deferred.call = function() { - this.cancel(); - fcn(); - return deferred; - }; - - deferred.cancel = function() { - clearTimeout(timer); - timer = null; - return deferred; - }; - - return deferred; -}; - - -exports.delayedCall = function(fcn, defaultTimeout) { - var timer = null; - var callback = function() { - timer = null; - fcn(); - }; - - var _self = function(timeout) { - timer && clearTimeout(timer); - timer = setTimeout(callback, timeout || defaultTimeout); - }; - - _self.delay = _self; - _self.schedule = function(timeout) { - if (timer == null) - timer = setTimeout(callback, timeout || 0); - }; - - _self.call = function() { - this.cancel(); - fcn(); - }; - - _self.cancel = function() { - timer && clearTimeout(timer); - timer = null; - }; - - _self.isPending = function() { - return timer; - }; - - return _self; -}; -}); - -ace.define('ace/mode/coffee/coffee-script', ['require', 'exports', 'module' , 'ace/mode/coffee/lexer', 'ace/mode/coffee/parser', 'ace/mode/coffee/nodes'], function(require, exports, module) { - - var Lexer = require("./lexer").Lexer; - var parser = require("./parser"); - - var lexer = new Lexer(); - parser.lexer = { - lex: function() { - var tag, token; - token = this.tokens[this.pos++]; - if (token) { - tag = token[0], this.yytext = token[1], this.yylloc = token[2]; - this.yylineno = this.yylloc.first_line; - } else { - tag = ''; - } - return tag; - }, - setInput: function(tokens) { - this.tokens = tokens; - return this.pos = 0; - }, - upcomingInput: function() { - return ""; - } - }; - parser.yy = require('./nodes'); - - exports.parse = function(code) { - return parser.parse(lexer.tokenize(code)); - }; -}); - -ace.define('ace/mode/coffee/lexer', ['require', 'exports', 'module' , 'ace/mode/coffee/rewriter', 'ace/mode/coffee/helpers'], function(require, exports, module) { - - var BOM, BOOL, CALLABLE, CODE, COFFEE_ALIASES, COFFEE_ALIAS_MAP, COFFEE_KEYWORDS, COMMENT, COMPARE, COMPOUND_ASSIGN, HEREDOC, HEREDOC_ILLEGAL, HEREDOC_INDENT, HEREGEX, HEREGEX_OMIT, IDENTIFIER, INDEXABLE, INVERSES, JSTOKEN, JS_FORBIDDEN, JS_KEYWORDS, LINE_BREAK, LINE_CONTINUER, LOGIC, Lexer, MATH, MULTILINER, MULTI_DENT, NOT_REGEX, NOT_SPACED_REGEX, NUMBER, OPERATOR, REGEX, RELATION, RESERVED, Rewriter, SHIFT, SIMPLESTR, STRICT_PROSCRIBED, TRAILING_SPACES, UNARY, WHITESPACE, compact, count, invertLiterate, key, last, locationDataToString, repeat, starts, throwSyntaxError, _ref, _ref1, - __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; - - _ref = require('./rewriter'), Rewriter = _ref.Rewriter, INVERSES = _ref.INVERSES; - - _ref1 = require('./helpers'), count = _ref1.count, starts = _ref1.starts, compact = _ref1.compact, last = _ref1.last, repeat = _ref1.repeat, invertLiterate = _ref1.invertLiterate, locationDataToString = _ref1.locationDataToString, throwSyntaxError = _ref1.throwSyntaxError; - - exports.Lexer = Lexer = (function() { - function Lexer() {} - - Lexer.prototype.tokenize = function(code, opts) { - var consumed, i, tag, _ref2; - if (opts == null) { - opts = {}; - } - this.literate = opts.literate; - this.indent = 0; - this.indebt = 0; - this.outdebt = 0; - this.indents = []; - this.ends = []; - this.tokens = []; - this.chunkLine = opts.line || 0; - this.chunkColumn = opts.column || 0; - code = this.clean(code); - i = 0; - while (this.chunk = code.slice(i)) { - consumed = this.identifierToken() || this.commentToken() || this.whitespaceToken() || this.lineToken() || this.heredocToken() || this.stringToken() || this.numberToken() || this.regexToken() || this.jsToken() || this.literalToken(); - _ref2 = this.getLineAndColumnFromChunk(consumed), this.chunkLine = _ref2[0], this.chunkColumn = _ref2[1]; - i += consumed; - } - this.closeIndentation(); - if (tag = this.ends.pop()) { - this.error("missing " + tag); - } - if (opts.rewrite === false) { - return this.tokens; - } - return (new Rewriter).rewrite(this.tokens); - }; - - Lexer.prototype.clean = function(code) { - if (code.charCodeAt(0) === BOM) { - code = code.slice(1); - } - code = code.replace(/\r/g, '').replace(TRAILING_SPACES, ''); - if (WHITESPACE.test(code)) { - code = "\n" + code; - this.chunkLine--; - } - if (this.literate) { - code = invertLiterate(code); - } - return code; - }; - - Lexer.prototype.identifierToken = function() { - var colon, colonOffset, forcedIdentifier, id, idLength, input, match, poppedToken, prev, tag, tagToken, _ref2, _ref3, _ref4; - if (!(match = IDENTIFIER.exec(this.chunk))) { - return 0; - } - input = match[0], id = match[1], colon = match[2]; - idLength = id.length; - poppedToken = void 0; - if (id === 'own' && this.tag() === 'FOR') { - this.token('OWN', id); - return id.length; - } - forcedIdentifier = colon || (prev = last(this.tokens)) && (((_ref2 = prev[0]) === '.' || _ref2 === '?.' || _ref2 === '::' || _ref2 === '?::') || !prev.spaced && prev[0] === '@'); - tag = 'IDENTIFIER'; - if (!forcedIdentifier && (__indexOf.call(JS_KEYWORDS, id) >= 0 || __indexOf.call(COFFEE_KEYWORDS, id) >= 0)) { - tag = id.toUpperCase(); - if (tag === 'WHEN' && (_ref3 = this.tag(), __indexOf.call(LINE_BREAK, _ref3) >= 0)) { - tag = 'LEADING_WHEN'; - } else if (tag === 'FOR') { - this.seenFor = true; - } else if (tag === 'UNLESS') { - tag = 'IF'; - } else if (__indexOf.call(UNARY, tag) >= 0) { - tag = 'UNARY'; - } else if (__indexOf.call(RELATION, tag) >= 0) { - if (tag !== 'INSTANCEOF' && this.seenFor) { - tag = 'FOR' + tag; - this.seenFor = false; - } else { - tag = 'RELATION'; - if (this.value() === '!') { - poppedToken = this.tokens.pop(); - id = '!' + id; - } - } - } - } - if (__indexOf.call(JS_FORBIDDEN, id) >= 0) { - if (forcedIdentifier) { - tag = 'IDENTIFIER'; - id = new String(id); - id.reserved = true; - } else if (__indexOf.call(RESERVED, id) >= 0) { - this.error("reserved word \"" + id + "\""); - } - } - if (!forcedIdentifier) { - if (__indexOf.call(COFFEE_ALIASES, id) >= 0) { - id = COFFEE_ALIAS_MAP[id]; - } - tag = (function() { - switch (id) { - case '!': - return 'UNARY'; - case '==': - case '!=': - return 'COMPARE'; - case '&&': - case '||': - return 'LOGIC'; - case 'true': - case 'false': - return 'BOOL'; - case 'break': - case 'continue': - return 'STATEMENT'; - default: - return tag; - } - })(); - } - tagToken = this.token(tag, id, 0, idLength); - if (poppedToken) { - _ref4 = [poppedToken[2].first_line, poppedToken[2].first_column], tagToken[2].first_line = _ref4[0], tagToken[2].first_column = _ref4[1]; - } - if (colon) { - colonOffset = input.lastIndexOf(':'); - this.token(':', ':', colonOffset, colon.length); - } - return input.length; - }; - - Lexer.prototype.numberToken = function() { - var binaryLiteral, lexedLength, match, number, octalLiteral; - if (!(match = NUMBER.exec(this.chunk))) { - return 0; - } - number = match[0]; - if (/^0[BOX]/.test(number)) { - this.error("radix prefix '" + number + "' must be lowercase"); - } else if (/E/.test(number) && !/^0x/.test(number)) { - this.error("exponential notation '" + number + "' must be indicated with a lowercase 'e'"); - } else if (/^0\d*[89]/.test(number)) { - this.error("decimal literal '" + number + "' must not be prefixed with '0'"); - } else if (/^0\d+/.test(number)) { - this.error("octal literal '" + number + "' must be prefixed with '0o'"); - } - lexedLength = number.length; - if (octalLiteral = /^0o([0-7]+)/.exec(number)) { - number = '0x' + parseInt(octalLiteral[1], 8).toString(16); - } - if (binaryLiteral = /^0b([01]+)/.exec(number)) { - number = '0x' + parseInt(binaryLiteral[1], 2).toString(16); - } - this.token('NUMBER', number, 0, lexedLength); - return lexedLength; - }; - - Lexer.prototype.stringToken = function() { - var match, octalEsc, string; - switch (this.chunk.charAt(0)) { - case "'": - if (!(match = SIMPLESTR.exec(this.chunk))) { - return 0; - } - string = match[0]; - this.token('STRING', string.replace(MULTILINER, '\\\n'), 0, string.length); - break; - case '"': - if (!(string = this.balancedString(this.chunk, '"'))) { - return 0; - } - if (0 < string.indexOf('#{', 1)) { - this.interpolateString(string.slice(1, -1), { - strOffset: 1, - lexedLength: string.length - }); - } else { - this.token('STRING', this.escapeLines(string, 0, string.length)); - } - break; - default: - return 0; - } - if (octalEsc = /^(?:\\.|[^\\])*\\(?:0[0-7]|[1-7])/.test(string)) { - this.error("octal escape sequences " + string + " are not allowed"); - } - return string.length; - }; - - Lexer.prototype.heredocToken = function() { - var doc, heredoc, match, quote; - if (!(match = HEREDOC.exec(this.chunk))) { - return 0; - } - heredoc = match[0]; - quote = heredoc.charAt(0); - doc = this.sanitizeHeredoc(match[2], { - quote: quote, - indent: null - }); - if (quote === '"' && 0 <= doc.indexOf('#{')) { - this.interpolateString(doc, { - heredoc: true, - strOffset: 3, - lexedLength: heredoc.length - }); - } else { - this.token('STRING', this.makeString(doc, quote, true), 0, heredoc.length); - } - return heredoc.length; - }; - - Lexer.prototype.commentToken = function() { - var comment, here, match; - if (!(match = this.chunk.match(COMMENT))) { - return 0; - } - comment = match[0], here = match[1]; - if (here) { - this.token('HERECOMMENT', this.sanitizeHeredoc(here, { - herecomment: true, - indent: repeat(' ', this.indent) - }), 0, comment.length); - } - return comment.length; - }; - - Lexer.prototype.jsToken = function() { - var match, script; - if (!(this.chunk.charAt(0) === '`' && (match = JSTOKEN.exec(this.chunk)))) { - return 0; - } - this.token('JS', (script = match[0]).slice(1, -1), 0, script.length); - return script.length; - }; - - Lexer.prototype.regexToken = function() { - var flags, length, match, prev, regex, _ref2, _ref3; - if (this.chunk.charAt(0) !== '/') { - return 0; - } - if (match = HEREGEX.exec(this.chunk)) { - length = this.heregexToken(match); - return length; - } - prev = last(this.tokens); - if (prev && (_ref2 = prev[0], __indexOf.call((prev.spaced ? NOT_REGEX : NOT_SPACED_REGEX), _ref2) >= 0)) { - return 0; - } - if (!(match = REGEX.exec(this.chunk))) { - return 0; - } - _ref3 = match, match = _ref3[0], regex = _ref3[1], flags = _ref3[2]; - if (regex.slice(0, 2) === '/*') { - this.error('regular expressions cannot begin with `*`'); - } - if (regex === '//') { - regex = '/(?:)/'; - } - this.token('REGEX', "" + regex + flags, 0, match.length); - return match.length; - }; - - Lexer.prototype.heregexToken = function(match) { - var body, flags, flagsOffset, heregex, plusToken, prev, re, tag, token, tokens, value, _i, _len, _ref2, _ref3, _ref4; - heregex = match[0], body = match[1], flags = match[2]; - if (0 > body.indexOf('#{')) { - re = body.replace(HEREGEX_OMIT, '').replace(/\//g, '\\/'); - if (re.match(/^\*/)) { - this.error('regular expressions cannot begin with `*`'); - } - this.token('REGEX', "/" + (re || '(?:)') + "/" + flags, 0, heregex.length); - return heregex.length; - } - this.token('IDENTIFIER', 'RegExp', 0, 0); - this.token('CALL_START', '(', 0, 0); - tokens = []; - _ref2 = this.interpolateString(body, { - regex: true - }); - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - token = _ref2[_i]; - tag = token[0], value = token[1]; - if (tag === 'TOKENS') { - tokens.push.apply(tokens, value); - } else if (tag === 'NEOSTRING') { - if (!(value = value.replace(HEREGEX_OMIT, ''))) { - continue; - } - value = value.replace(/\\/g, '\\\\'); - token[0] = 'STRING'; - token[1] = this.makeString(value, '"', true); - tokens.push(token); - } else { - this.error("Unexpected " + tag); - } - prev = last(this.tokens); - plusToken = ['+', '+']; - plusToken[2] = prev[2]; - tokens.push(plusToken); - } - tokens.pop(); - if (((_ref3 = tokens[0]) != null ? _ref3[0] : void 0) !== 'STRING') { - this.token('STRING', '""', 0, 0); - this.token('+', '+', 0, 0); - } - (_ref4 = this.tokens).push.apply(_ref4, tokens); - if (flags) { - flagsOffset = heregex.lastIndexOf(flags); - this.token(',', ',', flagsOffset, 0); - this.token('STRING', '"' + flags + '"', flagsOffset, flags.length); - } - this.token(')', ')', heregex.length - 1, 0); - return heregex.length; - }; - - Lexer.prototype.lineToken = function() { - var diff, indent, match, noNewlines, size; - if (!(match = MULTI_DENT.exec(this.chunk))) { - return 0; - } - indent = match[0]; - this.seenFor = false; - size = indent.length - 1 - indent.lastIndexOf('\n'); - noNewlines = this.unfinished(); - if (size - this.indebt === this.indent) { - if (noNewlines) { - this.suppressNewlines(); - } else { - this.newlineToken(0); - } - return indent.length; - } - if (size > this.indent) { - if (noNewlines) { - this.indebt = size - this.indent; - this.suppressNewlines(); - return indent.length; - } - diff = size - this.indent + this.outdebt; - this.token('INDENT', diff, indent.length - size, size); - this.indents.push(diff); - this.ends.push('OUTDENT'); - this.outdebt = this.indebt = 0; - } else { - this.indebt = 0; - this.outdentToken(this.indent - size, noNewlines, indent.length); - } - this.indent = size; - return indent.length; - }; - - Lexer.prototype.outdentToken = function(moveOut, noNewlines, outdentLength) { - var dent, len; - while (moveOut > 0) { - len = this.indents.length - 1; - if (this.indents[len] === void 0) { - moveOut = 0; - } else if (this.indents[len] === this.outdebt) { - moveOut -= this.outdebt; - this.outdebt = 0; - } else if (this.indents[len] < this.outdebt) { - this.outdebt -= this.indents[len]; - moveOut -= this.indents[len]; - } else { - dent = this.indents.pop() + this.outdebt; - moveOut -= dent; - this.outdebt = 0; - this.pair('OUTDENT'); - this.token('OUTDENT', dent, 0, outdentLength); - } - } - if (dent) { - this.outdebt -= moveOut; - } - while (this.value() === ';') { - this.tokens.pop(); - } - if (!(this.tag() === 'TERMINATOR' || noNewlines)) { - this.token('TERMINATOR', '\n', outdentLength, 0); - } - return this; - }; - - Lexer.prototype.whitespaceToken = function() { - var match, nline, prev; - if (!((match = WHITESPACE.exec(this.chunk)) || (nline = this.chunk.charAt(0) === '\n'))) { - return 0; - } - prev = last(this.tokens); - if (prev) { - prev[match ? 'spaced' : 'newLine'] = true; - } - if (match) { - return match[0].length; - } else { - return 0; - } - }; - - Lexer.prototype.newlineToken = function(offset) { - while (this.value() === ';') { - this.tokens.pop(); - } - if (this.tag() !== 'TERMINATOR') { - this.token('TERMINATOR', '\n', offset, 0); - } - return this; - }; - - Lexer.prototype.suppressNewlines = function() { - if (this.value() === '\\') { - this.tokens.pop(); - } - return this; - }; - - Lexer.prototype.literalToken = function() { - var match, prev, tag, value, _ref2, _ref3, _ref4, _ref5; - if (match = OPERATOR.exec(this.chunk)) { - value = match[0]; - if (CODE.test(value)) { - this.tagParameters(); - } - } else { - value = this.chunk.charAt(0); - } - tag = value; - prev = last(this.tokens); - if (value === '=' && prev) { - if (!prev[1].reserved && (_ref2 = prev[1], __indexOf.call(JS_FORBIDDEN, _ref2) >= 0)) { - this.error("reserved word \"" + (this.value()) + "\" can't be assigned"); - } - if ((_ref3 = prev[1]) === '||' || _ref3 === '&&') { - prev[0] = 'COMPOUND_ASSIGN'; - prev[1] += '='; - return value.length; - } - } - if (value === ';') { - this.seenFor = false; - tag = 'TERMINATOR'; - } else if (__indexOf.call(MATH, value) >= 0) { - tag = 'MATH'; - } else if (__indexOf.call(COMPARE, value) >= 0) { - tag = 'COMPARE'; - } else if (__indexOf.call(COMPOUND_ASSIGN, value) >= 0) { - tag = 'COMPOUND_ASSIGN'; - } else if (__indexOf.call(UNARY, value) >= 0) { - tag = 'UNARY'; - } else if (__indexOf.call(SHIFT, value) >= 0) { - tag = 'SHIFT'; - } else if (__indexOf.call(LOGIC, value) >= 0 || value === '?' && (prev != null ? prev.spaced : void 0)) { - tag = 'LOGIC'; - } else if (prev && !prev.spaced) { - if (value === '(' && (_ref4 = prev[0], __indexOf.call(CALLABLE, _ref4) >= 0)) { - if (prev[0] === '?') { - prev[0] = 'FUNC_EXIST'; - } - tag = 'CALL_START'; - } else if (value === '[' && (_ref5 = prev[0], __indexOf.call(INDEXABLE, _ref5) >= 0)) { - tag = 'INDEX_START'; - switch (prev[0]) { - case '?': - prev[0] = 'INDEX_SOAK'; - } - } - } - switch (value) { - case '(': - case '{': - case '[': - this.ends.push(INVERSES[value]); - break; - case ')': - case '}': - case ']': - this.pair(value); - } - this.token(tag, value); - return value.length; - }; - - Lexer.prototype.sanitizeHeredoc = function(doc, options) { - var attempt, herecomment, indent, match, _ref2; - indent = options.indent, herecomment = options.herecomment; - if (herecomment) { - if (HEREDOC_ILLEGAL.test(doc)) { - this.error("block comment cannot contain \"*/\", starting"); - } - if (doc.indexOf('\n') < 0) { - return doc; - } - } else { - while (match = HEREDOC_INDENT.exec(doc)) { - attempt = match[1]; - if (indent === null || (0 < (_ref2 = attempt.length) && _ref2 < indent.length)) { - indent = attempt; - } - } - } - if (indent) { - doc = doc.replace(RegExp("\\n" + indent, "g"), '\n'); - } - if (!herecomment) { - doc = doc.replace(/^\n/, ''); - } - return doc; - }; - - Lexer.prototype.tagParameters = function() { - var i, stack, tok, tokens; - if (this.tag() !== ')') { - return this; - } - stack = []; - tokens = this.tokens; - i = tokens.length; - tokens[--i][0] = 'PARAM_END'; - while (tok = tokens[--i]) { - switch (tok[0]) { - case ')': - stack.push(tok); - break; - case '(': - case 'CALL_START': - if (stack.length) { - stack.pop(); - } else if (tok[0] === '(') { - tok[0] = 'PARAM_START'; - return this; - } else { - return this; - } - } - } - return this; - }; - - Lexer.prototype.closeIndentation = function() { - return this.outdentToken(this.indent); - }; - - Lexer.prototype.balancedString = function(str, end) { - var continueCount, i, letter, match, prev, stack, _i, _ref2; - continueCount = 0; - stack = [end]; - for (i = _i = 1, _ref2 = str.length; 1 <= _ref2 ? _i < _ref2 : _i > _ref2; i = 1 <= _ref2 ? ++_i : --_i) { - if (continueCount) { - --continueCount; - continue; - } - switch (letter = str.charAt(i)) { - case '\\': - ++continueCount; - continue; - case end: - stack.pop(); - if (!stack.length) { - return str.slice(0, +i + 1 || 9e9); - } - end = stack[stack.length - 1]; - continue; - } - if (end === '}' && (letter === '"' || letter === "'")) { - stack.push(end = letter); - } else if (end === '}' && letter === '/' && (match = HEREGEX.exec(str.slice(i)) || REGEX.exec(str.slice(i)))) { - continueCount += match[0].length - 1; - } else if (end === '}' && letter === '{') { - stack.push(end = '}'); - } else if (end === '"' && prev === '#' && letter === '{') { - stack.push(end = '}'); - } - prev = letter; - } - return this.error("missing " + (stack.pop()) + ", starting"); - }; - - Lexer.prototype.interpolateString = function(str, options) { - var column, expr, heredoc, i, inner, interpolated, len, letter, lexedLength, line, locationToken, nested, offsetInChunk, pi, plusToken, popped, regex, rparen, strOffset, tag, token, tokens, value, _i, _len, _ref2, _ref3, _ref4; - if (options == null) { - options = {}; - } - heredoc = options.heredoc, regex = options.regex, offsetInChunk = options.offsetInChunk, strOffset = options.strOffset, lexedLength = options.lexedLength; - offsetInChunk = offsetInChunk || 0; - strOffset = strOffset || 0; - lexedLength = lexedLength || str.length; - if (heredoc && str.length > 0 && str[0] === '\n') { - str = str.slice(1); - strOffset++; - } - tokens = []; - pi = 0; - i = -1; - while (letter = str.charAt(i += 1)) { - if (letter === '\\') { - i += 1; - continue; - } - if (!(letter === '#' && str.charAt(i + 1) === '{' && (expr = this.balancedString(str.slice(i + 1), '}')))) { - continue; - } - if (pi < i) { - tokens.push(this.makeToken('NEOSTRING', str.slice(pi, i), strOffset + pi)); - } - inner = expr.slice(1, -1); - if (inner.length) { - _ref2 = this.getLineAndColumnFromChunk(strOffset + i + 1), line = _ref2[0], column = _ref2[1]; - nested = new Lexer().tokenize(inner, { - line: line, - column: column, - rewrite: false - }); - popped = nested.pop(); - if (((_ref3 = nested[0]) != null ? _ref3[0] : void 0) === 'TERMINATOR') { - popped = nested.shift(); - } - if (len = nested.length) { - if (len > 1) { - nested.unshift(this.makeToken('(', '(', strOffset + i + 1, 0)); - nested.push(this.makeToken(')', ')', strOffset + i + 1 + inner.length, 0)); - } - tokens.push(['TOKENS', nested]); - } - } - i += expr.length; - pi = i + 1; - } - if ((i > pi && pi < str.length)) { - tokens.push(this.makeToken('NEOSTRING', str.slice(pi), strOffset + pi)); - } - if (regex) { - return tokens; - } - if (!tokens.length) { - return this.token('STRING', '""', offsetInChunk, lexedLength); - } - if (tokens[0][0] !== 'NEOSTRING') { - tokens.unshift(this.makeToken('NEOSTRING', '', offsetInChunk)); - } - if (interpolated = tokens.length > 1) { - this.token('(', '(', offsetInChunk, 0); - } - for (i = _i = 0, _len = tokens.length; _i < _len; i = ++_i) { - token = tokens[i]; - tag = token[0], value = token[1]; - if (i) { - if (i) { - plusToken = this.token('+', '+'); - } - locationToken = tag === 'TOKENS' ? value[0] : token; - plusToken[2] = { - first_line: locationToken[2].first_line, - first_column: locationToken[2].first_column, - last_line: locationToken[2].first_line, - last_column: locationToken[2].first_column - }; - } - if (tag === 'TOKENS') { - (_ref4 = this.tokens).push.apply(_ref4, value); - } else if (tag === 'NEOSTRING') { - token[0] = 'STRING'; - token[1] = this.makeString(value, '"', heredoc); - this.tokens.push(token); - } else { - this.error("Unexpected " + tag); - } - } - if (interpolated) { - rparen = this.makeToken(')', ')', offsetInChunk + lexedLength, 0); - rparen.stringEnd = true; - this.tokens.push(rparen); - } - return tokens; - }; - - Lexer.prototype.pair = function(tag) { - var size, wanted; - if (tag !== (wanted = last(this.ends))) { - if ('OUTDENT' !== wanted) { - this.error("unmatched " + tag); - } - this.indent -= size = last(this.indents); - this.outdentToken(size, true); - return this.pair(tag); - } - return this.ends.pop(); - }; - - Lexer.prototype.getLineAndColumnFromChunk = function(offset) { - var column, lineCount, lines, string; - if (offset === 0) { - return [this.chunkLine, this.chunkColumn]; - } - if (offset >= this.chunk.length) { - string = this.chunk; - } else { - string = this.chunk.slice(0, +(offset - 1) + 1 || 9e9); - } - lineCount = count(string, '\n'); - column = this.chunkColumn; - if (lineCount > 0) { - lines = string.split('\n'); - column = last(lines).length; - } else { - column += string.length; - } - return [this.chunkLine + lineCount, column]; - }; - - Lexer.prototype.makeToken = function(tag, value, offsetInChunk, length) { - var lastCharacter, locationData, token, _ref2, _ref3; - if (offsetInChunk == null) { - offsetInChunk = 0; - } - if (length == null) { - length = value.length; - } - locationData = {}; - _ref2 = this.getLineAndColumnFromChunk(offsetInChunk), locationData.first_line = _ref2[0], locationData.first_column = _ref2[1]; - lastCharacter = Math.max(0, length - 1); - _ref3 = this.getLineAndColumnFromChunk(offsetInChunk + lastCharacter), locationData.last_line = _ref3[0], locationData.last_column = _ref3[1]; - token = [tag, value, locationData]; - return token; - }; - - Lexer.prototype.token = function(tag, value, offsetInChunk, length) { - var token; - token = this.makeToken(tag, value, offsetInChunk, length); - this.tokens.push(token); - return token; - }; - - Lexer.prototype.tag = function(index, tag) { - var tok; - return (tok = last(this.tokens, index)) && (tag ? tok[0] = tag : tok[0]); - }; - - Lexer.prototype.value = function(index, val) { - var tok; - return (tok = last(this.tokens, index)) && (val ? tok[1] = val : tok[1]); - }; - - Lexer.prototype.unfinished = function() { - var _ref2; - return LINE_CONTINUER.test(this.chunk) || ((_ref2 = this.tag()) === '\\' || _ref2 === '.' || _ref2 === '?.' || _ref2 === '?::' || _ref2 === 'UNARY' || _ref2 === 'MATH' || _ref2 === '+' || _ref2 === '-' || _ref2 === 'SHIFT' || _ref2 === 'RELATION' || _ref2 === 'COMPARE' || _ref2 === 'LOGIC' || _ref2 === 'THROW' || _ref2 === 'EXTENDS'); - }; - - Lexer.prototype.escapeLines = function(str, heredoc) { - return str.replace(MULTILINER, heredoc ? '\\n' : ''); - }; - - Lexer.prototype.makeString = function(body, quote, heredoc) { - if (!body) { - return quote + quote; - } - body = body.replace(/\\([\s\S])/g, function(match, contents) { - if (contents === '\n' || contents === quote) { - return contents; - } else { - return match; - } - }); - body = body.replace(RegExp("" + quote, "g"), '\\$&'); - return quote + this.escapeLines(body, heredoc) + quote; - }; - - Lexer.prototype.error = function(message) { - return throwSyntaxError(message, { - first_line: this.chunkLine, - first_column: this.chunkColumn - }); - }; - - return Lexer; - - })(); - - JS_KEYWORDS = ['true', 'false', 'null', 'this', 'new', 'delete', 'typeof', 'in', 'instanceof', 'return', 'throw', 'break', 'continue', 'debugger', 'if', 'else', 'switch', 'for', 'while', 'do', 'try', 'catch', 'finally', 'class', 'extends', 'super']; - - COFFEE_KEYWORDS = ['undefined', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when']; - - COFFEE_ALIAS_MAP = { - and: '&&', - or: '||', - is: '==', - isnt: '!=', - not: '!', - yes: 'true', - no: 'false', - on: 'true', - off: 'false' - }; - - COFFEE_ALIASES = (function() { - var _results; - _results = []; - for (key in COFFEE_ALIAS_MAP) { - _results.push(key); - } - return _results; - })(); - - COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat(COFFEE_ALIASES); - - RESERVED = ['case', 'default', 'function', 'var', 'void', 'with', 'const', 'let', 'enum', 'export', 'import', 'native', '__hasProp', '__extends', '__slice', '__bind', '__indexOf', 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'yield']; - - STRICT_PROSCRIBED = ['arguments', 'eval']; - - JS_FORBIDDEN = JS_KEYWORDS.concat(RESERVED).concat(STRICT_PROSCRIBED); - - exports.RESERVED = RESERVED.concat(JS_KEYWORDS).concat(COFFEE_KEYWORDS).concat(STRICT_PROSCRIBED); - - exports.STRICT_PROSCRIBED = STRICT_PROSCRIBED; - - BOM = 65279; - - IDENTIFIER = /^([$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)([^\n\S]*:(?!:))?/; - - NUMBER = /^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i; - - HEREDOC = /^("""|''')([\s\S]*?)(?:\n[^\n\S]*)?\1/; - - OPERATOR = /^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?(\.|::)|\.{2,3})/; - - WHITESPACE = /^[^\n\S]+/; - - COMMENT = /^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)$)|^(?:\s*#(?!##[^#]).*)+/; - - CODE = /^[-=]>/; - - MULTI_DENT = /^(?:\n[^\n\S]*)+/; - - SIMPLESTR = /^'[^\\']*(?:\\.[^\\']*)*'/; - - JSTOKEN = /^`[^\\`]*(?:\\.[^\\`]*)*`/; - - REGEX = /^(\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/)([imgy]{0,4})(?!\w)/; - - HEREGEX = /^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/; - - HEREGEX_OMIT = /\s+(?:#.*)?/g; - - MULTILINER = /\n/g; - - HEREDOC_INDENT = /\n+([^\n\S]*)/g; - - HEREDOC_ILLEGAL = /\*\//; - - LINE_CONTINUER = /^\s*(?:,|\??\.(?![.\d])|::)/; - - TRAILING_SPACES = /\s+$/; - - COMPOUND_ASSIGN = ['-=', '+=', '/=', '*=', '%=', '||=', '&&=', '?=', '<<=', '>>=', '>>>=', '&=', '^=', '|=']; - - UNARY = ['!', '~', 'NEW', 'TYPEOF', 'DELETE', 'DO']; - - LOGIC = ['&&', '||', '&', '|', '^']; - - SHIFT = ['<<', '>>', '>>>']; - - COMPARE = ['==', '!=', '<', '>', '<=', '>=']; - - MATH = ['*', '/', '%']; - - RELATION = ['IN', 'OF', 'INSTANCEOF']; - - BOOL = ['TRUE', 'FALSE']; - - NOT_REGEX = ['NUMBER', 'REGEX', 'BOOL', 'NULL', 'UNDEFINED', '++', '--']; - - NOT_SPACED_REGEX = NOT_REGEX.concat(')', '}', 'THIS', 'IDENTIFIER', 'STRING', ']'); - - CALLABLE = ['IDENTIFIER', 'STRING', 'REGEX', ')', ']', '}', '?', '::', '@', 'THIS', 'SUPER']; - - INDEXABLE = CALLABLE.concat('NUMBER', 'BOOL', 'NULL', 'UNDEFINED'); - - LINE_BREAK = ['INDENT', 'OUTDENT', 'TERMINATOR']; - - -}); - -ace.define('ace/mode/coffee/rewriter', ['require', 'exports', 'module' ], function(require, exports, module) { - - var BALANCED_PAIRS, EXPRESSION_CLOSE, EXPRESSION_END, EXPRESSION_START, IMPLICIT_CALL, IMPLICIT_END, IMPLICIT_FUNC, IMPLICIT_UNSPACED_CALL, INVERSES, LINEBREAKS, SINGLE_CLOSERS, SINGLE_LINERS, generate, left, rite, _i, _len, _ref, - __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, - __slice = [].slice; - - generate = function(tag, value) { - var tok; - tok = [tag, value]; - tok.generated = true; - return tok; - }; - - exports.Rewriter = (function() { - function Rewriter() {} - - Rewriter.prototype.rewrite = function(tokens) { - this.tokens = tokens; - this.removeLeadingNewlines(); - this.removeMidExpressionNewlines(); - this.closeOpenCalls(); - this.closeOpenIndexes(); - this.addImplicitIndentation(); - this.tagPostfixConditionals(); - this.addImplicitBracesAndParens(); - this.addLocationDataToGeneratedTokens(); - return this.tokens; - }; - - Rewriter.prototype.scanTokens = function(block) { - var i, token, tokens; - tokens = this.tokens; - i = 0; - while (token = tokens[i]) { - i += block.call(this, token, i, tokens); - } - return true; - }; - - Rewriter.prototype.detectEnd = function(i, condition, action) { - var levels, token, tokens, _ref, _ref1; - tokens = this.tokens; - levels = 0; - while (token = tokens[i]) { - if (levels === 0 && condition.call(this, token, i)) { - return action.call(this, token, i); - } - if (!token || levels < 0) { - return action.call(this, token, i - 1); - } - if (_ref = token[0], __indexOf.call(EXPRESSION_START, _ref) >= 0) { - levels += 1; - } else if (_ref1 = token[0], __indexOf.call(EXPRESSION_END, _ref1) >= 0) { - levels -= 1; - } - i += 1; - } - return i - 1; - }; - - Rewriter.prototype.removeLeadingNewlines = function() { - var i, tag, _i, _len, _ref; - _ref = this.tokens; - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - tag = _ref[i][0]; - if (tag !== 'TERMINATOR') { - break; - } - } - if (i) { - return this.tokens.splice(0, i); - } - }; - - Rewriter.prototype.removeMidExpressionNewlines = function() { - return this.scanTokens(function(token, i, tokens) { - var _ref; - if (!(token[0] === 'TERMINATOR' && (_ref = this.tag(i + 1), __indexOf.call(EXPRESSION_CLOSE, _ref) >= 0))) { - return 1; - } - tokens.splice(i, 1); - return 0; - }); - }; - - Rewriter.prototype.closeOpenCalls = function() { - var action, condition; - condition = function(token, i) { - var _ref; - return ((_ref = token[0]) === ')' || _ref === 'CALL_END') || token[0] === 'OUTDENT' && this.tag(i - 1) === ')'; - }; - action = function(token, i) { - return this.tokens[token[0] === 'OUTDENT' ? i - 1 : i][0] = 'CALL_END'; - }; - return this.scanTokens(function(token, i) { - if (token[0] === 'CALL_START') { - this.detectEnd(i + 1, condition, action); - } - return 1; - }); - }; - - Rewriter.prototype.closeOpenIndexes = function() { - var action, condition; - condition = function(token, i) { - var _ref; - return (_ref = token[0]) === ']' || _ref === 'INDEX_END'; - }; - action = function(token, i) { - return token[0] = 'INDEX_END'; - }; - return this.scanTokens(function(token, i) { - if (token[0] === 'INDEX_START') { - this.detectEnd(i + 1, condition, action); - } - return 1; - }); - }; - - Rewriter.prototype.matchTags = function() { - var fuzz, i, j, pattern, _i, _ref, _ref1; - i = arguments[0], pattern = 2 <= arguments.length ? __slice.call(arguments, 1) : []; - fuzz = 0; - for (j = _i = 0, _ref = pattern.length; 0 <= _ref ? _i < _ref : _i > _ref; j = 0 <= _ref ? ++_i : --_i) { - while (this.tag(i + j + fuzz) === 'HERECOMMENT') { - fuzz += 2; - } - if (pattern[j] == null) { - continue; - } - if (typeof pattern[j] === 'string') { - pattern[j] = [pattern[j]]; - } - if (_ref1 = this.tag(i + j + fuzz), __indexOf.call(pattern[j], _ref1) < 0) { - return false; - } - } - return true; - }; - - Rewriter.prototype.looksObjectish = function(j) { - return this.matchTags(j, '@', null, ':') || this.matchTags(j, null, ':'); - }; - - Rewriter.prototype.findTagsBackwards = function(i, tags) { - var backStack, _ref, _ref1, _ref2, _ref3, _ref4, _ref5; - backStack = []; - while (i >= 0 && (backStack.length || (_ref2 = this.tag(i), __indexOf.call(tags, _ref2) < 0) && ((_ref3 = this.tag(i), __indexOf.call(EXPRESSION_START, _ref3) < 0) || this.tokens[i].generated) && (_ref4 = this.tag(i), __indexOf.call(LINEBREAKS, _ref4) < 0))) { - if (_ref = this.tag(i), __indexOf.call(EXPRESSION_END, _ref) >= 0) { - backStack.push(this.tag(i)); - } - if ((_ref1 = this.tag(i), __indexOf.call(EXPRESSION_START, _ref1) >= 0) && backStack.length) { - backStack.pop(); - } - i -= 1; - } - return _ref5 = this.tag(i), __indexOf.call(tags, _ref5) >= 0; - }; - - Rewriter.prototype.addImplicitBracesAndParens = function() { - var stack; - stack = []; - return this.scanTokens(function(token, i, tokens) { - var endImplicitCall, endImplicitObject, forward, inImplicit, inImplicitCall, inImplicitControl, inImplicitObject, nextTag, offset, prevTag, s, sameLine, stackIdx, stackTag, stackTop, startIdx, startImplicitCall, startImplicitObject, startsLine, tag, _ref, _ref1, _ref2, _ref3, _ref4, _ref5; - tag = token[0]; - prevTag = (i > 0 ? tokens[i - 1] : [])[0]; - nextTag = (i < tokens.length - 1 ? tokens[i + 1] : [])[0]; - stackTop = function() { - return stack[stack.length - 1]; - }; - startIdx = i; - forward = function(n) { - return i - startIdx + n; - }; - inImplicit = function() { - var _ref, _ref1; - return (_ref = stackTop()) != null ? (_ref1 = _ref[2]) != null ? _ref1.ours : void 0 : void 0; - }; - inImplicitCall = function() { - var _ref; - return inImplicit() && ((_ref = stackTop()) != null ? _ref[0] : void 0) === '('; - }; - inImplicitObject = function() { - var _ref; - return inImplicit() && ((_ref = stackTop()) != null ? _ref[0] : void 0) === '{'; - }; - inImplicitControl = function() { - var _ref; - return inImplicit && ((_ref = stackTop()) != null ? _ref[0] : void 0) === 'CONTROL'; - }; - startImplicitCall = function(j) { - var idx; - idx = j != null ? j : i; - stack.push([ - '(', idx, { - ours: true - } - ]); - tokens.splice(idx, 0, generate('CALL_START', '(')); - if (j == null) { - return i += 1; - } - }; - endImplicitCall = function() { - stack.pop(); - tokens.splice(i, 0, generate('CALL_END', ')')); - return i += 1; - }; - startImplicitObject = function(j, startsLine) { - var idx; - if (startsLine == null) { - startsLine = true; - } - idx = j != null ? j : i; - stack.push([ - '{', idx, { - sameLine: true, - startsLine: startsLine, - ours: true - } - ]); - tokens.splice(idx, 0, generate('{', generate(new String('{')))); - if (j == null) { - return i += 1; - } - }; - endImplicitObject = function(j) { - j = j != null ? j : i; - stack.pop(); - tokens.splice(j, 0, generate('}', '}')); - return i += 1; - }; - if (inImplicitCall() && (tag === 'IF' || tag === 'TRY' || tag === 'FINALLY' || tag === 'CATCH' || tag === 'CLASS' || tag === 'SWITCH')) { - stack.push([ - 'CONTROL', i, { - ours: true - } - ]); - return forward(1); - } - if (tag === 'INDENT' && inImplicit()) { - if (prevTag !== '=>' && prevTag !== '->' && prevTag !== '[' && prevTag !== '(' && prevTag !== ',' && prevTag !== '{' && prevTag !== 'TRY' && prevTag !== 'ELSE' && prevTag !== '=') { - while (inImplicitCall()) { - endImplicitCall(); - } - } - if (inImplicitControl()) { - stack.pop(); - } - stack.push([tag, i]); - return forward(1); - } - if (__indexOf.call(EXPRESSION_START, tag) >= 0) { - stack.push([tag, i]); - return forward(1); - } - if (__indexOf.call(EXPRESSION_END, tag) >= 0) { - while (inImplicit()) { - if (inImplicitCall()) { - endImplicitCall(); - } else if (inImplicitObject()) { - endImplicitObject(); - } else { - stack.pop(); - } - } - stack.pop(); - } - if ((__indexOf.call(IMPLICIT_FUNC, tag) >= 0 && token.spaced && !token.stringEnd || tag === '?' && i > 0 && !tokens[i - 1].spaced) && (__indexOf.call(IMPLICIT_CALL, nextTag) >= 0 || __indexOf.call(IMPLICIT_UNSPACED_CALL, nextTag) >= 0 && !((_ref = tokens[i + 1]) != null ? _ref.spaced : void 0) && !((_ref1 = tokens[i + 1]) != null ? _ref1.newLine : void 0))) { - if (tag === '?') { - tag = token[0] = 'FUNC_EXIST'; - } - startImplicitCall(i + 1); - return forward(2); - } - if (__indexOf.call(IMPLICIT_FUNC, tag) >= 0 && this.matchTags(i + 1, 'INDENT', null, ':') && !this.findTagsBackwards(i, ['CLASS', 'EXTENDS', 'IF', 'CATCH', 'SWITCH', 'LEADING_WHEN', 'FOR', 'WHILE', 'UNTIL'])) { - startImplicitCall(i + 1); - stack.push(['INDENT', i + 2]); - return forward(3); - } - if (tag === ':') { - if (this.tag(i - 2) === '@') { - s = i - 2; - } else { - s = i - 1; - } - while (this.tag(s - 2) === 'HERECOMMENT') { - s -= 2; - } - startsLine = s === 0 || (_ref2 = this.tag(s - 1), __indexOf.call(LINEBREAKS, _ref2) >= 0) || tokens[s - 1].newLine; - if (stackTop()) { - _ref3 = stackTop(), stackTag = _ref3[0], stackIdx = _ref3[1]; - if ((stackTag === '{' || stackTag === 'INDENT' && this.tag(stackIdx - 1) === '{') && (startsLine || this.tag(s - 1) === ',' || this.tag(s - 1) === '{')) { - return forward(1); - } - } - startImplicitObject(s, !!startsLine); - return forward(2); - } - if (prevTag === 'OUTDENT' && inImplicitCall() && (tag === '.' || tag === '?.' || tag === '::' || tag === '?::')) { - endImplicitCall(); - return forward(1); - } - if (inImplicitObject() && __indexOf.call(LINEBREAKS, tag) >= 0) { - stackTop()[2].sameLine = false; - } - if (__indexOf.call(IMPLICIT_END, tag) >= 0) { - while (inImplicit()) { - _ref4 = stackTop(), stackTag = _ref4[0], stackIdx = _ref4[1], (_ref5 = _ref4[2], sameLine = _ref5.sameLine, startsLine = _ref5.startsLine); - if (inImplicitCall() && prevTag !== ',') { - endImplicitCall(); - } else if (inImplicitObject() && sameLine && !startsLine) { - endImplicitObject(); - } else if (inImplicitObject() && tag === 'TERMINATOR' && prevTag !== ',' && !(startsLine && this.looksObjectish(i + 1))) { - endImplicitObject(); - } else { - break; - } - } - } - if (tag === ',' && !this.looksObjectish(i + 1) && inImplicitObject() && (nextTag !== 'TERMINATOR' || !this.looksObjectish(i + 2))) { - offset = nextTag === 'OUTDENT' ? 1 : 0; - while (inImplicitObject()) { - endImplicitObject(i + offset); - } - } - return forward(1); - }); - }; - - Rewriter.prototype.addLocationDataToGeneratedTokens = function() { - return this.scanTokens(function(token, i, tokens) { - var column, line, nextLocation, prevLocation, _ref, _ref1; - if (token[2]) { - return 1; - } - if (!(token.generated || token.explicit)) { - return 1; - } - if (token[0] === '{' && (nextLocation = (_ref = tokens[i + 1]) != null ? _ref[2] : void 0)) { - line = nextLocation.first_line, column = nextLocation.first_column; - } else if (prevLocation = (_ref1 = tokens[i - 1]) != null ? _ref1[2] : void 0) { - line = prevLocation.last_line, column = prevLocation.last_column; - } else { - line = column = 0; - } - token[2] = { - first_line: line, - first_column: column, - last_line: line, - last_column: column - }; - return 1; - }); - }; - - Rewriter.prototype.addImplicitIndentation = function() { - var action, condition, indent, outdent, starter; - starter = indent = outdent = null; - condition = function(token, i) { - var _ref, _ref1; - return token[1] !== ';' && (_ref = token[0], __indexOf.call(SINGLE_CLOSERS, _ref) >= 0) && !(token[0] === 'ELSE' && starter !== 'THEN') && !(((_ref1 = token[0]) === 'CATCH' || _ref1 === 'FINALLY') && (starter === '->' || starter === '=>')); - }; - action = function(token, i) { - return this.tokens.splice((this.tag(i - 1) === ',' ? i - 1 : i), 0, outdent); - }; - return this.scanTokens(function(token, i, tokens) { - var j, tag, _i, _ref, _ref1; - tag = token[0]; - if (tag === 'TERMINATOR' && this.tag(i + 1) === 'THEN') { - tokens.splice(i, 1); - return 0; - } - if (tag === 'ELSE' && this.tag(i - 1) !== 'OUTDENT') { - tokens.splice.apply(tokens, [i, 0].concat(__slice.call(this.indentation()))); - return 2; - } - if (tag === 'CATCH') { - for (j = _i = 1; _i <= 2; j = ++_i) { - if (!((_ref = this.tag(i + j)) === 'OUTDENT' || _ref === 'TERMINATOR' || _ref === 'FINALLY')) { - continue; - } - tokens.splice.apply(tokens, [i + j, 0].concat(__slice.call(this.indentation()))); - return 2 + j; - } - } - if (__indexOf.call(SINGLE_LINERS, tag) >= 0 && this.tag(i + 1) !== 'INDENT' && !(tag === 'ELSE' && this.tag(i + 1) === 'IF')) { - starter = tag; - _ref1 = this.indentation(true), indent = _ref1[0], outdent = _ref1[1]; - if (starter === 'THEN') { - indent.fromThen = true; - } - tokens.splice(i + 1, 0, indent); - this.detectEnd(i + 2, condition, action); - if (tag === 'THEN') { - tokens.splice(i, 1); - } - return 1; - } - return 1; - }); - }; - - Rewriter.prototype.tagPostfixConditionals = function() { - var action, condition, original; - original = null; - condition = function(token, i) { - var prevTag, tag; - tag = token[0]; - prevTag = this.tokens[i - 1][0]; - return tag === 'TERMINATOR' || (tag === 'INDENT' && __indexOf.call(SINGLE_LINERS, prevTag) < 0); - }; - action = function(token, i) { - if (token[0] !== 'INDENT' || (token.generated && !token.fromThen)) { - return original[0] = 'POST_' + original[0]; - } - }; - return this.scanTokens(function(token, i) { - if (token[0] !== 'IF') { - return 1; - } - original = token; - this.detectEnd(i + 1, condition, action); - return 1; - }); - }; - - Rewriter.prototype.indentation = function(implicit) { - var indent, outdent; - if (implicit == null) { - implicit = false; - } - indent = ['INDENT', 2]; - outdent = ['OUTDENT', 2]; - if (implicit) { - indent.generated = outdent.generated = true; - } - if (!implicit) { - indent.explicit = outdent.explicit = true; - } - return [indent, outdent]; - }; - - Rewriter.prototype.generate = generate; - - Rewriter.prototype.tag = function(i) { - var _ref; - return (_ref = this.tokens[i]) != null ? _ref[0] : void 0; - }; - - return Rewriter; - - })(); - - BALANCED_PAIRS = [['(', ')'], ['[', ']'], ['{', '}'], ['INDENT', 'OUTDENT'], ['CALL_START', 'CALL_END'], ['PARAM_START', 'PARAM_END'], ['INDEX_START', 'INDEX_END']]; - - exports.INVERSES = INVERSES = {}; - - EXPRESSION_START = []; - - EXPRESSION_END = []; - - for (_i = 0, _len = BALANCED_PAIRS.length; _i < _len; _i++) { - _ref = BALANCED_PAIRS[_i], left = _ref[0], rite = _ref[1]; - EXPRESSION_START.push(INVERSES[rite] = left); - EXPRESSION_END.push(INVERSES[left] = rite); - } - - EXPRESSION_CLOSE = ['CATCH', 'WHEN', 'ELSE', 'FINALLY'].concat(EXPRESSION_END); - - IMPLICIT_FUNC = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@', 'THIS']; - - IMPLICIT_CALL = ['IDENTIFIER', 'NUMBER', 'STRING', 'JS', 'REGEX', 'NEW', 'PARAM_START', 'CLASS', 'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'NULL', 'UNDEFINED', 'UNARY', 'SUPER', 'THROW', '@', '->', '=>', '[', '(', '{', '--', '++']; - - IMPLICIT_UNSPACED_CALL = ['+', '-']; - - IMPLICIT_END = ['POST_IF', 'FOR', 'WHILE', 'UNTIL', 'WHEN', 'BY', 'LOOP', 'TERMINATOR']; - - SINGLE_LINERS = ['ELSE', '->', '=>', 'TRY', 'FINALLY', 'THEN']; - - SINGLE_CLOSERS = ['TERMINATOR', 'CATCH', 'FINALLY', 'ELSE', 'OUTDENT', 'LEADING_WHEN']; - - LINEBREAKS = ['TERMINATOR', 'INDENT', 'OUTDENT']; - - -}); - -ace.define('ace/mode/coffee/helpers', ['require', 'exports', 'module' ], function(require, exports, module) { - - var buildLocationData, extend, flatten, last, repeat, _ref; - - exports.starts = function(string, literal, start) { - return literal === string.substr(start, literal.length); - }; - - exports.ends = function(string, literal, back) { - var len; - len = literal.length; - return literal === string.substr(string.length - len - (back || 0), len); - }; - - exports.repeat = repeat = function(str, n) { - var res; - res = ''; - while (n > 0) { - if (n & 1) { - res += str; - } - n >>>= 1; - str += str; - } - return res; - }; - - exports.compact = function(array) { - var item, _i, _len, _results; - _results = []; - for (_i = 0, _len = array.length; _i < _len; _i++) { - item = array[_i]; - if (item) { - _results.push(item); - } - } - return _results; - }; - - exports.count = function(string, substr) { - var num, pos; - num = pos = 0; - if (!substr.length) { - return 1 / 0; - } - while (pos = 1 + string.indexOf(substr, pos)) { - num++; - } - return num; - }; - - exports.merge = function(options, overrides) { - return extend(extend({}, options), overrides); - }; - - extend = exports.extend = function(object, properties) { - var key, val; - for (key in properties) { - val = properties[key]; - object[key] = val; - } - return object; - }; - - exports.flatten = flatten = function(array) { - var element, flattened, _i, _len; - flattened = []; - for (_i = 0, _len = array.length; _i < _len; _i++) { - element = array[_i]; - if (element instanceof Array) { - flattened = flattened.concat(flatten(element)); - } else { - flattened.push(element); - } - } - return flattened; - }; - - exports.del = function(obj, key) { - var val; - val = obj[key]; - delete obj[key]; - return val; - }; - - exports.last = last = function(array, back) { - return array[array.length - (back || 0) - 1]; - }; - - exports.some = (_ref = Array.prototype.some) != null ? _ref : function(fn) { - var e, _i, _len; - for (_i = 0, _len = this.length; _i < _len; _i++) { - e = this[_i]; - if (fn(e)) { - return true; - } - } - return false; - }; - - exports.invertLiterate = function(code) { - var line, lines, maybe_code; - maybe_code = true; - lines = (function() { - var _i, _len, _ref1, _results; - _ref1 = code.split('\n'); - _results = []; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - line = _ref1[_i]; - if (maybe_code && /^([ ]{4}|[ ]{0,3}\t)/.test(line)) { - _results.push(line); - } else if (maybe_code = /^\s*$/.test(line)) { - _results.push(line); - } else { - _results.push('# ' + line); - } - } - return _results; - })(); - return lines.join('\n'); - }; - - buildLocationData = function(first, last) { - if (!last) { - return first; - } else { - return { - first_line: first.first_line, - first_column: first.first_column, - last_line: last.last_line, - last_column: last.last_column - }; - } - }; - - exports.addLocationDataFn = function(first, last) { - return function(obj) { - if (((typeof obj) === 'object') && (!!obj['updateLocationDataIfMissing'])) { - obj.updateLocationDataIfMissing(buildLocationData(first, last)); - } - return obj; - }; - }; - - exports.locationDataToString = function(obj) { - var locationData; - if (("2" in obj) && ("first_line" in obj[2])) { - locationData = obj[2]; - } else if ("first_line" in obj) { - locationData = obj; - } - if (locationData) { - return ("" + (locationData.first_line + 1) + ":" + (locationData.first_column + 1) + "-") + ("" + (locationData.last_line + 1) + ":" + (locationData.last_column + 1)); - } else { - return "No location data"; - } - }; - - exports.baseFileName = function(file, stripExt, useWinPathSep) { - var parts, pathSep; - if (stripExt == null) { - stripExt = false; - } - if (useWinPathSep == null) { - useWinPathSep = false; - } - pathSep = useWinPathSep ? /\\|\// : /\//; - parts = file.split(pathSep); - file = parts[parts.length - 1]; - if (!stripExt) { - return file; - } - parts = file.split('.'); - parts.pop(); - if (parts[parts.length - 1] === 'coffee' && parts.length > 1) { - parts.pop(); - } - return parts.join('.'); - }; - - exports.isCoffee = function(file) { - return /\.((lit)?coffee|coffee\.md)$/.test(file); - }; - - exports.isLiterate = function(file) { - return /\.(litcoffee|coffee\.md)$/.test(file); - }; - - exports.throwSyntaxError = function(message, location) { - var error; - if (location.last_line == null) { - location.last_line = location.first_line; - } - if (location.last_column == null) { - location.last_column = location.first_column; - } - error = new SyntaxError(message); - error.location = location; - throw error; - }; - - exports.prettyErrorMessage = function(error, filename, code, useColors) { - var codeLine, colorize, end, first_column, first_line, last_column, last_line, marker, message, start, _ref1; - if (!error.location) { - return error.stack || ("" + error); - } - filename = error.filename || filename; - code = error.code || code; - _ref1 = error.location, first_line = _ref1.first_line, first_column = _ref1.first_column, last_line = _ref1.last_line, last_column = _ref1.last_column; - codeLine = code.split('\n')[first_line]; - start = first_column; - end = first_line === last_line ? last_column + 1 : codeLine.length; - marker = repeat(' ', start) + repeat('^', end - start); - if (useColors) { - colorize = function(str) { - return "\x1B[1;31m" + str + "\x1B[0m"; - }; - codeLine = codeLine.slice(0, start) + colorize(codeLine.slice(start, end)) + codeLine.slice(end); - marker = colorize(marker); - } - message = "" + filename + ":" + (first_line + 1) + ":" + (first_column + 1) + ": error: " + error.message + "\n" + codeLine + "\n" + marker; - return message; - }; - - -}); - -ace.define('ace/mode/coffee/parser', ['require', 'exports', 'module' ], function(require, exports, module) { - -var parser = {trace: function trace() { }, -yy: {}, -symbols_: {"error":2,"Root":3,"Body":4,"Block":5,"TERMINATOR":6,"Line":7,"Expression":8,"Statement":9,"Return":10,"Comment":11,"STATEMENT":12,"Value":13,"Invocation":14,"Code":15,"Operation":16,"Assign":17,"If":18,"Try":19,"While":20,"For":21,"Switch":22,"Class":23,"Throw":24,"INDENT":25,"OUTDENT":26,"Identifier":27,"IDENTIFIER":28,"AlphaNumeric":29,"NUMBER":30,"STRING":31,"Literal":32,"JS":33,"REGEX":34,"DEBUGGER":35,"UNDEFINED":36,"NULL":37,"BOOL":38,"Assignable":39,"=":40,"AssignObj":41,"ObjAssignable":42,":":43,"ThisProperty":44,"RETURN":45,"HERECOMMENT":46,"PARAM_START":47,"ParamList":48,"PARAM_END":49,"FuncGlyph":50,"->":51,"=>":52,"OptComma":53,",":54,"Param":55,"ParamVar":56,"...":57,"Array":58,"Object":59,"Splat":60,"SimpleAssignable":61,"Accessor":62,"Parenthetical":63,"Range":64,"This":65,".":66,"?.":67,"::":68,"?::":69,"Index":70,"INDEX_START":71,"IndexValue":72,"INDEX_END":73,"INDEX_SOAK":74,"Slice":75,"{":76,"AssignList":77,"}":78,"CLASS":79,"EXTENDS":80,"OptFuncExist":81,"Arguments":82,"SUPER":83,"FUNC_EXIST":84,"CALL_START":85,"CALL_END":86,"ArgList":87,"THIS":88,"@":89,"[":90,"]":91,"RangeDots":92,"..":93,"Arg":94,"SimpleArgs":95,"TRY":96,"Catch":97,"FINALLY":98,"CATCH":99,"THROW":100,"(":101,")":102,"WhileSource":103,"WHILE":104,"WHEN":105,"UNTIL":106,"Loop":107,"LOOP":108,"ForBody":109,"FOR":110,"ForStart":111,"ForSource":112,"ForVariables":113,"OWN":114,"ForValue":115,"FORIN":116,"FOROF":117,"BY":118,"SWITCH":119,"Whens":120,"ELSE":121,"When":122,"LEADING_WHEN":123,"IfBlock":124,"IF":125,"POST_IF":126,"UNARY":127,"-":128,"+":129,"--":130,"++":131,"?":132,"MATH":133,"SHIFT":134,"COMPARE":135,"LOGIC":136,"RELATION":137,"COMPOUND_ASSIGN":138,"$accept":0,"$end":1}, -terminals_: {2:"error",6:"TERMINATOR",12:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"DEBUGGER",36:"UNDEFINED",37:"NULL",38:"BOOL",40:"=",43:":",45:"RETURN",46:"HERECOMMENT",47:"PARAM_START",49:"PARAM_END",51:"->",52:"=>",54:",",57:"...",66:".",67:"?.",68:"::",69:"?::",71:"INDEX_START",73:"INDEX_END",74:"INDEX_SOAK",76:"{",78:"}",79:"CLASS",80:"EXTENDS",83:"SUPER",84:"FUNC_EXIST",85:"CALL_START",86:"CALL_END",88:"THIS",89:"@",90:"[",91:"]",93:"..",96:"TRY",98:"FINALLY",99:"CATCH",100:"THROW",101:"(",102:")",104:"WHILE",105:"WHEN",106:"UNTIL",108:"LOOP",110:"FOR",114:"OWN",116:"FORIN",117:"FOROF",118:"BY",119:"SWITCH",121:"ELSE",123:"LEADING_WHEN",125:"IF",126:"POST_IF",127:"UNARY",128:"-",129:"+",130:"--",131:"++",132:"?",133:"MATH",134:"SHIFT",135:"COMPARE",136:"LOGIC",137:"RELATION",138:"COMPOUND_ASSIGN"}, -productions_: [0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[17,3],[17,4],[17,5],[41,1],[41,3],[41,5],[41,1],[42,1],[42,1],[42,1],[10,2],[10,1],[11,1],[15,5],[15,2],[50,1],[50,1],[53,0],[53,1],[48,0],[48,1],[48,3],[48,4],[48,6],[55,1],[55,2],[55,3],[56,1],[56,1],[56,1],[56,1],[60,2],[61,1],[61,2],[61,2],[61,1],[39,1],[39,1],[39,1],[13,1],[13,1],[13,1],[13,1],[13,1],[62,2],[62,2],[62,2],[62,2],[62,1],[62,1],[70,3],[70,2],[72,1],[72,1],[59,4],[77,0],[77,1],[77,3],[77,4],[77,6],[23,1],[23,2],[23,3],[23,4],[23,2],[23,3],[23,4],[23,5],[14,3],[14,3],[14,1],[14,2],[81,0],[81,1],[82,2],[82,4],[65,1],[65,1],[44,2],[58,2],[58,4],[92,1],[92,1],[64,5],[75,3],[75,2],[75,2],[75,1],[87,1],[87,3],[87,4],[87,4],[87,6],[94,1],[94,1],[95,1],[95,3],[19,2],[19,3],[19,4],[19,5],[97,3],[97,3],[97,2],[24,2],[63,3],[63,5],[103,2],[103,4],[103,2],[103,4],[20,2],[20,2],[20,2],[20,1],[107,2],[107,2],[21,2],[21,2],[21,2],[109,2],[109,2],[111,2],[111,3],[115,1],[115,1],[115,1],[115,1],[113,1],[113,3],[112,2],[112,2],[112,4],[112,4],[112,4],[112,6],[112,6],[22,5],[22,7],[22,4],[22,6],[120,1],[120,2],[122,3],[122,4],[124,3],[124,5],[18,1],[18,3],[18,3],[18,3],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,5],[16,4],[16,3]], -performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) { - -var $0 = $$.length - 1; -switch (yystate) { -case 1:return this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Block); -break; -case 2:return this.$ = $$[$0]; -break; -case 3:return this.$ = $$[$0-1]; -break; -case 4:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(yy.Block.wrap([$$[$0]])); -break; -case 5:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].push($$[$0])); -break; -case 6:this.$ = $$[$0-1]; -break; -case 7:this.$ = $$[$0]; -break; -case 8:this.$ = $$[$0]; -break; -case 9:this.$ = $$[$0]; -break; -case 10:this.$ = $$[$0]; -break; -case 11:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); -break; -case 12:this.$ = $$[$0]; -break; -case 13:this.$ = $$[$0]; -break; -case 14:this.$ = $$[$0]; -break; -case 15:this.$ = $$[$0]; -break; -case 16:this.$ = $$[$0]; -break; -case 17:this.$ = $$[$0]; -break; -case 18:this.$ = $$[$0]; -break; -case 19:this.$ = $$[$0]; -break; -case 20:this.$ = $$[$0]; -break; -case 21:this.$ = $$[$0]; -break; -case 22:this.$ = $$[$0]; -break; -case 23:this.$ = $$[$0]; -break; -case 24:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Block); -break; -case 25:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-1]); -break; -case 26:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); -break; -case 27:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); -break; -case 28:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); -break; -case 29:this.$ = $$[$0]; -break; -case 30:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); -break; -case 31:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); -break; -case 32:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0])); -break; -case 33:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Undefined); -break; -case 34:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Null); -break; -case 35:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Bool($$[$0])); -break; -case 36:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0])); -break; -case 37:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Assign($$[$0-3], $$[$0])); -break; -case 38:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1])); -break; -case 39:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); -break; -case 40:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-2])(new yy.Value($$[$0-2])), $$[$0], 'object')); -break; -case 41:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-4])(new yy.Value($$[$0-4])), $$[$0-1], 'object')); -break; -case 42:this.$ = $$[$0]; -break; -case 43:this.$ = $$[$0]; -break; -case 44:this.$ = $$[$0]; -break; -case 45:this.$ = $$[$0]; -break; -case 46:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Return($$[$0])); -break; -case 47:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Return); -break; -case 48:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Comment($$[$0])); -break; -case 49:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Code($$[$0-3], $$[$0], $$[$0-1])); -break; -case 50:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Code([], $$[$0], $$[$0-1])); -break; -case 51:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('func'); -break; -case 52:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('boundfunc'); -break; -case 53:this.$ = $$[$0]; -break; -case 54:this.$ = $$[$0]; -break; -case 55:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([]); -break; -case 56:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]); -break; -case 57:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0])); -break; -case 58:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0])); -break; -case 59:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2])); -break; -case 60:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Param($$[$0])); -break; -case 61:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Param($$[$0-1], null, true)); -break; -case 62:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Param($$[$0-2], $$[$0])); -break; -case 63:this.$ = $$[$0]; -break; -case 64:this.$ = $$[$0]; -break; -case 65:this.$ = $$[$0]; -break; -case 66:this.$ = $$[$0]; -break; -case 67:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Splat($$[$0-1])); -break; -case 68:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); -break; -case 69:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].add($$[$0])); -break; -case 70:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Value($$[$0-1], [].concat($$[$0]))); -break; -case 71:this.$ = $$[$0]; -break; -case 72:this.$ = $$[$0]; -break; -case 73:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); -break; -case 74:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); -break; -case 75:this.$ = $$[$0]; -break; -case 76:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); -break; -case 77:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); -break; -case 78:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); -break; -case 79:this.$ = $$[$0]; -break; -case 80:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Access($$[$0])); -break; -case 81:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Access($$[$0], 'soak')); -break; -case 82:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Access(new yy.Literal('prototype'))), yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))]); -break; -case 83:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Access(new yy.Literal('prototype'), 'soak')), yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))]); -break; -case 84:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Access(new yy.Literal('prototype'))); -break; -case 85:this.$ = $$[$0]; -break; -case 86:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-1]); -break; -case 87:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(yy.extend($$[$0], { - soak: true - })); -break; -case 88:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Index($$[$0])); -break; -case 89:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Slice($$[$0])); -break; -case 90:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Obj($$[$0-2], $$[$0-3].generated)); -break; -case 91:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([]); -break; -case 92:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]); -break; -case 93:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0])); -break; -case 94:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0])); -break; -case 95:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2])); -break; -case 96:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Class); -break; -case 97:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Class(null, null, $$[$0])); -break; -case 98:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Class(null, $$[$0])); -break; -case 99:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Class(null, $$[$0-1], $$[$0])); -break; -case 100:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Class($$[$0])); -break; -case 101:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Class($$[$0-1], null, $$[$0])); -break; -case 102:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Class($$[$0-2], $$[$0])); -break; -case 103:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Class($$[$0-3], $$[$0-1], $$[$0])); -break; -case 104:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Call($$[$0-2], $$[$0], $$[$0-1])); -break; -case 105:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Call($$[$0-2], $$[$0], $$[$0-1])); -break; -case 106:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Call('super', [new yy.Splat(new yy.Literal('arguments'))])); -break; -case 107:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Call('super', $$[$0])); -break; -case 108:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(false); -break; -case 109:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(true); -break; -case 110:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([]); -break; -case 111:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-2]); -break; -case 112:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value(new yy.Literal('this'))); -break; -case 113:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value(new yy.Literal('this'))); -break; -case 114:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Value(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('this')), [yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))], 'this')); -break; -case 115:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Arr([])); -break; -case 116:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Arr($$[$0-2])); -break; -case 117:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('inclusive'); -break; -case 118:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('exclusive'); -break; -case 119:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Range($$[$0-3], $$[$0-1], $$[$0-2])); -break; -case 120:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Range($$[$0-2], $$[$0], $$[$0-1])); -break; -case 121:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range($$[$0-1], null, $$[$0])); -break; -case 122:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range(null, $$[$0], $$[$0-1])); -break; -case 123:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Range(null, null, $$[$0])); -break; -case 124:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]); -break; -case 125:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0])); -break; -case 126:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0])); -break; -case 127:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-2]); -break; -case 128:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2])); -break; -case 129:this.$ = $$[$0]; -break; -case 130:this.$ = $$[$0]; -break; -case 131:this.$ = $$[$0]; -break; -case 132:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([].concat($$[$0-2], $$[$0])); -break; -case 133:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Try($$[$0])); -break; -case 134:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Try($$[$0-1], $$[$0][0], $$[$0][1])); -break; -case 135:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Try($$[$0-2], null, null, $$[$0])); -break; -case 136:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Try($$[$0-3], $$[$0-2][0], $$[$0-2][1], $$[$0])); -break; -case 137:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([$$[$0-1], $$[$0]]); -break; -case 138:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Value($$[$0-1])), $$[$0]]); -break; -case 139:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([null, $$[$0]]); -break; -case 140:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Throw($$[$0])); -break; -case 141:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Parens($$[$0-1])); -break; -case 142:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Parens($$[$0-2])); -break; -case 143:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While($$[$0])); -break; -case 144:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.While($$[$0-2], { - guard: $$[$0] - })); -break; -case 145:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While($$[$0], { - invert: true - })); -break; -case 146:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.While($$[$0-2], { - invert: true, - guard: $$[$0] - })); -break; -case 147:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].addBody($$[$0])); -break; -case 148:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0].addBody(yy.addLocationDataFn(_$[$0-1])(yy.Block.wrap([$$[$0-1]])))); -break; -case 149:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0].addBody(yy.addLocationDataFn(_$[$0-1])(yy.Block.wrap([$$[$0-1]])))); -break; -case 150:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])($$[$0]); -break; -case 151:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('true'))).addBody($$[$0])); -break; -case 152:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('true'))).addBody(yy.addLocationDataFn(_$[$0])(yy.Block.wrap([$$[$0]])))); -break; -case 153:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0-1], $$[$0])); -break; -case 154:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0-1], $$[$0])); -break; -case 155:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0], $$[$0-1])); -break; -case 156:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({ - source: yy.addLocationDataFn(_$[$0])(new yy.Value($$[$0])) - }); -break; -case 157:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])((function () { - $$[$0].own = $$[$0-1].own; - $$[$0].name = $$[$0-1][0]; - $$[$0].index = $$[$0-1][1]; - return $$[$0]; - }())); -break; -case 158:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0]); -break; -case 159:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () { - $$[$0].own = true; - return $$[$0]; - }())); -break; -case 160:this.$ = $$[$0]; -break; -case 161:this.$ = $$[$0]; -break; -case 162:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); -break; -case 163:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0])); -break; -case 164:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]); -break; -case 165:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([$$[$0-2], $$[$0]]); -break; -case 166:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({ - source: $$[$0] - }); -break; -case 167:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({ - source: $$[$0], - object: true - }); -break; -case 168:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({ - source: $$[$0-2], - guard: $$[$0] - }); -break; -case 169:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({ - source: $$[$0-2], - guard: $$[$0], - object: true - }); -break; -case 170:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({ - source: $$[$0-2], - step: $$[$0] - }); -break; -case 171:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])({ - source: $$[$0-4], - guard: $$[$0-2], - step: $$[$0] - }); -break; -case 172:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])({ - source: $$[$0-4], - step: $$[$0-2], - guard: $$[$0] - }); -break; -case 173:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Switch($$[$0-3], $$[$0-1])); -break; -case 174:this.$ = yy.addLocationDataFn(_$[$0-6], _$[$0])(new yy.Switch($$[$0-5], $$[$0-3], $$[$0-1])); -break; -case 175:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Switch(null, $$[$0-1])); -break; -case 176:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])(new yy.Switch(null, $$[$0-3], $$[$0-1])); -break; -case 177:this.$ = $$[$0]; -break; -case 178:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].concat($$[$0])); -break; -case 179:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([[$$[$0-1], $$[$0]]]); -break; -case 180:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])([[$$[$0-2], $$[$0-1]]]); -break; -case 181:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0-1], $$[$0], { - type: $$[$0-2] - })); -break; -case 182:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])($$[$0-4].addElse(new yy.If($$[$0-1], $$[$0], { - type: $$[$0-2] - }))); -break; -case 183:this.$ = $$[$0]; -break; -case 184:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].addElse($$[$0])); -break; -case 185:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0], yy.addLocationDataFn(_$[$0-2])(yy.Block.wrap([$$[$0-2]])), { - type: $$[$0-1], - statement: true - })); -break; -case 186:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0], yy.addLocationDataFn(_$[$0-2])(yy.Block.wrap([$$[$0-2]])), { - type: $$[$0-1], - statement: true - })); -break; -case 187:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op($$[$0-1], $$[$0])); -break; -case 188:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('-', $$[$0])); -break; -case 189:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('+', $$[$0])); -break; -case 190:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0])); -break; -case 191:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0])); -break; -case 192:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0-1], null, true)); -break; -case 193:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0-1], null, true)); -break; -case 194:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Existence($$[$0-1])); -break; -case 195:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('+', $$[$0-2], $$[$0])); -break; -case 196:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('-', $$[$0-2], $$[$0])); -break; -case 197:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); -break; -case 198:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); -break; -case 199:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); -break; -case 200:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); -break; -case 201:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () { - if ($$[$0-1].charAt(0) === '!') { - return new yy.Op($$[$0-1].slice(1), $$[$0-2], $$[$0]).invert(); - } else { - return new yy.Op($$[$0-1], $$[$0-2], $$[$0]); - } - }())); -break; -case 202:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0], $$[$0-1])); -break; -case 203:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1], $$[$0-3])); -break; -case 204:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Assign($$[$0-3], $$[$0], $$[$0-2])); -break; -case 205:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Extends($$[$0-2], $$[$0])); -break; -} -}, -table: [{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,5],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[3]},{1:[2,2],6:[1,74]},{6:[1,75]},{1:[2,4],6:[2,4],26:[2,4],102:[2,4]},{4:77,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[1,76],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,7],6:[2,7],26:[2,7],102:[2,7],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,8],6:[2,8],26:[2,8],102:[2,8],103:90,104:[1,65],106:[1,66],109:91,110:[1,68],111:69,126:[1,89]},{1:[2,12],6:[2,12],25:[2,12],26:[2,12],49:[2,12],54:[2,12],57:[2,12],62:93,66:[1,95],67:[1,96],68:[1,97],69:[1,98],70:99,71:[1,100],73:[2,12],74:[1,101],78:[2,12],81:92,84:[1,94],85:[2,108],86:[2,12],91:[2,12],93:[2,12],102:[2,12],104:[2,12],105:[2,12],106:[2,12],110:[2,12],118:[2,12],126:[2,12],128:[2,12],129:[2,12],132:[2,12],133:[2,12],134:[2,12],135:[2,12],136:[2,12],137:[2,12]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],49:[2,13],54:[2,13],57:[2,13],62:103,66:[1,95],67:[1,96],68:[1,97],69:[1,98],70:99,71:[1,100],73:[2,13],74:[1,101],78:[2,13],81:102,84:[1,94],85:[2,108],86:[2,13],91:[2,13],93:[2,13],102:[2,13],104:[2,13],105:[2,13],106:[2,13],110:[2,13],118:[2,13],126:[2,13],128:[2,13],129:[2,13],132:[2,13],133:[2,13],134:[2,13],135:[2,13],136:[2,13],137:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],49:[2,14],54:[2,14],57:[2,14],73:[2,14],78:[2,14],86:[2,14],91:[2,14],93:[2,14],102:[2,14],104:[2,14],105:[2,14],106:[2,14],110:[2,14],118:[2,14],126:[2,14],128:[2,14],129:[2,14],132:[2,14],133:[2,14],134:[2,14],135:[2,14],136:[2,14],137:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],49:[2,15],54:[2,15],57:[2,15],73:[2,15],78:[2,15],86:[2,15],91:[2,15],93:[2,15],102:[2,15],104:[2,15],105:[2,15],106:[2,15],110:[2,15],118:[2,15],126:[2,15],128:[2,15],129:[2,15],132:[2,15],133:[2,15],134:[2,15],135:[2,15],136:[2,15],137:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],49:[2,16],54:[2,16],57:[2,16],73:[2,16],78:[2,16],86:[2,16],91:[2,16],93:[2,16],102:[2,16],104:[2,16],105:[2,16],106:[2,16],110:[2,16],118:[2,16],126:[2,16],128:[2,16],129:[2,16],132:[2,16],133:[2,16],134:[2,16],135:[2,16],136:[2,16],137:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],49:[2,17],54:[2,17],57:[2,17],73:[2,17],78:[2,17],86:[2,17],91:[2,17],93:[2,17],102:[2,17],104:[2,17],105:[2,17],106:[2,17],110:[2,17],118:[2,17],126:[2,17],128:[2,17],129:[2,17],132:[2,17],133:[2,17],134:[2,17],135:[2,17],136:[2,17],137:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],49:[2,18],54:[2,18],57:[2,18],73:[2,18],78:[2,18],86:[2,18],91:[2,18],93:[2,18],102:[2,18],104:[2,18],105:[2,18],106:[2,18],110:[2,18],118:[2,18],126:[2,18],128:[2,18],129:[2,18],132:[2,18],133:[2,18],134:[2,18],135:[2,18],136:[2,18],137:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],49:[2,19],54:[2,19],57:[2,19],73:[2,19],78:[2,19],86:[2,19],91:[2,19],93:[2,19],102:[2,19],104:[2,19],105:[2,19],106:[2,19],110:[2,19],118:[2,19],126:[2,19],128:[2,19],129:[2,19],132:[2,19],133:[2,19],134:[2,19],135:[2,19],136:[2,19],137:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],49:[2,20],54:[2,20],57:[2,20],73:[2,20],78:[2,20],86:[2,20],91:[2,20],93:[2,20],102:[2,20],104:[2,20],105:[2,20],106:[2,20],110:[2,20],118:[2,20],126:[2,20],128:[2,20],129:[2,20],132:[2,20],133:[2,20],134:[2,20],135:[2,20],136:[2,20],137:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],49:[2,21],54:[2,21],57:[2,21],73:[2,21],78:[2,21],86:[2,21],91:[2,21],93:[2,21],102:[2,21],104:[2,21],105:[2,21],106:[2,21],110:[2,21],118:[2,21],126:[2,21],128:[2,21],129:[2,21],132:[2,21],133:[2,21],134:[2,21],135:[2,21],136:[2,21],137:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],49:[2,22],54:[2,22],57:[2,22],73:[2,22],78:[2,22],86:[2,22],91:[2,22],93:[2,22],102:[2,22],104:[2,22],105:[2,22],106:[2,22],110:[2,22],118:[2,22],126:[2,22],128:[2,22],129:[2,22],132:[2,22],133:[2,22],134:[2,22],135:[2,22],136:[2,22],137:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],49:[2,23],54:[2,23],57:[2,23],73:[2,23],78:[2,23],86:[2,23],91:[2,23],93:[2,23],102:[2,23],104:[2,23],105:[2,23],106:[2,23],110:[2,23],118:[2,23],126:[2,23],128:[2,23],129:[2,23],132:[2,23],133:[2,23],134:[2,23],135:[2,23],136:[2,23],137:[2,23]},{1:[2,9],6:[2,9],26:[2,9],102:[2,9],104:[2,9],106:[2,9],110:[2,9],126:[2,9]},{1:[2,10],6:[2,10],26:[2,10],102:[2,10],104:[2,10],106:[2,10],110:[2,10],126:[2,10]},{1:[2,11],6:[2,11],26:[2,11],102:[2,11],104:[2,11],106:[2,11],110:[2,11],126:[2,11]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],40:[1,104],49:[2,75],54:[2,75],57:[2,75],66:[2,75],67:[2,75],68:[2,75],69:[2,75],71:[2,75],73:[2,75],74:[2,75],78:[2,75],84:[2,75],85:[2,75],86:[2,75],91:[2,75],93:[2,75],102:[2,75],104:[2,75],105:[2,75],106:[2,75],110:[2,75],118:[2,75],126:[2,75],128:[2,75],129:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75],136:[2,75],137:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],49:[2,76],54:[2,76],57:[2,76],66:[2,76],67:[2,76],68:[2,76],69:[2,76],71:[2,76],73:[2,76],74:[2,76],78:[2,76],84:[2,76],85:[2,76],86:[2,76],91:[2,76],93:[2,76],102:[2,76],104:[2,76],105:[2,76],106:[2,76],110:[2,76],118:[2,76],126:[2,76],128:[2,76],129:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76],136:[2,76],137:[2,76]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],49:[2,77],54:[2,77],57:[2,77],66:[2,77],67:[2,77],68:[2,77],69:[2,77],71:[2,77],73:[2,77],74:[2,77],78:[2,77],84:[2,77],85:[2,77],86:[2,77],91:[2,77],93:[2,77],102:[2,77],104:[2,77],105:[2,77],106:[2,77],110:[2,77],118:[2,77],126:[2,77],128:[2,77],129:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77],136:[2,77],137:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],49:[2,78],54:[2,78],57:[2,78],66:[2,78],67:[2,78],68:[2,78],69:[2,78],71:[2,78],73:[2,78],74:[2,78],78:[2,78],84:[2,78],85:[2,78],86:[2,78],91:[2,78],93:[2,78],102:[2,78],104:[2,78],105:[2,78],106:[2,78],110:[2,78],118:[2,78],126:[2,78],128:[2,78],129:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78],136:[2,78],137:[2,78]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],49:[2,79],54:[2,79],57:[2,79],66:[2,79],67:[2,79],68:[2,79],69:[2,79],71:[2,79],73:[2,79],74:[2,79],78:[2,79],84:[2,79],85:[2,79],86:[2,79],91:[2,79],93:[2,79],102:[2,79],104:[2,79],105:[2,79],106:[2,79],110:[2,79],118:[2,79],126:[2,79],128:[2,79],129:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79],136:[2,79],137:[2,79]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],49:[2,106],54:[2,106],57:[2,106],66:[2,106],67:[2,106],68:[2,106],69:[2,106],71:[2,106],73:[2,106],74:[2,106],78:[2,106],82:105,84:[2,106],85:[1,106],86:[2,106],91:[2,106],93:[2,106],102:[2,106],104:[2,106],105:[2,106],106:[2,106],110:[2,106],118:[2,106],126:[2,106],128:[2,106],129:[2,106],132:[2,106],133:[2,106],134:[2,106],135:[2,106],136:[2,106],137:[2,106]},{6:[2,55],25:[2,55],27:110,28:[1,73],44:111,48:107,49:[2,55],54:[2,55],55:108,56:109,58:112,59:113,76:[1,70],89:[1,114],90:[1,115]},{5:116,25:[1,5]},{8:117,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:119,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:120,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{13:122,14:123,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:124,44:63,58:47,59:48,61:121,63:25,64:26,65:27,76:[1,70],83:[1,28],88:[1,58],89:[1,59],90:[1,57],101:[1,56]},{13:122,14:123,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:124,44:63,58:47,59:48,61:125,63:25,64:26,65:27,76:[1,70],83:[1,28],88:[1,58],89:[1,59],90:[1,57],101:[1,56]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],40:[2,72],49:[2,72],54:[2,72],57:[2,72],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,72],74:[2,72],78:[2,72],80:[1,129],84:[2,72],85:[2,72],86:[2,72],91:[2,72],93:[2,72],102:[2,72],104:[2,72],105:[2,72],106:[2,72],110:[2,72],118:[2,72],126:[2,72],128:[2,72],129:[2,72],130:[1,126],131:[1,127],132:[2,72],133:[2,72],134:[2,72],135:[2,72],136:[2,72],137:[2,72],138:[1,128]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],49:[2,183],54:[2,183],57:[2,183],73:[2,183],78:[2,183],86:[2,183],91:[2,183],93:[2,183],102:[2,183],104:[2,183],105:[2,183],106:[2,183],110:[2,183],118:[2,183],121:[1,130],126:[2,183],128:[2,183],129:[2,183],132:[2,183],133:[2,183],134:[2,183],135:[2,183],136:[2,183],137:[2,183]},{5:131,25:[1,5]},{5:132,25:[1,5]},{1:[2,150],6:[2,150],25:[2,150],26:[2,150],49:[2,150],54:[2,150],57:[2,150],73:[2,150],78:[2,150],86:[2,150],91:[2,150],93:[2,150],102:[2,150],104:[2,150],105:[2,150],106:[2,150],110:[2,150],118:[2,150],126:[2,150],128:[2,150],129:[2,150],132:[2,150],133:[2,150],134:[2,150],135:[2,150],136:[2,150],137:[2,150]},{5:133,25:[1,5]},{8:134,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,135],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,96],5:136,6:[2,96],13:122,14:123,25:[1,5],26:[2,96],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:124,44:63,49:[2,96],54:[2,96],57:[2,96],58:47,59:48,61:138,63:25,64:26,65:27,73:[2,96],76:[1,70],78:[2,96],80:[1,137],83:[1,28],86:[2,96],88:[1,58],89:[1,59],90:[1,57],91:[2,96],93:[2,96],101:[1,56],102:[2,96],104:[2,96],105:[2,96],106:[2,96],110:[2,96],118:[2,96],126:[2,96],128:[2,96],129:[2,96],132:[2,96],133:[2,96],134:[2,96],135:[2,96],136:[2,96],137:[2,96]},{8:139,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,47],6:[2,47],8:140,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[2,47],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],102:[2,47],103:39,104:[2,47],106:[2,47],107:40,108:[1,67],109:41,110:[2,47],111:69,119:[1,42],124:37,125:[1,64],126:[2,47],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,48],6:[2,48],25:[2,48],26:[2,48],54:[2,48],78:[2,48],102:[2,48],104:[2,48],106:[2,48],110:[2,48],126:[2,48]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],40:[2,73],49:[2,73],54:[2,73],57:[2,73],66:[2,73],67:[2,73],68:[2,73],69:[2,73],71:[2,73],73:[2,73],74:[2,73],78:[2,73],84:[2,73],85:[2,73],86:[2,73],91:[2,73],93:[2,73],102:[2,73],104:[2,73],105:[2,73],106:[2,73],110:[2,73],118:[2,73],126:[2,73],128:[2,73],129:[2,73],132:[2,73],133:[2,73],134:[2,73],135:[2,73],136:[2,73],137:[2,73]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],40:[2,74],49:[2,74],54:[2,74],57:[2,74],66:[2,74],67:[2,74],68:[2,74],69:[2,74],71:[2,74],73:[2,74],74:[2,74],78:[2,74],84:[2,74],85:[2,74],86:[2,74],91:[2,74],93:[2,74],102:[2,74],104:[2,74],105:[2,74],106:[2,74],110:[2,74],118:[2,74],126:[2,74],128:[2,74],129:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74],136:[2,74],137:[2,74]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],49:[2,29],54:[2,29],57:[2,29],66:[2,29],67:[2,29],68:[2,29],69:[2,29],71:[2,29],73:[2,29],74:[2,29],78:[2,29],84:[2,29],85:[2,29],86:[2,29],91:[2,29],93:[2,29],102:[2,29],104:[2,29],105:[2,29],106:[2,29],110:[2,29],118:[2,29],126:[2,29],128:[2,29],129:[2,29],132:[2,29],133:[2,29],134:[2,29],135:[2,29],136:[2,29],137:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],49:[2,30],54:[2,30],57:[2,30],66:[2,30],67:[2,30],68:[2,30],69:[2,30],71:[2,30],73:[2,30],74:[2,30],78:[2,30],84:[2,30],85:[2,30],86:[2,30],91:[2,30],93:[2,30],102:[2,30],104:[2,30],105:[2,30],106:[2,30],110:[2,30],118:[2,30],126:[2,30],128:[2,30],129:[2,30],132:[2,30],133:[2,30],134:[2,30],135:[2,30],136:[2,30],137:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],49:[2,31],54:[2,31],57:[2,31],66:[2,31],67:[2,31],68:[2,31],69:[2,31],71:[2,31],73:[2,31],74:[2,31],78:[2,31],84:[2,31],85:[2,31],86:[2,31],91:[2,31],93:[2,31],102:[2,31],104:[2,31],105:[2,31],106:[2,31],110:[2,31],118:[2,31],126:[2,31],128:[2,31],129:[2,31],132:[2,31],133:[2,31],134:[2,31],135:[2,31],136:[2,31],137:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],49:[2,32],54:[2,32],57:[2,32],66:[2,32],67:[2,32],68:[2,32],69:[2,32],71:[2,32],73:[2,32],74:[2,32],78:[2,32],84:[2,32],85:[2,32],86:[2,32],91:[2,32],93:[2,32],102:[2,32],104:[2,32],105:[2,32],106:[2,32],110:[2,32],118:[2,32],126:[2,32],128:[2,32],129:[2,32],132:[2,32],133:[2,32],134:[2,32],135:[2,32],136:[2,32],137:[2,32]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],49:[2,33],54:[2,33],57:[2,33],66:[2,33],67:[2,33],68:[2,33],69:[2,33],71:[2,33],73:[2,33],74:[2,33],78:[2,33],84:[2,33],85:[2,33],86:[2,33],91:[2,33],93:[2,33],102:[2,33],104:[2,33],105:[2,33],106:[2,33],110:[2,33],118:[2,33],126:[2,33],128:[2,33],129:[2,33],132:[2,33],133:[2,33],134:[2,33],135:[2,33],136:[2,33],137:[2,33]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],49:[2,34],54:[2,34],57:[2,34],66:[2,34],67:[2,34],68:[2,34],69:[2,34],71:[2,34],73:[2,34],74:[2,34],78:[2,34],84:[2,34],85:[2,34],86:[2,34],91:[2,34],93:[2,34],102:[2,34],104:[2,34],105:[2,34],106:[2,34],110:[2,34],118:[2,34],126:[2,34],128:[2,34],129:[2,34],132:[2,34],133:[2,34],134:[2,34],135:[2,34],136:[2,34],137:[2,34]},{1:[2,35],6:[2,35],25:[2,35],26:[2,35],49:[2,35],54:[2,35],57:[2,35],66:[2,35],67:[2,35],68:[2,35],69:[2,35],71:[2,35],73:[2,35],74:[2,35],78:[2,35],84:[2,35],85:[2,35],86:[2,35],91:[2,35],93:[2,35],102:[2,35],104:[2,35],105:[2,35],106:[2,35],110:[2,35],118:[2,35],126:[2,35],128:[2,35],129:[2,35],132:[2,35],133:[2,35],134:[2,35],135:[2,35],136:[2,35],137:[2,35]},{4:141,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,142],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:143,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,147],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:148,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],87:145,88:[1,58],89:[1,59],90:[1,57],91:[1,144],94:146,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,112],6:[2,112],25:[2,112],26:[2,112],49:[2,112],54:[2,112],57:[2,112],66:[2,112],67:[2,112],68:[2,112],69:[2,112],71:[2,112],73:[2,112],74:[2,112],78:[2,112],84:[2,112],85:[2,112],86:[2,112],91:[2,112],93:[2,112],102:[2,112],104:[2,112],105:[2,112],106:[2,112],110:[2,112],118:[2,112],126:[2,112],128:[2,112],129:[2,112],132:[2,112],133:[2,112],134:[2,112],135:[2,112],136:[2,112],137:[2,112]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],27:149,28:[1,73],49:[2,113],54:[2,113],57:[2,113],66:[2,113],67:[2,113],68:[2,113],69:[2,113],71:[2,113],73:[2,113],74:[2,113],78:[2,113],84:[2,113],85:[2,113],86:[2,113],91:[2,113],93:[2,113],102:[2,113],104:[2,113],105:[2,113],106:[2,113],110:[2,113],118:[2,113],126:[2,113],128:[2,113],129:[2,113],132:[2,113],133:[2,113],134:[2,113],135:[2,113],136:[2,113],137:[2,113]},{25:[2,51]},{25:[2,52]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],40:[2,68],49:[2,68],54:[2,68],57:[2,68],66:[2,68],67:[2,68],68:[2,68],69:[2,68],71:[2,68],73:[2,68],74:[2,68],78:[2,68],80:[2,68],84:[2,68],85:[2,68],86:[2,68],91:[2,68],93:[2,68],102:[2,68],104:[2,68],105:[2,68],106:[2,68],110:[2,68],118:[2,68],126:[2,68],128:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68],135:[2,68],136:[2,68],137:[2,68],138:[2,68]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],40:[2,71],49:[2,71],54:[2,71],57:[2,71],66:[2,71],67:[2,71],68:[2,71],69:[2,71],71:[2,71],73:[2,71],74:[2,71],78:[2,71],80:[2,71],84:[2,71],85:[2,71],86:[2,71],91:[2,71],93:[2,71],102:[2,71],104:[2,71],105:[2,71],106:[2,71],110:[2,71],118:[2,71],126:[2,71],128:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71],135:[2,71],136:[2,71],137:[2,71],138:[2,71]},{8:150,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:151,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:152,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{5:153,8:154,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,5],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{27:159,28:[1,73],44:160,58:161,59:162,64:155,76:[1,70],89:[1,114],90:[1,57],113:156,114:[1,157],115:158},{112:163,116:[1,164],117:[1,165]},{6:[2,91],11:169,25:[2,91],27:170,28:[1,73],29:171,30:[1,71],31:[1,72],41:167,42:168,44:172,46:[1,46],54:[2,91],77:166,78:[2,91],89:[1,114]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],43:[2,27],49:[2,27],54:[2,27],57:[2,27],66:[2,27],67:[2,27],68:[2,27],69:[2,27],71:[2,27],73:[2,27],74:[2,27],78:[2,27],84:[2,27],85:[2,27],86:[2,27],91:[2,27],93:[2,27],102:[2,27],104:[2,27],105:[2,27],106:[2,27],110:[2,27],118:[2,27],126:[2,27],128:[2,27],129:[2,27],132:[2,27],133:[2,27],134:[2,27],135:[2,27],136:[2,27],137:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],43:[2,28],49:[2,28],54:[2,28],57:[2,28],66:[2,28],67:[2,28],68:[2,28],69:[2,28],71:[2,28],73:[2,28],74:[2,28],78:[2,28],84:[2,28],85:[2,28],86:[2,28],91:[2,28],93:[2,28],102:[2,28],104:[2,28],105:[2,28],106:[2,28],110:[2,28],118:[2,28],126:[2,28],128:[2,28],129:[2,28],132:[2,28],133:[2,28],134:[2,28],135:[2,28],136:[2,28],137:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],40:[2,26],43:[2,26],49:[2,26],54:[2,26],57:[2,26],66:[2,26],67:[2,26],68:[2,26],69:[2,26],71:[2,26],73:[2,26],74:[2,26],78:[2,26],80:[2,26],84:[2,26],85:[2,26],86:[2,26],91:[2,26],93:[2,26],102:[2,26],104:[2,26],105:[2,26],106:[2,26],110:[2,26],116:[2,26],117:[2,26],118:[2,26],126:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26],136:[2,26],137:[2,26],138:[2,26]},{1:[2,6],6:[2,6],7:173,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[2,6],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],102:[2,6],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],49:[2,24],54:[2,24],57:[2,24],73:[2,24],78:[2,24],86:[2,24],91:[2,24],93:[2,24],98:[2,24],99:[2,24],102:[2,24],104:[2,24],105:[2,24],106:[2,24],110:[2,24],118:[2,24],121:[2,24],123:[2,24],126:[2,24],128:[2,24],129:[2,24],132:[2,24],133:[2,24],134:[2,24],135:[2,24],136:[2,24],137:[2,24]},{6:[1,74],26:[1,174]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],49:[2,194],54:[2,194],57:[2,194],73:[2,194],78:[2,194],86:[2,194],91:[2,194],93:[2,194],102:[2,194],104:[2,194],105:[2,194],106:[2,194],110:[2,194],118:[2,194],126:[2,194],128:[2,194],129:[2,194],132:[2,194],133:[2,194],134:[2,194],135:[2,194],136:[2,194],137:[2,194]},{8:175,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:176,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:177,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:178,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:179,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:180,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:181,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:182,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,149],6:[2,149],25:[2,149],26:[2,149],49:[2,149],54:[2,149],57:[2,149],73:[2,149],78:[2,149],86:[2,149],91:[2,149],93:[2,149],102:[2,149],104:[2,149],105:[2,149],106:[2,149],110:[2,149],118:[2,149],126:[2,149],128:[2,149],129:[2,149],132:[2,149],133:[2,149],134:[2,149],135:[2,149],136:[2,149],137:[2,149]},{1:[2,154],6:[2,154],25:[2,154],26:[2,154],49:[2,154],54:[2,154],57:[2,154],73:[2,154],78:[2,154],86:[2,154],91:[2,154],93:[2,154],102:[2,154],104:[2,154],105:[2,154],106:[2,154],110:[2,154],118:[2,154],126:[2,154],128:[2,154],129:[2,154],132:[2,154],133:[2,154],134:[2,154],135:[2,154],136:[2,154],137:[2,154]},{8:183,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],49:[2,148],54:[2,148],57:[2,148],73:[2,148],78:[2,148],86:[2,148],91:[2,148],93:[2,148],102:[2,148],104:[2,148],105:[2,148],106:[2,148],110:[2,148],118:[2,148],126:[2,148],128:[2,148],129:[2,148],132:[2,148],133:[2,148],134:[2,148],135:[2,148],136:[2,148],137:[2,148]},{1:[2,153],6:[2,153],25:[2,153],26:[2,153],49:[2,153],54:[2,153],57:[2,153],73:[2,153],78:[2,153],86:[2,153],91:[2,153],93:[2,153],102:[2,153],104:[2,153],105:[2,153],106:[2,153],110:[2,153],118:[2,153],126:[2,153],128:[2,153],129:[2,153],132:[2,153],133:[2,153],134:[2,153],135:[2,153],136:[2,153],137:[2,153]},{82:184,85:[1,106]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],40:[2,69],49:[2,69],54:[2,69],57:[2,69],66:[2,69],67:[2,69],68:[2,69],69:[2,69],71:[2,69],73:[2,69],74:[2,69],78:[2,69],80:[2,69],84:[2,69],85:[2,69],86:[2,69],91:[2,69],93:[2,69],102:[2,69],104:[2,69],105:[2,69],106:[2,69],110:[2,69],118:[2,69],126:[2,69],128:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69],135:[2,69],136:[2,69],137:[2,69],138:[2,69]},{85:[2,109]},{27:185,28:[1,73]},{27:186,28:[1,73]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],27:187,28:[1,73],40:[2,84],49:[2,84],54:[2,84],57:[2,84],66:[2,84],67:[2,84],68:[2,84],69:[2,84],71:[2,84],73:[2,84],74:[2,84],78:[2,84],80:[2,84],84:[2,84],85:[2,84],86:[2,84],91:[2,84],93:[2,84],102:[2,84],104:[2,84],105:[2,84],106:[2,84],110:[2,84],118:[2,84],126:[2,84],128:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84],135:[2,84],136:[2,84],137:[2,84],138:[2,84]},{27:188,28:[1,73]},{1:[2,85],6:[2,85],25:[2,85],26:[2,85],40:[2,85],49:[2,85],54:[2,85],57:[2,85],66:[2,85],67:[2,85],68:[2,85],69:[2,85],71:[2,85],73:[2,85],74:[2,85],78:[2,85],80:[2,85],84:[2,85],85:[2,85],86:[2,85],91:[2,85],93:[2,85],102:[2,85],104:[2,85],105:[2,85],106:[2,85],110:[2,85],118:[2,85],126:[2,85],128:[2,85],129:[2,85],130:[2,85],131:[2,85],132:[2,85],133:[2,85],134:[2,85],135:[2,85],136:[2,85],137:[2,85],138:[2,85]},{8:190,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],57:[1,194],58:47,59:48,61:36,63:25,64:26,65:27,72:189,75:191,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],92:192,93:[1,193],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{70:195,71:[1,100],74:[1,101]},{82:196,85:[1,106]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],40:[2,70],49:[2,70],54:[2,70],57:[2,70],66:[2,70],67:[2,70],68:[2,70],69:[2,70],71:[2,70],73:[2,70],74:[2,70],78:[2,70],80:[2,70],84:[2,70],85:[2,70],86:[2,70],91:[2,70],93:[2,70],102:[2,70],104:[2,70],105:[2,70],106:[2,70],110:[2,70],118:[2,70],126:[2,70],128:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70],135:[2,70],136:[2,70],137:[2,70],138:[2,70]},{6:[1,198],8:197,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,199],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],49:[2,107],54:[2,107],57:[2,107],66:[2,107],67:[2,107],68:[2,107],69:[2,107],71:[2,107],73:[2,107],74:[2,107],78:[2,107],84:[2,107],85:[2,107],86:[2,107],91:[2,107],93:[2,107],102:[2,107],104:[2,107],105:[2,107],106:[2,107],110:[2,107],118:[2,107],126:[2,107],128:[2,107],129:[2,107],132:[2,107],133:[2,107],134:[2,107],135:[2,107],136:[2,107],137:[2,107]},{8:202,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,147],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:148,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],86:[1,200],87:201,88:[1,58],89:[1,59],90:[1,57],94:146,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[2,53],25:[2,53],49:[1,203],53:205,54:[1,204]},{6:[2,56],25:[2,56],26:[2,56],49:[2,56],54:[2,56]},{6:[2,60],25:[2,60],26:[2,60],40:[1,207],49:[2,60],54:[2,60],57:[1,206]},{6:[2,63],25:[2,63],26:[2,63],40:[2,63],49:[2,63],54:[2,63],57:[2,63]},{6:[2,64],25:[2,64],26:[2,64],40:[2,64],49:[2,64],54:[2,64],57:[2,64]},{6:[2,65],25:[2,65],26:[2,65],40:[2,65],49:[2,65],54:[2,65],57:[2,65]},{6:[2,66],25:[2,66],26:[2,66],40:[2,66],49:[2,66],54:[2,66],57:[2,66]},{27:149,28:[1,73]},{8:202,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,147],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:148,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],87:145,88:[1,58],89:[1,59],90:[1,57],91:[1,144],94:146,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,50],6:[2,50],25:[2,50],26:[2,50],49:[2,50],54:[2,50],57:[2,50],73:[2,50],78:[2,50],86:[2,50],91:[2,50],93:[2,50],102:[2,50],104:[2,50],105:[2,50],106:[2,50],110:[2,50],118:[2,50],126:[2,50],128:[2,50],129:[2,50],132:[2,50],133:[2,50],134:[2,50],135:[2,50],136:[2,50],137:[2,50]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],49:[2,187],54:[2,187],57:[2,187],73:[2,187],78:[2,187],86:[2,187],91:[2,187],93:[2,187],102:[2,187],103:87,104:[2,187],105:[2,187],106:[2,187],109:88,110:[2,187],111:69,118:[2,187],126:[2,187],128:[2,187],129:[2,187],132:[1,78],133:[2,187],134:[2,187],135:[2,187],136:[2,187],137:[2,187]},{103:90,104:[1,65],106:[1,66],109:91,110:[1,68],111:69,126:[1,89]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],49:[2,188],54:[2,188],57:[2,188],73:[2,188],78:[2,188],86:[2,188],91:[2,188],93:[2,188],102:[2,188],103:87,104:[2,188],105:[2,188],106:[2,188],109:88,110:[2,188],111:69,118:[2,188],126:[2,188],128:[2,188],129:[2,188],132:[1,78],133:[2,188],134:[2,188],135:[2,188],136:[2,188],137:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],49:[2,189],54:[2,189],57:[2,189],73:[2,189],78:[2,189],86:[2,189],91:[2,189],93:[2,189],102:[2,189],103:87,104:[2,189],105:[2,189],106:[2,189],109:88,110:[2,189],111:69,118:[2,189],126:[2,189],128:[2,189],129:[2,189],132:[1,78],133:[2,189],134:[2,189],135:[2,189],136:[2,189],137:[2,189]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],49:[2,190],54:[2,190],57:[2,190],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,190],74:[2,72],78:[2,190],84:[2,72],85:[2,72],86:[2,190],91:[2,190],93:[2,190],102:[2,190],104:[2,190],105:[2,190],106:[2,190],110:[2,190],118:[2,190],126:[2,190],128:[2,190],129:[2,190],132:[2,190],133:[2,190],134:[2,190],135:[2,190],136:[2,190],137:[2,190]},{62:93,66:[1,95],67:[1,96],68:[1,97],69:[1,98],70:99,71:[1,100],74:[1,101],81:92,84:[1,94],85:[2,108]},{62:103,66:[1,95],67:[1,96],68:[1,97],69:[1,98],70:99,71:[1,100],74:[1,101],81:102,84:[1,94],85:[2,108]},{66:[2,75],67:[2,75],68:[2,75],69:[2,75],71:[2,75],74:[2,75],84:[2,75],85:[2,75]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],49:[2,191],54:[2,191],57:[2,191],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,191],74:[2,72],78:[2,191],84:[2,72],85:[2,72],86:[2,191],91:[2,191],93:[2,191],102:[2,191],104:[2,191],105:[2,191],106:[2,191],110:[2,191],118:[2,191],126:[2,191],128:[2,191],129:[2,191],132:[2,191],133:[2,191],134:[2,191],135:[2,191],136:[2,191],137:[2,191]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],49:[2,192],54:[2,192],57:[2,192],73:[2,192],78:[2,192],86:[2,192],91:[2,192],93:[2,192],102:[2,192],104:[2,192],105:[2,192],106:[2,192],110:[2,192],118:[2,192],126:[2,192],128:[2,192],129:[2,192],132:[2,192],133:[2,192],134:[2,192],135:[2,192],136:[2,192],137:[2,192]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],49:[2,193],54:[2,193],57:[2,193],73:[2,193],78:[2,193],86:[2,193],91:[2,193],93:[2,193],102:[2,193],104:[2,193],105:[2,193],106:[2,193],110:[2,193],118:[2,193],126:[2,193],128:[2,193],129:[2,193],132:[2,193],133:[2,193],134:[2,193],135:[2,193],136:[2,193],137:[2,193]},{6:[1,210],8:208,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,209],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:211,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{5:212,25:[1,5],125:[1,213]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],49:[2,133],54:[2,133],57:[2,133],73:[2,133],78:[2,133],86:[2,133],91:[2,133],93:[2,133],97:214,98:[1,215],99:[1,216],102:[2,133],104:[2,133],105:[2,133],106:[2,133],110:[2,133],118:[2,133],126:[2,133],128:[2,133],129:[2,133],132:[2,133],133:[2,133],134:[2,133],135:[2,133],136:[2,133],137:[2,133]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],49:[2,147],54:[2,147],57:[2,147],73:[2,147],78:[2,147],86:[2,147],91:[2,147],93:[2,147],102:[2,147],104:[2,147],105:[2,147],106:[2,147],110:[2,147],118:[2,147],126:[2,147],128:[2,147],129:[2,147],132:[2,147],133:[2,147],134:[2,147],135:[2,147],136:[2,147],137:[2,147]},{1:[2,155],6:[2,155],25:[2,155],26:[2,155],49:[2,155],54:[2,155],57:[2,155],73:[2,155],78:[2,155],86:[2,155],91:[2,155],93:[2,155],102:[2,155],104:[2,155],105:[2,155],106:[2,155],110:[2,155],118:[2,155],126:[2,155],128:[2,155],129:[2,155],132:[2,155],133:[2,155],134:[2,155],135:[2,155],136:[2,155],137:[2,155]},{25:[1,217],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{120:218,122:219,123:[1,220]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],49:[2,97],54:[2,97],57:[2,97],73:[2,97],78:[2,97],86:[2,97],91:[2,97],93:[2,97],102:[2,97],104:[2,97],105:[2,97],106:[2,97],110:[2,97],118:[2,97],126:[2,97],128:[2,97],129:[2,97],132:[2,97],133:[2,97],134:[2,97],135:[2,97],136:[2,97],137:[2,97]},{8:221,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,100],5:222,6:[2,100],25:[1,5],26:[2,100],49:[2,100],54:[2,100],57:[2,100],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,100],74:[2,72],78:[2,100],80:[1,223],84:[2,72],85:[2,72],86:[2,100],91:[2,100],93:[2,100],102:[2,100],104:[2,100],105:[2,100],106:[2,100],110:[2,100],118:[2,100],126:[2,100],128:[2,100],129:[2,100],132:[2,100],133:[2,100],134:[2,100],135:[2,100],136:[2,100],137:[2,100]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],49:[2,140],54:[2,140],57:[2,140],73:[2,140],78:[2,140],86:[2,140],91:[2,140],93:[2,140],102:[2,140],103:87,104:[2,140],105:[2,140],106:[2,140],109:88,110:[2,140],111:69,118:[2,140],126:[2,140],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,46],6:[2,46],26:[2,46],102:[2,46],103:87,104:[2,46],106:[2,46],109:88,110:[2,46],111:69,126:[2,46],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{6:[1,74],102:[1,224]},{4:225,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[2,129],25:[2,129],54:[2,129],57:[1,227],91:[2,129],92:226,93:[1,193],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,115],6:[2,115],25:[2,115],26:[2,115],40:[2,115],49:[2,115],54:[2,115],57:[2,115],66:[2,115],67:[2,115],68:[2,115],69:[2,115],71:[2,115],73:[2,115],74:[2,115],78:[2,115],84:[2,115],85:[2,115],86:[2,115],91:[2,115],93:[2,115],102:[2,115],104:[2,115],105:[2,115],106:[2,115],110:[2,115],116:[2,115],117:[2,115],118:[2,115],126:[2,115],128:[2,115],129:[2,115],132:[2,115],133:[2,115],134:[2,115],135:[2,115],136:[2,115],137:[2,115]},{6:[2,53],25:[2,53],53:228,54:[1,229],91:[2,53]},{6:[2,124],25:[2,124],26:[2,124],54:[2,124],86:[2,124],91:[2,124]},{8:202,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,147],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:148,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],87:230,88:[1,58],89:[1,59],90:[1,57],94:146,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[2,130],25:[2,130],26:[2,130],54:[2,130],86:[2,130],91:[2,130]},{1:[2,114],6:[2,114],25:[2,114],26:[2,114],40:[2,114],43:[2,114],49:[2,114],54:[2,114],57:[2,114],66:[2,114],67:[2,114],68:[2,114],69:[2,114],71:[2,114],73:[2,114],74:[2,114],78:[2,114],80:[2,114],84:[2,114],85:[2,114],86:[2,114],91:[2,114],93:[2,114],102:[2,114],104:[2,114],105:[2,114],106:[2,114],110:[2,114],116:[2,114],117:[2,114],118:[2,114],126:[2,114],128:[2,114],129:[2,114],130:[2,114],131:[2,114],132:[2,114],133:[2,114],134:[2,114],135:[2,114],136:[2,114],137:[2,114],138:[2,114]},{5:231,25:[1,5],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],49:[2,143],54:[2,143],57:[2,143],73:[2,143],78:[2,143],86:[2,143],91:[2,143],93:[2,143],102:[2,143],103:87,104:[1,65],105:[1,232],106:[1,66],109:88,110:[1,68],111:69,118:[2,143],126:[2,143],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],49:[2,145],54:[2,145],57:[2,145],73:[2,145],78:[2,145],86:[2,145],91:[2,145],93:[2,145],102:[2,145],103:87,104:[1,65],105:[1,233],106:[1,66],109:88,110:[1,68],111:69,118:[2,145],126:[2,145],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,151],6:[2,151],25:[2,151],26:[2,151],49:[2,151],54:[2,151],57:[2,151],73:[2,151],78:[2,151],86:[2,151],91:[2,151],93:[2,151],102:[2,151],104:[2,151],105:[2,151],106:[2,151],110:[2,151],118:[2,151],126:[2,151],128:[2,151],129:[2,151],132:[2,151],133:[2,151],134:[2,151],135:[2,151],136:[2,151],137:[2,151]},{1:[2,152],6:[2,152],25:[2,152],26:[2,152],49:[2,152],54:[2,152],57:[2,152],73:[2,152],78:[2,152],86:[2,152],91:[2,152],93:[2,152],102:[2,152],103:87,104:[1,65],105:[2,152],106:[1,66],109:88,110:[1,68],111:69,118:[2,152],126:[2,152],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],49:[2,156],54:[2,156],57:[2,156],73:[2,156],78:[2,156],86:[2,156],91:[2,156],93:[2,156],102:[2,156],104:[2,156],105:[2,156],106:[2,156],110:[2,156],118:[2,156],126:[2,156],128:[2,156],129:[2,156],132:[2,156],133:[2,156],134:[2,156],135:[2,156],136:[2,156],137:[2,156]},{116:[2,158],117:[2,158]},{27:159,28:[1,73],44:160,58:161,59:162,76:[1,70],89:[1,114],90:[1,115],113:234,115:158},{54:[1,235],116:[2,164],117:[2,164]},{54:[2,160],116:[2,160],117:[2,160]},{54:[2,161],116:[2,161],117:[2,161]},{54:[2,162],116:[2,162],117:[2,162]},{54:[2,163],116:[2,163],117:[2,163]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],49:[2,157],54:[2,157],57:[2,157],73:[2,157],78:[2,157],86:[2,157],91:[2,157],93:[2,157],102:[2,157],104:[2,157],105:[2,157],106:[2,157],110:[2,157],118:[2,157],126:[2,157],128:[2,157],129:[2,157],132:[2,157],133:[2,157],134:[2,157],135:[2,157],136:[2,157],137:[2,157]},{8:236,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:237,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[2,53],25:[2,53],53:238,54:[1,239],78:[2,53]},{6:[2,92],25:[2,92],26:[2,92],54:[2,92],78:[2,92]},{6:[2,39],25:[2,39],26:[2,39],43:[1,240],54:[2,39],78:[2,39]},{6:[2,42],25:[2,42],26:[2,42],54:[2,42],78:[2,42]},{6:[2,43],25:[2,43],26:[2,43],43:[2,43],54:[2,43],78:[2,43]},{6:[2,44],25:[2,44],26:[2,44],43:[2,44],54:[2,44],78:[2,44]},{6:[2,45],25:[2,45],26:[2,45],43:[2,45],54:[2,45],78:[2,45]},{1:[2,5],6:[2,5],26:[2,5],102:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],49:[2,25],54:[2,25],57:[2,25],73:[2,25],78:[2,25],86:[2,25],91:[2,25],93:[2,25],98:[2,25],99:[2,25],102:[2,25],104:[2,25],105:[2,25],106:[2,25],110:[2,25],118:[2,25],121:[2,25],123:[2,25],126:[2,25],128:[2,25],129:[2,25],132:[2,25],133:[2,25],134:[2,25],135:[2,25],136:[2,25],137:[2,25]},{1:[2,195],6:[2,195],25:[2,195],26:[2,195],49:[2,195],54:[2,195],57:[2,195],73:[2,195],78:[2,195],86:[2,195],91:[2,195],93:[2,195],102:[2,195],103:87,104:[2,195],105:[2,195],106:[2,195],109:88,110:[2,195],111:69,118:[2,195],126:[2,195],128:[2,195],129:[2,195],132:[1,78],133:[1,81],134:[2,195],135:[2,195],136:[2,195],137:[2,195]},{1:[2,196],6:[2,196],25:[2,196],26:[2,196],49:[2,196],54:[2,196],57:[2,196],73:[2,196],78:[2,196],86:[2,196],91:[2,196],93:[2,196],102:[2,196],103:87,104:[2,196],105:[2,196],106:[2,196],109:88,110:[2,196],111:69,118:[2,196],126:[2,196],128:[2,196],129:[2,196],132:[1,78],133:[1,81],134:[2,196],135:[2,196],136:[2,196],137:[2,196]},{1:[2,197],6:[2,197],25:[2,197],26:[2,197],49:[2,197],54:[2,197],57:[2,197],73:[2,197],78:[2,197],86:[2,197],91:[2,197],93:[2,197],102:[2,197],103:87,104:[2,197],105:[2,197],106:[2,197],109:88,110:[2,197],111:69,118:[2,197],126:[2,197],128:[2,197],129:[2,197],132:[1,78],133:[2,197],134:[2,197],135:[2,197],136:[2,197],137:[2,197]},{1:[2,198],6:[2,198],25:[2,198],26:[2,198],49:[2,198],54:[2,198],57:[2,198],73:[2,198],78:[2,198],86:[2,198],91:[2,198],93:[2,198],102:[2,198],103:87,104:[2,198],105:[2,198],106:[2,198],109:88,110:[2,198],111:69,118:[2,198],126:[2,198],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[2,198],135:[2,198],136:[2,198],137:[2,198]},{1:[2,199],6:[2,199],25:[2,199],26:[2,199],49:[2,199],54:[2,199],57:[2,199],73:[2,199],78:[2,199],86:[2,199],91:[2,199],93:[2,199],102:[2,199],103:87,104:[2,199],105:[2,199],106:[2,199],109:88,110:[2,199],111:69,118:[2,199],126:[2,199],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[2,199],136:[2,199],137:[1,85]},{1:[2,200],6:[2,200],25:[2,200],26:[2,200],49:[2,200],54:[2,200],57:[2,200],73:[2,200],78:[2,200],86:[2,200],91:[2,200],93:[2,200],102:[2,200],103:87,104:[2,200],105:[2,200],106:[2,200],109:88,110:[2,200],111:69,118:[2,200],126:[2,200],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[2,200],137:[1,85]},{1:[2,201],6:[2,201],25:[2,201],26:[2,201],49:[2,201],54:[2,201],57:[2,201],73:[2,201],78:[2,201],86:[2,201],91:[2,201],93:[2,201],102:[2,201],103:87,104:[2,201],105:[2,201],106:[2,201],109:88,110:[2,201],111:69,118:[2,201],126:[2,201],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[2,201],136:[2,201],137:[2,201]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],49:[2,186],54:[2,186],57:[2,186],73:[2,186],78:[2,186],86:[2,186],91:[2,186],93:[2,186],102:[2,186],103:87,104:[1,65],105:[2,186],106:[1,66],109:88,110:[1,68],111:69,118:[2,186],126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],49:[2,185],54:[2,185],57:[2,185],73:[2,185],78:[2,185],86:[2,185],91:[2,185],93:[2,185],102:[2,185],103:87,104:[1,65],105:[2,185],106:[1,66],109:88,110:[1,68],111:69,118:[2,185],126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],49:[2,104],54:[2,104],57:[2,104],66:[2,104],67:[2,104],68:[2,104],69:[2,104],71:[2,104],73:[2,104],74:[2,104],78:[2,104],84:[2,104],85:[2,104],86:[2,104],91:[2,104],93:[2,104],102:[2,104],104:[2,104],105:[2,104],106:[2,104],110:[2,104],118:[2,104],126:[2,104],128:[2,104],129:[2,104],132:[2,104],133:[2,104],134:[2,104],135:[2,104],136:[2,104],137:[2,104]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],40:[2,80],49:[2,80],54:[2,80],57:[2,80],66:[2,80],67:[2,80],68:[2,80],69:[2,80],71:[2,80],73:[2,80],74:[2,80],78:[2,80],80:[2,80],84:[2,80],85:[2,80],86:[2,80],91:[2,80],93:[2,80],102:[2,80],104:[2,80],105:[2,80],106:[2,80],110:[2,80],118:[2,80],126:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80],136:[2,80],137:[2,80],138:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],40:[2,81],49:[2,81],54:[2,81],57:[2,81],66:[2,81],67:[2,81],68:[2,81],69:[2,81],71:[2,81],73:[2,81],74:[2,81],78:[2,81],80:[2,81],84:[2,81],85:[2,81],86:[2,81],91:[2,81],93:[2,81],102:[2,81],104:[2,81],105:[2,81],106:[2,81],110:[2,81],118:[2,81],126:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81],136:[2,81],137:[2,81],138:[2,81]},{1:[2,82],6:[2,82],25:[2,82],26:[2,82],40:[2,82],49:[2,82],54:[2,82],57:[2,82],66:[2,82],67:[2,82],68:[2,82],69:[2,82],71:[2,82],73:[2,82],74:[2,82],78:[2,82],80:[2,82],84:[2,82],85:[2,82],86:[2,82],91:[2,82],93:[2,82],102:[2,82],104:[2,82],105:[2,82],106:[2,82],110:[2,82],118:[2,82],126:[2,82],128:[2,82],129:[2,82],130:[2,82],131:[2,82],132:[2,82],133:[2,82],134:[2,82],135:[2,82],136:[2,82],137:[2,82],138:[2,82]},{1:[2,83],6:[2,83],25:[2,83],26:[2,83],40:[2,83],49:[2,83],54:[2,83],57:[2,83],66:[2,83],67:[2,83],68:[2,83],69:[2,83],71:[2,83],73:[2,83],74:[2,83],78:[2,83],80:[2,83],84:[2,83],85:[2,83],86:[2,83],91:[2,83],93:[2,83],102:[2,83],104:[2,83],105:[2,83],106:[2,83],110:[2,83],118:[2,83],126:[2,83],128:[2,83],129:[2,83],130:[2,83],131:[2,83],132:[2,83],133:[2,83],134:[2,83],135:[2,83],136:[2,83],137:[2,83],138:[2,83]},{73:[1,241]},{57:[1,194],73:[2,88],92:242,93:[1,193],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{73:[2,89]},{8:243,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,73:[2,123],76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{12:[2,117],28:[2,117],30:[2,117],31:[2,117],33:[2,117],34:[2,117],35:[2,117],36:[2,117],37:[2,117],38:[2,117],45:[2,117],46:[2,117],47:[2,117],51:[2,117],52:[2,117],73:[2,117],76:[2,117],79:[2,117],83:[2,117],88:[2,117],89:[2,117],90:[2,117],96:[2,117],100:[2,117],101:[2,117],104:[2,117],106:[2,117],108:[2,117],110:[2,117],119:[2,117],125:[2,117],127:[2,117],128:[2,117],129:[2,117],130:[2,117],131:[2,117]},{12:[2,118],28:[2,118],30:[2,118],31:[2,118],33:[2,118],34:[2,118],35:[2,118],36:[2,118],37:[2,118],38:[2,118],45:[2,118],46:[2,118],47:[2,118],51:[2,118],52:[2,118],73:[2,118],76:[2,118],79:[2,118],83:[2,118],88:[2,118],89:[2,118],90:[2,118],96:[2,118],100:[2,118],101:[2,118],104:[2,118],106:[2,118],108:[2,118],110:[2,118],119:[2,118],125:[2,118],127:[2,118],128:[2,118],129:[2,118],130:[2,118],131:[2,118]},{1:[2,87],6:[2,87],25:[2,87],26:[2,87],40:[2,87],49:[2,87],54:[2,87],57:[2,87],66:[2,87],67:[2,87],68:[2,87],69:[2,87],71:[2,87],73:[2,87],74:[2,87],78:[2,87],80:[2,87],84:[2,87],85:[2,87],86:[2,87],91:[2,87],93:[2,87],102:[2,87],104:[2,87],105:[2,87],106:[2,87],110:[2,87],118:[2,87],126:[2,87],128:[2,87],129:[2,87],130:[2,87],131:[2,87],132:[2,87],133:[2,87],134:[2,87],135:[2,87],136:[2,87],137:[2,87],138:[2,87]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],49:[2,105],54:[2,105],57:[2,105],66:[2,105],67:[2,105],68:[2,105],69:[2,105],71:[2,105],73:[2,105],74:[2,105],78:[2,105],84:[2,105],85:[2,105],86:[2,105],91:[2,105],93:[2,105],102:[2,105],104:[2,105],105:[2,105],106:[2,105],110:[2,105],118:[2,105],126:[2,105],128:[2,105],129:[2,105],132:[2,105],133:[2,105],134:[2,105],135:[2,105],136:[2,105],137:[2,105]},{1:[2,36],6:[2,36],25:[2,36],26:[2,36],49:[2,36],54:[2,36],57:[2,36],73:[2,36],78:[2,36],86:[2,36],91:[2,36],93:[2,36],102:[2,36],103:87,104:[2,36],105:[2,36],106:[2,36],109:88,110:[2,36],111:69,118:[2,36],126:[2,36],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{8:244,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:245,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],49:[2,110],54:[2,110],57:[2,110],66:[2,110],67:[2,110],68:[2,110],69:[2,110],71:[2,110],73:[2,110],74:[2,110],78:[2,110],84:[2,110],85:[2,110],86:[2,110],91:[2,110],93:[2,110],102:[2,110],104:[2,110],105:[2,110],106:[2,110],110:[2,110],118:[2,110],126:[2,110],128:[2,110],129:[2,110],132:[2,110],133:[2,110],134:[2,110],135:[2,110],136:[2,110],137:[2,110]},{6:[2,53],25:[2,53],53:246,54:[1,229],86:[2,53]},{6:[2,129],25:[2,129],26:[2,129],54:[2,129],57:[1,247],86:[2,129],91:[2,129],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{50:248,51:[1,60],52:[1,61]},{6:[2,54],25:[2,54],26:[2,54],27:110,28:[1,73],44:111,55:249,56:109,58:112,59:113,76:[1,70],89:[1,114],90:[1,115]},{6:[1,250],25:[1,251]},{6:[2,61],25:[2,61],26:[2,61],49:[2,61],54:[2,61]},{8:252,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,202],6:[2,202],25:[2,202],26:[2,202],49:[2,202],54:[2,202],57:[2,202],73:[2,202],78:[2,202],86:[2,202],91:[2,202],93:[2,202],102:[2,202],103:87,104:[2,202],105:[2,202],106:[2,202],109:88,110:[2,202],111:69,118:[2,202],126:[2,202],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{8:253,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:254,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,205],6:[2,205],25:[2,205],26:[2,205],49:[2,205],54:[2,205],57:[2,205],73:[2,205],78:[2,205],86:[2,205],91:[2,205],93:[2,205],102:[2,205],103:87,104:[2,205],105:[2,205],106:[2,205],109:88,110:[2,205],111:69,118:[2,205],126:[2,205],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],49:[2,184],54:[2,184],57:[2,184],73:[2,184],78:[2,184],86:[2,184],91:[2,184],93:[2,184],102:[2,184],104:[2,184],105:[2,184],106:[2,184],110:[2,184],118:[2,184],126:[2,184],128:[2,184],129:[2,184],132:[2,184],133:[2,184],134:[2,184],135:[2,184],136:[2,184],137:[2,184]},{8:255,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],49:[2,134],54:[2,134],57:[2,134],73:[2,134],78:[2,134],86:[2,134],91:[2,134],93:[2,134],98:[1,256],102:[2,134],104:[2,134],105:[2,134],106:[2,134],110:[2,134],118:[2,134],126:[2,134],128:[2,134],129:[2,134],132:[2,134],133:[2,134],134:[2,134],135:[2,134],136:[2,134],137:[2,134]},{5:257,25:[1,5]},{5:260,25:[1,5],27:258,28:[1,73],59:259,76:[1,70]},{120:261,122:219,123:[1,220]},{26:[1,262],121:[1,263],122:264,123:[1,220]},{26:[2,177],121:[2,177],123:[2,177]},{8:266,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],95:265,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,98],5:267,6:[2,98],25:[1,5],26:[2,98],49:[2,98],54:[2,98],57:[2,98],73:[2,98],78:[2,98],86:[2,98],91:[2,98],93:[2,98],102:[2,98],103:87,104:[1,65],105:[2,98],106:[1,66],109:88,110:[1,68],111:69,118:[2,98],126:[2,98],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],49:[2,101],54:[2,101],57:[2,101],73:[2,101],78:[2,101],86:[2,101],91:[2,101],93:[2,101],102:[2,101],104:[2,101],105:[2,101],106:[2,101],110:[2,101],118:[2,101],126:[2,101],128:[2,101],129:[2,101],132:[2,101],133:[2,101],134:[2,101],135:[2,101],136:[2,101],137:[2,101]},{8:268,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],49:[2,141],54:[2,141],57:[2,141],66:[2,141],67:[2,141],68:[2,141],69:[2,141],71:[2,141],73:[2,141],74:[2,141],78:[2,141],84:[2,141],85:[2,141],86:[2,141],91:[2,141],93:[2,141],102:[2,141],104:[2,141],105:[2,141],106:[2,141],110:[2,141],118:[2,141],126:[2,141],128:[2,141],129:[2,141],132:[2,141],133:[2,141],134:[2,141],135:[2,141],136:[2,141],137:[2,141]},{6:[1,74],26:[1,269]},{8:270,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[2,67],12:[2,118],25:[2,67],28:[2,118],30:[2,118],31:[2,118],33:[2,118],34:[2,118],35:[2,118],36:[2,118],37:[2,118],38:[2,118],45:[2,118],46:[2,118],47:[2,118],51:[2,118],52:[2,118],54:[2,67],76:[2,118],79:[2,118],83:[2,118],88:[2,118],89:[2,118],90:[2,118],91:[2,67],96:[2,118],100:[2,118],101:[2,118],104:[2,118],106:[2,118],108:[2,118],110:[2,118],119:[2,118],125:[2,118],127:[2,118],128:[2,118],129:[2,118],130:[2,118],131:[2,118]},{6:[1,272],25:[1,273],91:[1,271]},{6:[2,54],8:202,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[2,54],26:[2,54],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:148,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],86:[2,54],88:[1,58],89:[1,59],90:[1,57],91:[2,54],94:274,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[2,53],25:[2,53],26:[2,53],53:275,54:[1,229]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],49:[2,181],54:[2,181],57:[2,181],73:[2,181],78:[2,181],86:[2,181],91:[2,181],93:[2,181],102:[2,181],104:[2,181],105:[2,181],106:[2,181],110:[2,181],118:[2,181],121:[2,181],126:[2,181],128:[2,181],129:[2,181],132:[2,181],133:[2,181],134:[2,181],135:[2,181],136:[2,181],137:[2,181]},{8:276,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:277,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{116:[2,159],117:[2,159]},{27:159,28:[1,73],44:160,58:161,59:162,76:[1,70],89:[1,114],90:[1,115],115:278},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],49:[2,166],54:[2,166],57:[2,166],73:[2,166],78:[2,166],86:[2,166],91:[2,166],93:[2,166],102:[2,166],103:87,104:[2,166],105:[1,279],106:[2,166],109:88,110:[2,166],111:69,118:[1,280],126:[2,166],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,167],6:[2,167],25:[2,167],26:[2,167],49:[2,167],54:[2,167],57:[2,167],73:[2,167],78:[2,167],86:[2,167],91:[2,167],93:[2,167],102:[2,167],103:87,104:[2,167],105:[1,281],106:[2,167],109:88,110:[2,167],111:69,118:[2,167],126:[2,167],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{6:[1,283],25:[1,284],78:[1,282]},{6:[2,54],11:169,25:[2,54],26:[2,54],27:170,28:[1,73],29:171,30:[1,71],31:[1,72],41:285,42:168,44:172,46:[1,46],78:[2,54],89:[1,114]},{8:286,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,287],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,86],6:[2,86],25:[2,86],26:[2,86],40:[2,86],49:[2,86],54:[2,86],57:[2,86],66:[2,86],67:[2,86],68:[2,86],69:[2,86],71:[2,86],73:[2,86],74:[2,86],78:[2,86],80:[2,86],84:[2,86],85:[2,86],86:[2,86],91:[2,86],93:[2,86],102:[2,86],104:[2,86],105:[2,86],106:[2,86],110:[2,86],118:[2,86],126:[2,86],128:[2,86],129:[2,86],130:[2,86],131:[2,86],132:[2,86],133:[2,86],134:[2,86],135:[2,86],136:[2,86],137:[2,86],138:[2,86]},{8:288,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,73:[2,121],76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{73:[2,122],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,37],6:[2,37],25:[2,37],26:[2,37],49:[2,37],54:[2,37],57:[2,37],73:[2,37],78:[2,37],86:[2,37],91:[2,37],93:[2,37],102:[2,37],103:87,104:[2,37],105:[2,37],106:[2,37],109:88,110:[2,37],111:69,118:[2,37],126:[2,37],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{26:[1,289],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{6:[1,272],25:[1,273],86:[1,290]},{6:[2,67],25:[2,67],26:[2,67],54:[2,67],86:[2,67],91:[2,67]},{5:291,25:[1,5]},{6:[2,57],25:[2,57],26:[2,57],49:[2,57],54:[2,57]},{27:110,28:[1,73],44:111,55:292,56:109,58:112,59:113,76:[1,70],89:[1,114],90:[1,115]},{6:[2,55],25:[2,55],26:[2,55],27:110,28:[1,73],44:111,48:293,54:[2,55],55:108,56:109,58:112,59:113,76:[1,70],89:[1,114],90:[1,115]},{6:[2,62],25:[2,62],26:[2,62],49:[2,62],54:[2,62],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{26:[1,294],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,204],6:[2,204],25:[2,204],26:[2,204],49:[2,204],54:[2,204],57:[2,204],73:[2,204],78:[2,204],86:[2,204],91:[2,204],93:[2,204],102:[2,204],103:87,104:[2,204],105:[2,204],106:[2,204],109:88,110:[2,204],111:69,118:[2,204],126:[2,204],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{5:295,25:[1,5],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{5:296,25:[1,5]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],49:[2,135],54:[2,135],57:[2,135],73:[2,135],78:[2,135],86:[2,135],91:[2,135],93:[2,135],102:[2,135],104:[2,135],105:[2,135],106:[2,135],110:[2,135],118:[2,135],126:[2,135],128:[2,135],129:[2,135],132:[2,135],133:[2,135],134:[2,135],135:[2,135],136:[2,135],137:[2,135]},{5:297,25:[1,5]},{5:298,25:[1,5]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],49:[2,139],54:[2,139],57:[2,139],73:[2,139],78:[2,139],86:[2,139],91:[2,139],93:[2,139],98:[2,139],102:[2,139],104:[2,139],105:[2,139],106:[2,139],110:[2,139],118:[2,139],126:[2,139],128:[2,139],129:[2,139],132:[2,139],133:[2,139],134:[2,139],135:[2,139],136:[2,139],137:[2,139]},{26:[1,299],121:[1,300],122:264,123:[1,220]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],49:[2,175],54:[2,175],57:[2,175],73:[2,175],78:[2,175],86:[2,175],91:[2,175],93:[2,175],102:[2,175],104:[2,175],105:[2,175],106:[2,175],110:[2,175],118:[2,175],126:[2,175],128:[2,175],129:[2,175],132:[2,175],133:[2,175],134:[2,175],135:[2,175],136:[2,175],137:[2,175]},{5:301,25:[1,5]},{26:[2,178],121:[2,178],123:[2,178]},{5:302,25:[1,5],54:[1,303]},{25:[2,131],54:[2,131],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],49:[2,99],54:[2,99],57:[2,99],73:[2,99],78:[2,99],86:[2,99],91:[2,99],93:[2,99],102:[2,99],104:[2,99],105:[2,99],106:[2,99],110:[2,99],118:[2,99],126:[2,99],128:[2,99],129:[2,99],132:[2,99],133:[2,99],134:[2,99],135:[2,99],136:[2,99],137:[2,99]},{1:[2,102],5:304,6:[2,102],25:[1,5],26:[2,102],49:[2,102],54:[2,102],57:[2,102],73:[2,102],78:[2,102],86:[2,102],91:[2,102],93:[2,102],102:[2,102],103:87,104:[1,65],105:[2,102],106:[1,66],109:88,110:[1,68],111:69,118:[2,102],126:[2,102],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{102:[1,305]},{91:[1,306],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,116],6:[2,116],25:[2,116],26:[2,116],40:[2,116],49:[2,116],54:[2,116],57:[2,116],66:[2,116],67:[2,116],68:[2,116],69:[2,116],71:[2,116],73:[2,116],74:[2,116],78:[2,116],84:[2,116],85:[2,116],86:[2,116],91:[2,116],93:[2,116],102:[2,116],104:[2,116],105:[2,116],106:[2,116],110:[2,116],116:[2,116],117:[2,116],118:[2,116],126:[2,116],128:[2,116],129:[2,116],132:[2,116],133:[2,116],134:[2,116],135:[2,116],136:[2,116],137:[2,116]},{8:202,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:148,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],94:307,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:202,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,147],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:148,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],87:308,88:[1,58],89:[1,59],90:[1,57],94:146,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[2,125],25:[2,125],26:[2,125],54:[2,125],86:[2,125],91:[2,125]},{6:[1,272],25:[1,273],26:[1,309]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],49:[2,144],54:[2,144],57:[2,144],73:[2,144],78:[2,144],86:[2,144],91:[2,144],93:[2,144],102:[2,144],103:87,104:[1,65],105:[2,144],106:[1,66],109:88,110:[1,68],111:69,118:[2,144],126:[2,144],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],49:[2,146],54:[2,146],57:[2,146],73:[2,146],78:[2,146],86:[2,146],91:[2,146],93:[2,146],102:[2,146],103:87,104:[1,65],105:[2,146],106:[1,66],109:88,110:[1,68],111:69,118:[2,146],126:[2,146],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{116:[2,165],117:[2,165]},{8:310,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:311,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:312,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,90],6:[2,90],25:[2,90],26:[2,90],40:[2,90],49:[2,90],54:[2,90],57:[2,90],66:[2,90],67:[2,90],68:[2,90],69:[2,90],71:[2,90],73:[2,90],74:[2,90],78:[2,90],84:[2,90],85:[2,90],86:[2,90],91:[2,90],93:[2,90],102:[2,90],104:[2,90],105:[2,90],106:[2,90],110:[2,90],116:[2,90],117:[2,90],118:[2,90],126:[2,90],128:[2,90],129:[2,90],132:[2,90],133:[2,90],134:[2,90],135:[2,90],136:[2,90],137:[2,90]},{11:169,27:170,28:[1,73],29:171,30:[1,71],31:[1,72],41:313,42:168,44:172,46:[1,46],89:[1,114]},{6:[2,91],11:169,25:[2,91],26:[2,91],27:170,28:[1,73],29:171,30:[1,71],31:[1,72],41:167,42:168,44:172,46:[1,46],54:[2,91],77:314,89:[1,114]},{6:[2,93],25:[2,93],26:[2,93],54:[2,93],78:[2,93]},{6:[2,40],25:[2,40],26:[2,40],54:[2,40],78:[2,40],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{8:315,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{73:[2,120],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,38],6:[2,38],25:[2,38],26:[2,38],49:[2,38],54:[2,38],57:[2,38],73:[2,38],78:[2,38],86:[2,38],91:[2,38],93:[2,38],102:[2,38],104:[2,38],105:[2,38],106:[2,38],110:[2,38],118:[2,38],126:[2,38],128:[2,38],129:[2,38],132:[2,38],133:[2,38],134:[2,38],135:[2,38],136:[2,38],137:[2,38]},{1:[2,111],6:[2,111],25:[2,111],26:[2,111],49:[2,111],54:[2,111],57:[2,111],66:[2,111],67:[2,111],68:[2,111],69:[2,111],71:[2,111],73:[2,111],74:[2,111],78:[2,111],84:[2,111],85:[2,111],86:[2,111],91:[2,111],93:[2,111],102:[2,111],104:[2,111],105:[2,111],106:[2,111],110:[2,111],118:[2,111],126:[2,111],128:[2,111],129:[2,111],132:[2,111],133:[2,111],134:[2,111],135:[2,111],136:[2,111],137:[2,111]},{1:[2,49],6:[2,49],25:[2,49],26:[2,49],49:[2,49],54:[2,49],57:[2,49],73:[2,49],78:[2,49],86:[2,49],91:[2,49],93:[2,49],102:[2,49],104:[2,49],105:[2,49],106:[2,49],110:[2,49],118:[2,49],126:[2,49],128:[2,49],129:[2,49],132:[2,49],133:[2,49],134:[2,49],135:[2,49],136:[2,49],137:[2,49]},{6:[2,58],25:[2,58],26:[2,58],49:[2,58],54:[2,58]},{6:[2,53],25:[2,53],26:[2,53],53:316,54:[1,204]},{1:[2,203],6:[2,203],25:[2,203],26:[2,203],49:[2,203],54:[2,203],57:[2,203],73:[2,203],78:[2,203],86:[2,203],91:[2,203],93:[2,203],102:[2,203],104:[2,203],105:[2,203],106:[2,203],110:[2,203],118:[2,203],126:[2,203],128:[2,203],129:[2,203],132:[2,203],133:[2,203],134:[2,203],135:[2,203],136:[2,203],137:[2,203]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],49:[2,182],54:[2,182],57:[2,182],73:[2,182],78:[2,182],86:[2,182],91:[2,182],93:[2,182],102:[2,182],104:[2,182],105:[2,182],106:[2,182],110:[2,182],118:[2,182],121:[2,182],126:[2,182],128:[2,182],129:[2,182],132:[2,182],133:[2,182],134:[2,182],135:[2,182],136:[2,182],137:[2,182]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],49:[2,136],54:[2,136],57:[2,136],73:[2,136],78:[2,136],86:[2,136],91:[2,136],93:[2,136],102:[2,136],104:[2,136],105:[2,136],106:[2,136],110:[2,136],118:[2,136],126:[2,136],128:[2,136],129:[2,136],132:[2,136],133:[2,136],134:[2,136],135:[2,136],136:[2,136],137:[2,136]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],49:[2,137],54:[2,137],57:[2,137],73:[2,137],78:[2,137],86:[2,137],91:[2,137],93:[2,137],98:[2,137],102:[2,137],104:[2,137],105:[2,137],106:[2,137],110:[2,137],118:[2,137],126:[2,137],128:[2,137],129:[2,137],132:[2,137],133:[2,137],134:[2,137],135:[2,137],136:[2,137],137:[2,137]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],49:[2,138],54:[2,138],57:[2,138],73:[2,138],78:[2,138],86:[2,138],91:[2,138],93:[2,138],98:[2,138],102:[2,138],104:[2,138],105:[2,138],106:[2,138],110:[2,138],118:[2,138],126:[2,138],128:[2,138],129:[2,138],132:[2,138],133:[2,138],134:[2,138],135:[2,138],136:[2,138],137:[2,138]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],49:[2,173],54:[2,173],57:[2,173],73:[2,173],78:[2,173],86:[2,173],91:[2,173],93:[2,173],102:[2,173],104:[2,173],105:[2,173],106:[2,173],110:[2,173],118:[2,173],126:[2,173],128:[2,173],129:[2,173],132:[2,173],133:[2,173],134:[2,173],135:[2,173],136:[2,173],137:[2,173]},{5:317,25:[1,5]},{26:[1,318]},{6:[1,319],26:[2,179],121:[2,179],123:[2,179]},{8:320,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,103],6:[2,103],25:[2,103],26:[2,103],49:[2,103],54:[2,103],57:[2,103],73:[2,103],78:[2,103],86:[2,103],91:[2,103],93:[2,103],102:[2,103],104:[2,103],105:[2,103],106:[2,103],110:[2,103],118:[2,103],126:[2,103],128:[2,103],129:[2,103],132:[2,103],133:[2,103],134:[2,103],135:[2,103],136:[2,103],137:[2,103]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],49:[2,142],54:[2,142],57:[2,142],66:[2,142],67:[2,142],68:[2,142],69:[2,142],71:[2,142],73:[2,142],74:[2,142],78:[2,142],84:[2,142],85:[2,142],86:[2,142],91:[2,142],93:[2,142],102:[2,142],104:[2,142],105:[2,142],106:[2,142],110:[2,142],118:[2,142],126:[2,142],128:[2,142],129:[2,142],132:[2,142],133:[2,142],134:[2,142],135:[2,142],136:[2,142],137:[2,142]},{1:[2,119],6:[2,119],25:[2,119],26:[2,119],49:[2,119],54:[2,119],57:[2,119],66:[2,119],67:[2,119],68:[2,119],69:[2,119],71:[2,119],73:[2,119],74:[2,119],78:[2,119],84:[2,119],85:[2,119],86:[2,119],91:[2,119],93:[2,119],102:[2,119],104:[2,119],105:[2,119],106:[2,119],110:[2,119],118:[2,119],126:[2,119],128:[2,119],129:[2,119],132:[2,119],133:[2,119],134:[2,119],135:[2,119],136:[2,119],137:[2,119]},{6:[2,126],25:[2,126],26:[2,126],54:[2,126],86:[2,126],91:[2,126]},{6:[2,53],25:[2,53],26:[2,53],53:321,54:[1,229]},{6:[2,127],25:[2,127],26:[2,127],54:[2,127],86:[2,127],91:[2,127]},{1:[2,168],6:[2,168],25:[2,168],26:[2,168],49:[2,168],54:[2,168],57:[2,168],73:[2,168],78:[2,168],86:[2,168],91:[2,168],93:[2,168],102:[2,168],103:87,104:[2,168],105:[2,168],106:[2,168],109:88,110:[2,168],111:69,118:[1,322],126:[2,168],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,170],6:[2,170],25:[2,170],26:[2,170],49:[2,170],54:[2,170],57:[2,170],73:[2,170],78:[2,170],86:[2,170],91:[2,170],93:[2,170],102:[2,170],103:87,104:[2,170],105:[1,323],106:[2,170],109:88,110:[2,170],111:69,118:[2,170],126:[2,170],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,169],6:[2,169],25:[2,169],26:[2,169],49:[2,169],54:[2,169],57:[2,169],73:[2,169],78:[2,169],86:[2,169],91:[2,169],93:[2,169],102:[2,169],103:87,104:[2,169],105:[2,169],106:[2,169],109:88,110:[2,169],111:69,118:[2,169],126:[2,169],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{6:[2,94],25:[2,94],26:[2,94],54:[2,94],78:[2,94]},{6:[2,53],25:[2,53],26:[2,53],53:324,54:[1,239]},{26:[1,325],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{6:[1,250],25:[1,251],26:[1,326]},{26:[1,327]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],49:[2,176],54:[2,176],57:[2,176],73:[2,176],78:[2,176],86:[2,176],91:[2,176],93:[2,176],102:[2,176],104:[2,176],105:[2,176],106:[2,176],110:[2,176],118:[2,176],126:[2,176],128:[2,176],129:[2,176],132:[2,176],133:[2,176],134:[2,176],135:[2,176],136:[2,176],137:[2,176]},{26:[2,180],121:[2,180],123:[2,180]},{25:[2,132],54:[2,132],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{6:[1,272],25:[1,273],26:[1,328]},{8:329,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:330,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[1,283],25:[1,284],26:[1,331]},{6:[2,41],25:[2,41],26:[2,41],54:[2,41],78:[2,41]},{6:[2,59],25:[2,59],26:[2,59],49:[2,59],54:[2,59]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],49:[2,174],54:[2,174],57:[2,174],73:[2,174],78:[2,174],86:[2,174],91:[2,174],93:[2,174],102:[2,174],104:[2,174],105:[2,174],106:[2,174],110:[2,174],118:[2,174],126:[2,174],128:[2,174],129:[2,174],132:[2,174],133:[2,174],134:[2,174],135:[2,174],136:[2,174],137:[2,174]},{6:[2,128],25:[2,128],26:[2,128],54:[2,128],86:[2,128],91:[2,128]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],49:[2,171],54:[2,171],57:[2,171],73:[2,171],78:[2,171],86:[2,171],91:[2,171],93:[2,171],102:[2,171],103:87,104:[2,171],105:[2,171],106:[2,171],109:88,110:[2,171],111:69,118:[2,171],126:[2,171],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],49:[2,172],54:[2,172],57:[2,172],73:[2,172],78:[2,172],86:[2,172],91:[2,172],93:[2,172],102:[2,172],103:87,104:[2,172],105:[2,172],106:[2,172],109:88,110:[2,172],111:69,118:[2,172],126:[2,172],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{6:[2,95],25:[2,95],26:[2,95],54:[2,95],78:[2,95]}], -defaultActions: {60:[2,51],61:[2,52],75:[2,3],94:[2,109],191:[2,89]}, -parseError: function parseError(str, hash) { - var e = new Error(str) - e.location = hash.loc - throw e; -}, -parse: function parse(input) { - var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; - this.lexer.setInput(input); - this.lexer.yy = this.yy; - this.yy.lexer = this.lexer; - this.yy.parser = this; - if (typeof this.lexer.yylloc == "undefined") - this.lexer.yylloc = {}; - var yyloc = this.lexer.yylloc; - lstack.push(yyloc); - var ranges = this.lexer.options && this.lexer.options.ranges; - if (typeof this.yy.parseError === "function") - this.parseError = this.yy.parseError; - function popStack(n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - function lex() { - var token; - token = self.lexer.lex() || 1; - if (typeof token !== "number") { - token = self.symbols_[token] || token; - } - return token; - } - var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == "undefined") { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === "undefined" || !action.length || !action[0]) { - var errStr = ""; - if (!recovering) { - expected = []; - for (p in table[state]) - if (this.terminals_[p] && p > 2) { - expected.push("'" + this.terminals_[p] + "'"); - } - if (this.lexer.showPosition) { - errStr = this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; - } else { - errStr = "Unexpected " + (symbol == 1?"end of input":"'" + (this.terminals_[symbol] || symbol) + "'"); - } - this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected}); - } - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(this.lexer.yytext); - lstack.push(this.lexer.yylloc); - stack.push(action[1]); - symbol = null; - if (!preErrorSymbol) { - yyleng = this.lexer.yyleng; - yytext = this.lexer.yytext; - yylineno = this.lexer.yylineno; - yyloc = this.lexer.yylloc; - if (recovering > 0) - recovering--; - } else { - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column}; - if (ranges) { - yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]]; - } - r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; -} -}; -undefined -function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser; - -module.exports = new Parser; - - -}); - -ace.define('ace/mode/coffee/nodes', ['require', 'exports', 'module' , 'ace/mode/coffee/scope', 'ace/mode/coffee/lexer', 'ace/mode/coffee/helpers'], function(require, exports, module) { - - var Access, Arr, Assign, Base, Block, Call, Class, Closure, Code, CodeFragment, Comment, Existence, Extends, For, IDENTIFIER, IDENTIFIER_STR, IS_STRING, If, In, Index, LEVEL_ACCESS, LEVEL_COND, LEVEL_LIST, LEVEL_OP, LEVEL_PAREN, LEVEL_TOP, Literal, METHOD_DEF, NEGATE, NO, Obj, Op, Param, Parens, RESERVED, Range, Return, SIMPLENUM, STRICT_PROSCRIBED, Scope, Slice, Splat, Switch, TAB, THIS, Throw, Try, UTILITIES, Value, While, YES, addLocationDataFn, compact, del, ends, extend, flatten, fragmentsToText, last, locationDataToString, merge, multident, some, starts, throwSyntaxError, unfoldSoak, utility, _ref, _ref1, _ref2, _ref3, - __hasProp = {}.hasOwnProperty, - __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, - __slice = [].slice; - - Error.stackTraceLimit = Infinity; - - Scope = require('./scope').Scope; - - _ref = require('./lexer'), RESERVED = _ref.RESERVED, STRICT_PROSCRIBED = _ref.STRICT_PROSCRIBED; - - _ref1 = require('./helpers'), compact = _ref1.compact, flatten = _ref1.flatten, extend = _ref1.extend, merge = _ref1.merge, del = _ref1.del, starts = _ref1.starts, ends = _ref1.ends, last = _ref1.last, some = _ref1.some, addLocationDataFn = _ref1.addLocationDataFn, locationDataToString = _ref1.locationDataToString, throwSyntaxError = _ref1.throwSyntaxError; - - exports.extend = extend; - - exports.addLocationDataFn = addLocationDataFn; - - YES = function() { - return true; - }; - - NO = function() { - return false; - }; - - THIS = function() { - return this; - }; - - NEGATE = function() { - this.negated = !this.negated; - return this; - }; - - exports.CodeFragment = CodeFragment = (function() { - function CodeFragment(parent, code) { - var _ref2; - this.code = "" + code; - this.locationData = parent != null ? parent.locationData : void 0; - this.type = (parent != null ? (_ref2 = parent.constructor) != null ? _ref2.name : void 0 : void 0) || 'unknown'; - } - - CodeFragment.prototype.toString = function() { - return "" + this.code + (this.locationData ? ": " + locationDataToString(this.locationData) : ''); - }; - - return CodeFragment; - - })(); - - fragmentsToText = function(fragments) { - var fragment; - return ((function() { - var _i, _len, _results; - _results = []; - for (_i = 0, _len = fragments.length; _i < _len; _i++) { - fragment = fragments[_i]; - _results.push(fragment.code); - } - return _results; - })()).join(''); - }; - - exports.Base = Base = (function() { - function Base() {} - - Base.prototype.compile = function(o, lvl) { - return fragmentsToText(this.compileToFragments(o, lvl)); - }; - - Base.prototype.compileToFragments = function(o, lvl) { - var node; - o = extend({}, o); - if (lvl) { - o.level = lvl; - } - node = this.unfoldSoak(o) || this; - node.tab = o.indent; - if (o.level === LEVEL_TOP || !node.isStatement(o)) { - return node.compileNode(o); - } else { - return node.compileClosure(o); - } - }; - - Base.prototype.compileClosure = function(o) { - var jumpNode; - if (jumpNode = this.jumps()) { - jumpNode.error('cannot use a pure statement in an expression'); - } - o.sharedScope = true; - return Closure.wrap(this).compileNode(o); - }; - - Base.prototype.cache = function(o, level, reused) { - var ref, sub; - if (!this.isComplex()) { - ref = level ? this.compileToFragments(o, level) : this; - return [ref, ref]; - } else { - ref = new Literal(reused || o.scope.freeVariable('ref')); - sub = new Assign(ref, this); - if (level) { - return [sub.compileToFragments(o, level), [this.makeCode(ref.value)]]; - } else { - return [sub, ref]; - } - } - }; - - Base.prototype.cacheToCodeFragments = function(cacheValues) { - return [fragmentsToText(cacheValues[0]), fragmentsToText(cacheValues[1])]; - }; - - Base.prototype.makeReturn = function(res) { - var me; - me = this.unwrapAll(); - if (res) { - return new Call(new Literal("" + res + ".push"), [me]); - } else { - return new Return(me); - } - }; - - Base.prototype.contains = function(pred) { - var node; - node = void 0; - this.traverseChildren(false, function(n) { - if (pred(n)) { - node = n; - return false; - } - }); - return node; - }; - - Base.prototype.lastNonComment = function(list) { - var i; - i = list.length; - while (i--) { - if (!(list[i] instanceof Comment)) { - return list[i]; - } - } - return null; - }; - - Base.prototype.toString = function(idt, name) { - var tree; - if (idt == null) { - idt = ''; - } - if (name == null) { - name = this.constructor.name; - } - tree = '\n' + idt + name; - if (this.soak) { - tree += '?'; - } - this.eachChild(function(node) { - return tree += node.toString(idt + TAB); - }); - return tree; - }; - - Base.prototype.eachChild = function(func) { - var attr, child, _i, _j, _len, _len1, _ref2, _ref3; - if (!this.children) { - return this; - } - _ref2 = this.children; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - attr = _ref2[_i]; - if (this[attr]) { - _ref3 = flatten([this[attr]]); - for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) { - child = _ref3[_j]; - if (func(child) === false) { - return this; - } - } - } - } - return this; - }; - - Base.prototype.traverseChildren = function(crossScope, func) { - return this.eachChild(function(child) { - var recur; - recur = func(child); - if (recur !== false) { - return child.traverseChildren(crossScope, func); - } - }); - }; - - Base.prototype.invert = function() { - return new Op('!', this); - }; - - Base.prototype.unwrapAll = function() { - var node; - node = this; - while (node !== (node = node.unwrap())) { - continue; - } - return node; - }; - - Base.prototype.children = []; - - Base.prototype.isStatement = NO; - - Base.prototype.jumps = NO; - - Base.prototype.isComplex = YES; - - Base.prototype.isChainable = NO; - - Base.prototype.isAssignable = NO; - - Base.prototype.unwrap = THIS; - - Base.prototype.unfoldSoak = NO; - - Base.prototype.assigns = NO; - - Base.prototype.updateLocationDataIfMissing = function(locationData) { - this.locationData || (this.locationData = locationData); - return this.eachChild(function(child) { - return child.updateLocationDataIfMissing(locationData); - }); - }; - - Base.prototype.error = function(message) { - return throwSyntaxError(message, this.locationData); - }; - - Base.prototype.makeCode = function(code) { - return new CodeFragment(this, code); - }; - - Base.prototype.wrapInBraces = function(fragments) { - return [].concat(this.makeCode('('), fragments, this.makeCode(')')); - }; - - Base.prototype.joinFragmentArrays = function(fragmentsList, joinStr) { - var answer, fragments, i, _i, _len; - answer = []; - for (i = _i = 0, _len = fragmentsList.length; _i < _len; i = ++_i) { - fragments = fragmentsList[i]; - if (i) { - answer.push(this.makeCode(joinStr)); - } - answer = answer.concat(fragments); - } - return answer; - }; - - return Base; - - })(); - - exports.Block = Block = (function(_super) { - __extends(Block, _super); - - function Block(nodes) { - this.expressions = compact(flatten(nodes || [])); - } - - Block.prototype.children = ['expressions']; - - Block.prototype.push = function(node) { - this.expressions.push(node); - return this; - }; - - Block.prototype.pop = function() { - return this.expressions.pop(); - }; - - Block.prototype.unshift = function(node) { - this.expressions.unshift(node); - return this; - }; - - Block.prototype.unwrap = function() { - if (this.expressions.length === 1) { - return this.expressions[0]; - } else { - return this; - } - }; - - Block.prototype.isEmpty = function() { - return !this.expressions.length; - }; - - Block.prototype.isStatement = function(o) { - var exp, _i, _len, _ref2; - _ref2 = this.expressions; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - exp = _ref2[_i]; - if (exp.isStatement(o)) { - return true; - } - } - return false; - }; - - Block.prototype.jumps = function(o) { - var exp, _i, _len, _ref2; - _ref2 = this.expressions; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - exp = _ref2[_i]; - if (exp.jumps(o)) { - return exp; - } - } - }; - - Block.prototype.makeReturn = function(res) { - var expr, len; - len = this.expressions.length; - while (len--) { - expr = this.expressions[len]; - if (!(expr instanceof Comment)) { - this.expressions[len] = expr.makeReturn(res); - if (expr instanceof Return && !expr.expression) { - this.expressions.splice(len, 1); - } - break; - } - } - return this; - }; - - Block.prototype.compileToFragments = function(o, level) { - if (o == null) { - o = {}; - } - if (o.scope) { - return Block.__super__.compileToFragments.call(this, o, level); - } else { - return this.compileRoot(o); - } - }; - - Block.prototype.compileNode = function(o) { - var answer, compiledNodes, fragments, index, node, top, _i, _len, _ref2; - this.tab = o.indent; - top = o.level === LEVEL_TOP; - compiledNodes = []; - _ref2 = this.expressions; - for (index = _i = 0, _len = _ref2.length; _i < _len; index = ++_i) { - node = _ref2[index]; - node = node.unwrapAll(); - node = node.unfoldSoak(o) || node; - if (node instanceof Block) { - compiledNodes.push(node.compileNode(o)); - } else if (top) { - node.front = true; - fragments = node.compileToFragments(o); - if (!node.isStatement(o)) { - fragments.unshift(this.makeCode("" + this.tab)); - fragments.push(this.makeCode(";")); - } - compiledNodes.push(fragments); - } else { - compiledNodes.push(node.compileToFragments(o, LEVEL_LIST)); - } - } - if (top) { - if (this.spaced) { - return [].concat(this.joinFragmentArrays(compiledNodes, '\n\n'), this.makeCode("\n")); - } else { - return this.joinFragmentArrays(compiledNodes, '\n'); - } - } - if (compiledNodes.length) { - answer = this.joinFragmentArrays(compiledNodes, ', '); - } else { - answer = [this.makeCode("void 0")]; - } - if (compiledNodes.length > 1 && o.level >= LEVEL_LIST) { - return this.wrapInBraces(answer); - } else { - return answer; - } - }; - - Block.prototype.compileRoot = function(o) { - var exp, fragments, i, name, prelude, preludeExps, rest, _i, _len, _ref2; - o.indent = o.bare ? '' : TAB; - o.level = LEVEL_TOP; - this.spaced = true; - o.scope = new Scope(null, this, null); - _ref2 = o.locals || []; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - name = _ref2[_i]; - o.scope.parameter(name); - } - prelude = []; - if (!o.bare) { - preludeExps = (function() { - var _j, _len1, _ref3, _results; - _ref3 = this.expressions; - _results = []; - for (i = _j = 0, _len1 = _ref3.length; _j < _len1; i = ++_j) { - exp = _ref3[i]; - if (!(exp.unwrap() instanceof Comment)) { - break; - } - _results.push(exp); - } - return _results; - }).call(this); - rest = this.expressions.slice(preludeExps.length); - this.expressions = preludeExps; - if (preludeExps.length) { - prelude = this.compileNode(merge(o, { - indent: '' - })); - prelude.push(this.makeCode("\n")); - } - this.expressions = rest; - } - fragments = this.compileWithDeclarations(o); - if (o.bare) { - return fragments; - } - return [].concat(prelude, this.makeCode("(function() {\n"), fragments, this.makeCode("\n}).call(this);\n")); - }; - - Block.prototype.compileWithDeclarations = function(o) { - var assigns, declars, exp, fragments, i, post, rest, scope, spaced, _i, _len, _ref2, _ref3, _ref4; - fragments = []; - post = []; - _ref2 = this.expressions; - for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) { - exp = _ref2[i]; - exp = exp.unwrap(); - if (!(exp instanceof Comment || exp instanceof Literal)) { - break; - } - } - o = merge(o, { - level: LEVEL_TOP - }); - if (i) { - rest = this.expressions.splice(i, 9e9); - _ref3 = [this.spaced, false], spaced = _ref3[0], this.spaced = _ref3[1]; - _ref4 = [this.compileNode(o), spaced], fragments = _ref4[0], this.spaced = _ref4[1]; - this.expressions = rest; - } - post = this.compileNode(o); - scope = o.scope; - if (scope.expressions === this) { - declars = o.scope.hasDeclarations(); - assigns = scope.hasAssignments; - if (declars || assigns) { - if (i) { - fragments.push(this.makeCode('\n')); - } - fragments.push(this.makeCode("" + this.tab + "var ")); - if (declars) { - fragments.push(this.makeCode(scope.declaredVariables().join(', '))); - } - if (assigns) { - if (declars) { - fragments.push(this.makeCode(",\n" + (this.tab + TAB))); - } - fragments.push(this.makeCode(scope.assignedVariables().join(",\n" + (this.tab + TAB)))); - } - fragments.push(this.makeCode(";\n" + (this.spaced ? '\n' : ''))); - } else if (fragments.length && post.length) { - fragments.push(this.makeCode("\n")); - } - } - return fragments.concat(post); - }; - - Block.wrap = function(nodes) { - if (nodes.length === 1 && nodes[0] instanceof Block) { - return nodes[0]; - } - return new Block(nodes); - }; - - return Block; - - })(Base); - - exports.Literal = Literal = (function(_super) { - __extends(Literal, _super); - - function Literal(value) { - this.value = value; - } - - Literal.prototype.makeReturn = function() { - if (this.isStatement()) { - return this; - } else { - return Literal.__super__.makeReturn.apply(this, arguments); - } - }; - - Literal.prototype.isAssignable = function() { - return IDENTIFIER.test(this.value); - }; - - Literal.prototype.isStatement = function() { - var _ref2; - return (_ref2 = this.value) === 'break' || _ref2 === 'continue' || _ref2 === 'debugger'; - }; - - Literal.prototype.isComplex = NO; - - Literal.prototype.assigns = function(name) { - return name === this.value; - }; - - Literal.prototype.jumps = function(o) { - if (this.value === 'break' && !((o != null ? o.loop : void 0) || (o != null ? o.block : void 0))) { - return this; - } - if (this.value === 'continue' && !(o != null ? o.loop : void 0)) { - return this; - } - }; - - Literal.prototype.compileNode = function(o) { - var answer, code, _ref2; - code = this.value === 'this' ? ((_ref2 = o.scope.method) != null ? _ref2.bound : void 0) ? o.scope.method.context : this.value : this.value.reserved ? "\"" + this.value + "\"" : this.value; - answer = this.isStatement() ? "" + this.tab + code + ";" : code; - return [this.makeCode(answer)]; - }; - - Literal.prototype.toString = function() { - return ' "' + this.value + '"'; - }; - - return Literal; - - })(Base); - - exports.Undefined = (function(_super) { - __extends(Undefined, _super); - - function Undefined() { - _ref2 = Undefined.__super__.constructor.apply(this, arguments); - return _ref2; - } - - Undefined.prototype.isAssignable = NO; - - Undefined.prototype.isComplex = NO; - - Undefined.prototype.compileNode = function(o) { - return [this.makeCode(o.level >= LEVEL_ACCESS ? '(void 0)' : 'void 0')]; - }; - - return Undefined; - - })(Base); - - exports.Null = (function(_super) { - __extends(Null, _super); - - function Null() { - _ref3 = Null.__super__.constructor.apply(this, arguments); - return _ref3; - } - - Null.prototype.isAssignable = NO; - - Null.prototype.isComplex = NO; - - Null.prototype.compileNode = function() { - return [this.makeCode("null")]; - }; - - return Null; - - })(Base); - - exports.Bool = (function(_super) { - __extends(Bool, _super); - - Bool.prototype.isAssignable = NO; - - Bool.prototype.isComplex = NO; - - Bool.prototype.compileNode = function() { - return [this.makeCode(this.val)]; - }; - - function Bool(val) { - this.val = val; - } - - return Bool; - - })(Base); - - exports.Return = Return = (function(_super) { - __extends(Return, _super); - - function Return(expr) { - if (expr && !expr.unwrap().isUndefined) { - this.expression = expr; - } - } - - Return.prototype.children = ['expression']; - - Return.prototype.isStatement = YES; - - Return.prototype.makeReturn = THIS; - - Return.prototype.jumps = THIS; - - Return.prototype.compileToFragments = function(o, level) { - var expr, _ref4; - expr = (_ref4 = this.expression) != null ? _ref4.makeReturn() : void 0; - if (expr && !(expr instanceof Return)) { - return expr.compileToFragments(o, level); - } else { - return Return.__super__.compileToFragments.call(this, o, level); - } - }; - - Return.prototype.compileNode = function(o) { - var answer; - answer = []; - answer.push(this.makeCode(this.tab + ("return" + (this.expression ? " " : "")))); - if (this.expression) { - answer = answer.concat(this.expression.compileToFragments(o, LEVEL_PAREN)); - } - answer.push(this.makeCode(";")); - return answer; - }; - - return Return; - - })(Base); - - exports.Value = Value = (function(_super) { - __extends(Value, _super); - - function Value(base, props, tag) { - if (!props && base instanceof Value) { - return base; - } - this.base = base; - this.properties = props || []; - if (tag) { - this[tag] = true; - } - return this; - } - - Value.prototype.children = ['base', 'properties']; - - Value.prototype.add = function(props) { - this.properties = this.properties.concat(props); - return this; - }; - - Value.prototype.hasProperties = function() { - return !!this.properties.length; - }; - - Value.prototype.isArray = function() { - return !this.properties.length && this.base instanceof Arr; - }; - - Value.prototype.isComplex = function() { - return this.hasProperties() || this.base.isComplex(); - }; - - Value.prototype.isAssignable = function() { - return this.hasProperties() || this.base.isAssignable(); - }; - - Value.prototype.isSimpleNumber = function() { - return this.base instanceof Literal && SIMPLENUM.test(this.base.value); - }; - - Value.prototype.isString = function() { - return this.base instanceof Literal && IS_STRING.test(this.base.value); - }; - - Value.prototype.isAtomic = function() { - var node, _i, _len, _ref4; - _ref4 = this.properties.concat(this.base); - for (_i = 0, _len = _ref4.length; _i < _len; _i++) { - node = _ref4[_i]; - if (node.soak || node instanceof Call) { - return false; - } - } - return true; - }; - - Value.prototype.isStatement = function(o) { - return !this.properties.length && this.base.isStatement(o); - }; - - Value.prototype.assigns = function(name) { - return !this.properties.length && this.base.assigns(name); - }; - - Value.prototype.jumps = function(o) { - return !this.properties.length && this.base.jumps(o); - }; - - Value.prototype.isObject = function(onlyGenerated) { - if (this.properties.length) { - return false; - } - return (this.base instanceof Obj) && (!onlyGenerated || this.base.generated); - }; - - Value.prototype.isSplice = function() { - return last(this.properties) instanceof Slice; - }; - - Value.prototype.unwrap = function() { - if (this.properties.length) { - return this; - } else { - return this.base; - } - }; - - Value.prototype.cacheReference = function(o) { - var base, bref, name, nref; - name = last(this.properties); - if (this.properties.length < 2 && !this.base.isComplex() && !(name != null ? name.isComplex() : void 0)) { - return [this, this]; - } - base = new Value(this.base, this.properties.slice(0, -1)); - if (base.isComplex()) { - bref = new Literal(o.scope.freeVariable('base')); - base = new Value(new Parens(new Assign(bref, base))); - } - if (!name) { - return [base, bref]; - } - if (name.isComplex()) { - nref = new Literal(o.scope.freeVariable('name')); - name = new Index(new Assign(nref, name.index)); - nref = new Index(nref); - } - return [base.add(name), new Value(bref || base.base, [nref || name])]; - }; - - Value.prototype.compileNode = function(o) { - var fragments, prop, props, _i, _len; - this.base.front = this.front; - props = this.properties; - fragments = this.base.compileToFragments(o, (props.length ? LEVEL_ACCESS : null)); - if ((this.base instanceof Parens || props.length) && SIMPLENUM.test(fragmentsToText(fragments))) { - fragments.push(this.makeCode('.')); - } - for (_i = 0, _len = props.length; _i < _len; _i++) { - prop = props[_i]; - fragments.push.apply(fragments, prop.compileToFragments(o)); - } - return fragments; - }; - - Value.prototype.unfoldSoak = function(o) { - var _this = this; - return this.unfoldedSoak != null ? this.unfoldedSoak : this.unfoldedSoak = (function() { - var fst, i, ifn, prop, ref, snd, _i, _len, _ref4, _ref5; - if (ifn = _this.base.unfoldSoak(o)) { - (_ref4 = ifn.body.properties).push.apply(_ref4, _this.properties); - return ifn; - } - _ref5 = _this.properties; - for (i = _i = 0, _len = _ref5.length; _i < _len; i = ++_i) { - prop = _ref5[i]; - if (!prop.soak) { - continue; - } - prop.soak = false; - fst = new Value(_this.base, _this.properties.slice(0, i)); - snd = new Value(_this.base, _this.properties.slice(i)); - if (fst.isComplex()) { - ref = new Literal(o.scope.freeVariable('ref')); - fst = new Parens(new Assign(ref, fst)); - snd.base = ref; - } - return new If(new Existence(fst), snd, { - soak: true - }); - } - return false; - })(); - }; - - return Value; - - })(Base); - - exports.Comment = Comment = (function(_super) { - __extends(Comment, _super); - - function Comment(comment) { - this.comment = comment; - } - - Comment.prototype.isStatement = YES; - - Comment.prototype.makeReturn = THIS; - - Comment.prototype.compileNode = function(o, level) { - var code; - code = "/*" + (multident(this.comment, this.tab)) + (__indexOf.call(this.comment, '\n') >= 0 ? "\n" + this.tab : '') + "*/\n"; - if ((level || o.level) === LEVEL_TOP) { - code = o.indent + code; - } - return [this.makeCode(code)]; - }; - - return Comment; - - })(Base); - - exports.Call = Call = (function(_super) { - __extends(Call, _super); - - function Call(variable, args, soak) { - this.args = args != null ? args : []; - this.soak = soak; - this.isNew = false; - this.isSuper = variable === 'super'; - this.variable = this.isSuper ? null : variable; - } - - Call.prototype.children = ['variable', 'args']; - - Call.prototype.newInstance = function() { - var base, _ref4; - base = ((_ref4 = this.variable) != null ? _ref4.base : void 0) || this.variable; - if (base instanceof Call && !base.isNew) { - base.newInstance(); - } else { - this.isNew = true; - } - return this; - }; - - Call.prototype.superReference = function(o) { - var accesses, method; - method = o.scope.namedMethod(); - if (method != null ? method.klass : void 0) { - accesses = [new Access(new Literal('__super__'))]; - if (method["static"]) { - accesses.push(new Access(new Literal('constructor'))); - } - accesses.push(new Access(new Literal(method.name))); - return (new Value(new Literal(method.klass), accesses)).compile(o); - } else if (method != null ? method.ctor : void 0) { - return "" + method.name + ".__super__.constructor"; - } else { - return this.error('cannot call super outside of an instance method.'); - } - }; - - Call.prototype.superThis = function(o) { - var method; - method = o.scope.method; - return (method && !method.klass && method.context) || "this"; - }; - - Call.prototype.unfoldSoak = function(o) { - var call, ifn, left, list, rite, _i, _len, _ref4, _ref5; - if (this.soak) { - if (this.variable) { - if (ifn = unfoldSoak(o, this, 'variable')) { - return ifn; - } - _ref4 = new Value(this.variable).cacheReference(o), left = _ref4[0], rite = _ref4[1]; - } else { - left = new Literal(this.superReference(o)); - rite = new Value(left); - } - rite = new Call(rite, this.args); - rite.isNew = this.isNew; - left = new Literal("typeof " + (left.compile(o)) + " === \"function\""); - return new If(left, new Value(rite), { - soak: true - }); - } - call = this; - list = []; - while (true) { - if (call.variable instanceof Call) { - list.push(call); - call = call.variable; - continue; - } - if (!(call.variable instanceof Value)) { - break; - } - list.push(call); - if (!((call = call.variable.base) instanceof Call)) { - break; - } - } - _ref5 = list.reverse(); - for (_i = 0, _len = _ref5.length; _i < _len; _i++) { - call = _ref5[_i]; - if (ifn) { - if (call.variable instanceof Call) { - call.variable = ifn; - } else { - call.variable.base = ifn; - } - } - ifn = unfoldSoak(o, call, 'variable'); - } - return ifn; - }; - - Call.prototype.compileNode = function(o) { - var arg, argIndex, compiledArgs, compiledArray, fragments, preface, _i, _len, _ref4, _ref5; - if ((_ref4 = this.variable) != null) { - _ref4.front = this.front; - } - compiledArray = Splat.compileSplattedArray(o, this.args, true); - if (compiledArray.length) { - return this.compileSplat(o, compiledArray); - } - compiledArgs = []; - _ref5 = this.args; - for (argIndex = _i = 0, _len = _ref5.length; _i < _len; argIndex = ++_i) { - arg = _ref5[argIndex]; - if (argIndex) { - compiledArgs.push(this.makeCode(", ")); - } - compiledArgs.push.apply(compiledArgs, arg.compileToFragments(o, LEVEL_LIST)); - } - fragments = []; - if (this.isSuper) { - preface = this.superReference(o) + (".call(" + (this.superThis(o))); - if (compiledArgs.length) { - preface += ", "; - } - fragments.push(this.makeCode(preface)); - } else { - if (this.isNew) { - fragments.push(this.makeCode('new ')); - } - fragments.push.apply(fragments, this.variable.compileToFragments(o, LEVEL_ACCESS)); - fragments.push(this.makeCode("(")); - } - fragments.push.apply(fragments, compiledArgs); - fragments.push(this.makeCode(")")); - return fragments; - }; - - Call.prototype.compileSplat = function(o, splatArgs) { - var answer, base, fun, idt, name, ref; - if (this.isSuper) { - return [].concat(this.makeCode("" + (this.superReference(o)) + ".apply(" + (this.superThis(o)) + ", "), splatArgs, this.makeCode(")")); - } - if (this.isNew) { - idt = this.tab + TAB; - return [].concat(this.makeCode("(function(func, args, ctor) {\n" + idt + "ctor.prototype = func.prototype;\n" + idt + "var child = new ctor, result = func.apply(child, args);\n" + idt + "return Object(result) === result ? result : child;\n" + this.tab + "})("), this.variable.compileToFragments(o, LEVEL_LIST), this.makeCode(", "), splatArgs, this.makeCode(", function(){})")); - } - answer = []; - base = new Value(this.variable); - if ((name = base.properties.pop()) && base.isComplex()) { - ref = o.scope.freeVariable('ref'); - answer = answer.concat(this.makeCode("(" + ref + " = "), base.compileToFragments(o, LEVEL_LIST), this.makeCode(")"), name.compileToFragments(o)); - } else { - fun = base.compileToFragments(o, LEVEL_ACCESS); - if (SIMPLENUM.test(fragmentsToText(fun))) { - fun = this.wrapInBraces(fun); - } - if (name) { - ref = fragmentsToText(fun); - fun.push.apply(fun, name.compileToFragments(o)); - } else { - ref = 'null'; - } - answer = answer.concat(fun); - } - return answer = answer.concat(this.makeCode(".apply(" + ref + ", "), splatArgs, this.makeCode(")")); - }; - - return Call; - - })(Base); - - exports.Extends = Extends = (function(_super) { - __extends(Extends, _super); - - function Extends(child, parent) { - this.child = child; - this.parent = parent; - } - - Extends.prototype.children = ['child', 'parent']; - - Extends.prototype.compileToFragments = function(o) { - return new Call(new Value(new Literal(utility('extends'))), [this.child, this.parent]).compileToFragments(o); - }; - - return Extends; - - })(Base); - - exports.Access = Access = (function(_super) { - __extends(Access, _super); - - function Access(name, tag) { - this.name = name; - this.name.asKey = true; - this.soak = tag === 'soak'; - } - - Access.prototype.children = ['name']; - - Access.prototype.compileToFragments = function(o) { - var name; - name = this.name.compileToFragments(o); - if (IDENTIFIER.test(fragmentsToText(name))) { - name.unshift(this.makeCode(".")); - } else { - name.unshift(this.makeCode("[")); - name.push(this.makeCode("]")); - } - return name; - }; - - Access.prototype.isComplex = NO; - - return Access; - - })(Base); - - exports.Index = Index = (function(_super) { - __extends(Index, _super); - - function Index(index) { - this.index = index; - } - - Index.prototype.children = ['index']; - - Index.prototype.compileToFragments = function(o) { - return [].concat(this.makeCode("["), this.index.compileToFragments(o, LEVEL_PAREN), this.makeCode("]")); - }; - - Index.prototype.isComplex = function() { - return this.index.isComplex(); - }; - - return Index; - - })(Base); - - exports.Range = Range = (function(_super) { - __extends(Range, _super); - - Range.prototype.children = ['from', 'to']; - - function Range(from, to, tag) { - this.from = from; - this.to = to; - this.exclusive = tag === 'exclusive'; - this.equals = this.exclusive ? '' : '='; - } - - Range.prototype.compileVariables = function(o) { - var step, _ref4, _ref5, _ref6, _ref7; - o = merge(o, { - top: true - }); - _ref4 = this.cacheToCodeFragments(this.from.cache(o, LEVEL_LIST)), this.fromC = _ref4[0], this.fromVar = _ref4[1]; - _ref5 = this.cacheToCodeFragments(this.to.cache(o, LEVEL_LIST)), this.toC = _ref5[0], this.toVar = _ref5[1]; - if (step = del(o, 'step')) { - _ref6 = this.cacheToCodeFragments(step.cache(o, LEVEL_LIST)), this.step = _ref6[0], this.stepVar = _ref6[1]; - } - _ref7 = [this.fromVar.match(SIMPLENUM), this.toVar.match(SIMPLENUM)], this.fromNum = _ref7[0], this.toNum = _ref7[1]; - if (this.stepVar) { - return this.stepNum = this.stepVar.match(SIMPLENUM); - } - }; - - Range.prototype.compileNode = function(o) { - var cond, condPart, from, gt, idx, idxName, known, lt, namedIndex, stepPart, to, varPart, _ref4, _ref5; - if (!this.fromVar) { - this.compileVariables(o); - } - if (!o.index) { - return this.compileArray(o); - } - known = this.fromNum && this.toNum; - idx = del(o, 'index'); - idxName = del(o, 'name'); - namedIndex = idxName && idxName !== idx; - varPart = "" + idx + " = " + this.fromC; - if (this.toC !== this.toVar) { - varPart += ", " + this.toC; - } - if (this.step !== this.stepVar) { - varPart += ", " + this.step; - } - _ref4 = ["" + idx + " <" + this.equals, "" + idx + " >" + this.equals], lt = _ref4[0], gt = _ref4[1]; - condPart = this.stepNum ? +this.stepNum > 0 ? "" + lt + " " + this.toVar : "" + gt + " " + this.toVar : known ? ((_ref5 = [+this.fromNum, +this.toNum], from = _ref5[0], to = _ref5[1], _ref5), from <= to ? "" + lt + " " + to : "" + gt + " " + to) : (cond = this.stepVar ? "" + this.stepVar + " > 0" : "" + this.fromVar + " <= " + this.toVar, "" + cond + " ? " + lt + " " + this.toVar + " : " + gt + " " + this.toVar); - stepPart = this.stepVar ? "" + idx + " += " + this.stepVar : known ? namedIndex ? from <= to ? "++" + idx : "--" + idx : from <= to ? "" + idx + "++" : "" + idx + "--" : namedIndex ? "" + cond + " ? ++" + idx + " : --" + idx : "" + cond + " ? " + idx + "++ : " + idx + "--"; - if (namedIndex) { - varPart = "" + idxName + " = " + varPart; - } - if (namedIndex) { - stepPart = "" + idxName + " = " + stepPart; - } - return [this.makeCode("" + varPart + "; " + condPart + "; " + stepPart)]; - }; - - Range.prototype.compileArray = function(o) { - var args, body, cond, hasArgs, i, idt, post, pre, range, result, vars, _i, _ref4, _ref5, _results; - if (this.fromNum && this.toNum && Math.abs(this.fromNum - this.toNum) <= 20) { - range = (function() { - _results = []; - for (var _i = _ref4 = +this.fromNum, _ref5 = +this.toNum; _ref4 <= _ref5 ? _i <= _ref5 : _i >= _ref5; _ref4 <= _ref5 ? _i++ : _i--){ _results.push(_i); } - return _results; - }).apply(this); - if (this.exclusive) { - range.pop(); - } - return [this.makeCode("[" + (range.join(', ')) + "]")]; - } - idt = this.tab + TAB; - i = o.scope.freeVariable('i'); - result = o.scope.freeVariable('results'); - pre = "\n" + idt + result + " = [];"; - if (this.fromNum && this.toNum) { - o.index = i; - body = fragmentsToText(this.compileNode(o)); - } else { - vars = ("" + i + " = " + this.fromC) + (this.toC !== this.toVar ? ", " + this.toC : ''); - cond = "" + this.fromVar + " <= " + this.toVar; - body = "var " + vars + "; " + cond + " ? " + i + " <" + this.equals + " " + this.toVar + " : " + i + " >" + this.equals + " " + this.toVar + "; " + cond + " ? " + i + "++ : " + i + "--"; - } - post = "{ " + result + ".push(" + i + "); }\n" + idt + "return " + result + ";\n" + o.indent; - hasArgs = function(node) { - return node != null ? node.contains(function(n) { - return n instanceof Literal && n.value === 'arguments' && !n.asKey; - }) : void 0; - }; - if (hasArgs(this.from) || hasArgs(this.to)) { - args = ', arguments'; - } - return [this.makeCode("(function() {" + pre + "\n" + idt + "for (" + body + ")" + post + "}).apply(this" + (args != null ? args : '') + ")")]; - }; - - return Range; - - })(Base); - - exports.Slice = Slice = (function(_super) { - __extends(Slice, _super); - - Slice.prototype.children = ['range']; - - function Slice(range) { - this.range = range; - Slice.__super__.constructor.call(this); - } - - Slice.prototype.compileNode = function(o) { - var compiled, compiledText, from, fromCompiled, to, toStr, _ref4; - _ref4 = this.range, to = _ref4.to, from = _ref4.from; - fromCompiled = from && from.compileToFragments(o, LEVEL_PAREN) || [this.makeCode('0')]; - if (to) { - compiled = to.compileToFragments(o, LEVEL_PAREN); - compiledText = fragmentsToText(compiled); - if (!(!this.range.exclusive && +compiledText === -1)) { - toStr = ', ' + (this.range.exclusive ? compiledText : SIMPLENUM.test(compiledText) ? "" + (+compiledText + 1) : (compiled = to.compileToFragments(o, LEVEL_ACCESS), "+" + (fragmentsToText(compiled)) + " + 1 || 9e9")); - } - } - return [this.makeCode(".slice(" + (fragmentsToText(fromCompiled)) + (toStr || '') + ")")]; - }; - - return Slice; - - })(Base); - - exports.Obj = Obj = (function(_super) { - __extends(Obj, _super); - - function Obj(props, generated) { - this.generated = generated != null ? generated : false; - this.objects = this.properties = props || []; - } - - Obj.prototype.children = ['properties']; - - Obj.prototype.compileNode = function(o) { - var answer, i, idt, indent, join, lastNoncom, node, prop, props, _i, _j, _len, _len1; - props = this.properties; - if (!props.length) { - return [this.makeCode(this.front ? '({})' : '{}')]; - } - if (this.generated) { - for (_i = 0, _len = props.length; _i < _len; _i++) { - node = props[_i]; - if (node instanceof Value) { - node.error('cannot have an implicit value in an implicit object'); - } - } - } - idt = o.indent += TAB; - lastNoncom = this.lastNonComment(this.properties); - answer = []; - for (i = _j = 0, _len1 = props.length; _j < _len1; i = ++_j) { - prop = props[i]; - join = i === props.length - 1 ? '' : prop === lastNoncom || prop instanceof Comment ? '\n' : ',\n'; - indent = prop instanceof Comment ? '' : idt; - if (prop instanceof Assign && prop.variable instanceof Value && prop.variable.hasProperties()) { - prop.variable.error('Invalid object key'); - } - if (prop instanceof Value && prop["this"]) { - prop = new Assign(prop.properties[0].name, prop, 'object'); - } - if (!(prop instanceof Comment)) { - if (!(prop instanceof Assign)) { - prop = new Assign(prop, prop, 'object'); - } - (prop.variable.base || prop.variable).asKey = true; - } - if (indent) { - answer.push(this.makeCode(indent)); - } - answer.push.apply(answer, prop.compileToFragments(o, LEVEL_TOP)); - if (join) { - answer.push(this.makeCode(join)); - } - } - answer.unshift(this.makeCode("{" + (props.length && '\n'))); - answer.push(this.makeCode("" + (props.length && '\n' + this.tab) + "}")); - if (this.front) { - return this.wrapInBraces(answer); - } else { - return answer; - } - }; - - Obj.prototype.assigns = function(name) { - var prop, _i, _len, _ref4; - _ref4 = this.properties; - for (_i = 0, _len = _ref4.length; _i < _len; _i++) { - prop = _ref4[_i]; - if (prop.assigns(name)) { - return true; - } - } - return false; - }; - - return Obj; - - })(Base); - - exports.Arr = Arr = (function(_super) { - __extends(Arr, _super); - - function Arr(objs) { - this.objects = objs || []; - } - - Arr.prototype.children = ['objects']; - - Arr.prototype.compileNode = function(o) { - var answer, compiledObjs, fragments, index, obj, _i, _len; - if (!this.objects.length) { - return [this.makeCode('[]')]; - } - o.indent += TAB; - answer = Splat.compileSplattedArray(o, this.objects); - if (answer.length) { - return answer; - } - answer = []; - compiledObjs = (function() { - var _i, _len, _ref4, _results; - _ref4 = this.objects; - _results = []; - for (_i = 0, _len = _ref4.length; _i < _len; _i++) { - obj = _ref4[_i]; - _results.push(obj.compileToFragments(o, LEVEL_LIST)); - } - return _results; - }).call(this); - for (index = _i = 0, _len = compiledObjs.length; _i < _len; index = ++_i) { - fragments = compiledObjs[index]; - if (index) { - answer.push(this.makeCode(", ")); - } - answer.push.apply(answer, fragments); - } - if (fragmentsToText(answer).indexOf('\n') >= 0) { - answer.unshift(this.makeCode("[\n" + o.indent)); - answer.push(this.makeCode("\n" + this.tab + "]")); - } else { - answer.unshift(this.makeCode("[")); - answer.push(this.makeCode("]")); - } - return answer; - }; - - Arr.prototype.assigns = function(name) { - var obj, _i, _len, _ref4; - _ref4 = this.objects; - for (_i = 0, _len = _ref4.length; _i < _len; _i++) { - obj = _ref4[_i]; - if (obj.assigns(name)) { - return true; - } - } - return false; - }; - - return Arr; - - })(Base); - - exports.Class = Class = (function(_super) { - __extends(Class, _super); - - function Class(variable, parent, body) { - this.variable = variable; - this.parent = parent; - this.body = body != null ? body : new Block; - this.boundFuncs = []; - this.body.classBody = true; - } - - Class.prototype.children = ['variable', 'parent', 'body']; - - Class.prototype.determineName = function() { - var decl, tail; - if (!this.variable) { - return null; - } - decl = (tail = last(this.variable.properties)) ? tail instanceof Access && tail.name.value : this.variable.base.value; - if (__indexOf.call(STRICT_PROSCRIBED, decl) >= 0) { - this.variable.error("class variable name may not be " + decl); - } - return decl && (decl = IDENTIFIER.test(decl) && decl); - }; - - Class.prototype.setContext = function(name) { - return this.body.traverseChildren(false, function(node) { - if (node.classBody) { - return false; - } - if (node instanceof Literal && node.value === 'this') { - return node.value = name; - } else if (node instanceof Code) { - node.klass = name; - if (node.bound) { - return node.context = name; - } - } - }); - }; - - Class.prototype.addBoundFunctions = function(o) { - var bvar, lhs, _i, _len, _ref4; - _ref4 = this.boundFuncs; - for (_i = 0, _len = _ref4.length; _i < _len; _i++) { - bvar = _ref4[_i]; - lhs = (new Value(new Literal("this"), [new Access(bvar)])).compile(o); - this.ctor.body.unshift(new Literal("" + lhs + " = " + (utility('bind')) + "(" + lhs + ", this)")); - } - }; - - Class.prototype.addProperties = function(node, name, o) { - var assign, base, exprs, func, props; - props = node.base.properties.slice(0); - exprs = (function() { - var _results; - _results = []; - while (assign = props.shift()) { - if (assign instanceof Assign) { - base = assign.variable.base; - delete assign.context; - func = assign.value; - if (base.value === 'constructor') { - if (this.ctor) { - assign.error('cannot define more than one constructor in a class'); - } - if (func.bound) { - assign.error('cannot define a constructor as a bound function'); - } - if (func instanceof Code) { - assign = this.ctor = func; - } else { - this.externalCtor = o.scope.freeVariable('class'); - assign = new Assign(new Literal(this.externalCtor), func); - } - } else { - if (assign.variable["this"]) { - func["static"] = true; - if (func.bound) { - func.context = name; - } - } else { - assign.variable = new Value(new Literal(name), [new Access(new Literal('prototype')), new Access(base)]); - if (func instanceof Code && func.bound) { - this.boundFuncs.push(base); - func.bound = false; - } - } - } - } - _results.push(assign); - } - return _results; - }).call(this); - return compact(exprs); - }; - - Class.prototype.walkBody = function(name, o) { - var _this = this; - return this.traverseChildren(false, function(child) { - var cont, exps, i, node, _i, _len, _ref4; - cont = true; - if (child instanceof Class) { - return false; - } - if (child instanceof Block) { - _ref4 = exps = child.expressions; - for (i = _i = 0, _len = _ref4.length; _i < _len; i = ++_i) { - node = _ref4[i]; - if (node instanceof Value && node.isObject(true)) { - cont = false; - exps[i] = _this.addProperties(node, name, o); - } - } - child.expressions = exps = flatten(exps); - } - return cont && !(child instanceof Class); - }); - }; - - Class.prototype.hoistDirectivePrologue = function() { - var expressions, index, node; - index = 0; - expressions = this.body.expressions; - while ((node = expressions[index]) && node instanceof Comment || node instanceof Value && node.isString()) { - ++index; - } - return this.directives = expressions.splice(0, index); - }; - - Class.prototype.ensureConstructor = function(name, o) { - var missing, ref, superCall; - missing = !this.ctor; - this.ctor || (this.ctor = new Code); - this.ctor.ctor = this.ctor.name = name; - this.ctor.klass = null; - this.ctor.noReturn = true; - if (missing) { - if (this.parent) { - superCall = new Literal("" + name + ".__super__.constructor.apply(this, arguments)"); - } - if (this.externalCtor) { - superCall = new Literal("" + this.externalCtor + ".apply(this, arguments)"); - } - if (superCall) { - ref = new Literal(o.scope.freeVariable('ref')); - this.ctor.body.unshift(new Assign(ref, superCall)); - } - this.addBoundFunctions(o); - if (superCall) { - this.ctor.body.push(ref); - this.ctor.body.makeReturn(); - } - return this.body.expressions.unshift(this.ctor); - } else { - return this.addBoundFunctions(o); - } - }; - - Class.prototype.compileNode = function(o) { - var call, decl, klass, lname, name, params, _ref4; - decl = this.determineName(); - name = decl || '_Class'; - if (name.reserved) { - name = "_" + name; - } - lname = new Literal(name); - this.hoistDirectivePrologue(); - this.setContext(name); - this.walkBody(name, o); - this.ensureConstructor(name, o); - this.body.spaced = true; - if (!(this.ctor instanceof Code)) { - this.body.expressions.unshift(this.ctor); - } - this.body.expressions.push(lname); - (_ref4 = this.body.expressions).unshift.apply(_ref4, this.directives); - call = Closure.wrap(this.body); - if (this.parent) { - this.superClass = new Literal(o.scope.freeVariable('super', false)); - this.body.expressions.unshift(new Extends(lname, this.superClass)); - call.args.push(this.parent); - params = call.variable.params || call.variable.base.params; - params.push(new Param(this.superClass)); - } - klass = new Parens(call, true); - if (this.variable) { - klass = new Assign(this.variable, klass); - } - return klass.compileToFragments(o); - }; - - return Class; - - })(Base); - - exports.Assign = Assign = (function(_super) { - __extends(Assign, _super); - - function Assign(variable, value, context, options) { - var forbidden, name, _ref4; - this.variable = variable; - this.value = value; - this.context = context; - this.param = options && options.param; - this.subpattern = options && options.subpattern; - forbidden = (_ref4 = (name = this.variable.unwrapAll().value), __indexOf.call(STRICT_PROSCRIBED, _ref4) >= 0); - if (forbidden && this.context !== 'object') { - this.variable.error("variable name may not be \"" + name + "\""); - } - } - - Assign.prototype.children = ['variable', 'value']; - - Assign.prototype.isStatement = function(o) { - return (o != null ? o.level : void 0) === LEVEL_TOP && (this.context != null) && __indexOf.call(this.context, "?") >= 0; - }; - - Assign.prototype.assigns = function(name) { - return this[this.context === 'object' ? 'value' : 'variable'].assigns(name); - }; - - Assign.prototype.unfoldSoak = function(o) { - return unfoldSoak(o, this, 'variable'); - }; - - Assign.prototype.compileNode = function(o) { - var answer, compiledName, isValue, match, name, val, varBase, _ref4, _ref5, _ref6, _ref7; - if (isValue = this.variable instanceof Value) { - if (this.variable.isArray() || this.variable.isObject()) { - return this.compilePatternMatch(o); - } - if (this.variable.isSplice()) { - return this.compileSplice(o); - } - if ((_ref4 = this.context) === '||=' || _ref4 === '&&=' || _ref4 === '?=') { - return this.compileConditional(o); - } - } - compiledName = this.variable.compileToFragments(o, LEVEL_LIST); - name = fragmentsToText(compiledName); - if (!this.context) { - varBase = this.variable.unwrapAll(); - if (!varBase.isAssignable()) { - this.variable.error("\"" + (this.variable.compile(o)) + "\" cannot be assigned"); - } - if (!(typeof varBase.hasProperties === "function" ? varBase.hasProperties() : void 0)) { - if (this.param) { - o.scope.add(name, 'var'); - } else { - o.scope.find(name); - } - } - } - if (this.value instanceof Code && (match = METHOD_DEF.exec(name))) { - if (match[1]) { - this.value.klass = match[1]; - } - this.value.name = (_ref5 = (_ref6 = (_ref7 = match[2]) != null ? _ref7 : match[3]) != null ? _ref6 : match[4]) != null ? _ref5 : match[5]; - } - val = this.value.compileToFragments(o, LEVEL_LIST); - if (this.context === 'object') { - return compiledName.concat(this.makeCode(": "), val); - } - answer = compiledName.concat(this.makeCode(" " + (this.context || '=') + " "), val); - if (o.level <= LEVEL_LIST) { - return answer; - } else { - return this.wrapInBraces(answer); - } - }; - - Assign.prototype.compilePatternMatch = function(o) { - var acc, assigns, code, fragments, i, idx, isObject, ivar, name, obj, objects, olen, ref, rest, splat, top, val, value, vvar, vvarText, _i, _len, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9; - top = o.level === LEVEL_TOP; - value = this.value; - objects = this.variable.base.objects; - if (!(olen = objects.length)) { - code = value.compileToFragments(o); - if (o.level >= LEVEL_OP) { - return this.wrapInBraces(code); - } else { - return code; - } - } - isObject = this.variable.isObject(); - if (top && olen === 1 && !((obj = objects[0]) instanceof Splat)) { - if (obj instanceof Assign) { - _ref4 = obj, (_ref5 = _ref4.variable, idx = _ref5.base), obj = _ref4.value; - } else { - idx = isObject ? obj["this"] ? obj.properties[0].name : obj : new Literal(0); - } - acc = IDENTIFIER.test(idx.unwrap().value || 0); - value = new Value(value); - value.properties.push(new (acc ? Access : Index)(idx)); - if (_ref6 = obj.unwrap().value, __indexOf.call(RESERVED, _ref6) >= 0) { - obj.error("assignment to a reserved word: " + (obj.compile(o))); - } - return new Assign(obj, value, null, { - param: this.param - }).compileToFragments(o, LEVEL_TOP); - } - vvar = value.compileToFragments(o, LEVEL_LIST); - vvarText = fragmentsToText(vvar); - assigns = []; - splat = false; - if (!IDENTIFIER.test(vvarText) || this.variable.assigns(vvarText)) { - assigns.push([this.makeCode("" + (ref = o.scope.freeVariable('ref')) + " = ")].concat(__slice.call(vvar))); - vvar = [this.makeCode(ref)]; - vvarText = ref; - } - for (i = _i = 0, _len = objects.length; _i < _len; i = ++_i) { - obj = objects[i]; - idx = i; - if (isObject) { - if (obj instanceof Assign) { - _ref7 = obj, (_ref8 = _ref7.variable, idx = _ref8.base), obj = _ref7.value; - } else { - if (obj.base instanceof Parens) { - _ref9 = new Value(obj.unwrapAll()).cacheReference(o), obj = _ref9[0], idx = _ref9[1]; - } else { - idx = obj["this"] ? obj.properties[0].name : obj; - } - } - } - if (!splat && obj instanceof Splat) { - name = obj.name.unwrap().value; - obj = obj.unwrap(); - val = "" + olen + " <= " + vvarText + ".length ? " + (utility('slice')) + ".call(" + vvarText + ", " + i; - if (rest = olen - i - 1) { - ivar = o.scope.freeVariable('i'); - val += ", " + ivar + " = " + vvarText + ".length - " + rest + ") : (" + ivar + " = " + i + ", [])"; - } else { - val += ") : []"; - } - val = new Literal(val); - splat = "" + ivar + "++"; - } else { - name = obj.unwrap().value; - if (obj instanceof Splat) { - obj.error("multiple splats are disallowed in an assignment"); - } - if (typeof idx === 'number') { - idx = new Literal(splat || idx); - acc = false; - } else { - acc = isObject && IDENTIFIER.test(idx.unwrap().value || 0); - } - val = new Value(new Literal(vvarText), [new (acc ? Access : Index)(idx)]); - } - if ((name != null) && __indexOf.call(RESERVED, name) >= 0) { - obj.error("assignment to a reserved word: " + (obj.compile(o))); - } - assigns.push(new Assign(obj, val, null, { - param: this.param, - subpattern: true - }).compileToFragments(o, LEVEL_LIST)); - } - if (!(top || this.subpattern)) { - assigns.push(vvar); - } - fragments = this.joinFragmentArrays(assigns, ', '); - if (o.level < LEVEL_LIST) { - return fragments; - } else { - return this.wrapInBraces(fragments); - } - }; - - Assign.prototype.compileConditional = function(o) { - var left, right, _ref4; - _ref4 = this.variable.cacheReference(o), left = _ref4[0], right = _ref4[1]; - if (!left.properties.length && left.base instanceof Literal && left.base.value !== "this" && !o.scope.check(left.base.value)) { - this.variable.error("the variable \"" + left.base.value + "\" can't be assigned with " + this.context + " because it has not been declared before"); - } - if (__indexOf.call(this.context, "?") >= 0) { - o.isExistentialEquals = true; - } - return new Op(this.context.slice(0, -1), left, new Assign(right, this.value, '=')).compileToFragments(o); - }; - - Assign.prototype.compileSplice = function(o) { - var answer, exclusive, from, fromDecl, fromRef, name, to, valDef, valRef, _ref4, _ref5, _ref6; - _ref4 = this.variable.properties.pop().range, from = _ref4.from, to = _ref4.to, exclusive = _ref4.exclusive; - name = this.variable.compile(o); - if (from) { - _ref5 = this.cacheToCodeFragments(from.cache(o, LEVEL_OP)), fromDecl = _ref5[0], fromRef = _ref5[1]; - } else { - fromDecl = fromRef = '0'; - } - if (to) { - if ((from != null ? from.isSimpleNumber() : void 0) && to.isSimpleNumber()) { - to = +to.compile(o) - +fromRef; - if (!exclusive) { - to += 1; - } - } else { - to = to.compile(o, LEVEL_ACCESS) + ' - ' + fromRef; - if (!exclusive) { - to += ' + 1'; - } - } - } else { - to = "9e9"; - } - _ref6 = this.value.cache(o, LEVEL_LIST), valDef = _ref6[0], valRef = _ref6[1]; - answer = [].concat(this.makeCode("[].splice.apply(" + name + ", [" + fromDecl + ", " + to + "].concat("), valDef, this.makeCode(")), "), valRef); - if (o.level > LEVEL_TOP) { - return this.wrapInBraces(answer); - } else { - return answer; - } - }; - - return Assign; - - })(Base); - - exports.Code = Code = (function(_super) { - __extends(Code, _super); - - function Code(params, body, tag) { - this.params = params || []; - this.body = body || new Block; - this.bound = tag === 'boundfunc'; - if (this.bound) { - this.context = '_this'; - } - } - - Code.prototype.children = ['params', 'body']; - - Code.prototype.isStatement = function() { - return !!this.ctor; - }; - - Code.prototype.jumps = NO; - - Code.prototype.compileNode = function(o) { - var answer, code, exprs, i, idt, lit, p, param, params, ref, splats, uniqs, val, wasEmpty, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _m, _ref4, _ref5, _ref6, _ref7, _ref8; - o.scope = new Scope(o.scope, this.body, this); - o.scope.shared = del(o, 'sharedScope'); - o.indent += TAB; - delete o.bare; - delete o.isExistentialEquals; - params = []; - exprs = []; - this.eachParamName(function(name) { - if (!o.scope.check(name)) { - return o.scope.parameter(name); - } - }); - _ref4 = this.params; - for (_i = 0, _len = _ref4.length; _i < _len; _i++) { - param = _ref4[_i]; - if (!param.splat) { - continue; - } - _ref5 = this.params; - for (_j = 0, _len1 = _ref5.length; _j < _len1; _j++) { - p = _ref5[_j].name; - if (p["this"]) { - p = p.properties[0].name; - } - if (p.value) { - o.scope.add(p.value, 'var', true); - } - } - splats = new Assign(new Value(new Arr((function() { - var _k, _len2, _ref6, _results; - _ref6 = this.params; - _results = []; - for (_k = 0, _len2 = _ref6.length; _k < _len2; _k++) { - p = _ref6[_k]; - _results.push(p.asReference(o)); - } - return _results; - }).call(this))), new Value(new Literal('arguments'))); - break; - } - _ref6 = this.params; - for (_k = 0, _len2 = _ref6.length; _k < _len2; _k++) { - param = _ref6[_k]; - if (param.isComplex()) { - val = ref = param.asReference(o); - if (param.value) { - val = new Op('?', ref, param.value); - } - exprs.push(new Assign(new Value(param.name), val, '=', { - param: true - })); - } else { - ref = param; - if (param.value) { - lit = new Literal(ref.name.value + ' == null'); - val = new Assign(new Value(param.name), param.value, '='); - exprs.push(new If(lit, val)); - } - } - if (!splats) { - params.push(ref); - } - } - wasEmpty = this.body.isEmpty(); - if (splats) { - exprs.unshift(splats); - } - if (exprs.length) { - (_ref7 = this.body.expressions).unshift.apply(_ref7, exprs); - } - for (i = _l = 0, _len3 = params.length; _l < _len3; i = ++_l) { - p = params[i]; - params[i] = p.compileToFragments(o); - o.scope.parameter(fragmentsToText(params[i])); - } - uniqs = []; - this.eachParamName(function(name, node) { - if (__indexOf.call(uniqs, name) >= 0) { - node.error("multiple parameters named '" + name + "'"); - } - return uniqs.push(name); - }); - if (!(wasEmpty || this.noReturn)) { - this.body.makeReturn(); - } - if (this.bound) { - if ((_ref8 = o.scope.parent.method) != null ? _ref8.bound : void 0) { - this.bound = this.context = o.scope.parent.method.context; - } else if (!this["static"]) { - o.scope.parent.assign('_this', 'this'); - } - } - idt = o.indent; - code = 'function'; - if (this.ctor) { - code += ' ' + this.name; - } - code += '('; - answer = [this.makeCode(code)]; - for (i = _m = 0, _len4 = params.length; _m < _len4; i = ++_m) { - p = params[i]; - if (i) { - answer.push(this.makeCode(", ")); - } - answer.push.apply(answer, p); - } - answer.push(this.makeCode(') {')); - if (!this.body.isEmpty()) { - answer = answer.concat(this.makeCode("\n"), this.body.compileWithDeclarations(o), this.makeCode("\n" + this.tab)); - } - answer.push(this.makeCode('}')); - if (this.ctor) { - return [this.makeCode(this.tab)].concat(__slice.call(answer)); - } - if (this.front || (o.level >= LEVEL_ACCESS)) { - return this.wrapInBraces(answer); - } else { - return answer; - } - }; - - Code.prototype.eachParamName = function(iterator) { - var param, _i, _len, _ref4, _results; - _ref4 = this.params; - _results = []; - for (_i = 0, _len = _ref4.length; _i < _len; _i++) { - param = _ref4[_i]; - _results.push(param.eachName(iterator)); - } - return _results; - }; - - Code.prototype.traverseChildren = function(crossScope, func) { - if (crossScope) { - return Code.__super__.traverseChildren.call(this, crossScope, func); - } - }; - - return Code; - - })(Base); - - exports.Param = Param = (function(_super) { - __extends(Param, _super); - - function Param(name, value, splat) { - var _ref4; - this.name = name; - this.value = value; - this.splat = splat; - if (_ref4 = (name = this.name.unwrapAll().value), __indexOf.call(STRICT_PROSCRIBED, _ref4) >= 0) { - this.name.error("parameter name \"" + name + "\" is not allowed"); - } - } - - Param.prototype.children = ['name', 'value']; - - Param.prototype.compileToFragments = function(o) { - return this.name.compileToFragments(o, LEVEL_LIST); - }; - - Param.prototype.asReference = function(o) { - var node; - if (this.reference) { - return this.reference; - } - node = this.name; - if (node["this"]) { - node = node.properties[0].name; - if (node.value.reserved) { - node = new Literal(o.scope.freeVariable(node.value)); - } - } else if (node.isComplex()) { - node = new Literal(o.scope.freeVariable('arg')); - } - node = new Value(node); - if (this.splat) { - node = new Splat(node); - } - return this.reference = node; - }; - - Param.prototype.isComplex = function() { - return this.name.isComplex(); - }; - - Param.prototype.eachName = function(iterator, name) { - var atParam, node, obj, _i, _len, _ref4; - if (name == null) { - name = this.name; - } - atParam = function(obj) { - var node; - node = obj.properties[0].name; - if (!node.value.reserved) { - return iterator(node.value, node); - } - }; - if (name instanceof Literal) { - return iterator(name.value, name); - } - if (name instanceof Value) { - return atParam(name); - } - _ref4 = name.objects; - for (_i = 0, _len = _ref4.length; _i < _len; _i++) { - obj = _ref4[_i]; - if (obj instanceof Assign) { - this.eachName(iterator, obj.value.unwrap()); - } else if (obj instanceof Splat) { - node = obj.name.unwrap(); - iterator(node.value, node); - } else if (obj instanceof Value) { - if (obj.isArray() || obj.isObject()) { - this.eachName(iterator, obj.base); - } else if (obj["this"]) { - atParam(obj); - } else { - iterator(obj.base.value, obj.base); - } - } else { - obj.error("illegal parameter " + (obj.compile())); - } - } - }; - - return Param; - - })(Base); - - exports.Splat = Splat = (function(_super) { - __extends(Splat, _super); - - Splat.prototype.children = ['name']; - - Splat.prototype.isAssignable = YES; - - function Splat(name) { - this.name = name.compile ? name : new Literal(name); - } - - Splat.prototype.assigns = function(name) { - return this.name.assigns(name); - }; - - Splat.prototype.compileToFragments = function(o) { - return this.name.compileToFragments(o); - }; - - Splat.prototype.unwrap = function() { - return this.name; - }; - - Splat.compileSplattedArray = function(o, list, apply) { - var args, base, compiledNode, concatPart, fragments, i, index, node, _i, _len; - index = -1; - while ((node = list[++index]) && !(node instanceof Splat)) { - continue; - } - if (index >= list.length) { - return []; - } - if (list.length === 1) { - node = list[0]; - fragments = node.compileToFragments(o, LEVEL_LIST); - if (apply) { - return fragments; - } - return [].concat(node.makeCode("" + (utility('slice')) + ".call("), fragments, node.makeCode(")")); - } - args = list.slice(index); - for (i = _i = 0, _len = args.length; _i < _len; i = ++_i) { - node = args[i]; - compiledNode = node.compileToFragments(o, LEVEL_LIST); - args[i] = node instanceof Splat ? [].concat(node.makeCode("" + (utility('slice')) + ".call("), compiledNode, node.makeCode(")")) : [].concat(node.makeCode("["), compiledNode, node.makeCode("]")); - } - if (index === 0) { - node = list[0]; - concatPart = node.joinFragmentArrays(args.slice(1), ', '); - return args[0].concat(node.makeCode(".concat("), concatPart, node.makeCode(")")); - } - base = (function() { - var _j, _len1, _ref4, _results; - _ref4 = list.slice(0, index); - _results = []; - for (_j = 0, _len1 = _ref4.length; _j < _len1; _j++) { - node = _ref4[_j]; - _results.push(node.compileToFragments(o, LEVEL_LIST)); - } - return _results; - })(); - base = list[0].joinFragmentArrays(base, ', '); - concatPart = list[index].joinFragmentArrays(args, ', '); - return [].concat(list[0].makeCode("["), base, list[index].makeCode("].concat("), concatPart, (last(list)).makeCode(")")); - }; - - return Splat; - - })(Base); - - exports.While = While = (function(_super) { - __extends(While, _super); - - function While(condition, options) { - this.condition = (options != null ? options.invert : void 0) ? condition.invert() : condition; - this.guard = options != null ? options.guard : void 0; - } - - While.prototype.children = ['condition', 'guard', 'body']; - - While.prototype.isStatement = YES; - - While.prototype.makeReturn = function(res) { - if (res) { - return While.__super__.makeReturn.apply(this, arguments); - } else { - this.returns = !this.jumps({ - loop: true - }); - return this; - } - }; - - While.prototype.addBody = function(body) { - this.body = body; - return this; - }; - - While.prototype.jumps = function() { - var expressions, node, _i, _len; - expressions = this.body.expressions; - if (!expressions.length) { - return false; - } - for (_i = 0, _len = expressions.length; _i < _len; _i++) { - node = expressions[_i]; - if (node.jumps({ - loop: true - })) { - return node; - } - } - return false; - }; - - While.prototype.compileNode = function(o) { - var answer, body, rvar, set; - o.indent += TAB; - set = ''; - body = this.body; - if (body.isEmpty()) { - body = this.makeCode(''); - } else { - if (this.returns) { - body.makeReturn(rvar = o.scope.freeVariable('results')); - set = "" + this.tab + rvar + " = [];\n"; - } - if (this.guard) { - if (body.expressions.length > 1) { - body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue"))); - } else { - if (this.guard) { - body = Block.wrap([new If(this.guard, body)]); - } - } - } - body = [].concat(this.makeCode("\n"), body.compileToFragments(o, LEVEL_TOP), this.makeCode("\n" + this.tab)); - } - answer = [].concat(this.makeCode(set + this.tab + "while ("), this.condition.compileToFragments(o, LEVEL_PAREN), this.makeCode(") {"), body, this.makeCode("}")); - if (this.returns) { - answer.push(this.makeCode("\n" + this.tab + "return " + rvar + ";")); - } - return answer; - }; - - return While; - - })(Base); - - exports.Op = Op = (function(_super) { - var CONVERSIONS, INVERSIONS; - - __extends(Op, _super); - - function Op(op, first, second, flip) { - if (op === 'in') { - return new In(first, second); - } - if (op === 'do') { - return this.generateDo(first); - } - if (op === 'new') { - if (first instanceof Call && !first["do"] && !first.isNew) { - return first.newInstance(); - } - if (first instanceof Code && first.bound || first["do"]) { - first = new Parens(first); - } - } - this.operator = CONVERSIONS[op] || op; - this.first = first; - this.second = second; - this.flip = !!flip; - return this; - } - - CONVERSIONS = { - '==': '===', - '!=': '!==', - 'of': 'in' - }; - - INVERSIONS = { - '!==': '===', - '===': '!==' - }; - - Op.prototype.children = ['first', 'second']; - - Op.prototype.isSimpleNumber = NO; - - Op.prototype.isUnary = function() { - return !this.second; - }; - - Op.prototype.isComplex = function() { - var _ref4; - return !(this.isUnary() && ((_ref4 = this.operator) === '+' || _ref4 === '-')) || this.first.isComplex(); - }; - - Op.prototype.isChainable = function() { - var _ref4; - return (_ref4 = this.operator) === '<' || _ref4 === '>' || _ref4 === '>=' || _ref4 === '<=' || _ref4 === '===' || _ref4 === '!=='; - }; - - Op.prototype.invert = function() { - var allInvertable, curr, fst, op, _ref4; - if (this.isChainable() && this.first.isChainable()) { - allInvertable = true; - curr = this; - while (curr && curr.operator) { - allInvertable && (allInvertable = curr.operator in INVERSIONS); - curr = curr.first; - } - if (!allInvertable) { - return new Parens(this).invert(); - } - curr = this; - while (curr && curr.operator) { - curr.invert = !curr.invert; - curr.operator = INVERSIONS[curr.operator]; - curr = curr.first; - } - return this; - } else if (op = INVERSIONS[this.operator]) { - this.operator = op; - if (this.first.unwrap() instanceof Op) { - this.first.invert(); - } - return this; - } else if (this.second) { - return new Parens(this).invert(); - } else if (this.operator === '!' && (fst = this.first.unwrap()) instanceof Op && ((_ref4 = fst.operator) === '!' || _ref4 === 'in' || _ref4 === 'instanceof')) { - return fst; - } else { - return new Op('!', this); - } - }; - - Op.prototype.unfoldSoak = function(o) { - var _ref4; - return ((_ref4 = this.operator) === '++' || _ref4 === '--' || _ref4 === 'delete') && unfoldSoak(o, this, 'first'); - }; - - Op.prototype.generateDo = function(exp) { - var call, func, param, passedParams, ref, _i, _len, _ref4; - passedParams = []; - func = exp instanceof Assign && (ref = exp.value.unwrap()) instanceof Code ? ref : exp; - _ref4 = func.params || []; - for (_i = 0, _len = _ref4.length; _i < _len; _i++) { - param = _ref4[_i]; - if (param.value) { - passedParams.push(param.value); - delete param.value; - } else { - passedParams.push(param); - } - } - call = new Call(exp, passedParams); - call["do"] = true; - return call; - }; - - Op.prototype.compileNode = function(o) { - var answer, isChain, _ref4, _ref5; - isChain = this.isChainable() && this.first.isChainable(); - if (!isChain) { - this.first.front = this.front; - } - if (this.operator === 'delete' && o.scope.check(this.first.unwrapAll().value)) { - this.error('delete operand may not be argument or var'); - } - if (((_ref4 = this.operator) === '--' || _ref4 === '++') && (_ref5 = this.first.unwrapAll().value, __indexOf.call(STRICT_PROSCRIBED, _ref5) >= 0)) { - this.error("cannot increment/decrement \"" + (this.first.unwrapAll().value) + "\""); - } - if (this.isUnary()) { - return this.compileUnary(o); - } - if (isChain) { - return this.compileChain(o); - } - if (this.operator === '?') { - return this.compileExistence(o); - } - answer = [].concat(this.first.compileToFragments(o, LEVEL_OP), this.makeCode(' ' + this.operator + ' '), this.second.compileToFragments(o, LEVEL_OP)); - if (o.level <= LEVEL_OP) { - return answer; - } else { - return this.wrapInBraces(answer); - } - }; - - Op.prototype.compileChain = function(o) { - var fragments, fst, shared, _ref4; - _ref4 = this.first.second.cache(o), this.first.second = _ref4[0], shared = _ref4[1]; - fst = this.first.compileToFragments(o, LEVEL_OP); - fragments = fst.concat(this.makeCode(" " + (this.invert ? '&&' : '||') + " "), shared.compileToFragments(o), this.makeCode(" " + this.operator + " "), this.second.compileToFragments(o, LEVEL_OP)); - return this.wrapInBraces(fragments); - }; - - Op.prototype.compileExistence = function(o) { - var fst, ref; - if (!o.isExistentialEquals && this.first.isComplex()) { - ref = new Literal(o.scope.freeVariable('ref')); - fst = new Parens(new Assign(ref, this.first)); - } else { - fst = this.first; - ref = fst; - } - return new If(new Existence(fst), ref, { - type: 'if' - }).addElse(this.second).compileToFragments(o); - }; - - Op.prototype.compileUnary = function(o) { - var op, parts, plusMinus; - parts = []; - op = this.operator; - parts.push([this.makeCode(op)]); - if (op === '!' && this.first instanceof Existence) { - this.first.negated = !this.first.negated; - return this.first.compileToFragments(o); - } - if (o.level >= LEVEL_ACCESS) { - return (new Parens(this)).compileToFragments(o); - } - plusMinus = op === '+' || op === '-'; - if ((op === 'new' || op === 'typeof' || op === 'delete') || plusMinus && this.first instanceof Op && this.first.operator === op) { - parts.push([this.makeCode(' ')]); - } - if ((plusMinus && this.first instanceof Op) || (op === 'new' && this.first.isStatement(o))) { - this.first = new Parens(this.first); - } - parts.push(this.first.compileToFragments(o, LEVEL_OP)); - if (this.flip) { - parts.reverse(); - } - return this.joinFragmentArrays(parts, ''); - }; - - Op.prototype.toString = function(idt) { - return Op.__super__.toString.call(this, idt, this.constructor.name + ' ' + this.operator); - }; - - return Op; - - })(Base); - - exports.In = In = (function(_super) { - __extends(In, _super); - - function In(object, array) { - this.object = object; - this.array = array; - } - - In.prototype.children = ['object', 'array']; - - In.prototype.invert = NEGATE; - - In.prototype.compileNode = function(o) { - var hasSplat, obj, _i, _len, _ref4; - if (this.array instanceof Value && this.array.isArray()) { - _ref4 = this.array.base.objects; - for (_i = 0, _len = _ref4.length; _i < _len; _i++) { - obj = _ref4[_i]; - if (!(obj instanceof Splat)) { - continue; - } - hasSplat = true; - break; - } - if (!hasSplat) { - return this.compileOrTest(o); - } - } - return this.compileLoopTest(o); - }; - - In.prototype.compileOrTest = function(o) { - var cmp, cnj, i, item, ref, sub, tests, _i, _len, _ref4, _ref5, _ref6; - if (this.array.base.objects.length === 0) { - return [this.makeCode("" + (!!this.negated))]; - } - _ref4 = this.object.cache(o, LEVEL_OP), sub = _ref4[0], ref = _ref4[1]; - _ref5 = this.negated ? [' !== ', ' && '] : [' === ', ' || '], cmp = _ref5[0], cnj = _ref5[1]; - tests = []; - _ref6 = this.array.base.objects; - for (i = _i = 0, _len = _ref6.length; _i < _len; i = ++_i) { - item = _ref6[i]; - if (i) { - tests.push(this.makeCode(cnj)); - } - tests = tests.concat((i ? ref : sub), this.makeCode(cmp), item.compileToFragments(o, LEVEL_ACCESS)); - } - if (o.level < LEVEL_OP) { - return tests; - } else { - return this.wrapInBraces(tests); - } - }; - - In.prototype.compileLoopTest = function(o) { - var fragments, ref, sub, _ref4; - _ref4 = this.object.cache(o, LEVEL_LIST), sub = _ref4[0], ref = _ref4[1]; - fragments = [].concat(this.makeCode(utility('indexOf') + ".call("), this.array.compileToFragments(o, LEVEL_LIST), this.makeCode(", "), ref, this.makeCode(") " + (this.negated ? '< 0' : '>= 0'))); - if (fragmentsToText(sub) === fragmentsToText(ref)) { - return fragments; - } - fragments = sub.concat(this.makeCode(', '), fragments); - if (o.level < LEVEL_LIST) { - return fragments; - } else { - return this.wrapInBraces(fragments); - } - }; - - In.prototype.toString = function(idt) { - return In.__super__.toString.call(this, idt, this.constructor.name + (this.negated ? '!' : '')); - }; - - return In; - - })(Base); - - exports.Try = Try = (function(_super) { - __extends(Try, _super); - - function Try(attempt, errorVariable, recovery, ensure) { - this.attempt = attempt; - this.errorVariable = errorVariable; - this.recovery = recovery; - this.ensure = ensure; - } - - Try.prototype.children = ['attempt', 'recovery', 'ensure']; - - Try.prototype.isStatement = YES; - - Try.prototype.jumps = function(o) { - var _ref4; - return this.attempt.jumps(o) || ((_ref4 = this.recovery) != null ? _ref4.jumps(o) : void 0); - }; - - Try.prototype.makeReturn = function(res) { - if (this.attempt) { - this.attempt = this.attempt.makeReturn(res); - } - if (this.recovery) { - this.recovery = this.recovery.makeReturn(res); - } - return this; - }; - - Try.prototype.compileNode = function(o) { - var catchPart, ensurePart, placeholder, tryPart; - o.indent += TAB; - tryPart = this.attempt.compileToFragments(o, LEVEL_TOP); - catchPart = this.recovery ? (placeholder = new Literal('_error'), this.errorVariable ? this.recovery.unshift(new Assign(this.errorVariable, placeholder)) : void 0, [].concat(this.makeCode(" catch ("), placeholder.compileToFragments(o), this.makeCode(") {\n"), this.recovery.compileToFragments(o, LEVEL_TOP), this.makeCode("\n" + this.tab + "}"))) : !(this.ensure || this.recovery) ? [this.makeCode(' catch (_error) {}')] : []; - ensurePart = this.ensure ? [].concat(this.makeCode(" finally {\n"), this.ensure.compileToFragments(o, LEVEL_TOP), this.makeCode("\n" + this.tab + "}")) : []; - return [].concat(this.makeCode("" + this.tab + "try {\n"), tryPart, this.makeCode("\n" + this.tab + "}"), catchPart, ensurePart); - }; - - return Try; - - })(Base); - - exports.Throw = Throw = (function(_super) { - __extends(Throw, _super); - - function Throw(expression) { - this.expression = expression; - } - - Throw.prototype.children = ['expression']; - - Throw.prototype.isStatement = YES; - - Throw.prototype.jumps = NO; - - Throw.prototype.makeReturn = THIS; - - Throw.prototype.compileNode = function(o) { - return [].concat(this.makeCode(this.tab + "throw "), this.expression.compileToFragments(o), this.makeCode(";")); - }; - - return Throw; - - })(Base); - - exports.Existence = Existence = (function(_super) { - __extends(Existence, _super); - - function Existence(expression) { - this.expression = expression; - } - - Existence.prototype.children = ['expression']; - - Existence.prototype.invert = NEGATE; - - Existence.prototype.compileNode = function(o) { - var cmp, cnj, code, _ref4; - this.expression.front = this.front; - code = this.expression.compile(o, LEVEL_OP); - if (IDENTIFIER.test(code) && !o.scope.check(code)) { - _ref4 = this.negated ? ['===', '||'] : ['!==', '&&'], cmp = _ref4[0], cnj = _ref4[1]; - code = "typeof " + code + " " + cmp + " \"undefined\" " + cnj + " " + code + " " + cmp + " null"; - } else { - code = "" + code + " " + (this.negated ? '==' : '!=') + " null"; - } - return [this.makeCode(o.level <= LEVEL_COND ? code : "(" + code + ")")]; - }; - - return Existence; - - })(Base); - - exports.Parens = Parens = (function(_super) { - __extends(Parens, _super); - - function Parens(body) { - this.body = body; - } - - Parens.prototype.children = ['body']; - - Parens.prototype.unwrap = function() { - return this.body; - }; - - Parens.prototype.isComplex = function() { - return this.body.isComplex(); - }; - - Parens.prototype.compileNode = function(o) { - var bare, expr, fragments; - expr = this.body.unwrap(); - if (expr instanceof Value && expr.isAtomic()) { - expr.front = this.front; - return expr.compileToFragments(o); - } - fragments = expr.compileToFragments(o, LEVEL_PAREN); - bare = o.level < LEVEL_OP && (expr instanceof Op || expr instanceof Call || (expr instanceof For && expr.returns)); - if (bare) { - return fragments; - } else { - return this.wrapInBraces(fragments); - } - }; - - return Parens; - - })(Base); - - exports.For = For = (function(_super) { - __extends(For, _super); - - function For(body, source) { - var _ref4; - this.source = source.source, this.guard = source.guard, this.step = source.step, this.name = source.name, this.index = source.index; - this.body = Block.wrap([body]); - this.own = !!source.own; - this.object = !!source.object; - if (this.object) { - _ref4 = [this.index, this.name], this.name = _ref4[0], this.index = _ref4[1]; - } - if (this.index instanceof Value) { - this.index.error('index cannot be a pattern matching expression'); - } - this.range = this.source instanceof Value && this.source.base instanceof Range && !this.source.properties.length; - this.pattern = this.name instanceof Value; - if (this.range && this.index) { - this.index.error('indexes do not apply to range loops'); - } - if (this.range && this.pattern) { - this.name.error('cannot pattern match over range loops'); - } - if (this.own && !this.object) { - this.index.error('cannot use own with for-in'); - } - this.returns = false; - } - - For.prototype.children = ['body', 'source', 'guard', 'step']; - - For.prototype.compileNode = function(o) { - var body, bodyFragments, compare, compareDown, declare, declareDown, defPart, defPartFragments, down, forPartFragments, guardPart, idt1, increment, index, ivar, kvar, kvarAssign, lastJumps, lvar, name, namePart, ref, resultPart, returnResult, rvar, scope, source, step, stepNum, stepVar, svar, varPart, _ref4, _ref5; - body = Block.wrap([this.body]); - lastJumps = (_ref4 = last(body.expressions)) != null ? _ref4.jumps() : void 0; - if (lastJumps && lastJumps instanceof Return) { - this.returns = false; - } - source = this.range ? this.source.base : this.source; - scope = o.scope; - name = this.name && (this.name.compile(o, LEVEL_LIST)); - index = this.index && (this.index.compile(o, LEVEL_LIST)); - if (name && !this.pattern) { - scope.find(name); - } - if (index) { - scope.find(index); - } - if (this.returns) { - rvar = scope.freeVariable('results'); - } - ivar = (this.object && index) || scope.freeVariable('i'); - kvar = (this.range && name) || index || ivar; - kvarAssign = kvar !== ivar ? "" + kvar + " = " : ""; - if (this.step && !this.range) { - _ref5 = this.cacheToCodeFragments(this.step.cache(o, LEVEL_LIST)), step = _ref5[0], stepVar = _ref5[1]; - stepNum = stepVar.match(SIMPLENUM); - } - if (this.pattern) { - name = ivar; - } - varPart = ''; - guardPart = ''; - defPart = ''; - idt1 = this.tab + TAB; - if (this.range) { - forPartFragments = source.compileToFragments(merge(o, { - index: ivar, - name: name, - step: this.step - })); - } else { - svar = this.source.compile(o, LEVEL_LIST); - if ((name || this.own) && !IDENTIFIER.test(svar)) { - defPart += "" + this.tab + (ref = scope.freeVariable('ref')) + " = " + svar + ";\n"; - svar = ref; - } - if (name && !this.pattern) { - namePart = "" + name + " = " + svar + "[" + kvar + "]"; - } - if (!this.object) { - if (step !== stepVar) { - defPart += "" + this.tab + step + ";\n"; - } - if (!(this.step && stepNum && (down = +stepNum < 0))) { - lvar = scope.freeVariable('len'); - } - declare = "" + kvarAssign + ivar + " = 0, " + lvar + " = " + svar + ".length"; - declareDown = "" + kvarAssign + ivar + " = " + svar + ".length - 1"; - compare = "" + ivar + " < " + lvar; - compareDown = "" + ivar + " >= 0"; - if (this.step) { - if (stepNum) { - if (down) { - compare = compareDown; - declare = declareDown; - } - } else { - compare = "" + stepVar + " > 0 ? " + compare + " : " + compareDown; - declare = "(" + stepVar + " > 0 ? (" + declare + ") : " + declareDown + ")"; - } - increment = "" + ivar + " += " + stepVar; - } else { - increment = "" + (kvar !== ivar ? "++" + ivar : "" + ivar + "++"); - } - forPartFragments = [this.makeCode("" + declare + "; " + compare + "; " + kvarAssign + increment)]; - } - } - if (this.returns) { - resultPart = "" + this.tab + rvar + " = [];\n"; - returnResult = "\n" + this.tab + "return " + rvar + ";"; - body.makeReturn(rvar); - } - if (this.guard) { - if (body.expressions.length > 1) { - body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue"))); - } else { - if (this.guard) { - body = Block.wrap([new If(this.guard, body)]); - } - } - } - if (this.pattern) { - body.expressions.unshift(new Assign(this.name, new Literal("" + svar + "[" + kvar + "]"))); - } - defPartFragments = [].concat(this.makeCode(defPart), this.pluckDirectCall(o, body)); - if (namePart) { - varPart = "\n" + idt1 + namePart + ";"; - } - if (this.object) { - forPartFragments = [this.makeCode("" + kvar + " in " + svar)]; - if (this.own) { - guardPart = "\n" + idt1 + "if (!" + (utility('hasProp')) + ".call(" + svar + ", " + kvar + ")) continue;"; - } - } - bodyFragments = body.compileToFragments(merge(o, { - indent: idt1 - }), LEVEL_TOP); - if (bodyFragments && (bodyFragments.length > 0)) { - bodyFragments = [].concat(this.makeCode("\n"), bodyFragments, this.makeCode("\n")); - } - return [].concat(defPartFragments, this.makeCode("" + (resultPart || '') + this.tab + "for ("), forPartFragments, this.makeCode(") {" + guardPart + varPart), bodyFragments, this.makeCode("" + this.tab + "}" + (returnResult || ''))); - }; - - For.prototype.pluckDirectCall = function(o, body) { - var base, defs, expr, fn, idx, ref, val, _i, _len, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9; - defs = []; - _ref4 = body.expressions; - for (idx = _i = 0, _len = _ref4.length; _i < _len; idx = ++_i) { - expr = _ref4[idx]; - expr = expr.unwrapAll(); - if (!(expr instanceof Call)) { - continue; - } - val = expr.variable.unwrapAll(); - if (!((val instanceof Code) || (val instanceof Value && ((_ref5 = val.base) != null ? _ref5.unwrapAll() : void 0) instanceof Code && val.properties.length === 1 && ((_ref6 = (_ref7 = val.properties[0].name) != null ? _ref7.value : void 0) === 'call' || _ref6 === 'apply')))) { - continue; - } - fn = ((_ref8 = val.base) != null ? _ref8.unwrapAll() : void 0) || val; - ref = new Literal(o.scope.freeVariable('fn')); - base = new Value(ref); - if (val.base) { - _ref9 = [base, val], val.base = _ref9[0], base = _ref9[1]; - } - body.expressions[idx] = new Call(base, expr.args); - defs = defs.concat(this.makeCode(this.tab), new Assign(ref, fn).compileToFragments(o, LEVEL_TOP), this.makeCode(';\n')); - } - return defs; - }; - - return For; - - })(While); - - exports.Switch = Switch = (function(_super) { - __extends(Switch, _super); - - function Switch(subject, cases, otherwise) { - this.subject = subject; - this.cases = cases; - this.otherwise = otherwise; - } - - Switch.prototype.children = ['subject', 'cases', 'otherwise']; - - Switch.prototype.isStatement = YES; - - Switch.prototype.jumps = function(o) { - var block, conds, _i, _len, _ref4, _ref5, _ref6; - if (o == null) { - o = { - block: true - }; - } - _ref4 = this.cases; - for (_i = 0, _len = _ref4.length; _i < _len; _i++) { - _ref5 = _ref4[_i], conds = _ref5[0], block = _ref5[1]; - if (block.jumps(o)) { - return block; - } - } - return (_ref6 = this.otherwise) != null ? _ref6.jumps(o) : void 0; - }; - - Switch.prototype.makeReturn = function(res) { - var pair, _i, _len, _ref4, _ref5; - _ref4 = this.cases; - for (_i = 0, _len = _ref4.length; _i < _len; _i++) { - pair = _ref4[_i]; - pair[1].makeReturn(res); - } - if (res) { - this.otherwise || (this.otherwise = new Block([new Literal('void 0')])); - } - if ((_ref5 = this.otherwise) != null) { - _ref5.makeReturn(res); - } - return this; - }; - - Switch.prototype.compileNode = function(o) { - var block, body, cond, conditions, expr, fragments, i, idt1, idt2, _i, _j, _len, _len1, _ref4, _ref5, _ref6; - idt1 = o.indent + TAB; - idt2 = o.indent = idt1 + TAB; - fragments = [].concat(this.makeCode(this.tab + "switch ("), (this.subject ? this.subject.compileToFragments(o, LEVEL_PAREN) : this.makeCode("false")), this.makeCode(") {\n")); - _ref4 = this.cases; - for (i = _i = 0, _len = _ref4.length; _i < _len; i = ++_i) { - _ref5 = _ref4[i], conditions = _ref5[0], block = _ref5[1]; - _ref6 = flatten([conditions]); - for (_j = 0, _len1 = _ref6.length; _j < _len1; _j++) { - cond = _ref6[_j]; - if (!this.subject) { - cond = cond.invert(); - } - fragments = fragments.concat(this.makeCode(idt1 + "case "), cond.compileToFragments(o, LEVEL_PAREN), this.makeCode(":\n")); - } - if ((body = block.compileToFragments(o, LEVEL_TOP)).length > 0) { - fragments = fragments.concat(body, this.makeCode('\n')); - } - if (i === this.cases.length - 1 && !this.otherwise) { - break; - } - expr = this.lastNonComment(block.expressions); - if (expr instanceof Return || (expr instanceof Literal && expr.jumps() && expr.value !== 'debugger')) { - continue; - } - fragments.push(cond.makeCode(idt2 + 'break;\n')); - } - if (this.otherwise && this.otherwise.expressions.length) { - fragments.push.apply(fragments, [this.makeCode(idt1 + "default:\n")].concat(__slice.call(this.otherwise.compileToFragments(o, LEVEL_TOP)), [this.makeCode("\n")])); - } - fragments.push(this.makeCode(this.tab + '}')); - return fragments; - }; - - return Switch; - - })(Base); - - exports.If = If = (function(_super) { - __extends(If, _super); - - function If(condition, body, options) { - this.body = body; - if (options == null) { - options = {}; - } - this.condition = options.type === 'unless' ? condition.invert() : condition; - this.elseBody = null; - this.isChain = false; - this.soak = options.soak; - } - - If.prototype.children = ['condition', 'body', 'elseBody']; - - If.prototype.bodyNode = function() { - var _ref4; - return (_ref4 = this.body) != null ? _ref4.unwrap() : void 0; - }; - - If.prototype.elseBodyNode = function() { - var _ref4; - return (_ref4 = this.elseBody) != null ? _ref4.unwrap() : void 0; - }; - - If.prototype.addElse = function(elseBody) { - if (this.isChain) { - this.elseBodyNode().addElse(elseBody); - } else { - this.isChain = elseBody instanceof If; - this.elseBody = this.ensureBlock(elseBody); - } - return this; - }; - - If.prototype.isStatement = function(o) { - var _ref4; - return (o != null ? o.level : void 0) === LEVEL_TOP || this.bodyNode().isStatement(o) || ((_ref4 = this.elseBodyNode()) != null ? _ref4.isStatement(o) : void 0); - }; - - If.prototype.jumps = function(o) { - var _ref4; - return this.body.jumps(o) || ((_ref4 = this.elseBody) != null ? _ref4.jumps(o) : void 0); - }; - - If.prototype.compileNode = function(o) { - if (this.isStatement(o)) { - return this.compileStatement(o); - } else { - return this.compileExpression(o); - } - }; - - If.prototype.makeReturn = function(res) { - if (res) { - this.elseBody || (this.elseBody = new Block([new Literal('void 0')])); - } - this.body && (this.body = new Block([this.body.makeReturn(res)])); - this.elseBody && (this.elseBody = new Block([this.elseBody.makeReturn(res)])); - return this; - }; - - If.prototype.ensureBlock = function(node) { - if (node instanceof Block) { - return node; - } else { - return new Block([node]); - } - }; - - If.prototype.compileStatement = function(o) { - var answer, body, child, cond, exeq, ifPart, indent; - child = del(o, 'chainChild'); - exeq = del(o, 'isExistentialEquals'); - if (exeq) { - return new If(this.condition.invert(), this.elseBodyNode(), { - type: 'if' - }).compileToFragments(o); - } - indent = o.indent + TAB; - cond = this.condition.compileToFragments(o, LEVEL_PAREN); - body = this.ensureBlock(this.body).compileToFragments(merge(o, { - indent: indent - })); - ifPart = [].concat(this.makeCode("if ("), cond, this.makeCode(") {\n"), body, this.makeCode("\n" + this.tab + "}")); - if (!child) { - ifPart.unshift(this.makeCode(this.tab)); - } - if (!this.elseBody) { - return ifPart; - } - answer = ifPart.concat(this.makeCode(' else ')); - if (this.isChain) { - o.chainChild = true; - answer = answer.concat(this.elseBody.unwrap().compileToFragments(o, LEVEL_TOP)); - } else { - answer = answer.concat(this.makeCode("{\n"), this.elseBody.compileToFragments(merge(o, { - indent: indent - }), LEVEL_TOP), this.makeCode("\n" + this.tab + "}")); - } - return answer; - }; - - If.prototype.compileExpression = function(o) { - var alt, body, cond, fragments; - cond = this.condition.compileToFragments(o, LEVEL_COND); - body = this.bodyNode().compileToFragments(o, LEVEL_LIST); - alt = this.elseBodyNode() ? this.elseBodyNode().compileToFragments(o, LEVEL_LIST) : [this.makeCode('void 0')]; - fragments = cond.concat(this.makeCode(" ? "), body, this.makeCode(" : "), alt); - if (o.level >= LEVEL_COND) { - return this.wrapInBraces(fragments); - } else { - return fragments; - } - }; - - If.prototype.unfoldSoak = function() { - return this.soak && this; - }; - - return If; - - })(Base); - - Closure = { - wrap: function(expressions, statement, noReturn) { - var args, argumentsNode, call, func, meth; - if (expressions.jumps()) { - return expressions; - } - func = new Code([], Block.wrap([expressions])); - args = []; - argumentsNode = expressions.contains(this.isLiteralArguments); - if (argumentsNode && expressions.classBody) { - argumentsNode.error("Class bodies shouldn't reference arguments"); - } - if (argumentsNode || expressions.contains(this.isLiteralThis)) { - meth = new Literal(argumentsNode ? 'apply' : 'call'); - args = [new Literal('this')]; - if (argumentsNode) { - args.push(new Literal('arguments')); - } - func = new Value(func, [new Access(meth)]); - } - func.noReturn = noReturn; - call = new Call(func, args); - if (statement) { - return Block.wrap([call]); - } else { - return call; - } - }, - isLiteralArguments: function(node) { - return node instanceof Literal && node.value === 'arguments' && !node.asKey; - }, - isLiteralThis: function(node) { - return (node instanceof Literal && node.value === 'this' && !node.asKey) || (node instanceof Code && node.bound) || (node instanceof Call && node.isSuper); - } - }; - - unfoldSoak = function(o, parent, name) { - var ifn; - if (!(ifn = parent[name].unfoldSoak(o))) { - return; - } - parent[name] = ifn.body; - ifn.body = new Value(parent); - return ifn; - }; - - UTILITIES = { - "extends": function() { - return "function(child, parent) { for (var key in parent) { if (" + (utility('hasProp')) + ".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }"; - }, - bind: function() { - return 'function(fn, me){ return function(){ return fn.apply(me, arguments); }; }'; - }, - indexOf: function() { - return "[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }"; - }, - hasProp: function() { - return '{}.hasOwnProperty'; - }, - slice: function() { - return '[].slice'; - } - }; - - LEVEL_TOP = 1; - - LEVEL_PAREN = 2; - - LEVEL_LIST = 3; - - LEVEL_COND = 4; - - LEVEL_OP = 5; - - LEVEL_ACCESS = 6; - - TAB = ' '; - - IDENTIFIER_STR = "[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*"; - - IDENTIFIER = RegExp("^" + IDENTIFIER_STR + "$"); - - SIMPLENUM = /^[+-]?\d+$/; - - METHOD_DEF = RegExp("^(?:(" + IDENTIFIER_STR + ")\\.prototype(?:\\.(" + IDENTIFIER_STR + ")|\\[(\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*')\\]|\\[(0x[\\da-fA-F]+|\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\]))|(" + IDENTIFIER_STR + ")$"); - - IS_STRING = /^['"]/; - - utility = function(name) { - var ref; - ref = "__" + name; - Scope.root.assign(ref, UTILITIES[name]()); - return ref; - }; - - multident = function(code, tab) { - code = code.replace(/\n/g, '$&' + tab); - return code.replace(/\s+$/, ''); - }; - - -}); - -ace.define('ace/mode/coffee/scope', ['require', 'exports', 'module' , 'ace/mode/coffee/helpers'], function(require, exports, module) { - - var Scope, extend, last, _ref; - - _ref = require('./helpers'), extend = _ref.extend, last = _ref.last; - - exports.Scope = Scope = (function() { - Scope.root = null; - - function Scope(parent, expressions, method) { - this.parent = parent; - this.expressions = expressions; - this.method = method; - this.variables = [ - { - name: 'arguments', - type: 'arguments' - } - ]; - this.positions = {}; - if (!this.parent) { - Scope.root = this; - } - } - - Scope.prototype.add = function(name, type, immediate) { - if (this.shared && !immediate) { - return this.parent.add(name, type, immediate); - } - if (Object.prototype.hasOwnProperty.call(this.positions, name)) { - return this.variables[this.positions[name]].type = type; - } else { - return this.positions[name] = this.variables.push({ - name: name, - type: type - }) - 1; - } - }; - - Scope.prototype.namedMethod = function() { - var _ref1; - if (((_ref1 = this.method) != null ? _ref1.name : void 0) || !this.parent) { - return this.method; - } - return this.parent.namedMethod(); - }; - - Scope.prototype.find = function(name) { - if (this.check(name)) { - return true; - } - this.add(name, 'var'); - return false; - }; - - Scope.prototype.parameter = function(name) { - if (this.shared && this.parent.check(name, true)) { - return; - } - return this.add(name, 'param'); - }; - - Scope.prototype.check = function(name) { - var _ref1; - return !!(this.type(name) || ((_ref1 = this.parent) != null ? _ref1.check(name) : void 0)); - }; - - Scope.prototype.temporary = function(name, index) { - if (name.length > 1) { - return '_' + name + (index > 1 ? index - 1 : ''); - } else { - return '_' + (index + parseInt(name, 36)).toString(36).replace(/\d/g, 'a'); - } - }; - - Scope.prototype.type = function(name) { - var v, _i, _len, _ref1; - _ref1 = this.variables; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - v = _ref1[_i]; - if (v.name === name) { - return v.type; - } - } - return null; - }; - - Scope.prototype.freeVariable = function(name, reserve) { - var index, temp; - if (reserve == null) { - reserve = true; - } - index = 0; - while (this.check((temp = this.temporary(name, index)))) { - index++; - } - if (reserve) { - this.add(temp, 'var', true); - } - return temp; - }; - - Scope.prototype.assign = function(name, value) { - this.add(name, { - value: value, - assigned: true - }, true); - return this.hasAssignments = true; - }; - - Scope.prototype.hasDeclarations = function() { - return !!this.declaredVariables().length; - }; - - Scope.prototype.declaredVariables = function() { - var realVars, tempVars, v, _i, _len, _ref1; - realVars = []; - tempVars = []; - _ref1 = this.variables; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - v = _ref1[_i]; - if (v.type === 'var') { - (v.name.charAt(0) === '_' ? tempVars : realVars).push(v.name); - } - } - return realVars.sort().concat(tempVars.sort()); - }; - - Scope.prototype.assignedVariables = function() { - var v, _i, _len, _ref1, _results; - _ref1 = this.variables; - _results = []; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - v = _ref1[_i]; - if (v.type.assigned) { - _results.push("" + v.name + " = " + v.type.value); - } - } - return _results; - }; - - return Scope; - - })(); - - -});
\ No newline at end of file diff --git a/js/vendor/ace/src-noconflict/worker-css.js b/js/vendor/ace/src-noconflict/worker-css.js deleted file mode 100644 index 53374d1..0000000 --- a/js/vendor/ace/src-noconflict/worker-css.js +++ /dev/null @@ -1,8235 +0,0 @@ -"no use strict"; -;(function(window) { -if (typeof window.window != "undefined" && window.document) { - return; -} - -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.normalizeModule = function(parentId, moduleName) { - if (moduleName.indexOf("!") !== -1) { - var chunks = moduleName.split("!"); - return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]); - } - if (moduleName.charAt(0) == ".") { - var base = parentId.split("/").slice(0, -1).join("/"); - moduleName = base + "/" + moduleName; - - while(moduleName.indexOf(".") !== -1 && previous != moduleName) { - var previous = moduleName; - moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, ""); - } - } - - return moduleName; -}; - -window.require = function(parentId, id) { - if (!id) { - id = parentId - parentId = null; - } - if (!id.charAt) - throw new Error("worker.js require() accepts only (parentId, id) as arguments"); - - id = normalizeModule(parentId, id); - - var module = require.modules[id]; - if (module) { - if (!module.initialized) { - module.initialized = true; - module.exports = module.factory().exports; - } - return module.exports; - } - - var chunks = id.split("/"); - chunks[0] = require.tlns[chunks[0]] || chunks[0]; - var path = chunks.join("/") + ".js"; - - require.id = id; - importScripts(path); - return require(parentId, id); -}; - -require.modules = {}; -require.tlns = {}; - -window.define = function(id, deps, factory) { - if (arguments.length == 2) { - factory = deps; - if (typeof id != "string") { - deps = id; - id = require.id; - } - } else if (arguments.length == 1) { - factory = id; - id = require.id; - } - - if (id.indexOf("text!") === 0) - return; - - var req = function(deps, factory) { - return require(id, deps, factory); - }; - - require.modules[id] = { - exports: {}, - factory: function() { - var module = this; - var returnExports = factory(req, module.exports, module); - if (returnExports) - module.exports = returnExports; - return module; - } - }; -}; - -window.initBaseUrls = function initBaseUrls(topLevelNamespaces) { - require.tlns = topLevelNamespaces; -} - -window.initSender = function initSender() { - - var EventEmitter = require("ace/lib/event_emitter").EventEmitter; - var oop = require("ace/lib/oop"); - - var Sender = function() {}; - - (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); - - return new Sender(); -} - -window.main = null; -window.sender = null; - -window.onmessage = function(e) { - var msg = e.data; - if (msg.command) { - if (main[msg.command]) - main[msg.command].apply(main, msg.args); - else - throw new Error("Unknown command:" + msg.command); - } - else if (msg.init) { - initBaseUrls(msg.tlns); - require("ace/lib/es5-shim"); - sender = initSender(); - var clazz = require(msg.module)[msg.classname]; - main = new clazz(sender); - } - else if (msg.event && sender) { - sender._emit(msg.event, msg.data); - } -}; -})(this); - -ace.define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) { - - -var EventEmitter = {}; -var stopPropagation = function() { this.propagationStopped = true; }; -var preventDefault = function() { this.defaultPrevented = true; }; - -EventEmitter._emit = -EventEmitter._dispatchEvent = function(eventName, e) { - this._eventRegistry || (this._eventRegistry = {}); - this._defaultHandlers || (this._defaultHandlers = {}); - - var listeners = this._eventRegistry[eventName] || []; - var defaultHandler = this._defaultHandlers[eventName]; - if (!listeners.length && !defaultHandler) - return; - - if (typeof e != "object" || !e) - e = {}; - - if (!e.type) - e.type = eventName; - if (!e.stopPropagation) - e.stopPropagation = stopPropagation; - if (!e.preventDefault) - e.preventDefault = preventDefault; - - for (var i=0; i<listeners.length; i++) { - listeners[i](e, this); - if (e.propagationStopped) - break; - } - - if (defaultHandler && !e.defaultPrevented) - return defaultHandler(e, this); -}; - - -EventEmitter._signal = function(eventName, e) { - var listeners = (this._eventRegistry || {})[eventName]; - if (!listeners) - return; - - for (var i=0; i<listeners.length; 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_: {}}; - - if (handlers[eventName]) { - var old = handlers[eventName]; - var disabled = handlers._disabled_[eventName]; - if (!disabled) - handlers._disabled_[eventName] = disabled = []; - disabled.push(old); - var i = disabled.indexOf(callback); - if (i != -1) - disabled.splice(i, 1); - } - handlers[eventName] = callback; -}; -EventEmitter.removeDefaultHandler = function(eventName, callback) { - var handlers = this._defaultHandlers - if (!handlers) - return; - var disabled = handlers._disabled_[eventName]; - - if (handlers[eventName] == callback) { - var old = handlers[eventName]; - if (disabled) - this.setDefaultHandler(eventName, disabled.pop()); - } else if (disabled) { - var i = disabled.indexOf(callback); - if (i != -1) - disabled.splice(i, 1); - } -}; - -EventEmitter.on = -EventEmitter.addEventListener = function(eventName, callback, capturing) { - this._eventRegistry = this._eventRegistry || {}; - - var listeners = this._eventRegistry[eventName]; - if (!listeners) - listeners = this._eventRegistry[eventName] = []; - - if (listeners.indexOf(callback) == -1) - listeners[capturing ? "unshift" : "push"](callback); - return callback; -}; - -EventEmitter.off = -EventEmitter.removeListener = -EventEmitter.removeEventListener = function(eventName, callback) { - this._eventRegistry = this._eventRegistry || {}; - - var listeners = this._eventRegistry[eventName]; - if (!listeners) - return; - - var index = listeners.indexOf(callback); - if (index !== -1) - listeners.splice(index, 1); -}; - -EventEmitter.removeAllListeners = function(eventName) { - if (this._eventRegistry) this._eventRegistry[eventName] = []; -}; - -exports.EventEmitter = EventEmitter; - -}); - -ace.define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) { - - -exports.inherits = (function() { - var tempCtor = function() {}; - return function(ctor, superCtor) { - tempCtor.prototype = superCtor.prototype; - ctor.super_ = superCtor.prototype; - ctor.prototype = new tempCtor(); - ctor.prototype.constructor = ctor; - }; -}()); - -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/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) { - -function Empty() {} - -if (!Function.prototype.bind) { - Function.prototype.bind = function bind(that) { // .length is 1 - var target = this; - if (typeof target != "function") { - throw new TypeError("Function.prototype.bind called on incompatible " + target); - } - var args = slice.call(arguments, 1); // for normal call - var bound = function () { - - if (this instanceof bound) { - - var result = target.apply( - this, - args.concat(slice.call(arguments)) - ); - if (Object(result) === result) { - return result; - } - return this; - - } else { - return target.apply( - that, - args.concat(slice.call(arguments)) - ); - - } - - }; - if(target.prototype) { - Empty.prototype = target.prototype; - bound.prototype = new Empty(); - Empty.prototype = null; - } - return bound; - }; -} -var call = Function.prototype.call; -var prototypeOfArray = Array.prototype; -var prototypeOfObject = Object.prototype; -var slice = prototypeOfArray.slice; -var _toString = call.bind(prototypeOfObject.toString); -var owns = call.bind(prototypeOfObject.hasOwnProperty); -var defineGetter; -var defineSetter; -var lookupGetter; -var lookupSetter; -var supportsAccessors; -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__); -} -if ([1,2].splice(0).length != 2) { - if(function() { // test IE < 9 to splice bug - see issue #138 - function makeArray(l) { - var a = new Array(l+2); - a[0] = a[1] = 0; - return a; - } - var array = [], lengthBefore; - - array.splice.apply(array, makeArray(20)); - array.splice.apply(array, makeArray(26)); - - lengthBefore = array.length; //46 - array.splice(5, 0, "XXX"); // add one element - - lengthBefore + 1 == array.length - - if (lengthBefore + 1 == array.length) { - return true;// has right splice implementation without bugs - } - }()) {//IE 6/7 - var array_splice = Array.prototype.splice; - Array.prototype.splice = function(start, deleteCount) { - if (!arguments.length) { - return []; - } else { - return array_splice.apply(this, [ - start === void 0 ? 0 : start, - deleteCount === void 0 ? (this.length - start) : deleteCount - ].concat(slice.call(arguments, 2))) - } - }; - } else {//IE8 - Array.prototype.splice = function(pos, removeCount){ - var length = this.length; - if (pos > 0) { - if (pos > length) - pos = length; - } else if (pos == void 0) { - pos = 0; - } else if (pos < 0) { - pos = Math.max(length + pos, 0); - } - - if (!(pos+removeCount < length)) - removeCount = length - pos; - - var removed = this.slice(pos, pos+removeCount); - var insert = slice.call(arguments, 2); - var add = insert.length; - if (pos === length) { - if (add) { - this.push.apply(this, insert); - } - } else { - var remove = Math.min(removeCount, length - pos); - var tailOldPos = pos + remove; - var tailNewPos = tailOldPos + add - remove; - var tailCount = length - tailOldPos; - var lengthAfterRemove = length - remove; - - if (tailNewPos < tailOldPos) { // case A - for (var i = 0; i < tailCount; ++i) { - this[tailNewPos+i] = this[tailOldPos+i]; - } - } else if (tailNewPos > tailOldPos) { // case B - for (i = tailCount; i--; ) { - this[tailNewPos+i] = this[tailOldPos+i]; - } - } // else, add == remove (nothing to do) - - if (add && pos === lengthAfterRemove) { - this.length = lengthAfterRemove; // truncate array - this.push.apply(this, insert); - } else { - this.length = lengthAfterRemove + add; // reserves space - for (i = 0; i < add; ++i) { - this[pos+i] = insert[i]; - } - } - } - return removed; - }; - } -} -if (!Array.isArray) { - Array.isArray = function isArray(obj) { - return _toString(obj) == "[object Array]"; - }; -} -var boxedString = Object("a"), - splitString = boxedString[0] != "a" || !(0 in boxedString); - -if (!Array.prototype.forEach) { - Array.prototype.forEach = function forEach(fun /*, thisp*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - thisp = arguments[1], - i = -1, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(); // TODO message - } - - while (++i < length) { - if (i in self) { - fun.call(thisp, self[i], i, object); - } - } - }; -} -if (!Array.prototype.map) { - Array.prototype.map = function map(fun /*, thisp*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - result = Array(length), - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self) - result[i] = fun.call(thisp, self[i], i, object); - } - return result; - }; -} -if (!Array.prototype.filter) { - Array.prototype.filter = function filter(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - result = [], - value, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self) { - value = self[i]; - if (fun.call(thisp, value, i, object)) { - result.push(value); - } - } - } - return result; - }; -} -if (!Array.prototype.every) { - Array.prototype.every = function every(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self && !fun.call(thisp, self[i], i, object)) { - return false; - } - } - return true; - }; -} -if (!Array.prototype.some) { - Array.prototype.some = function some(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self && fun.call(thisp, self[i], i, object)) { - return true; - } - } - return false; - }; -} -if (!Array.prototype.reduce) { - Array.prototype.reduce = function reduce(fun /*, initial*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - if (!length && arguments.length == 1) { - throw new TypeError("reduce of empty array with no initial value"); - } - - var i = 0; - var result; - if (arguments.length >= 2) { - result = arguments[1]; - } else { - do { - if (i in self) { - result = self[i++]; - break; - } - if (++i >= length) { - throw new TypeError("reduce of empty array with no initial value"); - } - } while (true); - } - - for (; i < length; i++) { - if (i in self) { - result = fun.call(void 0, result, self[i], i, object); - } - } - - return result; - }; -} -if (!Array.prototype.reduceRight) { - Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - if (!length && arguments.length == 1) { - throw new TypeError("reduceRight of empty array with no initial value"); - } - - var result, i = length - 1; - if (arguments.length >= 2) { - result = arguments[1]; - } else { - do { - if (i in self) { - result = self[i--]; - break; - } - if (--i < 0) { - throw new TypeError("reduceRight of empty array with no initial value"); - } - } while (true); - } - - do { - if (i in this) { - result = fun.call(void 0, result, self[i], i, object); - } - } while (i--); - - return result; - }; -} -if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) { - Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) { - var self = splitString && _toString(this) == "[object String]" ? - this.split("") : - toObject(this), - length = self.length >>> 0; - - if (!length) { - return -1; - } - - var i = 0; - if (arguments.length > 1) { - i = toInteger(arguments[1]); - } - i = i >= 0 ? i : Math.max(0, length + i); - for (; i < length; i++) { - if (i in self && self[i] === sought) { - return i; - } - } - return -1; - }; -} -if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) { - Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) { - var self = splitString && _toString(this) == "[object String]" ? - this.split("") : - toObject(this), - length = self.length >>> 0; - - if (!length) { - return -1; - } - var i = length - 1; - if (arguments.length > 1) { - i = Math.min(i, toInteger(arguments[1])); - } - i = i >= 0 ? i : length - Math.abs(i); - for (; i >= 0; i--) { - if (i in self && sought === self[i]) { - return i; - } - } - return -1; - }; -} -if (!Object.getPrototypeOf) { - Object.getPrototypeOf = function getPrototypeOf(object) { - return object.__proto__ || ( - object.constructor ? - object.constructor.prototype : - prototypeOfObject - ); - }; -} -if (!Object.getOwnPropertyDescriptor) { - var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " + - "non-object: "; - Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) { - if ((typeof object != "object" && typeof object != "function") || object === null) - throw new TypeError(ERR_NON_OBJECT + object); - if (!owns(object, property)) - return; - - var descriptor, getter, setter; - descriptor = { enumerable: true, configurable: true }; - if (supportsAccessors) { - var prototype = object.__proto__; - object.__proto__ = prototypeOfObject; - - var getter = lookupGetter(object, property); - var setter = lookupSetter(object, property); - object.__proto__ = prototype; - - if (getter || setter) { - if (getter) descriptor.get = getter; - if (setter) descriptor.set = setter; - return descriptor; - } - } - descriptor.value = object[property]; - return descriptor; - }; -} -if (!Object.getOwnPropertyNames) { - Object.getOwnPropertyNames = function getOwnPropertyNames(object) { - return Object.keys(object); - }; -} -if (!Object.create) { - var createEmpty; - if (Object.prototype.__proto__ === null) { - createEmpty = function () { - return { "__proto__": null }; - }; - } else { - createEmpty = function () { - var empty = {}; - for (var i in empty) - empty[i] = null; - empty.constructor = - empty.hasOwnProperty = - empty.propertyIsEnumerable = - empty.isPrototypeOf = - empty.toLocaleString = - empty.toString = - empty.valueOf = - empty.__proto__ = null; - return empty; - } - } - - Object.create = function create(prototype, properties) { - var object; - if (prototype === null) { - object = createEmpty(); - } else { - if (typeof prototype != "object") - throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'"); - var Type = function () {}; - Type.prototype = prototype; - object = new Type(); - object.__proto__ = prototype; - } - if (properties !== void 0) - Object.defineProperties(object, properties); - return object; - }; -} - -function doesDefinePropertyWork(object) { - try { - Object.defineProperty(object, "sentinel", {}); - return "sentinel" in object; - } catch (exception) { - } -} -if (Object.defineProperty) { - var definePropertyWorksOnObject = doesDefinePropertyWork({}); - var definePropertyWorksOnDom = typeof document == "undefined" || - 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: "; - var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: " - var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " + - "on this javascript engine"; - - Object.defineProperty = function defineProperty(object, property, descriptor) { - if ((typeof object != "object" && typeof object != "function") || object === null) - throw new TypeError(ERR_NON_OBJECT_TARGET + object); - if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null) - 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); - if (owns(descriptor, "get")) - defineGetter(object, property, descriptor.get); - if (owns(descriptor, "set")) - defineSetter(object, property, descriptor.set); - } - - return object; - }; -} -if (!Object.defineProperties) { - Object.defineProperties = function defineProperties(object, properties) { - for (var property in properties) { - if (owns(properties, property)) - Object.defineProperty(object, property, properties[property]); - } - return object; - }; -} -if (!Object.seal) { - Object.seal = function seal(object) { - return object; - }; -} -if (!Object.freeze) { - Object.freeze = function freeze(object) { - return object; - }; -} -try { - Object.freeze(function () {}); -} catch (exception) { - Object.freeze = (function freeze(freezeObject) { - return function freeze(object) { - if (typeof object == "function") { - return object; - } else { - return freezeObject(object); - } - }; - })(Object.freeze); -} -if (!Object.preventExtensions) { - Object.preventExtensions = function preventExtensions(object) { - return object; - }; -} -if (!Object.isSealed) { - Object.isSealed = function isSealed(object) { - return false; - }; -} -if (!Object.isFrozen) { - Object.isFrozen = function isFrozen(object) { - return false; - }; -} -if (!Object.isExtensible) { - Object.isExtensible = function isExtensible(object) { - if (Object(object) === object) { - throw new TypeError(); // TODO message - } - var name = ''; - while (owns(object, name)) { - name += '?'; - } - object[name] = true; - var returnValue = owns(object, name); - delete object[name]; - return returnValue; - }; -} -if (!Object.keys) { - var hasDontEnumBug = true, - dontEnums = [ - "toString", - "toLocaleString", - "valueOf", - "hasOwnProperty", - "isPrototypeOf", - "propertyIsEnumerable", - "constructor" - ], - dontEnumsLength = dontEnums.length; - - for (var key in {"toString": null}) { - hasDontEnumBug = false; - } - - Object.keys = function keys(object) { - - if ( - (typeof object != "object" && typeof object != "function") || - object === null - ) { - throw new TypeError("Object.keys called on a non-object"); - } - - var keys = []; - for (var name in object) { - if (owns(object, name)) { - keys.push(name); - } - } - - if (hasDontEnumBug) { - for (var i = 0, ii = dontEnumsLength; i < ii; i++) { - var dontEnum = dontEnums[i]; - if (owns(object, dontEnum)) { - keys.push(dontEnum); - } - } - } - return keys; - }; - -} -if (!Date.now) { - Date.now = function now() { - return new Date().getTime(); - }; -} -var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" + - "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" + - "\u2029\uFEFF"; -if (!String.prototype.trim || ws.trim()) { - ws = "[" + ws + "]"; - var trimBeginRegexp = new RegExp("^" + ws + ws + "*"), - trimEndRegexp = new RegExp(ws + ws + "*$"); - String.prototype.trim = function trim() { - return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, ""); - }; -} - -function toInteger(n) { - n = +n; - if (n !== n) { // isNaN - n = 0; - } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) { - n = (n > 0 || -1) * Math.floor(Math.abs(n)); - } - return n; -} - -function isPrimitive(input) { - var type = typeof input; - return ( - input === null || - type === "undefined" || - type === "boolean" || - type === "number" || - type === "string" - ); -} - -function toPrimitive(input) { - var val, valueOf, toString; - if (isPrimitive(input)) { - return input; - } - valueOf = input.valueOf; - if (typeof valueOf === "function") { - val = valueOf.call(input); - if (isPrimitive(val)) { - return val; - } - } - toString = input.toString; - if (typeof toString === "function") { - val = toString.call(input); - if (isPrimitive(val)) { - return val; - } - } - throw new TypeError(); -} -var toObject = function (o) { - if (o == null) { // this matches both null and undefined - throw new TypeError("can't convert "+o+" to object"); - } - return Object(o); -}; - -}); - -ace.define('ace/mode/css_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/worker/mirror', 'ace/mode/css/csslint'], function(require, exports, module) { - - -var oop = require("../lib/oop"); -var lang = require("../lib/lang"); -var Mirror = require("../worker/mirror").Mirror; -var CSSLint = require("./css/csslint").CSSLint; - -var Worker = exports.Worker = function(sender) { - Mirror.call(this, sender); - this.setTimeout(400); - this.ruleset = null; - this.setDisabledRules("ids"); - this.setInfoRules("adjoining-classes|qualified-headings|zero-units|gradients|import|outline-none"); -}; - -oop.inherits(Worker, Mirror); - -(function() { - this.setInfoRules = function(ruleNames) { - if (typeof ruleNames == "string") - ruleNames = ruleNames.split("|"); - this.infoRules = lang.arrayToMap(ruleNames); - this.doc.getValue() && this.deferredUpdate.schedule(100); - }; - - this.setDisabledRules = function(ruleNames) { - if (!ruleNames) { - this.ruleset = null; - } else { - if (typeof ruleNames == "string") - ruleNames = ruleNames.split("|"); - var all = {}; - - CSSLint.getRules().forEach(function(x){ - all[x.id] = true; - }); - ruleNames.forEach(function(x) { - delete all[x]; - }); - - this.ruleset = all; - } - this.doc.getValue() && this.deferredUpdate.schedule(100); - }; - - this.onUpdate = function() { - var value = this.doc.getValue(); - var infoRules = this.infoRules; - - var result = CSSLint.verify(value, this.ruleset); - this.sender.emit("csslint", result.messages.map(function(msg) { - return { - row: msg.line - 1, - column: msg.col - 1, - text: msg.message, - type: infoRules[msg.rule.id] ? "info" : msg.type - } - })); - }; - -}).call(Worker.prototype); - -}); - -ace.define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) { - - -exports.stringReverse = function(string) { - return string.split("").reverse().join(""); -}; - -exports.stringRepeat = function (string, count) { - var result = ''; - while (count > 0) { - if (count & 1) - result += string; - - if (count >>= 1) - string += string; - } - return result; -}; - -var trimBeginRegexp = /^\s\s*/; -var 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){ - var copy = []; - for (var i=0, l=array.length; i<l; i++) { - if (array[i] && typeof array[i] == "object") - copy[i] = this.copyObject( array[i] ); - else - copy[i] = array[i]; - } - return copy; -}; - -exports.deepCopy = function (obj) { - if (typeof obj != "object") { - return obj; - } - - var copy = obj.constructor(); - for (var key in obj) { - if (typeof obj[key] == "object") { - copy[key] = this.deepCopy(obj[key]); - } else { - copy[key] = obj[key]; - } - } - return copy; -}; - -exports.arrayToMap = function(arr) { - var map = {}; - for (var i=0; i<arr.length; 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; i <= array.length; i++) { - if (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(/</g, "<"); -}; - -exports.getMatchOffsets = function(string, regExp) { - var matches = []; - - string.replace(regExp, function(str) { - matches.push({ - offset: arguments[arguments.length-2], - length: str.length - }); - }); - - return matches; -}; -exports.deferredCall = function(fcn) { - - var timer = null; - var callback = function() { - timer = null; - fcn(); - }; - - var deferred = function(timeout) { - deferred.cancel(); - timer = setTimeout(callback, timeout || 0); - return deferred; - }; - - deferred.schedule = deferred; - - deferred.call = function() { - this.cancel(); - fcn(); - return deferred; - }; - - deferred.cancel = function() { - clearTimeout(timer); - timer = null; - return deferred; - }; - - return deferred; -}; - - -exports.delayedCall = function(fcn, defaultTimeout) { - var timer = null; - var callback = function() { - timer = null; - fcn(); - }; - - var _self = function(timeout) { - timer && clearTimeout(timer); - timer = setTimeout(callback, timeout || defaultTimeout); - }; - - _self.delay = _self; - _self.schedule = function(timeout) { - if (timer == null) - timer = setTimeout(callback, timeout || 0); - }; - - _self.call = function() { - this.cancel(); - fcn(); - }; - - _self.cancel = function() { - timer && clearTimeout(timer); - timer = null; - }; - - _self.isPending = function() { - return timer; - }; - - return _self; -}; -}); -ace.define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) { - - -var Document = require("../document").Document; -var lang = require("../lib/lang"); - -var Mirror = exports.Mirror = function(sender) { - this.sender = sender; - var doc = this.doc = new Document(""); - - var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this)); - - var _self = this; - sender.on("change", function(e) { - doc.applyDeltas(e.data); - deferredUpdate.schedule(_self.$timeout); - }); -}; - -(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() { - }; - -}).call(Mirror.prototype); - -}); - -ace.define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) { - - -var oop = require("./lib/oop"); -var EventEmitter = require("./lib/event_emitter").EventEmitter; -var Range = require("./range").Range; -var Anchor = require("./anchor").Anchor; - -var Document = function(text) { - this.$lines = []; - if (text.length == 0) { - this.$lines = [""]; - } else if (Array.isArray(text)) { - this._insertLines(0, text); - } else { - this.insert({row: 0, column:0}, text); - } -}; - -(function() { - - oop.implement(this, EventEmitter); - this.setValue = function(text) { - var len = this.getLength(); - this.remove(new Range(0, 0, len, this.getLine(len-1).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); - }; - if ("aaa".split(/a/).length == 0) - this.$split = function(text) { - return text.replace(/\r\n|\r/g, "\n").split("\n"); - } - else - this.$split = 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.getNewLineCharacter = function() { - switch (this.$newLineMode) { - case "windows": - return "\r\n"; - case "unix": - return "\n"; - default: - return this.$autoNewLine; - } - }; - - this.$autoNewLine = "\n"; - this.$newLineMode = "auto"; - this.setNewLineMode = function(newLineMode) { - if (this.$newLineMode === newLineMode) - return; - - this.$newLineMode = newLineMode; - }; - this.getNewLineMode = function() { - return this.$newLineMode; - }; - this.isNewLine = function(text) { - return (text == "\r\n" || text == "\r" || text == "\n"); - }; - 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) { - if (range.start.row == range.end.row) { - return this.getLine(range.start.row) - .substring(range.start.column, range.end.column); - } - var lines = this.getLines(range.start.row, range.end.row); - lines[0] = (lines[0] || "").substring(range.start.column); - var l = lines.length - 1; - if (range.end.row - range.start.row == l) - lines[l] = lines[l].substring(0, range.end.column); - return lines.join(this.getNewLineCharacter()); - }; - - this.$clipPosition = function(position) { - var length = this.getLength(); - if (position.row >= length) { - position.row = Math.max(0, length - 1); - position.column = this.getLine(length-1).length; - } else if (position.row < 0) - position.row = 0; - return position; - }; - this.insert = function(position, text) { - if (!text || text.length === 0) - return position; - - position = this.$clipPosition(position); - if (this.getLength() <= 1) - this.$detectNewLine(text); - - var lines = this.$split(text); - var firstLine = lines.splice(0, 1)[0]; - var lastLine = lines.length == 0 ? null : lines.splice(lines.length - 1, 1)[0]; - - position = this.insertInLine(position, firstLine); - if (lastLine !== null) { - position = this.insertNewLine(position); // terminate first line - position = this._insertLines(position.row, lines); - position = this.insertInLine(position, lastLine || ""); - } - return position; - }; - this.insertLines = function(row, lines) { - if (row >= this.getLength()) - return this.insert({row: row, column: 0}, "\n" + lines.join("\n")); - return this._insertLines(Math.max(row, 0), lines); - }; - this._insertLines = function(row, lines) { - if (lines.length == 0) - return {row: row, column: 0}; - if (lines.length > 0xFFFF) { - var end = this._insertLines(row, lines.slice(0xFFFF)); - lines = lines.slice(0, 0xFFFF); - } - - var args = [row, 0]; - args.push.apply(args, lines); - this.$lines.splice.apply(this.$lines, args); - - var range = new Range(row, 0, row + lines.length, 0); - var delta = { - action: "insertLines", - range: range, - lines: lines - }; - this._emit("change", { data: delta }); - return end || range.end; - }; - this.insertNewLine = function(position) { - position = this.$clipPosition(position); - var line = this.$lines[position.row] || ""; - - this.$lines[position.row] = line.substring(0, position.column); - this.$lines.splice(position.row + 1, 0, line.substring(position.column, line.length)); - - var end = { - row : position.row + 1, - column : 0 - }; - - var delta = { - action: "insertText", - range: Range.fromPoints(position, end), - text: this.getNewLineCharacter() - }; - this._emit("change", { data: delta }); - - return end; - }; - this.insertInLine = function(position, text) { - if (text.length == 0) - return position; - - var line = this.$lines[position.row] || ""; - - this.$lines[position.row] = line.substring(0, position.column) + text - + line.substring(position.column); - - var end = { - row : position.row, - column : position.column + text.length - }; - - var delta = { - action: "insertText", - range: Range.fromPoints(position, end), - text: text - }; - this._emit("change", { data: delta }); - - return end; - }; - this.remove = function(range) { - range.start = this.$clipPosition(range.start); - range.end = this.$clipPosition(range.end); - - if (range.isEmpty()) - return range.start; - - var firstRow = range.start.row; - var lastRow = range.end.row; - - if (range.isMultiLine()) { - var firstFullRow = range.start.column == 0 ? firstRow : firstRow + 1; - var lastFullRow = lastRow - 1; - - if (range.end.column > 0) - this.removeInLine(lastRow, 0, range.end.column); - - if (lastFullRow >= firstFullRow) - this._removeLines(firstFullRow, lastFullRow); - - if (firstFullRow != firstRow) { - this.removeInLine(firstRow, range.start.column, this.getLine(firstRow).length); - this.removeNewLine(range.start.row); - } - } - else { - this.removeInLine(firstRow, range.start.column, range.end.column); - } - return range.start; - }; - this.removeInLine = function(row, startColumn, endColumn) { - if (startColumn == endColumn) - return; - - var range = new Range(row, startColumn, row, endColumn); - var line = this.getLine(row); - var removed = line.substring(startColumn, endColumn); - var newLine = line.substring(0, startColumn) + line.substring(endColumn, line.length); - this.$lines.splice(row, 1, newLine); - - var delta = { - action: "removeText", - range: range, - text: removed - }; - this._emit("change", { data: delta }); - return range.start; - }; - this.removeLines = function(firstRow, lastRow) { - if (firstRow < 0 || lastRow >= this.getLength()) - return this.remove(new Range(firstRow, 0, lastRow + 1, 0)); - return this._removeLines(firstRow, lastRow); - }; - - this._removeLines = function(firstRow, lastRow) { - var range = new Range(firstRow, 0, lastRow + 1, 0); - var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1); - - var delta = { - action: "removeLines", - range: range, - nl: this.getNewLineCharacter(), - lines: removed - }; - this._emit("change", { data: delta }); - return removed; - }; - this.removeNewLine = function(row) { - var firstLine = this.getLine(row); - var secondLine = this.getLine(row+1); - - var range = new Range(row, firstLine.length, row+1, 0); - var line = firstLine + secondLine; - - this.$lines.splice(row, 2, line); - - var delta = { - action: "removeText", - range: range, - text: this.getNewLineCharacter() - }; - this._emit("change", { data: delta }); - }; - this.replace = function(range, text) { - if (text.length == 0 && range.isEmpty()) - return range.start; - if (text == this.getTextRange(range)) - return range.end; - - this.remove(range); - if (text) { - var end = this.insert(range.start, text); - } - else { - end = range.start; - } - - return end; - }; - this.applyDeltas = function(deltas) { - for (var i=0; i<deltas.length; i++) { - var delta = deltas[i]; - var range = Range.fromPoints(delta.range.start, delta.range.end); - - if (delta.action == "insertLines") - this.insertLines(range.start.row, delta.lines); - else if (delta.action == "insertText") - this.insert(range.start, delta.text); - else if (delta.action == "removeLines") - this._removeLines(range.start.row, range.end.row - 1); - else if (delta.action == "removeText") - this.remove(range); - } - }; - this.revertDeltas = function(deltas) { - for (var i=deltas.length-1; i>=0; i--) { - var delta = deltas[i]; - - var range = Range.fromPoints(delta.range.start, delta.range.end); - - if (delta.action == "insertLines") - this._removeLines(range.start.row, range.end.row - 1); - else if (delta.action == "insertText") - this.remove(range); - else if (delta.action == "removeLines") - this._insertLines(range.start.row, delta.lines); - else if (delta.action == "removeText") - this.insert(range.start, delta.text); - } - }; - this.indexToPosition = function(index, startRow) { - var lines = this.$lines || this.getAllLines(); - var newlineLength = this.getNewLineCharacter().length; - for (var i = startRow || 0, l = lines.length; i < l; i++) { - index -= lines[i].length + newlineLength; - if (index < 0) - return {row: i, column: index + lines[i].length + newlineLength}; - } - return {row: l-1, column: lines[l-1].length}; - }; - this.positionToIndex = function(pos, startRow) { - var lines = this.$lines || this.getAllLines(); - var newlineLength = this.getNewLineCharacter().length; - var index = 0; - var row = Math.min(pos.row, lines.length); - for (var i = startRow || 0; i < row; ++i) - index += lines[i].length + newlineLength; - - return index + pos.column; - }; - -}).call(Document.prototype); - -exports.Document = Document; -}); - -ace.define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) { - -var comparePoints = function(p1, p2) { - return p1.row - p2.row || p1.column - p2.column; -}; -var 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 this.compare(row, column) == 0; - }; - this.compareRange = function(range) { - var cmp, - end = range.end, - start = range.start; - - cmp = this.compare(end.row, end.column); - if (cmp == 1) { - cmp = this.compare(start.row, start.column); - if (cmp == 1) { - return 2; - } else if (cmp == 0) { - return 1; - } else { - return 0; - } - } else if (cmp == -1) { - return -2; - } else { - cmp = this.compare(start.row, start.column); - if (cmp == -1) { - return -1; - } else if (cmp == 1) { - return 42; - } else { - return 0; - } - } - }; - this.comparePoint = function(p) { - return this.compare(p.row, p.column); - }; - this.containsRange = function(range) { - return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0; - }; - this.intersects = function(range) { - var cmp = this.compareRange(range); - return (cmp == -1 || cmp == 0 || cmp == 1); - }; - 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) { - if (typeof row == "object") { - this.start.column = row.column; - this.start.row = row.row; - } else { - this.start.row = row; - this.start.column = column; - } - }; - this.setEnd = function(row, column) { - if (typeof row == "object") { - this.end.column = row.column; - this.end.row = row.row; - } else { - this.end.row = row; - this.end.column = column; - } - }; - this.inside = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isEnd(row, column) || this.isStart(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.insideStart = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isEnd(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.insideEnd = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isStart(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.compare = function(row, column) { - if (!this.isMultiLine()) { - if (row === this.start.row) { - return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0); - }; - } - - if (row < this.start.row) - return -1; - - if (row > this.end.row) - return 1; - - if (this.start.row === row) - return column >= this.start.column ? 0 : -1; - - if (this.end.row === row) - return column <= this.end.column ? 0 : 1; - - return 0; - }; - this.compareStart = function(row, column) { - if (this.start.row == row && this.start.column == column) { - return -1; - } else { - return this.compare(row, column); - } - }; - this.compareEnd = function(row, column) { - if (this.end.row == row && this.end.column == column) { - return 1; - } else { - return this.compare(row, column); - } - }; - this.compareInside = function(row, column) { - if (this.end.row == row && this.end.column == column) { - return 1; - } else if (this.start.row == row && this.start.column == column) { - return -1; - } else { - return this.compare(row, column); - } - }; - this.clipRows = function(firstRow, lastRow) { - if (this.end.row > lastRow) - var end = {row: lastRow + 1, column: 0}; - else if (this.end.row < firstRow) - var end = {row: firstRow, column: 0}; - - if (this.start.row > lastRow) - var start = {row: lastRow + 1, column: 0}; - else if (this.start.row < firstRow) - 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 (cmp == 0) - return this; - else if (cmp == -1) - 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() { - if (this.end.column == 0) - return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0) - else - return new Range(this.start.row, 0, this.end.row, 0) - }; - this.toScreenRange = function(session) { - var screenPosStart = session.documentToScreenPosition(this.start); - var 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/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) { - - -var oop = require("./lib/oop"); -var EventEmitter = require("./lib/event_emitter").EventEmitter; - -var Anchor = exports.Anchor = function(doc, row, column) { - this.$onChange = this.onChange.bind(this); - this.attach(doc); - - if (typeof column == "undefined") - this.setPosition(row.row, row.column); - else - this.setPosition(row, column); -}; - -(function() { - - oop.implement(this, EventEmitter); - this.getPosition = function() { - return this.$clipPositionToDocument(this.row, this.column); - }; - this.getDocument = function() { - return this.document; - }; - this.onChange = function(e) { - var delta = e.data; - var range = delta.range; - - if (range.start.row == range.end.row && range.start.row != this.row) - return; - - if (range.start.row > this.row) - return; - - if (range.start.row == this.row && range.start.column > this.column) - return; - - var row = this.row; - var column = this.column; - var start = range.start; - var end = range.end; - - if (delta.action === "insertText") { - if (start.row === row && start.column <= column) { - if (start.row === end.row) { - column += end.column - start.column; - } else { - column -= start.column; - row += end.row - start.row; - } - } else if (start.row !== end.row && start.row < row) { - row += end.row - start.row; - } - } else if (delta.action === "insertLines") { - if (start.row <= row) { - row += end.row - start.row; - } - } else if (delta.action === "removeText") { - if (start.row === row && start.column < column) { - if (end.column >= column) - column = start.column; - else - column = Math.max(0, column - (end.column - start.column)); - - } else if (start.row !== end.row && start.row < row) { - if (end.row === row) - column = Math.max(0, column - end.column) + start.column; - row -= (end.row - start.row); - } else if (end.row === row) { - row -= end.row - start.row; - column = Math.max(0, column - end.column) + start.column; - } - } else if (delta.action == "removeLines") { - if (start.row <= row) { - if (end.row <= row) - row -= end.row - start.row; - else { - row = start.row; - column = 0; - } - } - } - - this.setPosition(row, column, true); - }; - this.setPosition = function(row, column, noClip) { - var pos; - if (noClip) { - pos = { - row: row, - column: column - }; - } else { - pos = this.$clipPositionToDocument(row, column); - } - - if (this.row == pos.row && this.column == pos.column) - return; - - var old = { - row: this.row, - column: this.column - }; - - this.row = pos.row; - this.column = pos.column; - this._emit("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 = {}; - - if (row >= this.document.getLength()) { - pos.row = Math.max(0, this.document.getLength() - 1); - pos.column = this.document.getLine(pos.row).length; - } - else if (row < 0) { - pos.row = 0; - pos.column = 0; - } - else { - pos.row = row; - pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column)); - } - - if (column < 0) - pos.column = 0; - - return pos; - }; - -}).call(Anchor.prototype); - -}); -ace.define('ace/mode/css/csslint', ['require', 'exports', 'module' ], function(require, exports, module) { -var parserlib = {}; -(function(){ -function EventTarget(){ - this._listeners = {}; -} - -EventTarget.prototype = { - constructor: EventTarget, - addListener: function(type, listener){ - if (!this._listeners[type]){ - this._listeners[type] = []; - } - - this._listeners[type].push(listener); - }, - fire: function(event){ - if (typeof event == "string"){ - event = { type: event }; - } - if (typeof event.target != "undefined"){ - event.target = this; - } - - if (typeof event.type == "undefined"){ - throw new Error("Event object missing 'type' property."); - } - - if (this._listeners[event.type]){ - var listeners = this._listeners[event.type].concat(); - for (var i=0, len=listeners.length; i < len; i++){ - listeners[i].call(this, event); - } - } - }, - removeListener: function(type, listener){ - if (this._listeners[type]){ - var listeners = this._listeners[type]; - for (var i=0, len=listeners.length; i < len; i++){ - if (listeners[i] === listener){ - listeners.splice(i, 1); - break; - } - } - - - } - } -}; -function StringReader(text){ - this._input = text.replace(/\n\r?/g, "\n"); - this._line = 1; - this._col = 1; - this._cursor = 0; -} - -StringReader.prototype = { - constructor: StringReader, - getCol: function(){ - return this._col; - }, - getLine: function(){ - return this._line ; - }, - eof: function(){ - return (this._cursor == this._input.length); - }, - peek: function(count){ - var c = null; - count = (typeof count == "undefined" ? 1 : count); - if (this._cursor < this._input.length){ - c = this._input.charAt(this._cursor + count - 1); - } - - return c; - }, - read: function(){ - var c = null; - if (this._cursor < this._input.length){ - if (this._input.charAt(this._cursor) == "\n"){ - this._line++; - this._col=1; - } else { - this._col++; - } - c = this._input.charAt(this._cursor++); - } - - return c; - }, - mark: function(){ - this._bookmark = { - cursor: this._cursor, - line: this._line, - col: this._col - }; - }, - - reset: function(){ - if (this._bookmark){ - this._cursor = this._bookmark.cursor; - this._line = this._bookmark.line; - this._col = this._bookmark.col; - delete this._bookmark; - } - }, - readTo: function(pattern){ - - var buffer = "", - c; - while (buffer.length < pattern.length || buffer.lastIndexOf(pattern) != buffer.length - pattern.length){ - c = this.read(); - if (c){ - buffer += c; - } else { - throw new Error("Expected \"" + pattern + "\" at line " + this._line + ", col " + this._col + "."); - } - } - - return buffer; - - }, - readWhile: function(filter){ - - var buffer = "", - c = this.read(); - - while(c !== null && filter(c)){ - buffer += c; - c = this.read(); - } - - return buffer; - - }, - readMatch: function(matcher){ - - var source = this._input.substring(this._cursor), - value = null; - if (typeof matcher == "string"){ - if (source.indexOf(matcher) === 0){ - value = this.readCount(matcher.length); - } - } else if (matcher instanceof RegExp){ - if (matcher.test(source)){ - value = this.readCount(RegExp.lastMatch.length); - } - } - - return value; - }, - readCount: function(count){ - var buffer = ""; - - while(count--){ - buffer += this.read(); - } - - return buffer; - } - -}; -function SyntaxError(message, line, col){ - this.col = col; - this.line = line; - this.message = message; - -} -SyntaxError.prototype = new Error(); -function SyntaxUnit(text, line, col, type){ - this.col = col; - this.line = line; - this.text = text; - this.type = type; -} -SyntaxUnit.fromToken = function(token){ - return new SyntaxUnit(token.value, token.startLine, token.startCol); -}; - -SyntaxUnit.prototype = { - constructor: SyntaxUnit, - valueOf: function(){ - return this.toString(); - }, - toString: function(){ - return this.text; - } - -}; -function TokenStreamBase(input, tokenData){ - this._reader = input ? new StringReader(input.toString()) : null; - this._token = null; - this._tokenData = tokenData; - this._lt = []; - this._ltIndex = 0; - - this._ltIndexCache = []; -} -TokenStreamBase.createTokenData = function(tokens){ - - var nameMap = [], - typeMap = {}, - tokenData = tokens.concat([]), - i = 0, - len = tokenData.length+1; - - tokenData.UNKNOWN = -1; - tokenData.unshift({name:"EOF"}); - - for (; i < len; i++){ - nameMap.push(tokenData[i].name); - tokenData[tokenData[i].name] = i; - if (tokenData[i].text){ - typeMap[tokenData[i].text] = i; - } - } - - tokenData.name = function(tt){ - return nameMap[tt]; - }; - - tokenData.type = function(c){ - return typeMap[c]; - }; - - return tokenData; -}; - -TokenStreamBase.prototype = { - constructor: TokenStreamBase, - match: function(tokenTypes, channel){ - if (!(tokenTypes instanceof Array)){ - tokenTypes = [tokenTypes]; - } - - var tt = this.get(channel), - i = 0, - len = tokenTypes.length; - - while(i < len){ - if (tt == tokenTypes[i++]){ - return true; - } - } - this.unget(); - return false; - }, - mustMatch: function(tokenTypes, channel){ - - var token; - if (!(tokenTypes instanceof Array)){ - tokenTypes = [tokenTypes]; - } - - if (!this.match.apply(this, arguments)){ - token = this.LT(1); - throw new SyntaxError("Expected " + this._tokenData[tokenTypes[0]].name + - " at line " + token.startLine + ", col " + token.startCol + ".", token.startLine, token.startCol); - } - }, - advance: function(tokenTypes, channel){ - - while(this.LA(0) !== 0 && !this.match(tokenTypes, channel)){ - this.get(); - } - - return this.LA(0); - }, - get: function(channel){ - - var tokenInfo = this._tokenData, - reader = this._reader, - value, - i =0, - len = tokenInfo.length, - found = false, - token, - info; - if (this._lt.length && this._ltIndex >= 0 && this._ltIndex < this._lt.length){ - - i++; - this._token = this._lt[this._ltIndex++]; - info = tokenInfo[this._token.type]; - while((info.channel !== undefined && channel !== info.channel) && - this._ltIndex < this._lt.length){ - this._token = this._lt[this._ltIndex++]; - info = tokenInfo[this._token.type]; - i++; - } - if ((info.channel === undefined || channel === info.channel) && - this._ltIndex <= this._lt.length){ - this._ltIndexCache.push(i); - return this._token.type; - } - } - token = this._getToken(); - if (token.type > -1 && !tokenInfo[token.type].hide){ - token.channel = tokenInfo[token.type].channel; - this._token = token; - this._lt.push(token); - this._ltIndexCache.push(this._lt.length - this._ltIndex + i); - if (this._lt.length > 5){ - this._lt.shift(); - } - if (this._ltIndexCache.length > 5){ - this._ltIndexCache.shift(); - } - this._ltIndex = this._lt.length; - } - info = tokenInfo[token.type]; - if (info && - (info.hide || - (info.channel !== undefined && channel !== info.channel))){ - return this.get(channel); - } else { - return token.type; - } - }, - LA: function(index){ - var total = index, - tt; - if (index > 0){ - if (index > 5){ - throw new Error("Too much lookahead."); - } - while(total){ - tt = this.get(); - total--; - } - while(total < index){ - this.unget(); - total++; - } - } else if (index < 0){ - - if(this._lt[this._ltIndex+index]){ - tt = this._lt[this._ltIndex+index].type; - } else { - throw new Error("Too much lookbehind."); - } - - } else { - tt = this._token.type; - } - - return tt; - - }, - LT: function(index){ - this.LA(index); - return this._lt[this._ltIndex+index-1]; - }, - peek: function(){ - return this.LA(1); - }, - token: function(){ - return this._token; - }, - tokenName: function(tokenType){ - if (tokenType < 0 || tokenType > this._tokenData.length){ - return "UNKNOWN_TOKEN"; - } else { - return this._tokenData[tokenType].name; - } - }, - tokenType: function(tokenName){ - return this._tokenData[tokenName] || -1; - }, - unget: function(){ - if (this._ltIndexCache.length){ - this._ltIndex -= this._ltIndexCache.pop();//--; - this._token = this._lt[this._ltIndex - 1]; - } else { - throw new Error("Too much lookahead."); - } - } - -}; - - - - -parserlib.util = { -StringReader: StringReader, -SyntaxError : SyntaxError, -SyntaxUnit : SyntaxUnit, -EventTarget : EventTarget, -TokenStreamBase : TokenStreamBase -}; -})(); -(function(){ -var EventTarget = parserlib.util.EventTarget, -TokenStreamBase = parserlib.util.TokenStreamBase, -StringReader = parserlib.util.StringReader, -SyntaxError = parserlib.util.SyntaxError, -SyntaxUnit = parserlib.util.SyntaxUnit; - - -var Colors = { - aliceblue :"#f0f8ff", - antiquewhite :"#faebd7", - aqua :"#00ffff", - aquamarine :"#7fffd4", - azure :"#f0ffff", - beige :"#f5f5dc", - bisque :"#ffe4c4", - black :"#000000", - blanchedalmond :"#ffebcd", - blue :"#0000ff", - blueviolet :"#8a2be2", - brown :"#a52a2a", - burlywood :"#deb887", - cadetblue :"#5f9ea0", - chartreuse :"#7fff00", - chocolate :"#d2691e", - coral :"#ff7f50", - cornflowerblue :"#6495ed", - cornsilk :"#fff8dc", - crimson :"#dc143c", - cyan :"#00ffff", - darkblue :"#00008b", - darkcyan :"#008b8b", - darkgoldenrod :"#b8860b", - darkgray :"#a9a9a9", - darkgreen :"#006400", - darkkhaki :"#bdb76b", - darkmagenta :"#8b008b", - darkolivegreen :"#556b2f", - darkorange :"#ff8c00", - darkorchid :"#9932cc", - darkred :"#8b0000", - darksalmon :"#e9967a", - darkseagreen :"#8fbc8f", - darkslateblue :"#483d8b", - darkslategray :"#2f4f4f", - darkturquoise :"#00ced1", - darkviolet :"#9400d3", - deeppink :"#ff1493", - deepskyblue :"#00bfff", - dimgray :"#696969", - dodgerblue :"#1e90ff", - firebrick :"#b22222", - floralwhite :"#fffaf0", - forestgreen :"#228b22", - fuchsia :"#ff00ff", - gainsboro :"#dcdcdc", - ghostwhite :"#f8f8ff", - gold :"#ffd700", - goldenrod :"#daa520", - gray :"#808080", - green :"#008000", - greenyellow :"#adff2f", - honeydew :"#f0fff0", - hotpink :"#ff69b4", - indianred :"#cd5c5c", - indigo :"#4b0082", - ivory :"#fffff0", - khaki :"#f0e68c", - lavender :"#e6e6fa", - lavenderblush :"#fff0f5", - lawngreen :"#7cfc00", - lemonchiffon :"#fffacd", - lightblue :"#add8e6", - lightcoral :"#f08080", - lightcyan :"#e0ffff", - lightgoldenrodyellow :"#fafad2", - lightgray :"#d3d3d3", - lightgreen :"#90ee90", - lightpink :"#ffb6c1", - lightsalmon :"#ffa07a", - lightseagreen :"#20b2aa", - lightskyblue :"#87cefa", - lightslategray :"#778899", - lightsteelblue :"#b0c4de", - lightyellow :"#ffffe0", - lime :"#00ff00", - limegreen :"#32cd32", - linen :"#faf0e6", - magenta :"#ff00ff", - maroon :"#800000", - mediumaquamarine:"#66cdaa", - mediumblue :"#0000cd", - mediumorchid :"#ba55d3", - mediumpurple :"#9370d8", - mediumseagreen :"#3cb371", - mediumslateblue :"#7b68ee", - mediumspringgreen :"#00fa9a", - mediumturquoise :"#48d1cc", - mediumvioletred :"#c71585", - midnightblue :"#191970", - mintcream :"#f5fffa", - mistyrose :"#ffe4e1", - moccasin :"#ffe4b5", - navajowhite :"#ffdead", - navy :"#000080", - oldlace :"#fdf5e6", - olive :"#808000", - olivedrab :"#6b8e23", - orange :"#ffa500", - orangered :"#ff4500", - orchid :"#da70d6", - palegoldenrod :"#eee8aa", - palegreen :"#98fb98", - paleturquoise :"#afeeee", - palevioletred :"#d87093", - papayawhip :"#ffefd5", - peachpuff :"#ffdab9", - peru :"#cd853f", - pink :"#ffc0cb", - plum :"#dda0dd", - powderblue :"#b0e0e6", - purple :"#800080", - red :"#ff0000", - rosybrown :"#bc8f8f", - royalblue :"#4169e1", - saddlebrown :"#8b4513", - salmon :"#fa8072", - sandybrown :"#f4a460", - seagreen :"#2e8b57", - seashell :"#fff5ee", - sienna :"#a0522d", - silver :"#c0c0c0", - skyblue :"#87ceeb", - slateblue :"#6a5acd", - slategray :"#708090", - snow :"#fffafa", - springgreen :"#00ff7f", - steelblue :"#4682b4", - tan :"#d2b48c", - teal :"#008080", - thistle :"#d8bfd8", - tomato :"#ff6347", - turquoise :"#40e0d0", - violet :"#ee82ee", - wheat :"#f5deb3", - white :"#ffffff", - whitesmoke :"#f5f5f5", - yellow :"#ffff00", - yellowgreen :"#9acd32", - activeBorder :"Active window border.", - activecaption :"Active window caption.", - appworkspace :"Background color of multiple document interface.", - background :"Desktop background.", - buttonface :"The face background color for 3-D elements that appear 3-D due to one layer of surrounding border.", - buttonhighlight :"The color of the border facing the light source for 3-D elements that appear 3-D due to one layer of surrounding border.", - buttonshadow :"The color of the border away from the light source for 3-D elements that appear 3-D due to one layer of surrounding border.", - buttontext :"Text on push buttons.", - captiontext :"Text in caption, size box, and scrollbar arrow box.", - graytext :"Grayed (disabled) text. This color is set to #000 if the current display driver does not support a solid gray color.", - highlight :"Item(s) selected in a control.", - highlighttext :"Text of item(s) selected in a control.", - inactiveborder :"Inactive window border.", - inactivecaption :"Inactive window caption.", - inactivecaptiontext :"Color of text in an inactive caption.", - infobackground :"Background color for tooltip controls.", - infotext :"Text color for tooltip controls.", - menu :"Menu background.", - menutext :"Text in menus.", - scrollbar :"Scroll bar gray area.", - threeddarkshadow :"The color of the darker (generally outer) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.", - threedface :"The face background color for 3-D elements that appear 3-D due to two concentric layers of surrounding border.", - threedhighlight :"The color of the lighter (generally outer) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.", - threedlightshadow :"The color of the darker (generally inner) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.", - threedshadow :"The color of the lighter (generally inner) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.", - window :"Window background.", - windowframe :"Window frame.", - windowtext :"Text in windows." -}; -function Combinator(text, line, col){ - - SyntaxUnit.call(this, text, line, col, Parser.COMBINATOR_TYPE); - this.type = "unknown"; - if (/^\s+$/.test(text)){ - this.type = "descendant"; - } else if (text == ">"){ - this.type = "child"; - } else if (text == "+"){ - this.type = "adjacent-sibling"; - } else if (text == "~"){ - this.type = "sibling"; - } - -} - -Combinator.prototype = new SyntaxUnit(); -Combinator.prototype.constructor = Combinator; -function MediaFeature(name, value){ - - SyntaxUnit.call(this, "(" + name + (value !== null ? ":" + value : "") + ")", name.startLine, name.startCol, Parser.MEDIA_FEATURE_TYPE); - this.name = name; - this.value = value; -} - -MediaFeature.prototype = new SyntaxUnit(); -MediaFeature.prototype.constructor = MediaFeature; -function MediaQuery(modifier, mediaType, features, line, col){ - - SyntaxUnit.call(this, (modifier ? modifier + " ": "") + (mediaType ? mediaType : "") + (mediaType && features.length > 0 ? " and " : "") + features.join(" and "), line, col, Parser.MEDIA_QUERY_TYPE); - this.modifier = modifier; - this.mediaType = mediaType; - this.features = features; - -} - -MediaQuery.prototype = new SyntaxUnit(); -MediaQuery.prototype.constructor = MediaQuery; -function Parser(options){ - EventTarget.call(this); - - - this.options = options || {}; - - this._tokenStream = null; -} -Parser.DEFAULT_TYPE = 0; -Parser.COMBINATOR_TYPE = 1; -Parser.MEDIA_FEATURE_TYPE = 2; -Parser.MEDIA_QUERY_TYPE = 3; -Parser.PROPERTY_NAME_TYPE = 4; -Parser.PROPERTY_VALUE_TYPE = 5; -Parser.PROPERTY_VALUE_PART_TYPE = 6; -Parser.SELECTOR_TYPE = 7; -Parser.SELECTOR_PART_TYPE = 8; -Parser.SELECTOR_SUB_PART_TYPE = 9; - -Parser.prototype = function(){ - - var proto = new EventTarget(), //new prototype - prop, - additions = { - constructor: Parser, - DEFAULT_TYPE : 0, - COMBINATOR_TYPE : 1, - MEDIA_FEATURE_TYPE : 2, - MEDIA_QUERY_TYPE : 3, - PROPERTY_NAME_TYPE : 4, - PROPERTY_VALUE_TYPE : 5, - PROPERTY_VALUE_PART_TYPE : 6, - SELECTOR_TYPE : 7, - SELECTOR_PART_TYPE : 8, - SELECTOR_SUB_PART_TYPE : 9, - - _stylesheet: function(){ - - var tokenStream = this._tokenStream, - charset = null, - count, - token, - tt; - - this.fire("startstylesheet"); - this._charset(); - - this._skipCruft(); - while (tokenStream.peek() == Tokens.IMPORT_SYM){ - this._import(); - this._skipCruft(); - } - while (tokenStream.peek() == Tokens.NAMESPACE_SYM){ - this._namespace(); - this._skipCruft(); - } - tt = tokenStream.peek(); - while(tt > Tokens.EOF){ - - try { - - switch(tt){ - case Tokens.MEDIA_SYM: - this._media(); - this._skipCruft(); - break; - case Tokens.PAGE_SYM: - this._page(); - this._skipCruft(); - break; - case Tokens.FONT_FACE_SYM: - this._font_face(); - this._skipCruft(); - break; - case Tokens.KEYFRAMES_SYM: - this._keyframes(); - this._skipCruft(); - break; - case Tokens.UNKNOWN_SYM: //unknown @ rule - tokenStream.get(); - if (!this.options.strict){ - this.fire({ - type: "error", - error: null, - message: "Unknown @ rule: " + tokenStream.LT(0).value + ".", - line: tokenStream.LT(0).startLine, - col: tokenStream.LT(0).startCol - }); - count=0; - while (tokenStream.advance([Tokens.LBRACE, Tokens.RBRACE]) == Tokens.LBRACE){ - count++; //keep track of nesting depth - } - - while(count){ - tokenStream.advance([Tokens.RBRACE]); - count--; - } - - } else { - throw new SyntaxError("Unknown @ rule.", tokenStream.LT(0).startLine, tokenStream.LT(0).startCol); - } - break; - case Tokens.S: - this._readWhitespace(); - break; - default: - if(!this._ruleset()){ - switch(tt){ - case Tokens.CHARSET_SYM: - token = tokenStream.LT(1); - this._charset(false); - throw new SyntaxError("@charset not allowed here.", token.startLine, token.startCol); - case Tokens.IMPORT_SYM: - token = tokenStream.LT(1); - this._import(false); - throw new SyntaxError("@import not allowed here.", token.startLine, token.startCol); - case Tokens.NAMESPACE_SYM: - token = tokenStream.LT(1); - this._namespace(false); - throw new SyntaxError("@namespace not allowed here.", token.startLine, token.startCol); - default: - tokenStream.get(); //get the last token - this._unexpectedToken(tokenStream.token()); - } - - } - } - } catch(ex) { - if (ex instanceof SyntaxError && !this.options.strict){ - this.fire({ - type: "error", - error: ex, - message: ex.message, - line: ex.line, - col: ex.col - }); - } else { - throw ex; - } - } - - tt = tokenStream.peek(); - } - - if (tt != Tokens.EOF){ - this._unexpectedToken(tokenStream.token()); - } - - this.fire("endstylesheet"); - }, - - _charset: function(emit){ - var tokenStream = this._tokenStream, - charset, - token, - line, - col; - - if (tokenStream.match(Tokens.CHARSET_SYM)){ - line = tokenStream.token().startLine; - col = tokenStream.token().startCol; - - this._readWhitespace(); - tokenStream.mustMatch(Tokens.STRING); - - token = tokenStream.token(); - charset = token.value; - - this._readWhitespace(); - tokenStream.mustMatch(Tokens.SEMICOLON); - - if (emit !== false){ - this.fire({ - type: "charset", - charset:charset, - line: line, - col: col - }); - } - } - }, - - _import: function(emit){ - - var tokenStream = this._tokenStream, - tt, - uri, - importToken, - mediaList = []; - tokenStream.mustMatch(Tokens.IMPORT_SYM); - importToken = tokenStream.token(); - this._readWhitespace(); - - tokenStream.mustMatch([Tokens.STRING, Tokens.URI]); - uri = tokenStream.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/, "$1"); - - this._readWhitespace(); - - mediaList = this._media_query_list(); - tokenStream.mustMatch(Tokens.SEMICOLON); - this._readWhitespace(); - - if (emit !== false){ - this.fire({ - type: "import", - uri: uri, - media: mediaList, - line: importToken.startLine, - col: importToken.startCol - }); - } - - }, - - _namespace: function(emit){ - - var tokenStream = this._tokenStream, - line, - col, - prefix, - uri; - tokenStream.mustMatch(Tokens.NAMESPACE_SYM); - line = tokenStream.token().startLine; - col = tokenStream.token().startCol; - this._readWhitespace(); - if (tokenStream.match(Tokens.IDENT)){ - prefix = tokenStream.token().value; - this._readWhitespace(); - } - - tokenStream.mustMatch([Tokens.STRING, Tokens.URI]); - uri = tokenStream.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/, "$1"); - - this._readWhitespace(); - tokenStream.mustMatch(Tokens.SEMICOLON); - this._readWhitespace(); - - if (emit !== false){ - this.fire({ - type: "namespace", - prefix: prefix, - uri: uri, - line: line, - col: col - }); - } - - }, - - _media: function(){ - var tokenStream = this._tokenStream, - line, - col, - mediaList;// = []; - tokenStream.mustMatch(Tokens.MEDIA_SYM); - line = tokenStream.token().startLine; - col = tokenStream.token().startCol; - - this._readWhitespace(); - - mediaList = this._media_query_list(); - - tokenStream.mustMatch(Tokens.LBRACE); - this._readWhitespace(); - - this.fire({ - type: "startmedia", - media: mediaList, - line: line, - col: col - }); - - while(true) { - if (tokenStream.peek() == Tokens.PAGE_SYM){ - this._page(); - } else if (!this._ruleset()){ - break; - } - } - - tokenStream.mustMatch(Tokens.RBRACE); - this._readWhitespace(); - - this.fire({ - type: "endmedia", - media: mediaList, - line: line, - col: col - }); - }, - _media_query_list: function(){ - var tokenStream = this._tokenStream, - mediaList = []; - - - this._readWhitespace(); - - if (tokenStream.peek() == Tokens.IDENT || tokenStream.peek() == Tokens.LPAREN){ - mediaList.push(this._media_query()); - } - - while(tokenStream.match(Tokens.COMMA)){ - this._readWhitespace(); - mediaList.push(this._media_query()); - } - - return mediaList; - }, - _media_query: function(){ - var tokenStream = this._tokenStream, - type = null, - ident = null, - token = null, - expressions = []; - - if (tokenStream.match(Tokens.IDENT)){ - ident = tokenStream.token().value.toLowerCase(); - if (ident != "only" && ident != "not"){ - tokenStream.unget(); - ident = null; - } else { - token = tokenStream.token(); - } - } - - this._readWhitespace(); - - if (tokenStream.peek() == Tokens.IDENT){ - type = this._media_type(); - if (token === null){ - token = tokenStream.token(); - } - } else if (tokenStream.peek() == Tokens.LPAREN){ - if (token === null){ - token = tokenStream.LT(1); - } - expressions.push(this._media_expression()); - } - - if (type === null && expressions.length === 0){ - return null; - } else { - this._readWhitespace(); - while (tokenStream.match(Tokens.IDENT)){ - if (tokenStream.token().value.toLowerCase() != "and"){ - this._unexpectedToken(tokenStream.token()); - } - - this._readWhitespace(); - expressions.push(this._media_expression()); - } - } - - return new MediaQuery(ident, type, expressions, token.startLine, token.startCol); - }, - _media_type: function(){ - return this._media_feature(); - }, - _media_expression: function(){ - var tokenStream = this._tokenStream, - feature = null, - token, - expression = null; - - tokenStream.mustMatch(Tokens.LPAREN); - - feature = this._media_feature(); - this._readWhitespace(); - - if (tokenStream.match(Tokens.COLON)){ - this._readWhitespace(); - token = tokenStream.LT(1); - expression = this._expression(); - } - - tokenStream.mustMatch(Tokens.RPAREN); - this._readWhitespace(); - - return new MediaFeature(feature, (expression ? new SyntaxUnit(expression, token.startLine, token.startCol) : null)); - }, - _media_feature: function(){ - var tokenStream = this._tokenStream; - - tokenStream.mustMatch(Tokens.IDENT); - - return SyntaxUnit.fromToken(tokenStream.token()); - }, - _page: function(){ - var tokenStream = this._tokenStream, - line, - col, - identifier = null, - pseudoPage = null; - tokenStream.mustMatch(Tokens.PAGE_SYM); - line = tokenStream.token().startLine; - col = tokenStream.token().startCol; - - this._readWhitespace(); - - if (tokenStream.match(Tokens.IDENT)){ - identifier = tokenStream.token().value; - if (identifier.toLowerCase() === "auto"){ - this._unexpectedToken(tokenStream.token()); - } - } - if (tokenStream.peek() == Tokens.COLON){ - pseudoPage = this._pseudo_page(); - } - - this._readWhitespace(); - - this.fire({ - type: "startpage", - id: identifier, - pseudo: pseudoPage, - line: line, - col: col - }); - - this._readDeclarations(true, true); - - this.fire({ - type: "endpage", - id: identifier, - pseudo: pseudoPage, - line: line, - col: col - }); - - }, - _margin: function(){ - var tokenStream = this._tokenStream, - line, - col, - marginSym = this._margin_sym(); - - if (marginSym){ - line = tokenStream.token().startLine; - col = tokenStream.token().startCol; - - this.fire({ - type: "startpagemargin", - margin: marginSym, - line: line, - col: col - }); - - this._readDeclarations(true); - - this.fire({ - type: "endpagemargin", - margin: marginSym, - line: line, - col: col - }); - return true; - } else { - return false; - } - }, - _margin_sym: function(){ - - var tokenStream = this._tokenStream; - - if(tokenStream.match([Tokens.TOPLEFTCORNER_SYM, Tokens.TOPLEFT_SYM, - Tokens.TOPCENTER_SYM, Tokens.TOPRIGHT_SYM, Tokens.TOPRIGHTCORNER_SYM, - Tokens.BOTTOMLEFTCORNER_SYM, Tokens.BOTTOMLEFT_SYM, - Tokens.BOTTOMCENTER_SYM, Tokens.BOTTOMRIGHT_SYM, - Tokens.BOTTOMRIGHTCORNER_SYM, Tokens.LEFTTOP_SYM, - Tokens.LEFTMIDDLE_SYM, Tokens.LEFTBOTTOM_SYM, Tokens.RIGHTTOP_SYM, - Tokens.RIGHTMIDDLE_SYM, Tokens.RIGHTBOTTOM_SYM])) - { - return SyntaxUnit.fromToken(tokenStream.token()); - } else { - return null; - } - - }, - - _pseudo_page: function(){ - - var tokenStream = this._tokenStream; - - tokenStream.mustMatch(Tokens.COLON); - tokenStream.mustMatch(Tokens.IDENT); - - return tokenStream.token().value; - }, - - _font_face: function(){ - var tokenStream = this._tokenStream, - line, - col; - tokenStream.mustMatch(Tokens.FONT_FACE_SYM); - line = tokenStream.token().startLine; - col = tokenStream.token().startCol; - - this._readWhitespace(); - - this.fire({ - type: "startfontface", - line: line, - col: col - }); - - this._readDeclarations(true); - - this.fire({ - type: "endfontface", - line: line, - col: col - }); - }, - - _operator: function(inFunction){ - - var tokenStream = this._tokenStream, - token = null; - - if (tokenStream.match([Tokens.SLASH, Tokens.COMMA]) || - (inFunction && tokenStream.match([Tokens.PLUS, Tokens.STAR, Tokens.MINUS]))){ - token = tokenStream.token(); - this._readWhitespace(); - } - return token ? PropertyValuePart.fromToken(token) : null; - - }, - - _combinator: function(){ - - var tokenStream = this._tokenStream, - value = null, - token; - - if(tokenStream.match([Tokens.PLUS, Tokens.GREATER, Tokens.TILDE])){ - token = tokenStream.token(); - value = new Combinator(token.value, token.startLine, token.startCol); - this._readWhitespace(); - } - - return value; - }, - - _unary_operator: function(){ - - var tokenStream = this._tokenStream; - - if (tokenStream.match([Tokens.MINUS, Tokens.PLUS])){ - return tokenStream.token().value; - } else { - return null; - } - }, - - _property: function(){ - - var tokenStream = this._tokenStream, - value = null, - hack = null, - tokenValue, - token, - line, - col; - if (tokenStream.peek() == Tokens.STAR && this.options.starHack){ - tokenStream.get(); - token = tokenStream.token(); - hack = token.value; - line = token.startLine; - col = token.startCol; - } - - if(tokenStream.match(Tokens.IDENT)){ - token = tokenStream.token(); - tokenValue = token.value; - if (tokenValue.charAt(0) == "_" && this.options.underscoreHack){ - hack = "_"; - tokenValue = tokenValue.substring(1); - } - - value = new PropertyName(tokenValue, hack, (line||token.startLine), (col||token.startCol)); - this._readWhitespace(); - } - - return value; - }, - _ruleset: function(){ - - var tokenStream = this._tokenStream, - tt, - selectors; - try { - selectors = this._selectors_group(); - } catch (ex){ - if (ex instanceof SyntaxError && !this.options.strict){ - this.fire({ - type: "error", - error: ex, - message: ex.message, - line: ex.line, - col: ex.col - }); - tt = tokenStream.advance([Tokens.RBRACE]); - if (tt == Tokens.RBRACE){ - } else { - throw ex; - } - - } else { - throw ex; - } - return true; - } - if (selectors){ - - this.fire({ - type: "startrule", - selectors: selectors, - line: selectors[0].line, - col: selectors[0].col - }); - - this._readDeclarations(true); - - this.fire({ - type: "endrule", - selectors: selectors, - line: selectors[0].line, - col: selectors[0].col - }); - - } - - return selectors; - - }, - _selectors_group: function(){ - var tokenStream = this._tokenStream, - selectors = [], - selector; - - selector = this._selector(); - if (selector !== null){ - - selectors.push(selector); - while(tokenStream.match(Tokens.COMMA)){ - this._readWhitespace(); - selector = this._selector(); - if (selector !== null){ - selectors.push(selector); - } else { - this._unexpectedToken(tokenStream.LT(1)); - } - } - } - - return selectors.length ? selectors : null; - }, - _selector: function(){ - - var tokenStream = this._tokenStream, - selector = [], - nextSelector = null, - combinator = null, - ws = null; - nextSelector = this._simple_selector_sequence(); - if (nextSelector === null){ - return null; - } - - selector.push(nextSelector); - - do { - combinator = this._combinator(); - - if (combinator !== null){ - selector.push(combinator); - nextSelector = this._simple_selector_sequence(); - if (nextSelector === null){ - this._unexpectedToken(tokenStream.LT(1)); - } else { - selector.push(nextSelector); - } - } else { - if (this._readWhitespace()){ - ws = new Combinator(tokenStream.token().value, tokenStream.token().startLine, tokenStream.token().startCol); - combinator = this._combinator(); - nextSelector = this._simple_selector_sequence(); - if (nextSelector === null){ - if (combinator !== null){ - this._unexpectedToken(tokenStream.LT(1)); - } - } else { - - if (combinator !== null){ - selector.push(combinator); - } else { - selector.push(ws); - } - - selector.push(nextSelector); - } - } else { - break; - } - - } - } while(true); - - return new Selector(selector, selector[0].line, selector[0].col); - }, - _simple_selector_sequence: function(){ - - var tokenStream = this._tokenStream, - elementName = null, - modifiers = [], - selectorText= "", - components = [ - function(){ - return tokenStream.match(Tokens.HASH) ? - new SelectorSubPart(tokenStream.token().value, "id", tokenStream.token().startLine, tokenStream.token().startCol) : - null; - }, - this._class, - this._attrib, - this._pseudo, - this._negation - ], - i = 0, - len = components.length, - component = null, - found = false, - line, - col; - line = tokenStream.LT(1).startLine; - col = tokenStream.LT(1).startCol; - - elementName = this._type_selector(); - if (!elementName){ - elementName = this._universal(); - } - - if (elementName !== null){ - selectorText += elementName; - } - - while(true){ - if (tokenStream.peek() === Tokens.S){ - break; - } - while(i < len && component === null){ - component = components[i++].call(this); - } - - if (component === null){ - if (selectorText === ""){ - return null; - } else { - break; - } - } else { - i = 0; - modifiers.push(component); - selectorText += component.toString(); - component = null; - } - } - - - return selectorText !== "" ? - new SelectorPart(elementName, modifiers, selectorText, line, col) : - null; - }, - _type_selector: function(){ - - var tokenStream = this._tokenStream, - ns = this._namespace_prefix(), - elementName = this._element_name(); - - if (!elementName){ - if (ns){ - tokenStream.unget(); - if (ns.length > 1){ - tokenStream.unget(); - } - } - - return null; - } else { - if (ns){ - elementName.text = ns + elementName.text; - elementName.col -= ns.length; - } - return elementName; - } - }, - _class: function(){ - - var tokenStream = this._tokenStream, - token; - - if (tokenStream.match(Tokens.DOT)){ - tokenStream.mustMatch(Tokens.IDENT); - token = tokenStream.token(); - return new SelectorSubPart("." + token.value, "class", token.startLine, token.startCol - 1); - } else { - return null; - } - - }, - _element_name: function(){ - - var tokenStream = this._tokenStream, - token; - - if (tokenStream.match(Tokens.IDENT)){ - token = tokenStream.token(); - return new SelectorSubPart(token.value, "elementName", token.startLine, token.startCol); - - } else { - return null; - } - }, - _namespace_prefix: function(){ - var tokenStream = this._tokenStream, - value = ""; - if (tokenStream.LA(1) === Tokens.PIPE || tokenStream.LA(2) === Tokens.PIPE){ - - if(tokenStream.match([Tokens.IDENT, Tokens.STAR])){ - value += tokenStream.token().value; - } - - tokenStream.mustMatch(Tokens.PIPE); - value += "|"; - - } - - return value.length ? value : null; - }, - _universal: function(){ - var tokenStream = this._tokenStream, - value = "", - ns; - - ns = this._namespace_prefix(); - if(ns){ - value += ns; - } - - if(tokenStream.match(Tokens.STAR)){ - value += "*"; - } - - return value.length ? value : null; - - }, - _attrib: function(){ - - var tokenStream = this._tokenStream, - value = null, - ns, - token; - - if (tokenStream.match(Tokens.LBRACKET)){ - token = tokenStream.token(); - value = token.value; - value += this._readWhitespace(); - - ns = this._namespace_prefix(); - - if (ns){ - value += ns; - } - - tokenStream.mustMatch(Tokens.IDENT); - value += tokenStream.token().value; - value += this._readWhitespace(); - - if(tokenStream.match([Tokens.PREFIXMATCH, Tokens.SUFFIXMATCH, Tokens.SUBSTRINGMATCH, - Tokens.EQUALS, Tokens.INCLUDES, Tokens.DASHMATCH])){ - - value += tokenStream.token().value; - value += this._readWhitespace(); - - tokenStream.mustMatch([Tokens.IDENT, Tokens.STRING]); - value += tokenStream.token().value; - value += this._readWhitespace(); - } - - tokenStream.mustMatch(Tokens.RBRACKET); - - return new SelectorSubPart(value + "]", "attribute", token.startLine, token.startCol); - } else { - return null; - } - }, - _pseudo: function(){ - - var tokenStream = this._tokenStream, - pseudo = null, - colons = ":", - line, - col; - - if (tokenStream.match(Tokens.COLON)){ - - if (tokenStream.match(Tokens.COLON)){ - colons += ":"; - } - - if (tokenStream.match(Tokens.IDENT)){ - pseudo = tokenStream.token().value; - line = tokenStream.token().startLine; - col = tokenStream.token().startCol - colons.length; - } else if (tokenStream.peek() == Tokens.FUNCTION){ - line = tokenStream.LT(1).startLine; - col = tokenStream.LT(1).startCol - colons.length; - pseudo = this._functional_pseudo(); - } - - if (pseudo){ - pseudo = new SelectorSubPart(colons + pseudo, "pseudo", line, col); - } - } - - return pseudo; - }, - _functional_pseudo: function(){ - - var tokenStream = this._tokenStream, - value = null; - - if(tokenStream.match(Tokens.FUNCTION)){ - value = tokenStream.token().value; - value += this._readWhitespace(); - value += this._expression(); - tokenStream.mustMatch(Tokens.RPAREN); - value += ")"; - } - - return value; - }, - _expression: function(){ - - var tokenStream = this._tokenStream, - value = ""; - - while(tokenStream.match([Tokens.PLUS, Tokens.MINUS, Tokens.DIMENSION, - Tokens.NUMBER, Tokens.STRING, Tokens.IDENT, Tokens.LENGTH, - Tokens.FREQ, Tokens.ANGLE, Tokens.TIME, - Tokens.RESOLUTION, Tokens.SLASH])){ - - value += tokenStream.token().value; - value += this._readWhitespace(); - } - - return value.length ? value : null; - - }, - _negation: function(){ - - var tokenStream = this._tokenStream, - line, - col, - value = "", - arg, - subpart = null; - - if (tokenStream.match(Tokens.NOT)){ - value = tokenStream.token().value; - line = tokenStream.token().startLine; - col = tokenStream.token().startCol; - value += this._readWhitespace(); - arg = this._negation_arg(); - value += arg; - value += this._readWhitespace(); - tokenStream.match(Tokens.RPAREN); - value += tokenStream.token().value; - - subpart = new SelectorSubPart(value, "not", line, col); - subpart.args.push(arg); - } - - return subpart; - }, - _negation_arg: function(){ - - var tokenStream = this._tokenStream, - args = [ - this._type_selector, - this._universal, - function(){ - return tokenStream.match(Tokens.HASH) ? - new SelectorSubPart(tokenStream.token().value, "id", tokenStream.token().startLine, tokenStream.token().startCol) : - null; - }, - this._class, - this._attrib, - this._pseudo - ], - arg = null, - i = 0, - len = args.length, - elementName, - line, - col, - part; - - line = tokenStream.LT(1).startLine; - col = tokenStream.LT(1).startCol; - - while(i < len && arg === null){ - - arg = args[i].call(this); - i++; - } - if (arg === null){ - this._unexpectedToken(tokenStream.LT(1)); - } - if (arg.type == "elementName"){ - part = new SelectorPart(arg, [], arg.toString(), line, col); - } else { - part = new SelectorPart(null, [arg], arg.toString(), line, col); - } - - return part; - }, - - _declaration: function(){ - - var tokenStream = this._tokenStream, - property = null, - expr = null, - prio = null, - error = null, - invalid = null, - propertyName= ""; - - property = this._property(); - if (property !== null){ - - tokenStream.mustMatch(Tokens.COLON); - this._readWhitespace(); - - expr = this._expr(); - if (!expr || expr.length === 0){ - this._unexpectedToken(tokenStream.LT(1)); - } - - prio = this._prio(); - propertyName = property.toString(); - if (this.options.starHack && property.hack == "*" || - this.options.underscoreHack && property.hack == "_") { - - propertyName = property.text; - } - - try { - this._validateProperty(propertyName, expr); - } catch (ex) { - invalid = ex; - } - - this.fire({ - type: "property", - property: property, - value: expr, - important: prio, - line: property.line, - col: property.col, - invalid: invalid - }); - - return true; - } else { - return false; - } - }, - - _prio: function(){ - - var tokenStream = this._tokenStream, - result = tokenStream.match(Tokens.IMPORTANT_SYM); - - this._readWhitespace(); - return result; - }, - - _expr: function(inFunction){ - - var tokenStream = this._tokenStream, - values = [], - value = null, - operator = null; - - value = this._term(); - if (value !== null){ - - values.push(value); - - do { - operator = this._operator(inFunction); - if (operator){ - values.push(operator); - } /*else { - values.push(new PropertyValue(valueParts, valueParts[0].line, valueParts[0].col)); - valueParts = []; - }*/ - - value = this._term(); - - if (value === null){ - break; - } else { - values.push(value); - } - } while(true); - } - - return values.length > 0 ? new PropertyValue(values, values[0].line, values[0].col) : null; - }, - - _term: function(){ - - var tokenStream = this._tokenStream, - unary = null, - value = null, - token, - line, - col; - unary = this._unary_operator(); - if (unary !== null){ - line = tokenStream.token().startLine; - col = tokenStream.token().startCol; - } - if (tokenStream.peek() == Tokens.IE_FUNCTION && this.options.ieFilters){ - - value = this._ie_function(); - if (unary === null){ - line = tokenStream.token().startLine; - col = tokenStream.token().startCol; - } - } else if (tokenStream.match([Tokens.NUMBER, Tokens.PERCENTAGE, Tokens.LENGTH, - Tokens.ANGLE, Tokens.TIME, - Tokens.FREQ, Tokens.STRING, Tokens.IDENT, Tokens.URI, Tokens.UNICODE_RANGE])){ - - value = tokenStream.token().value; - if (unary === null){ - line = tokenStream.token().startLine; - col = tokenStream.token().startCol; - } - this._readWhitespace(); - } else { - token = this._hexcolor(); - if (token === null){ - if (unary === null){ - line = tokenStream.LT(1).startLine; - col = tokenStream.LT(1).startCol; - } - if (value === null){ - if (tokenStream.LA(3) == Tokens.EQUALS && this.options.ieFilters){ - value = this._ie_function(); - } else { - value = this._function(); - } - } - - } else { - value = token.value; - if (unary === null){ - line = token.startLine; - col = token.startCol; - } - } - - } - - return value !== null ? - new PropertyValuePart(unary !== null ? unary + value : value, line, col) : - null; - - }, - - _function: function(){ - - var tokenStream = this._tokenStream, - functionText = null, - expr = null, - lt; - - if (tokenStream.match(Tokens.FUNCTION)){ - functionText = tokenStream.token().value; - this._readWhitespace(); - expr = this._expr(true); - functionText += expr; - if (this.options.ieFilters && tokenStream.peek() == Tokens.EQUALS){ - do { - - if (this._readWhitespace()){ - functionText += tokenStream.token().value; - } - if (tokenStream.LA(0) == Tokens.COMMA){ - functionText += tokenStream.token().value; - } - - tokenStream.match(Tokens.IDENT); - functionText += tokenStream.token().value; - - tokenStream.match(Tokens.EQUALS); - functionText += tokenStream.token().value; - lt = tokenStream.peek(); - while(lt != Tokens.COMMA && lt != Tokens.S && lt != Tokens.RPAREN){ - tokenStream.get(); - functionText += tokenStream.token().value; - lt = tokenStream.peek(); - } - } while(tokenStream.match([Tokens.COMMA, Tokens.S])); - } - - tokenStream.match(Tokens.RPAREN); - functionText += ")"; - this._readWhitespace(); - } - - return functionText; - }, - - _ie_function: function(){ - - var tokenStream = this._tokenStream, - functionText = null, - expr = null, - lt; - if (tokenStream.match([Tokens.IE_FUNCTION, Tokens.FUNCTION])){ - functionText = tokenStream.token().value; - - do { - - if (this._readWhitespace()){ - functionText += tokenStream.token().value; - } - if (tokenStream.LA(0) == Tokens.COMMA){ - functionText += tokenStream.token().value; - } - - tokenStream.match(Tokens.IDENT); - functionText += tokenStream.token().value; - - tokenStream.match(Tokens.EQUALS); - functionText += tokenStream.token().value; - lt = tokenStream.peek(); - while(lt != Tokens.COMMA && lt != Tokens.S && lt != Tokens.RPAREN){ - tokenStream.get(); - functionText += tokenStream.token().value; - lt = tokenStream.peek(); - } - } while(tokenStream.match([Tokens.COMMA, Tokens.S])); - - tokenStream.match(Tokens.RPAREN); - functionText += ")"; - this._readWhitespace(); - } - - return functionText; - }, - - _hexcolor: function(){ - - var tokenStream = this._tokenStream, - token = null, - color; - - if(tokenStream.match(Tokens.HASH)){ - - token = tokenStream.token(); - color = token.value; - if (!/#[a-f0-9]{3,6}/i.test(color)){ - throw new SyntaxError("Expected a hex color but found '" + color + "' at line " + token.startLine + ", col " + token.startCol + ".", token.startLine, token.startCol); - } - this._readWhitespace(); - } - - return token; - }, - - _keyframes: function(){ - var tokenStream = this._tokenStream, - token, - tt, - name, - prefix = ""; - - tokenStream.mustMatch(Tokens.KEYFRAMES_SYM); - token = tokenStream.token(); - if (/^@\-([^\-]+)\-/.test(token.value)) { - prefix = RegExp.$1; - } - - this._readWhitespace(); - name = this._keyframe_name(); - - this._readWhitespace(); - tokenStream.mustMatch(Tokens.LBRACE); - - this.fire({ - type: "startkeyframes", - name: name, - prefix: prefix, - line: token.startLine, - col: token.startCol - }); - - this._readWhitespace(); - tt = tokenStream.peek(); - while(tt == Tokens.IDENT || tt == Tokens.PERCENTAGE) { - this._keyframe_rule(); - this._readWhitespace(); - tt = tokenStream.peek(); - } - - this.fire({ - type: "endkeyframes", - name: name, - prefix: prefix, - line: token.startLine, - col: token.startCol - }); - - this._readWhitespace(); - tokenStream.mustMatch(Tokens.RBRACE); - - }, - - _keyframe_name: function(){ - var tokenStream = this._tokenStream, - token; - - tokenStream.mustMatch([Tokens.IDENT, Tokens.STRING]); - return SyntaxUnit.fromToken(tokenStream.token()); - }, - - _keyframe_rule: function(){ - var tokenStream = this._tokenStream, - token, - keyList = this._key_list(); - - this.fire({ - type: "startkeyframerule", - keys: keyList, - line: keyList[0].line, - col: keyList[0].col - }); - - this._readDeclarations(true); - - this.fire({ - type: "endkeyframerule", - keys: keyList, - line: keyList[0].line, - col: keyList[0].col - }); - - }, - - _key_list: function(){ - var tokenStream = this._tokenStream, - token, - key, - keyList = []; - keyList.push(this._key()); - - this._readWhitespace(); - - while(tokenStream.match(Tokens.COMMA)){ - this._readWhitespace(); - keyList.push(this._key()); - this._readWhitespace(); - } - - return keyList; - }, - - _key: function(){ - - var tokenStream = this._tokenStream, - token; - - if (tokenStream.match(Tokens.PERCENTAGE)){ - return SyntaxUnit.fromToken(tokenStream.token()); - } else if (tokenStream.match(Tokens.IDENT)){ - token = tokenStream.token(); - - if (/from|to/i.test(token.value)){ - return SyntaxUnit.fromToken(token); - } - - tokenStream.unget(); - } - this._unexpectedToken(tokenStream.LT(1)); - }, - _skipCruft: function(){ - while(this._tokenStream.match([Tokens.S, Tokens.CDO, Tokens.CDC])){ - } - }, - _readDeclarations: function(checkStart, readMargins){ - var tokenStream = this._tokenStream, - tt; - - - this._readWhitespace(); - - if (checkStart){ - tokenStream.mustMatch(Tokens.LBRACE); - } - - this._readWhitespace(); - - try { - - while(true){ - - if (tokenStream.match(Tokens.SEMICOLON) || (readMargins && this._margin())){ - } else if (this._declaration()){ - if (!tokenStream.match(Tokens.SEMICOLON)){ - break; - } - } else { - break; - } - this._readWhitespace(); - } - - tokenStream.mustMatch(Tokens.RBRACE); - this._readWhitespace(); - - } catch (ex) { - if (ex instanceof SyntaxError && !this.options.strict){ - this.fire({ - type: "error", - error: ex, - message: ex.message, - line: ex.line, - col: ex.col - }); - tt = tokenStream.advance([Tokens.SEMICOLON, Tokens.RBRACE]); - if (tt == Tokens.SEMICOLON){ - this._readDeclarations(false, readMargins); - } else if (tt != Tokens.RBRACE){ - throw ex; - } - - } else { - throw ex; - } - } - - }, - _readWhitespace: function(){ - - var tokenStream = this._tokenStream, - ws = ""; - - while(tokenStream.match(Tokens.S)){ - ws += tokenStream.token().value; - } - - return ws; - }, - _unexpectedToken: function(token){ - throw new SyntaxError("Unexpected token '" + token.value + "' at line " + token.startLine + ", col " + token.startCol + ".", token.startLine, token.startCol); - }, - _verifyEnd: function(){ - if (this._tokenStream.LA(1) != Tokens.EOF){ - this._unexpectedToken(this._tokenStream.LT(1)); - } - }, - _validateProperty: function(property, value){ - Validation.validate(property, value); - }, - - parse: function(input){ - this._tokenStream = new TokenStream(input, Tokens); - this._stylesheet(); - }, - - parseStyleSheet: function(input){ - return this.parse(input); - }, - - parseMediaQuery: function(input){ - this._tokenStream = new TokenStream(input, Tokens); - var result = this._media_query(); - this._verifyEnd(); - return result; - }, - parsePropertyValue: function(input){ - - this._tokenStream = new TokenStream(input, Tokens); - this._readWhitespace(); - - var result = this._expr(); - this._readWhitespace(); - this._verifyEnd(); - return result; - }, - parseRule: function(input){ - this._tokenStream = new TokenStream(input, Tokens); - this._readWhitespace(); - - var result = this._ruleset(); - this._readWhitespace(); - this._verifyEnd(); - return result; - }, - parseSelector: function(input){ - - this._tokenStream = new TokenStream(input, Tokens); - this._readWhitespace(); - - var result = this._selector(); - this._readWhitespace(); - this._verifyEnd(); - return result; - }, - parseStyleAttribute: function(input){ - input += "}"; // for error recovery in _readDeclarations() - this._tokenStream = new TokenStream(input, Tokens); - this._readDeclarations(); - } - }; - for (prop in additions){ - if (additions.hasOwnProperty(prop)){ - proto[prop] = additions[prop]; - } - } - - return proto; -}(); -var Properties = { - "alignment-adjust" : "auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | <percentage> | <length>", - "alignment-baseline" : "baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical", - "animation" : 1, - "animation-delay" : { multi: "<time>", comma: true }, - "animation-direction" : { multi: "normal | alternate", comma: true }, - "animation-duration" : { multi: "<time>", comma: true }, - "animation-iteration-count" : { multi: "<number> | infinite", comma: true }, - "animation-name" : { multi: "none | <ident>", comma: true }, - "animation-play-state" : { multi: "running | paused", comma: true }, - "animation-timing-function" : 1, - "-moz-animation-delay" : { multi: "<time>", comma: true }, - "-moz-animation-direction" : { multi: "normal | alternate", comma: true }, - "-moz-animation-duration" : { multi: "<time>", comma: true }, - "-moz-animation-iteration-count" : { multi: "<number> | infinite", comma: true }, - "-moz-animation-name" : { multi: "none | <ident>", comma: true }, - "-moz-animation-play-state" : { multi: "running | paused", comma: true }, - - "-ms-animation-delay" : { multi: "<time>", comma: true }, - "-ms-animation-direction" : { multi: "normal | alternate", comma: true }, - "-ms-animation-duration" : { multi: "<time>", comma: true }, - "-ms-animation-iteration-count" : { multi: "<number> | infinite", comma: true }, - "-ms-animation-name" : { multi: "none | <ident>", comma: true }, - "-ms-animation-play-state" : { multi: "running | paused", comma: true }, - - "-webkit-animation-delay" : { multi: "<time>", comma: true }, - "-webkit-animation-direction" : { multi: "normal | alternate", comma: true }, - "-webkit-animation-duration" : { multi: "<time>", comma: true }, - "-webkit-animation-iteration-count" : { multi: "<number> | infinite", comma: true }, - "-webkit-animation-name" : { multi: "none | <ident>", comma: true }, - "-webkit-animation-play-state" : { multi: "running | paused", comma: true }, - - "-o-animation-delay" : { multi: "<time>", comma: true }, - "-o-animation-direction" : { multi: "normal | alternate", comma: true }, - "-o-animation-duration" : { multi: "<time>", comma: true }, - "-o-animation-iteration-count" : { multi: "<number> | infinite", comma: true }, - "-o-animation-name" : { multi: "none | <ident>", comma: true }, - "-o-animation-play-state" : { multi: "running | paused", comma: true }, - - "appearance" : "icon | window | desktop | workspace | document | tooltip | dialog | button | push-button | hyperlink | radio-button | checkbox | menu-item | tab | menu | menubar | pull-down-menu | pop-up-menu | list-menu | radio-group | checkbox-group | outline-tree | range | field | combo-box | signature | password | normal | none | inherit", - "azimuth" : function (expression) { - var simple = "<angle> | leftwards | rightwards | inherit", - direction = "left-side | far-left | left | center-left | center | center-right | right | far-right | right-side", - behind = false, - valid = false, - part; - - if (!ValidationTypes.isAny(expression, simple)) { - if (ValidationTypes.isAny(expression, "behind")) { - behind = true; - valid = true; - } - - if (ValidationTypes.isAny(expression, direction)) { - valid = true; - if (!behind) { - ValidationTypes.isAny(expression, "behind"); - } - } - } - - if (expression.hasNext()) { - part = expression.next(); - if (valid) { - throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col); - } else { - throw new ValidationError("Expected (<'azimuth'>) but found '" + part + "'.", part.line, part.col); - } - } - }, - "backface-visibility" : "visible | hidden", - "background" : 1, - "background-attachment" : { multi: "<attachment>", comma: true }, - "background-clip" : { multi: "<box>", comma: true }, - "background-color" : "<color> | inherit", - "background-image" : { multi: "<bg-image>", comma: true }, - "background-origin" : { multi: "<box>", comma: true }, - "background-position" : { multi: "<bg-position>", comma: true }, - "background-repeat" : { multi: "<repeat-style>" }, - "background-size" : { multi: "<bg-size>", comma: true }, - "baseline-shift" : "baseline | sub | super | <percentage> | <length>", - "behavior" : 1, - "binding" : 1, - "bleed" : "<length>", - "bookmark-label" : "<content> | <attr> | <string>", - "bookmark-level" : "none | <integer>", - "bookmark-state" : "open | closed", - "bookmark-target" : "none | <uri> | <attr>", - "border" : "<border-width> || <border-style> || <color>", - "border-bottom" : "<border-width> || <border-style> || <color>", - "border-bottom-color" : "<color>", - "border-bottom-left-radius" : "<x-one-radius>", - "border-bottom-right-radius" : "<x-one-radius>", - "border-bottom-style" : "<border-style>", - "border-bottom-width" : "<border-width>", - "border-collapse" : "collapse | separate | inherit", - "border-color" : { multi: "<color> | inherit", max: 4 }, - "border-image" : 1, - "border-image-outset" : { multi: "<length> | <number>", max: 4 }, - "border-image-repeat" : { multi: "stretch | repeat | round", max: 2 }, - "border-image-slice" : function(expression) { - - var valid = false, - numeric = "<number> | <percentage>", - fill = false, - count = 0, - max = 4, - part; - - if (ValidationTypes.isAny(expression, "fill")) { - fill = true; - valid = true; - } - - while (expression.hasNext() && count < max) { - valid = ValidationTypes.isAny(expression, numeric); - if (!valid) { - break; - } - count++; - } - - - if (!fill) { - ValidationTypes.isAny(expression, "fill"); - } else { - valid = true; - } - - if (expression.hasNext()) { - part = expression.next(); - if (valid) { - throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col); - } else { - throw new ValidationError("Expected ([<number> | <percentage>]{1,4} && fill?) but found '" + part + "'.", part.line, part.col); - } - } - }, - "border-image-source" : "<image> | none", - "border-image-width" : { multi: "<length> | <percentage> | <number> | auto", max: 4 }, - "border-left" : "<border-width> || <border-style> || <color>", - "border-left-color" : "<color> | inherit", - "border-left-style" : "<border-style>", - "border-left-width" : "<border-width>", - "border-radius" : function(expression) { - - var valid = false, - numeric = "<length> | <percentage>", - slash = false, - fill = false, - count = 0, - max = 8, - part; - - while (expression.hasNext() && count < max) { - valid = ValidationTypes.isAny(expression, numeric); - if (!valid) { - - if (expression.peek() == "/" && count > 0 && !slash) { - slash = true; - max = count + 5; - expression.next(); - } else { - break; - } - } - count++; - } - - if (expression.hasNext()) { - part = expression.next(); - if (valid) { - throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col); - } else { - throw new ValidationError("Expected (<'border-radius'>) but found '" + part + "'.", part.line, part.col); - } - } - }, - "border-right" : "<border-width> || <border-style> || <color>", - "border-right-color" : "<color> | inherit", - "border-right-style" : "<border-style>", - "border-right-width" : "<border-width>", - "border-spacing" : { multi: "<length> | inherit", max: 2 }, - "border-style" : { multi: "<border-style>", max: 4 }, - "border-top" : "<border-width> || <border-style> || <color>", - "border-top-color" : "<color> | inherit", - "border-top-left-radius" : "<x-one-radius>", - "border-top-right-radius" : "<x-one-radius>", - "border-top-style" : "<border-style>", - "border-top-width" : "<border-width>", - "border-width" : { multi: "<border-width>", max: 4 }, - "bottom" : "<margin-width> | inherit", - "box-align" : "start | end | center | baseline | stretch", //http://www.w3.org/TR/2009/WD-css3-flexbox-20090723/ - "box-decoration-break" : "slice |clone", - "box-direction" : "normal | reverse | inherit", - "box-flex" : "<number>", - "box-flex-group" : "<integer>", - "box-lines" : "single | multiple", - "box-ordinal-group" : "<integer>", - "box-orient" : "horizontal | vertical | inline-axis | block-axis | inherit", - "box-pack" : "start | end | center | justify", - "box-shadow" : function (expression) { - var result = false, - part; - - if (!ValidationTypes.isAny(expression, "none")) { - Validation.multiProperty("<shadow>", expression, true, Infinity); - } else { - if (expression.hasNext()) { - part = expression.next(); - throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col); - } - } - }, - "box-sizing" : "content-box | border-box | inherit", - "break-after" : "auto | always | avoid | left | right | page | column | avoid-page | avoid-column", - "break-before" : "auto | always | avoid | left | right | page | column | avoid-page | avoid-column", - "break-inside" : "auto | avoid | avoid-page | avoid-column", - "caption-side" : "top | bottom | inherit", - "clear" : "none | right | left | both | inherit", - "clip" : 1, - "color" : "<color> | inherit", - "color-profile" : 1, - "column-count" : "<integer> | auto", //http://www.w3.org/TR/css3-multicol/ - "column-fill" : "auto | balance", - "column-gap" : "<length> | normal", - "column-rule" : "<border-width> || <border-style> || <color>", - "column-rule-color" : "<color>", - "column-rule-style" : "<border-style>", - "column-rule-width" : "<border-width>", - "column-span" : "none | all", - "column-width" : "<length> | auto", - "columns" : 1, - "content" : 1, - "counter-increment" : 1, - "counter-reset" : 1, - "crop" : "<shape> | auto", - "cue" : "cue-after | cue-before | inherit", - "cue-after" : 1, - "cue-before" : 1, - "cursor" : 1, - "direction" : "ltr | rtl | inherit", - "display" : "inline | block | list-item | inline-block | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | box | inline-box | grid | inline-grid | none | inherit | -moz-box | -moz-inline-block | -moz-inline-box | -moz-inline-grid | -moz-inline-stack | -moz-inline-table | -moz-grid | -moz-grid-group | -moz-grid-line | -moz-groupbox | -moz-deck | -moz-popup | -moz-stack | -moz-marker", - "dominant-baseline" : 1, - "drop-initial-after-adjust" : "central | middle | after-edge | text-after-edge | ideographic | alphabetic | mathematical | <percentage> | <length>", - "drop-initial-after-align" : "baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical", - "drop-initial-before-adjust" : "before-edge | text-before-edge | central | middle | hanging | mathematical | <percentage> | <length>", - "drop-initial-before-align" : "caps-height | baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical", - "drop-initial-size" : "auto | line | <length> | <percentage>", - "drop-initial-value" : "initial | <integer>", - "elevation" : "<angle> | below | level | above | higher | lower | inherit", - "empty-cells" : "show | hide | inherit", - "filter" : 1, - "fit" : "fill | hidden | meet | slice", - "fit-position" : 1, - "float" : "left | right | none | inherit", - "float-offset" : 1, - "font" : 1, - "font-family" : 1, - "font-size" : "<absolute-size> | <relative-size> | <length> | <percentage> | inherit", - "font-size-adjust" : "<number> | none | inherit", - "font-stretch" : "normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit", - "font-style" : "normal | italic | oblique | inherit", - "font-variant" : "normal | small-caps | inherit", - "font-weight" : "normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit", - "grid-cell-stacking" : "columns | rows | layer", - "grid-column" : 1, - "grid-columns" : 1, - "grid-column-align" : "start | end | center | stretch", - "grid-column-sizing" : 1, - "grid-column-span" : "<integer>", - "grid-flow" : "none | rows | columns", - "grid-layer" : "<integer>", - "grid-row" : 1, - "grid-rows" : 1, - "grid-row-align" : "start | end | center | stretch", - "grid-row-span" : "<integer>", - "grid-row-sizing" : 1, - "hanging-punctuation" : 1, - "height" : "<margin-width> | inherit", - "hyphenate-after" : "<integer> | auto", - "hyphenate-before" : "<integer> | auto", - "hyphenate-character" : "<string> | auto", - "hyphenate-lines" : "no-limit | <integer>", - "hyphenate-resource" : 1, - "hyphens" : "none | manual | auto", - "icon" : 1, - "image-orientation" : "angle | auto", - "image-rendering" : 1, - "image-resolution" : 1, - "inline-box-align" : "initial | last | <integer>", - "left" : "<margin-width> | inherit", - "letter-spacing" : "<length> | normal | inherit", - "line-height" : "<number> | <length> | <percentage> | normal | inherit", - "line-break" : "auto | loose | normal | strict", - "line-stacking" : 1, - "line-stacking-ruby" : "exclude-ruby | include-ruby", - "line-stacking-shift" : "consider-shifts | disregard-shifts", - "line-stacking-strategy" : "inline-line-height | block-line-height | max-height | grid-height", - "list-style" : 1, - "list-style-image" : "<uri> | none | inherit", - "list-style-position" : "inside | outside | inherit", - "list-style-type" : "disc | circle | square | decimal | decimal-leading-zero | lower-roman | upper-roman | lower-greek | lower-latin | upper-latin | armenian | georgian | lower-alpha | upper-alpha | none | inherit", - "margin" : { multi: "<margin-width> | inherit", max: 4 }, - "margin-bottom" : "<margin-width> | inherit", - "margin-left" : "<margin-width> | inherit", - "margin-right" : "<margin-width> | inherit", - "margin-top" : "<margin-width> | inherit", - "mark" : 1, - "mark-after" : 1, - "mark-before" : 1, - "marks" : 1, - "marquee-direction" : 1, - "marquee-play-count" : 1, - "marquee-speed" : 1, - "marquee-style" : 1, - "max-height" : "<length> | <percentage> | none | inherit", - "max-width" : "<length> | <percentage> | none | inherit", - "min-height" : "<length> | <percentage> | inherit", - "min-width" : "<length> | <percentage> | inherit", - "move-to" : 1, - "nav-down" : 1, - "nav-index" : 1, - "nav-left" : 1, - "nav-right" : 1, - "nav-up" : 1, - "opacity" : "<number> | inherit", - "orphans" : "<integer> | inherit", - "outline" : 1, - "outline-color" : "<color> | invert | inherit", - "outline-offset" : 1, - "outline-style" : "<border-style> | inherit", - "outline-width" : "<border-width> | inherit", - "overflow" : "visible | hidden | scroll | auto | inherit", - "overflow-style" : 1, - "overflow-x" : 1, - "overflow-y" : 1, - "padding" : { multi: "<padding-width> | inherit", max: 4 }, - "padding-bottom" : "<padding-width> | inherit", - "padding-left" : "<padding-width> | inherit", - "padding-right" : "<padding-width> | inherit", - "padding-top" : "<padding-width> | inherit", - "page" : 1, - "page-break-after" : "auto | always | avoid | left | right | inherit", - "page-break-before" : "auto | always | avoid | left | right | inherit", - "page-break-inside" : "auto | avoid | inherit", - "page-policy" : 1, - "pause" : 1, - "pause-after" : 1, - "pause-before" : 1, - "perspective" : 1, - "perspective-origin" : 1, - "phonemes" : 1, - "pitch" : 1, - "pitch-range" : 1, - "play-during" : 1, - "pointer-events" : "auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit", - "position" : "static | relative | absolute | fixed | inherit", - "presentation-level" : 1, - "punctuation-trim" : 1, - "quotes" : 1, - "rendering-intent" : 1, - "resize" : 1, - "rest" : 1, - "rest-after" : 1, - "rest-before" : 1, - "richness" : 1, - "right" : "<margin-width> | inherit", - "rotation" : 1, - "rotation-point" : 1, - "ruby-align" : 1, - "ruby-overhang" : 1, - "ruby-position" : 1, - "ruby-span" : 1, - "size" : 1, - "speak" : "normal | none | spell-out | inherit", - "speak-header" : "once | always | inherit", - "speak-numeral" : "digits | continuous | inherit", - "speak-punctuation" : "code | none | inherit", - "speech-rate" : 1, - "src" : 1, - "stress" : 1, - "string-set" : 1, - - "table-layout" : "auto | fixed | inherit", - "tab-size" : "<integer> | <length>", - "target" : 1, - "target-name" : 1, - "target-new" : 1, - "target-position" : 1, - "text-align" : "left | right | center | justify | inherit" , - "text-align-last" : 1, - "text-decoration" : 1, - "text-emphasis" : 1, - "text-height" : 1, - "text-indent" : "<length> | <percentage> | inherit", - "text-justify" : "auto | none | inter-word | inter-ideograph | inter-cluster | distribute | kashida", - "text-outline" : 1, - "text-overflow" : 1, - "text-rendering" : "auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit", - "text-shadow" : 1, - "text-transform" : "capitalize | uppercase | lowercase | none | inherit", - "text-wrap" : "normal | none | avoid", - "top" : "<margin-width> | inherit", - "transform" : 1, - "transform-origin" : 1, - "transform-style" : 1, - "transition" : 1, - "transition-delay" : 1, - "transition-duration" : 1, - "transition-property" : 1, - "transition-timing-function" : 1, - "unicode-bidi" : "normal | embed | bidi-override | inherit", - "user-modify" : "read-only | read-write | write-only | inherit", - "user-select" : "none | text | toggle | element | elements | all | inherit", - "vertical-align" : "auto | use-script | baseline | sub | super | top | text-top | central | middle | bottom | text-bottom | <percentage> | <length>", - "visibility" : "visible | hidden | collapse | inherit", - "voice-balance" : 1, - "voice-duration" : 1, - "voice-family" : 1, - "voice-pitch" : 1, - "voice-pitch-range" : 1, - "voice-rate" : 1, - "voice-stress" : 1, - "voice-volume" : 1, - "volume" : 1, - "white-space" : "normal | pre | nowrap | pre-wrap | pre-line | inherit | -pre-wrap | -o-pre-wrap | -moz-pre-wrap | -hp-pre-wrap", //http://perishablepress.com/wrapping-content/ - "white-space-collapse" : 1, - "widows" : "<integer> | inherit", - "width" : "<length> | <percentage> | auto | inherit" , - "word-break" : "normal | keep-all | break-all", - "word-spacing" : "<length> | normal | inherit", - "word-wrap" : 1, - "z-index" : "<integer> | auto | inherit", - "zoom" : "<number> | <percentage> | normal" -}; -function PropertyName(text, hack, line, col){ - - SyntaxUnit.call(this, text, line, col, Parser.PROPERTY_NAME_TYPE); - this.hack = hack; - -} - -PropertyName.prototype = new SyntaxUnit(); -PropertyName.prototype.constructor = PropertyName; -PropertyName.prototype.toString = function(){ - return (this.hack ? this.hack : "") + this.text; -}; -function PropertyValue(parts, line, col){ - - SyntaxUnit.call(this, parts.join(" "), line, col, Parser.PROPERTY_VALUE_TYPE); - this.parts = parts; - -} - -PropertyValue.prototype = new SyntaxUnit(); -PropertyValue.prototype.constructor = PropertyValue; -function PropertyValueIterator(value){ - this._i = 0; - this._parts = value.parts; - this._marks = []; - this.value = value; - -} -PropertyValueIterator.prototype.count = function(){ - return this._parts.length; -}; -PropertyValueIterator.prototype.isFirst = function(){ - return this._i === 0; -}; -PropertyValueIterator.prototype.hasNext = function(){ - return (this._i < this._parts.length); -}; -PropertyValueIterator.prototype.mark = function(){ - this._marks.push(this._i); -}; -PropertyValueIterator.prototype.peek = function(count){ - return this.hasNext() ? this._parts[this._i + (count || 0)] : null; -}; -PropertyValueIterator.prototype.next = function(){ - return this.hasNext() ? this._parts[this._i++] : null; -}; -PropertyValueIterator.prototype.previous = function(){ - return this._i > 0 ? this._parts[--this._i] : null; -}; -PropertyValueIterator.prototype.restore = function(){ - if (this._marks.length){ - this._i = this._marks.pop(); - } -}; -function PropertyValuePart(text, line, col){ - - SyntaxUnit.call(this, text, line, col, Parser.PROPERTY_VALUE_PART_TYPE); - this.type = "unknown"; - - var temp; - if (/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){ //dimension - this.type = "dimension"; - this.value = +RegExp.$1; - this.units = RegExp.$2; - switch(this.units.toLowerCase()){ - - case "em": - case "rem": - case "ex": - case "px": - case "cm": - case "mm": - case "in": - case "pt": - case "pc": - case "ch": - this.type = "length"; - break; - - case "deg": - case "rad": - case "grad": - this.type = "angle"; - break; - - case "ms": - case "s": - this.type = "time"; - break; - - case "hz": - case "khz": - this.type = "frequency"; - break; - - case "dpi": - case "dpcm": - this.type = "resolution"; - break; - - } - - } else if (/^([+\-]?[\d\.]+)%$/i.test(text)){ //percentage - this.type = "percentage"; - this.value = +RegExp.$1; - } else if (/^([+\-]?[\d\.]+)%$/i.test(text)){ //percentage - this.type = "percentage"; - this.value = +RegExp.$1; - } else if (/^([+\-]?\d+)$/i.test(text)){ //integer - this.type = "integer"; - this.value = +RegExp.$1; - } else if (/^([+\-]?[\d\.]+)$/i.test(text)){ //number - this.type = "number"; - this.value = +RegExp.$1; - - } else if (/^#([a-f0-9]{3,6})/i.test(text)){ //hexcolor - this.type = "color"; - temp = RegExp.$1; - if (temp.length == 3){ - this.red = parseInt(temp.charAt(0)+temp.charAt(0),16); - this.green = parseInt(temp.charAt(1)+temp.charAt(1),16); - this.blue = parseInt(temp.charAt(2)+temp.charAt(2),16); - } else { - this.red = parseInt(temp.substring(0,2),16); - this.green = parseInt(temp.substring(2,4),16); - this.blue = parseInt(temp.substring(4,6),16); - } - } else if (/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)){ //rgb() color with absolute numbers - this.type = "color"; - this.red = +RegExp.$1; - this.green = +RegExp.$2; - this.blue = +RegExp.$3; - } else if (/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)){ //rgb() color with percentages - this.type = "color"; - this.red = +RegExp.$1 * 255 / 100; - this.green = +RegExp.$2 * 255 / 100; - this.blue = +RegExp.$3 * 255 / 100; - } else if (/^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d\.]+)\s*\)/i.test(text)){ //rgba() color with absolute numbers - this.type = "color"; - this.red = +RegExp.$1; - this.green = +RegExp.$2; - this.blue = +RegExp.$3; - this.alpha = +RegExp.$4; - } else if (/^rgba\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*,\s*([\d\.]+)\s*\)/i.test(text)){ //rgba() color with percentages - this.type = "color"; - this.red = +RegExp.$1 * 255 / 100; - this.green = +RegExp.$2 * 255 / 100; - this.blue = +RegExp.$3 * 255 / 100; - this.alpha = +RegExp.$4; - } else if (/^hsl\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)){ //hsl() - this.type = "color"; - this.hue = +RegExp.$1; - this.saturation = +RegExp.$2 / 100; - this.lightness = +RegExp.$3 / 100; - } else if (/^hsla\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*,\s*([\d\.]+)\s*\)/i.test(text)){ //hsla() color with percentages - this.type = "color"; - this.hue = +RegExp.$1; - this.saturation = +RegExp.$2 / 100; - this.lightness = +RegExp.$3 / 100; - this.alpha = +RegExp.$4; - } else if (/^url\(["']?([^\)"']+)["']?\)/i.test(text)){ //URI - this.type = "uri"; - this.uri = RegExp.$1; - } else if (/^([^\(]+)\(/i.test(text)){ - this.type = "function"; - this.name = RegExp.$1; - this.value = text; - } else if (/^["'][^"']*["']/.test(text)){ //string - this.type = "string"; - this.value = eval(text); - } else if (Colors[text.toLowerCase()]){ //named color - this.type = "color"; - temp = Colors[text.toLowerCase()].substring(1); - this.red = parseInt(temp.substring(0,2),16); - this.green = parseInt(temp.substring(2,4),16); - this.blue = parseInt(temp.substring(4,6),16); - } else if (/^[\,\/]$/.test(text)){ - this.type = "operator"; - this.value = text; - } else if (/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)){ - this.type = "identifier"; - this.value = text; - } - -} - -PropertyValuePart.prototype = new SyntaxUnit(); -PropertyValuePart.prototype.constructor = PropertyValuePart; -PropertyValuePart.fromToken = function(token){ - return new PropertyValuePart(token.value, token.startLine, token.startCol); -}; -var Pseudos = { - ":first-letter": 1, - ":first-line": 1, - ":before": 1, - ":after": 1 -}; - -Pseudos.ELEMENT = 1; -Pseudos.CLASS = 2; - -Pseudos.isElement = function(pseudo){ - return pseudo.indexOf("::") === 0 || Pseudos[pseudo.toLowerCase()] == Pseudos.ELEMENT; -}; -function Selector(parts, line, col){ - - SyntaxUnit.call(this, parts.join(" "), line, col, Parser.SELECTOR_TYPE); - this.parts = parts; - this.specificity = Specificity.calculate(this); - -} - -Selector.prototype = new SyntaxUnit(); -Selector.prototype.constructor = Selector; -function SelectorPart(elementName, modifiers, text, line, col){ - - SyntaxUnit.call(this, text, line, col, Parser.SELECTOR_PART_TYPE); - this.elementName = elementName; - this.modifiers = modifiers; - -} - -SelectorPart.prototype = new SyntaxUnit(); -SelectorPart.prototype.constructor = SelectorPart; -function SelectorSubPart(text, type, line, col){ - - SyntaxUnit.call(this, text, line, col, Parser.SELECTOR_SUB_PART_TYPE); - this.type = type; - this.args = []; - -} - -SelectorSubPart.prototype = new SyntaxUnit(); -SelectorSubPart.prototype.constructor = SelectorSubPart; -function Specificity(a, b, c, d){ - this.a = a; - this.b = b; - this.c = c; - this.d = d; -} - -Specificity.prototype = { - constructor: Specificity, - compare: function(other){ - var comps = ["a", "b", "c", "d"], - i, len; - - for (i=0, len=comps.length; i < len; i++){ - if (this[comps[i]] < other[comps[i]]){ - return -1; - } else if (this[comps[i]] > other[comps[i]]){ - return 1; - } - } - - return 0; - }, - valueOf: function(){ - return (this.a * 1000) + (this.b * 100) + (this.c * 10) + this.d; - }, - toString: function(){ - return this.a + "," + this.b + "," + this.c + "," + this.d; - } - -}; -Specificity.calculate = function(selector){ - - var i, len, - part, - b=0, c=0, d=0; - - function updateValues(part){ - - var i, j, len, num, - elementName = part.elementName ? part.elementName.text : "", - modifier; - - if (elementName && elementName.charAt(elementName.length-1) != "*") { - d++; - } - - for (i=0, len=part.modifiers.length; i < len; i++){ - modifier = part.modifiers[i]; - switch(modifier.type){ - case "class": - case "attribute": - c++; - break; - - case "id": - b++; - break; - - case "pseudo": - if (Pseudos.isElement(modifier.text)){ - d++; - } else { - c++; - } - break; - - case "not": - for (j=0, num=modifier.args.length; j < num; j++){ - updateValues(modifier.args[j]); - } - } - } - } - - for (i=0, len=selector.parts.length; i < len; i++){ - part = selector.parts[i]; - - if (part instanceof SelectorPart){ - updateValues(part); - } - } - - return new Specificity(0, b, c, d); -}; - -var h = /^[0-9a-fA-F]$/, - nonascii = /^[\u0080-\uFFFF]$/, - nl = /\n|\r\n|\r|\f/; - - -function isHexDigit(c){ - return c !== null && h.test(c); -} - -function isDigit(c){ - return c !== null && /\d/.test(c); -} - -function isWhitespace(c){ - return c !== null && /\s/.test(c); -} - -function isNewLine(c){ - return c !== null && nl.test(c); -} - -function isNameStart(c){ - return c !== null && (/[a-z_\u0080-\uFFFF\\]/i.test(c)); -} - -function isNameChar(c){ - return c !== null && (isNameStart(c) || /[0-9\-\\]/.test(c)); -} - -function isIdentStart(c){ - return c !== null && (isNameStart(c) || /\-\\/.test(c)); -} - -function mix(receiver, supplier){ - for (var prop in supplier){ - if (supplier.hasOwnProperty(prop)){ - receiver[prop] = supplier[prop]; - } - } - return receiver; -} -function TokenStream(input){ - TokenStreamBase.call(this, input, Tokens); -} - -TokenStream.prototype = mix(new TokenStreamBase(), { - _getToken: function(channel){ - - var c, - reader = this._reader, - token = null, - startLine = reader.getLine(), - startCol = reader.getCol(); - - c = reader.read(); - - - while(c){ - switch(c){ - case "/": - - if(reader.peek() == "*"){ - token = this.commentToken(c, startLine, startCol); - } else { - token = this.charToken(c, startLine, startCol); - } - break; - case "|": - case "~": - case "^": - case "$": - case "*": - if(reader.peek() == "="){ - token = this.comparisonToken(c, startLine, startCol); - } else { - token = this.charToken(c, startLine, startCol); - } - break; - case "\"": - case "'": - token = this.stringToken(c, startLine, startCol); - break; - case "#": - if (isNameChar(reader.peek())){ - token = this.hashToken(c, startLine, startCol); - } else { - token = this.charToken(c, startLine, startCol); - } - break; - case ".": - if (isDigit(reader.peek())){ - token = this.numberToken(c, startLine, startCol); - } else { - token = this.charToken(c, startLine, startCol); - } - break; - case "-": - if (reader.peek() == "-"){ //could be closing HTML-style comment - token = this.htmlCommentEndToken(c, startLine, startCol); - } else if (isNameStart(reader.peek())){ - token = this.identOrFunctionToken(c, startLine, startCol); - } else { - token = this.charToken(c, startLine, startCol); - } - break; - case "!": - token = this.importantToken(c, startLine, startCol); - break; - case "@": - token = this.atRuleToken(c, startLine, startCol); - break; - case ":": - token = this.notToken(c, startLine, startCol); - break; - case "<": - token = this.htmlCommentStartToken(c, startLine, startCol); - break; - case "U": - case "u": - if (reader.peek() == "+"){ - token = this.unicodeRangeToken(c, startLine, startCol); - break; - } - default: - if (isDigit(c)){ - token = this.numberToken(c, startLine, startCol); - } else - if (isWhitespace(c)){ - token = this.whitespaceToken(c, startLine, startCol); - } else - if (isIdentStart(c)){ - token = this.identOrFunctionToken(c, startLine, startCol); - } else - { - token = this.charToken(c, startLine, startCol); - } - - - - - - - } - break; - } - - if (!token && c === null){ - token = this.createToken(Tokens.EOF,null,startLine,startCol); - } - - return token; - }, - createToken: function(tt, value, startLine, startCol, options){ - var reader = this._reader; - options = options || {}; - - return { - value: value, - type: tt, - channel: options.channel, - hide: options.hide || false, - startLine: startLine, - startCol: startCol, - endLine: reader.getLine(), - endCol: reader.getCol() - }; - }, - atRuleToken: function(first, startLine, startCol){ - var rule = first, - reader = this._reader, - tt = Tokens.CHAR, - valid = false, - ident, - c; - reader.mark(); - ident = this.readName(); - rule = first + ident; - tt = Tokens.type(rule.toLowerCase()); - if (tt == Tokens.CHAR || tt == Tokens.UNKNOWN){ - if (rule.length > 1){ - tt = Tokens.UNKNOWN_SYM; - } else { - tt = Tokens.CHAR; - rule = first; - reader.reset(); - } - } - - return this.createToken(tt, rule, startLine, startCol); - }, - charToken: function(c, startLine, startCol){ - var tt = Tokens.type(c); - - if (tt == -1){ - tt = Tokens.CHAR; - } - - return this.createToken(tt, c, startLine, startCol); - }, - commentToken: function(first, startLine, startCol){ - var reader = this._reader, - comment = this.readComment(first); - - return this.createToken(Tokens.COMMENT, comment, startLine, startCol); - }, - comparisonToken: function(c, startLine, startCol){ - var reader = this._reader, - comparison = c + reader.read(), - tt = Tokens.type(comparison) || Tokens.CHAR; - - return this.createToken(tt, comparison, startLine, startCol); - }, - hashToken: function(first, startLine, startCol){ - var reader = this._reader, - name = this.readName(first); - - return this.createToken(Tokens.HASH, name, startLine, startCol); - }, - htmlCommentStartToken: function(first, startLine, startCol){ - var reader = this._reader, - text = first; - - reader.mark(); - text += reader.readCount(3); - - if (text == "<!--"){ - return this.createToken(Tokens.CDO, text, startLine, startCol); - } else { - reader.reset(); - return this.charToken(first, startLine, startCol); - } - }, - htmlCommentEndToken: function(first, startLine, startCol){ - var reader = this._reader, - text = first; - - reader.mark(); - text += reader.readCount(2); - - if (text == "-->"){ - return this.createToken(Tokens.CDC, text, startLine, startCol); - } else { - reader.reset(); - return this.charToken(first, startLine, startCol); - } - }, - identOrFunctionToken: function(first, startLine, startCol){ - var reader = this._reader, - ident = this.readName(first), - tt = Tokens.IDENT; - if (reader.peek() == "("){ - ident += reader.read(); - if (ident.toLowerCase() == "url("){ - tt = Tokens.URI; - ident = this.readURI(ident); - if (ident.toLowerCase() == "url("){ - tt = Tokens.FUNCTION; - } - } else { - tt = Tokens.FUNCTION; - } - } else if (reader.peek() == ":"){ //might be an IE function - if (ident.toLowerCase() == "progid"){ - ident += reader.readTo("("); - tt = Tokens.IE_FUNCTION; - } - } - - return this.createToken(tt, ident, startLine, startCol); - }, - importantToken: function(first, startLine, startCol){ - var reader = this._reader, - important = first, - tt = Tokens.CHAR, - temp, - c; - - reader.mark(); - c = reader.read(); - - while(c){ - if (c == "/"){ - if (reader.peek() != "*"){ - break; - } else { - temp = this.readComment(c); - if (temp === ""){ //broken! - break; - } - } - } else if (isWhitespace(c)){ - important += c + this.readWhitespace(); - } else if (/i/i.test(c)){ - temp = reader.readCount(8); - if (/mportant/i.test(temp)){ - important += c + temp; - tt = Tokens.IMPORTANT_SYM; - - } - break; //we're done - } else { - break; - } - - c = reader.read(); - } - - if (tt == Tokens.CHAR){ - reader.reset(); - return this.charToken(first, startLine, startCol); - } else { - return this.createToken(tt, important, startLine, startCol); - } - - - }, - notToken: function(first, startLine, startCol){ - var reader = this._reader, - text = first; - - reader.mark(); - text += reader.readCount(4); - - if (text.toLowerCase() == ":not("){ - return this.createToken(Tokens.NOT, text, startLine, startCol); - } else { - reader.reset(); - return this.charToken(first, startLine, startCol); - } - }, - numberToken: function(first, startLine, startCol){ - var reader = this._reader, - value = this.readNumber(first), - ident, - tt = Tokens.NUMBER, - c = reader.peek(); - - if (isIdentStart(c)){ - ident = this.readName(reader.read()); - value += ident; - - if (/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vm$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(ident)){ - tt = Tokens.LENGTH; - } else if (/^deg|^rad$|^grad$/i.test(ident)){ - tt = Tokens.ANGLE; - } else if (/^ms$|^s$/i.test(ident)){ - tt = Tokens.TIME; - } else if (/^hz$|^khz$/i.test(ident)){ - tt = Tokens.FREQ; - } else if (/^dpi$|^dpcm$/i.test(ident)){ - tt = Tokens.RESOLUTION; - } else { - tt = Tokens.DIMENSION; - } - - } else if (c == "%"){ - value += reader.read(); - tt = Tokens.PERCENTAGE; - } - - return this.createToken(tt, value, startLine, startCol); - }, - stringToken: function(first, startLine, startCol){ - var delim = first, - string = first, - reader = this._reader, - prev = first, - tt = Tokens.STRING, - c = reader.read(); - - while(c){ - string += c; - if (c == delim && prev != "\\"){ - break; - } - if (isNewLine(reader.peek()) && c != "\\"){ - tt = Tokens.INVALID; - break; - } - prev = c; - c = reader.read(); - } - if (c === null){ - tt = Tokens.INVALID; - } - - return this.createToken(tt, string, startLine, startCol); - }, - - unicodeRangeToken: function(first, startLine, startCol){ - var reader = this._reader, - value = first, - temp, - tt = Tokens.CHAR; - if (reader.peek() == "+"){ - reader.mark(); - value += reader.read(); - value += this.readUnicodeRangePart(true); - if (value.length == 2){ - reader.reset(); - } else { - - tt = Tokens.UNICODE_RANGE; - if (value.indexOf("?") == -1){ - - if (reader.peek() == "-"){ - reader.mark(); - temp = reader.read(); - temp += this.readUnicodeRangePart(false); - if (temp.length == 1){ - reader.reset(); - } else { - value += temp; - } - } - - } - } - } - - return this.createToken(tt, value, startLine, startCol); - }, - whitespaceToken: function(first, startLine, startCol){ - var reader = this._reader, - value = first + this.readWhitespace(); - return this.createToken(Tokens.S, value, startLine, startCol); - }, - - readUnicodeRangePart: function(allowQuestionMark){ - var reader = this._reader, - part = "", - c = reader.peek(); - while(isHexDigit(c) && part.length < 6){ - reader.read(); - part += c; - c = reader.peek(); - } - if (allowQuestionMark){ - while(c == "?" && part.length < 6){ - reader.read(); - part += c; - c = reader.peek(); - } - } - - return part; - }, - - readWhitespace: function(){ - var reader = this._reader, - whitespace = "", - c = reader.peek(); - - while(isWhitespace(c)){ - reader.read(); - whitespace += c; - c = reader.peek(); - } - - return whitespace; - }, - readNumber: function(first){ - var reader = this._reader, - number = first, - hasDot = (first == "."), - c = reader.peek(); - - - while(c){ - if (isDigit(c)){ - number += reader.read(); - } else if (c == "."){ - if (hasDot){ - break; - } else { - hasDot = true; - number += reader.read(); - } - } else { - break; - } - - c = reader.peek(); - } - - return number; - }, - readString: function(){ - var reader = this._reader, - delim = reader.read(), - string = delim, - prev = delim, - c = reader.peek(); - - while(c){ - c = reader.read(); - string += c; - if (c == delim && prev != "\\"){ - break; - } - if (isNewLine(reader.peek()) && c != "\\"){ - string = ""; - break; - } - prev = c; - c = reader.peek(); - } - if (c === null){ - string = ""; - } - - return string; - }, - readURI: function(first){ - var reader = this._reader, - uri = first, - inner = "", - c = reader.peek(); - - reader.mark(); - while(c && isWhitespace(c)){ - reader.read(); - c = reader.peek(); - } - if (c == "'" || c == "\""){ - inner = this.readString(); - } else { - inner = this.readURL(); - } - - c = reader.peek(); - while(c && isWhitespace(c)){ - reader.read(); - c = reader.peek(); - } - if (inner === "" || c != ")"){ - uri = first; - reader.reset(); - } else { - uri += inner + reader.read(); - } - - return uri; - }, - readURL: function(){ - var reader = this._reader, - url = "", - c = reader.peek(); - while (/^[!#$%&\\*-~]$/.test(c)){ - url += reader.read(); - c = reader.peek(); - } - - return url; - - }, - readName: function(first){ - var reader = this._reader, - ident = first || "", - c = reader.peek(); - - while(true){ - if (c == "\\"){ - ident += this.readEscape(reader.read()); - c = reader.peek(); - } else if(c && isNameChar(c)){ - ident += reader.read(); - c = reader.peek(); - } else { - break; - } - } - - return ident; - }, - - readEscape: function(first){ - var reader = this._reader, - cssEscape = first || "", - i = 0, - c = reader.peek(); - - if (isHexDigit(c)){ - do { - cssEscape += reader.read(); - c = reader.peek(); - } while(c && isHexDigit(c) && ++i < 6); - } - - if (cssEscape.length == 3 && /\s/.test(c) || - cssEscape.length == 7 || cssEscape.length == 1){ - reader.read(); - } else { - c = ""; - } - - return cssEscape + c; - }, - - readComment: function(first){ - var reader = this._reader, - comment = first || "", - c = reader.read(); - - if (c == "*"){ - while(c){ - comment += c; - if (comment.length > 2 && c == "*" && reader.peek() == "/"){ - comment += reader.read(); - break; - } - - c = reader.read(); - } - - return comment; - } else { - return ""; - } - - } -}); - - -var Tokens = [ - { name: "CDO"}, - { name: "CDC"}, - { name: "S", whitespace: true/*, channel: "ws"*/}, - { name: "COMMENT", comment: true, hide: true, channel: "comment" }, - { name: "INCLUDES", text: "~="}, - { name: "DASHMATCH", text: "|="}, - { name: "PREFIXMATCH", text: "^="}, - { name: "SUFFIXMATCH", text: "$="}, - { name: "SUBSTRINGMATCH", text: "*="}, - { name: "STRING"}, - { name: "IDENT"}, - { name: "HASH"}, - { name: "IMPORT_SYM", text: "@import"}, - { name: "PAGE_SYM", text: "@page"}, - { name: "MEDIA_SYM", text: "@media"}, - { name: "FONT_FACE_SYM", text: "@font-face"}, - { name: "CHARSET_SYM", text: "@charset"}, - { name: "NAMESPACE_SYM", text: "@namespace"}, - { name: "UNKNOWN_SYM" }, - { name: "KEYFRAMES_SYM", text: [ "@keyframes", "@-webkit-keyframes", "@-moz-keyframes", "@-o-keyframes" ] }, - { name: "IMPORTANT_SYM"}, - { name: "LENGTH"}, - { name: "ANGLE"}, - { name: "TIME"}, - { name: "FREQ"}, - { name: "DIMENSION"}, - { name: "PERCENTAGE"}, - { name: "NUMBER"}, - { name: "URI"}, - { name: "FUNCTION"}, - { name: "UNICODE_RANGE"}, - { name: "INVALID"}, - { name: "PLUS", text: "+" }, - { name: "GREATER", text: ">"}, - { name: "COMMA", text: ","}, - { name: "TILDE", text: "~"}, - { name: "NOT"}, - { name: "TOPLEFTCORNER_SYM", text: "@top-left-corner"}, - { name: "TOPLEFT_SYM", text: "@top-left"}, - { name: "TOPCENTER_SYM", text: "@top-center"}, - { name: "TOPRIGHT_SYM", text: "@top-right"}, - { name: "TOPRIGHTCORNER_SYM", text: "@top-right-corner"}, - { name: "BOTTOMLEFTCORNER_SYM", text: "@bottom-left-corner"}, - { name: "BOTTOMLEFT_SYM", text: "@bottom-left"}, - { name: "BOTTOMCENTER_SYM", text: "@bottom-center"}, - { name: "BOTTOMRIGHT_SYM", text: "@bottom-right"}, - { name: "BOTTOMRIGHTCORNER_SYM", text: "@bottom-right-corner"}, - { name: "LEFTTOP_SYM", text: "@left-top"}, - { name: "LEFTMIDDLE_SYM", text: "@left-middle"}, - { name: "LEFTBOTTOM_SYM", text: "@left-bottom"}, - { name: "RIGHTTOP_SYM", text: "@right-top"}, - { name: "RIGHTMIDDLE_SYM", text: "@right-middle"}, - { name: "RIGHTBOTTOM_SYM", text: "@right-bottom"}, - { name: "RESOLUTION", state: "media"}, - { name: "IE_FUNCTION" }, - { name: "CHAR" }, - { - name: "PIPE", - text: "|" - }, - { - name: "SLASH", - text: "/" - }, - { - name: "MINUS", - text: "-" - }, - { - name: "STAR", - text: "*" - }, - - { - name: "LBRACE", - text: "{" - }, - { - name: "RBRACE", - text: "}" - }, - { - name: "LBRACKET", - text: "[" - }, - { - name: "RBRACKET", - text: "]" - }, - { - name: "EQUALS", - text: "=" - }, - { - name: "COLON", - text: ":" - }, - { - name: "SEMICOLON", - text: ";" - }, - - { - name: "LPAREN", - text: "(" - }, - { - name: "RPAREN", - text: ")" - }, - { - name: "DOT", - text: "." - } -]; - -(function(){ - - var nameMap = [], - typeMap = {}; - - Tokens.UNKNOWN = -1; - Tokens.unshift({name:"EOF"}); - for (var i=0, len = Tokens.length; i < len; i++){ - nameMap.push(Tokens[i].name); - Tokens[Tokens[i].name] = i; - if (Tokens[i].text){ - if (Tokens[i].text instanceof Array){ - for (var j=0; j < Tokens[i].text.length; j++){ - typeMap[Tokens[i].text[j]] = i; - } - } else { - typeMap[Tokens[i].text] = i; - } - } - } - - Tokens.name = function(tt){ - return nameMap[tt]; - }; - - Tokens.type = function(c){ - return typeMap[c] || -1; - }; - -})(); -var Validation = { - - validate: function(property, value){ - var name = property.toString().toLowerCase(), - parts = value.parts, - expression = new PropertyValueIterator(value), - spec = Properties[name], - part, - valid, - j, count, - msg, - types, - last, - literals, - max, multi, group; - - if (!spec) { - if (name.indexOf("-") !== 0){ //vendor prefixed are ok - throw new ValidationError("Unknown property '" + property + "'.", property.line, property.col); - } - } else if (typeof spec != "number"){ - if (typeof spec == "string"){ - if (spec.indexOf("||") > -1) { - this.groupProperty(spec, expression); - } else { - this.singleProperty(spec, expression, 1); - } - - } else if (spec.multi) { - this.multiProperty(spec.multi, expression, spec.comma, spec.max || Infinity); - } else if (typeof spec == "function") { - spec(expression); - } - - } - - }, - - singleProperty: function(types, expression, max, partial) { - - var result = false, - value = expression.value, - count = 0, - part; - - while (expression.hasNext() && count < max) { - result = ValidationTypes.isAny(expression, types); - if (!result) { - break; - } - count++; - } - - if (!result) { - if (expression.hasNext() && !expression.isFirst()) { - part = expression.peek(); - throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col); - } else { - throw new ValidationError("Expected (" + types + ") but found '" + value + "'.", value.line, value.col); - } - } else if (expression.hasNext()) { - part = expression.next(); - throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col); - } - - }, - - multiProperty: function (types, expression, comma, max) { - - var result = false, - value = expression.value, - count = 0, - sep = false, - part; - - while(expression.hasNext() && !result && count < max) { - if (ValidationTypes.isAny(expression, types)) { - count++; - if (!expression.hasNext()) { - result = true; - - } else if (comma) { - if (expression.peek() == ",") { - part = expression.next(); - } else { - break; - } - } - } else { - break; - - } - } - - if (!result) { - if (expression.hasNext() && !expression.isFirst()) { - part = expression.peek(); - throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col); - } else { - part = expression.previous(); - if (comma && part == ",") { - throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col); - } else { - throw new ValidationError("Expected (" + types + ") but found '" + value + "'.", value.line, value.col); - } - } - - } else if (expression.hasNext()) { - part = expression.next(); - throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col); - } - - }, - - groupProperty: function (types, expression, comma) { - - var result = false, - value = expression.value, - typeCount = types.split("||").length, - groups = { count: 0 }, - partial = false, - name, - part; - - while(expression.hasNext() && !result) { - name = ValidationTypes.isAnyOfGroup(expression, types); - if (name) { - if (groups[name]) { - break; - } else { - groups[name] = 1; - groups.count++; - partial = true; - - if (groups.count == typeCount || !expression.hasNext()) { - result = true; - } - } - } else { - break; - } - } - - if (!result) { - if (partial && expression.hasNext()) { - part = expression.peek(); - throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col); - } else { - throw new ValidationError("Expected (" + types + ") but found '" + value + "'.", value.line, value.col); - } - } else if (expression.hasNext()) { - part = expression.next(); - throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col); - } - } - - - -}; -function ValidationError(message, line, col){ - this.col = col; - this.line = line; - this.message = message; - -} -ValidationError.prototype = new Error(); -var ValidationTypes = { - - isLiteral: function (part, literals) { - var text = part.text.toString().toLowerCase(), - args = literals.split(" | "), - i, len, found = false; - - for (i=0,len=args.length; i < len && !found; i++){ - if (text == args[i].toLowerCase()){ - found = true; - } - } - - return found; - }, - - isSimple: function(type) { - return !!this.simple[type]; - }, - - isComplex: function(type) { - return !!this.complex[type]; - }, - isAny: function (expression, types) { - var args = types.split(" | "), - i, len, found = false; - - for (i=0,len=args.length; i < len && !found && expression.hasNext(); i++){ - found = this.isType(expression, args[i]); - } - - return found; - }, - isAnyOfGroup: function(expression, types) { - var args = types.split(" || "), - i, len, found = false; - - for (i=0,len=args.length; i < len && !found; i++){ - found = this.isType(expression, args[i]); - } - - return found ? args[i-1] : false; - }, - isType: function (expression, type) { - var part = expression.peek(), - result = false; - - if (type.charAt(0) != "<") { - result = this.isLiteral(part, type); - if (result) { - expression.next(); - } - } else if (this.simple[type]) { - result = this.simple[type](part); - if (result) { - expression.next(); - } - } else { - result = this.complex[type](expression); - } - - return result; - }, - - - - simple: { - - "<absolute-size>": function(part){ - return ValidationTypes.isLiteral(part, "xx-small | x-small | small | medium | large | x-large | xx-large"); - }, - - "<attachment>": function(part){ - return ValidationTypes.isLiteral(part, "scroll | fixed | local"); - }, - - "<attr>": function(part){ - return part.type == "function" && part.name == "attr"; - }, - - "<bg-image>": function(part){ - return this["<image>"](part) || this["<gradient>"](part) || part == "none"; - }, - - "<gradient>": function(part) { - return part.type == "function" && /^(?:\-(?:ms|moz|o|webkit)\-)?(?:repeating\-)?(?:radial\-|linear\-)?gradient/i.test(part); - }, - - "<box>": function(part){ - return ValidationTypes.isLiteral(part, "padding-box | border-box | content-box"); - }, - - "<content>": function(part){ - return part.type == "function" && part.name == "content"; - }, - - "<relative-size>": function(part){ - return ValidationTypes.isLiteral(part, "smaller | larger"); - }, - "<ident>": function(part){ - return part.type == "identifier"; - }, - - "<length>": function(part){ - if (part.type == "function" && /^(?:\-(?:ms|moz|o|webkit)\-)?calc/i.test(part)){ - return true; - }else{ - return part.type == "length" || part.type == "number" || part.type == "integer" || part == "0"; - } - }, - - "<color>": function(part){ - return part.type == "color" || part == "transparent"; - }, - - "<number>": function(part){ - return part.type == "number" || this["<integer>"](part); - }, - - "<integer>": function(part){ - return part.type == "integer"; - }, - - "<line>": function(part){ - return part.type == "integer"; - }, - - "<angle>": function(part){ - return part.type == "angle"; - }, - - "<uri>": function(part){ - return part.type == "uri"; - }, - - "<image>": function(part){ - return this["<uri>"](part); - }, - - "<percentage>": function(part){ - return part.type == "percentage" || part == "0"; - }, - - "<border-width>": function(part){ - return this["<length>"](part) || ValidationTypes.isLiteral(part, "thin | medium | thick"); - }, - - "<border-style>": function(part){ - return ValidationTypes.isLiteral(part, "none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset"); - }, - - "<margin-width>": function(part){ - return this["<length>"](part) || this["<percentage>"](part) || ValidationTypes.isLiteral(part, "auto"); - }, - - "<padding-width>": function(part){ - return this["<length>"](part) || this["<percentage>"](part); - }, - - "<shape>": function(part){ - return part.type == "function" && (part.name == "rect" || part.name == "inset-rect"); - }, - - "<time>": function(part) { - return part.type == "time"; - } - }, - - complex: { - - "<bg-position>": function(expression){ - var types = this, - result = false, - numeric = "<percentage> | <length>", - xDir = "left | right", - yDir = "top | bottom", - count = 0, - hasNext = function() { - return expression.hasNext() && expression.peek() != ","; - }; - - while (expression.peek(count) && expression.peek(count) != ",") { - count++; - } - - if (count < 3) { - if (ValidationTypes.isAny(expression, xDir + " | center | " + numeric)) { - result = true; - ValidationTypes.isAny(expression, yDir + " | center | " + numeric); - } else if (ValidationTypes.isAny(expression, yDir)) { - result = true; - ValidationTypes.isAny(expression, xDir + " | center"); - } - } else { - if (ValidationTypes.isAny(expression, xDir)) { - if (ValidationTypes.isAny(expression, yDir)) { - result = true; - ValidationTypes.isAny(expression, numeric); - } else if (ValidationTypes.isAny(expression, numeric)) { - if (ValidationTypes.isAny(expression, yDir)) { - result = true; - ValidationTypes.isAny(expression, numeric); - } else if (ValidationTypes.isAny(expression, "center")) { - result = true; - } - } - } else if (ValidationTypes.isAny(expression, yDir)) { - if (ValidationTypes.isAny(expression, xDir)) { - result = true; - ValidationTypes.isAny(expression, numeric); - } else if (ValidationTypes.isAny(expression, numeric)) { - if (ValidationTypes.isAny(expression, xDir)) { - result = true; - ValidationTypes.isAny(expression, numeric); - } else if (ValidationTypes.isAny(expression, "center")) { - result = true; - } - } - } else if (ValidationTypes.isAny(expression, "center")) { - if (ValidationTypes.isAny(expression, xDir + " | " + yDir)) { - result = true; - ValidationTypes.isAny(expression, numeric); - } - } - } - - return result; - }, - - "<bg-size>": function(expression){ - var types = this, - result = false, - numeric = "<percentage> | <length> | auto", - part, - i, len; - - if (ValidationTypes.isAny(expression, "cover | contain")) { - result = true; - } else if (ValidationTypes.isAny(expression, numeric)) { - result = true; - ValidationTypes.isAny(expression, numeric); - } - - return result; - }, - - "<repeat-style>": function(expression){ - var result = false, - values = "repeat | space | round | no-repeat", - part; - - if (expression.hasNext()){ - part = expression.next(); - - if (ValidationTypes.isLiteral(part, "repeat-x | repeat-y")) { - result = true; - } else if (ValidationTypes.isLiteral(part, values)) { - result = true; - - if (expression.hasNext() && ValidationTypes.isLiteral(expression.peek(), values)) { - expression.next(); - } - } - } - - return result; - - }, - - "<shadow>": function(expression) { - var result = false, - count = 0, - inset = false, - color = false, - part; - - if (expression.hasNext()) { - - if (ValidationTypes.isAny(expression, "inset")){ - inset = true; - } - - if (ValidationTypes.isAny(expression, "<color>")) { - color = true; - } - - while (ValidationTypes.isAny(expression, "<length>") && count < 4) { - count++; - } - - - if (expression.hasNext()) { - if (!color) { - ValidationTypes.isAny(expression, "<color>"); - } - - if (!inset) { - ValidationTypes.isAny(expression, "inset"); - } - - } - - result = (count >= 2 && count <= 4); - - } - - return result; - }, - - "<x-one-radius>": function(expression) { - var result = false, - count = 0, - numeric = "<length> | <percentage>", - part; - - if (ValidationTypes.isAny(expression, numeric)){ - result = true; - - ValidationTypes.isAny(expression, numeric); - } - - return result; - } - } -}; - - - -parserlib.css = { -Colors :Colors, -Combinator :Combinator, -Parser :Parser, -PropertyName :PropertyName, -PropertyValue :PropertyValue, -PropertyValuePart :PropertyValuePart, -MediaFeature :MediaFeature, -MediaQuery :MediaQuery, -Selector :Selector, -SelectorPart :SelectorPart, -SelectorSubPart :SelectorSubPart, -Specificity :Specificity, -TokenStream :TokenStream, -Tokens :Tokens, -ValidationError :ValidationError -}; -})(); -var CSSLint = (function(){ - - var rules = [], - formatters = [], - embeddedRuleset = /\/\*csslint([^\*]*)\*\//, - api = new parserlib.util.EventTarget(); - - api.version = "0.9.10"; - api.addRule = function(rule){ - rules.push(rule); - rules[rule.id] = rule; - }; - api.clearRules = function(){ - rules = []; - }; - api.getRules = function(){ - return [].concat(rules).sort(function(a,b){ - return a.id > b.id ? 1 : 0; - }); - }; - api.getRuleset = function() { - var ruleset = {}, - i = 0, - len = rules.length; - - while (i < len){ - ruleset[rules[i++].id] = 1; //by default, everything is a warning - } - - return ruleset; - }; - function applyEmbeddedRuleset(text, ruleset){ - var valueMap, - embedded = text && text.match(embeddedRuleset), - rules = embedded && embedded[1]; - - if (rules) { - valueMap = { - "true": 2, // true is error - "": 1, // blank is warning - "false": 0, // false is ignore - - "2": 2, // explicit error - "1": 1, // explicit warning - "0": 0 // explicit ignore - }; - - rules.toLowerCase().split(",").forEach(function(rule){ - var pair = rule.split(":"), - property = pair[0] || "", - value = pair[1] || ""; - - ruleset[property.trim()] = valueMap[value.trim()]; - }); - } - - return ruleset; - } - api.addFormatter = function(formatter) { - formatters[formatter.id] = formatter; - }; - api.getFormatter = function(formatId){ - return formatters[formatId]; - }; - api.format = function(results, filename, formatId, options) { - var formatter = this.getFormatter(formatId), - result = null; - - if (formatter){ - result = formatter.startFormat(); - result += formatter.formatResults(results, filename, options || {}); - result += formatter.endFormat(); - } - - return result; - }; - api.hasFormat = function(formatId){ - return formatters.hasOwnProperty(formatId); - }; - api.verify = function(text, ruleset){ - - var i = 0, - len = rules.length, - reporter, - lines, - report, - parser = new parserlib.css.Parser({ starHack: true, ieFilters: true, - underscoreHack: true, strict: false }); - lines = text.replace(/\n\r?/g, "$split$").split('$split$'); - - if (!ruleset){ - ruleset = this.getRuleset(); - } - - if (embeddedRuleset.test(text)){ - ruleset = applyEmbeddedRuleset(text, ruleset); - } - - reporter = new Reporter(lines, ruleset); - - ruleset.errors = 2; //always report parsing errors as errors - for (i in ruleset){ - if(ruleset.hasOwnProperty(i) && ruleset[i]){ - if (rules[i]){ - rules[i].init(parser, reporter); - } - } - } - try { - parser.parse(text); - } catch (ex) { - reporter.error("Fatal error, cannot continue: " + ex.message, ex.line, ex.col, {}); - } - - report = { - messages : reporter.messages, - stats : reporter.stats, - ruleset : reporter.ruleset - }; - report.messages.sort(function (a, b){ - if (a.rollup && !b.rollup){ - return 1; - } else if (!a.rollup && b.rollup){ - return -1; - } else { - return a.line - b.line; - } - }); - - return report; - }; - - return api; - -})(); -function Reporter(lines, ruleset){ - this.messages = []; - this.stats = []; - this.lines = lines; - this.ruleset = ruleset; -} - -Reporter.prototype = { - constructor: Reporter, - error: function(message, line, col, rule){ - this.messages.push({ - type : "error", - line : line, - col : col, - message : message, - evidence: this.lines[line-1], - rule : rule || {} - }); - }, - warn: function(message, line, col, rule){ - this.report(message, line, col, rule); - }, - report: function(message, line, col, rule){ - this.messages.push({ - type : this.ruleset[rule.id] == 2 ? "error" : "warning", - line : line, - col : col, - message : message, - evidence: this.lines[line-1], - rule : rule - }); - }, - info: function(message, line, col, rule){ - this.messages.push({ - type : "info", - line : line, - col : col, - message : message, - evidence: this.lines[line-1], - rule : rule - }); - }, - rollupError: function(message, rule){ - this.messages.push({ - type : "error", - rollup : true, - message : message, - rule : rule - }); - }, - rollupWarn: function(message, rule){ - this.messages.push({ - type : "warning", - rollup : true, - message : message, - rule : rule - }); - }, - stat: function(name, value){ - this.stats[name] = value; - } -}; -CSSLint._Reporter = Reporter; -CSSLint.Util = { - mix: function(receiver, supplier){ - var prop; - - for (prop in supplier){ - if (supplier.hasOwnProperty(prop)){ - receiver[prop] = supplier[prop]; - } - } - - return prop; - }, - indexOf: function(values, value){ - if (values.indexOf){ - return values.indexOf(value); - } else { - for (var i=0, len=values.length; i < len; i++){ - if (values[i] === value){ - return i; - } - } - return -1; - } - }, - forEach: function(values, func) { - if (values.forEach){ - return values.forEach(func); - } else { - for (var i=0, len=values.length; i < len; i++){ - func(values[i], i, values); - } - } - } -}; -CSSLint.addRule({ - id: "adjoining-classes", - name: "Disallow adjoining classes", - desc: "Don't use adjoining classes.", - browsers: "IE6", - init: function(parser, reporter){ - var rule = this; - parser.addListener("startrule", function(event){ - var selectors = event.selectors, - selector, - part, - modifier, - classCount, - i, j, k; - - for (i=0; i < selectors.length; i++){ - selector = selectors[i]; - for (j=0; j < selector.parts.length; j++){ - part = selector.parts[j]; - if (part.type == parser.SELECTOR_PART_TYPE){ - classCount = 0; - for (k=0; k < part.modifiers.length; k++){ - modifier = part.modifiers[k]; - if (modifier.type == "class"){ - classCount++; - } - if (classCount > 1){ - reporter.report("Don't use adjoining classes.", part.line, part.col, rule); - } - } - } - } - } - }); - } - -}); -CSSLint.addRule({ - id: "box-model", - name: "Beware of broken box size", - desc: "Don't use width or height when using padding or border.", - browsers: "All", - init: function(parser, reporter){ - var rule = this, - widthProperties = { - border: 1, - "border-left": 1, - "border-right": 1, - padding: 1, - "padding-left": 1, - "padding-right": 1 - }, - heightProperties = { - border: 1, - "border-bottom": 1, - "border-top": 1, - padding: 1, - "padding-bottom": 1, - "padding-top": 1 - }, - properties, - boxSizing = false; - - function startRule(){ - properties = {}; - boxSizing = false; - } - - function endRule(){ - var prop, value; - - if (!boxSizing) { - if (properties.height){ - for (prop in heightProperties){ - if (heightProperties.hasOwnProperty(prop) && properties[prop]){ - value = properties[prop].value; - if (!(prop == "padding" && value.parts.length === 2 && value.parts[0].value === 0)){ - reporter.report("Using height with " + prop + " can sometimes make elements larger than you expect.", properties[prop].line, properties[prop].col, rule); - } - } - } - } - - if (properties.width){ - for (prop in widthProperties){ - if (widthProperties.hasOwnProperty(prop) && properties[prop]){ - value = properties[prop].value; - - if (!(prop == "padding" && value.parts.length === 2 && value.parts[1].value === 0)){ - reporter.report("Using width with " + prop + " can sometimes make elements larger than you expect.", properties[prop].line, properties[prop].col, rule); - } - } - } - } - } - } - - parser.addListener("startrule", startRule); - parser.addListener("startfontface", startRule); - parser.addListener("startpage", startRule); - parser.addListener("startpagemargin", startRule); - parser.addListener("startkeyframerule", startRule); - - parser.addListener("property", function(event){ - var name = event.property.text.toLowerCase(); - - if (heightProperties[name] || widthProperties[name]){ - if (!/^0\S*$/.test(event.value) && !(name == "border" && event.value == "none")){ - properties[name] = { line: event.property.line, col: event.property.col, value: event.value }; - } - } else { - if (/^(width|height)/i.test(name) && /^(length|percentage)/.test(event.value.parts[0].type)){ - properties[name] = 1; - } else if (name == "box-sizing") { - boxSizing = true; - } - } - - }); - - parser.addListener("endrule", endRule); - parser.addListener("endfontface", endRule); - parser.addListener("endpage", endRule); - parser.addListener("endpagemargin", endRule); - parser.addListener("endkeyframerule", endRule); - } - -}); -CSSLint.addRule({ - id: "box-sizing", - name: "Disallow use of box-sizing", - desc: "The box-sizing properties isn't supported in IE6 and IE7.", - browsers: "IE6, IE7", - tags: ["Compatibility"], - init: function(parser, reporter){ - var rule = this; - - parser.addListener("property", function(event){ - var name = event.property.text.toLowerCase(); - - if (name == "box-sizing"){ - reporter.report("The box-sizing property isn't supported in IE6 and IE7.", event.line, event.col, rule); - } - }); - } - -}); -CSSLint.addRule({ - id: "bulletproof-font-face", - name: "Use the bulletproof @font-face syntax", - desc: "Use the bulletproof @font-face syntax to avoid 404's in old IE (http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax).", - browsers: "All", - init: function(parser, reporter){ - var rule = this, - count = 0, - fontFaceRule = false, - firstSrc = true, - ruleFailed = false, - line, col; - parser.addListener("startfontface", function(event){ - fontFaceRule = true; - }); - - parser.addListener("property", function(event){ - if (!fontFaceRule) { - return; - } - - var propertyName = event.property.toString().toLowerCase(), - value = event.value.toString(); - line = event.line; - col = event.col; - if (propertyName === 'src') { - var regex = /^\s?url\(['"].+\.eot\?.*['"]\)\s*format\(['"]embedded-opentype['"]\).*$/i; - if (!value.match(regex) && firstSrc) { - ruleFailed = true; - firstSrc = false; - } else if (value.match(regex) && !firstSrc) { - ruleFailed = false; - } - } - - - }); - parser.addListener("endfontface", function(event){ - fontFaceRule = false; - - if (ruleFailed) { - reporter.report("@font-face declaration doesn't follow the fontspring bulletproof syntax.", line, col, rule); - } - }); - } -}); -CSSLint.addRule({ - id: "compatible-vendor-prefixes", - name: "Require compatible vendor prefixes", - desc: "Include all compatible vendor prefixes to reach a wider range of users.", - browsers: "All", - init: function (parser, reporter) { - var rule = this, - compatiblePrefixes, - properties, - prop, - variations, - prefixed, - i, - len, - inKeyFrame = false, - arrayPush = Array.prototype.push, - applyTo = []; - compatiblePrefixes = { - "animation" : "webkit moz", - "animation-delay" : "webkit moz", - "animation-direction" : "webkit moz", - "animation-duration" : "webkit moz", - "animation-fill-mode" : "webkit moz", - "animation-iteration-count" : "webkit moz", - "animation-name" : "webkit moz", - "animation-play-state" : "webkit moz", - "animation-timing-function" : "webkit moz", - "appearance" : "webkit moz", - "border-end" : "webkit moz", - "border-end-color" : "webkit moz", - "border-end-style" : "webkit moz", - "border-end-width" : "webkit moz", - "border-image" : "webkit moz o", - "border-radius" : "webkit", - "border-start" : "webkit moz", - "border-start-color" : "webkit moz", - "border-start-style" : "webkit moz", - "border-start-width" : "webkit moz", - "box-align" : "webkit moz ms", - "box-direction" : "webkit moz ms", - "box-flex" : "webkit moz ms", - "box-lines" : "webkit ms", - "box-ordinal-group" : "webkit moz ms", - "box-orient" : "webkit moz ms", - "box-pack" : "webkit moz ms", - "box-sizing" : "webkit moz", - "box-shadow" : "webkit moz", - "column-count" : "webkit moz ms", - "column-gap" : "webkit moz ms", - "column-rule" : "webkit moz ms", - "column-rule-color" : "webkit moz ms", - "column-rule-style" : "webkit moz ms", - "column-rule-width" : "webkit moz ms", - "column-width" : "webkit moz ms", - "hyphens" : "epub moz", - "line-break" : "webkit ms", - "margin-end" : "webkit moz", - "margin-start" : "webkit moz", - "marquee-speed" : "webkit wap", - "marquee-style" : "webkit wap", - "padding-end" : "webkit moz", - "padding-start" : "webkit moz", - "tab-size" : "moz o", - "text-size-adjust" : "webkit ms", - "transform" : "webkit moz ms o", - "transform-origin" : "webkit moz ms o", - "transition" : "webkit moz o", - "transition-delay" : "webkit moz o", - "transition-duration" : "webkit moz o", - "transition-property" : "webkit moz o", - "transition-timing-function" : "webkit moz o", - "user-modify" : "webkit moz", - "user-select" : "webkit moz ms", - "word-break" : "epub ms", - "writing-mode" : "epub ms" - }; - - - for (prop in compatiblePrefixes) { - if (compatiblePrefixes.hasOwnProperty(prop)) { - variations = []; - prefixed = compatiblePrefixes[prop].split(' '); - for (i = 0, len = prefixed.length; i < len; i++) { - variations.push('-' + prefixed[i] + '-' + prop); - } - compatiblePrefixes[prop] = variations; - arrayPush.apply(applyTo, variations); - } - } - - parser.addListener("startrule", function () { - properties = []; - }); - - parser.addListener("startkeyframes", function (event) { - inKeyFrame = event.prefix || true; - }); - - parser.addListener("endkeyframes", function (event) { - inKeyFrame = false; - }); - - parser.addListener("property", function (event) { - var name = event.property; - if (CSSLint.Util.indexOf(applyTo, name.text) > -1) { - if (!inKeyFrame || typeof inKeyFrame != "string" || - name.text.indexOf("-" + inKeyFrame + "-") !== 0) { - properties.push(name); - } - } - }); - - parser.addListener("endrule", function (event) { - if (!properties.length) { - return; - } - - var propertyGroups = {}, - i, - len, - name, - prop, - variations, - value, - full, - actual, - item, - propertiesSpecified; - - for (i = 0, len = properties.length; i < len; i++) { - name = properties[i]; - - for (prop in compatiblePrefixes) { - if (compatiblePrefixes.hasOwnProperty(prop)) { - variations = compatiblePrefixes[prop]; - if (CSSLint.Util.indexOf(variations, name.text) > -1) { - if (!propertyGroups[prop]) { - propertyGroups[prop] = { - full : variations.slice(0), - actual : [], - actualNodes: [] - }; - } - if (CSSLint.Util.indexOf(propertyGroups[prop].actual, name.text) === -1) { - propertyGroups[prop].actual.push(name.text); - propertyGroups[prop].actualNodes.push(name); - } - } - } - } - } - - for (prop in propertyGroups) { - if (propertyGroups.hasOwnProperty(prop)) { - value = propertyGroups[prop]; - full = value.full; - actual = value.actual; - - if (full.length > actual.length) { - for (i = 0, len = full.length; i < len; i++) { - item = full[i]; - if (CSSLint.Util.indexOf(actual, item) === -1) { - propertiesSpecified = (actual.length === 1) ? actual[0] : (actual.length == 2) ? actual.join(" and ") : actual.join(", "); - reporter.report("The property " + item + " is compatible with " + propertiesSpecified + " and should be included as well.", value.actualNodes[0].line, value.actualNodes[0].col, rule); - } - } - - } - } - } - }); - } -}); -CSSLint.addRule({ - id: "display-property-grouping", - name: "Require properties appropriate for display", - desc: "Certain properties shouldn't be used with certain display property values.", - browsers: "All", - init: function(parser, reporter){ - var rule = this; - - var propertiesToCheck = { - display: 1, - "float": "none", - height: 1, - width: 1, - margin: 1, - "margin-left": 1, - "margin-right": 1, - "margin-bottom": 1, - "margin-top": 1, - padding: 1, - "padding-left": 1, - "padding-right": 1, - "padding-bottom": 1, - "padding-top": 1, - "vertical-align": 1 - }, - properties; - - function reportProperty(name, display, msg){ - if (properties[name]){ - if (typeof propertiesToCheck[name] != "string" || properties[name].value.toLowerCase() != propertiesToCheck[name]){ - reporter.report(msg || name + " can't be used with display: " + display + ".", properties[name].line, properties[name].col, rule); - } - } - } - - function startRule(){ - properties = {}; - } - - function endRule(){ - - var display = properties.display ? properties.display.value : null; - if (display){ - switch(display){ - - case "inline": - reportProperty("height", display); - reportProperty("width", display); - reportProperty("margin", display); - reportProperty("margin-top", display); - reportProperty("margin-bottom", display); - reportProperty("float", display, "display:inline has no effect on floated elements (but may be used to fix the IE6 double-margin bug)."); - break; - - case "block": - reportProperty("vertical-align", display); - break; - - case "inline-block": - reportProperty("float", display); - break; - - default: - if (display.indexOf("table-") === 0){ - reportProperty("margin", display); - reportProperty("margin-left", display); - reportProperty("margin-right", display); - reportProperty("margin-top", display); - reportProperty("margin-bottom", display); - reportProperty("float", display); - } - } - } - - } - - parser.addListener("startrule", startRule); - parser.addListener("startfontface", startRule); - parser.addListener("startkeyframerule", startRule); - parser.addListener("startpagemargin", startRule); - parser.addListener("startpage", startRule); - - parser.addListener("property", function(event){ - var name = event.property.text.toLowerCase(); - - if (propertiesToCheck[name]){ - properties[name] = { value: event.value.text, line: event.property.line, col: event.property.col }; - } - }); - - parser.addListener("endrule", endRule); - parser.addListener("endfontface", endRule); - parser.addListener("endkeyframerule", endRule); - parser.addListener("endpagemargin", endRule); - parser.addListener("endpage", endRule); - - } - -}); -CSSLint.addRule({ - id: "duplicate-background-images", - name: "Disallow duplicate background images", - desc: "Every background-image should be unique. Use a common class for e.g. sprites.", - browsers: "All", - init: function(parser, reporter){ - var rule = this, - stack = {}; - - parser.addListener("property", function(event){ - var name = event.property.text, - value = event.value, - i, len; - - if (name.match(/background/i)) { - for (i=0, len=value.parts.length; i < len; i++) { - if (value.parts[i].type == 'uri') { - if (typeof stack[value.parts[i].uri] === 'undefined') { - stack[value.parts[i].uri] = event; - } - else { - reporter.report("Background image '" + value.parts[i].uri + "' was used multiple times, first declared at line " + stack[value.parts[i].uri].line + ", col " + stack[value.parts[i].uri].col + ".", event.line, event.col, rule); - } - } - } - } - }); - } -}); -CSSLint.addRule({ - id: "duplicate-properties", - name: "Disallow duplicate properties", - desc: "Duplicate properties must appear one after the other.", - browsers: "All", - init: function(parser, reporter){ - var rule = this, - properties, - lastProperty; - - function startRule(event){ - properties = {}; - } - - parser.addListener("startrule", startRule); - parser.addListener("startfontface", startRule); - parser.addListener("startpage", startRule); - parser.addListener("startpagemargin", startRule); - parser.addListener("startkeyframerule", startRule); - - parser.addListener("property", function(event){ - var property = event.property, - name = property.text.toLowerCase(); - - if (properties[name] && (lastProperty != name || properties[name] == event.value.text)){ - reporter.report("Duplicate property '" + event.property + "' found.", event.line, event.col, rule); - } - - properties[name] = event.value.text; - lastProperty = name; - - }); - - - } - -}); -CSSLint.addRule({ - id: "empty-rules", - name: "Disallow empty rules", - desc: "Rules without any properties specified should be removed.", - browsers: "All", - init: function(parser, reporter){ - var rule = this, - count = 0; - - parser.addListener("startrule", function(){ - count=0; - }); - - parser.addListener("property", function(){ - count++; - }); - - parser.addListener("endrule", function(event){ - var selectors = event.selectors; - if (count === 0){ - reporter.report("Rule is empty.", selectors[0].line, selectors[0].col, rule); - } - }); - } - -}); -CSSLint.addRule({ - id: "errors", - name: "Parsing Errors", - desc: "This rule looks for recoverable syntax errors.", - browsers: "All", - init: function(parser, reporter){ - var rule = this; - - parser.addListener("error", function(event){ - reporter.error(event.message, event.line, event.col, rule); - }); - - } - -}); -CSSLint.addRule({ - id: "fallback-colors", - name: "Require fallback colors", - desc: "For older browsers that don't support RGBA, HSL, or HSLA, provide a fallback color.", - browsers: "IE6,IE7,IE8", - init: function(parser, reporter){ - var rule = this, - lastProperty, - propertiesToCheck = { - color: 1, - background: 1, - "border-color": 1, - "border-top-color": 1, - "border-right-color": 1, - "border-bottom-color": 1, - "border-left-color": 1, - border: 1, - "border-top": 1, - "border-right": 1, - "border-bottom": 1, - "border-left": 1, - "background-color": 1 - }, - properties; - - function startRule(event){ - properties = {}; - lastProperty = null; - } - - parser.addListener("startrule", startRule); - parser.addListener("startfontface", startRule); - parser.addListener("startpage", startRule); - parser.addListener("startpagemargin", startRule); - parser.addListener("startkeyframerule", startRule); - - parser.addListener("property", function(event){ - var property = event.property, - name = property.text.toLowerCase(), - parts = event.value.parts, - i = 0, - colorType = "", - len = parts.length; - - if(propertiesToCheck[name]){ - while(i < len){ - if (parts[i].type == "color"){ - if ("alpha" in parts[i] || "hue" in parts[i]){ - - if (/([^\)]+)\(/.test(parts[i])){ - colorType = RegExp.$1.toUpperCase(); - } - - if (!lastProperty || (lastProperty.property.text.toLowerCase() != name || lastProperty.colorType != "compat")){ - reporter.report("Fallback " + name + " (hex or RGB) should precede " + colorType + " " + name + ".", event.line, event.col, rule); - } - } else { - event.colorType = "compat"; - } - } - - i++; - } - } - - lastProperty = event; - }); - - } - -}); -CSSLint.addRule({ - id: "floats", - name: "Disallow too many floats", - desc: "This rule tests if the float property is used too many times", - browsers: "All", - init: function(parser, reporter){ - var rule = this; - var count = 0; - parser.addListener("property", function(event){ - if (event.property.text.toLowerCase() == "float" && - event.value.text.toLowerCase() != "none"){ - count++; - } - }); - parser.addListener("endstylesheet", function(){ - reporter.stat("floats", count); - if (count >= 10){ - reporter.rollupWarn("Too many floats (" + count + "), you're probably using them for layout. Consider using a grid system instead.", rule); - } - }); - } - -}); -CSSLint.addRule({ - id: "font-faces", - name: "Don't use too many web fonts", - desc: "Too many different web fonts in the same stylesheet.", - browsers: "All", - init: function(parser, reporter){ - var rule = this, - count = 0; - - - parser.addListener("startfontface", function(){ - count++; - }); - - parser.addListener("endstylesheet", function(){ - if (count > 5){ - reporter.rollupWarn("Too many @font-face declarations (" + count + ").", rule); - } - }); - } - -}); -CSSLint.addRule({ - id: "font-sizes", - name: "Disallow too many font sizes", - desc: "Checks the number of font-size declarations.", - browsers: "All", - init: function(parser, reporter){ - var rule = this, - count = 0; - parser.addListener("property", function(event){ - if (event.property == "font-size"){ - count++; - } - }); - parser.addListener("endstylesheet", function(){ - reporter.stat("font-sizes", count); - if (count >= 10){ - reporter.rollupWarn("Too many font-size declarations (" + count + "), abstraction needed.", rule); - } - }); - } - -}); -CSSLint.addRule({ - id: "gradients", - name: "Require all gradient definitions", - desc: "When using a vendor-prefixed gradient, make sure to use them all.", - browsers: "All", - init: function(parser, reporter){ - var rule = this, - gradients; - - parser.addListener("startrule", function(){ - gradients = { - moz: 0, - webkit: 0, - oldWebkit: 0, - o: 0 - }; - }); - - parser.addListener("property", function(event){ - - if (/\-(moz|o|webkit)(?:\-(?:linear|radial))\-gradient/i.test(event.value)){ - gradients[RegExp.$1] = 1; - } else if (/\-webkit\-gradient/i.test(event.value)){ - gradients.oldWebkit = 1; - } - - }); - - parser.addListener("endrule", function(event){ - var missing = []; - - if (!gradients.moz){ - missing.push("Firefox 3.6+"); - } - - if (!gradients.webkit){ - missing.push("Webkit (Safari 5+, Chrome)"); - } - - if (!gradients.oldWebkit){ - missing.push("Old Webkit (Safari 4+, Chrome)"); - } - - if (!gradients.o){ - missing.push("Opera 11.1+"); - } - - if (missing.length && missing.length < 4){ - reporter.report("Missing vendor-prefixed CSS gradients for " + missing.join(", ") + ".", event.selectors[0].line, event.selectors[0].col, rule); - } - - }); - - } - -}); -CSSLint.addRule({ - id: "ids", - name: "Disallow IDs in selectors", - desc: "Selectors should not contain IDs.", - browsers: "All", - init: function(parser, reporter){ - var rule = this; - parser.addListener("startrule", function(event){ - var selectors = event.selectors, - selector, - part, - modifier, - idCount, - i, j, k; - - for (i=0; i < selectors.length; i++){ - selector = selectors[i]; - idCount = 0; - - for (j=0; j < selector.parts.length; j++){ - part = selector.parts[j]; - if (part.type == parser.SELECTOR_PART_TYPE){ - for (k=0; k < part.modifiers.length; k++){ - modifier = part.modifiers[k]; - if (modifier.type == "id"){ - idCount++; - } - } - } - } - - if (idCount == 1){ - reporter.report("Don't use IDs in selectors.", selector.line, selector.col, rule); - } else if (idCount > 1){ - reporter.report(idCount + " IDs in the selector, really?", selector.line, selector.col, rule); - } - } - - }); - } - -}); -CSSLint.addRule({ - id: "import", - name: "Disallow @import", - desc: "Don't use @import, use <link> instead.", - browsers: "All", - init: function(parser, reporter){ - var rule = this; - - parser.addListener("import", function(event){ - reporter.report("@import prevents parallel downloads, use <link> instead.", event.line, event.col, rule); - }); - - } - -}); -CSSLint.addRule({ - id: "important", - name: "Disallow !important", - desc: "Be careful when using !important declaration", - browsers: "All", - init: function(parser, reporter){ - var rule = this, - count = 0; - parser.addListener("property", function(event){ - if (event.important === true){ - count++; - reporter.report("Use of !important", event.line, event.col, rule); - } - }); - parser.addListener("endstylesheet", function(){ - reporter.stat("important", count); - if (count >= 10){ - reporter.rollupWarn("Too many !important declarations (" + count + "), try to use less than 10 to avoid specificity issues.", rule); - } - }); - } - -}); -CSSLint.addRule({ - id: "known-properties", - name: "Require use of known properties", - desc: "Properties should be known (listed in CSS3 specification) or be a vendor-prefixed property.", - browsers: "All", - init: function(parser, reporter){ - var rule = this; - - parser.addListener("property", function(event){ - var name = event.property.text.toLowerCase(); - if (event.invalid) { - reporter.report(event.invalid.message, event.line, event.col, rule); - } - - }); - } - -}); -CSSLint.addRule({ - id: "outline-none", - name: "Disallow outline: none", - desc: "Use of outline: none or outline: 0 should be limited to :focus rules.", - browsers: "All", - tags: ["Accessibility"], - init: function(parser, reporter){ - var rule = this, - lastRule; - - function startRule(event){ - if (event.selectors){ - lastRule = { - line: event.line, - col: event.col, - selectors: event.selectors, - propCount: 0, - outline: false - }; - } else { - lastRule = null; - } - } - - function endRule(event){ - if (lastRule){ - if (lastRule.outline){ - if (lastRule.selectors.toString().toLowerCase().indexOf(":focus") == -1){ - reporter.report("Outlines should only be modified using :focus.", lastRule.line, lastRule.col, rule); - } else if (lastRule.propCount == 1) { - reporter.report("Outlines shouldn't be hidden unless other visual changes are made.", lastRule.line, lastRule.col, rule); - } - } - } - } - - parser.addListener("startrule", startRule); - parser.addListener("startfontface", startRule); - parser.addListener("startpage", startRule); - parser.addListener("startpagemargin", startRule); - parser.addListener("startkeyframerule", startRule); - - parser.addListener("property", function(event){ - var name = event.property.text.toLowerCase(), - value = event.value; - - if (lastRule){ - lastRule.propCount++; - if (name == "outline" && (value == "none" || value == "0")){ - lastRule.outline = true; - } - } - - }); - - parser.addListener("endrule", endRule); - parser.addListener("endfontface", endRule); - parser.addListener("endpage", endRule); - parser.addListener("endpagemargin", endRule); - parser.addListener("endkeyframerule", endRule); - - } - -}); -CSSLint.addRule({ - id: "overqualified-elements", - name: "Disallow overqualified elements", - desc: "Don't use classes or IDs with elements (a.foo or a#foo).", - browsers: "All", - init: function(parser, reporter){ - var rule = this, - classes = {}; - - parser.addListener("startrule", function(event){ - var selectors = event.selectors, - selector, - part, - modifier, - i, j, k; - - for (i=0; i < selectors.length; i++){ - selector = selectors[i]; - - for (j=0; j < selector.parts.length; j++){ - part = selector.parts[j]; - if (part.type == parser.SELECTOR_PART_TYPE){ - for (k=0; k < part.modifiers.length; k++){ - modifier = part.modifiers[k]; - if (part.elementName && modifier.type == "id"){ - reporter.report("Element (" + part + ") is overqualified, just use " + modifier + " without element name.", part.line, part.col, rule); - } else if (modifier.type == "class"){ - - if (!classes[modifier]){ - classes[modifier] = []; - } - classes[modifier].push({ modifier: modifier, part: part }); - } - } - } - } - } - }); - - parser.addListener("endstylesheet", function(){ - - var prop; - for (prop in classes){ - if (classes.hasOwnProperty(prop)){ - if (classes[prop].length == 1 && classes[prop][0].part.elementName){ - reporter.report("Element (" + classes[prop][0].part + ") is overqualified, just use " + classes[prop][0].modifier + " without element name.", classes[prop][0].part.line, classes[prop][0].part.col, rule); - } - } - } - }); - } - -}); -CSSLint.addRule({ - id: "qualified-headings", - name: "Disallow qualified headings", - desc: "Headings should not be qualified (namespaced).", - browsers: "All", - init: function(parser, reporter){ - var rule = this; - - parser.addListener("startrule", function(event){ - var selectors = event.selectors, - selector, - part, - i, j; - - for (i=0; i < selectors.length; i++){ - selector = selectors[i]; - - for (j=0; j < selector.parts.length; j++){ - part = selector.parts[j]; - if (part.type == parser.SELECTOR_PART_TYPE){ - if (part.elementName && /h[1-6]/.test(part.elementName.toString()) && j > 0){ - reporter.report("Heading (" + part.elementName + ") should not be qualified.", part.line, part.col, rule); - } - } - } - } - }); - } - -}); -CSSLint.addRule({ - id: "regex-selectors", - name: "Disallow selectors that look like regexs", - desc: "Selectors that look like regular expressions are slow and should be avoided.", - browsers: "All", - init: function(parser, reporter){ - var rule = this; - - parser.addListener("startrule", function(event){ - var selectors = event.selectors, - selector, - part, - modifier, - i, j, k; - - for (i=0; i < selectors.length; i++){ - selector = selectors[i]; - for (j=0; j < selector.parts.length; j++){ - part = selector.parts[j]; - if (part.type == parser.SELECTOR_PART_TYPE){ - for (k=0; k < part.modifiers.length; k++){ - modifier = part.modifiers[k]; - if (modifier.type == "attribute"){ - if (/([\~\|\^\$\*]=)/.test(modifier)){ - reporter.report("Attribute selectors with " + RegExp.$1 + " are slow!", modifier.line, modifier.col, rule); - } - } - - } - } - } - } - }); - } - -}); -CSSLint.addRule({ - id: "rules-count", - name: "Rules Count", - desc: "Track how many rules there are.", - browsers: "All", - init: function(parser, reporter){ - var rule = this, - count = 0; - parser.addListener("startrule", function(){ - count++; - }); - - parser.addListener("endstylesheet", function(){ - reporter.stat("rule-count", count); - }); - } - -}); -CSSLint.addRule({ - id: "selector-max-approaching", - name: "Warn when approaching the 4095 selector limit for IE", - desc: "Will warn when selector count is >= 3800 selectors.", - browsers: "IE", - init: function(parser, reporter) { - var rule = this, count = 0; - - parser.addListener('startrule', function(event) { - count += event.selectors.length; - }); - - parser.addListener("endstylesheet", function() { - if (count >= 3800) { - reporter.report("You have " + count + " selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.",0,0,rule); - } - }); - } - -}); -CSSLint.addRule({ - id: "selector-max", - name: "Error when past the 4095 selector limit for IE", - desc: "Will error when selector count is > 4095.", - browsers: "IE", - init: function(parser, reporter){ - var rule = this, count = 0; - - parser.addListener('startrule',function(event) { - count += event.selectors.length; - }); - - parser.addListener("endstylesheet", function() { - if (count > 4095) { - reporter.report("You have " + count + " selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.",0,0,rule); - } - }); - } - -}); -CSSLint.addRule({ - id: "shorthand", - name: "Require shorthand properties", - desc: "Use shorthand properties where possible.", - browsers: "All", - init: function(parser, reporter){ - var rule = this, - prop, i, len, - propertiesToCheck = {}, - properties, - mapping = { - "margin": [ - "margin-top", - "margin-bottom", - "margin-left", - "margin-right" - ], - "padding": [ - "padding-top", - "padding-bottom", - "padding-left", - "padding-right" - ] - }; - for (prop in mapping){ - if (mapping.hasOwnProperty(prop)){ - for (i=0, len=mapping[prop].length; i < len; i++){ - propertiesToCheck[mapping[prop][i]] = prop; - } - } - } - - function startRule(event){ - properties = {}; - } - function endRule(event){ - - var prop, i, len, total; - for (prop in mapping){ - if (mapping.hasOwnProperty(prop)){ - total=0; - - for (i=0, len=mapping[prop].length; i < len; i++){ - total += properties[mapping[prop][i]] ? 1 : 0; - } - - if (total == mapping[prop].length){ - reporter.report("The properties " + mapping[prop].join(", ") + " can be replaced by " + prop + ".", event.line, event.col, rule); - } - } - } - } - - parser.addListener("startrule", startRule); - parser.addListener("startfontface", startRule); - parser.addListener("property", function(event){ - var name = event.property.toString().toLowerCase(), - value = event.value.parts[0].value; - - if (propertiesToCheck[name]){ - properties[name] = 1; - } - }); - - parser.addListener("endrule", endRule); - parser.addListener("endfontface", endRule); - - } - -}); -CSSLint.addRule({ - id: "star-property-hack", - name: "Disallow properties with a star prefix", - desc: "Checks for the star property hack (targets IE6/7)", - browsers: "All", - init: function(parser, reporter){ - var rule = this; - parser.addListener("property", function(event){ - var property = event.property; - - if (property.hack == "*") { - reporter.report("Property with star prefix found.", event.property.line, event.property.col, rule); - } - }); - } -}); -CSSLint.addRule({ - id: "text-indent", - name: "Disallow negative text-indent", - desc: "Checks for text indent less than -99px", - browsers: "All", - init: function(parser, reporter){ - var rule = this, - textIndent, - direction; - - - function startRule(event){ - textIndent = false; - direction = "inherit"; - } - function endRule(event){ - if (textIndent && direction != "ltr"){ - reporter.report("Negative text-indent doesn't work well with RTL. If you use text-indent for image replacement explicitly set direction for that item to ltr.", textIndent.line, textIndent.col, rule); - } - } - - parser.addListener("startrule", startRule); - parser.addListener("startfontface", startRule); - parser.addListener("property", function(event){ - var name = event.property.toString().toLowerCase(), - value = event.value; - - if (name == "text-indent" && value.parts[0].value < -99){ - textIndent = event.property; - } else if (name == "direction" && value == "ltr"){ - direction = "ltr"; - } - }); - - parser.addListener("endrule", endRule); - parser.addListener("endfontface", endRule); - - } - -}); -CSSLint.addRule({ - id: "underscore-property-hack", - name: "Disallow properties with an underscore prefix", - desc: "Checks for the underscore property hack (targets IE6)", - browsers: "All", - init: function(parser, reporter){ - var rule = this; - parser.addListener("property", function(event){ - var property = event.property; - - if (property.hack == "_") { - reporter.report("Property with underscore prefix found.", event.property.line, event.property.col, rule); - } - }); - } -}); -CSSLint.addRule({ - id: "unique-headings", - name: "Headings should only be defined once", - desc: "Headings should be defined only once.", - browsers: "All", - init: function(parser, reporter){ - var rule = this; - - var headings = { - h1: 0, - h2: 0, - h3: 0, - h4: 0, - h5: 0, - h6: 0 - }; - - parser.addListener("startrule", function(event){ - var selectors = event.selectors, - selector, - part, - pseudo, - i, j; - - for (i=0; i < selectors.length; i++){ - selector = selectors[i]; - part = selector.parts[selector.parts.length-1]; - - if (part.elementName && /(h[1-6])/i.test(part.elementName.toString())){ - - for (j=0; j < part.modifiers.length; j++){ - if (part.modifiers[j].type == "pseudo"){ - pseudo = true; - break; - } - } - - if (!pseudo){ - headings[RegExp.$1]++; - if (headings[RegExp.$1] > 1) { - reporter.report("Heading (" + part.elementName + ") has already been defined.", part.line, part.col, rule); - } - } - } - } - }); - - parser.addListener("endstylesheet", function(event){ - var prop, - messages = []; - - for (prop in headings){ - if (headings.hasOwnProperty(prop)){ - if (headings[prop] > 1){ - messages.push(headings[prop] + " " + prop + "s"); - } - } - } - - if (messages.length){ - reporter.rollupWarn("You have " + messages.join(", ") + " defined in this stylesheet.", rule); - } - }); - } - -}); -CSSLint.addRule({ - id: "universal-selector", - name: "Disallow universal selector", - desc: "The universal selector (*) is known to be slow.", - browsers: "All", - init: function(parser, reporter){ - var rule = this; - - parser.addListener("startrule", function(event){ - var selectors = event.selectors, - selector, - part, - modifier, - i, j, k; - - for (i=0; i < selectors.length; i++){ - selector = selectors[i]; - - part = selector.parts[selector.parts.length-1]; - if (part.elementName == "*"){ - reporter.report(rule.desc, part.line, part.col, rule); - } - } - }); - } - -}); -CSSLint.addRule({ - id: "unqualified-attributes", - name: "Disallow unqualified attribute selectors", - desc: "Unqualified attribute selectors are known to be slow.", - browsers: "All", - init: function(parser, reporter){ - var rule = this; - - parser.addListener("startrule", function(event){ - - var selectors = event.selectors, - selector, - part, - modifier, - i, j, k; - - for (i=0; i < selectors.length; i++){ - selector = selectors[i]; - - part = selector.parts[selector.parts.length-1]; - if (part.type == parser.SELECTOR_PART_TYPE){ - for (k=0; k < part.modifiers.length; k++){ - modifier = part.modifiers[k]; - if (modifier.type == "attribute" && (!part.elementName || part.elementName == "*")){ - reporter.report(rule.desc, part.line, part.col, rule); - } - } - } - - } - }); - } - -}); -CSSLint.addRule({ - id: "vendor-prefix", - name: "Require standard property with vendor prefix", - desc: "When using a vendor-prefixed property, make sure to include the standard one.", - browsers: "All", - init: function(parser, reporter){ - var rule = this, - properties, - num, - propertiesToCheck = { - "-webkit-border-radius": "border-radius", - "-webkit-border-top-left-radius": "border-top-left-radius", - "-webkit-border-top-right-radius": "border-top-right-radius", - "-webkit-border-bottom-left-radius": "border-bottom-left-radius", - "-webkit-border-bottom-right-radius": "border-bottom-right-radius", - - "-o-border-radius": "border-radius", - "-o-border-top-left-radius": "border-top-left-radius", - "-o-border-top-right-radius": "border-top-right-radius", - "-o-border-bottom-left-radius": "border-bottom-left-radius", - "-o-border-bottom-right-radius": "border-bottom-right-radius", - - "-moz-border-radius": "border-radius", - "-moz-border-radius-topleft": "border-top-left-radius", - "-moz-border-radius-topright": "border-top-right-radius", - "-moz-border-radius-bottomleft": "border-bottom-left-radius", - "-moz-border-radius-bottomright": "border-bottom-right-radius", - - "-moz-column-count": "column-count", - "-webkit-column-count": "column-count", - - "-moz-column-gap": "column-gap", - "-webkit-column-gap": "column-gap", - - "-moz-column-rule": "column-rule", - "-webkit-column-rule": "column-rule", - - "-moz-column-rule-style": "column-rule-style", - "-webkit-column-rule-style": "column-rule-style", - - "-moz-column-rule-color": "column-rule-color", - "-webkit-column-rule-color": "column-rule-color", - - "-moz-column-rule-width": "column-rule-width", - "-webkit-column-rule-width": "column-rule-width", - - "-moz-column-width": "column-width", - "-webkit-column-width": "column-width", - - "-webkit-column-span": "column-span", - "-webkit-columns": "columns", - - "-moz-box-shadow": "box-shadow", - "-webkit-box-shadow": "box-shadow", - - "-moz-transform" : "transform", - "-webkit-transform" : "transform", - "-o-transform" : "transform", - "-ms-transform" : "transform", - - "-moz-transform-origin" : "transform-origin", - "-webkit-transform-origin" : "transform-origin", - "-o-transform-origin" : "transform-origin", - "-ms-transform-origin" : "transform-origin", - - "-moz-box-sizing" : "box-sizing", - "-webkit-box-sizing" : "box-sizing", - - "-moz-user-select" : "user-select", - "-khtml-user-select" : "user-select", - "-webkit-user-select" : "user-select" - }; - function startRule(){ - properties = {}; - num=1; - } - function endRule(event){ - var prop, - i, len, - standard, - needed, - actual, - needsStandard = []; - - for (prop in properties){ - if (propertiesToCheck[prop]){ - needsStandard.push({ actual: prop, needed: propertiesToCheck[prop]}); - } - } - - for (i=0, len=needsStandard.length; i < len; i++){ - needed = needsStandard[i].needed; - actual = needsStandard[i].actual; - - if (!properties[needed]){ - reporter.report("Missing standard property '" + needed + "' to go along with '" + actual + "'.", properties[actual][0].name.line, properties[actual][0].name.col, rule); - } else { - if (properties[needed][0].pos < properties[actual][0].pos){ - reporter.report("Standard property '" + needed + "' should come after vendor-prefixed property '" + actual + "'.", properties[actual][0].name.line, properties[actual][0].name.col, rule); - } - } - } - - } - - parser.addListener("startrule", startRule); - parser.addListener("startfontface", startRule); - parser.addListener("startpage", startRule); - parser.addListener("startpagemargin", startRule); - parser.addListener("startkeyframerule", startRule); - - parser.addListener("property", function(event){ - var name = event.property.text.toLowerCase(); - - if (!properties[name]){ - properties[name] = []; - } - - properties[name].push({ name: event.property, value : event.value, pos:num++ }); - }); - - parser.addListener("endrule", endRule); - parser.addListener("endfontface", endRule); - parser.addListener("endpage", endRule); - parser.addListener("endpagemargin", endRule); - parser.addListener("endkeyframerule", endRule); - } - -}); -CSSLint.addRule({ - id: "zero-units", - name: "Disallow units for 0 values", - desc: "You don't need to specify units when a value is 0.", - browsers: "All", - init: function(parser, reporter){ - var rule = this; - parser.addListener("property", function(event){ - var parts = event.value.parts, - i = 0, - len = parts.length; - - while(i < len){ - if ((parts[i].units || parts[i].type == "percentage") && parts[i].value === 0 && parts[i].type != "time"){ - reporter.report("Values of 0 shouldn't have units specified.", parts[i].line, parts[i].col, rule); - } - i++; - } - - }); - - } - -}); -(function() { - var xmlEscape = function(str) { - if (!str || str.constructor !== String) { - return ""; - } - - return str.replace(/[\"&><]/g, function(match) { - switch (match) { - case "\"": - return """; - case "&": - return "&"; - case "<": - return "<"; - case ">": - return ">"; - } - }); - }; - - CSSLint.addFormatter({ - id: "checkstyle-xml", - name: "Checkstyle XML format", - startFormat: function(){ - return "<?xml version=\"1.0\" encoding=\"utf-8\"?><checkstyle>"; - }, - endFormat: function(){ - return "</checkstyle>"; - }, - readError: function(filename, message) { - return "<file name=\"" + xmlEscape(filename) + "\"><error line=\"0\" column=\"0\" severty=\"error\" message=\"" + xmlEscape(message) + "\"></error></file>"; - }, - formatResults: function(results, filename, options) { - var messages = results.messages, - output = []; - var generateSource = function(rule) { - if (!rule || !('name' in rule)) { - return ""; - } - return 'net.csslint.' + rule.name.replace(/\s/g,''); - }; - - - - if (messages.length > 0) { - output.push("<file name=\""+filename+"\">"); - CSSLint.Util.forEach(messages, function (message, i) { - if (!message.rollup) { - output.push("<error line=\"" + message.line + "\" column=\"" + message.col + "\" severity=\"" + message.type + "\"" + - " message=\"" + xmlEscape(message.message) + "\" source=\"" + generateSource(message.rule) +"\"/>"); - } - }); - output.push("</file>"); - } - - return output.join(""); - } - }); - -}()); -CSSLint.addFormatter({ - id: "compact", - name: "Compact, 'porcelain' format", - startFormat: function() { - return ""; - }, - endFormat: function() { - return ""; - }, - formatResults: function(results, filename, options) { - var messages = results.messages, - output = ""; - options = options || {}; - var capitalize = function(str) { - return str.charAt(0).toUpperCase() + str.slice(1); - }; - - if (messages.length === 0) { - return options.quiet ? "" : filename + ": Lint Free!"; - } - - CSSLint.Util.forEach(messages, function(message, i) { - if (message.rollup) { - output += filename + ": " + capitalize(message.type) + " - " + message.message + "\n"; - } else { - output += filename + ": " + "line " + message.line + - ", col " + message.col + ", " + capitalize(message.type) + " - " + message.message + "\n"; - } - }); - - return output; - } -}); -CSSLint.addFormatter({ - id: "csslint-xml", - name: "CSSLint XML format", - startFormat: function(){ - return "<?xml version=\"1.0\" encoding=\"utf-8\"?><csslint>"; - }, - endFormat: function(){ - return "</csslint>"; - }, - formatResults: function(results, filename, options) { - var messages = results.messages, - output = []; - var escapeSpecialCharacters = function(str) { - if (!str || str.constructor !== String) { - return ""; - } - return str.replace(/\"/g, "'").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"); - }; - - if (messages.length > 0) { - output.push("<file name=\""+filename+"\">"); - CSSLint.Util.forEach(messages, function (message, i) { - if (message.rollup) { - output.push("<issue severity=\"" + message.type + "\" reason=\"" + escapeSpecialCharacters(message.message) + "\" evidence=\"" + escapeSpecialCharacters(message.evidence) + "\"/>"); - } else { - output.push("<issue line=\"" + message.line + "\" char=\"" + message.col + "\" severity=\"" + message.type + "\"" + - " reason=\"" + escapeSpecialCharacters(message.message) + "\" evidence=\"" + escapeSpecialCharacters(message.evidence) + "\"/>"); - } - }); - output.push("</file>"); - } - - return output.join(""); - } -}); -CSSLint.addFormatter({ - id: "junit-xml", - name: "JUNIT XML format", - startFormat: function(){ - return "<?xml version=\"1.0\" encoding=\"utf-8\"?><testsuites>"; - }, - endFormat: function() { - return "</testsuites>"; - }, - formatResults: function(results, filename, options) { - - var messages = results.messages, - output = [], - tests = { - 'error': 0, - 'failure': 0 - }; - var generateSource = function(rule) { - if (!rule || !('name' in rule)) { - return ""; - } - return 'net.csslint.' + rule.name.replace(/\s/g,''); - }; - var escapeSpecialCharacters = function(str) { - - if (!str || str.constructor !== String) { - return ""; - } - - return str.replace(/\"/g, "'").replace(/</g, "<").replace(/>/g, ">"); - - }; - - if (messages.length > 0) { - - messages.forEach(function (message, i) { - var type = message.type === 'warning' ? 'error' : message.type; - if (!message.rollup) { - output.push("<testcase time=\"0\" name=\"" + generateSource(message.rule) + "\">"); - output.push("<" + type + " message=\"" + escapeSpecialCharacters(message.message) + "\"><![CDATA[" + message.line + ':' + message.col + ':' + escapeSpecialCharacters(message.evidence) + "]]></" + type + ">"); - output.push("</testcase>"); - - tests[type] += 1; - - } - - }); - - output.unshift("<testsuite time=\"0\" tests=\"" + messages.length + "\" skipped=\"0\" errors=\"" + tests.error + "\" failures=\"" + tests.failure + "\" package=\"net.csslint\" name=\"" + filename + "\">"); - output.push("</testsuite>"); - - } - - return output.join(""); - - } -}); -CSSLint.addFormatter({ - id: "lint-xml", - name: "Lint XML format", - startFormat: function(){ - return "<?xml version=\"1.0\" encoding=\"utf-8\"?><lint>"; - }, - endFormat: function(){ - return "</lint>"; - }, - formatResults: function(results, filename, options) { - var messages = results.messages, - output = []; - var escapeSpecialCharacters = function(str) { - if (!str || str.constructor !== String) { - return ""; - } - return str.replace(/\"/g, "'").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"); - }; - - if (messages.length > 0) { - - output.push("<file name=\""+filename+"\">"); - CSSLint.Util.forEach(messages, function (message, i) { - if (message.rollup) { - output.push("<issue severity=\"" + message.type + "\" reason=\"" + escapeSpecialCharacters(message.message) + "\" evidence=\"" + escapeSpecialCharacters(message.evidence) + "\"/>"); - } else { - output.push("<issue line=\"" + message.line + "\" char=\"" + message.col + "\" severity=\"" + message.type + "\"" + - " reason=\"" + escapeSpecialCharacters(message.message) + "\" evidence=\"" + escapeSpecialCharacters(message.evidence) + "\"/>"); - } - }); - output.push("</file>"); - } - - return output.join(""); - } -}); -CSSLint.addFormatter({ - id: "text", - name: "Plain Text", - startFormat: function() { - return ""; - }, - endFormat: function() { - return ""; - }, - formatResults: function(results, filename, options) { - var messages = results.messages, - output = ""; - options = options || {}; - - if (messages.length === 0) { - return options.quiet ? "" : "\n\ncsslint: No errors in " + filename + "."; - } - - output = "\n\ncsslint: There are " + messages.length + " problems in " + filename + "."; - var pos = filename.lastIndexOf("/"), - shortFilename = filename; - - if (pos === -1){ - pos = filename.lastIndexOf("\\"); - } - if (pos > -1){ - shortFilename = filename.substring(pos+1); - } - - CSSLint.Util.forEach(messages, function (message, i) { - output = output + "\n\n" + shortFilename; - if (message.rollup) { - output += "\n" + (i+1) + ": " + message.type; - output += "\n" + message.message; - } else { - output += "\n" + (i+1) + ": " + message.type + " at line " + message.line + ", col " + message.col; - output += "\n" + message.message; - output += "\n" + message.evidence; - } - }); - - return output; - } -}); - -exports.CSSLint = CSSLint; - -});
\ No newline at end of file diff --git a/js/vendor/ace/src-noconflict/worker-javascript.js b/js/vendor/ace/src-noconflict/worker-javascript.js deleted file mode 100644 index 8beac73..0000000 --- a/js/vendor/ace/src-noconflict/worker-javascript.js +++ /dev/null @@ -1,9980 +0,0 @@ -"no use strict"; -;(function(window) { -if (typeof window.window != "undefined" && window.document) { - return; -} - -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.normalizeModule = function(parentId, moduleName) { - if (moduleName.indexOf("!") !== -1) { - var chunks = moduleName.split("!"); - return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]); - } - if (moduleName.charAt(0) == ".") { - var base = parentId.split("/").slice(0, -1).join("/"); - moduleName = base + "/" + moduleName; - - while(moduleName.indexOf(".") !== -1 && previous != moduleName) { - var previous = moduleName; - moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, ""); - } - } - - return moduleName; -}; - -window.require = function(parentId, id) { - if (!id) { - id = parentId - parentId = null; - } - if (!id.charAt) - throw new Error("worker.js require() accepts only (parentId, id) as arguments"); - - id = normalizeModule(parentId, id); - - var module = require.modules[id]; - if (module) { - if (!module.initialized) { - module.initialized = true; - module.exports = module.factory().exports; - } - return module.exports; - } - - var chunks = id.split("/"); - chunks[0] = require.tlns[chunks[0]] || chunks[0]; - var path = chunks.join("/") + ".js"; - - require.id = id; - importScripts(path); - return require(parentId, id); -}; - -require.modules = {}; -require.tlns = {}; - -window.define = function(id, deps, factory) { - if (arguments.length == 2) { - factory = deps; - if (typeof id != "string") { - deps = id; - id = require.id; - } - } else if (arguments.length == 1) { - factory = id; - id = require.id; - } - - if (id.indexOf("text!") === 0) - return; - - var req = function(deps, factory) { - return require(id, deps, factory); - }; - - require.modules[id] = { - exports: {}, - factory: function() { - var module = this; - var returnExports = factory(req, module.exports, module); - if (returnExports) - module.exports = returnExports; - return module; - } - }; -}; - -window.initBaseUrls = function initBaseUrls(topLevelNamespaces) { - require.tlns = topLevelNamespaces; -} - -window.initSender = function initSender() { - - var EventEmitter = require("ace/lib/event_emitter").EventEmitter; - var oop = require("ace/lib/oop"); - - var Sender = function() {}; - - (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); - - return new Sender(); -} - -window.main = null; -window.sender = null; - -window.onmessage = function(e) { - var msg = e.data; - if (msg.command) { - if (main[msg.command]) - main[msg.command].apply(main, msg.args); - else - throw new Error("Unknown command:" + msg.command); - } - else if (msg.init) { - initBaseUrls(msg.tlns); - require("ace/lib/es5-shim"); - sender = initSender(); - var clazz = require(msg.module)[msg.classname]; - main = new clazz(sender); - } - else if (msg.event && sender) { - sender._emit(msg.event, msg.data); - } -}; -})(this); - -ace.define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) { - - -var EventEmitter = {}; -var stopPropagation = function() { this.propagationStopped = true; }; -var preventDefault = function() { this.defaultPrevented = true; }; - -EventEmitter._emit = -EventEmitter._dispatchEvent = function(eventName, e) { - this._eventRegistry || (this._eventRegistry = {}); - this._defaultHandlers || (this._defaultHandlers = {}); - - var listeners = this._eventRegistry[eventName] || []; - var defaultHandler = this._defaultHandlers[eventName]; - if (!listeners.length && !defaultHandler) - return; - - if (typeof e != "object" || !e) - e = {}; - - if (!e.type) - e.type = eventName; - if (!e.stopPropagation) - e.stopPropagation = stopPropagation; - if (!e.preventDefault) - e.preventDefault = preventDefault; - - for (var i=0; i<listeners.length; i++) { - listeners[i](e, this); - if (e.propagationStopped) - break; - } - - if (defaultHandler && !e.defaultPrevented) - return defaultHandler(e, this); -}; - - -EventEmitter._signal = function(eventName, e) { - var listeners = (this._eventRegistry || {})[eventName]; - if (!listeners) - return; - - for (var i=0; i<listeners.length; 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_: {}}; - - if (handlers[eventName]) { - var old = handlers[eventName]; - var disabled = handlers._disabled_[eventName]; - if (!disabled) - handlers._disabled_[eventName] = disabled = []; - disabled.push(old); - var i = disabled.indexOf(callback); - if (i != -1) - disabled.splice(i, 1); - } - handlers[eventName] = callback; -}; -EventEmitter.removeDefaultHandler = function(eventName, callback) { - var handlers = this._defaultHandlers - if (!handlers) - return; - var disabled = handlers._disabled_[eventName]; - - if (handlers[eventName] == callback) { - var old = handlers[eventName]; - if (disabled) - this.setDefaultHandler(eventName, disabled.pop()); - } else if (disabled) { - var i = disabled.indexOf(callback); - if (i != -1) - disabled.splice(i, 1); - } -}; - -EventEmitter.on = -EventEmitter.addEventListener = function(eventName, callback, capturing) { - this._eventRegistry = this._eventRegistry || {}; - - var listeners = this._eventRegistry[eventName]; - if (!listeners) - listeners = this._eventRegistry[eventName] = []; - - if (listeners.indexOf(callback) == -1) - listeners[capturing ? "unshift" : "push"](callback); - return callback; -}; - -EventEmitter.off = -EventEmitter.removeListener = -EventEmitter.removeEventListener = function(eventName, callback) { - this._eventRegistry = this._eventRegistry || {}; - - var listeners = this._eventRegistry[eventName]; - if (!listeners) - return; - - var index = listeners.indexOf(callback); - if (index !== -1) - listeners.splice(index, 1); -}; - -EventEmitter.removeAllListeners = function(eventName) { - if (this._eventRegistry) this._eventRegistry[eventName] = []; -}; - -exports.EventEmitter = EventEmitter; - -}); - -ace.define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) { - - -exports.inherits = (function() { - var tempCtor = function() {}; - return function(ctor, superCtor) { - tempCtor.prototype = superCtor.prototype; - ctor.super_ = superCtor.prototype; - ctor.prototype = new tempCtor(); - ctor.prototype.constructor = ctor; - }; -}()); - -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/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) { - -function Empty() {} - -if (!Function.prototype.bind) { - Function.prototype.bind = function bind(that) { // .length is 1 - var target = this; - if (typeof target != "function") { - throw new TypeError("Function.prototype.bind called on incompatible " + target); - } - var args = slice.call(arguments, 1); // for normal call - var bound = function () { - - if (this instanceof bound) { - - var result = target.apply( - this, - args.concat(slice.call(arguments)) - ); - if (Object(result) === result) { - return result; - } - return this; - - } else { - return target.apply( - that, - args.concat(slice.call(arguments)) - ); - - } - - }; - if(target.prototype) { - Empty.prototype = target.prototype; - bound.prototype = new Empty(); - Empty.prototype = null; - } - return bound; - }; -} -var call = Function.prototype.call; -var prototypeOfArray = Array.prototype; -var prototypeOfObject = Object.prototype; -var slice = prototypeOfArray.slice; -var _toString = call.bind(prototypeOfObject.toString); -var owns = call.bind(prototypeOfObject.hasOwnProperty); -var defineGetter; -var defineSetter; -var lookupGetter; -var lookupSetter; -var supportsAccessors; -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__); -} -if ([1,2].splice(0).length != 2) { - if(function() { // test IE < 9 to splice bug - see issue #138 - function makeArray(l) { - var a = new Array(l+2); - a[0] = a[1] = 0; - return a; - } - var array = [], lengthBefore; - - array.splice.apply(array, makeArray(20)); - array.splice.apply(array, makeArray(26)); - - lengthBefore = array.length; //46 - array.splice(5, 0, "XXX"); // add one element - - lengthBefore + 1 == array.length - - if (lengthBefore + 1 == array.length) { - return true;// has right splice implementation without bugs - } - }()) {//IE 6/7 - var array_splice = Array.prototype.splice; - Array.prototype.splice = function(start, deleteCount) { - if (!arguments.length) { - return []; - } else { - return array_splice.apply(this, [ - start === void 0 ? 0 : start, - deleteCount === void 0 ? (this.length - start) : deleteCount - ].concat(slice.call(arguments, 2))) - } - }; - } else {//IE8 - Array.prototype.splice = function(pos, removeCount){ - var length = this.length; - if (pos > 0) { - if (pos > length) - pos = length; - } else if (pos == void 0) { - pos = 0; - } else if (pos < 0) { - pos = Math.max(length + pos, 0); - } - - if (!(pos+removeCount < length)) - removeCount = length - pos; - - var removed = this.slice(pos, pos+removeCount); - var insert = slice.call(arguments, 2); - var add = insert.length; - if (pos === length) { - if (add) { - this.push.apply(this, insert); - } - } else { - var remove = Math.min(removeCount, length - pos); - var tailOldPos = pos + remove; - var tailNewPos = tailOldPos + add - remove; - var tailCount = length - tailOldPos; - var lengthAfterRemove = length - remove; - - if (tailNewPos < tailOldPos) { // case A - for (var i = 0; i < tailCount; ++i) { - this[tailNewPos+i] = this[tailOldPos+i]; - } - } else if (tailNewPos > tailOldPos) { // case B - for (i = tailCount; i--; ) { - this[tailNewPos+i] = this[tailOldPos+i]; - } - } // else, add == remove (nothing to do) - - if (add && pos === lengthAfterRemove) { - this.length = lengthAfterRemove; // truncate array - this.push.apply(this, insert); - } else { - this.length = lengthAfterRemove + add; // reserves space - for (i = 0; i < add; ++i) { - this[pos+i] = insert[i]; - } - } - } - return removed; - }; - } -} -if (!Array.isArray) { - Array.isArray = function isArray(obj) { - return _toString(obj) == "[object Array]"; - }; -} -var boxedString = Object("a"), - splitString = boxedString[0] != "a" || !(0 in boxedString); - -if (!Array.prototype.forEach) { - Array.prototype.forEach = function forEach(fun /*, thisp*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - thisp = arguments[1], - i = -1, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(); // TODO message - } - - while (++i < length) { - if (i in self) { - fun.call(thisp, self[i], i, object); - } - } - }; -} -if (!Array.prototype.map) { - Array.prototype.map = function map(fun /*, thisp*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - result = Array(length), - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self) - result[i] = fun.call(thisp, self[i], i, object); - } - return result; - }; -} -if (!Array.prototype.filter) { - Array.prototype.filter = function filter(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - result = [], - value, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self) { - value = self[i]; - if (fun.call(thisp, value, i, object)) { - result.push(value); - } - } - } - return result; - }; -} -if (!Array.prototype.every) { - Array.prototype.every = function every(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self && !fun.call(thisp, self[i], i, object)) { - return false; - } - } - return true; - }; -} -if (!Array.prototype.some) { - Array.prototype.some = function some(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self && fun.call(thisp, self[i], i, object)) { - return true; - } - } - return false; - }; -} -if (!Array.prototype.reduce) { - Array.prototype.reduce = function reduce(fun /*, initial*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - if (!length && arguments.length == 1) { - throw new TypeError("reduce of empty array with no initial value"); - } - - var i = 0; - var result; - if (arguments.length >= 2) { - result = arguments[1]; - } else { - do { - if (i in self) { - result = self[i++]; - break; - } - if (++i >= length) { - throw new TypeError("reduce of empty array with no initial value"); - } - } while (true); - } - - for (; i < length; i++) { - if (i in self) { - result = fun.call(void 0, result, self[i], i, object); - } - } - - return result; - }; -} -if (!Array.prototype.reduceRight) { - Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - if (!length && arguments.length == 1) { - throw new TypeError("reduceRight of empty array with no initial value"); - } - - var result, i = length - 1; - if (arguments.length >= 2) { - result = arguments[1]; - } else { - do { - if (i in self) { - result = self[i--]; - break; - } - if (--i < 0) { - throw new TypeError("reduceRight of empty array with no initial value"); - } - } while (true); - } - - do { - if (i in this) { - result = fun.call(void 0, result, self[i], i, object); - } - } while (i--); - - return result; - }; -} -if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) { - Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) { - var self = splitString && _toString(this) == "[object String]" ? - this.split("") : - toObject(this), - length = self.length >>> 0; - - if (!length) { - return -1; - } - - var i = 0; - if (arguments.length > 1) { - i = toInteger(arguments[1]); - } - i = i >= 0 ? i : Math.max(0, length + i); - for (; i < length; i++) { - if (i in self && self[i] === sought) { - return i; - } - } - return -1; - }; -} -if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) { - Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) { - var self = splitString && _toString(this) == "[object String]" ? - this.split("") : - toObject(this), - length = self.length >>> 0; - - if (!length) { - return -1; - } - var i = length - 1; - if (arguments.length > 1) { - i = Math.min(i, toInteger(arguments[1])); - } - i = i >= 0 ? i : length - Math.abs(i); - for (; i >= 0; i--) { - if (i in self && sought === self[i]) { - return i; - } - } - return -1; - }; -} -if (!Object.getPrototypeOf) { - Object.getPrototypeOf = function getPrototypeOf(object) { - return object.__proto__ || ( - object.constructor ? - object.constructor.prototype : - prototypeOfObject - ); - }; -} -if (!Object.getOwnPropertyDescriptor) { - var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " + - "non-object: "; - Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) { - if ((typeof object != "object" && typeof object != "function") || object === null) - throw new TypeError(ERR_NON_OBJECT + object); - if (!owns(object, property)) - return; - - var descriptor, getter, setter; - descriptor = { enumerable: true, configurable: true }; - if (supportsAccessors) { - var prototype = object.__proto__; - object.__proto__ = prototypeOfObject; - - var getter = lookupGetter(object, property); - var setter = lookupSetter(object, property); - object.__proto__ = prototype; - - if (getter || setter) { - if (getter) descriptor.get = getter; - if (setter) descriptor.set = setter; - return descriptor; - } - } - descriptor.value = object[property]; - return descriptor; - }; -} -if (!Object.getOwnPropertyNames) { - Object.getOwnPropertyNames = function getOwnPropertyNames(object) { - return Object.keys(object); - }; -} -if (!Object.create) { - var createEmpty; - if (Object.prototype.__proto__ === null) { - createEmpty = function () { - return { "__proto__": null }; - }; - } else { - createEmpty = function () { - var empty = {}; - for (var i in empty) - empty[i] = null; - empty.constructor = - empty.hasOwnProperty = - empty.propertyIsEnumerable = - empty.isPrototypeOf = - empty.toLocaleString = - empty.toString = - empty.valueOf = - empty.__proto__ = null; - return empty; - } - } - - Object.create = function create(prototype, properties) { - var object; - if (prototype === null) { - object = createEmpty(); - } else { - if (typeof prototype != "object") - throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'"); - var Type = function () {}; - Type.prototype = prototype; - object = new Type(); - object.__proto__ = prototype; - } - if (properties !== void 0) - Object.defineProperties(object, properties); - return object; - }; -} - -function doesDefinePropertyWork(object) { - try { - Object.defineProperty(object, "sentinel", {}); - return "sentinel" in object; - } catch (exception) { - } -} -if (Object.defineProperty) { - var definePropertyWorksOnObject = doesDefinePropertyWork({}); - var definePropertyWorksOnDom = typeof document == "undefined" || - 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: "; - var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: " - var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " + - "on this javascript engine"; - - Object.defineProperty = function defineProperty(object, property, descriptor) { - if ((typeof object != "object" && typeof object != "function") || object === null) - throw new TypeError(ERR_NON_OBJECT_TARGET + object); - if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null) - 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); - if (owns(descriptor, "get")) - defineGetter(object, property, descriptor.get); - if (owns(descriptor, "set")) - defineSetter(object, property, descriptor.set); - } - - return object; - }; -} -if (!Object.defineProperties) { - Object.defineProperties = function defineProperties(object, properties) { - for (var property in properties) { - if (owns(properties, property)) - Object.defineProperty(object, property, properties[property]); - } - return object; - }; -} -if (!Object.seal) { - Object.seal = function seal(object) { - return object; - }; -} -if (!Object.freeze) { - Object.freeze = function freeze(object) { - return object; - }; -} -try { - Object.freeze(function () {}); -} catch (exception) { - Object.freeze = (function freeze(freezeObject) { - return function freeze(object) { - if (typeof object == "function") { - return object; - } else { - return freezeObject(object); - } - }; - })(Object.freeze); -} -if (!Object.preventExtensions) { - Object.preventExtensions = function preventExtensions(object) { - return object; - }; -} -if (!Object.isSealed) { - Object.isSealed = function isSealed(object) { - return false; - }; -} -if (!Object.isFrozen) { - Object.isFrozen = function isFrozen(object) { - return false; - }; -} -if (!Object.isExtensible) { - Object.isExtensible = function isExtensible(object) { - if (Object(object) === object) { - throw new TypeError(); // TODO message - } - var name = ''; - while (owns(object, name)) { - name += '?'; - } - object[name] = true; - var returnValue = owns(object, name); - delete object[name]; - return returnValue; - }; -} -if (!Object.keys) { - var hasDontEnumBug = true, - dontEnums = [ - "toString", - "toLocaleString", - "valueOf", - "hasOwnProperty", - "isPrototypeOf", - "propertyIsEnumerable", - "constructor" - ], - dontEnumsLength = dontEnums.length; - - for (var key in {"toString": null}) { - hasDontEnumBug = false; - } - - Object.keys = function keys(object) { - - if ( - (typeof object != "object" && typeof object != "function") || - object === null - ) { - throw new TypeError("Object.keys called on a non-object"); - } - - var keys = []; - for (var name in object) { - if (owns(object, name)) { - keys.push(name); - } - } - - if (hasDontEnumBug) { - for (var i = 0, ii = dontEnumsLength; i < ii; i++) { - var dontEnum = dontEnums[i]; - if (owns(object, dontEnum)) { - keys.push(dontEnum); - } - } - } - return keys; - }; - -} -if (!Date.now) { - Date.now = function now() { - return new Date().getTime(); - }; -} -var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" + - "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" + - "\u2029\uFEFF"; -if (!String.prototype.trim || ws.trim()) { - ws = "[" + ws + "]"; - var trimBeginRegexp = new RegExp("^" + ws + ws + "*"), - trimEndRegexp = new RegExp(ws + ws + "*$"); - String.prototype.trim = function trim() { - return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, ""); - }; -} - -function toInteger(n) { - n = +n; - if (n !== n) { // isNaN - n = 0; - } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) { - n = (n > 0 || -1) * Math.floor(Math.abs(n)); - } - return n; -} - -function isPrimitive(input) { - var type = typeof input; - return ( - input === null || - type === "undefined" || - type === "boolean" || - type === "number" || - type === "string" - ); -} - -function toPrimitive(input) { - var val, valueOf, toString; - if (isPrimitive(input)) { - return input; - } - valueOf = input.valueOf; - if (typeof valueOf === "function") { - val = valueOf.call(input); - if (isPrimitive(val)) { - return val; - } - } - toString = input.toString; - if (typeof toString === "function") { - val = toString.call(input); - if (isPrimitive(val)) { - return val; - } - } - throw new TypeError(); -} -var toObject = function (o) { - if (o == null) { // this matches both null and undefined - throw new TypeError("can't convert "+o+" to object"); - } - return Object(o); -}; - -}); - -ace.define('ace/mode/javascript_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/javascript/jshint'], function(require, exports, module) { - - -var oop = require("../lib/oop"); -var Mirror = require("../worker/mirror").Mirror; -var lint = require("./javascript/jshint").JSHINT; - -function startRegex(arr) { - return RegExp("^(" + arr.join("|") + ")"); -} - -var disabledWarningsRe = startRegex([ - "Bad for in variable '(.+)'.", - 'Missing "use strict"' -]); -var errorsRe = startRegex([ - "Unexpected", - "Expected ", - "Confusing (plus|minus)", - "\\{a\\} unterminated regular expression", - "Unclosed ", - "Unmatched ", - "Unbegun comment", - "Bad invocation", - "Missing space after", - "Missing operator at" -]); -var infoRe = startRegex([ - "Expected an assignment", - "Bad escapement of EOL", - "Unexpected comma", - "Unexpected space", - "Missing radix parameter.", - "A leading decimal point can", - "\\['{a}'\\] is better written in dot notation.", - "'{a}' used out of scope" -]); - -var JavaScriptWorker = exports.JavaScriptWorker = function(sender) { - Mirror.call(this, sender); - this.setTimeout(500); - this.setOptions(); -}; - -oop.inherits(JavaScriptWorker, Mirror); - -(function() { - this.setOptions = function(options) { - this.options = options || { - esnext: true, - moz: true, - devel: true, - browser: true, - node: true, - laxcomma: true, - laxbreak: true, - lastsemic: true, - onevar: false, - passfail: false, - maxerr: 100, - expr: true, - multistr: true, - globalstrict: true - }; - this.doc.getValue() && this.deferredUpdate.schedule(100); - }; - - this.changeOptions = function(newOptions) { - oop.mixin(this.options, newOptions); - this.doc.getValue() && this.deferredUpdate.schedule(100); - }; - - this.isValidJS = function(str) { - try { - eval("throw 0;" + str); - } catch(e) { - if (e === 0) - return true; - } - return false - }; - - this.onUpdate = function() { - var value = this.doc.getValue(); - value = value.replace(/^#!.*\n/, "\n"); - if (!value) { - this.sender.emit("jslint", []); - return; - } - var errors = []; - var maxErrorLevel = this.isValidJS(value) ? "warning" : "error"; - lint(value, this.options); - var results = lint.errors; - - var errorAdded = false - for (var i = 0; i < results.length; i++) { - var error = results[i]; - if (!error) - continue; - var raw = error.raw; - var type = "warning"; - - if (raw == "Missing semicolon.") { - var str = error.evidence.substr(error.character); - str = str.charAt(str.search(/\S/)); - if (maxErrorLevel == "error" && str && /[\w\d{(['"]/.test(str)) { - error.reason = 'Missing ";" before statement'; - type = "error"; - } else { - type = "info"; - } - } - else if (disabledWarningsRe.test(raw)) { - continue; - } - else if (infoRe.test(raw)) { - type = "info" - } - else if (errorsRe.test(raw)) { - errorAdded = true; - type = maxErrorLevel; - } - else if (raw == "'{a}' is not defined.") { - type = "warning"; - } - else if (raw == "'{a}' is defined but never used.") { - type = "info"; - } - - errors.push({ - row: error.line-1, - column: error.character-1, - text: error.reason, - type: type, - raw: raw - }); - - if (errorAdded) { - } - } - - this.sender.emit("jslint", errors); - }; - -}).call(JavaScriptWorker.prototype); - -}); -ace.define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) { - - -var Document = require("../document").Document; -var lang = require("../lib/lang"); - -var Mirror = exports.Mirror = function(sender) { - this.sender = sender; - var doc = this.doc = new Document(""); - - var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this)); - - var _self = this; - sender.on("change", function(e) { - doc.applyDeltas(e.data); - deferredUpdate.schedule(_self.$timeout); - }); -}; - -(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() { - }; - -}).call(Mirror.prototype); - -}); - -ace.define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) { - - -var oop = require("./lib/oop"); -var EventEmitter = require("./lib/event_emitter").EventEmitter; -var Range = require("./range").Range; -var Anchor = require("./anchor").Anchor; - -var Document = function(text) { - this.$lines = []; - if (text.length == 0) { - this.$lines = [""]; - } else if (Array.isArray(text)) { - this._insertLines(0, text); - } else { - this.insert({row: 0, column:0}, text); - } -}; - -(function() { - - oop.implement(this, EventEmitter); - this.setValue = function(text) { - var len = this.getLength(); - this.remove(new Range(0, 0, len, this.getLine(len-1).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); - }; - if ("aaa".split(/a/).length == 0) - this.$split = function(text) { - return text.replace(/\r\n|\r/g, "\n").split("\n"); - } - else - this.$split = 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.getNewLineCharacter = function() { - switch (this.$newLineMode) { - case "windows": - return "\r\n"; - case "unix": - return "\n"; - default: - return this.$autoNewLine; - } - }; - - this.$autoNewLine = "\n"; - this.$newLineMode = "auto"; - this.setNewLineMode = function(newLineMode) { - if (this.$newLineMode === newLineMode) - return; - - this.$newLineMode = newLineMode; - }; - this.getNewLineMode = function() { - return this.$newLineMode; - }; - this.isNewLine = function(text) { - return (text == "\r\n" || text == "\r" || text == "\n"); - }; - 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) { - if (range.start.row == range.end.row) { - return this.getLine(range.start.row) - .substring(range.start.column, range.end.column); - } - var lines = this.getLines(range.start.row, range.end.row); - lines[0] = (lines[0] || "").substring(range.start.column); - var l = lines.length - 1; - if (range.end.row - range.start.row == l) - lines[l] = lines[l].substring(0, range.end.column); - return lines.join(this.getNewLineCharacter()); - }; - - this.$clipPosition = function(position) { - var length = this.getLength(); - if (position.row >= length) { - position.row = Math.max(0, length - 1); - position.column = this.getLine(length-1).length; - } else if (position.row < 0) - position.row = 0; - return position; - }; - this.insert = function(position, text) { - if (!text || text.length === 0) - return position; - - position = this.$clipPosition(position); - if (this.getLength() <= 1) - this.$detectNewLine(text); - - var lines = this.$split(text); - var firstLine = lines.splice(0, 1)[0]; - var lastLine = lines.length == 0 ? null : lines.splice(lines.length - 1, 1)[0]; - - position = this.insertInLine(position, firstLine); - if (lastLine !== null) { - position = this.insertNewLine(position); // terminate first line - position = this._insertLines(position.row, lines); - position = this.insertInLine(position, lastLine || ""); - } - return position; - }; - this.insertLines = function(row, lines) { - if (row >= this.getLength()) - return this.insert({row: row, column: 0}, "\n" + lines.join("\n")); - return this._insertLines(Math.max(row, 0), lines); - }; - this._insertLines = function(row, lines) { - if (lines.length == 0) - return {row: row, column: 0}; - if (lines.length > 0xFFFF) { - var end = this._insertLines(row, lines.slice(0xFFFF)); - lines = lines.slice(0, 0xFFFF); - } - - var args = [row, 0]; - args.push.apply(args, lines); - this.$lines.splice.apply(this.$lines, args); - - var range = new Range(row, 0, row + lines.length, 0); - var delta = { - action: "insertLines", - range: range, - lines: lines - }; - this._emit("change", { data: delta }); - return end || range.end; - }; - this.insertNewLine = function(position) { - position = this.$clipPosition(position); - var line = this.$lines[position.row] || ""; - - this.$lines[position.row] = line.substring(0, position.column); - this.$lines.splice(position.row + 1, 0, line.substring(position.column, line.length)); - - var end = { - row : position.row + 1, - column : 0 - }; - - var delta = { - action: "insertText", - range: Range.fromPoints(position, end), - text: this.getNewLineCharacter() - }; - this._emit("change", { data: delta }); - - return end; - }; - this.insertInLine = function(position, text) { - if (text.length == 0) - return position; - - var line = this.$lines[position.row] || ""; - - this.$lines[position.row] = line.substring(0, position.column) + text - + line.substring(position.column); - - var end = { - row : position.row, - column : position.column + text.length - }; - - var delta = { - action: "insertText", - range: Range.fromPoints(position, end), - text: text - }; - this._emit("change", { data: delta }); - - return end; - }; - this.remove = function(range) { - range.start = this.$clipPosition(range.start); - range.end = this.$clipPosition(range.end); - - if (range.isEmpty()) - return range.start; - - var firstRow = range.start.row; - var lastRow = range.end.row; - - if (range.isMultiLine()) { - var firstFullRow = range.start.column == 0 ? firstRow : firstRow + 1; - var lastFullRow = lastRow - 1; - - if (range.end.column > 0) - this.removeInLine(lastRow, 0, range.end.column); - - if (lastFullRow >= firstFullRow) - this._removeLines(firstFullRow, lastFullRow); - - if (firstFullRow != firstRow) { - this.removeInLine(firstRow, range.start.column, this.getLine(firstRow).length); - this.removeNewLine(range.start.row); - } - } - else { - this.removeInLine(firstRow, range.start.column, range.end.column); - } - return range.start; - }; - this.removeInLine = function(row, startColumn, endColumn) { - if (startColumn == endColumn) - return; - - var range = new Range(row, startColumn, row, endColumn); - var line = this.getLine(row); - var removed = line.substring(startColumn, endColumn); - var newLine = line.substring(0, startColumn) + line.substring(endColumn, line.length); - this.$lines.splice(row, 1, newLine); - - var delta = { - action: "removeText", - range: range, - text: removed - }; - this._emit("change", { data: delta }); - return range.start; - }; - this.removeLines = function(firstRow, lastRow) { - if (firstRow < 0 || lastRow >= this.getLength()) - return this.remove(new Range(firstRow, 0, lastRow + 1, 0)); - return this._removeLines(firstRow, lastRow); - }; - - this._removeLines = function(firstRow, lastRow) { - var range = new Range(firstRow, 0, lastRow + 1, 0); - var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1); - - var delta = { - action: "removeLines", - range: range, - nl: this.getNewLineCharacter(), - lines: removed - }; - this._emit("change", { data: delta }); - return removed; - }; - this.removeNewLine = function(row) { - var firstLine = this.getLine(row); - var secondLine = this.getLine(row+1); - - var range = new Range(row, firstLine.length, row+1, 0); - var line = firstLine + secondLine; - - this.$lines.splice(row, 2, line); - - var delta = { - action: "removeText", - range: range, - text: this.getNewLineCharacter() - }; - this._emit("change", { data: delta }); - }; - this.replace = function(range, text) { - if (text.length == 0 && range.isEmpty()) - return range.start; - if (text == this.getTextRange(range)) - return range.end; - - this.remove(range); - if (text) { - var end = this.insert(range.start, text); - } - else { - end = range.start; - } - - return end; - }; - this.applyDeltas = function(deltas) { - for (var i=0; i<deltas.length; i++) { - var delta = deltas[i]; - var range = Range.fromPoints(delta.range.start, delta.range.end); - - if (delta.action == "insertLines") - this.insertLines(range.start.row, delta.lines); - else if (delta.action == "insertText") - this.insert(range.start, delta.text); - else if (delta.action == "removeLines") - this._removeLines(range.start.row, range.end.row - 1); - else if (delta.action == "removeText") - this.remove(range); - } - }; - this.revertDeltas = function(deltas) { - for (var i=deltas.length-1; i>=0; i--) { - var delta = deltas[i]; - - var range = Range.fromPoints(delta.range.start, delta.range.end); - - if (delta.action == "insertLines") - this._removeLines(range.start.row, range.end.row - 1); - else if (delta.action == "insertText") - this.remove(range); - else if (delta.action == "removeLines") - this._insertLines(range.start.row, delta.lines); - else if (delta.action == "removeText") - this.insert(range.start, delta.text); - } - }; - this.indexToPosition = function(index, startRow) { - var lines = this.$lines || this.getAllLines(); - var newlineLength = this.getNewLineCharacter().length; - for (var i = startRow || 0, l = lines.length; i < l; i++) { - index -= lines[i].length + newlineLength; - if (index < 0) - return {row: i, column: index + lines[i].length + newlineLength}; - } - return {row: l-1, column: lines[l-1].length}; - }; - this.positionToIndex = function(pos, startRow) { - var lines = this.$lines || this.getAllLines(); - var newlineLength = this.getNewLineCharacter().length; - var index = 0; - var row = Math.min(pos.row, lines.length); - for (var i = startRow || 0; i < row; ++i) - index += lines[i].length + newlineLength; - - return index + pos.column; - }; - -}).call(Document.prototype); - -exports.Document = Document; -}); - -ace.define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) { - -var comparePoints = function(p1, p2) { - return p1.row - p2.row || p1.column - p2.column; -}; -var 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 this.compare(row, column) == 0; - }; - this.compareRange = function(range) { - var cmp, - end = range.end, - start = range.start; - - cmp = this.compare(end.row, end.column); - if (cmp == 1) { - cmp = this.compare(start.row, start.column); - if (cmp == 1) { - return 2; - } else if (cmp == 0) { - return 1; - } else { - return 0; - } - } else if (cmp == -1) { - return -2; - } else { - cmp = this.compare(start.row, start.column); - if (cmp == -1) { - return -1; - } else if (cmp == 1) { - return 42; - } else { - return 0; - } - } - }; - this.comparePoint = function(p) { - return this.compare(p.row, p.column); - }; - this.containsRange = function(range) { - return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0; - }; - this.intersects = function(range) { - var cmp = this.compareRange(range); - return (cmp == -1 || cmp == 0 || cmp == 1); - }; - 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) { - if (typeof row == "object") { - this.start.column = row.column; - this.start.row = row.row; - } else { - this.start.row = row; - this.start.column = column; - } - }; - this.setEnd = function(row, column) { - if (typeof row == "object") { - this.end.column = row.column; - this.end.row = row.row; - } else { - this.end.row = row; - this.end.column = column; - } - }; - this.inside = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isEnd(row, column) || this.isStart(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.insideStart = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isEnd(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.insideEnd = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isStart(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.compare = function(row, column) { - if (!this.isMultiLine()) { - if (row === this.start.row) { - return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0); - }; - } - - if (row < this.start.row) - return -1; - - if (row > this.end.row) - return 1; - - if (this.start.row === row) - return column >= this.start.column ? 0 : -1; - - if (this.end.row === row) - return column <= this.end.column ? 0 : 1; - - return 0; - }; - this.compareStart = function(row, column) { - if (this.start.row == row && this.start.column == column) { - return -1; - } else { - return this.compare(row, column); - } - }; - this.compareEnd = function(row, column) { - if (this.end.row == row && this.end.column == column) { - return 1; - } else { - return this.compare(row, column); - } - }; - this.compareInside = function(row, column) { - if (this.end.row == row && this.end.column == column) { - return 1; - } else if (this.start.row == row && this.start.column == column) { - return -1; - } else { - return this.compare(row, column); - } - }; - this.clipRows = function(firstRow, lastRow) { - if (this.end.row > lastRow) - var end = {row: lastRow + 1, column: 0}; - else if (this.end.row < firstRow) - var end = {row: firstRow, column: 0}; - - if (this.start.row > lastRow) - var start = {row: lastRow + 1, column: 0}; - else if (this.start.row < firstRow) - 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 (cmp == 0) - return this; - else if (cmp == -1) - 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() { - if (this.end.column == 0) - return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0) - else - return new Range(this.start.row, 0, this.end.row, 0) - }; - this.toScreenRange = function(session) { - var screenPosStart = session.documentToScreenPosition(this.start); - var 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/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) { - - -var oop = require("./lib/oop"); -var EventEmitter = require("./lib/event_emitter").EventEmitter; - -var Anchor = exports.Anchor = function(doc, row, column) { - this.$onChange = this.onChange.bind(this); - this.attach(doc); - - if (typeof column == "undefined") - this.setPosition(row.row, row.column); - else - this.setPosition(row, column); -}; - -(function() { - - oop.implement(this, EventEmitter); - this.getPosition = function() { - return this.$clipPositionToDocument(this.row, this.column); - }; - this.getDocument = function() { - return this.document; - }; - this.onChange = function(e) { - var delta = e.data; - var range = delta.range; - - if (range.start.row == range.end.row && range.start.row != this.row) - return; - - if (range.start.row > this.row) - return; - - if (range.start.row == this.row && range.start.column > this.column) - return; - - var row = this.row; - var column = this.column; - var start = range.start; - var end = range.end; - - if (delta.action === "insertText") { - if (start.row === row && start.column <= column) { - if (start.row === end.row) { - column += end.column - start.column; - } else { - column -= start.column; - row += end.row - start.row; - } - } else if (start.row !== end.row && start.row < row) { - row += end.row - start.row; - } - } else if (delta.action === "insertLines") { - if (start.row <= row) { - row += end.row - start.row; - } - } else if (delta.action === "removeText") { - if (start.row === row && start.column < column) { - if (end.column >= column) - column = start.column; - else - column = Math.max(0, column - (end.column - start.column)); - - } else if (start.row !== end.row && start.row < row) { - if (end.row === row) - column = Math.max(0, column - end.column) + start.column; - row -= (end.row - start.row); - } else if (end.row === row) { - row -= end.row - start.row; - column = Math.max(0, column - end.column) + start.column; - } - } else if (delta.action == "removeLines") { - if (start.row <= row) { - if (end.row <= row) - row -= end.row - start.row; - else { - row = start.row; - column = 0; - } - } - } - - this.setPosition(row, column, true); - }; - this.setPosition = function(row, column, noClip) { - var pos; - if (noClip) { - pos = { - row: row, - column: column - }; - } else { - pos = this.$clipPositionToDocument(row, column); - } - - if (this.row == pos.row && this.column == pos.column) - return; - - var old = { - row: this.row, - column: this.column - }; - - this.row = pos.row; - this.column = pos.column; - this._emit("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 = {}; - - if (row >= this.document.getLength()) { - pos.row = Math.max(0, this.document.getLength() - 1); - pos.column = this.document.getLine(pos.row).length; - } - else if (row < 0) { - pos.row = 0; - pos.column = 0; - } - else { - pos.row = row; - pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column)); - } - - if (column < 0) - pos.column = 0; - - return pos; - }; - -}).call(Anchor.prototype); - -}); - -ace.define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) { - - -exports.stringReverse = function(string) { - return string.split("").reverse().join(""); -}; - -exports.stringRepeat = function (string, count) { - var result = ''; - while (count > 0) { - if (count & 1) - result += string; - - if (count >>= 1) - string += string; - } - return result; -}; - -var trimBeginRegexp = /^\s\s*/; -var 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){ - var copy = []; - for (var i=0, l=array.length; i<l; i++) { - if (array[i] && typeof array[i] == "object") - copy[i] = this.copyObject( array[i] ); - else - copy[i] = array[i]; - } - return copy; -}; - -exports.deepCopy = function (obj) { - if (typeof obj != "object") { - return obj; - } - - var copy = obj.constructor(); - for (var key in obj) { - if (typeof obj[key] == "object") { - copy[key] = this.deepCopy(obj[key]); - } else { - copy[key] = obj[key]; - } - } - return copy; -}; - -exports.arrayToMap = function(arr) { - var map = {}; - for (var i=0; i<arr.length; 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; i <= array.length; i++) { - if (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(/</g, "<"); -}; - -exports.getMatchOffsets = function(string, regExp) { - var matches = []; - - string.replace(regExp, function(str) { - matches.push({ - offset: arguments[arguments.length-2], - length: str.length - }); - }); - - return matches; -}; -exports.deferredCall = function(fcn) { - - var timer = null; - var callback = function() { - timer = null; - fcn(); - }; - - var deferred = function(timeout) { - deferred.cancel(); - timer = setTimeout(callback, timeout || 0); - return deferred; - }; - - deferred.schedule = deferred; - - deferred.call = function() { - this.cancel(); - fcn(); - return deferred; - }; - - deferred.cancel = function() { - clearTimeout(timer); - timer = null; - return deferred; - }; - - return deferred; -}; - - -exports.delayedCall = function(fcn, defaultTimeout) { - var timer = null; - var callback = function() { - timer = null; - fcn(); - }; - - var _self = function(timeout) { - timer && clearTimeout(timer); - timer = setTimeout(callback, timeout || defaultTimeout); - }; - - _self.delay = _self; - _self.schedule = function(timeout) { - if (timer == null) - timer = setTimeout(callback, timeout || 0); - }; - - _self.call = function() { - this.cancel(); - fcn(); - }; - - _self.cancel = function() { - timer && clearTimeout(timer); - timer = null; - }; - - _self.isPending = function() { - return timer; - }; - - return _self; -}; -}); -ace.define('ace/mode/javascript/jshint', ['require', 'exports', 'module' ], function(require, exports, module) { -var require; -require=(function(e,t,n){function i(n,s){if(!t[n]){if(!e[n]){var o=typeof require=="function"&&require;if(!s&&o)return o(n,!0);if(r)return r(n,!0);throw new Error("Cannot find module '"+n+"'")}var u=t[n]={exports:{}};e[n][0].call(u.exports,function(t){var r=e[n][1][t];return i(r?r:t)},u,u.exports)}return t[n].exports}var r=typeof require=="function"&&require;for(var s=0;s<n.length;s++)i(n[s]);return i})({ -1:[function(req,module,exports){ - -var process = module.exports = {}; - -process.nextTick = (function () { - var canSetImmediate = typeof window !== 'undefined' - && window.setImmediate; - var canPost = typeof window !== 'undefined' - && window.postMessage && window.addEventListener - ; - - if (canSetImmediate) { - return function (f) { return window.setImmediate(f) }; - } - - if (canPost) { - var queue = []; - window.addEventListener('message', function (ev) { - if (ev.source === window && ev.data === 'process-tick') { - ev.stopPropagation(); - if (queue.length > 0) { - var fn = queue.shift(); - fn(); - } - } - }, true); - - return function nextTick(fn) { - queue.push(fn); - window.postMessage('process-tick', '*'); - }; - } - - return function nextTick(fn) { - setTimeout(fn, 0); - }; -})(); - -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -} -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; - -}, -{}], -2:[function(req,module,exports){ -(function(process){if (!process.EventEmitter) process.EventEmitter = function () {}; - -var EventEmitter = exports.EventEmitter = process.EventEmitter; -var isArray = typeof Array.isArray === 'function' - ? Array.isArray - : function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]' - } -; -function indexOf (xs, x) { - if (xs.indexOf) return xs.indexOf(x); - for (var i = 0; i < xs.length; i++) { - if (x === xs[i]) return i; - } - return -1; -} -var defaultMaxListeners = 200; -EventEmitter.prototype.setMaxListeners = function(n) { - if (!this._events) this._events = {}; - this._events.maxListeners = n; -}; - - -EventEmitter.prototype.emit = function(type) { - if (type === 'error') { - if (!this._events || !this._events.error || - (isArray(this._events.error) && !this._events.error.length)) - { - if (arguments[1] instanceof Error) { - throw arguments[1]; // Unhandled 'error' event - } else { - throw new Error("Uncaught, unspecified 'error' event."); - } - return false; - } - } - - if (!this._events) return false; - var handler = this._events[type]; - if (!handler) return false; - - if (typeof handler == 'function') { - switch (arguments.length) { - case 1: - handler.call(this); - break; - case 2: - handler.call(this, arguments[1]); - break; - case 3: - handler.call(this, arguments[1], arguments[2]); - break; - default: - var args = Array.prototype.slice.call(arguments, 1); - handler.apply(this, args); - } - return true; - - } else if (isArray(handler)) { - var args = Array.prototype.slice.call(arguments, 1); - - var listeners = handler.slice(); - for (var i = 0, l = listeners.length; i < l; i++) { - listeners[i].apply(this, args); - } - return true; - - } else { - return false; - } -}; -EventEmitter.prototype.addListener = function(type, listener) { - if ('function' !== typeof listener) { - throw new Error('addListener only takes instances of Function'); - } - - if (!this._events) this._events = {}; - this.emit('newListener', type, listener); - - if (!this._events[type]) { - this._events[type] = listener; - } else if (isArray(this._events[type])) { - if (!this._events[type].warned) { - var m; - if (this._events.maxListeners !== undefined) { - m = this._events.maxListeners; - } else { - m = defaultMaxListeners; - } - - if (m && m > 0 && this._events[type].length > m) { - this._events[type].warned = true; - console.error('(node) warning: possible EventEmitter memory ' + - 'leak detected. %d listeners added. ' + - 'Use emitter.setMaxListeners() to increase limit.', - this._events[type].length); - console.trace(); - } - } - this._events[type].push(listener); - } else { - this._events[type] = [this._events[type], listener]; - } - - return this; -}; - -EventEmitter.prototype.on = EventEmitter.prototype.addListener; - -EventEmitter.prototype.once = function(type, listener) { - var self = this; - self.on(type, function g() { - self.removeListener(type, g); - listener.apply(this, arguments); - }); - - return this; -}; - -EventEmitter.prototype.removeListener = function(type, listener) { - if ('function' !== typeof listener) { - throw new Error('removeListener only takes instances of Function'); - } - if (!this._events || !this._events[type]) return this; - - var list = this._events[type]; - - if (isArray(list)) { - var i = indexOf(list, listener); - if (i < 0) return this; - list.splice(i, 1); - if (list.length == 0) - delete this._events[type]; - } else if (this._events[type] === listener) { - delete this._events[type]; - } - - return this; -}; - -EventEmitter.prototype.removeAllListeners = function(type) { - if (arguments.length === 0) { - this._events = {}; - return this; - } - if (type && this._events && this._events[type]) this._events[type] = null; - return this; -}; - -EventEmitter.prototype.listeners = function(type) { - if (!this._events) this._events = {}; - if (!this._events[type]) this._events[type] = []; - if (!isArray(this._events[type])) { - this._events[type] = [this._events[type]]; - } - return this._events[type]; -}; - -})(req("__browserify_process")) -}, -{"__browserify_process":1}], -3:[function(req,module,exports){ -(function(){// jshint -W001 - -exports.reservedVars = { - arguments : false, - NaN : false -}; - -exports.ecmaIdentifiers = { - Array : false, - Boolean : false, - Date : false, - decodeURI : false, - decodeURIComponent : false, - encodeURI : false, - encodeURIComponent : false, - Error : false, - "eval" : false, - EvalError : false, - Function : false, - hasOwnProperty : false, - isFinite : false, - isNaN : false, - JSON : false, - Math : false, - Map : false, - Number : false, - Object : false, - parseInt : false, - parseFloat : false, - RangeError : false, - ReferenceError : false, - RegExp : false, - Set : false, - String : false, - SyntaxError : false, - TypeError : false, - URIError : false, - WeakMap : false -}; - -exports.browser = { - ArrayBuffer : false, - ArrayBufferView : false, - Audio : false, - Blob : false, - addEventListener : false, - applicationCache : false, - atob : false, - blur : false, - btoa : false, - clearInterval : false, - clearTimeout : false, - close : false, - closed : false, - DataView : false, - DOMParser : false, - defaultStatus : false, - document : false, - Element : false, - ElementTimeControl : false, - event : false, - FileReader : false, - Float32Array : false, - Float64Array : false, - FormData : false, - focus : false, - frames : false, - getComputedStyle : false, - HTMLElement : false, - HTMLAnchorElement : false, - HTMLBaseElement : false, - HTMLBlockquoteElement: false, - HTMLBodyElement : false, - HTMLBRElement : false, - HTMLButtonElement : false, - HTMLCanvasElement : false, - HTMLDirectoryElement : false, - HTMLDivElement : false, - HTMLDListElement : false, - HTMLFieldSetElement : false, - HTMLFontElement : false, - HTMLFormElement : false, - HTMLFrameElement : false, - HTMLFrameSetElement : false, - HTMLHeadElement : false, - HTMLHeadingElement : false, - HTMLHRElement : false, - HTMLHtmlElement : false, - HTMLIFrameElement : false, - HTMLImageElement : false, - HTMLInputElement : false, - HTMLIsIndexElement : false, - HTMLLabelElement : false, - HTMLLayerElement : false, - HTMLLegendElement : false, - HTMLLIElement : false, - HTMLLinkElement : false, - HTMLMapElement : false, - HTMLMenuElement : false, - HTMLMetaElement : false, - HTMLModElement : false, - HTMLObjectElement : false, - HTMLOListElement : false, - HTMLOptGroupElement : false, - HTMLOptionElement : false, - HTMLParagraphElement : false, - HTMLParamElement : false, - HTMLPreElement : false, - HTMLQuoteElement : false, - HTMLScriptElement : false, - HTMLSelectElement : false, - HTMLStyleElement : false, - HTMLTableCaptionElement: false, - HTMLTableCellElement : false, - HTMLTableColElement : false, - HTMLTableElement : false, - HTMLTableRowElement : false, - HTMLTableSectionElement: false, - HTMLTextAreaElement : false, - HTMLTitleElement : false, - HTMLUListElement : false, - HTMLVideoElement : false, - history : false, - Int16Array : false, - Int32Array : false, - Int8Array : false, - Image : false, - length : false, - localStorage : false, - location : false, - MessageChannel : false, - MessageEvent : false, - MessagePort : false, - moveBy : false, - moveTo : false, - MutationObserver : false, - name : false, - Node : false, - NodeFilter : false, - navigator : false, - onbeforeunload : true, - onblur : true, - onerror : true, - onfocus : true, - onload : true, - onresize : true, - onunload : true, - open : false, - openDatabase : false, - opener : false, - Option : false, - parent : false, - print : false, - removeEventListener : false, - resizeBy : false, - resizeTo : false, - screen : false, - scroll : false, - scrollBy : false, - scrollTo : false, - sessionStorage : false, - setInterval : false, - setTimeout : false, - SharedWorker : false, - status : false, - SVGAElement : false, - SVGAltGlyphDefElement: false, - SVGAltGlyphElement : false, - SVGAltGlyphItemElement: false, - SVGAngle : false, - SVGAnimateColorElement: false, - SVGAnimateElement : false, - SVGAnimateMotionElement: false, - SVGAnimateTransformElement: false, - SVGAnimatedAngle : false, - SVGAnimatedBoolean : false, - SVGAnimatedEnumeration: false, - SVGAnimatedInteger : false, - SVGAnimatedLength : false, - SVGAnimatedLengthList: false, - SVGAnimatedNumber : false, - SVGAnimatedNumberList: false, - SVGAnimatedPathData : false, - SVGAnimatedPoints : false, - SVGAnimatedPreserveAspectRatio: false, - SVGAnimatedRect : false, - SVGAnimatedString : false, - SVGAnimatedTransformList: false, - SVGAnimationElement : false, - SVGCSSRule : false, - SVGCircleElement : false, - SVGClipPathElement : false, - SVGColor : false, - SVGColorProfileElement: false, - SVGColorProfileRule : false, - SVGComponentTransferFunctionElement: false, - SVGCursorElement : false, - SVGDefsElement : false, - SVGDescElement : false, - SVGDocument : false, - SVGElement : false, - SVGElementInstance : false, - SVGElementInstanceList: false, - SVGEllipseElement : false, - SVGExternalResourcesRequired: false, - SVGFEBlendElement : false, - SVGFEColorMatrixElement: false, - SVGFEComponentTransferElement: false, - SVGFECompositeElement: false, - SVGFEConvolveMatrixElement: false, - SVGFEDiffuseLightingElement: false, - SVGFEDisplacementMapElement: false, - SVGFEDistantLightElement: false, - SVGFEFloodElement : false, - SVGFEFuncAElement : false, - SVGFEFuncBElement : false, - SVGFEFuncGElement : false, - SVGFEFuncRElement : false, - SVGFEGaussianBlurElement: false, - SVGFEImageElement : false, - SVGFEMergeElement : false, - SVGFEMergeNodeElement: false, - SVGFEMorphologyElement: false, - SVGFEOffsetElement : false, - SVGFEPointLightElement: false, - SVGFESpecularLightingElement: false, - SVGFESpotLightElement: false, - SVGFETileElement : false, - SVGFETurbulenceElement: false, - SVGFilterElement : false, - SVGFilterPrimitiveStandardAttributes: false, - SVGFitToViewBox : false, - SVGFontElement : false, - SVGFontFaceElement : false, - SVGFontFaceFormatElement: false, - SVGFontFaceNameElement: false, - SVGFontFaceSrcElement: false, - SVGFontFaceUriElement: false, - SVGForeignObjectElement: false, - SVGGElement : false, - SVGGlyphElement : false, - SVGGlyphRefElement : false, - SVGGradientElement : false, - SVGHKernElement : false, - SVGICCColor : false, - SVGImageElement : false, - SVGLangSpace : false, - SVGLength : false, - SVGLengthList : false, - SVGLineElement : false, - SVGLinearGradientElement: false, - SVGLocatable : false, - SVGMPathElement : false, - SVGMarkerElement : false, - SVGMaskElement : false, - SVGMatrix : false, - SVGMetadataElement : false, - SVGMissingGlyphElement: false, - SVGNumber : false, - SVGNumberList : false, - SVGPaint : false, - SVGPathElement : false, - SVGPathSeg : false, - SVGPathSegArcAbs : false, - SVGPathSegArcRel : false, - SVGPathSegClosePath : false, - SVGPathSegCurvetoCubicAbs: false, - SVGPathSegCurvetoCubicRel: false, - SVGPathSegCurvetoCubicSmoothAbs: false, - SVGPathSegCurvetoCubicSmoothRel: false, - SVGPathSegCurvetoQuadraticAbs: false, - SVGPathSegCurvetoQuadraticRel: false, - SVGPathSegCurvetoQuadraticSmoothAbs: false, - SVGPathSegCurvetoQuadraticSmoothRel: false, - SVGPathSegLinetoAbs : false, - SVGPathSegLinetoHorizontalAbs: false, - SVGPathSegLinetoHorizontalRel: false, - SVGPathSegLinetoRel : false, - SVGPathSegLinetoVerticalAbs: false, - SVGPathSegLinetoVerticalRel: false, - SVGPathSegList : false, - SVGPathSegMovetoAbs : false, - SVGPathSegMovetoRel : false, - SVGPatternElement : false, - SVGPoint : false, - SVGPointList : false, - SVGPolygonElement : false, - SVGPolylineElement : false, - SVGPreserveAspectRatio: false, - SVGRadialGradientElement: false, - SVGRect : false, - SVGRectElement : false, - SVGRenderingIntent : false, - SVGSVGElement : false, - SVGScriptElement : false, - SVGSetElement : false, - SVGStopElement : false, - SVGStringList : false, - SVGStylable : false, - SVGStyleElement : false, - SVGSwitchElement : false, - SVGSymbolElement : false, - SVGTRefElement : false, - SVGTSpanElement : false, - SVGTests : false, - SVGTextContentElement: false, - SVGTextElement : false, - SVGTextPathElement : false, - SVGTextPositioningElement: false, - SVGTitleElement : false, - SVGTransform : false, - SVGTransformList : false, - SVGTransformable : false, - SVGURIReference : false, - SVGUnitTypes : false, - SVGUseElement : false, - SVGVKernElement : false, - SVGViewElement : false, - SVGViewSpec : false, - SVGZoomAndPan : false, - TimeEvent : false, - top : false, - Uint16Array : false, - Uint32Array : false, - Uint8Array : false, - Uint8ClampedArray : false, - WebSocket : false, - window : false, - Worker : false, - XMLHttpRequest : false, - XMLSerializer : false, - XPathEvaluator : false, - XPathException : false, - XPathExpression : false, - XPathNamespace : false, - XPathNSResolver : false, - XPathResult : false -}; - -exports.devel = { - alert : false, - confirm: false, - console: false, - Debug : false, - opera : false, - prompt : false -}; - -exports.worker = { - importScripts: true, - postMessage : true, - self : true -}; -exports.nonstandard = { - escape : false, - unescape: false -}; - -exports.couch = { - "require" : false, - respond : false, - getRow : false, - emit : false, - send : false, - start : false, - sum : false, - log : false, - exports : false, - module : false, - provides : false -}; - -exports.node = { - __filename : false, - __dirname : false, - Buffer : false, - DataView : false, - console : false, - exports : true, // In Node it is ok to exports = module.exports = foo(); - GLOBAL : false, - global : false, - module : false, - process : false, - require : false, - setTimeout : false, - clearTimeout : false, - setInterval : false, - clearInterval : false, - setImmediate : false, // v0.9.1+ - clearImmediate: false // v0.9.1+ -}; - -exports.phantom = { - phantom : true, - require : true, - WebPage : true -}; - -exports.rhino = { - defineClass : false, - deserialize : false, - gc : false, - help : false, - importPackage: false, - "java" : false, - load : false, - loadClass : false, - print : false, - quit : false, - readFile : false, - readUrl : false, - runCommand : false, - seal : false, - serialize : false, - spawn : false, - sync : false, - toint32 : false, - version : false -}; - -exports.shelljs = { - target : false, - echo : false, - exit : false, - cd : false, - pwd : false, - ls : false, - find : false, - cp : false, - rm : false, - mv : false, - mkdir : false, - test : false, - cat : false, - sed : false, - grep : false, - which : false, - dirs : false, - pushd : false, - popd : false, - env : false, - exec : false, - chmod : false, - config : false, - error : false, - tempdir : false -}; - -exports.wsh = { - ActiveXObject : true, - Enumerator : true, - GetObject : true, - ScriptEngine : true, - ScriptEngineBuildVersion : true, - ScriptEngineMajorVersion : true, - ScriptEngineMinorVersion : true, - VBArray : true, - WSH : true, - WScript : true, - XDomainRequest : true -}; - -exports.dojo = { - dojo : false, - dijit : false, - dojox : false, - define : false, - "require": false -}; - -exports.jquery = { - "$" : false, - jQuery : false -}; - -exports.mootools = { - "$" : false, - "$$" : false, - Asset : false, - Browser : false, - Chain : false, - Class : false, - Color : false, - Cookie : false, - Core : false, - Document : false, - DomReady : false, - DOMEvent : false, - DOMReady : false, - Drag : false, - Element : false, - Elements : false, - Event : false, - Events : false, - Fx : false, - Group : false, - Hash : false, - HtmlTable : false, - Iframe : false, - IframeShim : false, - InputValidator: false, - instanceOf : false, - Keyboard : false, - Locale : false, - Mask : false, - MooTools : false, - Native : false, - Options : false, - OverText : false, - Request : false, - Scroller : false, - Slick : false, - Slider : false, - Sortables : false, - Spinner : false, - Swiff : false, - Tips : false, - Type : false, - typeOf : false, - URI : false, - Window : false -}; - -exports.prototypejs = { - "$" : false, - "$$" : false, - "$A" : false, - "$F" : false, - "$H" : false, - "$R" : false, - "$break" : false, - "$continue" : false, - "$w" : false, - Abstract : false, - Ajax : false, - Class : false, - Enumerable : false, - Element : false, - Event : false, - Field : false, - Form : false, - Hash : false, - Insertion : false, - ObjectRange : false, - PeriodicalExecuter: false, - Position : false, - Prototype : false, - Selector : false, - Template : false, - Toggle : false, - Try : false, - Autocompleter : false, - Builder : false, - Control : false, - Draggable : false, - Draggables : false, - Droppables : false, - Effect : false, - Sortable : false, - SortableObserver : false, - Sound : false, - Scriptaculous : false -}; - -exports.yui = { - YUI : false, - Y : false, - YUI_config: false -}; - - -})() -}, -{}], -4:[function(req,module,exports){ - -"use string"; -exports.unsafeString = - /@cc|<\/?|script|\]\s*\]|<\s*!|</i; -exports.unsafeChars = - /[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/; -exports.needEsc = - /[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/; - -exports.needEscGlobal = - /[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g; -exports.starSlash = /\*\//; -exports.identifier = /^([a-zA-Z_$][a-zA-Z0-9_$]*)$/; -exports.javascriptURL = /^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i; -exports.fallsThrough = /^\s*\/\*\s*falls?\sthrough\s*\*\/\s*$/; - -}, -{}], -5:[function(req,module,exports){ - - -var state = { - syntax: {}, - - reset: function () { - this.tokens = { - prev: null, - next: null, - curr: null - }; - - this.option = {}; - this.ignored = {}; - this.directive = {}; - this.jsonMode = false; - this.jsonWarnings = []; - this.lines = []; - this.tab = ""; - this.cache = {}; // Node.JS doesn't have Map. Sniff. - } -}; - -exports.state = state; - -}, -{}], -6:[function(req,module,exports){ -(function(){ - -exports.register = function (linter) { - - linter.on("Identifier", function style_scanProto(data) { - if (linter.getOption("proto")) { - return; - } - - if (data.name === "__proto__") { - linter.warn("W103", { - line: data.line, - char: data.char, - data: [ data.name ] - }); - } - }); - - linter.on("Identifier", function style_scanIterator(data) { - if (linter.getOption("iterator")) { - return; - } - - if (data.name === "__iterator__") { - linter.warn("W104", { - line: data.line, - char: data.char, - data: [ data.name ] - }); - } - }); - - linter.on("Identifier", function style_scanDangling(data) { - if (!linter.getOption("nomen")) { - return; - } - if (data.name === "_") { - return; - } - if (linter.getOption("node")) { - if (/^(__dirname|__filename)$/.test(data.name) && !data.isProperty) { - return; - } - } - - if (/^(_+.*|.*_+)$/.test(data.name)) { - linter.warn("W105", { - line: data.line, - char: data.from, - data: [ "dangling '_'", data.name ] - }); - } - }); - - linter.on("Identifier", function style_scanCamelCase(data) { - if (!linter.getOption("camelcase")) { - return; - } - - if (data.name.replace(/^_+/, "").indexOf("_") > -1 && !data.name.match(/^[A-Z0-9_]*$/)) { - linter.warn("W106", { - line: data.line, - char: data.from, - data: [ data.name ] - }); - } - }); - - linter.on("String", function style_scanQuotes(data) { - var quotmark = linter.getOption("quotmark"); - var code; - - if (!quotmark) { - return; - } - - if (quotmark === "single" && data.quote !== "'") { - code = "W109"; - } - - if (quotmark === "double" && data.quote !== "\"") { - code = "W108"; - } - - if (quotmark === true) { - if (!linter.getCache("quotmark")) { - linter.setCache("quotmark", data.quote); - } - - if (linter.getCache("quotmark") !== data.quote) { - code = "W110"; - } - } - - if (code) { - linter.warn(code, { - line: data.line, - char: data.char, - }); - } - }); - - linter.on("Number", function style_scanNumbers(data) { - if (data.value.charAt(0) === ".") { - linter.warn("W008", { - line: data.line, - char: data.char, - data: [ data.value ] - }); - } - - if (data.value.substr(data.value.length - 1) === ".") { - linter.warn("W047", { - line: data.line, - char: data.char, - data: [ data.value ] - }); - } - - if (/^00+/.test(data.value)) { - linter.warn("W046", { - line: data.line, - char: data.char, - data: [ data.value ] - }); - } - }); - - linter.on("String", function style_scanJavaScriptURLs(data) { - var re = /^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i; - - if (linter.getOption("scripturl")) { - return; - } - - if (re.test(data.value)) { - linter.warn("W107", { - line: data.line, - char: data.char - }); - } - }); -}; -})() -}, -{}], -7:[function(req,module,exports){ -(function(global){/*global window, global*/ -var functions = [ - [log, "log"] - , [info, "info"] - , [warn, "warn"] - , [error, "error"] - , [time, "time"] - , [timeEnd, "timeEnd"] - , [trace, "trace"] - , [dir, "dir"] - , [assert, "assert"] -] - -for (var i = 0; i < functions.length; i++) { - var tuple = functions[i] - var f = tuple[0] - var name = tuple[1] - - if (!console[name]) { - console[name] = f - } -} - -module.exports = console - -function log() {} - -function info() {} - -function warn() {} - -function error() {} - -function time(label) {} - -function timeEnd(label) {} - -function trace() {} - -function dir(object) {} - -function assert(expression) {} - -})(window) -}, -{}], -"jshint":[function(req,module,exports){ -module.exports=req('E/GbHF'); -}, -{}],"E/GbHF":[function(req,module,exports){ -(function(){/*! - * JSHint, by JSHint Community. - * - * This file (and this file only) is licensed under the same slightly modified - * MIT license that JSLint is. It stops evil-doers everywhere: - * - * Copyright (c) 2002 Douglas Crockford (www.JSLint.com) - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * The Software shall be used for Good, not Evil. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ - -var _ = req("underscore"); -var events = req("events"); -var vars = req("../shared/vars.js"); -var messages = req("../shared/messages.js"); -var Lexer = req("./lex.js").Lexer; -var reg = req("./reg.js"); -var state = req("./state.js").state; -var style = req("./style.js"); -var console = req("console-browserify"); - -var JSHINT = (function () { - - - var anonname, // The guessed name for anonymous functions. - api, // Extension API - bang = { - "<" : true, - "<=" : true, - "==" : true, - "===": true, - "!==": true, - "!=" : true, - ">" : true, - ">=" : true, - "+" : true, - "-" : true, - "*" : true, - "/" : true, - "%" : true - }, - boolOptions = { - asi : true, // if automatic semicolon insertion should be tolerated - bitwise : true, // if bitwise operators should not be allowed - boss : true, // if advanced usage of assignments should be allowed - browser : true, // if the standard browser globals should be predefined - camelcase : true, // if identifiers should be required in camel case - couch : true, // if CouchDB globals should be predefined - curly : true, // if curly braces around all blocks should be required - debug : true, // if debugger statements should be allowed - devel : true, // if logging globals should be predefined (console, alert, etc.) - dojo : true, // if Dojo Toolkit globals should be predefined - eqeqeq : true, // if === should be required - eqnull : true, // if == null comparisons should be tolerated - es3 : true, // if ES3 syntax should be allowed - es5 : true, // if ES5 syntax should be allowed (is now set per default) - esnext : true, // if es.next specific syntax should be allowed - moz : true, // if mozilla specific syntax should be allowed - evil : true, // if eval should be allowed - expr : true, // if ExpressionStatement should be allowed as Programs - forin : true, // if for in statements must filter - funcscope : true, // if only function scope should be used for scope tests - gcl : true, // if JSHint should be compatible with Google Closure Linter - globalstrict: true, // if global should be allowed (also enables 'strict') - immed : true, // if immediate invocations must be wrapped in parens - iterator : true, // if the `__iterator__` property should be allowed - jquery : true, // if jQuery globals should be predefined - lastsemic : true, // if semicolons may be ommitted for the trailing - laxbreak : true, // if line breaks should not be checked - laxcomma : true, // if line breaks should not be checked around commas - loopfunc : true, // if functions should be allowed to be defined within - mootools : true, // if MooTools globals should be predefined - multistr : true, // allow multiline strings - newcap : true, // if constructor names must be capitalized - noarg : true, // if arguments.caller and arguments.callee should be - node : true, // if the Node.js environment globals should be - noempty : true, // if empty blocks should be disallowed - nonew : true, // if using `new` for side-effects should be disallowed - nonstandard : true, // if non-standard (but widely adopted) globals should - nomen : true, // if names should be checked - onevar : true, // if only one var statement per function should be - passfail : true, // if the scan should stop on first error - phantom : true, // if PhantomJS symbols should be allowed - plusplus : true, // if increment/decrement should not be allowed - proto : true, // if the `__proto__` property should be allowed - prototypejs : true, // if Prototype and Scriptaculous globals should be - rhino : true, // if the Rhino environment globals should be predefined - shelljs : true, // if ShellJS globals should be predefined - undef : true, // if variables should be declared before used - scripturl : true, // if script-targeted URLs should be tolerated - shadow : true, // if variable shadowing should be tolerated - smarttabs : true, // if smarttabs should be tolerated - strict : true, // require the pragma - sub : true, // if all forms of subscript notation are tolerated - supernew : true, // if `new function () { ... };` and `new Object;` - trailing : true, // if trailing whitespace rules apply - validthis : true, // if 'this' inside a non-constructor function is valid. - withstmt : true, // if with statements should be allowed - white : true, // if strict whitespace rules apply - worker : true, // if Web Worker script symbols should be allowed - wsh : true, // if the Windows Scripting Host environment globals - yui : true, // YUI variables should be predefined - onecase : true, // if one case switch statements should be allowed - regexp : true, // if the . should not be allowed in regexp literals - regexdash : true // if unescaped first/last dash (-) inside brackets - }, - valOptions = { - maxlen : false, - indent : false, - maxerr : false, - predef : false, - quotmark : false, //'single'|'double'|true - scope : false, - maxstatements: false, // {int} max statements per function - maxdepth : false, // {int} max nested block depth per function - maxparams : false, // {int} max params per function - maxcomplexity: false, // {int} max cyclomatic complexity per function - unused : true, // warn if variables are unused. Available options: - latedef : false // warn if the variable is used before its definition - }, - invertedOptions = { - bitwise : true, - forin : true, - newcap : true, - nomen : true, - plusplus: true, - regexp : true, - undef : true, - white : true, - eqeqeq : true, - onevar : true, - strict : true - }, - renamedOptions = { - eqeq : "eqeqeq", - vars : "onevar", - windows: "wsh", - sloppy : "strict" - }, - - declared, // Globals that were declared using /*global ... */ syntax. - exported, // Variables that are used outside of the current file. - - functionicity = [ - "closure", "exception", "global", "label", - "outer", "unused", "var" - ], - - funct, // The current function - functions, // All of the functions - - global, // The global scope - implied, // Implied globals - inblock, - indent, - lookahead, - lex, - member, - membersOnly, - noreach, - predefined, // Global variables defined by option - - scope, // The current scope - stack, - unuseds, - urls, - warnings, - - extraModules = [], - emitter = new events.EventEmitter(); - - function checkOption(name, t) { - name = name.trim(); - - if (/^[+-]W\d{3}$/g.test(name)) { - return true; - } - - if (valOptions[name] === undefined && boolOptions[name] === undefined) { - if (t.type !== "jslint") { - error("E001", t, name); - return false; - } - } - - return true; - } - - function isString(obj) { - return Object.prototype.toString.call(obj) === "[object String]"; - } - - function isIdentifier(tkn, value) { - if (!tkn) - return false; - - if (!tkn.identifier || tkn.value !== value) - return false; - - return true; - } - - function isReserved(token) { - if (!token.reserved) { - return false; - } - - if (token.meta && token.meta.isFutureReservedWord) { - if (state.option.inES5(true) && !token.meta.es5) { - return false; - } - if (token.meta.strictOnly) { - if (!state.option.strict && !state.directive["use strict"]) { - return false; - } - } - - if (token.isProperty) { - return false; - } - } - - return true; - } - - function supplant(str, data) { - return str.replace(/\{([^{}]*)\}/g, function (a, b) { - var r = data[b]; - return typeof r === "string" || typeof r === "number" ? r : a; - }); - } - - function combine(t, o) { - var n; - for (n in o) { - if (_.has(o, n) && !_.has(JSHINT.blacklist, n)) { - t[n] = o[n]; - } - } - } - - function updatePredefined() { - Object.keys(JSHINT.blacklist).forEach(function (key) { - delete predefined[key]; - }); - } - - function assume() { - if (state.option.couch) { - combine(predefined, vars.couch); - } - - if (state.option.rhino) { - combine(predefined, vars.rhino); - } - - if (state.option.shelljs) { - combine(predefined, vars.shelljs); - } - - if (state.option.phantom) { - combine(predefined, vars.phantom); - } - - if (state.option.prototypejs) { - combine(predefined, vars.prototypejs); - } - - if (state.option.node) { - combine(predefined, vars.node); - } - - if (state.option.devel) { - combine(predefined, vars.devel); - } - - if (state.option.dojo) { - combine(predefined, vars.dojo); - } - - if (state.option.browser) { - combine(predefined, vars.browser); - } - - if (state.option.nonstandard) { - combine(predefined, vars.nonstandard); - } - - if (state.option.jquery) { - combine(predefined, vars.jquery); - } - - if (state.option.mootools) { - combine(predefined, vars.mootools); - } - - if (state.option.worker) { - combine(predefined, vars.worker); - } - - if (state.option.wsh) { - combine(predefined, vars.wsh); - } - - if (state.option.globalstrict && state.option.strict !== false) { - state.option.strict = true; - } - - if (state.option.yui) { - combine(predefined, vars.yui); - } - - state.option.inMoz = function (strict) { - return state.option.moz; - }; - - state.option.inESNext = function (strict) { - return state.option.moz || state.option.esnext; - }; - - state.option.inES5 = function (/* strict */) { - return !state.option.es3; - }; - - state.option.inES3 = function (strict) { - if (strict) { - return !state.option.moz && !state.option.esnext && state.option.es3; - } - return state.option.es3; - }; - } - function quit(code, line, chr) { - var percentage = Math.floor((line / state.lines.length) * 100); - var message = messages.errors[code].desc; - - throw { - name: "JSHintError", - line: line, - character: chr, - message: message + " (" + percentage + "% scanned).", - raw: message - }; - } - - function isundef(scope, code, token, a) { - return JSHINT.undefs.push([scope, code, token, a]); - } - - function warning(code, t, a, b, c, d) { - var ch, l, w, msg; - - if (/^W\d{3}$/.test(code)) { - if (state.ignored[code]) - return; - - msg = messages.warnings[code]; - } else if (/E\d{3}/.test(code)) { - msg = messages.errors[code]; - } else if (/I\d{3}/.test(code)) { - msg = messages.info[code]; - } - - t = t || state.tokens.next; - if (t.id === "(end)") { // `~ - t = state.tokens.curr; - } - - l = t.line || 0; - ch = t.from || 0; - - w = { - id: "(error)", - raw: msg.desc, - code: msg.code, - evidence: state.lines[l - 1] || "", - line: l, - character: ch, - scope: JSHINT.scope, - a: a, - b: b, - c: c, - d: d - }; - - w.reason = supplant(msg.desc, w); - JSHINT.errors.push(w); - - if (state.option.passfail) { - quit("E042", l, ch); - } - - warnings += 1; - if (warnings >= state.option.maxerr) { - quit("E043", l, ch); - } - - return w; - } - - function warningAt(m, l, ch, a, b, c, d) { - return warning(m, { - line: l, - from: ch - }, a, b, c, d); - } - - function error(m, t, a, b, c, d) { - warning(m, t, a, b, c, d); - } - - function errorAt(m, l, ch, a, b, c, d) { - return error(m, { - line: l, - from: ch - }, a, b, c, d); - } - function addInternalSrc(elem, src) { - var i; - i = { - id: "(internal)", - elem: elem, - value: src - }; - JSHINT.internals.push(i); - return i; - } - - function addlabel(t, type, tkn, islet) { - if (type === "exception") { - if (_.has(funct["(context)"], t)) { - if (funct[t] !== true && !state.option.node) { - warning("W002", state.tokens.next, t); - } - } - } - - if (_.has(funct, t) && !funct["(global)"]) { - if (funct[t] === true) { - if (state.option.latedef) { - if ((state.option.latedef === true && _.contains([funct[t], type], "unction")) || - !_.contains([funct[t], type], "unction")) { - warning("W003", state.tokens.next, t); - } - } - } else { - if (!state.option.shadow && type !== "exception" || - (funct["(blockscope)"].getlabel(t))) { - warning("W004", state.tokens.next, t); - } - } - } - if (funct["(blockscope)"] && funct["(blockscope)"].current.has(t)) { - error("E044", state.tokens.next, t); - } - if (islet) { - funct["(blockscope)"].current.add(t, type, state.tokens.curr); - } else { - - funct[t] = type; - - if (tkn) { - funct["(tokens)"][t] = tkn; - } - - if (funct["(global)"]) { - global[t] = funct; - if (_.has(implied, t)) { - if (state.option.latedef) { - if ((state.option.latedef === true && _.contains([funct[t], type], "unction")) || - !_.contains([funct[t], type], "unction")) { - warning("W003", state.tokens.next, t); - } - } - - delete implied[t]; - } - } else { - scope[t] = funct; - } - } - } - - function doOption() { - var nt = state.tokens.next; - var body = nt.body.split(",").map(function (s) { return s.trim(); }); - var predef = {}; - - if (nt.type === "globals") { - body.forEach(function (g) { - g = g.split(":"); - var key = g[0]; - var val = g[1]; - - if (key.charAt(0) === "-") { - key = key.slice(1); - val = false; - - JSHINT.blacklist[key] = key; - updatePredefined(); - } else { - predef[key] = (val === "true"); - } - }); - - combine(predefined, predef); - - for (var key in predef) { - if (_.has(predef, key)) { - declared[key] = nt; - } - } - } - - if (nt.type === "exported") { - body.forEach(function (e) { - exported[e] = true; - }); - } - - if (nt.type === "members") { - membersOnly = membersOnly || {}; - - body.forEach(function (m) { - var ch1 = m.charAt(0); - var ch2 = m.charAt(m.length - 1); - - if (ch1 === ch2 && (ch1 === "\"" || ch1 === "'")) { - m = m - .substr(1, m.length - 2) - .replace("\\b", "\b") - .replace("\\t", "\t") - .replace("\\n", "\n") - .replace("\\v", "\v") - .replace("\\f", "\f") - .replace("\\r", "\r") - .replace("\\\\", "\\") - .replace("\\\"", "\""); - } - - membersOnly[m] = false; - }); - } - - var numvals = [ - "maxstatements", - "maxparams", - "maxdepth", - "maxcomplexity", - "maxerr", - "maxlen", - "indent" - ]; - - if (nt.type === "jshint" || nt.type === "jslint") { - body.forEach(function (g) { - g = g.split(":"); - var key = (g[0] || "").trim(); - var val = (g[1] || "").trim(); - - if (!checkOption(key, nt)) { - return; - } - - if (numvals.indexOf(key) >= 0) { - if (val !== "false") { - val = +val; - - if (typeof val !== "number" || !isFinite(val) || val <= 0 || Math.floor(val) !== val) { - error("E032", nt, g[1].trim()); - return; - } - - if (key === "indent") { - state.option["(explicitIndent)"] = true; - } - state.option[key] = val; - } else { - if (key === "indent") { - state.option["(explicitIndent)"] = false; - } else { - state.option[key] = false; - } - } - - return; - } - - if (key === "validthis") { - if (funct["(global)"]) { - error("E009"); - } else { - if (val === "true" || val === "false") { - state.option.validthis = (val === "true"); - } else { - error("E002", nt); - } - } - return; - } - - if (key === "quotmark") { - switch (val) { - case "true": - case "false": - state.option.quotmark = (val === "true"); - break; - case "double": - case "single": - state.option.quotmark = val; - break; - default: - error("E002", nt); - } - return; - } - - if (key === "unused") { - switch (val) { - case "true": - state.option.unused = true; - break; - case "false": - state.option.unused = false; - break; - case "vars": - case "strict": - state.option.unused = val; - break; - default: - error("E002", nt); - } - return; - } - - if (key === "latedef") { - switch (val) { - case "true": - state.option.latedef = true; - break; - case "false": - state.option.latedef = false; - break; - case "nofunc": - state.option.latedef = "nofunc"; - break; - default: - error("E002", nt); - } - return; - } - - var match = /^([+-])(W\d{3})$/g.exec(key); - if (match) { - state.ignored[match[2]] = (match[1] === "-"); - return; - } - - var tn; - if (val === "true" || val === "false") { - if (nt.type === "jslint") { - tn = renamedOptions[key] || key; - state.option[tn] = (val === "true"); - - if (invertedOptions[tn] !== undefined) { - state.option[tn] = !state.option[tn]; - } - } else { - state.option[key] = (val === "true"); - } - - if (key === "newcap") { - state.option["(explicitNewcap)"] = true; - } - return; - } - - error("E002", nt); - }); - - assume(); - } - } - - function peek(p) { - var i = p || 0, j = 0, t; - - while (j <= i) { - t = lookahead[j]; - if (!t) { - t = lookahead[j] = lex.token(); - } - j += 1; - } - return t; - } - - function advance(id, t) { - switch (state.tokens.curr.id) { - case "(number)": - if (state.tokens.next.id === ".") { - warning("W005", state.tokens.curr); - } - break; - case "-": - if (state.tokens.next.id === "-" || state.tokens.next.id === "--") { - warning("W006"); - } - break; - case "+": - if (state.tokens.next.id === "+" || state.tokens.next.id === "++") { - warning("W007"); - } - break; - } - - if (state.tokens.curr.type === "(string)" || state.tokens.curr.identifier) { - anonname = state.tokens.curr.value; - } - - if (id && state.tokens.next.id !== id) { - if (t) { - if (state.tokens.next.id === "(end)") { - error("E019", t, t.id); - } else { - error("E020", state.tokens.next, id, t.id, t.line, state.tokens.next.value); - } - } else if (state.tokens.next.type !== "(identifier)" || state.tokens.next.value !== id) { - warning("W116", state.tokens.next, id, state.tokens.next.value); - } - } - - state.tokens.prev = state.tokens.curr; - state.tokens.curr = state.tokens.next; - for (;;) { - state.tokens.next = lookahead.shift() || lex.token(); - - if (!state.tokens.next) { // No more tokens left, give up - quit("E041", state.tokens.curr.line); - } - - if (state.tokens.next.id === "(end)" || state.tokens.next.id === "(error)") { - return; - } - - if (state.tokens.next.check) { - state.tokens.next.check(); - } - - if (state.tokens.next.isSpecial) { - doOption(); - } else { - if (state.tokens.next.id !== "(endline)") { - break; - } - } - } - } - - function expression(rbp, initial) { - var left, isArray = false, isObject = false, isLetExpr = false; - if (!initial && state.tokens.next.value === "let" && peek(0).value === "(") { - if (!state.option.inMoz(true)) { - warning("W118", state.tokens.next, "let expressions"); - } - isLetExpr = true; - funct["(blockscope)"].stack(); - advance("let"); - advance("("); - state.syntax["let"].fud.call(state.syntax["let"].fud, false); - advance(")"); - } - - if (state.tokens.next.id === "(end)") - error("E006", state.tokens.curr); - - advance(); - - if (initial) { - anonname = "anonymous"; - funct["(verb)"] = state.tokens.curr.value; - } - - if (initial === true && state.tokens.curr.fud) { - left = state.tokens.curr.fud(); - } else { - if (state.tokens.curr.nud) { - left = state.tokens.curr.nud(); - } else { - error("E030", state.tokens.curr, state.tokens.curr.id); - } - - var end_of_expr = state.tokens.next.identifier && - !state.tokens.curr.led && - state.tokens.curr.line !== state.tokens.next.line; - while (rbp < state.tokens.next.lbp && !end_of_expr) { - isArray = state.tokens.curr.value === "Array"; - isObject = state.tokens.curr.value === "Object"; - if (left && (left.value || (left.first && left.first.value))) { - if (left.value !== "new" || - (left.first && left.first.value && left.first.value === ".")) { - isArray = false; - if (left.value !== state.tokens.curr.value) { - isObject = false; - } - } - } - - advance(); - - if (isArray && state.tokens.curr.id === "(" && state.tokens.next.id === ")") { - warning("W009", state.tokens.curr); - } - - if (isObject && state.tokens.curr.id === "(" && state.tokens.next.id === ")") { - warning("W010", state.tokens.curr); - } - - if (left && state.tokens.curr.led) { - left = state.tokens.curr.led(left); - } else { - error("E033", state.tokens.curr, state.tokens.curr.id); - } - } - } - if (isLetExpr) { - funct["(blockscope)"].unstack(); - } - return left; - } - - function adjacent(left, right) { - left = left || state.tokens.curr; - right = right || state.tokens.next; - if (state.option.white) { - if (left.character !== right.from && left.line === right.line) { - left.from += (left.character - left.from); - warning("W011", left, left.value); - } - } - } - - function nobreak(left, right) { - left = left || state.tokens.curr; - right = right || state.tokens.next; - if (state.option.white && (left.character !== right.from || left.line !== right.line)) { - warning("W012", right, right.value); - } - } - - function nospace(left, right) { - left = left || state.tokens.curr; - right = right || state.tokens.next; - if (state.option.white && !left.comment) { - if (left.line === right.line) { - adjacent(left, right); - } - } - } - - function nonadjacent(left, right) { - if (state.option.white) { - left = left || state.tokens.curr; - right = right || state.tokens.next; - - if (left.value === ";" && right.value === ";") { - return; - } - - if (left.line === right.line && left.character === right.from) { - left.from += (left.character - left.from); - warning("W013", left, left.value); - } - } - } - - function nobreaknonadjacent(left, right) { - left = left || state.tokens.curr; - right = right || state.tokens.next; - if (!state.option.laxbreak && left.line !== right.line) { - warning("W014", right, right.id); - } else if (state.option.white) { - left = left || state.tokens.curr; - right = right || state.tokens.next; - if (left.character === right.from) { - left.from += (left.character - left.from); - warning("W013", left, left.value); - } - } - } - - function indentation(bias) { - if (!state.option.white && !state.option["(explicitIndent)"]) { - return; - } - - if (state.tokens.next.id === "(end)") { - return; - } - - var i = indent + (bias || 0); - if (state.tokens.next.from !== i) { - warning("W015", state.tokens.next, state.tokens.next.value, i, state.tokens.next.from); - } - } - - function nolinebreak(t) { - t = t || state.tokens.curr; - if (t.line !== state.tokens.next.line) { - warning("E022", t, t.value); - } - } - - - function comma(opts) { - opts = opts || {}; - - if (!opts.peek) { - if (state.tokens.curr.line !== state.tokens.next.line) { - if (!state.option.laxcomma) { - if (comma.first) { - warning("I001"); - comma.first = false; - } - warning("W014", state.tokens.curr, state.tokens.next.value); - } - } else if (!state.tokens.curr.comment && - state.tokens.curr.character !== state.tokens.next.from && state.option.white) { - state.tokens.curr.from += (state.tokens.curr.character - state.tokens.curr.from); - warning("W011", state.tokens.curr, state.tokens.curr.value); - } - - advance(","); - } - - if (state.tokens.next.value !== "]" && state.tokens.next.value !== "}") { - nonadjacent(state.tokens.curr, state.tokens.next); - } - - if (state.tokens.next.identifier && !(opts.property && state.option.inES5())) { - switch (state.tokens.next.value) { - case "break": - case "case": - case "catch": - case "continue": - case "default": - case "do": - case "else": - case "finally": - case "for": - case "if": - case "in": - case "instanceof": - case "return": - case "yield": - case "switch": - case "throw": - case "try": - case "var": - case "let": - case "while": - case "with": - error("E024", state.tokens.next, state.tokens.next.value); - return false; - } - } - - if (state.tokens.next.type === "(punctuator)") { - switch (state.tokens.next.value) { - case "}": - case "]": - case ",": - if (opts.allowTrailing) { - return true; - } - case ")": - error("E024", state.tokens.next, state.tokens.next.value); - return false; - } - } - return true; - } - - function symbol(s, p) { - var x = state.syntax[s]; - if (!x || typeof x !== "object") { - state.syntax[s] = x = { - id: s, - lbp: p, - value: s - }; - } - return x; - } - - function delim(s) { - return symbol(s, 0); - } - - function stmt(s, f) { - var x = delim(s); - x.identifier = x.reserved = true; - x.fud = f; - return x; - } - - function blockstmt(s, f) { - var x = stmt(s, f); - x.block = true; - return x; - } - - function reserveName(x) { - var c = x.id.charAt(0); - if ((c >= "a" && c <= "z") || (c >= "A" && c <= "Z")) { - x.identifier = x.reserved = true; - } - return x; - } - - function prefix(s, f) { - var x = symbol(s, 150); - reserveName(x); - x.nud = (typeof f === "function") ? f : function () { - this.right = expression(150); - this.arity = "unary"; - if (this.id === "++" || this.id === "--") { - if (state.option.plusplus) { - warning("W016", this, this.id); - } else if ((!this.right.identifier || isReserved(this.right)) && - this.right.id !== "." && this.right.id !== "[") { - warning("W017", this); - } - } - return this; - }; - return x; - } - - function type(s, f) { - var x = delim(s); - x.type = s; - x.nud = f; - return x; - } - - function reserve(name, func) { - var x = type(name, func); - x.identifier = true; - x.reserved = true; - return x; - } - - function FutureReservedWord(name, meta) { - var x = type(name, (meta && meta.nud) || function () { - return this; - }); - - meta = meta || {}; - meta.isFutureReservedWord = true; - - x.value = name; - x.identifier = true; - x.reserved = true; - x.meta = meta; - - return x; - } - - function reservevar(s, v) { - return reserve(s, function () { - if (typeof v === "function") { - v(this); - } - return this; - }); - } - - function infix(s, f, p, w) { - var x = symbol(s, p); - reserveName(x); - x.led = function (left) { - if (!w) { - nobreaknonadjacent(state.tokens.prev, state.tokens.curr); - nonadjacent(state.tokens.curr, state.tokens.next); - } - if (s === "in" && left.id === "!") { - warning("W018", left, "!"); - } - if (typeof f === "function") { - return f(left, this); - } else { - this.left = left; - this.right = expression(p); - return this; - } - }; - return x; - } - - - function application(s) { - var x = symbol(s, 42); - - x.led = function (left) { - if (!state.option.inESNext()) { - warning("W104", state.tokens.curr, "arrow function syntax (=>)"); - } - - nobreaknonadjacent(state.tokens.prev, state.tokens.curr); - nonadjacent(state.tokens.curr, state.tokens.next); - - this.left = left; - this.right = doFunction(undefined, undefined, false, left); - return this; - }; - return x; - } - - function relation(s, f) { - var x = symbol(s, 100); - - x.led = function (left) { - nobreaknonadjacent(state.tokens.prev, state.tokens.curr); - nonadjacent(state.tokens.curr, state.tokens.next); - var right = expression(100); - - if (isIdentifier(left, "NaN") || isIdentifier(right, "NaN")) { - warning("W019", this); - } else if (f) { - f.apply(this, [left, right]); - } - - if (!left || !right) { - quit("E041", state.tokens.curr.line); - } - - if (left.id === "!") { - warning("W018", left, "!"); - } - - if (right.id === "!") { - warning("W018", right, "!"); - } - - this.left = left; - this.right = right; - return this; - }; - return x; - } - - function isPoorRelation(node) { - return node && - ((node.type === "(number)" && +node.value === 0) || - (node.type === "(string)" && node.value === "") || - (node.type === "null" && !state.option.eqnull) || - node.type === "true" || - node.type === "false" || - node.type === "undefined"); - } - - function assignop(s) { - symbol(s, 20).exps = true; - - return infix(s, function (left, that) { - that.left = left; - - if (left) { - if (predefined[left.value] === false && - scope[left.value]["(global)"] === true) { - warning("W020", left); - } else if (left["function"]) { - warning("W021", left, left.value); - } - - if (funct[left.value] === "const") { - error("E013", left, left.value); - } - - if (left.id === ".") { - if (!left.left) { - warning("E031", that); - } else if (left.left.value === "arguments" && !state.directive["use strict"]) { - warning("E031", that); - } - - that.right = expression(19); - return that; - } else if (left.id === "[") { - if (state.tokens.curr.left.first) { - state.tokens.curr.left.first.forEach(function (t) { - if (funct[t.value] === "const") { - error("E013", t, t.value); - } - }); - } else if (!left.left) { - warning("E031", that); - } else if (left.left.value === "arguments" && !state.directive["use strict"]) { - warning("E031", that); - } - that.right = expression(19); - return that; - } else if (left.identifier && !isReserved(left)) { - if (funct[left.value] === "exception") { - warning("W022", left); - } - that.right = expression(19); - return that; - } - - if (left === state.syntax["function"]) { - warning("W023", state.tokens.curr); - } - } - - error("E031", that); - }, 20); - } - - - function bitwise(s, f, p) { - var x = symbol(s, p); - reserveName(x); - x.led = (typeof f === "function") ? f : function (left) { - if (state.option.bitwise) { - warning("W016", this, this.id); - } - this.left = left; - this.right = expression(p); - return this; - }; - return x; - } - - - function bitwiseassignop(s) { - symbol(s, 20).exps = true; - return infix(s, function (left, that) { - if (state.option.bitwise) { - warning("W016", that, that.id); - } - nonadjacent(state.tokens.prev, state.tokens.curr); - nonadjacent(state.tokens.curr, state.tokens.next); - if (left) { - if (left.id === "." || left.id === "[" || - (left.identifier && !isReserved(left))) { - expression(19); - return that; - } - if (left === state.syntax["function"]) { - warning("W023", state.tokens.curr); - } - return that; - } - error("E031", that); - }, 20); - } - - - function suffix(s) { - var x = symbol(s, 150); - - x.led = function (left) { - if (state.option.plusplus) { - warning("W016", this, this.id); - } else if ((!left.identifier || isReserved(left)) && left.id !== "." && left.id !== "[") { - warning("W017", this); - } - - this.left = left; - return this; - }; - return x; - } - - function optionalidentifier(fnparam, prop) { - if (!state.tokens.next.identifier) { - return; - } - - advance(); - - var curr = state.tokens.curr; - var meta = curr.meta || {}; - var val = state.tokens.curr.value; - - if (!isReserved(curr)) { - return val; - } - - if (prop) { - if (state.option.inES5() || meta.isFutureReservedWord) { - return val; - } - } - - if (fnparam && val === "undefined") { - return val; - } - if (prop && !api.getCache("displayed:I002")) { - api.setCache("displayed:I002", true); - warning("I002"); - } - - warning("W024", state.tokens.curr, state.tokens.curr.id); - return val; - } - function identifier(fnparam, prop) { - var i = optionalidentifier(fnparam, prop); - if (i) { - return i; - } - if (state.tokens.curr.id === "function" && state.tokens.next.id === "(") { - warning("W025"); - } else { - error("E030", state.tokens.next, state.tokens.next.value); - } - } - - - function reachable(s) { - var i = 0, t; - if (state.tokens.next.id !== ";" || noreach) { - return; - } - for (;;) { - t = peek(i); - if (t.reach) { - return; - } - if (t.id !== "(endline)") { - if (t.id === "function") { - if (!state.option.latedef) { - break; - } - - warning("W026", t); - break; - } - - warning("W027", t, t.value, s); - break; - } - i += 1; - } - } - - - function statement(noindent) { - var values; - var i = indent, r, s = scope, t = state.tokens.next; - - if (t.id === ";") { - advance(";"); - return; - } - var res = isReserved(t); - - if (res && t.meta && t.meta.isFutureReservedWord && peek().id === ":") { - warning("W024", t, t.id); - res = false; - } - if (_.has(["[", "{"], t.value)) { - if (lookupBlockType().isDestAssign) { - if (!state.option.inESNext()) { - warning("W104", state.tokens.curr, "destructuring expression"); - } - values = destructuringExpression(); - values.forEach(function (tok) { - isundef(funct, "W117", tok.token, tok.id); - }); - advance("="); - destructuringExpressionMatch(values, expression(5, true)); - advance(";"); - return; - } - } - if (t.identifier && !res && peek().id === ":") { - advance(); - advance(":"); - scope = Object.create(s); - addlabel(t.value, "label"); - - if (!state.tokens.next.labelled && state.tokens.next.value !== "{") { - warning("W028", state.tokens.next, t.value, state.tokens.next.value); - } - - state.tokens.next.label = t.value; - t = state.tokens.next; - } - - if (t.id === "{") { - block(true, true); - return; - } - - if (!noindent) { - indentation(); - } - r = expression(0, true); - - if (!t.block) { - if (!state.option.expr && (!r || !r.exps)) { - warning("W030", state.tokens.curr); - } else if (state.option.nonew && r && r.left && r.id === "(" && r.left.id === "new") { - warning("W031", t); - } - - if (state.tokens.next.id !== ";") { - if (!state.option.asi) { - if (!state.option.lastsemic || state.tokens.next.id !== "}" || - state.tokens.next.line !== state.tokens.curr.line) { - warningAt("W033", state.tokens.curr.line, state.tokens.curr.character); - } - } - } else { - adjacent(state.tokens.curr, state.tokens.next); - advance(";"); - nonadjacent(state.tokens.curr, state.tokens.next); - } - } - - indent = i; - scope = s; - return r; - } - - - function statements(startLine) { - var a = [], p; - - while (!state.tokens.next.reach && state.tokens.next.id !== "(end)") { - if (state.tokens.next.id === ";") { - p = peek(); - - if (!p || (p.id !== "(" && p.id !== "[")) { - warning("W032"); - } - - advance(";"); - } else { - a.push(statement(startLine === state.tokens.next.line)); - } - } - return a; - } - function directives() { - var i, p, pn; - - for (;;) { - if (state.tokens.next.id === "(string)") { - p = peek(0); - if (p.id === "(endline)") { - i = 1; - do { - pn = peek(i); - i = i + 1; - } while (pn.id === "(endline)"); - - if (pn.id !== ";") { - if (pn.id !== "(string)" && pn.id !== "(number)" && - pn.id !== "(regexp)" && pn.identifier !== true && - pn.id !== "}") { - break; - } - warning("W033", state.tokens.next); - } else { - p = pn; - } - } else if (p.id === "}") { - warning("W033", p); - } else if (p.id !== ";") { - break; - } - - indentation(); - advance(); - if (state.directive[state.tokens.curr.value]) { - warning("W034", state.tokens.curr, state.tokens.curr.value); - } - - if (state.tokens.curr.value === "use strict") { - if (!state.option["(explicitNewcap)"]) - state.option.newcap = true; - state.option.undef = true; - } - state.directive[state.tokens.curr.value] = true; - - if (p.id === ";") { - advance(";"); - } - continue; - } - break; - } - } - function block(ordinary, stmt, isfunc, isfatarrow) { - var a, - b = inblock, - old_indent = indent, - m, - s = scope, - t, - line, - d; - - inblock = ordinary; - - if (!ordinary || !state.option.funcscope) - scope = Object.create(scope); - - nonadjacent(state.tokens.curr, state.tokens.next); - t = state.tokens.next; - - var metrics = funct["(metrics)"]; - metrics.nestedBlockDepth += 1; - metrics.verifyMaxNestedBlockDepthPerFunction(); - - if (state.tokens.next.id === "{") { - advance("{"); - funct["(blockscope)"].stack(); - - line = state.tokens.curr.line; - if (state.tokens.next.id !== "}") { - indent += state.option.indent; - while (!ordinary && state.tokens.next.from > indent) { - indent += state.option.indent; - } - - if (isfunc) { - m = {}; - for (d in state.directive) { - if (_.has(state.directive, d)) { - m[d] = state.directive[d]; - } - } - directives(); - - if (state.option.strict && funct["(context)"]["(global)"]) { - if (!m["use strict"] && !state.directive["use strict"]) { - warning("E007"); - } - } - } - - a = statements(line); - - metrics.statementCount += a.length; - - if (isfunc) { - state.directive = m; - } - - indent -= state.option.indent; - if (line !== state.tokens.next.line) { - indentation(); - } - } else if (line !== state.tokens.next.line) { - indentation(); - } - advance("}", t); - - funct["(blockscope)"].unstack(); - - indent = old_indent; - } else if (!ordinary) { - if (isfunc) { - m = {}; - if (stmt && !isfatarrow && !state.option.inMoz(true)) { - error("W118", state.tokens.curr, "function closure expressions"); - } - - if (!stmt) { - for (d in state.directive) { - if (_.has(state.directive, d)) { - m[d] = state.directive[d]; - } - } - } - expression(5); - - if (state.option.strict && funct["(context)"]["(global)"]) { - if (!m["use strict"] && !state.directive["use strict"]) { - warning("E007"); - } - } - } else { - error("E021", state.tokens.next, "{", state.tokens.next.value); - } - } else { - funct["(nolet)"] = true; - - if (!stmt || state.option.curly) { - warning("W116", state.tokens.next, "{", state.tokens.next.value); - } - - noreach = true; - indent += state.option.indent; - a = [statement(state.tokens.next.line === state.tokens.curr.line)]; - indent -= state.option.indent; - noreach = false; - - delete funct["(nolet)"]; - } - funct["(verb)"] = null; - if (!ordinary || !state.option.funcscope) scope = s; - inblock = b; - if (ordinary && state.option.noempty && (!a || a.length === 0)) { - warning("W035"); - } - metrics.nestedBlockDepth -= 1; - return a; - } - - - function countMember(m) { - if (membersOnly && typeof membersOnly[m] !== "boolean") { - warning("W036", state.tokens.curr, m); - } - if (typeof member[m] === "number") { - member[m] += 1; - } else { - member[m] = 1; - } - } - - - function note_implied(tkn) { - var name = tkn.value, line = tkn.line, a = implied[name]; - if (typeof a === "function") { - a = false; - } - - if (!a) { - a = [line]; - implied[name] = a; - } else if (a[a.length - 1] !== line) { - a.push(line); - } - } - - type("(number)", function () { - return this; - }); - - type("(string)", function () { - return this; - }); - - state.syntax["(identifier)"] = { - type: "(identifier)", - lbp: 0, - identifier: true, - nud: function () { - var v = this.value, - s = scope[v], - f; - - if (typeof s === "function") { - s = undefined; - } else if (typeof s === "boolean") { - f = funct; - funct = functions[0]; - addlabel(v, "var"); - s = funct; - funct = f; - } - var block; - if (_.has(funct, "(blockscope)")) { - block = funct["(blockscope)"].getlabel(v); - } - if (funct === s || block) { - switch (block ? block[v]["(type)"] : funct[v]) { - case "unused": - if (block) block[v]["(type)"] = "var"; - else funct[v] = "var"; - break; - case "unction": - if (block) block[v]["(type)"] = "function"; - else funct[v] = "function"; - this["function"] = true; - break; - case "function": - this["function"] = true; - break; - case "label": - warning("W037", state.tokens.curr, v); - break; - } - } else if (funct["(global)"]) { - - if (typeof predefined[v] !== "boolean") { - if (!(anonname === "typeof" || anonname === "delete") || - (state.tokens.next && (state.tokens.next.value === "." || - state.tokens.next.value === "["))) { - - if (!funct["(comparray)"].check(v)) { - isundef(funct, "W117", state.tokens.curr, v); - } - } - } - - note_implied(state.tokens.curr); - } else { - - switch (funct[v]) { - case "closure": - case "function": - case "var": - case "unused": - warning("W038", state.tokens.curr, v); - break; - case "label": - warning("W037", state.tokens.curr, v); - break; - case "outer": - case "global": - break; - default: - if (s === true) { - funct[v] = true; - } else if (s === null) { - warning("W039", state.tokens.curr, v); - note_implied(state.tokens.curr); - } else if (typeof s !== "object") { - if (!(anonname === "typeof" || anonname === "delete") || - (state.tokens.next && - (state.tokens.next.value === "." || state.tokens.next.value === "["))) { - - isundef(funct, "W117", state.tokens.curr, v); - } - funct[v] = true; - note_implied(state.tokens.curr); - } else { - switch (s[v]) { - case "function": - case "unction": - this["function"] = true; - s[v] = "closure"; - funct[v] = s["(global)"] ? "global" : "outer"; - break; - case "var": - case "unused": - s[v] = "closure"; - funct[v] = s["(global)"] ? "global" : "outer"; - break; - case "closure": - funct[v] = s["(global)"] ? "global" : "outer"; - break; - case "label": - warning("W037", state.tokens.curr, v); - } - } - } - } - return this; - }, - led: function () { - error("E033", state.tokens.next, state.tokens.next.value); - } - }; - - type("(regexp)", function () { - return this; - }); - - delim("(endline)"); - delim("(begin)"); - delim("(end)").reach = true; - delim("(error)").reach = true; - delim("}").reach = true; - delim(")"); - delim("]"); - delim("\"").reach = true; - delim("'").reach = true; - delim(";"); - delim(":").reach = true; - delim("#"); - - reserve("else"); - reserve("case").reach = true; - reserve("catch"); - reserve("default").reach = true; - reserve("finally"); - reservevar("arguments", function (x) { - if (state.directive["use strict"] && funct["(global)"]) { - warning("E008", x); - } - }); - reservevar("eval"); - reservevar("false"); - reservevar("Infinity"); - reservevar("null"); - reservevar("this", function (x) { - if (state.directive["use strict"] && !state.option.validthis && ((funct["(statement)"] && - funct["(name)"].charAt(0) > "Z") || funct["(global)"])) { - warning("W040", x); - } - }); - reservevar("true"); - reservevar("undefined"); - - assignop("=", "assign", 20); - assignop("+=", "assignadd", 20); - assignop("-=", "assignsub", 20); - assignop("*=", "assignmult", 20); - assignop("/=", "assigndiv", 20).nud = function () { - error("E014"); - }; - assignop("%=", "assignmod", 20); - - bitwiseassignop("&=", "assignbitand", 20); - bitwiseassignop("|=", "assignbitor", 20); - bitwiseassignop("^=", "assignbitxor", 20); - bitwiseassignop("<<=", "assignshiftleft", 20); - bitwiseassignop(">>=", "assignshiftright", 20); - bitwiseassignop(">>>=", "assignshiftrightunsigned", 20); - infix(",", function (left, that) { - var expr; - that.exprs = [left]; - if (!comma({peek: true})) { - return that; - } - while (true) { - if (!(expr = expression(5))) { - break; - } - that.exprs.push(expr); - if (state.tokens.next.value !== "," || !comma()) { - break; - } - } - return that; - }, 5, true); - infix("?", function (left, that) { - that.left = left; - that.right = expression(10); - advance(":"); - that["else"] = expression(10); - return that; - }, 30); - - infix("||", "or", 40); - infix("&&", "and", 50); - bitwise("|", "bitor", 70); - bitwise("^", "bitxor", 80); - bitwise("&", "bitand", 90); - relation("==", function (left, right) { - var eqnull = state.option.eqnull && (left.value === "null" || right.value === "null"); - - if (!eqnull && state.option.eqeqeq) - warning("W116", this, "===", "=="); - else if (isPoorRelation(left)) - warning("W041", this, "===", left.value); - else if (isPoorRelation(right)) - warning("W041", this, "===", right.value); - - return this; - }); - relation("==="); - relation("!=", function (left, right) { - var eqnull = state.option.eqnull && - (left.value === "null" || right.value === "null"); - - if (!eqnull && state.option.eqeqeq) { - warning("W116", this, "!==", "!="); - } else if (isPoorRelation(left)) { - warning("W041", this, "!==", left.value); - } else if (isPoorRelation(right)) { - warning("W041", this, "!==", right.value); - } - return this; - }); - relation("!=="); - relation("<"); - relation(">"); - relation("<="); - relation(">="); - bitwise("<<", "shiftleft", 120); - bitwise(">>", "shiftright", 120); - bitwise(">>>", "shiftrightunsigned", 120); - infix("in", "in", 120); - infix("instanceof", "instanceof", 120); - infix("+", function (left, that) { - var right = expression(130); - if (left && right && left.id === "(string)" && right.id === "(string)") { - left.value += right.value; - left.character = right.character; - if (!state.option.scripturl && reg.javascriptURL.test(left.value)) { - warning("W050", left); - } - return left; - } - that.left = left; - that.right = right; - return that; - }, 130); - prefix("+", "num"); - prefix("+++", function () { - warning("W007"); - this.right = expression(150); - this.arity = "unary"; - return this; - }); - infix("+++", function (left) { - warning("W007"); - this.left = left; - this.right = expression(130); - return this; - }, 130); - infix("-", "sub", 130); - prefix("-", "neg"); - prefix("---", function () { - warning("W006"); - this.right = expression(150); - this.arity = "unary"; - return this; - }); - infix("---", function (left) { - warning("W006"); - this.left = left; - this.right = expression(130); - return this; - }, 130); - infix("*", "mult", 140); - infix("/", "div", 140); - infix("%", "mod", 140); - - suffix("++", "postinc"); - prefix("++", "preinc"); - state.syntax["++"].exps = true; - - suffix("--", "postdec"); - prefix("--", "predec"); - state.syntax["--"].exps = true; - prefix("delete", function () { - var p = expression(5); - if (!p || (p.id !== "." && p.id !== "[")) { - warning("W051"); - } - this.first = p; - return this; - }).exps = true; - - prefix("~", function () { - if (state.option.bitwise) { - warning("W052", this, "~"); - } - expression(150); - return this; - }); - - prefix("...", function () { - if (!state.option.inESNext()) { - warning("W104", this, "spread/rest operator"); - } - if (!state.tokens.next.identifier) { - error("E030", state.tokens.next, state.tokens.next.value); - } - expression(150); - return this; - }); - - prefix("!", function () { - this.right = expression(150); - this.arity = "unary"; - - if (!this.right) { // '!' followed by nothing? Give up. - quit("E041", this.line || 0); - } - - if (bang[this.right.id] === true) { - warning("W018", this, "!"); - } - return this; - }); - - prefix("typeof", "typeof"); - prefix("new", function () { - var c = expression(155), i; - if (c && c.id !== "function") { - if (c.identifier) { - c["new"] = true; - switch (c.value) { - case "Number": - case "String": - case "Boolean": - case "Math": - case "JSON": - warning("W053", state.tokens.prev, c.value); - break; - case "Function": - if (!state.option.evil) { - warning("W054"); - } - break; - case "Date": - case "RegExp": - break; - default: - if (c.id !== "function") { - i = c.value.substr(0, 1); - if (state.option.newcap && (i < "A" || i > "Z") && !_.has(global, c.value)) { - warning("W055", state.tokens.curr); - } - } - } - } else { - if (c.id !== "." && c.id !== "[" && c.id !== "(") { - warning("W056", state.tokens.curr); - } - } - } else { - if (!state.option.supernew) - warning("W057", this); - } - adjacent(state.tokens.curr, state.tokens.next); - if (state.tokens.next.id !== "(" && !state.option.supernew) { - warning("W058", state.tokens.curr, state.tokens.curr.value); - } - this.first = c; - return this; - }); - state.syntax["new"].exps = true; - - prefix("void").exps = true; - - infix(".", function (left, that) { - adjacent(state.tokens.prev, state.tokens.curr); - nobreak(); - var m = identifier(false, true); - - if (typeof m === "string") { - countMember(m); - } - - that.left = left; - that.right = m; - - if (m && m === "hasOwnProperty" && state.tokens.next.value === "=") { - warning("W001"); - } - - if (left && left.value === "arguments" && (m === "callee" || m === "caller")) { - if (state.option.noarg) - warning("W059", left, m); - else if (state.directive["use strict"]) - error("E008"); - } else if (!state.option.evil && left && left.value === "document" && - (m === "write" || m === "writeln")) { - warning("W060", left); - } - - if (!state.option.evil && (m === "eval" || m === "execScript")) { - warning("W061"); - } - - return that; - }, 160, true); - - infix("(", function (left, that) { - if (state.tokens.prev.id !== "}" && state.tokens.prev.id !== ")") { - nobreak(state.tokens.prev, state.tokens.curr); - } - - nospace(); - if (state.option.immed && left && !left.immed && left.id === "function") { - warning("W062"); - } - - var n = 0; - var p = []; - - if (left) { - if (left.type === "(identifier)") { - if (left.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)) { - if ("Number String Boolean Date Object".indexOf(left.value) === -1) { - if (left.value === "Math") { - warning("W063", left); - } else if (state.option.newcap) { - warning("W064", left); - } - } - } - } - } - - if (state.tokens.next.id !== ")") { - for (;;) { - p[p.length] = expression(10); - n += 1; - if (state.tokens.next.id !== ",") { - break; - } - comma(); - } - } - - advance(")"); - nospace(state.tokens.prev, state.tokens.curr); - - if (typeof left === "object") { - if (left.value === "parseInt" && n === 1) { - warning("W065", state.tokens.curr); - } - if (!state.option.evil) { - if (left.value === "eval" || left.value === "Function" || - left.value === "execScript") { - warning("W061", left); - - if (p[0] && [0].id === "(string)") { - addInternalSrc(left, p[0].value); - } - } else if (p[0] && p[0].id === "(string)" && - (left.value === "setTimeout" || - left.value === "setInterval")) { - warning("W066", left); - addInternalSrc(left, p[0].value); - } else if (p[0] && p[0].id === "(string)" && - left.value === "." && - left.left.value === "window" && - (left.right === "setTimeout" || - left.right === "setInterval")) { - warning("W066", left); - addInternalSrc(left, p[0].value); - } - } - if (!left.identifier && left.id !== "." && left.id !== "[" && - left.id !== "(" && left.id !== "&&" && left.id !== "||" && - left.id !== "?") { - warning("W067", left); - } - } - - that.left = left; - return that; - }, 155, true).exps = true; - - prefix("(", function () { - nospace(); - var bracket, brackets = []; - var pn, pn1, i = 0; - var ret; - - do { - pn = peek(i); - i += 1; - pn1 = peek(i); - i += 1; - } while (pn.value !== ")" && pn1.value !== "=>" && pn1.value !== ";" && pn1.type !== "(end)"); - - if (state.tokens.next.id === "function") { - state.tokens.next.immed = true; - } - - var exprs = []; - - if (state.tokens.next.id !== ")") { - for (;;) { - if (pn1.value === "=>" && state.tokens.next.value === "{") { - bracket = state.tokens.next; - bracket.left = destructuringExpression(); - brackets.push(bracket); - for (var t in bracket.left) { - exprs.push(bracket.left[t].token); - } - } else { - exprs.push(expression(5)); - } - if (state.tokens.next.id !== ",") { - break; - } - comma(); - } - } - - advance(")", this); - nospace(state.tokens.prev, state.tokens.curr); - if (state.option.immed && exprs[0] && exprs[0].id === "function") { - if (state.tokens.next.id !== "(" && - (state.tokens.next.id !== "." || (peek().value !== "call" && peek().value !== "apply"))) { - warning("W068", this); - } - } - - if (state.tokens.next.value === "=>") { - return exprs; - } - if (!exprs.length) { - return; - } - if (exprs.length > 1) { - ret = Object.create(state.syntax[","]); - ret.exprs = exprs; - } else { - ret = exprs[0]; - } - if (ret) { - ret.paren = true; - } - return ret; - }); - - application("=>"); - - infix("[", function (left, that) { - nobreak(state.tokens.prev, state.tokens.curr); - nospace(); - var e = expression(5), s; - if (e && e.type === "(string)") { - if (!state.option.evil && (e.value === "eval" || e.value === "execScript")) { - warning("W061", that); - } - - countMember(e.value); - if (!state.option.sub && reg.identifier.test(e.value)) { - s = state.syntax[e.value]; - if (!s || !isReserved(s)) { - warning("W069", state.tokens.prev, e.value); - } - } - } - advance("]", that); - - if (e && e.value === "hasOwnProperty" && state.tokens.next.value === "=") { - warning("W001"); - } - - nospace(state.tokens.prev, state.tokens.curr); - that.left = left; - that.right = e; - return that; - }, 160, true); - - function comprehensiveArrayExpression() { - var res = {}; - res.exps = true; - funct["(comparray)"].stack(); - - res.right = expression(5); - advance("for"); - if (state.tokens.next.value === "each") { - advance("each"); - if (!state.option.inMoz(true)) { - warning("W118", state.tokens.curr, "for each"); - } - } - advance("("); - funct["(comparray)"].setState("define"); - res.left = expression(5); - advance(")"); - if (state.tokens.next.value === "if") { - advance("if"); - advance("("); - funct["(comparray)"].setState("filter"); - res.filter = expression(5); - advance(")"); - } - advance("]"); - funct["(comparray)"].unstack(); - return res; - } - - prefix("[", function () { - var blocktype = lookupBlockType(true); - if (blocktype.isCompArray) { - if (!state.option.inMoz(true)) { - warning("W118", state.tokens.curr, "array comprehension"); - } - return comprehensiveArrayExpression(); - } else if (blocktype.isDestAssign && !state.option.inESNext()) { - warning("W104", state.tokens.curr, "destructuring assignment"); - } - var b = state.tokens.curr.line !== state.tokens.next.line; - this.first = []; - if (b) { - indent += state.option.indent; - if (state.tokens.next.from === indent + state.option.indent) { - indent += state.option.indent; - } - } - while (state.tokens.next.id !== "(end)") { - while (state.tokens.next.id === ",") { - if (!state.option.inES5()) - warning("W070"); - advance(","); - } - if (state.tokens.next.id === "]") { - break; - } - if (b && state.tokens.curr.line !== state.tokens.next.line) { - indentation(); - } - this.first.push(expression(10)); - if (state.tokens.next.id === ",") { - comma({ allowTrailing: true }); - if (state.tokens.next.id === "]" && !state.option.inES5(true)) { - warning("W070", state.tokens.curr); - break; - } - } else { - break; - } - } - if (b) { - indent -= state.option.indent; - indentation(); - } - advance("]", this); - return this; - }, 160); - - - function property_name() { - var id = optionalidentifier(false, true); - - if (!id) { - if (state.tokens.next.id === "(string)") { - id = state.tokens.next.value; - advance(); - } else if (state.tokens.next.id === "(number)") { - id = state.tokens.next.value.toString(); - advance(); - } - } - - if (id === "hasOwnProperty") { - warning("W001"); - } - - return id; - } - - - function functionparams(parsed) { - var curr, next; - var params = []; - var ident; - var tokens = []; - var t; - - if (parsed) { - if (parsed instanceof Array) { - for (var i in parsed) { - curr = parsed[i]; - if (_.contains(["{", "["], curr.id)) { - for (t in curr.left) { - t = tokens[t]; - if (t.id) { - params.push(t.id); - addlabel(t.id, "unused", t.token); - } - } - } else if (curr.value === "...") { - if (!state.option.inESNext()) { - warning("W104", curr, "spread/rest operator"); - } - continue; - } else { - addlabel(curr.value, "unused", curr); - } - } - return params; - } else { - if (parsed.identifier === true) { - addlabel(parsed.value, "unused", parsed); - return [parsed]; - } - } - } - - next = state.tokens.next; - - advance("("); - nospace(); - - if (state.tokens.next.id === ")") { - advance(")"); - return; - } - - for (;;) { - if (_.contains(["{", "["], state.tokens.next.id)) { - tokens = destructuringExpression(); - for (t in tokens) { - t = tokens[t]; - if (t.id) { - params.push(t.id); - addlabel(t.id, "unused", t.token); - } - } - } else if (state.tokens.next.value === "...") { - if (!state.option.inESNext()) { - warning("W104", state.tokens.next, "spread/rest operator"); - } - advance("..."); - nospace(); - ident = identifier(true); - params.push(ident); - addlabel(ident, "unused", state.tokens.curr); - } else { - ident = identifier(true); - params.push(ident); - addlabel(ident, "unused", state.tokens.curr); - } - if (state.tokens.next.id === ",") { - comma(); - } else { - advance(")", next); - nospace(state.tokens.prev, state.tokens.curr); - return params; - } - } - } - - - function doFunction(name, statement, generator, fatarrowparams) { - var f; - var oldOption = state.option; - var oldIgnored = state.ignored; - var oldScope = scope; - - state.option = Object.create(state.option); - state.ignored = Object.create(state.ignored); - scope = Object.create(scope); - - funct = { - "(name)" : name || "\"" + anonname + "\"", - "(line)" : state.tokens.next.line, - "(character)" : state.tokens.next.character, - "(context)" : funct, - "(breakage)" : 0, - "(loopage)" : 0, - "(metrics)" : createMetrics(state.tokens.next), - "(scope)" : scope, - "(statement)" : statement, - "(tokens)" : {}, - "(blockscope)": funct["(blockscope)"], - "(comparray)" : funct["(comparray)"] - }; - - if (generator) { - funct["(generator)"] = true; - } - - f = funct; - state.tokens.curr.funct = funct; - - functions.push(funct); - - if (name) { - addlabel(name, "function"); - } - - funct["(params)"] = functionparams(fatarrowparams); - - funct["(metrics)"].verifyMaxParametersPerFunction(funct["(params)"]); - - block(false, true, true, fatarrowparams ? true:false); - - if (generator && funct["(generator)"] !== "yielded") { - error("E047", state.tokens.curr); - } - - funct["(metrics)"].verifyMaxStatementsPerFunction(); - funct["(metrics)"].verifyMaxComplexityPerFunction(); - funct["(unusedOption)"] = state.option.unused; - - scope = oldScope; - state.option = oldOption; - state.ignored = oldIgnored; - funct["(last)"] = state.tokens.curr.line; - funct["(lastcharacter)"] = state.tokens.curr.character; - funct = funct["(context)"]; - - return f; - } - - function createMetrics(functionStartToken) { - return { - statementCount: 0, - nestedBlockDepth: -1, - ComplexityCount: 1, - verifyMaxStatementsPerFunction: function () { - if (state.option.maxstatements && - this.statementCount > state.option.maxstatements) { - warning("W071", functionStartToken, this.statementCount); - } - }, - - verifyMaxParametersPerFunction: function (params) { - params = params || []; - - if (state.option.maxparams && params.length > state.option.maxparams) { - warning("W072", functionStartToken, params.length); - } - }, - - verifyMaxNestedBlockDepthPerFunction: function () { - if (state.option.maxdepth && - this.nestedBlockDepth > 0 && - this.nestedBlockDepth === state.option.maxdepth + 1) { - warning("W073", null, this.nestedBlockDepth); - } - }, - - verifyMaxComplexityPerFunction: function () { - var max = state.option.maxcomplexity; - var cc = this.ComplexityCount; - if (max && cc > max) { - warning("W074", functionStartToken, cc); - } - } - }; - } - - function increaseComplexityCount() { - funct["(metrics)"].ComplexityCount += 1; - } - - function checkCondAssignment(expr) { - var id, paren; - if (expr) { - id = expr.id; - paren = expr.paren; - if (id === "," && (expr = expr.exprs[expr.exprs.length - 1])) { - id = expr.id; - paren = paren || expr.paren; - } - } - switch (id) { - case "=": - case "+=": - case "-=": - case "*=": - case "%=": - case "&=": - case "|=": - case "^=": - case "/=": - if (!paren && !state.option.boss) { - warning("W084"); - } - } - } - - - (function (x) { - x.nud = function (isclassdef) { - var b, f, i, p, t, g; - var props = {}; // All properties, including accessors - var tag = ""; - - function saveProperty(name, tkn) { - if (props[name] && _.has(props, name)) - warning("W075", state.tokens.next, i); - else - props[name] = {}; - - props[name].basic = true; - props[name].basictkn = tkn; - } - - function saveSetter(name, tkn) { - if (props[name] && _.has(props, name)) { - if (props[name].basic || props[name].setter) - warning("W075", state.tokens.next, i); - } else { - props[name] = {}; - } - - props[name].setter = true; - props[name].setterToken = tkn; - } - - function saveGetter(name) { - if (props[name] && _.has(props, name)) { - if (props[name].basic || props[name].getter) - warning("W075", state.tokens.next, i); - } else { - props[name] = {}; - } - - props[name].getter = true; - props[name].getterToken = state.tokens.curr; - } - - b = state.tokens.curr.line !== state.tokens.next.line; - if (b) { - indent += state.option.indent; - if (state.tokens.next.from === indent + state.option.indent) { - indent += state.option.indent; - } - } - - for (;;) { - if (state.tokens.next.id === "}") { - break; - } - - if (b) { - indentation(); - } - - if (isclassdef && state.tokens.next.value === "static") { - advance("static"); - tag = "static "; - } - - if (state.tokens.next.value === "get" && peek().id !== ":") { - advance("get"); - - if (!state.option.inES5(!isclassdef)) { - error("E034"); - } - - i = property_name(); - if (!i) { - error("E035"); - } - if (isclassdef && i === "constructor") { - error("E049", state.tokens.next, "class getter method", i); - } - - saveGetter(tag + i); - t = state.tokens.next; - adjacent(state.tokens.curr, state.tokens.next); - f = doFunction(); - p = f["(params)"]; - - if (p) { - warning("W076", t, p[0], i); - } - - adjacent(state.tokens.curr, state.tokens.next); - } else if (state.tokens.next.value === "set" && peek().id !== ":") { - advance("set"); - - if (!state.option.inES5(!isclassdef)) { - error("E034"); - } - - i = property_name(); - if (!i) { - error("E035"); - } - if (isclassdef && i === "constructor") { - error("E049", state.tokens.next, "class setter method", i); - } - - saveSetter(tag + i, state.tokens.next); - t = state.tokens.next; - adjacent(state.tokens.curr, state.tokens.next); - f = doFunction(); - p = f["(params)"]; - - if (!p || p.length !== 1) { - warning("W077", t, i); - } - } else { - g = false; - if (state.tokens.next.value === "*" && state.tokens.next.type === "(punctuator)") { - if (!state.option.inESNext()) { - warning("W104", state.tokens.next, "generator functions"); - } - advance("*"); - g = true; - } - i = property_name(); - saveProperty(tag + i, state.tokens.next); - - if (typeof i !== "string") { - break; - } - - if (state.tokens.next.value === "(") { - if (!state.option.inESNext()) { - warning("W104", state.tokens.curr, "concise methods"); - } - doFunction(i, undefined, g); - } else if (!isclassdef) { - advance(":"); - nonadjacent(state.tokens.curr, state.tokens.next); - expression(10); - } - } - if (isclassdef && i === "prototype") { - error("E049", state.tokens.next, "class method", i); - } - - countMember(i); - if (isclassdef) { - tag = ""; - continue; - } - if (state.tokens.next.id === ",") { - comma({ allowTrailing: true, property: true }); - if (state.tokens.next.id === ",") { - warning("W070", state.tokens.curr); - } else if (state.tokens.next.id === "}" && !state.option.inES5(true)) { - warning("W070", state.tokens.curr); - } - } else { - break; - } - } - if (b) { - indent -= state.option.indent; - indentation(); - } - advance("}", this); - if (state.option.inES5()) { - for (var name in props) { - if (_.has(props, name) && props[name].setter && !props[name].getter) { - warning("W078", props[name].setterToken); - } - } - } - return this; - }; - x.fud = function () { - error("E036", state.tokens.curr); - }; - }(delim("{"))); - - function destructuringExpression() { - var id, ids; - var identifiers = []; - if (!state.option.inESNext()) { - warning("W104", state.tokens.curr, "destructuring expression"); - } - var nextInnerDE = function () { - var ident; - if (_.contains(["[", "{"], state.tokens.next.value)) { - ids = destructuringExpression(); - for (var id in ids) { - id = ids[id]; - identifiers.push({ id: id.id, token: id.token }); - } - } else if (state.tokens.next.value === ",") { - identifiers.push({ id: null, token: state.tokens.curr }); - } else { - ident = identifier(); - if (ident) - identifiers.push({ id: ident, token: state.tokens.curr }); - } - }; - if (state.tokens.next.value === "[") { - advance("["); - nextInnerDE(); - while (state.tokens.next.value !== "]") { - advance(","); - nextInnerDE(); - } - advance("]"); - } else if (state.tokens.next.value === "{") { - advance("{"); - id = identifier(); - if (state.tokens.next.value === ":") { - advance(":"); - nextInnerDE(); - } else { - identifiers.push({ id: id, token: state.tokens.curr }); - } - while (state.tokens.next.value !== "}") { - advance(","); - id = identifier(); - if (state.tokens.next.value === ":") { - advance(":"); - nextInnerDE(); - } else { - identifiers.push({ id: id, token: state.tokens.curr }); - } - } - advance("}"); - } - return identifiers; - } - function destructuringExpressionMatch(tokens, value) { - if (value.first) { - _.zip(tokens, value.first).forEach(function (val) { - var token = val[0]; - var value = val[1]; - if (token && value) { - token.first = value; - } else if (token && token.first && !value) { - warning("W080", token.first, token.first.value); - } /* else { - XXX value is discarded: wouldn't it need a warning ? - } */ - }); - } - } - - var conststatement = stmt("const", function (prefix) { - var tokens, value; - var lone; - - if (!state.option.inESNext()) { - warning("W104", state.tokens.curr, "const"); - } - - this.first = []; - for (;;) { - var names = []; - nonadjacent(state.tokens.curr, state.tokens.next); - if (_.contains(["{", "["], state.tokens.next.value)) { - tokens = destructuringExpression(); - lone = false; - } else { - tokens = [ { id: identifier(), token: state.tokens.curr } ]; - lone = true; - } - for (var t in tokens) { - t = tokens[t]; - if (funct[t.id] === "const") { - warning("E011", null, t.id); - } - if (funct["(global)"] && predefined[t.id] === false) { - warning("W079", t.token, t.id); - } - if (t.id) { - addlabel(t.id, "const"); - names.push(t.token); - } - } - if (prefix) { - break; - } - - this.first = this.first.concat(names); - - if (state.tokens.next.id !== "=") { - warning("E012", state.tokens.curr, state.tokens.curr.value); - } - - if (state.tokens.next.id === "=") { - nonadjacent(state.tokens.curr, state.tokens.next); - advance("="); - nonadjacent(state.tokens.curr, state.tokens.next); - if (state.tokens.next.id === "undefined") { - warning("W080", state.tokens.prev, state.tokens.prev.value); - } - if (peek(0).id === "=" && state.tokens.next.identifier) { - error("E037", state.tokens.next, state.tokens.next.value); - } - value = expression(5); - if (lone) { - tokens[0].first = value; - } else { - destructuringExpressionMatch(names, value); - } - } - - if (state.tokens.next.id !== ",") { - break; - } - comma(); - } - return this; - }); - conststatement.exps = true; - var varstatement = stmt("var", function (prefix) { - var tokens, lone, value; - - if (funct["(onevar)"] && state.option.onevar) { - warning("W081"); - } else if (!funct["(global)"]) { - funct["(onevar)"] = true; - } - - this.first = []; - for (;;) { - var names = []; - nonadjacent(state.tokens.curr, state.tokens.next); - if (_.contains(["{", "["], state.tokens.next.value)) { - tokens = destructuringExpression(); - lone = false; - } else { - tokens = [ { id: identifier(), token: state.tokens.curr } ]; - lone = true; - } - for (var t in tokens) { - t = tokens[t]; - if (state.option.inESNext() && funct[t.id] === "const") { - warning("E011", null, t.id); - } - if (funct["(global)"] && predefined[t.id] === false) { - warning("W079", t.token, t.id); - } - if (t.id) { - addlabel(t.id, "unused", t.token); - names.push(t.token); - } - } - if (prefix) { - break; - } - - this.first = this.first.concat(names); - - if (state.tokens.next.id === "=") { - nonadjacent(state.tokens.curr, state.tokens.next); - advance("="); - nonadjacent(state.tokens.curr, state.tokens.next); - if (state.tokens.next.id === "undefined") { - warning("W080", state.tokens.prev, state.tokens.prev.value); - } - if (peek(0).id === "=" && state.tokens.next.identifier) { - error("E038", state.tokens.next, state.tokens.next.value); - } - value = expression(5); - if (lone) { - tokens[0].first = value; - } else { - destructuringExpressionMatch(names, value); - } - } - - if (state.tokens.next.id !== ",") { - break; - } - comma(); - } - return this; - }); - varstatement.exps = true; - var letstatement = stmt("let", function (prefix) { - var tokens, lone, value, letblock; - - if (!state.option.inESNext()) { - warning("W104", state.tokens.curr, "let"); - } - - if (state.tokens.next.value === "(") { - if (!state.option.inMoz(true)) { - warning("W118", state.tokens.next, "let block"); - } - advance("("); - funct["(blockscope)"].stack(); - letblock = true; - } else if (funct["(nolet)"]) { - error("E048", state.tokens.curr); - } - - if (funct["(onevar)"] && state.option.onevar) { - warning("W081"); - } else if (!funct["(global)"]) { - funct["(onevar)"] = true; - } - - this.first = []; - for (;;) { - var names = []; - nonadjacent(state.tokens.curr, state.tokens.next); - if (_.contains(["{", "["], state.tokens.next.value)) { - tokens = destructuringExpression(); - lone = false; - } else { - tokens = [ { id: identifier(), token: state.tokens.curr.value } ]; - lone = true; - } - for (var t in tokens) { - t = tokens[t]; - if (state.option.inESNext() && funct[t.id] === "const") { - warning("E011", null, t.id); - } - if (funct["(global)"] && predefined[t.id] === false) { - warning("W079", t.token, t.id); - } - if (t.id && !funct["(nolet)"]) { - addlabel(t.id, "unused", t.token, true); - names.push(t.token); - } - } - if (prefix) { - break; - } - - this.first = this.first.concat(names); - - if (state.tokens.next.id === "=") { - nonadjacent(state.tokens.curr, state.tokens.next); - advance("="); - nonadjacent(state.tokens.curr, state.tokens.next); - if (state.tokens.next.id === "undefined") { - warning("W080", state.tokens.prev, state.tokens.prev.value); - } - if (peek(0).id === "=" && state.tokens.next.identifier) { - error("E037", state.tokens.next, state.tokens.next.value); - } - value = expression(5); - if (lone) { - tokens[0].first = value; - } else { - destructuringExpressionMatch(names, value); - } - } - - if (state.tokens.next.id !== ",") { - break; - } - comma(); - } - if (letblock) { - advance(")"); - block(true, true); - this.block = true; - funct["(blockscope)"].unstack(); - } - - return this; - }); - letstatement.exps = true; - - blockstmt("class", function () { - return classdef.call(this, true); - }); - - function classdef(stmt) { - if (!state.option.inESNext()) { - warning("W104", state.tokens.curr, "class"); - } - if (stmt) { - this.name = identifier(); - addlabel(this.name, "unused", state.tokens.curr); - } else if (state.tokens.next.identifier && state.tokens.next.value !== "extends") { - this.name = identifier(); - } - classtail(this); - return this; - } - - function classtail(c) { - var strictness = state.directive["use strict"]; - if (state.tokens.next.value === "extends") { - advance("extends"); - c.heritage = expression(10); - } - state.directive["use strict"] = true; - advance("{"); - c.body = state.syntax["{"].nud(true); - state.directive["use strict"] = strictness; - } - - blockstmt("function", function () { - var generator = false; - if (state.tokens.next.value === "*") { - advance("*"); - if (state.option.inESNext(true)) { - generator = true; - } else { - warning("W119", state.tokens.curr, "function*"); - } - } - if (inblock) { - warning("W082", state.tokens.curr); - - } - var i = identifier(); - if (funct[i] === "const") { - warning("E011", null, i); - } - adjacent(state.tokens.curr, state.tokens.next); - addlabel(i, "unction", state.tokens.curr); - - doFunction(i, { statement: true }, generator); - if (state.tokens.next.id === "(" && state.tokens.next.line === state.tokens.curr.line) { - error("E039"); - } - return this; - }); - - prefix("function", function () { - var generator = false; - if (state.tokens.next.value === "*") { - if (!state.option.inESNext()) { - warning("W119", state.tokens.curr, "function*"); - } - advance("*"); - generator = true; - } - var i = optionalidentifier(); - if (i || state.option.gcl) { - adjacent(state.tokens.curr, state.tokens.next); - } else { - nonadjacent(state.tokens.curr, state.tokens.next); - } - doFunction(i, undefined, generator); - if (!state.option.loopfunc && funct["(loopage)"]) { - warning("W083"); - } - return this; - }); - - blockstmt("if", function () { - var t = state.tokens.next; - increaseComplexityCount(); - state.condition = true; - advance("("); - nonadjacent(this, t); - nospace(); - checkCondAssignment(expression(0)); - advance(")", t); - state.condition = false; - nospace(state.tokens.prev, state.tokens.curr); - block(true, true); - if (state.tokens.next.id === "else") { - nonadjacent(state.tokens.curr, state.tokens.next); - advance("else"); - if (state.tokens.next.id === "if" || state.tokens.next.id === "switch") { - statement(true); - } else { - block(true, true); - } - } - return this; - }); - - blockstmt("try", function () { - var b; - - function doCatch() { - var oldScope = scope; - var e; - - advance("catch"); - nonadjacent(state.tokens.curr, state.tokens.next); - advance("("); - - scope = Object.create(oldScope); - - e = state.tokens.next.value; - if (state.tokens.next.type !== "(identifier)") { - e = null; - warning("E030", state.tokens.next, e); - } - - advance(); - - funct = { - "(name)" : "(catch)", - "(line)" : state.tokens.next.line, - "(character)": state.tokens.next.character, - "(context)" : funct, - "(breakage)" : funct["(breakage)"], - "(loopage)" : funct["(loopage)"], - "(scope)" : scope, - "(statement)": false, - "(metrics)" : createMetrics(state.tokens.next), - "(catch)" : true, - "(tokens)" : {}, - "(blockscope)": funct["(blockscope)"], - "(comparray)": funct["(comparray)"] - }; - - if (e) { - addlabel(e, "exception"); - } - - if (state.tokens.next.value === "if") { - if (!state.option.inMoz(true)) { - warning("W118", state.tokens.curr, "catch filter"); - } - advance("if"); - expression(0); - } - - advance(")"); - - state.tokens.curr.funct = funct; - functions.push(funct); - - block(false); - - scope = oldScope; - - funct["(last)"] = state.tokens.curr.line; - funct["(lastcharacter)"] = state.tokens.curr.character; - funct = funct["(context)"]; - } - - block(false); - - while (state.tokens.next.id === "catch") { - increaseComplexityCount(); - if (b && (!state.option.inMoz(true))) { - warning("W118", state.tokens.next, "multiple catch blocks"); - } - doCatch(); - b = true; - } - - if (state.tokens.next.id === "finally") { - advance("finally"); - block(false); - return; - } - - if (!b) { - error("E021", state.tokens.next, "catch", state.tokens.next.value); - } - - return this; - }); - - blockstmt("while", function () { - var t = state.tokens.next; - funct["(breakage)"] += 1; - funct["(loopage)"] += 1; - increaseComplexityCount(); - advance("("); - nonadjacent(this, t); - nospace(); - checkCondAssignment(expression(0)); - advance(")", t); - nospace(state.tokens.prev, state.tokens.curr); - block(true, true); - funct["(breakage)"] -= 1; - funct["(loopage)"] -= 1; - return this; - }).labelled = true; - - blockstmt("with", function () { - var t = state.tokens.next; - if (state.directive["use strict"]) { - error("E010", state.tokens.curr); - } else if (!state.option.withstmt) { - warning("W085", state.tokens.curr); - } - - advance("("); - nonadjacent(this, t); - nospace(); - expression(0); - advance(")", t); - nospace(state.tokens.prev, state.tokens.curr); - block(true, true); - - return this; - }); - - blockstmt("switch", function () { - var t = state.tokens.next, - g = false; - funct["(breakage)"] += 1; - advance("("); - nonadjacent(this, t); - nospace(); - checkCondAssignment(expression(0)); - advance(")", t); - nospace(state.tokens.prev, state.tokens.curr); - nonadjacent(state.tokens.curr, state.tokens.next); - t = state.tokens.next; - advance("{"); - nonadjacent(state.tokens.curr, state.tokens.next); - indent += state.option.indent; - this.cases = []; - - for (;;) { - switch (state.tokens.next.id) { - case "case": - switch (funct["(verb)"]) { - case "yield": - case "break": - case "case": - case "continue": - case "return": - case "switch": - case "throw": - break; - default: - if (!reg.fallsThrough.test(state.lines[state.tokens.next.line - 2])) { - warning("W086", state.tokens.curr, "case"); - } - } - indentation(-state.option.indent); - advance("case"); - this.cases.push(expression(20)); - increaseComplexityCount(); - g = true; - advance(":"); - funct["(verb)"] = "case"; - break; - case "default": - switch (funct["(verb)"]) { - case "yield": - case "break": - case "continue": - case "return": - case "throw": - break; - default: - if (this.cases.length) { - if (!reg.fallsThrough.test(state.lines[state.tokens.next.line - 2])) { - warning("W086", state.tokens.curr, "default"); - } - } - } - indentation(-state.option.indent); - advance("default"); - g = true; - advance(":"); - break; - case "}": - indent -= state.option.indent; - indentation(); - advance("}", t); - funct["(breakage)"] -= 1; - funct["(verb)"] = undefined; - return; - case "(end)": - error("E023", state.tokens.next, "}"); - return; - default: - if (g) { - switch (state.tokens.curr.id) { - case ",": - error("E040"); - return; - case ":": - g = false; - statements(); - break; - default: - error("E025", state.tokens.curr); - return; - } - } else { - if (state.tokens.curr.id === ":") { - advance(":"); - error("E024", state.tokens.curr, ":"); - statements(); - } else { - error("E021", state.tokens.next, "case", state.tokens.next.value); - return; - } - } - } - } - }).labelled = true; - - stmt("debugger", function () { - if (!state.option.debug) { - warning("W087"); - } - return this; - }).exps = true; - - (function () { - var x = stmt("do", function () { - funct["(breakage)"] += 1; - funct["(loopage)"] += 1; - increaseComplexityCount(); - - this.first = block(true, true); - advance("while"); - var t = state.tokens.next; - nonadjacent(state.tokens.curr, t); - advance("("); - nospace(); - checkCondAssignment(expression(0)); - advance(")", t); - nospace(state.tokens.prev, state.tokens.curr); - funct["(breakage)"] -= 1; - funct["(loopage)"] -= 1; - return this; - }); - x.labelled = true; - x.exps = true; - }()); - - blockstmt("for", function () { - var s, t = state.tokens.next; - var letscope = false; - var foreachtok = null; - - if (t.value === "each") { - foreachtok = t; - advance("each"); - if (!state.option.inMoz(true)) { - warning("W118", state.tokens.curr, "for each"); - } - } - - funct["(breakage)"] += 1; - funct["(loopage)"] += 1; - increaseComplexityCount(); - advance("("); - nonadjacent(this, t); - nospace(); - var nextop; // contains the token of the "in" or "of" operator - var i = 0; - var inof = ["in", "of"]; - do { - nextop = peek(i); - ++i; - } while (!_.contains(inof, nextop.value) && nextop.value !== ";" && - nextop.type !== "(end)"); - if (_.contains(inof, nextop.value)) { - if (!state.option.inESNext() && nextop.value === "of") { - error("W104", nextop, "for of"); - } - if (state.tokens.next.id === "var") { - advance("var"); - state.syntax["var"].fud.call(state.syntax["var"].fud, true); - } else if (state.tokens.next.id === "let") { - advance("let"); - letscope = true; - funct["(blockscope)"].stack(); - state.syntax["let"].fud.call(state.syntax["let"].fud, true); - } else { - switch (funct[state.tokens.next.value]) { - case "unused": - funct[state.tokens.next.value] = "var"; - break; - case "var": - break; - default: - if (!funct["(blockscope)"].getlabel(state.tokens.next.value)) - warning("W088", state.tokens.next, state.tokens.next.value); - } - advance(); - } - advance(nextop.value); - expression(20); - advance(")", t); - s = block(true, true); - if (state.option.forin && s && (s.length > 1 || typeof s[0] !== "object" || - s[0].value !== "if")) { - warning("W089", this); - } - funct["(breakage)"] -= 1; - funct["(loopage)"] -= 1; - } else { - if (foreachtok) { - error("E045", foreachtok); - } - if (state.tokens.next.id !== ";") { - if (state.tokens.next.id === "var") { - advance("var"); - state.syntax["var"].fud.call(state.syntax["var"].fud); - } else if (state.tokens.next.id === "let") { - advance("let"); - letscope = true; - funct["(blockscope)"].stack(); - state.syntax["let"].fud.call(state.syntax["let"].fud); - } else { - for (;;) { - expression(0, "for"); - if (state.tokens.next.id !== ",") { - break; - } - comma(); - } - } - } - nolinebreak(state.tokens.curr); - advance(";"); - if (state.tokens.next.id !== ";") { - checkCondAssignment(expression(0)); - } - nolinebreak(state.tokens.curr); - advance(";"); - if (state.tokens.next.id === ";") { - error("E021", state.tokens.next, ")", ";"); - } - if (state.tokens.next.id !== ")") { - for (;;) { - expression(0, "for"); - if (state.tokens.next.id !== ",") { - break; - } - comma(); - } - } - advance(")", t); - nospace(state.tokens.prev, state.tokens.curr); - block(true, true); - funct["(breakage)"] -= 1; - funct["(loopage)"] -= 1; - - } - if (letscope) { - funct["(blockscope)"].unstack(); - } - return this; - }).labelled = true; - - - stmt("break", function () { - var v = state.tokens.next.value; - - if (funct["(breakage)"] === 0) - warning("W052", state.tokens.next, this.value); - - if (!state.option.asi) - nolinebreak(this); - - if (state.tokens.next.id !== ";" && !state.tokens.next.reach) { - if (state.tokens.curr.line === state.tokens.next.line) { - if (funct[v] !== "label") { - warning("W090", state.tokens.next, v); - } else if (scope[v] !== funct) { - warning("W091", state.tokens.next, v); - } - this.first = state.tokens.next; - advance(); - } - } - reachable("break"); - return this; - }).exps = true; - - - stmt("continue", function () { - var v = state.tokens.next.value; - - if (funct["(breakage)"] === 0) - warning("W052", state.tokens.next, this.value); - - if (!state.option.asi) - nolinebreak(this); - - if (state.tokens.next.id !== ";" && !state.tokens.next.reach) { - if (state.tokens.curr.line === state.tokens.next.line) { - if (funct[v] !== "label") { - warning("W090", state.tokens.next, v); - } else if (scope[v] !== funct) { - warning("W091", state.tokens.next, v); - } - this.first = state.tokens.next; - advance(); - } - } else if (!funct["(loopage)"]) { - warning("W052", state.tokens.next, this.value); - } - reachable("continue"); - return this; - }).exps = true; - - - stmt("return", function () { - if (this.line === state.tokens.next.line) { - if (state.tokens.next.id === "(regexp)") - warning("W092"); - - if (state.tokens.next.id !== ";" && !state.tokens.next.reach) { - nonadjacent(state.tokens.curr, state.tokens.next); - this.first = expression(0); - - if (this.first && - this.first.type === "(punctuator)" && this.first.value === "=" && !state.option.boss) { - warningAt("W093", this.first.line, this.first.character); - } - } - } else { - if (state.tokens.next.type === "(punctuator)" && - ["[", "{", "+", "-"].indexOf(state.tokens.next.value) > -1) { - nolinebreak(this); // always warn (Line breaking error) - } - } - reachable("return"); - return this; - }).exps = true; - - stmt("yield", function () { - if (state.option.inESNext(true) && funct["(generator)"] !== true) { - error("E046", state.tokens.curr, "yield"); - } else if (!state.option.inESNext()) { - warning("W104", state.tokens.curr, "yield"); - } - funct["(generator)"] = "yielded"; - if (this.line === state.tokens.next.line) { - if (state.tokens.next.id === "(regexp)") - warning("W092"); - - if (state.tokens.next.id !== ";" && !state.tokens.next.reach) { - nonadjacent(state.tokens.curr, state.tokens.next); - this.first = expression(0); - - if (this.first.type === "(punctuator)" && this.first.value === "=" && !state.option.boss) { - warningAt("W093", this.first.line, this.first.character); - } - } - } else if (!state.option.asi) { - nolinebreak(this); // always warn (Line breaking error) - } - return this; - }).exps = true; - - - stmt("throw", function () { - nolinebreak(this); - nonadjacent(state.tokens.curr, state.tokens.next); - this.first = expression(20); - reachable("throw"); - return this; - }).exps = true; - - FutureReservedWord("abstract"); - FutureReservedWord("boolean"); - FutureReservedWord("byte"); - FutureReservedWord("char"); - FutureReservedWord("class", { es5: true, nud: classdef }); - FutureReservedWord("double"); - FutureReservedWord("enum", { es5: true }); - FutureReservedWord("export", { es5: true }); - FutureReservedWord("extends", { es5: true }); - FutureReservedWord("final"); - FutureReservedWord("float"); - FutureReservedWord("goto"); - FutureReservedWord("implements", { es5: true, strictOnly: true }); - FutureReservedWord("import", { es5: true }); - FutureReservedWord("int"); - FutureReservedWord("interface", { es5: true, strictOnly: true }); - FutureReservedWord("long"); - FutureReservedWord("native"); - FutureReservedWord("package", { es5: true, strictOnly: true }); - FutureReservedWord("private", { es5: true, strictOnly: true }); - FutureReservedWord("protected", { es5: true, strictOnly: true }); - FutureReservedWord("public", { es5: true, strictOnly: true }); - FutureReservedWord("short"); - FutureReservedWord("static", { es5: true, strictOnly: true }); - FutureReservedWord("super", { es5: true }); - FutureReservedWord("synchronized"); - FutureReservedWord("throws"); - FutureReservedWord("transient"); - FutureReservedWord("volatile"); - - var lookupBlockType = function () { - var pn, pn1; - var i = 0; - var bracketStack = 0; - var ret = {}; - if (_.contains(["[", "{"], state.tokens.curr.value)) - bracketStack += 1; - if (_.contains(["[", "{"], state.tokens.next.value)) - bracketStack += 1; - if (_.contains(["]", "}"], state.tokens.next.value)) - bracketStack -= 1; - do { - pn = peek(i); - pn1 = peek(i + 1); - i = i + 1; - if (_.contains(["[", "{"], pn.value)) { - bracketStack += 1; - } else if (_.contains(["]", "}"], pn.value)) { - bracketStack -= 1; - } - if (pn.identifier && pn.value === "for" && bracketStack === 1) { - ret.isCompArray = true; - ret.notJson = true; - break; - } - if (_.contains(["}", "]"], pn.value) && pn1.value === "=") { - ret.isDestAssign = true; - ret.notJson = true; - break; - } - if (pn.value === ";") { - ret.isBlock = true; - ret.notJson = true; - } - } while (bracketStack > 0 && pn.id !== "(end)" && i < 15); - return ret; - }; - function destructuringAssignOrJsonValue() { - - var block = lookupBlockType(); - if (block.notJson) { - if (!state.option.inESNext() && block.isDestAssign) { - warning("W104", state.tokens.curr, "destructuring assignment"); - } - statements(); - } else { - state.option.laxbreak = true; - state.jsonMode = true; - jsonValue(); - } - } - - var arrayComprehension = function () { - var CompArray = function () { - this.mode = "use"; - this.variables = []; - }; - var _carrays = []; - var _current; - function declare(v) { - var l = _current.variables.filter(function (elt) { - if (elt.value === v) { - elt.undef = false; - return v; - } - }).length; - return l !== 0; - } - function use(v) { - var l = _current.variables.filter(function (elt) { - if (elt.value === v && !elt.undef) { - if (elt.unused === true) { - elt.unused = false; - } - return v; - } - }).length; - return (l === 0); - } - return {stack: function () { - _current = new CompArray(); - _carrays.push(_current); - }, - unstack: function () { - _current.variables.filter(function (v) { - if (v.unused) - warning("W098", v.token, v.value); - if (v.undef) - isundef(v.funct, "W117", v.token, v.value); - }); - _carrays.splice(_carrays[_carrays.length - 1], 1); - _current = _carrays[_carrays.length - 1]; - }, - setState: function (s) { - if (_.contains(["use", "define", "filter"], s)) - _current.mode = s; - }, - check: function (v) { - if (_current && _current.mode === "use") { - _current.variables.push({funct: funct, - token: state.tokens.curr, - value: v, - undef: true, - unused: false}); - return true; - } else if (_current && _current.mode === "define") { - if (!declare(v)) { - _current.variables.push({funct: funct, - token: state.tokens.curr, - value: v, - undef: false, - unused: true}); - } - return true; - } else if (_current && _current.mode === "filter") { - if (use(v)) { - isundef(funct, "W117", state.tokens.curr, v); - } - return true; - } - return false; - } - }; - }; - - function jsonValue() { - - function jsonObject() { - var o = {}, t = state.tokens.next; - advance("{"); - if (state.tokens.next.id !== "}") { - for (;;) { - if (state.tokens.next.id === "(end)") { - error("E026", state.tokens.next, t.line); - } else if (state.tokens.next.id === "}") { - warning("W094", state.tokens.curr); - break; - } else if (state.tokens.next.id === ",") { - error("E028", state.tokens.next); - } else if (state.tokens.next.id !== "(string)") { - warning("W095", state.tokens.next, state.tokens.next.value); - } - if (o[state.tokens.next.value] === true) { - warning("W075", state.tokens.next, state.tokens.next.value); - } else if ((state.tokens.next.value === "__proto__" && - !state.option.proto) || (state.tokens.next.value === "__iterator__" && - !state.option.iterator)) { - warning("W096", state.tokens.next, state.tokens.next.value); - } else { - o[state.tokens.next.value] = true; - } - advance(); - advance(":"); - jsonValue(); - if (state.tokens.next.id !== ",") { - break; - } - advance(","); - } - } - advance("}"); - } - - function jsonArray() { - var t = state.tokens.next; - advance("["); - if (state.tokens.next.id !== "]") { - for (;;) { - if (state.tokens.next.id === "(end)") { - error("E027", state.tokens.next, t.line); - } else if (state.tokens.next.id === "]") { - warning("W094", state.tokens.curr); - break; - } else if (state.tokens.next.id === ",") { - error("E028", state.tokens.next); - } - jsonValue(); - if (state.tokens.next.id !== ",") { - break; - } - advance(","); - } - } - advance("]"); - } - - switch (state.tokens.next.id) { - case "{": - jsonObject(); - break; - case "[": - jsonArray(); - break; - case "true": - case "false": - case "null": - case "(number)": - case "(string)": - advance(); - break; - case "-": - advance("-"); - if (state.tokens.curr.character !== state.tokens.next.from) { - warning("W011", state.tokens.curr); - } - adjacent(state.tokens.curr, state.tokens.next); - advance("(number)"); - break; - default: - error("E003", state.tokens.next); - } - } - - var blockScope = function () { - var _current = {}; - var _variables = [_current]; - - function _checkBlockLabels() { - for (var t in _current) { - if (_current[t]["(type)"] === "unused") { - if (state.option.unused) { - var tkn = _current[t]["(token)"]; - var line = tkn.line; - var chr = tkn.character; - warningAt("W098", line, chr, t); - } - } - } - } - - return { - stack: function () { - _current = {}; - _variables.push(_current); - }, - - unstack: function () { - _checkBlockLabels(); - _variables.splice(_variables.length - 1, 1); - _current = _.last(_variables); - }, - - getlabel: function (l) { - for (var i = _variables.length - 1 ; i >= 0; --i) { - if (_.has(_variables[i], l)) { - return _variables[i]; - } - } - }, - - current: { - has: function (t) { - return _.has(_current, t); - }, - add: function (t, type, tok) { - _current[t] = { "(type)" : type, - "(token)": tok }; - } - } - }; - }; - var itself = function (s, o, g) { - var i, k, x; - var optionKeys; - var newOptionObj = {}; - var newIgnoredObj = {}; - - state.reset(); - - if (o && o.scope) { - JSHINT.scope = o.scope; - } else { - JSHINT.errors = []; - JSHINT.undefs = []; - JSHINT.internals = []; - JSHINT.blacklist = {}; - JSHINT.scope = "(main)"; - } - - predefined = Object.create(null); - combine(predefined, vars.ecmaIdentifiers); - combine(predefined, vars.reservedVars); - - combine(predefined, g || {}); - - declared = Object.create(null); - exported = Object.create(null); - - function each(obj, cb) { - if (!obj) - return; - - if (!Array.isArray(obj) && typeof obj === "object") - obj = Object.keys(obj); - - obj.forEach(cb); - } - - if (o) { - each(o.predef || null, function (item) { - var slice, prop; - - if (item[0] === "-") { - slice = item.slice(1); - JSHINT.blacklist[slice] = slice; - } else { - prop = Object.getOwnPropertyDescriptor(o.predef, item); - predefined[item] = prop ? prop.value : false; - } - }); - - each(o.exported || null, function (item) { - exported[item] = true; - }); - - delete o.predef; - delete o.exported; - - optionKeys = Object.keys(o); - for (x = 0; x < optionKeys.length; x++) { - if (/^-W\d{3}$/g.test(optionKeys[x])) { - newIgnoredObj[optionKeys[x].slice(1)] = true; - } else { - newOptionObj[optionKeys[x]] = o[optionKeys[x]]; - - if (optionKeys[x] === "newcap" && o[optionKeys[x]] === false) - newOptionObj["(explicitNewcap)"] = true; - - if (optionKeys[x] === "indent") - newOptionObj["(explicitIndent)"] = o[optionKeys[x]] === false ? false : true; - } - } - } - - state.option = newOptionObj; - state.ignored = newIgnoredObj; - - state.option.indent = state.option.indent || 4; - state.option.maxerr = state.option.maxerr || 50; - - indent = 1; - global = Object.create(predefined); - scope = global; - funct = { - "(global)": true, - "(name)": "(global)", - "(scope)": scope, - "(breakage)": 0, - "(loopage)": 0, - "(tokens)": {}, - "(metrics)": createMetrics(state.tokens.next), - "(blockscope)": blockScope(), - "(comparray)": arrayComprehension() - }; - functions = [funct]; - urls = []; - stack = null; - member = {}; - membersOnly = null; - implied = {}; - inblock = false; - lookahead = []; - warnings = 0; - unuseds = []; - - if (!isString(s) && !Array.isArray(s)) { - errorAt("E004", 0); - return false; - } - - api = { - get isJSON() { - return state.jsonMode; - }, - - getOption: function (name) { - return state.option[name] || null; - }, - - getCache: function (name) { - return state.cache[name]; - }, - - setCache: function (name, value) { - state.cache[name] = value; - }, - - warn: function (code, data) { - warningAt.apply(null, [ code, data.line, data.char ].concat(data.data)); - }, - - on: function (names, listener) { - names.split(" ").forEach(function (name) { - emitter.on(name, listener); - }.bind(this)); - } - }; - - emitter.removeAllListeners(); - (extraModules || []).forEach(function (func) { - func(api); - }); - - state.tokens.prev = state.tokens.curr = state.tokens.next = state.syntax["(begin)"]; - - lex = new Lexer(s); - - lex.on("warning", function (ev) { - warningAt.apply(null, [ ev.code, ev.line, ev.character].concat(ev.data)); - }); - - lex.on("error", function (ev) { - errorAt.apply(null, [ ev.code, ev.line, ev.character ].concat(ev.data)); - }); - - lex.on("fatal", function (ev) { - quit("E041", ev.line, ev.from); - }); - - lex.on("Identifier", function (ev) { - emitter.emit("Identifier", ev); - }); - - lex.on("String", function (ev) { - emitter.emit("String", ev); - }); - - lex.on("Number", function (ev) { - emitter.emit("Number", ev); - }); - - lex.start(); - for (var name in o) { - if (_.has(o, name)) { - checkOption(name, state.tokens.curr); - } - } - - assume(); - combine(predefined, g || {}); - comma.first = true; - - try { - advance(); - switch (state.tokens.next.id) { - case "{": - case "[": - destructuringAssignOrJsonValue(); - break; - default: - directives(); - - if (state.directive["use strict"]) { - if (!state.option.globalstrict && !state.option.node) { - warning("W097", state.tokens.prev); - } - } - - statements(); - } - advance((state.tokens.next && state.tokens.next.value !== ".") ? "(end)" : undefined); - funct["(blockscope)"].unstack(); - - var markDefined = function (name, context) { - do { - if (typeof context[name] === "string") { - - if (context[name] === "unused") - context[name] = "var"; - else if (context[name] === "unction") - context[name] = "closure"; - - return true; - } - - context = context["(context)"]; - } while (context); - - return false; - }; - - var clearImplied = function (name, line) { - if (!implied[name]) - return; - - var newImplied = []; - for (var i = 0; i < implied[name].length; i += 1) { - if (implied[name][i] !== line) - newImplied.push(implied[name][i]); - } - - if (newImplied.length === 0) - delete implied[name]; - else - implied[name] = newImplied; - }; - - var warnUnused = function (name, tkn, type, unused_opt) { - var line = tkn.line; - var chr = tkn.character; - - if (unused_opt === undefined) { - unused_opt = state.option.unused; - } - - if (unused_opt === true) { - unused_opt = "last-param"; - } - - var warnable_types = { - "vars": ["var"], - "last-param": ["var", "param"], - "strict": ["var", "param", "last-param"] - }; - - if (unused_opt) { - if (warnable_types[unused_opt] && warnable_types[unused_opt].indexOf(type) !== -1) { - warningAt("W098", line, chr, name); - } - } - - unuseds.push({ - name: name, - line: line, - character: chr - }); - }; - - var checkUnused = function (func, key) { - var type = func[key]; - var tkn = func["(tokens)"][key]; - - if (key.charAt(0) === "(") - return; - - if (type !== "unused" && type !== "unction") - return; - if (func["(params)"] && func["(params)"].indexOf(key) !== -1) - return; - if (func["(global)"] && _.has(exported, key)) { - return; - } - - warnUnused(key, tkn, "var"); - }; - for (i = 0; i < JSHINT.undefs.length; i += 1) { - k = JSHINT.undefs[i].slice(0); - - if (markDefined(k[2].value, k[0])) { - clearImplied(k[2].value, k[2].line); - } else if (state.option.undef) { - warning.apply(warning, k.slice(1)); - } - } - - functions.forEach(function (func) { - if (func["(unusedOption)"] === false) { - return; - } - - for (var key in func) { - if (_.has(func, key)) { - checkUnused(func, key); - } - } - - if (!func["(params)"]) - return; - - var params = func["(params)"].slice(); - var param = params.pop(); - var type, unused_opt; - - while (param) { - type = func[param]; - unused_opt = func["(unusedOption)"] || state.option.unused; - unused_opt = unused_opt === true ? "last-param" : unused_opt; - - if (param === "undefined") - return; - - if (type === "unused" || type === "unction") { - warnUnused(param, func["(tokens)"][param], "param", func["(unusedOption)"]); - } else if (unused_opt === "last-param") { - return; - } - - param = params.pop(); - } - }); - - for (var key in declared) { - if (_.has(declared, key) && !_.has(global, key)) { - warnUnused(key, declared[key], "var"); - } - } - - } catch (err) { - if (err && err.name === "JSHintError") { - var nt = state.tokens.next || {}; - JSHINT.errors.push({ - scope : "(main)", - raw : err.raw, - reason : err.message, - line : err.line || nt.line, - character : err.character || nt.from - }, null); - } else { - throw err; - } - } - - if (JSHINT.scope === "(main)") { - o = o || {}; - - for (i = 0; i < JSHINT.internals.length; i += 1) { - k = JSHINT.internals[i]; - o.scope = k.elem; - itself(k.value, o, g); - } - } - - return JSHINT.errors.length === 0; - }; - itself.addModule = function (func) { - extraModules.push(func); - }; - - itself.addModule(style.register); - itself.data = function () { - var data = { - functions: [], - options: state.option - }; - var implieds = []; - var members = []; - var fu, f, i, j, n, globals; - - if (itself.errors.length) { - data.errors = itself.errors; - } - - if (state.jsonMode) { - data.json = true; - } - - for (n in implied) { - if (_.has(implied, n)) { - implieds.push({ - name: n, - line: implied[n] - }); - } - } - - if (implieds.length > 0) { - data.implieds = implieds; - } - - if (urls.length > 0) { - data.urls = urls; - } - - globals = Object.keys(scope); - if (globals.length > 0) { - data.globals = globals; - } - - for (i = 1; i < functions.length; i += 1) { - f = functions[i]; - fu = {}; - - for (j = 0; j < functionicity.length; j += 1) { - fu[functionicity[j]] = []; - } - - for (j = 0; j < functionicity.length; j += 1) { - if (fu[functionicity[j]].length === 0) { - delete fu[functionicity[j]]; - } - } - - fu.name = f["(name)"]; - fu.param = f["(params)"]; - fu.line = f["(line)"]; - fu.character = f["(character)"]; - fu.last = f["(last)"]; - fu.lastcharacter = f["(lastcharacter)"]; - data.functions.push(fu); - } - - if (unuseds.length > 0) { - data.unused = unuseds; - } - - members = []; - for (n in member) { - if (typeof member[n] === "number") { - data.member = member; - break; - } - } - - return data; - }; - - itself.jshint = itself; - - return itself; -}()); -if (typeof exports === "object" && exports) { - exports.JSHINT = JSHINT; -} - -})() -}, -{"events":2,"../shared/vars.js":3,"../shared/messages.js":10,"./lex.js":11,"./reg.js":4,"./state.js":5,"./style.js":6,"console-browserify":7,"underscore":12}], -10:[function(req,module,exports){ -(function(){ - -var _ = req("underscore"); - -var errors = { - E001: "Bad option: '{a}'.", - E002: "Bad option value.", - E003: "Expected a JSON value.", - E004: "Input is neither a string nor an array of strings.", - E005: "Input is empty.", - E006: "Unexpected early end of program.", - E007: "Missing \"use strict\" statement.", - E008: "Strict violation.", - E009: "Option 'validthis' can't be used in a global scope.", - E010: "'with' is not allowed in strict mode.", - E011: "const '{a}' has already been declared.", - E012: "const '{a}' is initialized to 'undefined'.", - E013: "Attempting to override '{a}' which is a constant.", - E014: "A regular expression literal can be confused with '/='.", - E015: "Unclosed regular expression.", - E016: "Invalid regular expression.", - E017: "Unclosed comment.", - E018: "Unbegun comment.", - E019: "Unmatched '{a}'.", - E020: "Expected '{a}' to match '{b}' from line {c} and instead saw '{d}'.", - E021: "Expected '{a}' and instead saw '{b}'.", - E022: "Line breaking error '{a}'.", - E023: "Missing '{a}'.", - E024: "Unexpected '{a}'.", - E025: "Missing ':' on a case clause.", - E026: "Missing '}' to match '{' from line {a}.", - E027: "Missing ']' to match '[' form line {a}.", - E028: "Illegal comma.", - E029: "Unclosed string.", - E030: "Expected an identifier and instead saw '{a}'.", - E031: "Bad assignment.", // FIXME: Rephrase - E032: "Expected a small integer or 'false' and instead saw '{a}'.", - E033: "Expected an operator and instead saw '{a}'.", - E034: "get/set are ES5 features.", - E035: "Missing property name.", - E036: "Expected to see a statement and instead saw a block.", - E037: "Constant {a} was not declared correctly.", - E038: "Variable {a} was not declared correctly.", - E039: "Function declarations are not invocable. Wrap the whole function invocation in parens.", - E040: "Each value should have its own case label.", - E041: "Unrecoverable syntax error.", - E042: "Stopping.", - E043: "Too many errors.", - E044: "'{a}' is already defined and can't be redefined.", - E045: "Invalid for each loop.", - E046: "A yield statement shall be within a generator function (with syntax: `function*`)", - E047: "A generator function shall contain a yield statement.", - E048: "Let declaration not directly within block.", - E049: "A {a} cannot be named '{b}'." -}; - -var warnings = { - W001: "'hasOwnProperty' is a really bad name.", - W002: "Value of '{a}' may be overwritten in IE 8 and earlier.", - W003: "'{a}' was used before it was defined.", - W004: "'{a}' is already defined.", - W005: "A dot following a number can be confused with a decimal point.", - W006: "Confusing minuses.", - W007: "Confusing pluses.", - W008: "A leading decimal point can be confused with a dot: '{a}'.", - W009: "The array literal notation [] is preferrable.", - W010: "The object literal notation {} is preferrable.", - W011: "Unexpected space after '{a}'.", - W012: "Unexpected space before '{a}'.", - W013: "Missing space after '{a}'.", - W014: "Bad line breaking before '{a}'.", - W015: "Expected '{a}' to have an indentation at {b} instead at {c}.", - W016: "Unexpected use of '{a}'.", - W017: "Bad operand.", - W018: "Confusing use of '{a}'.", - W019: "Use the isNaN function to compare with NaN.", - W020: "Read only.", - W021: "'{a}' is a function.", - W022: "Do not assign to the exception parameter.", - W023: "Expected an identifier in an assignment and instead saw a function invocation.", - W024: "Expected an identifier and instead saw '{a}' (a reserved word).", - W025: "Missing name in function declaration.", - W026: "Inner functions should be listed at the top of the outer function.", - W027: "Unreachable '{a}' after '{b}'.", - W028: "Label '{a}' on {b} statement.", - W030: "Expected an assignment or function call and instead saw an expression.", - W031: "Do not use 'new' for side effects.", - W032: "Unnecessary semicolon.", - W033: "Missing semicolon.", - W034: "Unnecessary directive \"{a}\".", - W035: "Empty block.", - W036: "Unexpected /*member '{a}'.", - W037: "'{a}' is a statement label.", - W038: "'{a}' used out of scope.", - W039: "'{a}' is not allowed.", - W040: "Possible strict violation.", - W041: "Use '{a}' to compare with '{b}'.", - W042: "Avoid EOL escaping.", - W043: "Bad escaping of EOL. Use option multistr if needed.", - W044: "Bad or unnecessary escaping.", - W045: "Bad number '{a}'.", - W046: "Don't use extra leading zeros '{a}'.", - W047: "A trailing decimal point can be confused with a dot: '{a}'.", - W048: "Unexpected control character in regular expression.", - W049: "Unexpected escaped character '{a}' in regular expression.", - W050: "JavaScript URL.", - W051: "Variables should not be deleted.", - W052: "Unexpected '{a}'.", - W053: "Do not use {a} as a constructor.", - W054: "The Function constructor is a form of eval.", - W055: "A constructor name should start with an uppercase letter.", - W056: "Bad constructor.", - W057: "Weird construction. Is 'new' unnecessary?", - W058: "Missing '()' invoking a constructor.", - W059: "Avoid arguments.{a}.", - W060: "document.write can be a form of eval.", - W061: "eval can be harmful.", - W062: "Wrap an immediate function invocation in parens " + - "to assist the reader in understanding that the expression " + - "is the result of a function, and not the function itself.", - W063: "Math is not a function.", - W064: "Missing 'new' prefix when invoking a constructor.", - W065: "Missing radix parameter.", - W066: "Implied eval. Consider passing a function instead of a string.", - W067: "Bad invocation.", - W068: "Wrapping non-IIFE function literals in parens is unnecessary.", - W069: "['{a}'] is better written in dot notation.", - W070: "Extra comma. (it breaks older versions of IE)", - W071: "This function has too many statements. ({a})", - W072: "This function has too many parameters. ({a})", - W073: "Blocks are nested too deeply. ({a})", - W074: "This function's cyclomatic complexity is too high. ({a})", - W075: "Duplicate key '{a}'.", - W076: "Unexpected parameter '{a}' in get {b} function.", - W077: "Expected a single parameter in set {a} function.", - W078: "Setter is defined without getter.", - W079: "Redefinition of '{a}'.", - W080: "It's not necessary to initialize '{a}' to 'undefined'.", - W081: "Too many var statements.", - W082: "Function declarations should not be placed in blocks. " + - "Use a function expression or move the statement to the top of " + - "the outer function.", - W083: "Don't make functions within a loop.", - W084: "Assignment in conditional expression", - W085: "Don't use 'with'.", - W086: "Expected a 'break' statement before '{a}'.", - W087: "Forgotten 'debugger' statement?", - W088: "Creating global 'for' variable. Should be 'for (var {a} ...'.", - W089: "The body of a for in should be wrapped in an if statement to filter " + - "unwanted properties from the prototype.", - W090: "'{a}' is not a statement label.", - W091: "'{a}' is out of scope.", - W092: "Wrap the /regexp/ literal in parens to disambiguate the slash operator.", - W093: "Did you mean to return a conditional instead of an assignment?", - W094: "Unexpected comma.", - W095: "Expected a string and instead saw {a}.", - W096: "The '{a}' key may produce unexpected results.", - W097: "Use the function form of \"use strict\".", - W098: "'{a}' is defined but never used.", - W099: "Mixed spaces and tabs.", - W100: "This character may get silently deleted by one or more browsers.", - W101: "Line is too long.", - W102: "Trailing whitespace.", - W103: "The '{a}' property is deprecated.", - W104: "'{a}' is only available in JavaScript 1.7.", - W105: "Unexpected {a} in '{b}'.", - W106: "Identifier '{a}' is not in camel case.", - W107: "Script URL.", - W108: "Strings must use doublequote.", - W109: "Strings must use singlequote.", - W110: "Mixed double and single quotes.", - W112: "Unclosed string.", - W113: "Control character in string: {a}.", - W114: "Avoid {a}.", - W115: "Octal literals are not allowed in strict mode.", - W116: "Expected '{a}' and instead saw '{b}'.", - W117: "'{a}' is not defined.", - W118: "'{a}' is only available in Mozilla JavaScript extensions (use moz option).", - W119: "'{a}' is only available in ES6 (use esnext option)." -}; - -var info = { - I001: "Comma warnings can be turned off with 'laxcomma'.", - I002: "Reserved words as properties can be used under the 'es5' option.", - I003: "ES5 option is now set per default" -}; - -exports.errors = {}; -exports.warnings = {}; -exports.info = {}; - -_.each(errors, function (desc, code) { - exports.errors[code] = { code: code, desc: desc }; -}); - -_.each(warnings, function (desc, code) { - exports.warnings[code] = { code: code, desc: desc }; -}); - -_.each(info, function (desc, code) { - exports.info[code] = { code: code, desc: desc }; -}); - -})() -}, -{"underscore":12}], -11:[function(req,module,exports){ -(function(){/* - * Lexical analysis and token construction. - */ - - - -var _ = req("underscore"); -var events = req("events"); -var reg = req("./reg.js"); -var state = req("./state.js").state; - -var Token = { - Identifier: 1, - Punctuator: 2, - NumericLiteral: 3, - StringLiteral: 4, - Comment: 5, - Keyword: 6, - NullLiteral: 7, - BooleanLiteral: 8, - RegExp: 9 -}; - -var unicodeLetterTable = [ - 170, 170, 181, 181, 186, 186, 192, 214, - 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, - 880, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, - 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366, - 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610, - 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, - 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, - 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, - 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2308, 2361, - 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2423, 2425, 2431, - 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, - 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, - 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, - 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, - 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, - 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, - 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, - 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, - 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, - 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, - 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, - 3125, 3129, 3133, 3133, 3160, 3161, 3168, 3169, 3205, 3212, - 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, - 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, - 3346, 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455, - 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, - 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, - 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, - 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, - 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3805, - 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, - 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, - 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4304, 4346, - 4348, 4348, 4352, 4680, 4682, 4685, 4688, 4694, 4696, 4696, - 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, - 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, - 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740, - 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, - 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6000, - 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, - 6314, 6314, 6320, 6389, 6400, 6428, 6480, 6509, 6512, 6516, - 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823, 6823, - 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7104, 7141, - 7168, 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409, - 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, - 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, - 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, - 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, - 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, - 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, - 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, - 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, - 11360, 11492, 11499, 11502, 11520, 11557, 11568, 11621, - 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, - 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, - 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, - 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, - 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, - 12593, 12686, 12704, 12730, 12784, 12799, 13312, 13312, - 19893, 19893, 19968, 19968, 40907, 40907, 40960, 42124, - 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, - 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783, - 42786, 42888, 42891, 42894, 42896, 42897, 42912, 42921, - 43002, 43009, 43011, 43013, 43015, 43018, 43020, 43042, - 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, - 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, - 43471, 43471, 43520, 43560, 43584, 43586, 43588, 43595, - 43616, 43638, 43642, 43642, 43648, 43695, 43697, 43697, - 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, - 43739, 43741, 43777, 43782, 43785, 43790, 43793, 43798, - 43808, 43814, 43816, 43822, 43968, 44002, 44032, 44032, - 55203, 55203, 55216, 55238, 55243, 55291, 63744, 64045, - 64048, 64109, 64112, 64217, 64256, 64262, 64275, 64279, - 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, - 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, - 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, - 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, - 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, - 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594, - 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786, - 65856, 65908, 66176, 66204, 66208, 66256, 66304, 66334, - 66352, 66378, 66432, 66461, 66464, 66499, 66504, 66511, - 66513, 66517, 66560, 66717, 67584, 67589, 67592, 67592, - 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669, - 67840, 67861, 67872, 67897, 68096, 68096, 68112, 68115, - 68117, 68119, 68121, 68147, 68192, 68220, 68352, 68405, - 68416, 68437, 68448, 68466, 68608, 68680, 69635, 69687, - 69763, 69807, 73728, 74606, 74752, 74850, 77824, 78894, - 92160, 92728, 110592, 110593, 119808, 119892, 119894, 119964, - 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, - 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069, - 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121, - 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144, - 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, - 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, - 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779, - 131072, 131072, 173782, 173782, 173824, 173824, 177972, 177972, - 177984, 177984, 178205, 178205, 194560, 195101 -]; - -var identifierStartTable = []; - -for (var i = 0; i < 128; i++) { - identifierStartTable[i] = - i === 36 || // $ - i >= 65 && i <= 90 || // A-Z - i === 95 || // _ - i >= 97 && i <= 122; // a-z -} - -var identifierPartTable = []; - -for (var i = 0; i < 128; i++) { - identifierPartTable[i] = - identifierStartTable[i] || // $, _, A-Z, a-z - i >= 48 && i <= 57; // 0-9 -} - -function asyncTrigger() { - var _checks = []; - - return { - push: function (fn) { - _checks.push(fn); - }, - - check: function () { - for (var check = 0; check < _checks.length; ++check) { - _checks[check](); - } - - _checks.splice(0, _checks.length); - } - }; -} -function Lexer(source) { - var lines = source; - - if (typeof lines === "string") { - lines = lines - .replace(/\r\n/g, "\n") - .replace(/\r/g, "\n") - .split("\n"); - } - - if (lines[0] && lines[0].substr(0, 2) === "#!") { - lines[0] = ""; - } - - this.emitter = new events.EventEmitter(); - this.source = source; - this.setLines(lines); - this.prereg = true; - - this.line = 0; - this.char = 1; - this.from = 1; - this.input = ""; - - for (var i = 0; i < state.option.indent; i += 1) { - state.tab += " "; - } -} - -Lexer.prototype = { - _lines: [], - - getLines: function () { - this._lines = state.lines; - return this._lines; - }, - - setLines: function (val) { - this._lines = val; - state.lines = this._lines; - }, - peek: function (i) { - return this.input.charAt(i || 0); - }, - skip: function (i) { - i = i || 1; - this.char += i; - this.input = this.input.slice(i); - }, - on: function (names, listener) { - names.split(" ").forEach(function (name) { - this.emitter.on(name, listener); - }.bind(this)); - }, - trigger: function () { - this.emitter.emit.apply(this.emitter, Array.prototype.slice.call(arguments)); - }, - triggerAsync: function (type, args, checks, fn) { - checks.push(function () { - if (fn()) { - this.trigger(type, args); - } - }.bind(this)); - }, - scanPunctuator: function () { - var ch1 = this.peek(); - var ch2, ch3, ch4; - - switch (ch1) { - case ".": - if ((/^[0-9]$/).test(this.peek(1))) { - return null; - } - if (this.peek(1) === "." && this.peek(2) === ".") { - return { - type: Token.Punctuator, - value: "..." - }; - } - case "(": - case ")": - case ";": - case ",": - case "{": - case "}": - case "[": - case "]": - case ":": - case "~": - case "?": - return { - type: Token.Punctuator, - value: ch1 - }; - case "#": - return { - type: Token.Punctuator, - value: ch1 - }; - case "": - return null; - } - - ch2 = this.peek(1); - ch3 = this.peek(2); - ch4 = this.peek(3); - - if (ch1 === ">" && ch2 === ">" && ch3 === ">" && ch4 === "=") { - return { - type: Token.Punctuator, - value: ">>>=" - }; - } - - if (ch1 === "=" && ch2 === "=" && ch3 === "=") { - return { - type: Token.Punctuator, - value: "===" - }; - } - - if (ch1 === "!" && ch2 === "=" && ch3 === "=") { - return { - type: Token.Punctuator, - value: "!==" - }; - } - - if (ch1 === ">" && ch2 === ">" && ch3 === ">") { - return { - type: Token.Punctuator, - value: ">>>" - }; - } - - if (ch1 === "<" && ch2 === "<" && ch3 === "=") { - return { - type: Token.Punctuator, - value: "<<=" - }; - } - - if (ch1 === ">" && ch2 === ">" && ch3 === "=") { - return { - type: Token.Punctuator, - value: ">>=" - }; - } - if (ch1 === "=" && ch2 === ">") { - return { - type: Token.Punctuator, - value: ch1 + ch2 - }; - } - if (ch1 === ch2 && ("+-<>&|".indexOf(ch1) >= 0)) { - return { - type: Token.Punctuator, - value: ch1 + ch2 - }; - } - - if ("<>=!+-*%&|^".indexOf(ch1) >= 0) { - if (ch2 === "=") { - return { - type: Token.Punctuator, - value: ch1 + ch2 - }; - } - - return { - type: Token.Punctuator, - value: ch1 - }; - } - - if (ch1 === "/") { - if (ch2 === "=" && /\/=(?!(\S*\/[gim]?))/.test(this.input)) { - return { - type: Token.Punctuator, - value: "/=" - }; - } - - return { - type: Token.Punctuator, - value: "/" - }; - } - - return null; - }, - scanComments: function () { - var ch1 = this.peek(); - var ch2 = this.peek(1); - var rest = this.input.substr(2); - var startLine = this.line; - var startChar = this.char; - - function commentToken(label, body, opt) { - var special = ["jshint", "jslint", "members", "member", "globals", "global", "exported"]; - var isSpecial = false; - var value = label + body; - var commentType = "plain"; - opt = opt || {}; - - if (opt.isMultiline) { - value += "*/"; - } - - special.forEach(function (str) { - if (isSpecial) { - return; - } - if (label === "//" && str !== "jshint") { - return; - } - - if (body.substr(0, str.length) === str) { - isSpecial = true; - label = label + str; - body = body.substr(str.length); - } - - if (!isSpecial && body.charAt(0) === " " && body.substr(1, str.length) === str) { - isSpecial = true; - label = label + " " + str; - body = body.substr(str.length + 1); - } - - if (!isSpecial) { - return; - } - - switch (str) { - case "member": - commentType = "members"; - break; - case "global": - commentType = "globals"; - break; - default: - commentType = str; - } - }); - - return { - type: Token.Comment, - commentType: commentType, - value: value, - body: body, - isSpecial: isSpecial, - isMultiline: opt.isMultiline || false, - isMalformed: opt.isMalformed || false - }; - } - if (ch1 === "*" && ch2 === "/") { - this.trigger("error", { - code: "E018", - line: startLine, - character: startChar - }); - - this.skip(2); - return null; - } - if (ch1 !== "/" || (ch2 !== "*" && ch2 !== "/")) { - return null; - } - if (ch2 === "/") { - this.skip(this.input.length); // Skip to the EOL. - return commentToken("//", rest); - } - - var body = ""; - if (ch2 === "*") { - this.skip(2); - - while (this.peek() !== "*" || this.peek(1) !== "/") { - if (this.peek() === "") { // End of Line - body += "\n"; - if (!this.nextLine()) { - this.trigger("error", { - code: "E017", - line: startLine, - character: startChar - }); - - return commentToken("/*", body, { - isMultiline: true, - isMalformed: true - }); - } - } else { - body += this.peek(); - this.skip(); - } - } - - this.skip(2); - return commentToken("/*", body, { isMultiline: true }); - } - }, - scanKeyword: function () { - var result = /^[a-zA-Z_$][a-zA-Z0-9_$]*/.exec(this.input); - var keywords = [ - "if", "in", "do", "var", "for", "new", - "try", "let", "this", "else", "case", - "void", "with", "enum", "while", "break", - "catch", "throw", "const", "yield", "class", - "super", "return", "typeof", "delete", - "switch", "export", "import", "default", - "finally", "extends", "function", "continue", - "debugger", "instanceof" - ]; - - if (result && keywords.indexOf(result[0]) >= 0) { - return { - type: Token.Keyword, - value: result[0] - }; - } - - return null; - }, - scanIdentifier: function () { - var id = ""; - var index = 0; - var type, char; - - function isUnicodeLetter(code) { - for (var i = 0; i < unicodeLetterTable.length;) { - if (code < unicodeLetterTable[i++]) { - return false; - } - - if (code <= unicodeLetterTable[i++]) { - return true; - } - } - - return false; - } - - function isHexDigit(str) { - return (/^[0-9a-fA-F]$/).test(str); - } - - var readUnicodeEscapeSequence = function () { - index += 1; - - if (this.peek(index) !== "u") { - return null; - } - - var ch1 = this.peek(index + 1); - var ch2 = this.peek(index + 2); - var ch3 = this.peek(index + 3); - var ch4 = this.peek(index + 4); - var code; - - if (isHexDigit(ch1) && isHexDigit(ch2) && isHexDigit(ch3) && isHexDigit(ch4)) { - code = parseInt(ch1 + ch2 + ch3 + ch4, 16); - - if (isUnicodeLetter(code)) { - index += 5; - return "\\u" + ch1 + ch2 + ch3 + ch4; - } - - return null; - } - - return null; - }.bind(this); - - var getIdentifierStart = function () { - var chr = this.peek(index); - var code = chr.charCodeAt(0); - - if (code === 92) { - return readUnicodeEscapeSequence(); - } - - if (code < 128) { - if (identifierStartTable[code]) { - index += 1; - return chr; - } - - return null; - } - - if (isUnicodeLetter(code)) { - index += 1; - return chr; - } - - return null; - }.bind(this); - - var getIdentifierPart = function () { - var chr = this.peek(index); - var code = chr.charCodeAt(0); - - if (code === 92) { - return readUnicodeEscapeSequence(); - } - - if (code < 128) { - if (identifierPartTable[code]) { - index += 1; - return chr; - } - - return null; - } - - if (isUnicodeLetter(code)) { - index += 1; - return chr; - } - - return null; - }.bind(this); - - char = getIdentifierStart(); - if (char === null) { - return null; - } - - id = char; - for (;;) { - char = getIdentifierPart(); - - if (char === null) { - break; - } - - id += char; - } - - switch (id) { - case "true": - case "false": - type = Token.BooleanLiteral; - break; - case "null": - type = Token.NullLiteral; - break; - default: - type = Token.Identifier; - } - - return { - type: type, - value: id - }; - }, - scanNumericLiteral: function () { - var index = 0; - var value = ""; - var length = this.input.length; - var char = this.peek(index); - var bad; - - function isDecimalDigit(str) { - return (/^[0-9]$/).test(str); - } - - function isOctalDigit(str) { - return (/^[0-7]$/).test(str); - } - - function isHexDigit(str) { - return (/^[0-9a-fA-F]$/).test(str); - } - - function isIdentifierStart(ch) { - return (ch === "$") || (ch === "_") || (ch === "\\") || - (ch >= "a" && ch <= "z") || (ch >= "A" && ch <= "Z"); - } - - if (char !== "." && !isDecimalDigit(char)) { - return null; - } - - if (char !== ".") { - value = this.peek(index); - index += 1; - char = this.peek(index); - - if (value === "0") { - if (char === "x" || char === "X") { - index += 1; - value += char; - - while (index < length) { - char = this.peek(index); - if (!isHexDigit(char)) { - break; - } - value += char; - index += 1; - } - - if (value.length <= 2) { // 0x - return { - type: Token.NumericLiteral, - value: value, - isMalformed: true - }; - } - - if (index < length) { - char = this.peek(index); - if (isIdentifierStart(char)) { - return null; - } - } - - return { - type: Token.NumericLiteral, - value: value, - base: 16, - isMalformed: false - }; - } - if (isOctalDigit(char)) { - index += 1; - value += char; - bad = false; - - while (index < length) { - char = this.peek(index); - - if (isDecimalDigit(char)) { - bad = true; - } else if (!isOctalDigit(char)) { - break; - } - value += char; - index += 1; - } - - if (index < length) { - char = this.peek(index); - if (isIdentifierStart(char)) { - return null; - } - } - - return { - type: Token.NumericLiteral, - value: value, - base: 8, - isMalformed: false - }; - } - - if (isDecimalDigit(char)) { - index += 1; - value += char; - } - } - - while (index < length) { - char = this.peek(index); - if (!isDecimalDigit(char)) { - break; - } - value += char; - index += 1; - } - } - - if (char === ".") { - value += char; - index += 1; - - while (index < length) { - char = this.peek(index); - if (!isDecimalDigit(char)) { - break; - } - value += char; - index += 1; - } - } - - if (char === "e" || char === "E") { - value += char; - index += 1; - char = this.peek(index); - - if (char === "+" || char === "-") { - value += this.peek(index); - index += 1; - } - - char = this.peek(index); - if (isDecimalDigit(char)) { - value += char; - index += 1; - - while (index < length) { - char = this.peek(index); - if (!isDecimalDigit(char)) { - break; - } - value += char; - index += 1; - } - } else { - return null; - } - } - - if (index < length) { - char = this.peek(index); - if (isIdentifierStart(char)) { - return null; - } - } - - return { - type: Token.NumericLiteral, - value: value, - base: 10, - isMalformed: !isFinite(value) - }; - }, - scanStringLiteral: function (checks) { - var quote = this.peek(); - if (quote !== "\"" && quote !== "'") { - return null; - } - this.triggerAsync("warning", { - code: "W108", - line: this.line, - character: this.char // +1? - }, checks, function () { return state.jsonMode && quote !== "\""; }); - - var value = ""; - var startLine = this.line; - var startChar = this.char; - var allowNewLine = false; - - this.skip(); - - while (this.peek() !== quote) { - while (this.peek() === "") { // End Of Line - - if (!allowNewLine) { - this.trigger("warning", { - code: "W112", - line: this.line, - character: this.char - }); - } else { - allowNewLine = false; - - this.triggerAsync("warning", { - code: "W043", - line: this.line, - character: this.char - }, checks, function () { return !state.option.multistr; }); - - this.triggerAsync("warning", { - code: "W042", - line: this.line, - character: this.char - }, checks, function () { return state.jsonMode && state.option.multistr; }); - } - - if (!this.nextLine()) { - this.trigger("error", { - code: "E029", - line: startLine, - character: startChar - }); - - return { - type: Token.StringLiteral, - value: value, - isUnclosed: true, - quote: quote - }; - } - } - - allowNewLine = false; - var char = this.peek(); - var jump = 1; // A length of a jump, after we're done - - if (char < " ") { - this.trigger("warning", { - code: "W113", - line: this.line, - character: this.char, - data: [ "<non-printable>" ] - }); - } - - if (char === "\\") { - this.skip(); - char = this.peek(); - - switch (char) { - case "'": - this.triggerAsync("warning", { - code: "W114", - line: this.line, - character: this.char, - data: [ "\\'" ] - }, checks, function () {return state.jsonMode; }); - break; - case "b": - char = "\b"; - break; - case "f": - char = "\f"; - break; - case "n": - char = "\n"; - break; - case "r": - char = "\r"; - break; - case "t": - char = "\t"; - break; - case "0": - char = "\0"; - var n = parseInt(this.peek(1), 10); - this.triggerAsync("warning", { - code: "W115", - line: this.line, - character: this.char - }, checks, - function () { return n >= 0 && n <= 7 && state.directive["use strict"]; }); - break; - case "u": - char = String.fromCharCode(parseInt(this.input.substr(1, 4), 16)); - jump = 5; - break; - case "v": - this.triggerAsync("warning", { - code: "W114", - line: this.line, - character: this.char, - data: [ "\\v" ] - }, checks, function () { return state.jsonMode; }); - - char = "\v"; - break; - case "x": - var x = parseInt(this.input.substr(1, 2), 16); - - this.triggerAsync("warning", { - code: "W114", - line: this.line, - character: this.char, - data: [ "\\x-" ] - }, checks, function () { return state.jsonMode; }); - - char = String.fromCharCode(x); - jump = 3; - break; - case "\\": - case "\"": - case "/": - break; - case "": - allowNewLine = true; - char = ""; - break; - case "!": - if (value.slice(value.length - 2) === "<") { - break; - } - default: - this.trigger("warning", { - code: "W044", - line: this.line, - character: this.char - }); - } - } - - value += char; - this.skip(jump); - } - - this.skip(); - return { - type: Token.StringLiteral, - value: value, - isUnclosed: false, - quote: quote - }; - }, - scanRegExp: function () { - var index = 0; - var length = this.input.length; - var char = this.peek(); - var value = char; - var body = ""; - var flags = []; - var malformed = false; - var isCharSet = false; - var terminated; - - var scanUnexpectedChars = function () { - if (char < " ") { - malformed = true; - this.trigger("warning", { - code: "W048", - line: this.line, - character: this.char - }); - } - if (char === "<") { - malformed = true; - this.trigger("warning", { - code: "W049", - line: this.line, - character: this.char, - data: [ char ] - }); - } - }.bind(this); - if (!this.prereg || char !== "/") { - return null; - } - - index += 1; - terminated = false; - - while (index < length) { - char = this.peek(index); - value += char; - body += char; - - if (isCharSet) { - if (char === "]") { - if (this.peek(index - 1) !== "\\" || this.peek(index - 2) === "\\") { - isCharSet = false; - } - } - - if (char === "\\") { - index += 1; - char = this.peek(index); - body += char; - value += char; - - scanUnexpectedChars(); - } - - index += 1; - continue; - } - - if (char === "\\") { - index += 1; - char = this.peek(index); - body += char; - value += char; - - scanUnexpectedChars(); - - if (char === "/") { - index += 1; - continue; - } - - if (char === "[") { - index += 1; - continue; - } - } - - if (char === "[") { - isCharSet = true; - index += 1; - continue; - } - - if (char === "/") { - body = body.substr(0, body.length - 1); - terminated = true; - index += 1; - break; - } - - index += 1; - } - - if (!terminated) { - this.trigger("error", { - code: "E015", - line: this.line, - character: this.from - }); - - return void this.trigger("fatal", { - line: this.line, - from: this.from - }); - } - - while (index < length) { - char = this.peek(index); - if (!/[gim]/.test(char)) { - break; - } - flags.push(char); - value += char; - index += 1; - } - - try { - new RegExp(body, flags.join("")); - } catch (err) { - malformed = true; - this.trigger("error", { - code: "E016", - line: this.line, - character: this.char, - data: [ err.message ] // Platform dependent! - }); - } - - return { - type: Token.RegExp, - value: value, - flags: flags, - isMalformed: malformed - }; - }, - scanMixedSpacesAndTabs: function () { - var at, match; - - if (state.option.smarttabs) { - match = this.input.match(/(\/\/|^\s?\*)? \t/); - at = match && !match[1] ? 0 : -1; - } else { - at = this.input.search(/ \t|\t [^\*]/); - } - - return at; - }, - scanUnsafeChars: function () { - return this.input.search(reg.unsafeChars); - }, - next: function (checks) { - this.from = this.char; - var start; - if (/\s/.test(this.peek())) { - start = this.char; - - while (/\s/.test(this.peek())) { - this.from += 1; - this.skip(); - } - - if (this.peek() === "") { // EOL - if (!/^\s*$/.test(this.getLines()[this.line - 1]) && state.option.trailing) { - this.trigger("warning", { code: "W102", line: this.line, character: start }); - } - } - } - - var match = this.scanComments() || - this.scanStringLiteral(checks); - - if (match) { - return match; - } - - match = - this.scanRegExp() || - this.scanPunctuator() || - this.scanKeyword() || - this.scanIdentifier() || - this.scanNumericLiteral(); - - if (match) { - this.skip(match.value.length); - return match; - } - - return null; - }, - nextLine: function () { - var char; - - if (this.line >= this.getLines().length) { - return false; - } - - this.input = this.getLines()[this.line]; - this.line += 1; - this.char = 1; - this.from = 1; - - char = this.scanMixedSpacesAndTabs(); - if (char >= 0) { - this.trigger("warning", { code: "W099", line: this.line, character: char + 1 }); - } - - this.input = this.input.replace(/\t/g, state.tab); - char = this.scanUnsafeChars(); - - if (char >= 0) { - this.trigger("warning", { code: "W100", line: this.line, character: char }); - } - - if (state.option.maxlen && state.option.maxlen < this.input.length) { - this.trigger("warning", { code: "W101", line: this.line, character: this.input.length }); - } - - return true; - }, - start: function () { - this.nextLine(); - }, - token: function () { - var checks = asyncTrigger(); - var token; - - - function isReserved(token, isProperty) { - if (!token.reserved) { - return false; - } - - if (token.meta && token.meta.isFutureReservedWord) { - if (state.option.inES5(true) && !token.meta.es5) { - return false; - } - if (token.meta.strictOnly) { - if (!state.option.strict && !state.directive["use strict"]) { - return false; - } - } - - if (isProperty) { - return false; - } - } - - return true; - } - var create = function (type, value, isProperty) { - var obj; - - if (type !== "(endline)" && type !== "(end)") { - this.prereg = false; - } - - if (type === "(punctuator)") { - switch (value) { - case ".": - case ")": - case "~": - case "#": - case "]": - this.prereg = false; - break; - default: - this.prereg = true; - } - - obj = Object.create(state.syntax[value] || state.syntax["(error)"]); - } - - if (type === "(identifier)") { - if (value === "return" || value === "case" || value === "typeof") { - this.prereg = true; - } - - if (_.has(state.syntax, value)) { - obj = Object.create(state.syntax[value] || state.syntax["(error)"]); - if (!isReserved(obj, isProperty && type === "(identifier)")) { - obj = null; - } - } - } - - if (!obj) { - obj = Object.create(state.syntax[type]); - } - - obj.identifier = (type === "(identifier)"); - obj.type = obj.type || type; - obj.value = value; - obj.line = this.line; - obj.character = this.char; - obj.from = this.from; - - if (isProperty && obj.identifier) { - obj.isProperty = isProperty; - } - - obj.check = checks.check; - - return obj; - }.bind(this); - - for (;;) { - if (!this.input.length) { - return create(this.nextLine() ? "(endline)" : "(end)", ""); - } - - token = this.next(checks); - - if (!token) { - if (this.input.length) { - this.trigger("error", { - code: "E024", - line: this.line, - character: this.char, - data: [ this.peek() ] - }); - - this.input = ""; - } - - continue; - } - - switch (token.type) { - case Token.StringLiteral: - this.triggerAsync("String", { - line: this.line, - char: this.char, - from: this.from, - value: token.value, - quote: token.quote - }, checks, function () { return true; }); - - return create("(string)", token.value); - case Token.Identifier: - this.trigger("Identifier", { - line: this.line, - char: this.char, - from: this.form, - name: token.value, - isProperty: state.tokens.curr.id === "." - }); - case Token.Keyword: - case Token.NullLiteral: - case Token.BooleanLiteral: - return create("(identifier)", token.value, state.tokens.curr.id === "."); - - case Token.NumericLiteral: - if (token.isMalformed) { - this.trigger("warning", { - code: "W045", - line: this.line, - character: this.char, - data: [ token.value ] - }); - } - - this.triggerAsync("warning", { - code: "W114", - line: this.line, - character: this.char, - data: [ "0x-" ] - }, checks, function () { return token.base === 16 && state.jsonMode; }); - - this.triggerAsync("warning", { - code: "W115", - line: this.line, - character: this.char - }, checks, function () { - return state.directive["use strict"] && token.base === 8; - }); - - this.trigger("Number", { - line: this.line, - char: this.char, - from: this.from, - value: token.value, - base: token.base, - isMalformed: token.malformed - }); - - return create("(number)", token.value); - - case Token.RegExp: - return create("(regexp)", token.value); - - case Token.Comment: - state.tokens.curr.comment = true; - - if (token.isSpecial) { - return { - value: token.value, - body: token.body, - type: token.commentType, - isSpecial: token.isSpecial, - line: this.line, - character: this.char, - from: this.from - }; - } - - break; - - case "": - break; - - default: - return create("(punctuator)", token.value); - } - } - } -}; - -exports.Lexer = Lexer; - -})() -}, -{"events":2,"./reg.js":4,"./state.js":5,"underscore":12}], -12:[function(req,module,exports){ -(function(){// Underscore.js 1.4.4 - -(function() { - var root = this; - var previousUnderscore = root._; - var breaker = {}; - var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype; - var push = ArrayProto.push, - slice = ArrayProto.slice, - concat = ArrayProto.concat, - toString = ObjProto.toString, - hasOwnProperty = ObjProto.hasOwnProperty; - var - nativeForEach = ArrayProto.forEach, - nativeMap = ArrayProto.map, - nativeReduce = ArrayProto.reduce, - nativeReduceRight = ArrayProto.reduceRight, - nativeFilter = ArrayProto.filter, - nativeEvery = ArrayProto.every, - nativeSome = ArrayProto.some, - nativeIndexOf = ArrayProto.indexOf, - nativeLastIndexOf = ArrayProto.lastIndexOf, - nativeIsArray = Array.isArray, - nativeKeys = Object.keys, - nativeBind = FuncProto.bind; - var _ = function(obj) { - if (obj instanceof _) return obj; - if (!(this instanceof _)) return new _(obj); - this._wrapped = obj; - }; - if (typeof exports !== 'undefined') { - if (typeof module !== 'undefined' && module.exports) { - exports = module.exports = _; - } - exports._ = _; - } else { - root._ = _; - } - _.VERSION = '1.4.4'; - var each = _.each = _.forEach = function(obj, iterator, context) { - if (obj == null) return; - if (nativeForEach && obj.forEach === nativeForEach) { - obj.forEach(iterator, context); - } else if (obj.length === +obj.length) { - for (var i = 0, l = obj.length; i < l; i++) { - if (iterator.call(context, obj[i], i, obj) === breaker) return; - } - } else { - for (var key in obj) { - if (_.has(obj, key)) { - if (iterator.call(context, obj[key], key, obj) === breaker) return; - } - } - } - }; - _.map = _.collect = function(obj, iterator, context) { - var results = []; - if (obj == null) return results; - if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context); - each(obj, function(value, index, list) { - results[results.length] = iterator.call(context, value, index, list); - }); - return results; - }; - - var reduceError = 'Reduce of empty array with no initial value'; - _.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) { - var initial = arguments.length > 2; - if (obj == null) obj = []; - if (nativeReduce && obj.reduce === nativeReduce) { - if (context) iterator = _.bind(iterator, context); - return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator); - } - each(obj, function(value, index, list) { - if (!initial) { - memo = value; - initial = true; - } else { - memo = iterator.call(context, memo, value, index, list); - } - }); - if (!initial) throw new TypeError(reduceError); - return memo; - }; - _.reduceRight = _.foldr = function(obj, iterator, memo, context) { - var initial = arguments.length > 2; - if (obj == null) obj = []; - if (nativeReduceRight && obj.reduceRight === nativeReduceRight) { - if (context) iterator = _.bind(iterator, context); - return initial ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator); - } - var length = obj.length; - if (length !== +length) { - var keys = _.keys(obj); - length = keys.length; - } - each(obj, function(value, index, list) { - index = keys ? keys[--length] : --length; - if (!initial) { - memo = obj[index]; - initial = true; - } else { - memo = iterator.call(context, memo, obj[index], index, list); - } - }); - if (!initial) throw new TypeError(reduceError); - return memo; - }; - _.find = _.detect = function(obj, iterator, context) { - var result; - any(obj, function(value, index, list) { - if (iterator.call(context, value, index, list)) { - result = value; - return true; - } - }); - return result; - }; - _.filter = _.select = function(obj, iterator, context) { - var results = []; - if (obj == null) return results; - if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context); - each(obj, function(value, index, list) { - if (iterator.call(context, value, index, list)) results[results.length] = value; - }); - return results; - }; - _.reject = function(obj, iterator, context) { - return _.filter(obj, function(value, index, list) { - return !iterator.call(context, value, index, list); - }, context); - }; - _.every = _.all = function(obj, iterator, context) { - iterator || (iterator = _.identity); - var result = true; - if (obj == null) return result; - if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context); - each(obj, function(value, index, list) { - if (!(result = result && iterator.call(context, value, index, list))) return breaker; - }); - return !!result; - }; - var any = _.some = _.any = function(obj, iterator, context) { - iterator || (iterator = _.identity); - var result = false; - if (obj == null) return result; - if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context); - each(obj, function(value, index, list) { - if (result || (result = iterator.call(context, value, index, list))) return breaker; - }); - return !!result; - }; - _.contains = _.include = function(obj, target) { - if (obj == null) return false; - if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1; - return any(obj, function(value) { - return value === target; - }); - }; - _.invoke = function(obj, method) { - var args = slice.call(arguments, 2); - var isFunc = _.isFunction(method); - return _.map(obj, function(value) { - return (isFunc ? method : value[method]).apply(value, args); - }); - }; - _.pluck = function(obj, key) { - return _.map(obj, function(value){ return value[key]; }); - }; - _.where = function(obj, attrs, first) { - if (_.isEmpty(attrs)) return first ? null : []; - return _[first ? 'find' : 'filter'](obj, function(value) { - for (var key in attrs) { - if (attrs[key] !== value[key]) return false; - } - return true; - }); - }; - _.findWhere = function(obj, attrs) { - return _.where(obj, attrs, true); - }; - _.max = function(obj, iterator, context) { - if (!iterator && _.isArray(obj) && obj[0] === +obj[0] && obj.length < 65535) { - return Math.max.apply(Math, obj); - } - if (!iterator && _.isEmpty(obj)) return -Infinity; - var result = {computed : -Infinity, value: -Infinity}; - each(obj, function(value, index, list) { - var computed = iterator ? iterator.call(context, value, index, list) : value; - computed >= result.computed && (result = {value : value, computed : computed}); - }); - return result.value; - }; - _.min = function(obj, iterator, context) { - if (!iterator && _.isArray(obj) && obj[0] === +obj[0] && obj.length < 65535) { - return Math.min.apply(Math, obj); - } - if (!iterator && _.isEmpty(obj)) return Infinity; - var result = {computed : Infinity, value: Infinity}; - each(obj, function(value, index, list) { - var computed = iterator ? iterator.call(context, value, index, list) : value; - computed < result.computed && (result = {value : value, computed : computed}); - }); - return result.value; - }; - _.shuffle = function(obj) { - var rand; - var index = 0; - var shuffled = []; - each(obj, function(value) { - rand = _.random(index++); - shuffled[index - 1] = shuffled[rand]; - shuffled[rand] = value; - }); - return shuffled; - }; - var lookupIterator = function(value) { - return _.isFunction(value) ? value : function(obj){ return obj[value]; }; - }; - _.sortBy = function(obj, value, context) { - var iterator = lookupIterator(value); - return _.pluck(_.map(obj, function(value, index, list) { - return { - value : value, - index : index, - criteria : iterator.call(context, value, index, list) - }; - }).sort(function(left, right) { - var a = left.criteria; - var b = right.criteria; - if (a !== b) { - if (a > b || a === void 0) return 1; - if (a < b || b === void 0) return -1; - } - return left.index < right.index ? -1 : 1; - }), 'value'); - }; - var group = function(obj, value, context, behavior) { - var result = {}; - var iterator = lookupIterator(value || _.identity); - each(obj, function(value, index) { - var key = iterator.call(context, value, index, obj); - behavior(result, key, value); - }); - return result; - }; - _.groupBy = function(obj, value, context) { - return group(obj, value, context, function(result, key, value) { - (_.has(result, key) ? result[key] : (result[key] = [])).push(value); - }); - }; - _.countBy = function(obj, value, context) { - return group(obj, value, context, function(result, key) { - if (!_.has(result, key)) result[key] = 0; - result[key]++; - }); - }; - _.sortedIndex = function(array, obj, iterator, context) { - iterator = iterator == null ? _.identity : lookupIterator(iterator); - var value = iterator.call(context, obj); - var low = 0, high = array.length; - while (low < high) { - var mid = (low + high) >>> 1; - iterator.call(context, array[mid]) < value ? low = mid + 1 : high = mid; - } - return low; - }; - _.toArray = function(obj) { - if (!obj) return []; - if (_.isArray(obj)) return slice.call(obj); - if (obj.length === +obj.length) return _.map(obj, _.identity); - return _.values(obj); - }; - _.size = function(obj) { - if (obj == null) return 0; - return (obj.length === +obj.length) ? obj.length : _.keys(obj).length; - }; - _.first = _.head = _.take = function(array, n, guard) { - if (array == null) return void 0; - return (n != null) && !guard ? slice.call(array, 0, n) : array[0]; - }; - _.initial = function(array, n, guard) { - return slice.call(array, 0, array.length - ((n == null) || guard ? 1 : n)); - }; - _.last = function(array, n, guard) { - if (array == null) return void 0; - if ((n != null) && !guard) { - return slice.call(array, Math.max(array.length - n, 0)); - } else { - return array[array.length - 1]; - } - }; - _.rest = _.tail = _.drop = function(array, n, guard) { - return slice.call(array, (n == null) || guard ? 1 : n); - }; - _.compact = function(array) { - return _.filter(array, _.identity); - }; - var flatten = function(input, shallow, output) { - each(input, function(value) { - if (_.isArray(value)) { - shallow ? push.apply(output, value) : flatten(value, shallow, output); - } else { - output.push(value); - } - }); - return output; - }; - _.flatten = function(array, shallow) { - return flatten(array, shallow, []); - }; - _.without = function(array) { - return _.difference(array, slice.call(arguments, 1)); - }; - _.uniq = _.unique = function(array, isSorted, iterator, context) { - if (_.isFunction(isSorted)) { - context = iterator; - iterator = isSorted; - isSorted = false; - } - var initial = iterator ? _.map(array, iterator, context) : array; - var results = []; - var seen = []; - each(initial, function(value, index) { - if (isSorted ? (!index || seen[seen.length - 1] !== value) : !_.contains(seen, value)) { - seen.push(value); - results.push(array[index]); - } - }); - return results; - }; - _.union = function() { - return _.uniq(concat.apply(ArrayProto, arguments)); - }; - _.intersection = function(array) { - var rest = slice.call(arguments, 1); - return _.filter(_.uniq(array), function(item) { - return _.every(rest, function(other) { - return _.indexOf(other, item) >= 0; - }); - }); - }; - _.difference = function(array) { - var rest = concat.apply(ArrayProto, slice.call(arguments, 1)); - return _.filter(array, function(value){ return !_.contains(rest, value); }); - }; - _.zip = function() { - var args = slice.call(arguments); - var length = _.max(_.pluck(args, 'length')); - var results = new Array(length); - for (var i = 0; i < length; i++) { - results[i] = _.pluck(args, "" + i); - } - return results; - }; - _.object = function(list, values) { - if (list == null) return {}; - var result = {}; - for (var i = 0, l = list.length; i < l; i++) { - if (values) { - result[list[i]] = values[i]; - } else { - result[list[i][0]] = list[i][1]; - } - } - return result; - }; - _.indexOf = function(array, item, isSorted) { - if (array == null) return -1; - var i = 0, l = array.length; - if (isSorted) { - if (typeof isSorted == 'number') { - i = (isSorted < 0 ? Math.max(0, l + isSorted) : isSorted); - } else { - i = _.sortedIndex(array, item); - return array[i] === item ? i : -1; - } - } - if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item, isSorted); - for (; i < l; i++) if (array[i] === item) return i; - return -1; - }; - _.lastIndexOf = function(array, item, from) { - if (array == null) return -1; - var hasIndex = from != null; - if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) { - return hasIndex ? array.lastIndexOf(item, from) : array.lastIndexOf(item); - } - var i = (hasIndex ? from : array.length); - while (i--) if (array[i] === item) return i; - return -1; - }; - _.range = function(start, stop, step) { - if (arguments.length <= 1) { - stop = start || 0; - start = 0; - } - step = arguments[2] || 1; - - var len = Math.max(Math.ceil((stop - start) / step), 0); - var idx = 0; - var range = new Array(len); - - while(idx < len) { - range[idx++] = start; - start += step; - } - - return range; - }; - _.bind = function(func, context) { - if (func.bind === nativeBind && nativeBind) return nativeBind.apply(func, slice.call(arguments, 1)); - var args = slice.call(arguments, 2); - return function() { - return func.apply(context, args.concat(slice.call(arguments))); - }; - }; - _.partial = function(func) { - var args = slice.call(arguments, 1); - return function() { - return func.apply(this, args.concat(slice.call(arguments))); - }; - }; - _.bindAll = function(obj) { - var funcs = slice.call(arguments, 1); - if (funcs.length === 0) funcs = _.functions(obj); - each(funcs, function(f) { obj[f] = _.bind(obj[f], obj); }); - return obj; - }; - _.memoize = function(func, hasher) { - var memo = {}; - hasher || (hasher = _.identity); - return function() { - var key = hasher.apply(this, arguments); - return _.has(memo, key) ? memo[key] : (memo[key] = func.apply(this, arguments)); - }; - }; - _.delay = function(func, wait) { - var args = slice.call(arguments, 2); - return setTimeout(function(){ return func.apply(null, args); }, wait); - }; - _.defer = function(func) { - return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1))); - }; - _.throttle = function(func, wait) { - var context, args, timeout, result; - var previous = 0; - var later = function() { - previous = new Date; - timeout = null; - result = func.apply(context, args); - }; - return function() { - var now = new Date; - var remaining = wait - (now - previous); - context = this; - args = arguments; - if (remaining <= 0) { - clearTimeout(timeout); - timeout = null; - previous = now; - result = func.apply(context, args); - } else if (!timeout) { - timeout = setTimeout(later, remaining); - } - return result; - }; - }; - _.debounce = function(func, wait, immediate) { - var timeout, result; - return function() { - var context = this, args = arguments; - var later = function() { - timeout = null; - if (!immediate) result = func.apply(context, args); - }; - var callNow = immediate && !timeout; - clearTimeout(timeout); - timeout = setTimeout(later, wait); - if (callNow) result = func.apply(context, args); - return result; - }; - }; - _.once = function(func) { - var ran = false, memo; - return function() { - if (ran) return memo; - ran = true; - memo = func.apply(this, arguments); - func = null; - return memo; - }; - }; - _.wrap = function(func, wrapper) { - return function() { - var args = [func]; - push.apply(args, arguments); - return wrapper.apply(this, args); - }; - }; - _.compose = function() { - var funcs = arguments; - return function() { - var args = arguments; - for (var i = funcs.length - 1; i >= 0; i--) { - args = [funcs[i].apply(this, args)]; - } - return args[0]; - }; - }; - _.after = function(times, func) { - if (times <= 0) return func(); - return function() { - if (--times < 1) { - return func.apply(this, arguments); - } - }; - }; - _.keys = nativeKeys || function(obj) { - if (obj !== Object(obj)) throw new TypeError('Invalid object'); - var keys = []; - for (var key in obj) if (_.has(obj, key)) keys[keys.length] = key; - return keys; - }; - _.values = function(obj) { - var values = []; - for (var key in obj) if (_.has(obj, key)) values.push(obj[key]); - return values; - }; - _.pairs = function(obj) { - var pairs = []; - for (var key in obj) if (_.has(obj, key)) pairs.push([key, obj[key]]); - return pairs; - }; - _.invert = function(obj) { - var result = {}; - for (var key in obj) if (_.has(obj, key)) result[obj[key]] = key; - return result; - }; - _.functions = _.methods = function(obj) { - var names = []; - for (var key in obj) { - if (_.isFunction(obj[key])) names.push(key); - } - return names.sort(); - }; - _.extend = function(obj) { - each(slice.call(arguments, 1), function(source) { - if (source) { - for (var prop in source) { - obj[prop] = source[prop]; - } - } - }); - return obj; - }; - _.pick = function(obj) { - var copy = {}; - var keys = concat.apply(ArrayProto, slice.call(arguments, 1)); - each(keys, function(key) { - if (key in obj) copy[key] = obj[key]; - }); - return copy; - }; - _.omit = function(obj) { - var copy = {}; - var keys = concat.apply(ArrayProto, slice.call(arguments, 1)); - for (var key in obj) { - if (!_.contains(keys, key)) copy[key] = obj[key]; - } - return copy; - }; - _.defaults = function(obj) { - each(slice.call(arguments, 1), function(source) { - if (source) { - for (var prop in source) { - if (obj[prop] == null) obj[prop] = source[prop]; - } - } - }); - return obj; - }; - _.clone = function(obj) { - if (!_.isObject(obj)) return obj; - return _.isArray(obj) ? obj.slice() : _.extend({}, obj); - }; - _.tap = function(obj, interceptor) { - interceptor(obj); - return obj; - }; - var eq = function(a, b, aStack, bStack) { - if (a === b) return a !== 0 || 1 / a == 1 / b; - if (a == null || b == null) return a === b; - if (a instanceof _) a = a._wrapped; - if (b instanceof _) b = b._wrapped; - var className = toString.call(a); - if (className != toString.call(b)) return false; - switch (className) { - case '[object String]': - return a == String(b); - case '[object Number]': - return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b); - case '[object Date]': - case '[object Boolean]': - return +a == +b; - case '[object RegExp]': - return a.source == b.source && - a.global == b.global && - a.multiline == b.multiline && - a.ignoreCase == b.ignoreCase; - } - if (typeof a != 'object' || typeof b != 'object') return false; - var length = aStack.length; - while (length--) { - if (aStack[length] == a) return bStack[length] == b; - } - aStack.push(a); - bStack.push(b); - var size = 0, result = true; - if (className == '[object Array]') { - size = a.length; - result = size == b.length; - if (result) { - while (size--) { - if (!(result = eq(a[size], b[size], aStack, bStack))) break; - } - } - } else { - var aCtor = a.constructor, bCtor = b.constructor; - if (aCtor !== bCtor && !(_.isFunction(aCtor) && (aCtor instanceof aCtor) && - _.isFunction(bCtor) && (bCtor instanceof bCtor))) { - return false; - } - for (var key in a) { - if (_.has(a, key)) { - size++; - if (!(result = _.has(b, key) && eq(a[key], b[key], aStack, bStack))) break; - } - } - if (result) { - for (key in b) { - if (_.has(b, key) && !(size--)) break; - } - result = !size; - } - } - aStack.pop(); - bStack.pop(); - return result; - }; - _.isEqual = function(a, b) { - return eq(a, b, [], []); - }; - _.isEmpty = function(obj) { - if (obj == null) return true; - if (_.isArray(obj) || _.isString(obj)) return obj.length === 0; - for (var key in obj) if (_.has(obj, key)) return false; - return true; - }; - _.isElement = function(obj) { - return !!(obj && obj.nodeType === 1); - }; - _.isArray = nativeIsArray || function(obj) { - return toString.call(obj) == '[object Array]'; - }; - _.isObject = function(obj) { - return obj === Object(obj); - }; - each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp'], function(name) { - _['is' + name] = function(obj) { - return toString.call(obj) == '[object ' + name + ']'; - }; - }); - if (!_.isArguments(arguments)) { - _.isArguments = function(obj) { - return !!(obj && _.has(obj, 'callee')); - }; - } - if (typeof (/./) !== 'function') { - _.isFunction = function(obj) { - return typeof obj === 'function'; - }; - } - _.isFinite = function(obj) { - return isFinite(obj) && !isNaN(parseFloat(obj)); - }; - _.isNaN = function(obj) { - return _.isNumber(obj) && obj != +obj; - }; - _.isBoolean = function(obj) { - return obj === true || obj === false || toString.call(obj) == '[object Boolean]'; - }; - _.isNull = function(obj) { - return obj === null; - }; - _.isUndefined = function(obj) { - return obj === void 0; - }; - _.has = function(obj, key) { - return hasOwnProperty.call(obj, key); - }; - _.noConflict = function() { - root._ = previousUnderscore; - return this; - }; - _.identity = function(value) { - return value; - }; - _.times = function(n, iterator, context) { - var accum = Array(n); - for (var i = 0; i < n; i++) accum[i] = iterator.call(context, i); - return accum; - }; - _.random = function(min, max) { - if (max == null) { - max = min; - min = 0; - } - return min + Math.floor(Math.random() * (max - min + 1)); - }; - var entityMap = { - escape: { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''', - '/': '/' - } - }; - entityMap.unescape = _.invert(entityMap.escape); - var entityRegexes = { - escape: new RegExp('[' + _.keys(entityMap.escape).join('') + ']', 'g'), - unescape: new RegExp('(' + _.keys(entityMap.unescape).join('|') + ')', 'g') - }; - _.each(['escape', 'unescape'], function(method) { - _[method] = function(string) { - if (string == null) return ''; - return ('' + string).replace(entityRegexes[method], function(match) { - return entityMap[method][match]; - }); - }; - }); - _.result = function(object, property) { - if (object == null) return null; - var value = object[property]; - return _.isFunction(value) ? value.call(object) : value; - }; - _.mixin = function(obj) { - each(_.functions(obj), function(name){ - var func = _[name] = obj[name]; - _.prototype[name] = function() { - var args = [this._wrapped]; - push.apply(args, arguments); - return result.call(this, func.apply(_, args)); - }; - }); - }; - var idCounter = 0; - _.uniqueId = function(prefix) { - var id = ++idCounter + ''; - return prefix ? prefix + id : id; - }; - _.templateSettings = { - evaluate : /<%([\s\S]+?)%>/g, - interpolate : /<%=([\s\S]+?)%>/g, - escape : /<%-([\s\S]+?)%>/g - }; - var noMatch = /(.)^/; - var escapes = { - "'": "'", - '\\': '\\', - '\r': 'r', - '\n': 'n', - '\t': 't', - '\u2028': 'u2028', - '\u2029': 'u2029' - }; - - var escaper = /\\|'|\r|\n|\t|\u2028|\u2029/g; - _.template = function(text, data, settings) { - var render; - settings = _.defaults({}, settings, _.templateSettings); - var matcher = new RegExp([ - (settings.escape || noMatch).source, - (settings.interpolate || noMatch).source, - (settings.evaluate || noMatch).source - ].join('|') + '|$', 'g'); - var index = 0; - var source = "__p+='"; - text.replace(matcher, function(match, escape, interpolate, evaluate, offset) { - source += text.slice(index, offset) - .replace(escaper, function(match) { return '\\' + escapes[match]; }); - - if (escape) { - source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; - } - if (interpolate) { - source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'"; - } - if (evaluate) { - source += "';\n" + evaluate + "\n__p+='"; - } - index = offset + match.length; - return match; - }); - source += "';\n"; - if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n'; - - source = "var __t,__p='',__j=Array.prototype.join," + - "print=function(){__p+=__j.call(arguments,'');};\n" + - source + "return __p;\n"; - - try { - render = new Function(settings.variable || 'obj', '_', source); - } catch (e) { - e.source = source; - throw e; - } - - if (data) return render(data, _); - var template = function(data) { - return render.call(this, data, _); - }; - template.source = 'function(' + (settings.variable || 'obj') + '){\n' + source + '}'; - - return template; - }; - _.chain = function(obj) { - return _(obj).chain(); - }; - var result = function(obj) { - return this._chain ? _(obj).chain() : obj; - }; - _.mixin(_); - each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) { - var method = ArrayProto[name]; - _.prototype[name] = function() { - var obj = this._wrapped; - method.apply(obj, arguments); - if ((name == 'shift' || name == 'splice') && obj.length === 0) delete obj[0]; - return result.call(this, obj); - }; - }); - each(['concat', 'join', 'slice'], function(name) { - var method = ArrayProto[name]; - _.prototype[name] = function() { - return result.call(this, method.apply(this._wrapped, arguments)); - }; - }); - - _.extend(_.prototype, { - chain: function() { - this._chain = true; - return this; - }, - value: function() { - return this._wrapped; - } - - }); - -}).call(this); - -})() -}, -{}] -},{},["E/GbHF"]) -; - -function req() {return require.apply(this, arguments)} -module.exports = req("jshint"); - -});
\ No newline at end of file diff --git a/js/vendor/ace/src-noconflict/worker-json.js b/js/vendor/ace/src-noconflict/worker-json.js deleted file mode 100644 index 6ba5a8d..0000000 --- a/js/vendor/ace/src-noconflict/worker-json.js +++ /dev/null @@ -1,2251 +0,0 @@ -"no use strict"; -;(function(window) { -if (typeof window.window != "undefined" && window.document) { - return; -} - -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.normalizeModule = function(parentId, moduleName) { - if (moduleName.indexOf("!") !== -1) { - var chunks = moduleName.split("!"); - return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]); - } - if (moduleName.charAt(0) == ".") { - var base = parentId.split("/").slice(0, -1).join("/"); - moduleName = base + "/" + moduleName; - - while(moduleName.indexOf(".") !== -1 && previous != moduleName) { - var previous = moduleName; - moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, ""); - } - } - - return moduleName; -}; - -window.require = function(parentId, id) { - if (!id) { - id = parentId - parentId = null; - } - if (!id.charAt) - throw new Error("worker.js require() accepts only (parentId, id) as arguments"); - - id = normalizeModule(parentId, id); - - var module = require.modules[id]; - if (module) { - if (!module.initialized) { - module.initialized = true; - module.exports = module.factory().exports; - } - return module.exports; - } - - var chunks = id.split("/"); - chunks[0] = require.tlns[chunks[0]] || chunks[0]; - var path = chunks.join("/") + ".js"; - - require.id = id; - importScripts(path); - return require(parentId, id); -}; - -require.modules = {}; -require.tlns = {}; - -window.define = function(id, deps, factory) { - if (arguments.length == 2) { - factory = deps; - if (typeof id != "string") { - deps = id; - id = require.id; - } - } else if (arguments.length == 1) { - factory = id; - id = require.id; - } - - if (id.indexOf("text!") === 0) - return; - - var req = function(deps, factory) { - return require(id, deps, factory); - }; - - require.modules[id] = { - exports: {}, - factory: function() { - var module = this; - var returnExports = factory(req, module.exports, module); - if (returnExports) - module.exports = returnExports; - return module; - } - }; -}; - -window.initBaseUrls = function initBaseUrls(topLevelNamespaces) { - require.tlns = topLevelNamespaces; -} - -window.initSender = function initSender() { - - var EventEmitter = require("ace/lib/event_emitter").EventEmitter; - var oop = require("ace/lib/oop"); - - var Sender = function() {}; - - (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); - - return new Sender(); -} - -window.main = null; -window.sender = null; - -window.onmessage = function(e) { - var msg = e.data; - if (msg.command) { - if (main[msg.command]) - main[msg.command].apply(main, msg.args); - else - throw new Error("Unknown command:" + msg.command); - } - else if (msg.init) { - initBaseUrls(msg.tlns); - require("ace/lib/es5-shim"); - sender = initSender(); - var clazz = require(msg.module)[msg.classname]; - main = new clazz(sender); - } - else if (msg.event && sender) { - sender._emit(msg.event, msg.data); - } -}; -})(this); - -ace.define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) { - - -var EventEmitter = {}; -var stopPropagation = function() { this.propagationStopped = true; }; -var preventDefault = function() { this.defaultPrevented = true; }; - -EventEmitter._emit = -EventEmitter._dispatchEvent = function(eventName, e) { - this._eventRegistry || (this._eventRegistry = {}); - this._defaultHandlers || (this._defaultHandlers = {}); - - var listeners = this._eventRegistry[eventName] || []; - var defaultHandler = this._defaultHandlers[eventName]; - if (!listeners.length && !defaultHandler) - return; - - if (typeof e != "object" || !e) - e = {}; - - if (!e.type) - e.type = eventName; - if (!e.stopPropagation) - e.stopPropagation = stopPropagation; - if (!e.preventDefault) - e.preventDefault = preventDefault; - - for (var i=0; i<listeners.length; i++) { - listeners[i](e, this); - if (e.propagationStopped) - break; - } - - if (defaultHandler && !e.defaultPrevented) - return defaultHandler(e, this); -}; - - -EventEmitter._signal = function(eventName, e) { - var listeners = (this._eventRegistry || {})[eventName]; - if (!listeners) - return; - - for (var i=0; i<listeners.length; 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_: {}}; - - if (handlers[eventName]) { - var old = handlers[eventName]; - var disabled = handlers._disabled_[eventName]; - if (!disabled) - handlers._disabled_[eventName] = disabled = []; - disabled.push(old); - var i = disabled.indexOf(callback); - if (i != -1) - disabled.splice(i, 1); - } - handlers[eventName] = callback; -}; -EventEmitter.removeDefaultHandler = function(eventName, callback) { - var handlers = this._defaultHandlers - if (!handlers) - return; - var disabled = handlers._disabled_[eventName]; - - if (handlers[eventName] == callback) { - var old = handlers[eventName]; - if (disabled) - this.setDefaultHandler(eventName, disabled.pop()); - } else if (disabled) { - var i = disabled.indexOf(callback); - if (i != -1) - disabled.splice(i, 1); - } -}; - -EventEmitter.on = -EventEmitter.addEventListener = function(eventName, callback, capturing) { - this._eventRegistry = this._eventRegistry || {}; - - var listeners = this._eventRegistry[eventName]; - if (!listeners) - listeners = this._eventRegistry[eventName] = []; - - if (listeners.indexOf(callback) == -1) - listeners[capturing ? "unshift" : "push"](callback); - return callback; -}; - -EventEmitter.off = -EventEmitter.removeListener = -EventEmitter.removeEventListener = function(eventName, callback) { - this._eventRegistry = this._eventRegistry || {}; - - var listeners = this._eventRegistry[eventName]; - if (!listeners) - return; - - var index = listeners.indexOf(callback); - if (index !== -1) - listeners.splice(index, 1); -}; - -EventEmitter.removeAllListeners = function(eventName) { - if (this._eventRegistry) this._eventRegistry[eventName] = []; -}; - -exports.EventEmitter = EventEmitter; - -}); - -ace.define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) { - - -exports.inherits = (function() { - var tempCtor = function() {}; - return function(ctor, superCtor) { - tempCtor.prototype = superCtor.prototype; - ctor.super_ = superCtor.prototype; - ctor.prototype = new tempCtor(); - ctor.prototype.constructor = ctor; - }; -}()); - -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/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) { - -function Empty() {} - -if (!Function.prototype.bind) { - Function.prototype.bind = function bind(that) { // .length is 1 - var target = this; - if (typeof target != "function") { - throw new TypeError("Function.prototype.bind called on incompatible " + target); - } - var args = slice.call(arguments, 1); // for normal call - var bound = function () { - - if (this instanceof bound) { - - var result = target.apply( - this, - args.concat(slice.call(arguments)) - ); - if (Object(result) === result) { - return result; - } - return this; - - } else { - return target.apply( - that, - args.concat(slice.call(arguments)) - ); - - } - - }; - if(target.prototype) { - Empty.prototype = target.prototype; - bound.prototype = new Empty(); - Empty.prototype = null; - } - return bound; - }; -} -var call = Function.prototype.call; -var prototypeOfArray = Array.prototype; -var prototypeOfObject = Object.prototype; -var slice = prototypeOfArray.slice; -var _toString = call.bind(prototypeOfObject.toString); -var owns = call.bind(prototypeOfObject.hasOwnProperty); -var defineGetter; -var defineSetter; -var lookupGetter; -var lookupSetter; -var supportsAccessors; -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__); -} -if ([1,2].splice(0).length != 2) { - if(function() { // test IE < 9 to splice bug - see issue #138 - function makeArray(l) { - var a = new Array(l+2); - a[0] = a[1] = 0; - return a; - } - var array = [], lengthBefore; - - array.splice.apply(array, makeArray(20)); - array.splice.apply(array, makeArray(26)); - - lengthBefore = array.length; //46 - array.splice(5, 0, "XXX"); // add one element - - lengthBefore + 1 == array.length - - if (lengthBefore + 1 == array.length) { - return true;// has right splice implementation without bugs - } - }()) {//IE 6/7 - var array_splice = Array.prototype.splice; - Array.prototype.splice = function(start, deleteCount) { - if (!arguments.length) { - return []; - } else { - return array_splice.apply(this, [ - start === void 0 ? 0 : start, - deleteCount === void 0 ? (this.length - start) : deleteCount - ].concat(slice.call(arguments, 2))) - } - }; - } else {//IE8 - Array.prototype.splice = function(pos, removeCount){ - var length = this.length; - if (pos > 0) { - if (pos > length) - pos = length; - } else if (pos == void 0) { - pos = 0; - } else if (pos < 0) { - pos = Math.max(length + pos, 0); - } - - if (!(pos+removeCount < length)) - removeCount = length - pos; - - var removed = this.slice(pos, pos+removeCount); - var insert = slice.call(arguments, 2); - var add = insert.length; - if (pos === length) { - if (add) { - this.push.apply(this, insert); - } - } else { - var remove = Math.min(removeCount, length - pos); - var tailOldPos = pos + remove; - var tailNewPos = tailOldPos + add - remove; - var tailCount = length - tailOldPos; - var lengthAfterRemove = length - remove; - - if (tailNewPos < tailOldPos) { // case A - for (var i = 0; i < tailCount; ++i) { - this[tailNewPos+i] = this[tailOldPos+i]; - } - } else if (tailNewPos > tailOldPos) { // case B - for (i = tailCount; i--; ) { - this[tailNewPos+i] = this[tailOldPos+i]; - } - } // else, add == remove (nothing to do) - - if (add && pos === lengthAfterRemove) { - this.length = lengthAfterRemove; // truncate array - this.push.apply(this, insert); - } else { - this.length = lengthAfterRemove + add; // reserves space - for (i = 0; i < add; ++i) { - this[pos+i] = insert[i]; - } - } - } - return removed; - }; - } -} -if (!Array.isArray) { - Array.isArray = function isArray(obj) { - return _toString(obj) == "[object Array]"; - }; -} -var boxedString = Object("a"), - splitString = boxedString[0] != "a" || !(0 in boxedString); - -if (!Array.prototype.forEach) { - Array.prototype.forEach = function forEach(fun /*, thisp*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - thisp = arguments[1], - i = -1, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(); // TODO message - } - - while (++i < length) { - if (i in self) { - fun.call(thisp, self[i], i, object); - } - } - }; -} -if (!Array.prototype.map) { - Array.prototype.map = function map(fun /*, thisp*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - result = Array(length), - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self) - result[i] = fun.call(thisp, self[i], i, object); - } - return result; - }; -} -if (!Array.prototype.filter) { - Array.prototype.filter = function filter(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - result = [], - value, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self) { - value = self[i]; - if (fun.call(thisp, value, i, object)) { - result.push(value); - } - } - } - return result; - }; -} -if (!Array.prototype.every) { - Array.prototype.every = function every(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self && !fun.call(thisp, self[i], i, object)) { - return false; - } - } - return true; - }; -} -if (!Array.prototype.some) { - Array.prototype.some = function some(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self && fun.call(thisp, self[i], i, object)) { - return true; - } - } - return false; - }; -} -if (!Array.prototype.reduce) { - Array.prototype.reduce = function reduce(fun /*, initial*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - if (!length && arguments.length == 1) { - throw new TypeError("reduce of empty array with no initial value"); - } - - var i = 0; - var result; - if (arguments.length >= 2) { - result = arguments[1]; - } else { - do { - if (i in self) { - result = self[i++]; - break; - } - if (++i >= length) { - throw new TypeError("reduce of empty array with no initial value"); - } - } while (true); - } - - for (; i < length; i++) { - if (i in self) { - result = fun.call(void 0, result, self[i], i, object); - } - } - - return result; - }; -} -if (!Array.prototype.reduceRight) { - Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - if (!length && arguments.length == 1) { - throw new TypeError("reduceRight of empty array with no initial value"); - } - - var result, i = length - 1; - if (arguments.length >= 2) { - result = arguments[1]; - } else { - do { - if (i in self) { - result = self[i--]; - break; - } - if (--i < 0) { - throw new TypeError("reduceRight of empty array with no initial value"); - } - } while (true); - } - - do { - if (i in this) { - result = fun.call(void 0, result, self[i], i, object); - } - } while (i--); - - return result; - }; -} -if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) { - Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) { - var self = splitString && _toString(this) == "[object String]" ? - this.split("") : - toObject(this), - length = self.length >>> 0; - - if (!length) { - return -1; - } - - var i = 0; - if (arguments.length > 1) { - i = toInteger(arguments[1]); - } - i = i >= 0 ? i : Math.max(0, length + i); - for (; i < length; i++) { - if (i in self && self[i] === sought) { - return i; - } - } - return -1; - }; -} -if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) { - Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) { - var self = splitString && _toString(this) == "[object String]" ? - this.split("") : - toObject(this), - length = self.length >>> 0; - - if (!length) { - return -1; - } - var i = length - 1; - if (arguments.length > 1) { - i = Math.min(i, toInteger(arguments[1])); - } - i = i >= 0 ? i : length - Math.abs(i); - for (; i >= 0; i--) { - if (i in self && sought === self[i]) { - return i; - } - } - return -1; - }; -} -if (!Object.getPrototypeOf) { - Object.getPrototypeOf = function getPrototypeOf(object) { - return object.__proto__ || ( - object.constructor ? - object.constructor.prototype : - prototypeOfObject - ); - }; -} -if (!Object.getOwnPropertyDescriptor) { - var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " + - "non-object: "; - Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) { - if ((typeof object != "object" && typeof object != "function") || object === null) - throw new TypeError(ERR_NON_OBJECT + object); - if (!owns(object, property)) - return; - - var descriptor, getter, setter; - descriptor = { enumerable: true, configurable: true }; - if (supportsAccessors) { - var prototype = object.__proto__; - object.__proto__ = prototypeOfObject; - - var getter = lookupGetter(object, property); - var setter = lookupSetter(object, property); - object.__proto__ = prototype; - - if (getter || setter) { - if (getter) descriptor.get = getter; - if (setter) descriptor.set = setter; - return descriptor; - } - } - descriptor.value = object[property]; - return descriptor; - }; -} -if (!Object.getOwnPropertyNames) { - Object.getOwnPropertyNames = function getOwnPropertyNames(object) { - return Object.keys(object); - }; -} -if (!Object.create) { - var createEmpty; - if (Object.prototype.__proto__ === null) { - createEmpty = function () { - return { "__proto__": null }; - }; - } else { - createEmpty = function () { - var empty = {}; - for (var i in empty) - empty[i] = null; - empty.constructor = - empty.hasOwnProperty = - empty.propertyIsEnumerable = - empty.isPrototypeOf = - empty.toLocaleString = - empty.toString = - empty.valueOf = - empty.__proto__ = null; - return empty; - } - } - - Object.create = function create(prototype, properties) { - var object; - if (prototype === null) { - object = createEmpty(); - } else { - if (typeof prototype != "object") - throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'"); - var Type = function () {}; - Type.prototype = prototype; - object = new Type(); - object.__proto__ = prototype; - } - if (properties !== void 0) - Object.defineProperties(object, properties); - return object; - }; -} - -function doesDefinePropertyWork(object) { - try { - Object.defineProperty(object, "sentinel", {}); - return "sentinel" in object; - } catch (exception) { - } -} -if (Object.defineProperty) { - var definePropertyWorksOnObject = doesDefinePropertyWork({}); - var definePropertyWorksOnDom = typeof document == "undefined" || - 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: "; - var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: " - var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " + - "on this javascript engine"; - - Object.defineProperty = function defineProperty(object, property, descriptor) { - if ((typeof object != "object" && typeof object != "function") || object === null) - throw new TypeError(ERR_NON_OBJECT_TARGET + object); - if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null) - 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); - if (owns(descriptor, "get")) - defineGetter(object, property, descriptor.get); - if (owns(descriptor, "set")) - defineSetter(object, property, descriptor.set); - } - - return object; - }; -} -if (!Object.defineProperties) { - Object.defineProperties = function defineProperties(object, properties) { - for (var property in properties) { - if (owns(properties, property)) - Object.defineProperty(object, property, properties[property]); - } - return object; - }; -} -if (!Object.seal) { - Object.seal = function seal(object) { - return object; - }; -} -if (!Object.freeze) { - Object.freeze = function freeze(object) { - return object; - }; -} -try { - Object.freeze(function () {}); -} catch (exception) { - Object.freeze = (function freeze(freezeObject) { - return function freeze(object) { - if (typeof object == "function") { - return object; - } else { - return freezeObject(object); - } - }; - })(Object.freeze); -} -if (!Object.preventExtensions) { - Object.preventExtensions = function preventExtensions(object) { - return object; - }; -} -if (!Object.isSealed) { - Object.isSealed = function isSealed(object) { - return false; - }; -} -if (!Object.isFrozen) { - Object.isFrozen = function isFrozen(object) { - return false; - }; -} -if (!Object.isExtensible) { - Object.isExtensible = function isExtensible(object) { - if (Object(object) === object) { - throw new TypeError(); // TODO message - } - var name = ''; - while (owns(object, name)) { - name += '?'; - } - object[name] = true; - var returnValue = owns(object, name); - delete object[name]; - return returnValue; - }; -} -if (!Object.keys) { - var hasDontEnumBug = true, - dontEnums = [ - "toString", - "toLocaleString", - "valueOf", - "hasOwnProperty", - "isPrototypeOf", - "propertyIsEnumerable", - "constructor" - ], - dontEnumsLength = dontEnums.length; - - for (var key in {"toString": null}) { - hasDontEnumBug = false; - } - - Object.keys = function keys(object) { - - if ( - (typeof object != "object" && typeof object != "function") || - object === null - ) { - throw new TypeError("Object.keys called on a non-object"); - } - - var keys = []; - for (var name in object) { - if (owns(object, name)) { - keys.push(name); - } - } - - if (hasDontEnumBug) { - for (var i = 0, ii = dontEnumsLength; i < ii; i++) { - var dontEnum = dontEnums[i]; - if (owns(object, dontEnum)) { - keys.push(dontEnum); - } - } - } - return keys; - }; - -} -if (!Date.now) { - Date.now = function now() { - return new Date().getTime(); - }; -} -var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" + - "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" + - "\u2029\uFEFF"; -if (!String.prototype.trim || ws.trim()) { - ws = "[" + ws + "]"; - var trimBeginRegexp = new RegExp("^" + ws + ws + "*"), - trimEndRegexp = new RegExp(ws + ws + "*$"); - String.prototype.trim = function trim() { - return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, ""); - }; -} - -function toInteger(n) { - n = +n; - if (n !== n) { // isNaN - n = 0; - } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) { - n = (n > 0 || -1) * Math.floor(Math.abs(n)); - } - return n; -} - -function isPrimitive(input) { - var type = typeof input; - return ( - input === null || - type === "undefined" || - type === "boolean" || - type === "number" || - type === "string" - ); -} - -function toPrimitive(input) { - var val, valueOf, toString; - if (isPrimitive(input)) { - return input; - } - valueOf = input.valueOf; - if (typeof valueOf === "function") { - val = valueOf.call(input); - if (isPrimitive(val)) { - return val; - } - } - toString = input.toString; - if (typeof toString === "function") { - val = toString.call(input); - if (isPrimitive(val)) { - return val; - } - } - throw new TypeError(); -} -var toObject = function (o) { - if (o == null) { // this matches both null and undefined - throw new TypeError("can't convert "+o+" to object"); - } - return Object(o); -}; - -}); - -ace.define('ace/mode/json_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/json/json_parse'], function(require, exports, module) { - - -var oop = require("../lib/oop"); -var Mirror = require("../worker/mirror").Mirror; -var parse = require("./json/json_parse"); - -var 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(); - - try { - var result = parse(value); - } catch (e) { - var pos = this.doc.indexToPosition(e.at-1); - this.sender.emit("error", { - row: pos.row, - column: pos.column, - text: e.message, - type: "error" - }); - return; - } - this.sender.emit("ok"); - }; - -}).call(JsonWorker.prototype); - -}); -ace.define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) { - - -var Document = require("../document").Document; -var lang = require("../lib/lang"); - -var Mirror = exports.Mirror = function(sender) { - this.sender = sender; - var doc = this.doc = new Document(""); - - var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this)); - - var _self = this; - sender.on("change", function(e) { - doc.applyDeltas(e.data); - deferredUpdate.schedule(_self.$timeout); - }); -}; - -(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() { - }; - -}).call(Mirror.prototype); - -}); - -ace.define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) { - - -var oop = require("./lib/oop"); -var EventEmitter = require("./lib/event_emitter").EventEmitter; -var Range = require("./range").Range; -var Anchor = require("./anchor").Anchor; - -var Document = function(text) { - this.$lines = []; - if (text.length == 0) { - this.$lines = [""]; - } else if (Array.isArray(text)) { - this._insertLines(0, text); - } else { - this.insert({row: 0, column:0}, text); - } -}; - -(function() { - - oop.implement(this, EventEmitter); - this.setValue = function(text) { - var len = this.getLength(); - this.remove(new Range(0, 0, len, this.getLine(len-1).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); - }; - if ("aaa".split(/a/).length == 0) - this.$split = function(text) { - return text.replace(/\r\n|\r/g, "\n").split("\n"); - } - else - this.$split = 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.getNewLineCharacter = function() { - switch (this.$newLineMode) { - case "windows": - return "\r\n"; - case "unix": - return "\n"; - default: - return this.$autoNewLine; - } - }; - - this.$autoNewLine = "\n"; - this.$newLineMode = "auto"; - this.setNewLineMode = function(newLineMode) { - if (this.$newLineMode === newLineMode) - return; - - this.$newLineMode = newLineMode; - }; - this.getNewLineMode = function() { - return this.$newLineMode; - }; - this.isNewLine = function(text) { - return (text == "\r\n" || text == "\r" || text == "\n"); - }; - 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) { - if (range.start.row == range.end.row) { - return this.getLine(range.start.row) - .substring(range.start.column, range.end.column); - } - var lines = this.getLines(range.start.row, range.end.row); - lines[0] = (lines[0] || "").substring(range.start.column); - var l = lines.length - 1; - if (range.end.row - range.start.row == l) - lines[l] = lines[l].substring(0, range.end.column); - return lines.join(this.getNewLineCharacter()); - }; - - this.$clipPosition = function(position) { - var length = this.getLength(); - if (position.row >= length) { - position.row = Math.max(0, length - 1); - position.column = this.getLine(length-1).length; - } else if (position.row < 0) - position.row = 0; - return position; - }; - this.insert = function(position, text) { - if (!text || text.length === 0) - return position; - - position = this.$clipPosition(position); - if (this.getLength() <= 1) - this.$detectNewLine(text); - - var lines = this.$split(text); - var firstLine = lines.splice(0, 1)[0]; - var lastLine = lines.length == 0 ? null : lines.splice(lines.length - 1, 1)[0]; - - position = this.insertInLine(position, firstLine); - if (lastLine !== null) { - position = this.insertNewLine(position); // terminate first line - position = this._insertLines(position.row, lines); - position = this.insertInLine(position, lastLine || ""); - } - return position; - }; - this.insertLines = function(row, lines) { - if (row >= this.getLength()) - return this.insert({row: row, column: 0}, "\n" + lines.join("\n")); - return this._insertLines(Math.max(row, 0), lines); - }; - this._insertLines = function(row, lines) { - if (lines.length == 0) - return {row: row, column: 0}; - if (lines.length > 0xFFFF) { - var end = this._insertLines(row, lines.slice(0xFFFF)); - lines = lines.slice(0, 0xFFFF); - } - - var args = [row, 0]; - args.push.apply(args, lines); - this.$lines.splice.apply(this.$lines, args); - - var range = new Range(row, 0, row + lines.length, 0); - var delta = { - action: "insertLines", - range: range, - lines: lines - }; - this._emit("change", { data: delta }); - return end || range.end; - }; - this.insertNewLine = function(position) { - position = this.$clipPosition(position); - var line = this.$lines[position.row] || ""; - - this.$lines[position.row] = line.substring(0, position.column); - this.$lines.splice(position.row + 1, 0, line.substring(position.column, line.length)); - - var end = { - row : position.row + 1, - column : 0 - }; - - var delta = { - action: "insertText", - range: Range.fromPoints(position, end), - text: this.getNewLineCharacter() - }; - this._emit("change", { data: delta }); - - return end; - }; - this.insertInLine = function(position, text) { - if (text.length == 0) - return position; - - var line = this.$lines[position.row] || ""; - - this.$lines[position.row] = line.substring(0, position.column) + text - + line.substring(position.column); - - var end = { - row : position.row, - column : position.column + text.length - }; - - var delta = { - action: "insertText", - range: Range.fromPoints(position, end), - text: text - }; - this._emit("change", { data: delta }); - - return end; - }; - this.remove = function(range) { - range.start = this.$clipPosition(range.start); - range.end = this.$clipPosition(range.end); - - if (range.isEmpty()) - return range.start; - - var firstRow = range.start.row; - var lastRow = range.end.row; - - if (range.isMultiLine()) { - var firstFullRow = range.start.column == 0 ? firstRow : firstRow + 1; - var lastFullRow = lastRow - 1; - - if (range.end.column > 0) - this.removeInLine(lastRow, 0, range.end.column); - - if (lastFullRow >= firstFullRow) - this._removeLines(firstFullRow, lastFullRow); - - if (firstFullRow != firstRow) { - this.removeInLine(firstRow, range.start.column, this.getLine(firstRow).length); - this.removeNewLine(range.start.row); - } - } - else { - this.removeInLine(firstRow, range.start.column, range.end.column); - } - return range.start; - }; - this.removeInLine = function(row, startColumn, endColumn) { - if (startColumn == endColumn) - return; - - var range = new Range(row, startColumn, row, endColumn); - var line = this.getLine(row); - var removed = line.substring(startColumn, endColumn); - var newLine = line.substring(0, startColumn) + line.substring(endColumn, line.length); - this.$lines.splice(row, 1, newLine); - - var delta = { - action: "removeText", - range: range, - text: removed - }; - this._emit("change", { data: delta }); - return range.start; - }; - this.removeLines = function(firstRow, lastRow) { - if (firstRow < 0 || lastRow >= this.getLength()) - return this.remove(new Range(firstRow, 0, lastRow + 1, 0)); - return this._removeLines(firstRow, lastRow); - }; - - this._removeLines = function(firstRow, lastRow) { - var range = new Range(firstRow, 0, lastRow + 1, 0); - var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1); - - var delta = { - action: "removeLines", - range: range, - nl: this.getNewLineCharacter(), - lines: removed - }; - this._emit("change", { data: delta }); - return removed; - }; - this.removeNewLine = function(row) { - var firstLine = this.getLine(row); - var secondLine = this.getLine(row+1); - - var range = new Range(row, firstLine.length, row+1, 0); - var line = firstLine + secondLine; - - this.$lines.splice(row, 2, line); - - var delta = { - action: "removeText", - range: range, - text: this.getNewLineCharacter() - }; - this._emit("change", { data: delta }); - }; - this.replace = function(range, text) { - if (text.length == 0 && range.isEmpty()) - return range.start; - if (text == this.getTextRange(range)) - return range.end; - - this.remove(range); - if (text) { - var end = this.insert(range.start, text); - } - else { - end = range.start; - } - - return end; - }; - this.applyDeltas = function(deltas) { - for (var i=0; i<deltas.length; i++) { - var delta = deltas[i]; - var range = Range.fromPoints(delta.range.start, delta.range.end); - - if (delta.action == "insertLines") - this.insertLines(range.start.row, delta.lines); - else if (delta.action == "insertText") - this.insert(range.start, delta.text); - else if (delta.action == "removeLines") - this._removeLines(range.start.row, range.end.row - 1); - else if (delta.action == "removeText") - this.remove(range); - } - }; - this.revertDeltas = function(deltas) { - for (var i=deltas.length-1; i>=0; i--) { - var delta = deltas[i]; - - var range = Range.fromPoints(delta.range.start, delta.range.end); - - if (delta.action == "insertLines") - this._removeLines(range.start.row, range.end.row - 1); - else if (delta.action == "insertText") - this.remove(range); - else if (delta.action == "removeLines") - this._insertLines(range.start.row, delta.lines); - else if (delta.action == "removeText") - this.insert(range.start, delta.text); - } - }; - this.indexToPosition = function(index, startRow) { - var lines = this.$lines || this.getAllLines(); - var newlineLength = this.getNewLineCharacter().length; - for (var i = startRow || 0, l = lines.length; i < l; i++) { - index -= lines[i].length + newlineLength; - if (index < 0) - return {row: i, column: index + lines[i].length + newlineLength}; - } - return {row: l-1, column: lines[l-1].length}; - }; - this.positionToIndex = function(pos, startRow) { - var lines = this.$lines || this.getAllLines(); - var newlineLength = this.getNewLineCharacter().length; - var index = 0; - var row = Math.min(pos.row, lines.length); - for (var i = startRow || 0; i < row; ++i) - index += lines[i].length + newlineLength; - - return index + pos.column; - }; - -}).call(Document.prototype); - -exports.Document = Document; -}); - -ace.define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) { - -var comparePoints = function(p1, p2) { - return p1.row - p2.row || p1.column - p2.column; -}; -var 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 this.compare(row, column) == 0; - }; - this.compareRange = function(range) { - var cmp, - end = range.end, - start = range.start; - - cmp = this.compare(end.row, end.column); - if (cmp == 1) { - cmp = this.compare(start.row, start.column); - if (cmp == 1) { - return 2; - } else if (cmp == 0) { - return 1; - } else { - return 0; - } - } else if (cmp == -1) { - return -2; - } else { - cmp = this.compare(start.row, start.column); - if (cmp == -1) { - return -1; - } else if (cmp == 1) { - return 42; - } else { - return 0; - } - } - }; - this.comparePoint = function(p) { - return this.compare(p.row, p.column); - }; - this.containsRange = function(range) { - return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0; - }; - this.intersects = function(range) { - var cmp = this.compareRange(range); - return (cmp == -1 || cmp == 0 || cmp == 1); - }; - 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) { - if (typeof row == "object") { - this.start.column = row.column; - this.start.row = row.row; - } else { - this.start.row = row; - this.start.column = column; - } - }; - this.setEnd = function(row, column) { - if (typeof row == "object") { - this.end.column = row.column; - this.end.row = row.row; - } else { - this.end.row = row; - this.end.column = column; - } - }; - this.inside = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isEnd(row, column) || this.isStart(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.insideStart = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isEnd(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.insideEnd = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isStart(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.compare = function(row, column) { - if (!this.isMultiLine()) { - if (row === this.start.row) { - return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0); - }; - } - - if (row < this.start.row) - return -1; - - if (row > this.end.row) - return 1; - - if (this.start.row === row) - return column >= this.start.column ? 0 : -1; - - if (this.end.row === row) - return column <= this.end.column ? 0 : 1; - - return 0; - }; - this.compareStart = function(row, column) { - if (this.start.row == row && this.start.column == column) { - return -1; - } else { - return this.compare(row, column); - } - }; - this.compareEnd = function(row, column) { - if (this.end.row == row && this.end.column == column) { - return 1; - } else { - return this.compare(row, column); - } - }; - this.compareInside = function(row, column) { - if (this.end.row == row && this.end.column == column) { - return 1; - } else if (this.start.row == row && this.start.column == column) { - return -1; - } else { - return this.compare(row, column); - } - }; - this.clipRows = function(firstRow, lastRow) { - if (this.end.row > lastRow) - var end = {row: lastRow + 1, column: 0}; - else if (this.end.row < firstRow) - var end = {row: firstRow, column: 0}; - - if (this.start.row > lastRow) - var start = {row: lastRow + 1, column: 0}; - else if (this.start.row < firstRow) - 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 (cmp == 0) - return this; - else if (cmp == -1) - 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() { - if (this.end.column == 0) - return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0) - else - return new Range(this.start.row, 0, this.end.row, 0) - }; - this.toScreenRange = function(session) { - var screenPosStart = session.documentToScreenPosition(this.start); - var 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/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) { - - -var oop = require("./lib/oop"); -var EventEmitter = require("./lib/event_emitter").EventEmitter; - -var Anchor = exports.Anchor = function(doc, row, column) { - this.$onChange = this.onChange.bind(this); - this.attach(doc); - - if (typeof column == "undefined") - this.setPosition(row.row, row.column); - else - this.setPosition(row, column); -}; - -(function() { - - oop.implement(this, EventEmitter); - this.getPosition = function() { - return this.$clipPositionToDocument(this.row, this.column); - }; - this.getDocument = function() { - return this.document; - }; - this.onChange = function(e) { - var delta = e.data; - var range = delta.range; - - if (range.start.row == range.end.row && range.start.row != this.row) - return; - - if (range.start.row > this.row) - return; - - if (range.start.row == this.row && range.start.column > this.column) - return; - - var row = this.row; - var column = this.column; - var start = range.start; - var end = range.end; - - if (delta.action === "insertText") { - if (start.row === row && start.column <= column) { - if (start.row === end.row) { - column += end.column - start.column; - } else { - column -= start.column; - row += end.row - start.row; - } - } else if (start.row !== end.row && start.row < row) { - row += end.row - start.row; - } - } else if (delta.action === "insertLines") { - if (start.row <= row) { - row += end.row - start.row; - } - } else if (delta.action === "removeText") { - if (start.row === row && start.column < column) { - if (end.column >= column) - column = start.column; - else - column = Math.max(0, column - (end.column - start.column)); - - } else if (start.row !== end.row && start.row < row) { - if (end.row === row) - column = Math.max(0, column - end.column) + start.column; - row -= (end.row - start.row); - } else if (end.row === row) { - row -= end.row - start.row; - column = Math.max(0, column - end.column) + start.column; - } - } else if (delta.action == "removeLines") { - if (start.row <= row) { - if (end.row <= row) - row -= end.row - start.row; - else { - row = start.row; - column = 0; - } - } - } - - this.setPosition(row, column, true); - }; - this.setPosition = function(row, column, noClip) { - var pos; - if (noClip) { - pos = { - row: row, - column: column - }; - } else { - pos = this.$clipPositionToDocument(row, column); - } - - if (this.row == pos.row && this.column == pos.column) - return; - - var old = { - row: this.row, - column: this.column - }; - - this.row = pos.row; - this.column = pos.column; - this._emit("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 = {}; - - if (row >= this.document.getLength()) { - pos.row = Math.max(0, this.document.getLength() - 1); - pos.column = this.document.getLine(pos.row).length; - } - else if (row < 0) { - pos.row = 0; - pos.column = 0; - } - else { - pos.row = row; - pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column)); - } - - if (column < 0) - pos.column = 0; - - return pos; - }; - -}).call(Anchor.prototype); - -}); - -ace.define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) { - - -exports.stringReverse = function(string) { - return string.split("").reverse().join(""); -}; - -exports.stringRepeat = function (string, count) { - var result = ''; - while (count > 0) { - if (count & 1) - result += string; - - if (count >>= 1) - string += string; - } - return result; -}; - -var trimBeginRegexp = /^\s\s*/; -var 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){ - var copy = []; - for (var i=0, l=array.length; i<l; i++) { - if (array[i] && typeof array[i] == "object") - copy[i] = this.copyObject( array[i] ); - else - copy[i] = array[i]; - } - return copy; -}; - -exports.deepCopy = function (obj) { - if (typeof obj != "object") { - return obj; - } - - var copy = obj.constructor(); - for (var key in obj) { - if (typeof obj[key] == "object") { - copy[key] = this.deepCopy(obj[key]); - } else { - copy[key] = obj[key]; - } - } - return copy; -}; - -exports.arrayToMap = function(arr) { - var map = {}; - for (var i=0; i<arr.length; 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; i <= array.length; i++) { - if (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(/</g, "<"); -}; - -exports.getMatchOffsets = function(string, regExp) { - var matches = []; - - string.replace(regExp, function(str) { - matches.push({ - offset: arguments[arguments.length-2], - length: str.length - }); - }); - - return matches; -}; -exports.deferredCall = function(fcn) { - - var timer = null; - var callback = function() { - timer = null; - fcn(); - }; - - var deferred = function(timeout) { - deferred.cancel(); - timer = setTimeout(callback, timeout || 0); - return deferred; - }; - - deferred.schedule = deferred; - - deferred.call = function() { - this.cancel(); - fcn(); - return deferred; - }; - - deferred.cancel = function() { - clearTimeout(timer); - timer = null; - return deferred; - }; - - return deferred; -}; - - -exports.delayedCall = function(fcn, defaultTimeout) { - var timer = null; - var callback = function() { - timer = null; - fcn(); - }; - - var _self = function(timeout) { - timer && clearTimeout(timer); - timer = setTimeout(callback, timeout || defaultTimeout); - }; - - _self.delay = _self; - _self.schedule = function(timeout) { - if (timer == null) - timer = setTimeout(callback, timeout || 0); - }; - - _self.call = function() { - this.cancel(); - fcn(); - }; - - _self.cancel = function() { - timer && clearTimeout(timer); - timer = null; - }; - - _self.isPending = function() { - return timer; - }; - - return _self; -}; -}); - -ace.define('ace/mode/json/json_parse', ['require', 'exports', 'module' ], function(require, exports, module) { - - var at, // The index of the current character - ch, // The current character - escapee = { - '"': '"', - '\\': '\\', - '/': '/', - b: '\b', - f: '\f', - n: '\n', - r: '\r', - t: '\t' - }, - text, - - error = function (m) { - - throw { - name: 'SyntaxError', - message: m, - at: at, - text: text - }; - }, - - next = function (c) { - - if (c && c !== ch) { - error("Expected '" + c + "' instead of '" + ch + "'"); - } - - ch = text.charAt(at); - at += 1; - return ch; - }, - - number = function () { - - var number, - string = ''; - - if (ch === '-') { - string = '-'; - next('-'); - } - while (ch >= '0' && ch <= '9') { - string += ch; - next(); - } - if (ch === '.') { - string += '.'; - while (next() && ch >= '0' && ch <= '9') { - string += ch; - } - } - if (ch === 'e' || ch === 'E') { - string += ch; - next(); - if (ch === '-' || ch === '+') { - string += ch; - next(); - } - while (ch >= '0' && ch <= '9') { - string += ch; - next(); - } - } - number = +string; - if (isNaN(number)) { - error("Bad number"); - } else { - return number; - } - }, - - string = function () { - - var hex, - i, - string = '', - uffff; - - if (ch === '"') { - while (next()) { - if (ch === '"') { - next(); - return string; - } else if (ch === '\\') { - next(); - if (ch === 'u') { - uffff = 0; - for (i = 0; i < 4; i += 1) { - hex = parseInt(next(), 16); - if (!isFinite(hex)) { - break; - } - uffff = uffff * 16 + hex; - } - string += String.fromCharCode(uffff); - } else if (typeof escapee[ch] === 'string') { - string += escapee[ch]; - } else { - break; - } - } else { - string += ch; - } - } - } - error("Bad string"); - }, - - white = function () { - - while (ch && ch <= ' ') { - next(); - } - }, - - word = function () { - - switch (ch) { - case 't': - next('t'); - next('r'); - next('u'); - next('e'); - return true; - case 'f': - next('f'); - next('a'); - next('l'); - next('s'); - next('e'); - return false; - case 'n': - next('n'); - next('u'); - next('l'); - next('l'); - return null; - } - error("Unexpected '" + ch + "'"); - }, - - value, // Place holder for the value function. - - array = function () { - - var array = []; - - if (ch === '[') { - next('['); - white(); - if (ch === ']') { - next(']'); - return array; // empty array - } - while (ch) { - array.push(value()); - white(); - if (ch === ']') { - next(']'); - return array; - } - next(','); - white(); - } - } - error("Bad array"); - }, - - object = function () { - - var key, - object = {}; - - if (ch === '{') { - next('{'); - white(); - if (ch === '}') { - next('}'); - return object; // empty object - } - while (ch) { - key = string(); - white(); - next(':'); - if (Object.hasOwnProperty.call(object, key)) { - error('Duplicate key "' + key + '"'); - } - object[key] = value(); - white(); - if (ch === '}') { - next('}'); - return object; - } - next(','); - white(); - } - } - error("Bad object"); - }; - - value = function () { - - white(); - switch (ch) { - case '{': - return object(); - case '[': - return array(); - case '"': - return string(); - case '-': - return number(); - default: - return ch >= '0' && ch <= '9' ? number() : word(); - } - }; - - return function (source, reviver) { - var result; - - text = source; - at = 0; - ch = ' '; - result = value(); - white(); - if (ch) { - error("Syntax error"); - } - - return typeof reviver === 'function' ? function walk(holder, key) { - var k, v, value = holder[key]; - if (value && typeof value === 'object') { - for (k in value) { - if (Object.hasOwnProperty.call(value, k)) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } else { - delete value[k]; - } - } - } - } - return reviver.call(holder, key, value); - }({'': result}, '') : result; - }; -}); diff --git a/js/vendor/ace/src-noconflict/worker-lua.js b/js/vendor/ace/src-noconflict/worker-lua.js deleted file mode 100644 index 42ad831..0000000 --- a/js/vendor/ace/src-noconflict/worker-lua.js +++ /dev/null @@ -1,3487 +0,0 @@ -"no use strict"; -;(function(window) { -if (typeof window.window != "undefined" && window.document) { - return; -} - -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.normalizeModule = function(parentId, moduleName) { - if (moduleName.indexOf("!") !== -1) { - var chunks = moduleName.split("!"); - return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]); - } - if (moduleName.charAt(0) == ".") { - var base = parentId.split("/").slice(0, -1).join("/"); - moduleName = base + "/" + moduleName; - - while(moduleName.indexOf(".") !== -1 && previous != moduleName) { - var previous = moduleName; - moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, ""); - } - } - - return moduleName; -}; - -window.require = function(parentId, id) { - if (!id) { - id = parentId - parentId = null; - } - if (!id.charAt) - throw new Error("worker.js require() accepts only (parentId, id) as arguments"); - - id = normalizeModule(parentId, id); - - var module = require.modules[id]; - if (module) { - if (!module.initialized) { - module.initialized = true; - module.exports = module.factory().exports; - } - return module.exports; - } - - var chunks = id.split("/"); - chunks[0] = require.tlns[chunks[0]] || chunks[0]; - var path = chunks.join("/") + ".js"; - - require.id = id; - importScripts(path); - return require(parentId, id); -}; - -require.modules = {}; -require.tlns = {}; - -window.define = function(id, deps, factory) { - if (arguments.length == 2) { - factory = deps; - if (typeof id != "string") { - deps = id; - id = require.id; - } - } else if (arguments.length == 1) { - factory = id; - id = require.id; - } - - if (id.indexOf("text!") === 0) - return; - - var req = function(deps, factory) { - return require(id, deps, factory); - }; - - require.modules[id] = { - exports: {}, - factory: function() { - var module = this; - var returnExports = factory(req, module.exports, module); - if (returnExports) - module.exports = returnExports; - return module; - } - }; -}; - -window.initBaseUrls = function initBaseUrls(topLevelNamespaces) { - require.tlns = topLevelNamespaces; -} - -window.initSender = function initSender() { - - var EventEmitter = require("ace/lib/event_emitter").EventEmitter; - var oop = require("ace/lib/oop"); - - var Sender = function() {}; - - (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); - - return new Sender(); -} - -window.main = null; -window.sender = null; - -window.onmessage = function(e) { - var msg = e.data; - if (msg.command) { - if (main[msg.command]) - main[msg.command].apply(main, msg.args); - else - throw new Error("Unknown command:" + msg.command); - } - else if (msg.init) { - initBaseUrls(msg.tlns); - require("ace/lib/es5-shim"); - sender = initSender(); - var clazz = require(msg.module)[msg.classname]; - main = new clazz(sender); - } - else if (msg.event && sender) { - sender._emit(msg.event, msg.data); - } -}; -})(this); - -ace.define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) { - - -var EventEmitter = {}; -var stopPropagation = function() { this.propagationStopped = true; }; -var preventDefault = function() { this.defaultPrevented = true; }; - -EventEmitter._emit = -EventEmitter._dispatchEvent = function(eventName, e) { - this._eventRegistry || (this._eventRegistry = {}); - this._defaultHandlers || (this._defaultHandlers = {}); - - var listeners = this._eventRegistry[eventName] || []; - var defaultHandler = this._defaultHandlers[eventName]; - if (!listeners.length && !defaultHandler) - return; - - if (typeof e != "object" || !e) - e = {}; - - if (!e.type) - e.type = eventName; - if (!e.stopPropagation) - e.stopPropagation = stopPropagation; - if (!e.preventDefault) - e.preventDefault = preventDefault; - - for (var i=0; i<listeners.length; i++) { - listeners[i](e, this); - if (e.propagationStopped) - break; - } - - if (defaultHandler && !e.defaultPrevented) - return defaultHandler(e, this); -}; - - -EventEmitter._signal = function(eventName, e) { - var listeners = (this._eventRegistry || {})[eventName]; - if (!listeners) - return; - - for (var i=0; i<listeners.length; 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_: {}}; - - if (handlers[eventName]) { - var old = handlers[eventName]; - var disabled = handlers._disabled_[eventName]; - if (!disabled) - handlers._disabled_[eventName] = disabled = []; - disabled.push(old); - var i = disabled.indexOf(callback); - if (i != -1) - disabled.splice(i, 1); - } - handlers[eventName] = callback; -}; -EventEmitter.removeDefaultHandler = function(eventName, callback) { - var handlers = this._defaultHandlers - if (!handlers) - return; - var disabled = handlers._disabled_[eventName]; - - if (handlers[eventName] == callback) { - var old = handlers[eventName]; - if (disabled) - this.setDefaultHandler(eventName, disabled.pop()); - } else if (disabled) { - var i = disabled.indexOf(callback); - if (i != -1) - disabled.splice(i, 1); - } -}; - -EventEmitter.on = -EventEmitter.addEventListener = function(eventName, callback, capturing) { - this._eventRegistry = this._eventRegistry || {}; - - var listeners = this._eventRegistry[eventName]; - if (!listeners) - listeners = this._eventRegistry[eventName] = []; - - if (listeners.indexOf(callback) == -1) - listeners[capturing ? "unshift" : "push"](callback); - return callback; -}; - -EventEmitter.off = -EventEmitter.removeListener = -EventEmitter.removeEventListener = function(eventName, callback) { - this._eventRegistry = this._eventRegistry || {}; - - var listeners = this._eventRegistry[eventName]; - if (!listeners) - return; - - var index = listeners.indexOf(callback); - if (index !== -1) - listeners.splice(index, 1); -}; - -EventEmitter.removeAllListeners = function(eventName) { - if (this._eventRegistry) this._eventRegistry[eventName] = []; -}; - -exports.EventEmitter = EventEmitter; - -}); - -ace.define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) { - - -exports.inherits = (function() { - var tempCtor = function() {}; - return function(ctor, superCtor) { - tempCtor.prototype = superCtor.prototype; - ctor.super_ = superCtor.prototype; - ctor.prototype = new tempCtor(); - ctor.prototype.constructor = ctor; - }; -}()); - -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/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) { - -function Empty() {} - -if (!Function.prototype.bind) { - Function.prototype.bind = function bind(that) { // .length is 1 - var target = this; - if (typeof target != "function") { - throw new TypeError("Function.prototype.bind called on incompatible " + target); - } - var args = slice.call(arguments, 1); // for normal call - var bound = function () { - - if (this instanceof bound) { - - var result = target.apply( - this, - args.concat(slice.call(arguments)) - ); - if (Object(result) === result) { - return result; - } - return this; - - } else { - return target.apply( - that, - args.concat(slice.call(arguments)) - ); - - } - - }; - if(target.prototype) { - Empty.prototype = target.prototype; - bound.prototype = new Empty(); - Empty.prototype = null; - } - return bound; - }; -} -var call = Function.prototype.call; -var prototypeOfArray = Array.prototype; -var prototypeOfObject = Object.prototype; -var slice = prototypeOfArray.slice; -var _toString = call.bind(prototypeOfObject.toString); -var owns = call.bind(prototypeOfObject.hasOwnProperty); -var defineGetter; -var defineSetter; -var lookupGetter; -var lookupSetter; -var supportsAccessors; -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__); -} -if ([1,2].splice(0).length != 2) { - if(function() { // test IE < 9 to splice bug - see issue #138 - function makeArray(l) { - var a = new Array(l+2); - a[0] = a[1] = 0; - return a; - } - var array = [], lengthBefore; - - array.splice.apply(array, makeArray(20)); - array.splice.apply(array, makeArray(26)); - - lengthBefore = array.length; //46 - array.splice(5, 0, "XXX"); // add one element - - lengthBefore + 1 == array.length - - if (lengthBefore + 1 == array.length) { - return true;// has right splice implementation without bugs - } - }()) {//IE 6/7 - var array_splice = Array.prototype.splice; - Array.prototype.splice = function(start, deleteCount) { - if (!arguments.length) { - return []; - } else { - return array_splice.apply(this, [ - start === void 0 ? 0 : start, - deleteCount === void 0 ? (this.length - start) : deleteCount - ].concat(slice.call(arguments, 2))) - } - }; - } else {//IE8 - Array.prototype.splice = function(pos, removeCount){ - var length = this.length; - if (pos > 0) { - if (pos > length) - pos = length; - } else if (pos == void 0) { - pos = 0; - } else if (pos < 0) { - pos = Math.max(length + pos, 0); - } - - if (!(pos+removeCount < length)) - removeCount = length - pos; - - var removed = this.slice(pos, pos+removeCount); - var insert = slice.call(arguments, 2); - var add = insert.length; - if (pos === length) { - if (add) { - this.push.apply(this, insert); - } - } else { - var remove = Math.min(removeCount, length - pos); - var tailOldPos = pos + remove; - var tailNewPos = tailOldPos + add - remove; - var tailCount = length - tailOldPos; - var lengthAfterRemove = length - remove; - - if (tailNewPos < tailOldPos) { // case A - for (var i = 0; i < tailCount; ++i) { - this[tailNewPos+i] = this[tailOldPos+i]; - } - } else if (tailNewPos > tailOldPos) { // case B - for (i = tailCount; i--; ) { - this[tailNewPos+i] = this[tailOldPos+i]; - } - } // else, add == remove (nothing to do) - - if (add && pos === lengthAfterRemove) { - this.length = lengthAfterRemove; // truncate array - this.push.apply(this, insert); - } else { - this.length = lengthAfterRemove + add; // reserves space - for (i = 0; i < add; ++i) { - this[pos+i] = insert[i]; - } - } - } - return removed; - }; - } -} -if (!Array.isArray) { - Array.isArray = function isArray(obj) { - return _toString(obj) == "[object Array]"; - }; -} -var boxedString = Object("a"), - splitString = boxedString[0] != "a" || !(0 in boxedString); - -if (!Array.prototype.forEach) { - Array.prototype.forEach = function forEach(fun /*, thisp*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - thisp = arguments[1], - i = -1, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(); // TODO message - } - - while (++i < length) { - if (i in self) { - fun.call(thisp, self[i], i, object); - } - } - }; -} -if (!Array.prototype.map) { - Array.prototype.map = function map(fun /*, thisp*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - result = Array(length), - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self) - result[i] = fun.call(thisp, self[i], i, object); - } - return result; - }; -} -if (!Array.prototype.filter) { - Array.prototype.filter = function filter(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - result = [], - value, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self) { - value = self[i]; - if (fun.call(thisp, value, i, object)) { - result.push(value); - } - } - } - return result; - }; -} -if (!Array.prototype.every) { - Array.prototype.every = function every(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self && !fun.call(thisp, self[i], i, object)) { - return false; - } - } - return true; - }; -} -if (!Array.prototype.some) { - Array.prototype.some = function some(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self && fun.call(thisp, self[i], i, object)) { - return true; - } - } - return false; - }; -} -if (!Array.prototype.reduce) { - Array.prototype.reduce = function reduce(fun /*, initial*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - if (!length && arguments.length == 1) { - throw new TypeError("reduce of empty array with no initial value"); - } - - var i = 0; - var result; - if (arguments.length >= 2) { - result = arguments[1]; - } else { - do { - if (i in self) { - result = self[i++]; - break; - } - if (++i >= length) { - throw new TypeError("reduce of empty array with no initial value"); - } - } while (true); - } - - for (; i < length; i++) { - if (i in self) { - result = fun.call(void 0, result, self[i], i, object); - } - } - - return result; - }; -} -if (!Array.prototype.reduceRight) { - Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - if (!length && arguments.length == 1) { - throw new TypeError("reduceRight of empty array with no initial value"); - } - - var result, i = length - 1; - if (arguments.length >= 2) { - result = arguments[1]; - } else { - do { - if (i in self) { - result = self[i--]; - break; - } - if (--i < 0) { - throw new TypeError("reduceRight of empty array with no initial value"); - } - } while (true); - } - - do { - if (i in this) { - result = fun.call(void 0, result, self[i], i, object); - } - } while (i--); - - return result; - }; -} -if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) { - Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) { - var self = splitString && _toString(this) == "[object String]" ? - this.split("") : - toObject(this), - length = self.length >>> 0; - - if (!length) { - return -1; - } - - var i = 0; - if (arguments.length > 1) { - i = toInteger(arguments[1]); - } - i = i >= 0 ? i : Math.max(0, length + i); - for (; i < length; i++) { - if (i in self && self[i] === sought) { - return i; - } - } - return -1; - }; -} -if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) { - Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) { - var self = splitString && _toString(this) == "[object String]" ? - this.split("") : - toObject(this), - length = self.length >>> 0; - - if (!length) { - return -1; - } - var i = length - 1; - if (arguments.length > 1) { - i = Math.min(i, toInteger(arguments[1])); - } - i = i >= 0 ? i : length - Math.abs(i); - for (; i >= 0; i--) { - if (i in self && sought === self[i]) { - return i; - } - } - return -1; - }; -} -if (!Object.getPrototypeOf) { - Object.getPrototypeOf = function getPrototypeOf(object) { - return object.__proto__ || ( - object.constructor ? - object.constructor.prototype : - prototypeOfObject - ); - }; -} -if (!Object.getOwnPropertyDescriptor) { - var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " + - "non-object: "; - Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) { - if ((typeof object != "object" && typeof object != "function") || object === null) - throw new TypeError(ERR_NON_OBJECT + object); - if (!owns(object, property)) - return; - - var descriptor, getter, setter; - descriptor = { enumerable: true, configurable: true }; - if (supportsAccessors) { - var prototype = object.__proto__; - object.__proto__ = prototypeOfObject; - - var getter = lookupGetter(object, property); - var setter = lookupSetter(object, property); - object.__proto__ = prototype; - - if (getter || setter) { - if (getter) descriptor.get = getter; - if (setter) descriptor.set = setter; - return descriptor; - } - } - descriptor.value = object[property]; - return descriptor; - }; -} -if (!Object.getOwnPropertyNames) { - Object.getOwnPropertyNames = function getOwnPropertyNames(object) { - return Object.keys(object); - }; -} -if (!Object.create) { - var createEmpty; - if (Object.prototype.__proto__ === null) { - createEmpty = function () { - return { "__proto__": null }; - }; - } else { - createEmpty = function () { - var empty = {}; - for (var i in empty) - empty[i] = null; - empty.constructor = - empty.hasOwnProperty = - empty.propertyIsEnumerable = - empty.isPrototypeOf = - empty.toLocaleString = - empty.toString = - empty.valueOf = - empty.__proto__ = null; - return empty; - } - } - - Object.create = function create(prototype, properties) { - var object; - if (prototype === null) { - object = createEmpty(); - } else { - if (typeof prototype != "object") - throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'"); - var Type = function () {}; - Type.prototype = prototype; - object = new Type(); - object.__proto__ = prototype; - } - if (properties !== void 0) - Object.defineProperties(object, properties); - return object; - }; -} - -function doesDefinePropertyWork(object) { - try { - Object.defineProperty(object, "sentinel", {}); - return "sentinel" in object; - } catch (exception) { - } -} -if (Object.defineProperty) { - var definePropertyWorksOnObject = doesDefinePropertyWork({}); - var definePropertyWorksOnDom = typeof document == "undefined" || - 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: "; - var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: " - var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " + - "on this javascript engine"; - - Object.defineProperty = function defineProperty(object, property, descriptor) { - if ((typeof object != "object" && typeof object != "function") || object === null) - throw new TypeError(ERR_NON_OBJECT_TARGET + object); - if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null) - 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); - if (owns(descriptor, "get")) - defineGetter(object, property, descriptor.get); - if (owns(descriptor, "set")) - defineSetter(object, property, descriptor.set); - } - - return object; - }; -} -if (!Object.defineProperties) { - Object.defineProperties = function defineProperties(object, properties) { - for (var property in properties) { - if (owns(properties, property)) - Object.defineProperty(object, property, properties[property]); - } - return object; - }; -} -if (!Object.seal) { - Object.seal = function seal(object) { - return object; - }; -} -if (!Object.freeze) { - Object.freeze = function freeze(object) { - return object; - }; -} -try { - Object.freeze(function () {}); -} catch (exception) { - Object.freeze = (function freeze(freezeObject) { - return function freeze(object) { - if (typeof object == "function") { - return object; - } else { - return freezeObject(object); - } - }; - })(Object.freeze); -} -if (!Object.preventExtensions) { - Object.preventExtensions = function preventExtensions(object) { - return object; - }; -} -if (!Object.isSealed) { - Object.isSealed = function isSealed(object) { - return false; - }; -} -if (!Object.isFrozen) { - Object.isFrozen = function isFrozen(object) { - return false; - }; -} -if (!Object.isExtensible) { - Object.isExtensible = function isExtensible(object) { - if (Object(object) === object) { - throw new TypeError(); // TODO message - } - var name = ''; - while (owns(object, name)) { - name += '?'; - } - object[name] = true; - var returnValue = owns(object, name); - delete object[name]; - return returnValue; - }; -} -if (!Object.keys) { - var hasDontEnumBug = true, - dontEnums = [ - "toString", - "toLocaleString", - "valueOf", - "hasOwnProperty", - "isPrototypeOf", - "propertyIsEnumerable", - "constructor" - ], - dontEnumsLength = dontEnums.length; - - for (var key in {"toString": null}) { - hasDontEnumBug = false; - } - - Object.keys = function keys(object) { - - if ( - (typeof object != "object" && typeof object != "function") || - object === null - ) { - throw new TypeError("Object.keys called on a non-object"); - } - - var keys = []; - for (var name in object) { - if (owns(object, name)) { - keys.push(name); - } - } - - if (hasDontEnumBug) { - for (var i = 0, ii = dontEnumsLength; i < ii; i++) { - var dontEnum = dontEnums[i]; - if (owns(object, dontEnum)) { - keys.push(dontEnum); - } - } - } - return keys; - }; - -} -if (!Date.now) { - Date.now = function now() { - return new Date().getTime(); - }; -} -var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" + - "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" + - "\u2029\uFEFF"; -if (!String.prototype.trim || ws.trim()) { - ws = "[" + ws + "]"; - var trimBeginRegexp = new RegExp("^" + ws + ws + "*"), - trimEndRegexp = new RegExp(ws + ws + "*$"); - String.prototype.trim = function trim() { - return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, ""); - }; -} - -function toInteger(n) { - n = +n; - if (n !== n) { // isNaN - n = 0; - } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) { - n = (n > 0 || -1) * Math.floor(Math.abs(n)); - } - return n; -} - -function isPrimitive(input) { - var type = typeof input; - return ( - input === null || - type === "undefined" || - type === "boolean" || - type === "number" || - type === "string" - ); -} - -function toPrimitive(input) { - var val, valueOf, toString; - if (isPrimitive(input)) { - return input; - } - valueOf = input.valueOf; - if (typeof valueOf === "function") { - val = valueOf.call(input); - if (isPrimitive(val)) { - return val; - } - } - toString = input.toString; - if (typeof toString === "function") { - val = toString.call(input); - if (isPrimitive(val)) { - return val; - } - } - throw new TypeError(); -} -var toObject = function (o) { - if (o == null) { // this matches both null and undefined - throw new TypeError("can't convert "+o+" to object"); - } - return Object(o); -}; - -}); - -ace.define('ace/mode/lua_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/lua/luaparse'], function(require, exports, module) { - - -var oop = require("../lib/oop"); -var Mirror = require("../worker/mirror").Mirror; -var luaparse = require("../mode/lua/luaparse"); - -var Worker = exports.Worker = function(sender) { - Mirror.call(this, sender); - this.setTimeout(500); -}; - -oop.inherits(Worker, Mirror); - -(function() { - - this.onUpdate = function() { - var value = this.doc.getValue(); - try { - luaparse.parse(value); - } catch(e) { - if (e instanceof SyntaxError) { - this.sender.emit("error", { - row: e.line - 1, - column: e.column, - text: e.message, - type: "error" - }); - } - return; - } - this.sender.emit("ok"); - }; - -}).call(Worker.prototype); - -}); -ace.define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) { - - -var Document = require("../document").Document; -var lang = require("../lib/lang"); - -var Mirror = exports.Mirror = function(sender) { - this.sender = sender; - var doc = this.doc = new Document(""); - - var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this)); - - var _self = this; - sender.on("change", function(e) { - doc.applyDeltas(e.data); - deferredUpdate.schedule(_self.$timeout); - }); -}; - -(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() { - }; - -}).call(Mirror.prototype); - -}); - -ace.define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) { - - -var oop = require("./lib/oop"); -var EventEmitter = require("./lib/event_emitter").EventEmitter; -var Range = require("./range").Range; -var Anchor = require("./anchor").Anchor; - -var Document = function(text) { - this.$lines = []; - if (text.length == 0) { - this.$lines = [""]; - } else if (Array.isArray(text)) { - this._insertLines(0, text); - } else { - this.insert({row: 0, column:0}, text); - } -}; - -(function() { - - oop.implement(this, EventEmitter); - this.setValue = function(text) { - var len = this.getLength(); - this.remove(new Range(0, 0, len, this.getLine(len-1).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); - }; - if ("aaa".split(/a/).length == 0) - this.$split = function(text) { - return text.replace(/\r\n|\r/g, "\n").split("\n"); - } - else - this.$split = 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.getNewLineCharacter = function() { - switch (this.$newLineMode) { - case "windows": - return "\r\n"; - case "unix": - return "\n"; - default: - return this.$autoNewLine; - } - }; - - this.$autoNewLine = "\n"; - this.$newLineMode = "auto"; - this.setNewLineMode = function(newLineMode) { - if (this.$newLineMode === newLineMode) - return; - - this.$newLineMode = newLineMode; - }; - this.getNewLineMode = function() { - return this.$newLineMode; - }; - this.isNewLine = function(text) { - return (text == "\r\n" || text == "\r" || text == "\n"); - }; - 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) { - if (range.start.row == range.end.row) { - return this.getLine(range.start.row) - .substring(range.start.column, range.end.column); - } - var lines = this.getLines(range.start.row, range.end.row); - lines[0] = (lines[0] || "").substring(range.start.column); - var l = lines.length - 1; - if (range.end.row - range.start.row == l) - lines[l] = lines[l].substring(0, range.end.column); - return lines.join(this.getNewLineCharacter()); - }; - - this.$clipPosition = function(position) { - var length = this.getLength(); - if (position.row >= length) { - position.row = Math.max(0, length - 1); - position.column = this.getLine(length-1).length; - } else if (position.row < 0) - position.row = 0; - return position; - }; - this.insert = function(position, text) { - if (!text || text.length === 0) - return position; - - position = this.$clipPosition(position); - if (this.getLength() <= 1) - this.$detectNewLine(text); - - var lines = this.$split(text); - var firstLine = lines.splice(0, 1)[0]; - var lastLine = lines.length == 0 ? null : lines.splice(lines.length - 1, 1)[0]; - - position = this.insertInLine(position, firstLine); - if (lastLine !== null) { - position = this.insertNewLine(position); // terminate first line - position = this._insertLines(position.row, lines); - position = this.insertInLine(position, lastLine || ""); - } - return position; - }; - this.insertLines = function(row, lines) { - if (row >= this.getLength()) - return this.insert({row: row, column: 0}, "\n" + lines.join("\n")); - return this._insertLines(Math.max(row, 0), lines); - }; - this._insertLines = function(row, lines) { - if (lines.length == 0) - return {row: row, column: 0}; - if (lines.length > 0xFFFF) { - var end = this._insertLines(row, lines.slice(0xFFFF)); - lines = lines.slice(0, 0xFFFF); - } - - var args = [row, 0]; - args.push.apply(args, lines); - this.$lines.splice.apply(this.$lines, args); - - var range = new Range(row, 0, row + lines.length, 0); - var delta = { - action: "insertLines", - range: range, - lines: lines - }; - this._emit("change", { data: delta }); - return end || range.end; - }; - this.insertNewLine = function(position) { - position = this.$clipPosition(position); - var line = this.$lines[position.row] || ""; - - this.$lines[position.row] = line.substring(0, position.column); - this.$lines.splice(position.row + 1, 0, line.substring(position.column, line.length)); - - var end = { - row : position.row + 1, - column : 0 - }; - - var delta = { - action: "insertText", - range: Range.fromPoints(position, end), - text: this.getNewLineCharacter() - }; - this._emit("change", { data: delta }); - - return end; - }; - this.insertInLine = function(position, text) { - if (text.length == 0) - return position; - - var line = this.$lines[position.row] || ""; - - this.$lines[position.row] = line.substring(0, position.column) + text - + line.substring(position.column); - - var end = { - row : position.row, - column : position.column + text.length - }; - - var delta = { - action: "insertText", - range: Range.fromPoints(position, end), - text: text - }; - this._emit("change", { data: delta }); - - return end; - }; - this.remove = function(range) { - range.start = this.$clipPosition(range.start); - range.end = this.$clipPosition(range.end); - - if (range.isEmpty()) - return range.start; - - var firstRow = range.start.row; - var lastRow = range.end.row; - - if (range.isMultiLine()) { - var firstFullRow = range.start.column == 0 ? firstRow : firstRow + 1; - var lastFullRow = lastRow - 1; - - if (range.end.column > 0) - this.removeInLine(lastRow, 0, range.end.column); - - if (lastFullRow >= firstFullRow) - this._removeLines(firstFullRow, lastFullRow); - - if (firstFullRow != firstRow) { - this.removeInLine(firstRow, range.start.column, this.getLine(firstRow).length); - this.removeNewLine(range.start.row); - } - } - else { - this.removeInLine(firstRow, range.start.column, range.end.column); - } - return range.start; - }; - this.removeInLine = function(row, startColumn, endColumn) { - if (startColumn == endColumn) - return; - - var range = new Range(row, startColumn, row, endColumn); - var line = this.getLine(row); - var removed = line.substring(startColumn, endColumn); - var newLine = line.substring(0, startColumn) + line.substring(endColumn, line.length); - this.$lines.splice(row, 1, newLine); - - var delta = { - action: "removeText", - range: range, - text: removed - }; - this._emit("change", { data: delta }); - return range.start; - }; - this.removeLines = function(firstRow, lastRow) { - if (firstRow < 0 || lastRow >= this.getLength()) - return this.remove(new Range(firstRow, 0, lastRow + 1, 0)); - return this._removeLines(firstRow, lastRow); - }; - - this._removeLines = function(firstRow, lastRow) { - var range = new Range(firstRow, 0, lastRow + 1, 0); - var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1); - - var delta = { - action: "removeLines", - range: range, - nl: this.getNewLineCharacter(), - lines: removed - }; - this._emit("change", { data: delta }); - return removed; - }; - this.removeNewLine = function(row) { - var firstLine = this.getLine(row); - var secondLine = this.getLine(row+1); - - var range = new Range(row, firstLine.length, row+1, 0); - var line = firstLine + secondLine; - - this.$lines.splice(row, 2, line); - - var delta = { - action: "removeText", - range: range, - text: this.getNewLineCharacter() - }; - this._emit("change", { data: delta }); - }; - this.replace = function(range, text) { - if (text.length == 0 && range.isEmpty()) - return range.start; - if (text == this.getTextRange(range)) - return range.end; - - this.remove(range); - if (text) { - var end = this.insert(range.start, text); - } - else { - end = range.start; - } - - return end; - }; - this.applyDeltas = function(deltas) { - for (var i=0; i<deltas.length; i++) { - var delta = deltas[i]; - var range = Range.fromPoints(delta.range.start, delta.range.end); - - if (delta.action == "insertLines") - this.insertLines(range.start.row, delta.lines); - else if (delta.action == "insertText") - this.insert(range.start, delta.text); - else if (delta.action == "removeLines") - this._removeLines(range.start.row, range.end.row - 1); - else if (delta.action == "removeText") - this.remove(range); - } - }; - this.revertDeltas = function(deltas) { - for (var i=deltas.length-1; i>=0; i--) { - var delta = deltas[i]; - - var range = Range.fromPoints(delta.range.start, delta.range.end); - - if (delta.action == "insertLines") - this._removeLines(range.start.row, range.end.row - 1); - else if (delta.action == "insertText") - this.remove(range); - else if (delta.action == "removeLines") - this._insertLines(range.start.row, delta.lines); - else if (delta.action == "removeText") - this.insert(range.start, delta.text); - } - }; - this.indexToPosition = function(index, startRow) { - var lines = this.$lines || this.getAllLines(); - var newlineLength = this.getNewLineCharacter().length; - for (var i = startRow || 0, l = lines.length; i < l; i++) { - index -= lines[i].length + newlineLength; - if (index < 0) - return {row: i, column: index + lines[i].length + newlineLength}; - } - return {row: l-1, column: lines[l-1].length}; - }; - this.positionToIndex = function(pos, startRow) { - var lines = this.$lines || this.getAllLines(); - var newlineLength = this.getNewLineCharacter().length; - var index = 0; - var row = Math.min(pos.row, lines.length); - for (var i = startRow || 0; i < row; ++i) - index += lines[i].length + newlineLength; - - return index + pos.column; - }; - -}).call(Document.prototype); - -exports.Document = Document; -}); - -ace.define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) { - -var comparePoints = function(p1, p2) { - return p1.row - p2.row || p1.column - p2.column; -}; -var 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 this.compare(row, column) == 0; - }; - this.compareRange = function(range) { - var cmp, - end = range.end, - start = range.start; - - cmp = this.compare(end.row, end.column); - if (cmp == 1) { - cmp = this.compare(start.row, start.column); - if (cmp == 1) { - return 2; - } else if (cmp == 0) { - return 1; - } else { - return 0; - } - } else if (cmp == -1) { - return -2; - } else { - cmp = this.compare(start.row, start.column); - if (cmp == -1) { - return -1; - } else if (cmp == 1) { - return 42; - } else { - return 0; - } - } - }; - this.comparePoint = function(p) { - return this.compare(p.row, p.column); - }; - this.containsRange = function(range) { - return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0; - }; - this.intersects = function(range) { - var cmp = this.compareRange(range); - return (cmp == -1 || cmp == 0 || cmp == 1); - }; - 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) { - if (typeof row == "object") { - this.start.column = row.column; - this.start.row = row.row; - } else { - this.start.row = row; - this.start.column = column; - } - }; - this.setEnd = function(row, column) { - if (typeof row == "object") { - this.end.column = row.column; - this.end.row = row.row; - } else { - this.end.row = row; - this.end.column = column; - } - }; - this.inside = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isEnd(row, column) || this.isStart(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.insideStart = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isEnd(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.insideEnd = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isStart(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.compare = function(row, column) { - if (!this.isMultiLine()) { - if (row === this.start.row) { - return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0); - }; - } - - if (row < this.start.row) - return -1; - - if (row > this.end.row) - return 1; - - if (this.start.row === row) - return column >= this.start.column ? 0 : -1; - - if (this.end.row === row) - return column <= this.end.column ? 0 : 1; - - return 0; - }; - this.compareStart = function(row, column) { - if (this.start.row == row && this.start.column == column) { - return -1; - } else { - return this.compare(row, column); - } - }; - this.compareEnd = function(row, column) { - if (this.end.row == row && this.end.column == column) { - return 1; - } else { - return this.compare(row, column); - } - }; - this.compareInside = function(row, column) { - if (this.end.row == row && this.end.column == column) { - return 1; - } else if (this.start.row == row && this.start.column == column) { - return -1; - } else { - return this.compare(row, column); - } - }; - this.clipRows = function(firstRow, lastRow) { - if (this.end.row > lastRow) - var end = {row: lastRow + 1, column: 0}; - else if (this.end.row < firstRow) - var end = {row: firstRow, column: 0}; - - if (this.start.row > lastRow) - var start = {row: lastRow + 1, column: 0}; - else if (this.start.row < firstRow) - 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 (cmp == 0) - return this; - else if (cmp == -1) - 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() { - if (this.end.column == 0) - return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0) - else - return new Range(this.start.row, 0, this.end.row, 0) - }; - this.toScreenRange = function(session) { - var screenPosStart = session.documentToScreenPosition(this.start); - var 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/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) { - - -var oop = require("./lib/oop"); -var EventEmitter = require("./lib/event_emitter").EventEmitter; - -var Anchor = exports.Anchor = function(doc, row, column) { - this.$onChange = this.onChange.bind(this); - this.attach(doc); - - if (typeof column == "undefined") - this.setPosition(row.row, row.column); - else - this.setPosition(row, column); -}; - -(function() { - - oop.implement(this, EventEmitter); - this.getPosition = function() { - return this.$clipPositionToDocument(this.row, this.column); - }; - this.getDocument = function() { - return this.document; - }; - this.onChange = function(e) { - var delta = e.data; - var range = delta.range; - - if (range.start.row == range.end.row && range.start.row != this.row) - return; - - if (range.start.row > this.row) - return; - - if (range.start.row == this.row && range.start.column > this.column) - return; - - var row = this.row; - var column = this.column; - var start = range.start; - var end = range.end; - - if (delta.action === "insertText") { - if (start.row === row && start.column <= column) { - if (start.row === end.row) { - column += end.column - start.column; - } else { - column -= start.column; - row += end.row - start.row; - } - } else if (start.row !== end.row && start.row < row) { - row += end.row - start.row; - } - } else if (delta.action === "insertLines") { - if (start.row <= row) { - row += end.row - start.row; - } - } else if (delta.action === "removeText") { - if (start.row === row && start.column < column) { - if (end.column >= column) - column = start.column; - else - column = Math.max(0, column - (end.column - start.column)); - - } else if (start.row !== end.row && start.row < row) { - if (end.row === row) - column = Math.max(0, column - end.column) + start.column; - row -= (end.row - start.row); - } else if (end.row === row) { - row -= end.row - start.row; - column = Math.max(0, column - end.column) + start.column; - } - } else if (delta.action == "removeLines") { - if (start.row <= row) { - if (end.row <= row) - row -= end.row - start.row; - else { - row = start.row; - column = 0; - } - } - } - - this.setPosition(row, column, true); - }; - this.setPosition = function(row, column, noClip) { - var pos; - if (noClip) { - pos = { - row: row, - column: column - }; - } else { - pos = this.$clipPositionToDocument(row, column); - } - - if (this.row == pos.row && this.column == pos.column) - return; - - var old = { - row: this.row, - column: this.column - }; - - this.row = pos.row; - this.column = pos.column; - this._emit("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 = {}; - - if (row >= this.document.getLength()) { - pos.row = Math.max(0, this.document.getLength() - 1); - pos.column = this.document.getLine(pos.row).length; - } - else if (row < 0) { - pos.row = 0; - pos.column = 0; - } - else { - pos.row = row; - pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column)); - } - - if (column < 0) - pos.column = 0; - - return pos; - }; - -}).call(Anchor.prototype); - -}); - -ace.define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) { - - -exports.stringReverse = function(string) { - return string.split("").reverse().join(""); -}; - -exports.stringRepeat = function (string, count) { - var result = ''; - while (count > 0) { - if (count & 1) - result += string; - - if (count >>= 1) - string += string; - } - return result; -}; - -var trimBeginRegexp = /^\s\s*/; -var 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){ - var copy = []; - for (var i=0, l=array.length; i<l; i++) { - if (array[i] && typeof array[i] == "object") - copy[i] = this.copyObject( array[i] ); - else - copy[i] = array[i]; - } - return copy; -}; - -exports.deepCopy = function (obj) { - if (typeof obj != "object") { - return obj; - } - - var copy = obj.constructor(); - for (var key in obj) { - if (typeof obj[key] == "object") { - copy[key] = this.deepCopy(obj[key]); - } else { - copy[key] = obj[key]; - } - } - return copy; -}; - -exports.arrayToMap = function(arr) { - var map = {}; - for (var i=0; i<arr.length; 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; i <= array.length; i++) { - if (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(/</g, "<"); -}; - -exports.getMatchOffsets = function(string, regExp) { - var matches = []; - - string.replace(regExp, function(str) { - matches.push({ - offset: arguments[arguments.length-2], - length: str.length - }); - }); - - return matches; -}; -exports.deferredCall = function(fcn) { - - var timer = null; - var callback = function() { - timer = null; - fcn(); - }; - - var deferred = function(timeout) { - deferred.cancel(); - timer = setTimeout(callback, timeout || 0); - return deferred; - }; - - deferred.schedule = deferred; - - deferred.call = function() { - this.cancel(); - fcn(); - return deferred; - }; - - deferred.cancel = function() { - clearTimeout(timer); - timer = null; - return deferred; - }; - - return deferred; -}; - - -exports.delayedCall = function(fcn, defaultTimeout) { - var timer = null; - var callback = function() { - timer = null; - fcn(); - }; - - var _self = function(timeout) { - timer && clearTimeout(timer); - timer = setTimeout(callback, timeout || defaultTimeout); - }; - - _self.delay = _self; - _self.schedule = function(timeout) { - if (timer == null) - timer = setTimeout(callback, timeout || 0); - }; - - _self.call = function() { - this.cancel(); - fcn(); - }; - - _self.cancel = function() { - timer && clearTimeout(timer); - timer = null; - }; - - _self.isPending = function() { - return timer; - }; - - return _self; -}; -}); -ace.define('ace/mode/lua/luaparse', ['require', 'exports', 'module' ], function(require, exports, module) { - -(function (root, name, factory) { - factory(exports) -}(this, 'luaparse', function (exports) { - - - exports.version = '0.1.4'; - - var input, options, length; - var defaultOptions = exports.defaultOptions = { - wait: false - , comments: true - , scope: false - , locations: false - , ranges: false - }; - - var EOF = 1, StringLiteral = 2, Keyword = 4, Identifier = 8 - , NumericLiteral = 16, Punctuator = 32, BooleanLiteral = 64 - , NilLiteral = 128, VarargLiteral = 256; - - exports.tokenTypes = { EOF: EOF, StringLiteral: StringLiteral - , Keyword: Keyword, Identifier: Identifier, NumericLiteral: NumericLiteral - , Punctuator: Punctuator, BooleanLiteral: BooleanLiteral - , NilLiteral: NilLiteral, VarargLiteral: VarargLiteral - }; - - var errors = exports.errors = { - unexpected: 'Unexpected %1 \'%2\' near \'%3\'' - , expected: '\'%1\' expected near \'%2\'' - , expectedToken: '%1 expected near \'%2\'' - , unfinishedString: 'unfinished string near \'%1\'' - , malformedNumber: 'malformed number near \'%1\'' - }; - - var ast = exports.ast = { - labelStatement: function(label) { - return { - type: 'LabelStatement' - , label: label - }; - } - - , breakStatement: function() { - return { - type: 'BreakStatement' - }; - } - - , gotoStatement: function(label) { - return { - type: 'GotoStatement' - , label: label - }; - } - - , returnStatement: function(args) { - return { - type: 'ReturnStatement' - , 'arguments': args - }; - } - - , ifStatement: function(clauses) { - return { - type: 'IfStatement' - , clauses: clauses - }; - } - , ifClause: function(condition, body) { - return { - type: 'IfClause' - , condition: condition - , body: body - }; - } - , elseifClause: function(condition, body) { - return { - type: 'ElseifClause' - , condition: condition - , body: body - }; - } - , elseClause: function(body) { - return { - type: 'ElseClause' - , body: body - }; - } - - , whileStatement: function(condition, body) { - return { - type: 'WhileStatement' - , condition: condition - , body: body - }; - } - - , doStatement: function(body) { - return { - type: 'DoStatement' - , body: body - }; - } - - , repeatStatement: function(condition, body) { - return { - type: 'RepeatStatement' - , condition: condition - , body: body - }; - } - - , localStatement: function(variables, init) { - return { - type: 'LocalStatement' - , variables: variables - , init: init - }; - } - - , assignmentStatement: function(variables, init) { - return { - type: 'AssignmentStatement' - , variables: variables - , init: init - }; - } - - , callStatement: function(expression) { - return { - type: 'CallStatement' - , expression: expression - }; - } - - , functionStatement: function(identifier, parameters, isLocal, body) { - return { - type: 'FunctionDeclaration' - , identifier: identifier - , isLocal: isLocal - , parameters: parameters - , body: body - }; - } - - , forNumericStatement: function(variable, start, end, step, body) { - return { - type: 'ForNumericStatement' - , variable: variable - , start: start - , end: end - , step: step - , body: body - }; - } - - , forGenericStatement: function(variables, iterators, body) { - return { - type: 'ForGenericStatement' - , variables: variables - , iterators: iterators - , body: body - }; - } - - , chunk: function(body) { - return { - type: 'Chunk' - , body: body - }; - } - - , identifier: function(name) { - return { - type: 'Identifier' - , name: name - }; - } - - , literal: function(type, value, raw) { - type = (type === StringLiteral) ? 'StringLiteral' - : (type === NumericLiteral) ? 'NumericLiteral' - : (type === BooleanLiteral) ? 'BooleanLiteral' - : (type === NilLiteral) ? 'NilLiteral' - : 'VarargLiteral'; - - return { - type: type - , value: value - , raw: raw - }; - } - - , tableKey: function(key, value) { - return { - type: 'TableKey' - , key: key - , value: value - }; - } - , tableKeyString: function(key, value) { - return { - type: 'TableKeyString' - , key: key - , value: value - }; - } - , tableValue: function(value) { - return { - type: 'TableValue' - , value: value - }; - } - - - , tableConstructorExpression: function(fields) { - return { - type: 'TableConstructorExpression' - , fields: fields - }; - } - , binaryExpression: function(operator, left, right) { - var type = ('and' === operator || 'or' === operator) ? - 'LogicalExpression' : - 'BinaryExpression'; - - return { - type: type - , operator: operator - , left: left - , right: right - }; - } - , unaryExpression: function(operator, argument) { - return { - type: 'UnaryExpression' - , operator: operator - , argument: argument - }; - } - , memberExpression: function(base, indexer, identifier) { - return { - type: 'MemberExpression' - , indexer: indexer - , identifier: identifier - , base: base - }; - } - - , indexExpression: function(base, index) { - return { - type: 'IndexExpression' - , base: base - , index: index - }; - } - - , callExpression: function(base, args) { - return { - type: 'CallExpression' - , base: base - , 'arguments': args - }; - } - - , tableCallExpression: function(base, args) { - return { - type: 'TableCallExpression' - , base: base - , 'arguments': args - }; - } - - , stringCallExpression: function(base, argument) { - return { - type: 'StringCallExpression' - , base: base - , argument: argument - }; - } - - , comment: function(value, raw) { - return { - type: 'Comment' - , value: value - , raw: raw - }; - } - }; - - function finishNode(node) { - if (trackLocations) { - var location = locations.pop(); - location.complete(); - if (options.locations) node.loc = location.loc; - if (options.ranges) node.range = location.range; - } - return node; - } - - var slice = Array.prototype.slice - , toString = Object.prototype.toString - , indexOf = function indexOf(array, element) { - for (var i = 0, length = array.length; i < length; i++) { - if (array[i] === element) return i; - } - return -1; - }; - - function indexOfObject(array, property, element) { - for (var i = 0, length = array.length; i < length; i++) { - if (array[i][property] === element) return i; - } - return -1; - } - - function sprintf(format) { - var args = slice.call(arguments, 1); - format = format.replace(/%(\d)/g, function (match, index) { - return '' + args[index - 1] || ''; - }); - return format; - } - - function extend() { - var args = slice.call(arguments) - , dest = {} - , src, prop; - - for (var i = 0, length = args.length; i < length; i++) { - src = args[i]; - for (prop in src) if (src.hasOwnProperty(prop)) { - dest[prop] = src[prop]; - } - } - return dest; - } - - function raise(token) { - var message = sprintf.apply(null, slice.call(arguments, 1)) - , error, col; - - if ('undefined' !== typeof token.line) { - col = token.range[0] - token.lineStart; - error = new SyntaxError(sprintf('[%1:%2] %3', token.line, col, message)); - error.line = token.line; - error.index = token.range[0]; - error.column = col; - } else { - col = index - lineStart + 1; - error = new SyntaxError(sprintf('[%1:%2] %3', line, col, message)); - error.index = index; - error.line = line; - error.column = col; - } - throw error; - } - - function raiseUnexpectedToken(type, token) { - raise(token, errors.expectedToken, type, token.value); - } - - function unexpected(found, near) { - if ('undefined' === typeof near) near = lookahead.value; - if ('undefined' !== typeof found.type) { - var type; - switch (found.type) { - case StringLiteral: type = 'string'; break; - case Keyword: type = 'keyword'; break; - case Identifier: type = 'identifier'; break; - case NumericLiteral: type = 'number'; break; - case Punctuator: type = 'symbol'; break; - case BooleanLiteral: type = 'boolean'; break; - case NilLiteral: - return raise(found, errors.unexpected, 'symbol', 'nil', near); - } - return raise(found, errors.unexpected, type, found.value, near); - } - return raise(found, errors.unexpected, 'symbol', found, near); - } - - var index - , token - , previousToken - , lookahead - , comments - , tokenStart - , line - , lineStart; - - exports.lex = lex; - - function lex() { - skipWhiteSpace(); - while (45 === input.charCodeAt(index) && - 45 === input.charCodeAt(index + 1)) { - scanComment(); - skipWhiteSpace(); - } - if (index >= length) return { - type : EOF - , value: '<eof>' - , line: line - , lineStart: lineStart - , range: [index, index] - }; - - var charCode = input.charCodeAt(index) - , next = input.charCodeAt(index + 1); - tokenStart = index; - if (isIdentifierStart(charCode)) return scanIdentifierOrKeyword(); - - switch (charCode) { - case 39: case 34: // '" - return scanStringLiteral(); - case 48: case 49: case 50: case 51: case 52: case 53: - case 54: case 55: case 56: case 57: - return scanNumericLiteral(); - - case 46: // . - if (isDecDigit(next)) return scanNumericLiteral(); - if (46 === next) { - if (46 === input.charCodeAt(index + 2)) return scanVarargLiteral(); - return scanPunctuator('..'); - } - return scanPunctuator('.'); - - case 61: // = - if (61 === next) return scanPunctuator('=='); - return scanPunctuator('='); - - case 62: // > - if (61 === next) return scanPunctuator('>='); - return scanPunctuator('>'); - - case 60: // < - if (61 === next) return scanPunctuator('<='); - return scanPunctuator('<'); - - case 126: // ~ - if (61 === next) return scanPunctuator('~='); - return raise({}, errors.expected, '=', '~'); - - case 58: // : - if (58 === next) return scanPunctuator('::'); - return scanPunctuator(':'); - - case 91: // [ - if (91 === next || 61 === next) return scanLongStringLiteral(); - return scanPunctuator('['); - case 42: case 47: case 94: case 37: case 44: case 123: case 125: - case 93: case 40: case 41: case 59: case 35: case 45: case 43: - return scanPunctuator(input.charAt(index)); - } - - return unexpected(input.charAt(index)); - } - - function skipWhiteSpace() { - while (index < length) { - var charCode = input.charCodeAt(index); - if (isWhiteSpace(charCode)) { - index++; - } else if (isLineTerminator(charCode)) { - line++; - lineStart = ++index; - } else { - break; - } - } - } - - function scanIdentifierOrKeyword() { - var value, type; - while (isIdentifierPart(input.charCodeAt(++index))); - value = input.slice(tokenStart, index); - if (isKeyword(value)) { - type = Keyword; - } else if ('true' === value || 'false' === value) { - type = BooleanLiteral; - value = ('true' === value); - } else if ('nil' === value) { - type = NilLiteral; - value = null; - } else { - type = Identifier; - } - - return { - type: type - , value: value - , line: line - , lineStart: lineStart - , range: [tokenStart, index] - }; - } - - function scanPunctuator(value) { - index += value.length; - return { - type: Punctuator - , value: value - , line: line - , lineStart: lineStart - , range: [tokenStart, index] - }; - } - - function scanVarargLiteral() { - index += 3; - return { - type: VarargLiteral - , value: '...' - , line: line - , lineStart: lineStart - , range: [tokenStart, index] - }; - } - - function scanStringLiteral() { - var delimiter = input.charCodeAt(index++) - , stringStart = index - , string = '' - , charCode; - - while (index < length) { - charCode = input.charCodeAt(index++); - if (delimiter === charCode) break; - if (92 === charCode) { // \ - string += input.slice(stringStart, index - 1) + readEscapeSequence(); - stringStart = index; - } - else if (index >= length || isLineTerminator(charCode)) { - string += input.slice(stringStart, index - 1); - raise({}, errors.unfinishedString, string + String.fromCharCode(charCode)); - } - } - string += input.slice(stringStart, index - 1); - - return { - type: StringLiteral - , value: string - , line: line - , lineStart: lineStart - , range: [tokenStart, index] - }; - } - - function scanLongStringLiteral() { - var string = readLongString(); - if (false === string) raise(token, errors.expected, '[', token.value); - - return { - type: StringLiteral - , value: string - , line: line - , lineStart: lineStart - , range: [tokenStart, index] - }; - } - - function scanNumericLiteral() { - var character = input.charAt(index) - , next = input.charAt(index + 1); - - var value = ('0' === character && 'xX'.indexOf(next || null) >= 0) ? - readHexLiteral() : readDecLiteral(); - - return { - type: NumericLiteral - , value: value - , line: line - , lineStart: lineStart - , range: [tokenStart, index] - }; - } - - function readHexLiteral() { - var fraction = 0 // defaults to 0 as it gets summed - , binaryExponent = 1 // defaults to 1 as it gets multiplied - , binarySign = 1 // positive - , digit, fractionStart, exponentStart, digitStart; - - digitStart = index += 2; // Skip 0x part - if (!isHexDigit(input.charCodeAt(index))) - raise({}, errors.malformedNumber, input.slice(tokenStart, index)); - - while (isHexDigit(input.charCodeAt(index))) index++; - digit = parseInt(input.slice(digitStart, index), 16); - if ('.' === input.charAt(index)) { - fractionStart = ++index; - - while (isHexDigit(input.charCodeAt(index))) index++; - fraction = input.slice(fractionStart, index); - fraction = (fractionStart === index) ? 0 - : parseInt(fraction, 16) / Math.pow(16, index - fractionStart); - } - if ('pP'.indexOf(input.charAt(index) || null) >= 0) { - index++; - if ('+-'.indexOf(input.charAt(index) || null) >= 0) - binarySign = ('+' === input.charAt(index++)) ? 1 : -1; - - exponentStart = index; - if (!isDecDigit(input.charCodeAt(index))) - raise({}, errors.malformedNumber, input.slice(tokenStart, index)); - - while (isDecDigit(input.charCodeAt(index))) index++; - binaryExponent = input.slice(exponentStart, index); - binaryExponent = Math.pow(2, binaryExponent * binarySign); - } - - return (digit + fraction) * binaryExponent; - } - - function readDecLiteral() { - while (isDecDigit(input.charCodeAt(index))) index++; - if ('.' === input.charAt(index)) { - index++; - while (isDecDigit(input.charCodeAt(index))) index++; - } - if ('eE'.indexOf(input.charAt(index) || null) >= 0) { - index++; - if ('+-'.indexOf(input.charAt(index) || null) >= 0) index++; - if (!isDecDigit(input.charCodeAt(index))) - raise({}, errors.malformedNumber, input.slice(tokenStart, index)); - - while (isDecDigit(input.charCodeAt(index))) index++; - } - - return parseFloat(input.slice(tokenStart, index)); - } - - function readEscapeSequence() { - var sequenceStart = index; - switch (input.charAt(index)) { - case 'n': index++; return '\n'; - case 'r': index++; return '\r'; - case 't': index++; return '\t'; - case 'v': index++; return '\x0B'; - case 'b': index++; return '\b'; - case 'f': index++; return '\f'; - case 'z': index++; skipWhiteSpace(); return ''; - case 'x': - if (isHexDigit(input.charCodeAt(index + 1)) && - isHexDigit(input.charCodeAt(index + 2))) { - index += 3; - return '\\' + input.slice(sequenceStart, index); - } - return '\\' + input.charAt(index++); - default: - if (isDecDigit(input.charCodeAt(index))) { - while (isDecDigit(input.charCodeAt(++index))); - return '\\' + input.slice(sequenceStart, index); - } - return input.charAt(index++); - } - } - - function scanComment() { - tokenStart = index; - index += 2; // -- - - var character = input.charAt(index) - , content = '' - , isLong = false - , commentStart = index - , lineStartComment = lineStart - , lineComment = line; - - if ('[' === character) { - content = readLongString(); - if (false === content) content = character; - else isLong = true; - } - if (!isLong) { - while (index < length) { - if (isLineTerminator(input.charCodeAt(index))) break; - index++; - } - if (options.comments) content = input.slice(commentStart, index); - } - - if (options.comments) { - var node = ast.comment(content, input.slice(tokenStart, index)); - if (options.locations) { - node.loc = { - start: { line: lineComment, column: tokenStart - lineStartComment } - , end: { line: line, column: index - lineStart } - }; - } - if (options.ranges) { - node.range = [tokenStart, index]; - } - comments.push(node); - } - } - - function readLongString() { - var level = 0 - , content = '' - , terminator = false - , character, stringStart; - - index++; // [ - while ('=' === input.charAt(index + level)) level++; - if ('[' !== input.charAt(index + level)) return false; - - index += level + 1; - if (isLineTerminator(input.charCodeAt(index))) { - line++; - lineStart = index++; - } - - stringStart = index; - while (index < length) { - character = input.charAt(index++); - if (isLineTerminator(character.charCodeAt(0))) { - line++; - lineStart = index; - } - if (']' === character) { - terminator = true; - for (var i = 0; i < level; i++) { - if ('=' !== input.charAt(index + i)) terminator = false; - } - if (']' !== input.charAt(index + level)) terminator = false; - } - if (terminator) break; - } - content += input.slice(stringStart, index - 1); - index += level + 1; - - return content; - } - - function next() { - previousToken = token; - token = lookahead; - lookahead = lex(); - } - - function consume(value) { - if (value === token.value) { - next(); - return true; - } - return false; - } - - function expect(value) { - if (value === token.value) next(); - else raise(token, errors.expected, value, token.value); - } - - function isWhiteSpace(charCode) { - return 9 === charCode || 32 === charCode || 0xB === charCode || 0xC === charCode; - } - - function isLineTerminator(charCode) { - return 10 === charCode || 13 === charCode; - } - - function isDecDigit(charCode) { - return charCode >= 48 && charCode <= 57; - } - - function isHexDigit(charCode) { - return (charCode >= 48 && charCode <= 57) || (charCode >= 97 && charCode <= 102) || (charCode >= 65 && charCode <= 70); - } - - function isIdentifierStart(charCode) { - return (charCode >= 65 && charCode <= 90) || (charCode >= 97 && charCode <= 122) || 95 === charCode; - } - - function isIdentifierPart(charCode) { - return (charCode >= 65 && charCode <= 90) || (charCode >= 97 && charCode <= 122) || 95 === charCode || (charCode >= 48 && charCode <= 57); - } - - function isKeyword(id) { - switch (id.length) { - case 2: - return 'do' === id || 'if' === id || 'in' === id || 'or' === id; - case 3: - return 'and' === id || 'end' === id || 'for' === id || 'not' === id; - case 4: - return 'else' === id || 'goto' === id || 'then' === id; - case 5: - return 'break' === id || 'local' === id || 'until' === id || 'while' === id; - case 6: - return 'elseif' === id || 'repeat' === id || 'return' === id; - case 8: - return 'function' === id; - } - return false; - } - - function isUnary(token) { - if (Punctuator === token.type) return '#-'.indexOf(token.value) >= 0; - if (Keyword === token.type) return 'not' === token.value; - return false; - } - function isCallExpression(expression) { - switch (expression.type) { - case 'CallExpression': - case 'TableCallExpression': - case 'StringCallExpression': - return true; - } - return false; - } - - function isBlockFollow(token) { - if (EOF === token.type) return true; - if (Keyword !== token.type) return false; - switch (token.value) { - case 'else': case 'elseif': - case 'end': case 'until': - return true; - default: - return false; - } - } - var scopes - , scopeDepth - , globals; - function createScope() { - scopes.push(Array.apply(null, scopes[scopeDepth++])); - } - function exitScope() { - scopes.pop(); - scopeDepth--; - } - function scopeIdentifierName(name) { - if (-1 !== indexOf(scopes[scopeDepth], name)) return; - scopes[scopeDepth].push(name); - } - function scopeIdentifier(node) { - scopeIdentifierName(node.name); - attachScope(node, true); - } - function attachScope(node, isLocal) { - if (!isLocal && -1 === indexOfObject(globals, 'name', node.name)) - globals.push(node); - - node.isLocal = isLocal; - } - function scopeHasName(name) { - return (-1 !== indexOf(scopes[scopeDepth], name)); - } - - var locations = [] - , trackLocations; - - function createLocationMarker() { - return new Marker(token); - } - - function Marker(token) { - if (options.locations) { - this.loc = { - start: { - line: token.line - , column: token.range[0] - token.lineStart - } - , end: { - line: 0 - , column: 0 - } - }; - } - if (options.ranges) this.range = [token.range[0], 0]; - } - Marker.prototype.complete = function() { - if (options.locations) { - this.loc.end.line = previousToken.line; - this.loc.end.column = previousToken.range[1] - previousToken.lineStart; - } - if (options.ranges) { - this.range[1] = previousToken.range[1]; - } - }; - function markLocation() { - if (trackLocations) locations.push(createLocationMarker()); - } - function pushLocation(marker) { - if (trackLocations) locations.push(marker); - } - - function parseChunk() { - next(); - markLocation(); - var body = parseBlock(); - if (EOF !== token.type) unexpected(token); - if (trackLocations && !body.length) previousToken = token; - return finishNode(ast.chunk(body)); - } - - function parseBlock(terminator) { - var block = [] - , statement; - if (options.scope) createScope(); - - while (!isBlockFollow(token)) { - if ('return' === token.value) { - block.push(parseStatement()); - break; - } - statement = parseStatement(); - if (statement) block.push(statement); - } - - if (options.scope) exitScope(); - return block; - } - - function parseStatement() { - markLocation(); - if (Keyword === token.type) { - switch (token.value) { - case 'local': next(); return parseLocalStatement(); - case 'if': next(); return parseIfStatement(); - case 'return': next(); return parseReturnStatement(); - case 'function': next(); - var name = parseFunctionName(); - return parseFunctionDeclaration(name); - case 'while': next(); return parseWhileStatement(); - case 'for': next(); return parseForStatement(); - case 'repeat': next(); return parseRepeatStatement(); - case 'break': next(); return parseBreakStatement(); - case 'do': next(); return parseDoStatement(); - case 'goto': next(); return parseGotoStatement(); - } - } - - if (Punctuator === token.type) { - if (consume('::')) return parseLabelStatement(); - } - if (trackLocations) locations.pop(); - if (consume(';')) return; - - return parseAssignmentOrCallStatement(); - } - - function parseLabelStatement() { - var name = token.value - , label = parseIdentifier(); - - if (options.scope) { - scopeIdentifierName('::' + name + '::'); - attachScope(label, true); - } - - expect('::'); - return finishNode(ast.labelStatement(label)); - } - - function parseBreakStatement() { - return finishNode(ast.breakStatement()); - } - - function parseGotoStatement() { - var name = token.value - , label = parseIdentifier(); - - if (options.scope) label.isLabel = scopeHasName('::' + name + '::'); - return finishNode(ast.gotoStatement(label)); - } - - function parseDoStatement() { - var body = parseBlock(); - expect('end'); - return finishNode(ast.doStatement(body)); - } - - function parseWhileStatement() { - var condition = parseExpectedExpression(); - expect('do'); - var body = parseBlock(); - expect('end'); - return finishNode(ast.whileStatement(condition, body)); - } - - function parseRepeatStatement() { - var body = parseBlock(); - expect('until'); - var condition = parseExpectedExpression(); - return finishNode(ast.repeatStatement(condition, body)); - } - - function parseReturnStatement() { - var expressions = []; - - if ('end' !== token.value) { - var expression = parseExpression(); - if (null != expression) expressions.push(expression); - while (consume(',')) { - expression = parseExpectedExpression(); - expressions.push(expression); - } - consume(';'); // grammar tells us ; is optional here. - } - return finishNode(ast.returnStatement(expressions)); - } - - function parseIfStatement() { - var clauses = [] - , condition - , body - , marker; - if (trackLocations) { - marker = locations[locations.length - 1]; - locations.push(marker); - } - condition = parseExpectedExpression(); - expect('then'); - body = parseBlock(); - clauses.push(finishNode(ast.ifClause(condition, body))); - - if (trackLocations) marker = createLocationMarker(); - while (consume('elseif')) { - pushLocation(marker); - condition = parseExpectedExpression(); - expect('then'); - body = parseBlock(); - clauses.push(finishNode(ast.elseifClause(condition, body))); - if (trackLocations) marker = createLocationMarker(); - } - - if (consume('else')) { - if (trackLocations) { - marker = new Marker(previousToken); - locations.push(marker); - } - body = parseBlock(); - clauses.push(finishNode(ast.elseClause(body))); - } - - expect('end'); - return finishNode(ast.ifStatement(clauses)); - } - - function parseForStatement() { - var variable = parseIdentifier() - , body; - if (options.scope) scopeIdentifier(variable); - if (consume('=')) { - var start = parseExpectedExpression(); - expect(','); - var end = parseExpectedExpression(); - var step = consume(',') ? parseExpectedExpression() : null; - - expect('do'); - body = parseBlock(); - expect('end'); - - return finishNode(ast.forNumericStatement(variable, start, end, step, body)); - } - else { - var variables = [variable]; - while (consume(',')) { - variable = parseIdentifier(); - if (options.scope) scopeIdentifier(variable); - variables.push(variable); - } - expect('in'); - var iterators = []; - do { - var expression = parseExpectedExpression(); - iterators.push(expression); - } while (consume(',')); - - expect('do'); - body = parseBlock(); - expect('end'); - - return finishNode(ast.forGenericStatement(variables, iterators, body)); - } - } - - function parseLocalStatement() { - var name; - - if (Identifier === token.type) { - var variables = [] - , init = []; - - do { - name = parseIdentifier(); - - variables.push(name); - } while (consume(',')); - - if (consume('=')) { - do { - var expression = parseExpectedExpression(); - init.push(expression); - } while (consume(',')); - } - if (options.scope) { - for (var i = 0, l = variables.length; i < l; i++) { - scopeIdentifier(variables[i]); - } - } - - return finishNode(ast.localStatement(variables, init)); - } - if (consume('function')) { - name = parseIdentifier(); - if (options.scope) scopeIdentifier(name); - return parseFunctionDeclaration(name, true); - } else { - raiseUnexpectedToken('<name>', token); - } - } - - function parseAssignmentOrCallStatement() { - var previous = token - , expression, marker; - - if (trackLocations) marker = createLocationMarker(); - expression = parsePrefixExpression(); - - if (null == expression) return unexpected(token); - if (',='.indexOf(token.value) >= 0) { - var variables = [expression] - , init = [] - , exp; - - while (consume(',')) { - exp = parsePrefixExpression(); - if (null == exp) raiseUnexpectedToken('<expression>', token); - variables.push(exp); - } - expect('='); - do { - exp = parseExpectedExpression(); - init.push(exp); - } while (consume(',')); - - pushLocation(marker); - return finishNode(ast.assignmentStatement(variables, init)); - } - if (isCallExpression(expression)) { - pushLocation(marker); - return finishNode(ast.callStatement(expression)); - } - return unexpected(previous); - } - - function parseIdentifier() { - markLocation(); - var identifier = token.value; - if (Identifier !== token.type) raiseUnexpectedToken('<name>', token); - next(); - return finishNode(ast.identifier(identifier)); - } - - function parseFunctionDeclaration(name, isLocal) { - var parameters = []; - expect('('); - if (!consume(')')) { - while (true) { - if (Identifier === token.type) { - var parameter = parseIdentifier(); - if (options.scope) scopeIdentifier(parameter); - - parameters.push(parameter); - - if (consume(',')) continue; - else if (consume(')')) break; - } - else if (VarargLiteral === token.type) { - parameters.push(parsePrimaryExpression()); - expect(')'); - break; - } else { - raiseUnexpectedToken('<name> or \'...\'', token); - } - } - } - - var body = parseBlock(); - expect('end'); - - isLocal = isLocal || false; - return finishNode(ast.functionStatement(name, parameters, isLocal, body)); - } - - function parseFunctionName() { - var base, name, marker; - - if (trackLocations) marker = createLocationMarker(); - base = parseIdentifier(); - - if (options.scope) attachScope(base, false); - - while (consume('.')) { - pushLocation(marker); - name = parseIdentifier(); - if (options.scope) attachScope(name, false); - base = finishNode(ast.memberExpression(base, '.', name)); - } - - if (consume(':')) { - pushLocation(marker); - name = parseIdentifier(); - if (options.scope) attachScope(name, false); - base = finishNode(ast.memberExpression(base, ':', name)); - } - - return base; - } - - function parseTableConstructor() { - var fields = [] - , key, value; - - while (true) { - markLocation(); - if (Punctuator === token.type && consume('[')) { - key = parseExpectedExpression(); - expect(']'); - expect('='); - value = parseExpectedExpression(); - fields.push(finishNode(ast.tableKey(key, value))); - } else if (Identifier === token.type) { - key = parseExpectedExpression(); - if (consume('=')) { - value = parseExpectedExpression(); - fields.push(finishNode(ast.tableKeyString(key, value))); - } else { - fields.push(finishNode(ast.tableValue(key))); - } - } else { - if (null == (value = parseExpression())) { - locations.pop(); - break; - } - fields.push(finishNode(ast.tableValue(value))); - } - if (',;'.indexOf(token.value) >= 0) { - next(); - continue; - } - if ('}' === token.value) break; - } - expect('}'); - return finishNode(ast.tableConstructorExpression(fields)); - } - - function parseExpression() { - var expression = parseSubExpression(0); - return expression; - } - - function parseExpectedExpression() { - var expression = parseExpression(); - if (null == expression) raiseUnexpectedToken('<expression>', token); - else return expression; - } - - function binaryPrecedence(operator) { - var charCode = operator.charCodeAt(0) - , length = operator.length; - - if (1 === length) { - switch (charCode) { - case 94: return 10; // ^ - case 42: case 47: case 37: return 7; // * / % - case 43: case 45: return 6; // + - - case 60: case 62: return 3; // < > - } - } else if (2 === length) { - switch (charCode) { - case 46: return 5; // .. - case 60: case 62: case 61: case 126: return 3; // <= >= == ~= - case 111: return 1; // or - } - } else if (97 === charCode && 'and' === operator) return 2; - return 0; - } - - function parseSubExpression(minPrecedence) { - var operator = token.value - , expression, marker; - - if (trackLocations) marker = createLocationMarker(); - if (isUnary(token)) { - markLocation(); - next(); - var argument = parseSubExpression(8); - if (argument == null) raiseUnexpectedToken('<expression>', token); - expression = finishNode(ast.unaryExpression(operator, argument)); - } - if (null == expression) { - expression = parsePrimaryExpression(); - if (null == expression) { - expression = parsePrefixExpression(); - } - } - if (null == expression) return null; - - var precedence; - while (true) { - operator = token.value; - - precedence = (Punctuator === token.type || Keyword === token.type) ? - binaryPrecedence(operator) : 0; - - if (precedence === 0 || precedence <= minPrecedence) break; - if ('^' === operator || '..' === operator) precedence--; - next(); - var right = parseSubExpression(precedence); - if (null == right) raiseUnexpectedToken('<expression>', token); - if (trackLocations) locations.push(marker); - expression = finishNode(ast.binaryExpression(operator, expression, right)); - - } - return expression; - } - - function parsePrefixExpression() { - var base, name, marker - , isLocal; - - if (trackLocations) marker = createLocationMarker(); - if (Identifier === token.type) { - name = token.value; - base = parseIdentifier(); - if (options.scope) attachScope(base, isLocal = scopeHasName(name)); - } else if (consume('(')) { - base = parseExpectedExpression(); - expect(')'); - if (options.scope) isLocal = base.isLocal; - } else { - return null; - } - var expression, identifier; - while (true) { - if (Punctuator === token.type) { - switch (token.value) { - case '[': - pushLocation(marker); - next(); - expression = parseExpectedExpression(); - base = finishNode(ast.indexExpression(base, expression)); - expect(']'); - break; - case '.': - pushLocation(marker); - next(); - identifier = parseIdentifier(); - if (options.scope) attachScope(identifier, isLocal); - base = finishNode(ast.memberExpression(base, '.', identifier)); - break; - case ':': - pushLocation(marker); - next(); - identifier = parseIdentifier(); - if (options.scope) attachScope(identifier, isLocal); - base = finishNode(ast.memberExpression(base, ':', identifier)); - pushLocation(marker); - base = parseCallExpression(base); - break; - case '(': case '{': // args - pushLocation(marker); - base = parseCallExpression(base); - break; - default: - return base; - } - } else if (StringLiteral === token.type) { - pushLocation(marker); - base = parseCallExpression(base); - } else { - break; - } - } - - return base; - } - - function parseCallExpression(base) { - if (Punctuator === token.type) { - switch (token.value) { - case '(': - next(); - var expressions = []; - var expression = parseExpression(); - if (null != expression) expressions.push(expression); - while (consume(',')) { - expression = parseExpectedExpression(); - expressions.push(expression); - } - - expect(')'); - return finishNode(ast.callExpression(base, expressions)); - - case '{': - markLocation(); - next(); - var table = parseTableConstructor(); - return finishNode(ast.tableCallExpression(base, table)); - } - } else if (StringLiteral === token.type) { - return finishNode(ast.stringCallExpression(base, parsePrimaryExpression())); - } - - raiseUnexpectedToken('function arguments', token); - } - - function parsePrimaryExpression() { - var literals = StringLiteral | NumericLiteral | BooleanLiteral | NilLiteral | VarargLiteral - , value = token.value - , type = token.type - , marker; - - if (trackLocations) marker = createLocationMarker(); - - if (type & literals) { - pushLocation(marker); - var raw = input.slice(token.range[0], token.range[1]); - next(); - return finishNode(ast.literal(type, value, raw)); - } else if (Keyword === type && 'function' === value) { - pushLocation(marker); - next(); - return parseFunctionDeclaration(null); - } else if (consume('{')) { - pushLocation(marker); - return parseTableConstructor(); - } - } - - exports.parse = parse; - - function parse(_input, _options) { - if ('undefined' === typeof _options && 'object' === typeof _input) { - _options = _input; - _input = undefined; - } - if (!_options) _options = {}; - - input = _input || ''; - options = extend(defaultOptions, _options); - index = 0; - line = 1; - lineStart = 0; - length = input.length; - scopes = [[]]; - scopeDepth = 0; - globals = []; - locations = []; - - if (options.comments) comments = []; - if (!options.wait) return end(); - return exports; - } - exports.write = write; - - function write(_input) { - input += String(_input); - length = input.length; - return exports; - } - exports.end = end; - - function end(_input) { - if ('undefined' !== typeof _input) write(_input); - - length = input.length; - trackLocations = options.locations || options.ranges; - lookahead = lex(); - - var chunk = parseChunk(); - if (options.comments) chunk.comments = comments; - if (options.scope) chunk.globals = globals; - - if (locations.length > 0) - throw new Error('Location tracking failed. This is most likely a bug in luaparse'); - - return chunk; - } - -})); - -});
\ No newline at end of file diff --git a/js/vendor/ace/src-noconflict/worker-php.js b/js/vendor/ace/src-noconflict/worker-php.js deleted file mode 100644 index 2419c1b..0000000 --- a/js/vendor/ace/src-noconflict/worker-php.js +++ /dev/null @@ -1,6847 +0,0 @@ -"no use strict"; -;(function(window) { -if (typeof window.window != "undefined" && window.document) { - return; -} - -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.normalizeModule = function(parentId, moduleName) { - if (moduleName.indexOf("!") !== -1) { - var chunks = moduleName.split("!"); - return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]); - } - if (moduleName.charAt(0) == ".") { - var base = parentId.split("/").slice(0, -1).join("/"); - moduleName = base + "/" + moduleName; - - while(moduleName.indexOf(".") !== -1 && previous != moduleName) { - var previous = moduleName; - moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, ""); - } - } - - return moduleName; -}; - -window.require = function(parentId, id) { - if (!id) { - id = parentId - parentId = null; - } - if (!id.charAt) - throw new Error("worker.js require() accepts only (parentId, id) as arguments"); - - id = normalizeModule(parentId, id); - - var module = require.modules[id]; - if (module) { - if (!module.initialized) { - module.initialized = true; - module.exports = module.factory().exports; - } - return module.exports; - } - - var chunks = id.split("/"); - chunks[0] = require.tlns[chunks[0]] || chunks[0]; - var path = chunks.join("/") + ".js"; - - require.id = id; - importScripts(path); - return require(parentId, id); -}; - -require.modules = {}; -require.tlns = {}; - -window.define = function(id, deps, factory) { - if (arguments.length == 2) { - factory = deps; - if (typeof id != "string") { - deps = id; - id = require.id; - } - } else if (arguments.length == 1) { - factory = id; - id = require.id; - } - - if (id.indexOf("text!") === 0) - return; - - var req = function(deps, factory) { - return require(id, deps, factory); - }; - - require.modules[id] = { - exports: {}, - factory: function() { - var module = this; - var returnExports = factory(req, module.exports, module); - if (returnExports) - module.exports = returnExports; - return module; - } - }; -}; - -window.initBaseUrls = function initBaseUrls(topLevelNamespaces) { - require.tlns = topLevelNamespaces; -} - -window.initSender = function initSender() { - - var EventEmitter = require("ace/lib/event_emitter").EventEmitter; - var oop = require("ace/lib/oop"); - - var Sender = function() {}; - - (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); - - return new Sender(); -} - -window.main = null; -window.sender = null; - -window.onmessage = function(e) { - var msg = e.data; - if (msg.command) { - if (main[msg.command]) - main[msg.command].apply(main, msg.args); - else - throw new Error("Unknown command:" + msg.command); - } - else if (msg.init) { - initBaseUrls(msg.tlns); - require("ace/lib/es5-shim"); - sender = initSender(); - var clazz = require(msg.module)[msg.classname]; - main = new clazz(sender); - } - else if (msg.event && sender) { - sender._emit(msg.event, msg.data); - } -}; -})(this); - -ace.define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) { - - -var EventEmitter = {}; -var stopPropagation = function() { this.propagationStopped = true; }; -var preventDefault = function() { this.defaultPrevented = true; }; - -EventEmitter._emit = -EventEmitter._dispatchEvent = function(eventName, e) { - this._eventRegistry || (this._eventRegistry = {}); - this._defaultHandlers || (this._defaultHandlers = {}); - - var listeners = this._eventRegistry[eventName] || []; - var defaultHandler = this._defaultHandlers[eventName]; - if (!listeners.length && !defaultHandler) - return; - - if (typeof e != "object" || !e) - e = {}; - - if (!e.type) - e.type = eventName; - if (!e.stopPropagation) - e.stopPropagation = stopPropagation; - if (!e.preventDefault) - e.preventDefault = preventDefault; - - for (var i=0; i<listeners.length; i++) { - listeners[i](e, this); - if (e.propagationStopped) - break; - } - - if (defaultHandler && !e.defaultPrevented) - return defaultHandler(e, this); -}; - - -EventEmitter._signal = function(eventName, e) { - var listeners = (this._eventRegistry || {})[eventName]; - if (!listeners) - return; - - for (var i=0; i<listeners.length; 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_: {}}; - - if (handlers[eventName]) { - var old = handlers[eventName]; - var disabled = handlers._disabled_[eventName]; - if (!disabled) - handlers._disabled_[eventName] = disabled = []; - disabled.push(old); - var i = disabled.indexOf(callback); - if (i != -1) - disabled.splice(i, 1); - } - handlers[eventName] = callback; -}; -EventEmitter.removeDefaultHandler = function(eventName, callback) { - var handlers = this._defaultHandlers - if (!handlers) - return; - var disabled = handlers._disabled_[eventName]; - - if (handlers[eventName] == callback) { - var old = handlers[eventName]; - if (disabled) - this.setDefaultHandler(eventName, disabled.pop()); - } else if (disabled) { - var i = disabled.indexOf(callback); - if (i != -1) - disabled.splice(i, 1); - } -}; - -EventEmitter.on = -EventEmitter.addEventListener = function(eventName, callback, capturing) { - this._eventRegistry = this._eventRegistry || {}; - - var listeners = this._eventRegistry[eventName]; - if (!listeners) - listeners = this._eventRegistry[eventName] = []; - - if (listeners.indexOf(callback) == -1) - listeners[capturing ? "unshift" : "push"](callback); - return callback; -}; - -EventEmitter.off = -EventEmitter.removeListener = -EventEmitter.removeEventListener = function(eventName, callback) { - this._eventRegistry = this._eventRegistry || {}; - - var listeners = this._eventRegistry[eventName]; - if (!listeners) - return; - - var index = listeners.indexOf(callback); - if (index !== -1) - listeners.splice(index, 1); -}; - -EventEmitter.removeAllListeners = function(eventName) { - if (this._eventRegistry) this._eventRegistry[eventName] = []; -}; - -exports.EventEmitter = EventEmitter; - -}); - -ace.define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) { - - -exports.inherits = (function() { - var tempCtor = function() {}; - return function(ctor, superCtor) { - tempCtor.prototype = superCtor.prototype; - ctor.super_ = superCtor.prototype; - ctor.prototype = new tempCtor(); - ctor.prototype.constructor = ctor; - }; -}()); - -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/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) { - -function Empty() {} - -if (!Function.prototype.bind) { - Function.prototype.bind = function bind(that) { // .length is 1 - var target = this; - if (typeof target != "function") { - throw new TypeError("Function.prototype.bind called on incompatible " + target); - } - var args = slice.call(arguments, 1); // for normal call - var bound = function () { - - if (this instanceof bound) { - - var result = target.apply( - this, - args.concat(slice.call(arguments)) - ); - if (Object(result) === result) { - return result; - } - return this; - - } else { - return target.apply( - that, - args.concat(slice.call(arguments)) - ); - - } - - }; - if(target.prototype) { - Empty.prototype = target.prototype; - bound.prototype = new Empty(); - Empty.prototype = null; - } - return bound; - }; -} -var call = Function.prototype.call; -var prototypeOfArray = Array.prototype; -var prototypeOfObject = Object.prototype; -var slice = prototypeOfArray.slice; -var _toString = call.bind(prototypeOfObject.toString); -var owns = call.bind(prototypeOfObject.hasOwnProperty); -var defineGetter; -var defineSetter; -var lookupGetter; -var lookupSetter; -var supportsAccessors; -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__); -} -if ([1,2].splice(0).length != 2) { - if(function() { // test IE < 9 to splice bug - see issue #138 - function makeArray(l) { - var a = new Array(l+2); - a[0] = a[1] = 0; - return a; - } - var array = [], lengthBefore; - - array.splice.apply(array, makeArray(20)); - array.splice.apply(array, makeArray(26)); - - lengthBefore = array.length; //46 - array.splice(5, 0, "XXX"); // add one element - - lengthBefore + 1 == array.length - - if (lengthBefore + 1 == array.length) { - return true;// has right splice implementation without bugs - } - }()) {//IE 6/7 - var array_splice = Array.prototype.splice; - Array.prototype.splice = function(start, deleteCount) { - if (!arguments.length) { - return []; - } else { - return array_splice.apply(this, [ - start === void 0 ? 0 : start, - deleteCount === void 0 ? (this.length - start) : deleteCount - ].concat(slice.call(arguments, 2))) - } - }; - } else {//IE8 - Array.prototype.splice = function(pos, removeCount){ - var length = this.length; - if (pos > 0) { - if (pos > length) - pos = length; - } else if (pos == void 0) { - pos = 0; - } else if (pos < 0) { - pos = Math.max(length + pos, 0); - } - - if (!(pos+removeCount < length)) - removeCount = length - pos; - - var removed = this.slice(pos, pos+removeCount); - var insert = slice.call(arguments, 2); - var add = insert.length; - if (pos === length) { - if (add) { - this.push.apply(this, insert); - } - } else { - var remove = Math.min(removeCount, length - pos); - var tailOldPos = pos + remove; - var tailNewPos = tailOldPos + add - remove; - var tailCount = length - tailOldPos; - var lengthAfterRemove = length - remove; - - if (tailNewPos < tailOldPos) { // case A - for (var i = 0; i < tailCount; ++i) { - this[tailNewPos+i] = this[tailOldPos+i]; - } - } else if (tailNewPos > tailOldPos) { // case B - for (i = tailCount; i--; ) { - this[tailNewPos+i] = this[tailOldPos+i]; - } - } // else, add == remove (nothing to do) - - if (add && pos === lengthAfterRemove) { - this.length = lengthAfterRemove; // truncate array - this.push.apply(this, insert); - } else { - this.length = lengthAfterRemove + add; // reserves space - for (i = 0; i < add; ++i) { - this[pos+i] = insert[i]; - } - } - } - return removed; - }; - } -} -if (!Array.isArray) { - Array.isArray = function isArray(obj) { - return _toString(obj) == "[object Array]"; - }; -} -var boxedString = Object("a"), - splitString = boxedString[0] != "a" || !(0 in boxedString); - -if (!Array.prototype.forEach) { - Array.prototype.forEach = function forEach(fun /*, thisp*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - thisp = arguments[1], - i = -1, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(); // TODO message - } - - while (++i < length) { - if (i in self) { - fun.call(thisp, self[i], i, object); - } - } - }; -} -if (!Array.prototype.map) { - Array.prototype.map = function map(fun /*, thisp*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - result = Array(length), - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self) - result[i] = fun.call(thisp, self[i], i, object); - } - return result; - }; -} -if (!Array.prototype.filter) { - Array.prototype.filter = function filter(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - result = [], - value, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self) { - value = self[i]; - if (fun.call(thisp, value, i, object)) { - result.push(value); - } - } - } - return result; - }; -} -if (!Array.prototype.every) { - Array.prototype.every = function every(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self && !fun.call(thisp, self[i], i, object)) { - return false; - } - } - return true; - }; -} -if (!Array.prototype.some) { - Array.prototype.some = function some(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self && fun.call(thisp, self[i], i, object)) { - return true; - } - } - return false; - }; -} -if (!Array.prototype.reduce) { - Array.prototype.reduce = function reduce(fun /*, initial*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - if (!length && arguments.length == 1) { - throw new TypeError("reduce of empty array with no initial value"); - } - - var i = 0; - var result; - if (arguments.length >= 2) { - result = arguments[1]; - } else { - do { - if (i in self) { - result = self[i++]; - break; - } - if (++i >= length) { - throw new TypeError("reduce of empty array with no initial value"); - } - } while (true); - } - - for (; i < length; i++) { - if (i in self) { - result = fun.call(void 0, result, self[i], i, object); - } - } - - return result; - }; -} -if (!Array.prototype.reduceRight) { - Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - if (!length && arguments.length == 1) { - throw new TypeError("reduceRight of empty array with no initial value"); - } - - var result, i = length - 1; - if (arguments.length >= 2) { - result = arguments[1]; - } else { - do { - if (i in self) { - result = self[i--]; - break; - } - if (--i < 0) { - throw new TypeError("reduceRight of empty array with no initial value"); - } - } while (true); - } - - do { - if (i in this) { - result = fun.call(void 0, result, self[i], i, object); - } - } while (i--); - - return result; - }; -} -if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) { - Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) { - var self = splitString && _toString(this) == "[object String]" ? - this.split("") : - toObject(this), - length = self.length >>> 0; - - if (!length) { - return -1; - } - - var i = 0; - if (arguments.length > 1) { - i = toInteger(arguments[1]); - } - i = i >= 0 ? i : Math.max(0, length + i); - for (; i < length; i++) { - if (i in self && self[i] === sought) { - return i; - } - } - return -1; - }; -} -if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) { - Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) { - var self = splitString && _toString(this) == "[object String]" ? - this.split("") : - toObject(this), - length = self.length >>> 0; - - if (!length) { - return -1; - } - var i = length - 1; - if (arguments.length > 1) { - i = Math.min(i, toInteger(arguments[1])); - } - i = i >= 0 ? i : length - Math.abs(i); - for (; i >= 0; i--) { - if (i in self && sought === self[i]) { - return i; - } - } - return -1; - }; -} -if (!Object.getPrototypeOf) { - Object.getPrototypeOf = function getPrototypeOf(object) { - return object.__proto__ || ( - object.constructor ? - object.constructor.prototype : - prototypeOfObject - ); - }; -} -if (!Object.getOwnPropertyDescriptor) { - var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " + - "non-object: "; - Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) { - if ((typeof object != "object" && typeof object != "function") || object === null) - throw new TypeError(ERR_NON_OBJECT + object); - if (!owns(object, property)) - return; - - var descriptor, getter, setter; - descriptor = { enumerable: true, configurable: true }; - if (supportsAccessors) { - var prototype = object.__proto__; - object.__proto__ = prototypeOfObject; - - var getter = lookupGetter(object, property); - var setter = lookupSetter(object, property); - object.__proto__ = prototype; - - if (getter || setter) { - if (getter) descriptor.get = getter; - if (setter) descriptor.set = setter; - return descriptor; - } - } - descriptor.value = object[property]; - return descriptor; - }; -} -if (!Object.getOwnPropertyNames) { - Object.getOwnPropertyNames = function getOwnPropertyNames(object) { - return Object.keys(object); - }; -} -if (!Object.create) { - var createEmpty; - if (Object.prototype.__proto__ === null) { - createEmpty = function () { - return { "__proto__": null }; - }; - } else { - createEmpty = function () { - var empty = {}; - for (var i in empty) - empty[i] = null; - empty.constructor = - empty.hasOwnProperty = - empty.propertyIsEnumerable = - empty.isPrototypeOf = - empty.toLocaleString = - empty.toString = - empty.valueOf = - empty.__proto__ = null; - return empty; - } - } - - Object.create = function create(prototype, properties) { - var object; - if (prototype === null) { - object = createEmpty(); - } else { - if (typeof prototype != "object") - throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'"); - var Type = function () {}; - Type.prototype = prototype; - object = new Type(); - object.__proto__ = prototype; - } - if (properties !== void 0) - Object.defineProperties(object, properties); - return object; - }; -} - -function doesDefinePropertyWork(object) { - try { - Object.defineProperty(object, "sentinel", {}); - return "sentinel" in object; - } catch (exception) { - } -} -if (Object.defineProperty) { - var definePropertyWorksOnObject = doesDefinePropertyWork({}); - var definePropertyWorksOnDom = typeof document == "undefined" || - 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: "; - var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: " - var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " + - "on this javascript engine"; - - Object.defineProperty = function defineProperty(object, property, descriptor) { - if ((typeof object != "object" && typeof object != "function") || object === null) - throw new TypeError(ERR_NON_OBJECT_TARGET + object); - if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null) - 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); - if (owns(descriptor, "get")) - defineGetter(object, property, descriptor.get); - if (owns(descriptor, "set")) - defineSetter(object, property, descriptor.set); - } - - return object; - }; -} -if (!Object.defineProperties) { - Object.defineProperties = function defineProperties(object, properties) { - for (var property in properties) { - if (owns(properties, property)) - Object.defineProperty(object, property, properties[property]); - } - return object; - }; -} -if (!Object.seal) { - Object.seal = function seal(object) { - return object; - }; -} -if (!Object.freeze) { - Object.freeze = function freeze(object) { - return object; - }; -} -try { - Object.freeze(function () {}); -} catch (exception) { - Object.freeze = (function freeze(freezeObject) { - return function freeze(object) { - if (typeof object == "function") { - return object; - } else { - return freezeObject(object); - } - }; - })(Object.freeze); -} -if (!Object.preventExtensions) { - Object.preventExtensions = function preventExtensions(object) { - return object; - }; -} -if (!Object.isSealed) { - Object.isSealed = function isSealed(object) { - return false; - }; -} -if (!Object.isFrozen) { - Object.isFrozen = function isFrozen(object) { - return false; - }; -} -if (!Object.isExtensible) { - Object.isExtensible = function isExtensible(object) { - if (Object(object) === object) { - throw new TypeError(); // TODO message - } - var name = ''; - while (owns(object, name)) { - name += '?'; - } - object[name] = true; - var returnValue = owns(object, name); - delete object[name]; - return returnValue; - }; -} -if (!Object.keys) { - var hasDontEnumBug = true, - dontEnums = [ - "toString", - "toLocaleString", - "valueOf", - "hasOwnProperty", - "isPrototypeOf", - "propertyIsEnumerable", - "constructor" - ], - dontEnumsLength = dontEnums.length; - - for (var key in {"toString": null}) { - hasDontEnumBug = false; - } - - Object.keys = function keys(object) { - - if ( - (typeof object != "object" && typeof object != "function") || - object === null - ) { - throw new TypeError("Object.keys called on a non-object"); - } - - var keys = []; - for (var name in object) { - if (owns(object, name)) { - keys.push(name); - } - } - - if (hasDontEnumBug) { - for (var i = 0, ii = dontEnumsLength; i < ii; i++) { - var dontEnum = dontEnums[i]; - if (owns(object, dontEnum)) { - keys.push(dontEnum); - } - } - } - return keys; - }; - -} -if (!Date.now) { - Date.now = function now() { - return new Date().getTime(); - }; -} -var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" + - "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" + - "\u2029\uFEFF"; -if (!String.prototype.trim || ws.trim()) { - ws = "[" + ws + "]"; - var trimBeginRegexp = new RegExp("^" + ws + ws + "*"), - trimEndRegexp = new RegExp(ws + ws + "*$"); - String.prototype.trim = function trim() { - return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, ""); - }; -} - -function toInteger(n) { - n = +n; - if (n !== n) { // isNaN - n = 0; - } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) { - n = (n > 0 || -1) * Math.floor(Math.abs(n)); - } - return n; -} - -function isPrimitive(input) { - var type = typeof input; - return ( - input === null || - type === "undefined" || - type === "boolean" || - type === "number" || - type === "string" - ); -} - -function toPrimitive(input) { - var val, valueOf, toString; - if (isPrimitive(input)) { - return input; - } - valueOf = input.valueOf; - if (typeof valueOf === "function") { - val = valueOf.call(input); - if (isPrimitive(val)) { - return val; - } - } - toString = input.toString; - if (typeof toString === "function") { - val = toString.call(input); - if (isPrimitive(val)) { - return val; - } - } - throw new TypeError(); -} -var toObject = function (o) { - if (o == null) { // this matches both null and undefined - throw new TypeError("can't convert "+o+" to object"); - } - return Object(o); -}; - -}); - -ace.define('ace/mode/php_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/php/php'], function(require, exports, module) { - - -var oop = require("../lib/oop"); -var Mirror = require("../worker/mirror").Mirror; -var PHP = require("./php/php").PHP; - -var PhpWorker = exports.PhpWorker = function(sender) { - Mirror.call(this, sender); - this.setTimeout(500); -}; - -oop.inherits(PhpWorker, Mirror); - -(function() { - - this.onUpdate = function() { - var value = this.doc.getValue(); - var errors = []; - - var tokens = PHP.Lexer(value, {short_open_tag: 1}); - try { - new PHP.Parser(tokens); - } catch(e) { - errors.push({ - row: e.line - 1, - column: null, - text: e.message.charAt(0).toUpperCase() + e.message.substring(1), - type: "error" - }); - } - - if (errors.length) { - this.sender.emit("error", errors); - } else { - this.sender.emit("ok"); - } - }; - -}).call(PhpWorker.prototype); - -}); -ace.define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) { - - -var Document = require("../document").Document; -var lang = require("../lib/lang"); - -var Mirror = exports.Mirror = function(sender) { - this.sender = sender; - var doc = this.doc = new Document(""); - - var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this)); - - var _self = this; - sender.on("change", function(e) { - doc.applyDeltas(e.data); - deferredUpdate.schedule(_self.$timeout); - }); -}; - -(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() { - }; - -}).call(Mirror.prototype); - -}); - -ace.define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) { - - -var oop = require("./lib/oop"); -var EventEmitter = require("./lib/event_emitter").EventEmitter; -var Range = require("./range").Range; -var Anchor = require("./anchor").Anchor; - -var Document = function(text) { - this.$lines = []; - if (text.length == 0) { - this.$lines = [""]; - } else if (Array.isArray(text)) { - this._insertLines(0, text); - } else { - this.insert({row: 0, column:0}, text); - } -}; - -(function() { - - oop.implement(this, EventEmitter); - this.setValue = function(text) { - var len = this.getLength(); - this.remove(new Range(0, 0, len, this.getLine(len-1).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); - }; - if ("aaa".split(/a/).length == 0) - this.$split = function(text) { - return text.replace(/\r\n|\r/g, "\n").split("\n"); - } - else - this.$split = 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.getNewLineCharacter = function() { - switch (this.$newLineMode) { - case "windows": - return "\r\n"; - case "unix": - return "\n"; - default: - return this.$autoNewLine; - } - }; - - this.$autoNewLine = "\n"; - this.$newLineMode = "auto"; - this.setNewLineMode = function(newLineMode) { - if (this.$newLineMode === newLineMode) - return; - - this.$newLineMode = newLineMode; - }; - this.getNewLineMode = function() { - return this.$newLineMode; - }; - this.isNewLine = function(text) { - return (text == "\r\n" || text == "\r" || text == "\n"); - }; - 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) { - if (range.start.row == range.end.row) { - return this.getLine(range.start.row) - .substring(range.start.column, range.end.column); - } - var lines = this.getLines(range.start.row, range.end.row); - lines[0] = (lines[0] || "").substring(range.start.column); - var l = lines.length - 1; - if (range.end.row - range.start.row == l) - lines[l] = lines[l].substring(0, range.end.column); - return lines.join(this.getNewLineCharacter()); - }; - - this.$clipPosition = function(position) { - var length = this.getLength(); - if (position.row >= length) { - position.row = Math.max(0, length - 1); - position.column = this.getLine(length-1).length; - } else if (position.row < 0) - position.row = 0; - return position; - }; - this.insert = function(position, text) { - if (!text || text.length === 0) - return position; - - position = this.$clipPosition(position); - if (this.getLength() <= 1) - this.$detectNewLine(text); - - var lines = this.$split(text); - var firstLine = lines.splice(0, 1)[0]; - var lastLine = lines.length == 0 ? null : lines.splice(lines.length - 1, 1)[0]; - - position = this.insertInLine(position, firstLine); - if (lastLine !== null) { - position = this.insertNewLine(position); // terminate first line - position = this._insertLines(position.row, lines); - position = this.insertInLine(position, lastLine || ""); - } - return position; - }; - this.insertLines = function(row, lines) { - if (row >= this.getLength()) - return this.insert({row: row, column: 0}, "\n" + lines.join("\n")); - return this._insertLines(Math.max(row, 0), lines); - }; - this._insertLines = function(row, lines) { - if (lines.length == 0) - return {row: row, column: 0}; - if (lines.length > 0xFFFF) { - var end = this._insertLines(row, lines.slice(0xFFFF)); - lines = lines.slice(0, 0xFFFF); - } - - var args = [row, 0]; - args.push.apply(args, lines); - this.$lines.splice.apply(this.$lines, args); - - var range = new Range(row, 0, row + lines.length, 0); - var delta = { - action: "insertLines", - range: range, - lines: lines - }; - this._emit("change", { data: delta }); - return end || range.end; - }; - this.insertNewLine = function(position) { - position = this.$clipPosition(position); - var line = this.$lines[position.row] || ""; - - this.$lines[position.row] = line.substring(0, position.column); - this.$lines.splice(position.row + 1, 0, line.substring(position.column, line.length)); - - var end = { - row : position.row + 1, - column : 0 - }; - - var delta = { - action: "insertText", - range: Range.fromPoints(position, end), - text: this.getNewLineCharacter() - }; - this._emit("change", { data: delta }); - - return end; - }; - this.insertInLine = function(position, text) { - if (text.length == 0) - return position; - - var line = this.$lines[position.row] || ""; - - this.$lines[position.row] = line.substring(0, position.column) + text - + line.substring(position.column); - - var end = { - row : position.row, - column : position.column + text.length - }; - - var delta = { - action: "insertText", - range: Range.fromPoints(position, end), - text: text - }; - this._emit("change", { data: delta }); - - return end; - }; - this.remove = function(range) { - range.start = this.$clipPosition(range.start); - range.end = this.$clipPosition(range.end); - - if (range.isEmpty()) - return range.start; - - var firstRow = range.start.row; - var lastRow = range.end.row; - - if (range.isMultiLine()) { - var firstFullRow = range.start.column == 0 ? firstRow : firstRow + 1; - var lastFullRow = lastRow - 1; - - if (range.end.column > 0) - this.removeInLine(lastRow, 0, range.end.column); - - if (lastFullRow >= firstFullRow) - this._removeLines(firstFullRow, lastFullRow); - - if (firstFullRow != firstRow) { - this.removeInLine(firstRow, range.start.column, this.getLine(firstRow).length); - this.removeNewLine(range.start.row); - } - } - else { - this.removeInLine(firstRow, range.start.column, range.end.column); - } - return range.start; - }; - this.removeInLine = function(row, startColumn, endColumn) { - if (startColumn == endColumn) - return; - - var range = new Range(row, startColumn, row, endColumn); - var line = this.getLine(row); - var removed = line.substring(startColumn, endColumn); - var newLine = line.substring(0, startColumn) + line.substring(endColumn, line.length); - this.$lines.splice(row, 1, newLine); - - var delta = { - action: "removeText", - range: range, - text: removed - }; - this._emit("change", { data: delta }); - return range.start; - }; - this.removeLines = function(firstRow, lastRow) { - if (firstRow < 0 || lastRow >= this.getLength()) - return this.remove(new Range(firstRow, 0, lastRow + 1, 0)); - return this._removeLines(firstRow, lastRow); - }; - - this._removeLines = function(firstRow, lastRow) { - var range = new Range(firstRow, 0, lastRow + 1, 0); - var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1); - - var delta = { - action: "removeLines", - range: range, - nl: this.getNewLineCharacter(), - lines: removed - }; - this._emit("change", { data: delta }); - return removed; - }; - this.removeNewLine = function(row) { - var firstLine = this.getLine(row); - var secondLine = this.getLine(row+1); - - var range = new Range(row, firstLine.length, row+1, 0); - var line = firstLine + secondLine; - - this.$lines.splice(row, 2, line); - - var delta = { - action: "removeText", - range: range, - text: this.getNewLineCharacter() - }; - this._emit("change", { data: delta }); - }; - this.replace = function(range, text) { - if (text.length == 0 && range.isEmpty()) - return range.start; - if (text == this.getTextRange(range)) - return range.end; - - this.remove(range); - if (text) { - var end = this.insert(range.start, text); - } - else { - end = range.start; - } - - return end; - }; - this.applyDeltas = function(deltas) { - for (var i=0; i<deltas.length; i++) { - var delta = deltas[i]; - var range = Range.fromPoints(delta.range.start, delta.range.end); - - if (delta.action == "insertLines") - this.insertLines(range.start.row, delta.lines); - else if (delta.action == "insertText") - this.insert(range.start, delta.text); - else if (delta.action == "removeLines") - this._removeLines(range.start.row, range.end.row - 1); - else if (delta.action == "removeText") - this.remove(range); - } - }; - this.revertDeltas = function(deltas) { - for (var i=deltas.length-1; i>=0; i--) { - var delta = deltas[i]; - - var range = Range.fromPoints(delta.range.start, delta.range.end); - - if (delta.action == "insertLines") - this._removeLines(range.start.row, range.end.row - 1); - else if (delta.action == "insertText") - this.remove(range); - else if (delta.action == "removeLines") - this._insertLines(range.start.row, delta.lines); - else if (delta.action == "removeText") - this.insert(range.start, delta.text); - } - }; - this.indexToPosition = function(index, startRow) { - var lines = this.$lines || this.getAllLines(); - var newlineLength = this.getNewLineCharacter().length; - for (var i = startRow || 0, l = lines.length; i < l; i++) { - index -= lines[i].length + newlineLength; - if (index < 0) - return {row: i, column: index + lines[i].length + newlineLength}; - } - return {row: l-1, column: lines[l-1].length}; - }; - this.positionToIndex = function(pos, startRow) { - var lines = this.$lines || this.getAllLines(); - var newlineLength = this.getNewLineCharacter().length; - var index = 0; - var row = Math.min(pos.row, lines.length); - for (var i = startRow || 0; i < row; ++i) - index += lines[i].length + newlineLength; - - return index + pos.column; - }; - -}).call(Document.prototype); - -exports.Document = Document; -}); - -ace.define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) { - -var comparePoints = function(p1, p2) { - return p1.row - p2.row || p1.column - p2.column; -}; -var 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 this.compare(row, column) == 0; - }; - this.compareRange = function(range) { - var cmp, - end = range.end, - start = range.start; - - cmp = this.compare(end.row, end.column); - if (cmp == 1) { - cmp = this.compare(start.row, start.column); - if (cmp == 1) { - return 2; - } else if (cmp == 0) { - return 1; - } else { - return 0; - } - } else if (cmp == -1) { - return -2; - } else { - cmp = this.compare(start.row, start.column); - if (cmp == -1) { - return -1; - } else if (cmp == 1) { - return 42; - } else { - return 0; - } - } - }; - this.comparePoint = function(p) { - return this.compare(p.row, p.column); - }; - this.containsRange = function(range) { - return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0; - }; - this.intersects = function(range) { - var cmp = this.compareRange(range); - return (cmp == -1 || cmp == 0 || cmp == 1); - }; - 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) { - if (typeof row == "object") { - this.start.column = row.column; - this.start.row = row.row; - } else { - this.start.row = row; - this.start.column = column; - } - }; - this.setEnd = function(row, column) { - if (typeof row == "object") { - this.end.column = row.column; - this.end.row = row.row; - } else { - this.end.row = row; - this.end.column = column; - } - }; - this.inside = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isEnd(row, column) || this.isStart(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.insideStart = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isEnd(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.insideEnd = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isStart(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.compare = function(row, column) { - if (!this.isMultiLine()) { - if (row === this.start.row) { - return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0); - }; - } - - if (row < this.start.row) - return -1; - - if (row > this.end.row) - return 1; - - if (this.start.row === row) - return column >= this.start.column ? 0 : -1; - - if (this.end.row === row) - return column <= this.end.column ? 0 : 1; - - return 0; - }; - this.compareStart = function(row, column) { - if (this.start.row == row && this.start.column == column) { - return -1; - } else { - return this.compare(row, column); - } - }; - this.compareEnd = function(row, column) { - if (this.end.row == row && this.end.column == column) { - return 1; - } else { - return this.compare(row, column); - } - }; - this.compareInside = function(row, column) { - if (this.end.row == row && this.end.column == column) { - return 1; - } else if (this.start.row == row && this.start.column == column) { - return -1; - } else { - return this.compare(row, column); - } - }; - this.clipRows = function(firstRow, lastRow) { - if (this.end.row > lastRow) - var end = {row: lastRow + 1, column: 0}; - else if (this.end.row < firstRow) - var end = {row: firstRow, column: 0}; - - if (this.start.row > lastRow) - var start = {row: lastRow + 1, column: 0}; - else if (this.start.row < firstRow) - 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 (cmp == 0) - return this; - else if (cmp == -1) - 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() { - if (this.end.column == 0) - return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0) - else - return new Range(this.start.row, 0, this.end.row, 0) - }; - this.toScreenRange = function(session) { - var screenPosStart = session.documentToScreenPosition(this.start); - var 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/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) { - - -var oop = require("./lib/oop"); -var EventEmitter = require("./lib/event_emitter").EventEmitter; - -var Anchor = exports.Anchor = function(doc, row, column) { - this.$onChange = this.onChange.bind(this); - this.attach(doc); - - if (typeof column == "undefined") - this.setPosition(row.row, row.column); - else - this.setPosition(row, column); -}; - -(function() { - - oop.implement(this, EventEmitter); - this.getPosition = function() { - return this.$clipPositionToDocument(this.row, this.column); - }; - this.getDocument = function() { - return this.document; - }; - this.onChange = function(e) { - var delta = e.data; - var range = delta.range; - - if (range.start.row == range.end.row && range.start.row != this.row) - return; - - if (range.start.row > this.row) - return; - - if (range.start.row == this.row && range.start.column > this.column) - return; - - var row = this.row; - var column = this.column; - var start = range.start; - var end = range.end; - - if (delta.action === "insertText") { - if (start.row === row && start.column <= column) { - if (start.row === end.row) { - column += end.column - start.column; - } else { - column -= start.column; - row += end.row - start.row; - } - } else if (start.row !== end.row && start.row < row) { - row += end.row - start.row; - } - } else if (delta.action === "insertLines") { - if (start.row <= row) { - row += end.row - start.row; - } - } else if (delta.action === "removeText") { - if (start.row === row && start.column < column) { - if (end.column >= column) - column = start.column; - else - column = Math.max(0, column - (end.column - start.column)); - - } else if (start.row !== end.row && start.row < row) { - if (end.row === row) - column = Math.max(0, column - end.column) + start.column; - row -= (end.row - start.row); - } else if (end.row === row) { - row -= end.row - start.row; - column = Math.max(0, column - end.column) + start.column; - } - } else if (delta.action == "removeLines") { - if (start.row <= row) { - if (end.row <= row) - row -= end.row - start.row; - else { - row = start.row; - column = 0; - } - } - } - - this.setPosition(row, column, true); - }; - this.setPosition = function(row, column, noClip) { - var pos; - if (noClip) { - pos = { - row: row, - column: column - }; - } else { - pos = this.$clipPositionToDocument(row, column); - } - - if (this.row == pos.row && this.column == pos.column) - return; - - var old = { - row: this.row, - column: this.column - }; - - this.row = pos.row; - this.column = pos.column; - this._emit("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 = {}; - - if (row >= this.document.getLength()) { - pos.row = Math.max(0, this.document.getLength() - 1); - pos.column = this.document.getLine(pos.row).length; - } - else if (row < 0) { - pos.row = 0; - pos.column = 0; - } - else { - pos.row = row; - pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column)); - } - - if (column < 0) - pos.column = 0; - - return pos; - }; - -}).call(Anchor.prototype); - -}); - -ace.define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) { - - -exports.stringReverse = function(string) { - return string.split("").reverse().join(""); -}; - -exports.stringRepeat = function (string, count) { - var result = ''; - while (count > 0) { - if (count & 1) - result += string; - - if (count >>= 1) - string += string; - } - return result; -}; - -var trimBeginRegexp = /^\s\s*/; -var 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){ - var copy = []; - for (var i=0, l=array.length; i<l; i++) { - if (array[i] && typeof array[i] == "object") - copy[i] = this.copyObject( array[i] ); - else - copy[i] = array[i]; - } - return copy; -}; - -exports.deepCopy = function (obj) { - if (typeof obj != "object") { - return obj; - } - - var copy = obj.constructor(); - for (var key in obj) { - if (typeof obj[key] == "object") { - copy[key] = this.deepCopy(obj[key]); - } else { - copy[key] = obj[key]; - } - } - return copy; -}; - -exports.arrayToMap = function(arr) { - var map = {}; - for (var i=0; i<arr.length; 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; i <= array.length; i++) { - if (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(/</g, "<"); -}; - -exports.getMatchOffsets = function(string, regExp) { - var matches = []; - - string.replace(regExp, function(str) { - matches.push({ - offset: arguments[arguments.length-2], - length: str.length - }); - }); - - return matches; -}; -exports.deferredCall = function(fcn) { - - var timer = null; - var callback = function() { - timer = null; - fcn(); - }; - - var deferred = function(timeout) { - deferred.cancel(); - timer = setTimeout(callback, timeout || 0); - return deferred; - }; - - deferred.schedule = deferred; - - deferred.call = function() { - this.cancel(); - fcn(); - return deferred; - }; - - deferred.cancel = function() { - clearTimeout(timer); - timer = null; - return deferred; - }; - - return deferred; -}; - - -exports.delayedCall = function(fcn, defaultTimeout) { - var timer = null; - var callback = function() { - timer = null; - fcn(); - }; - - var _self = function(timeout) { - timer && clearTimeout(timer); - timer = setTimeout(callback, timeout || defaultTimeout); - }; - - _self.delay = _self; - _self.schedule = function(timeout) { - if (timer == null) - timer = setTimeout(callback, timeout || 0); - }; - - _self.call = function() { - this.cancel(); - fcn(); - }; - - _self.cancel = function() { - timer && clearTimeout(timer); - timer = null; - }; - - _self.isPending = function() { - return timer; - }; - - return _self; -}; -}); - - - -ace.define('ace/mode/php/php', ['require', 'exports', 'module' ], function(require, exports, module) { - -var PHP = {Constants:{}}; - - - - -PHP.Constants.T_INCLUDE = 262; -PHP.Constants.T_INCLUDE_ONCE = 261; -PHP.Constants.T_EVAL = 260; -PHP.Constants.T_REQUIRE = 259; -PHP.Constants.T_REQUIRE_ONCE = 258; -PHP.Constants.T_LOGICAL_OR = 263; -PHP.Constants.T_LOGICAL_XOR = 264; -PHP.Constants.T_LOGICAL_AND = 265; -PHP.Constants.T_PRINT = 266; -PHP.Constants.T_PLUS_EQUAL = 277; -PHP.Constants.T_MINUS_EQUAL = 276; -PHP.Constants.T_MUL_EQUAL = 275; -PHP.Constants.T_DIV_EQUAL = 274; -PHP.Constants.T_CONCAT_EQUAL = 273; -PHP.Constants.T_MOD_EQUAL = 272; -PHP.Constants.T_AND_EQUAL = 271; -PHP.Constants.T_OR_EQUAL = 270; -PHP.Constants.T_XOR_EQUAL = 269; -PHP.Constants.T_SL_EQUAL = 268; -PHP.Constants.T_SR_EQUAL = 267; -PHP.Constants.T_BOOLEAN_OR = 278; -PHP.Constants.T_BOOLEAN_AND = 279; -PHP.Constants.T_IS_EQUAL = 283; -PHP.Constants.T_IS_NOT_EQUAL = 282; -PHP.Constants.T_IS_IDENTICAL = 281; -PHP.Constants.T_IS_NOT_IDENTICAL = 280; -PHP.Constants.T_IS_SMALLER_OR_EQUAL = 285; -PHP.Constants.T_IS_GREATER_OR_EQUAL = 284; -PHP.Constants.T_SL = 287; -PHP.Constants.T_SR = 286; -PHP.Constants.T_INSTANCEOF = 288; -PHP.Constants.T_INC = 297; -PHP.Constants.T_DEC = 296; -PHP.Constants.T_INT_CAST = 295; -PHP.Constants.T_DOUBLE_CAST = 294; -PHP.Constants.T_STRING_CAST = 293; -PHP.Constants.T_ARRAY_CAST = 292; -PHP.Constants.T_OBJECT_CAST = 291; -PHP.Constants.T_BOOL_CAST = 290; -PHP.Constants.T_UNSET_CAST = 289; -PHP.Constants.T_NEW = 299; -PHP.Constants.T_CLONE = 298; -PHP.Constants.T_EXIT = 300; -PHP.Constants.T_IF = 301; -PHP.Constants.T_ELSEIF = 302; -PHP.Constants.T_ELSE = 303; -PHP.Constants.T_ENDIF = 304; -PHP.Constants.T_LNUMBER = 305; -PHP.Constants.T_DNUMBER = 306; -PHP.Constants.T_STRING = 307; -PHP.Constants.T_STRING_VARNAME = 308; -PHP.Constants.T_VARIABLE = 309; -PHP.Constants.T_NUM_STRING = 310; -PHP.Constants.T_INLINE_HTML = 311; -PHP.Constants.T_CHARACTER = 312; -PHP.Constants.T_BAD_CHARACTER = 313; -PHP.Constants.T_ENCAPSED_AND_WHITESPACE = 314; -PHP.Constants.T_CONSTANT_ENCAPSED_STRING = 315; -PHP.Constants.T_ECHO = 316; -PHP.Constants.T_DO = 317; -PHP.Constants.T_WHILE = 318; -PHP.Constants.T_ENDWHILE = 319; -PHP.Constants.T_FOR = 320; -PHP.Constants.T_ENDFOR = 321; -PHP.Constants.T_FOREACH = 322; -PHP.Constants.T_ENDFOREACH = 323; -PHP.Constants.T_DECLARE = 324; -PHP.Constants.T_ENDDECLARE = 325; -PHP.Constants.T_AS = 326; -PHP.Constants.T_SWITCH = 327; -PHP.Constants.T_ENDSWITCH = 328; -PHP.Constants.T_CASE = 329; -PHP.Constants.T_DEFAULT = 330; -PHP.Constants.T_BREAK = 331; -PHP.Constants.T_CONTINUE = 332; -PHP.Constants.T_GOTO = 333; -PHP.Constants.T_FUNCTION = 334; -PHP.Constants.T_CONST = 335; -PHP.Constants.T_RETURN = 336; -PHP.Constants.T_TRY = 337; -PHP.Constants.T_CATCH = 338; -PHP.Constants.T_THROW = 339; -PHP.Constants.T_USE = 340; -PHP.Constants.T_GLOBAL = 341; -PHP.Constants.T_STATIC = 347; -PHP.Constants.T_ABSTRACT = 346; -PHP.Constants.T_FINAL = 345; -PHP.Constants.T_PRIVATE = 344; -PHP.Constants.T_PROTECTED = 343; -PHP.Constants.T_PUBLIC = 342; -PHP.Constants.T_VAR = 348; -PHP.Constants.T_UNSET = 349; -PHP.Constants.T_ISSET = 350; -PHP.Constants.T_EMPTY = 351; -PHP.Constants.T_HALT_COMPILER = 352; -PHP.Constants.T_CLASS = 353; -PHP.Constants.T_TRAIT = 382; -PHP.Constants.T_INTERFACE = 354; -PHP.Constants.T_EXTENDS = 355; -PHP.Constants.T_IMPLEMENTS = 356; -PHP.Constants.T_OBJECT_OPERATOR = 357; -PHP.Constants.T_DOUBLE_ARROW = 358; -PHP.Constants.T_LIST = 359; -PHP.Constants.T_ARRAY = 360; -PHP.Constants.T_CLASS_C = 361; -PHP.Constants.T_TRAIT_C = 381; -PHP.Constants.T_METHOD_C = 362; -PHP.Constants.T_FUNC_C = 363; -PHP.Constants.T_LINE = 364; -PHP.Constants.T_FILE = 365; -PHP.Constants.T_COMMENT = 366; -PHP.Constants.T_DOC_COMMENT = 367; -PHP.Constants.T_OPEN_TAG = 368; -PHP.Constants.T_OPEN_TAG_WITH_ECHO = 369; -PHP.Constants.T_CLOSE_TAG = 370; -PHP.Constants.T_WHITESPACE = 371; -PHP.Constants.T_START_HEREDOC = 372; -PHP.Constants.T_END_HEREDOC = 373; -PHP.Constants.T_DOLLAR_OPEN_CURLY_BRACES = 374; -PHP.Constants.T_CURLY_OPEN = 375; -PHP.Constants.T_PAAMAYIM_NEKUDOTAYIM = 376; -PHP.Constants.T_DOUBLE_COLON = 376; -PHP.Constants.T_NAMESPACE = 377; -PHP.Constants.T_NS_C = 378; -PHP.Constants.T_DIR = 379; -PHP.Constants.T_NS_SEPARATOR = 380; -PHP.Lexer = function( src, ini ) { - - - var heredoc, - lineBreaker = function( result ) { - if (result.match(/\n/) !== null) { - var quote = result.substring(0, 1); - result = '[' + result.split(/\n/).join( quote + "," + quote ) + '].join("\\n")'; - - } - - return result; - }, - prev, - - openTag = (ini === undefined || (/^(on|true|1)$/i.test(ini.short_open_tag) ) ? /(\<\?php\s|\<\?|\<\%|\<script language\=('|")?php('|")?\>)/i : /(\<\?php\s|<\?=|\<script language\=('|")?php('|")?\>)/i), - openTagStart = (ini === undefined || (/^(on|true|1)$/i.test(ini.short_open_tag)) ? /^(\<\?php\s|\<\?|\<\%|\<script language\=('|")?php('|")?\>)/i : /^(\<\?php\s|<\?=|\<script language\=('|")?php('|")?\>)/i), - tokens = [ - { - value: PHP.Constants.T_NAMESPACE, - re: /^namespace(?=\s)/i - }, - { - value: PHP.Constants.T_USE, - re: /^use(?=\s)/i - }, - { - value: PHP.Constants.T_ABSTRACT, - re: /^abstract(?=\s)/i - }, - { - value: PHP.Constants.T_IMPLEMENTS, - re: /^implements(?=\s)/i - }, - { - value: PHP.Constants.T_INTERFACE, - re: /^interface(?=\s)/i - }, - { - value: PHP.Constants.T_CONST, - re: /^const(?=\s)/i - }, - { - value: PHP.Constants.T_STATIC, - re: /^static(?=\s)/i - }, - { - value: PHP.Constants.T_FINAL, - re: /^final(?=\s)/i - }, - { - value: PHP.Constants.T_VAR, - re: /^var(?=\s)/i - }, - { - value: PHP.Constants.T_GLOBAL, - re: /^global(?=\s)/i - }, - { - value: PHP.Constants.T_CLONE, - re: /^clone(?=\s)/i - }, - { - value: PHP.Constants.T_THROW, - re: /^throw(?=\s)/i - }, - { - value: PHP.Constants.T_EXTENDS, - re: /^extends(?=\s)/i - }, - { - value: PHP.Constants.T_AND_EQUAL, - re: /^&=/ - }, - { - value: PHP.Constants.T_AS, - re: /^as(?=\s)/i - }, - { - value: PHP.Constants.T_ARRAY_CAST, - re: /^\(array\)/i - }, - { - value: PHP.Constants.T_BOOL_CAST, - re: /^\((bool|boolean)\)/i - }, - { - value: PHP.Constants.T_DOUBLE_CAST, - re: /^\((real|float|double)\)/i - }, - { - value: PHP.Constants.T_INT_CAST, - re: /^\((int|integer)\)/i - }, - { - value: PHP.Constants.T_OBJECT_CAST, - re: /^\(object\)/i - }, - { - value: PHP.Constants.T_STRING_CAST, - re: /^\(string\)/i - }, - { - value: PHP.Constants.T_UNSET_CAST, - re: /^\(unset\)/i - }, - { - value: PHP.Constants.T_TRY, - re: /^try(?=\s*{)/i - }, - { - value: PHP.Constants.T_CATCH, - re: /^catch(?=\s*\()/i - }, - { - value: PHP.Constants.T_INSTANCEOF, - re: /^instanceof(?=\s)/i - }, - { - value: PHP.Constants.T_LOGICAL_OR, - re: /^or(?=\s)/i - }, - { - value: PHP.Constants.T_LOGICAL_AND, - re: /^and(?=\s)/i - }, - { - value: PHP.Constants.T_LOGICAL_XOR, - re: /^xor(?=\s)/i - }, - { - value: PHP.Constants.T_BOOLEAN_AND, - re: /^&&/ - }, - { - value: PHP.Constants.T_BOOLEAN_OR, - re: /^\|\|/ - }, - { - value: PHP.Constants.T_CONTINUE, - re: /^continue(?=\s|;)/i - }, - { - value: PHP.Constants.T_BREAK, - re: /^break(?=\s|;)/i - }, - { - value: PHP.Constants.T_ENDDECLARE, - re: /^enddeclare(?=\s|;)/i - }, - { - value: PHP.Constants.T_ENDFOR, - re: /^endfor(?=\s|;)/i - }, - { - value: PHP.Constants.T_ENDFOREACH, - re: /^endforeach(?=\s|;)/i - }, - { - value: PHP.Constants.T_ENDIF, - re: /^endif(?=\s|;)/i - }, - { - value: PHP.Constants.T_ENDSWITCH, - re: /^endswitch(?=\s|;)/i - }, - { - value: PHP.Constants.T_ENDWHILE, - re: /^endwhile(?=\s|;)/i - }, - { - value: PHP.Constants.T_CASE, - re: /^case(?=\s)/i - }, - { - value: PHP.Constants.T_DEFAULT, - re: /^default(?=\s|:)/i - }, - { - value: PHP.Constants.T_SWITCH, - re: /^switch(?=[ (])/i - }, - { - value: PHP.Constants.T_EXIT, - re: /^(exit|die)(?=[ \(;])/i - }, - { - value: PHP.Constants.T_CLOSE_TAG, - re: /^(\?\>|\%\>|\<\/script\>)\s?\s?/i, - func: function( result ) { - insidePHP = false; - return result; - } - }, - { - value: PHP.Constants.T_DOUBLE_ARROW, - re: /^\=\>/ - }, - { - value: PHP.Constants.T_DOUBLE_COLON, - re: /^\:\:/ - }, - { - value: PHP.Constants.T_METHOD_C, - re: /^__METHOD__/ - }, - { - value: PHP.Constants.T_LINE, - re: /^__LINE__/ - }, - { - value: PHP.Constants.T_FILE, - re: /^__FILE__/ - }, - { - value: PHP.Constants.T_FUNC_C, - re: /^__FUNCTION__/ - }, - { - value: PHP.Constants.T_NS_C, - re: /^__NAMESPACE__/ - }, - { - value: PHP.Constants.T_TRAIT_C, - re: /^__TRAIT__/ - }, - { - value: PHP.Constants.T_DIR, - re: /^__DIR__/ - }, - { - value: PHP.Constants.T_CLASS_C, - re: /^__CLASS__/ - }, - { - value: PHP.Constants.T_INC, - re: /^\+\+/ - }, - { - value: PHP.Constants.T_DEC, - re: /^\-\-/ - }, - { - value: PHP.Constants.T_CONCAT_EQUAL, - re: /^\.\=/ - }, - { - value: PHP.Constants.T_DIV_EQUAL, - re: /^\/\=/ - }, - { - value: PHP.Constants.T_XOR_EQUAL, - re: /^\^\=/ - }, - { - value: PHP.Constants.T_MUL_EQUAL, - re: /^\*\=/ - }, - { - value: PHP.Constants.T_MOD_EQUAL, - re: /^\%\=/ - }, - { - value: PHP.Constants.T_SL_EQUAL, - re: /^<<=/ - }, - { - value: PHP.Constants.T_START_HEREDOC, - re: /^<<<[A-Z_0-9]+\s/i, - func: function( result ){ - heredoc = result.substring(3, result.length - 1); - return result; - } - }, - { - value: PHP.Constants.T_SL, - re: /^<</ - }, - { - value: PHP.Constants.T_IS_SMALLER_OR_EQUAL, - re: /^<=/ - }, - { - value: PHP.Constants.T_SR_EQUAL, - re: /^>>=/ - }, - { - value: PHP.Constants.T_SR, - re: /^>>/ - }, - { - value: PHP.Constants.T_IS_GREATER_OR_EQUAL, - re: /^>=/ - }, - { - value: PHP.Constants.T_OR_EQUAL, - re: /^\|\=/ - }, - { - value: PHP.Constants.T_PLUS_EQUAL, - re: /^\+\=/ - }, - { - value: PHP.Constants.T_MINUS_EQUAL, - re: /^-\=/ - }, - { - value: PHP.Constants.T_OBJECT_OPERATOR, - re: /^\-\>/i - }, - { - value: PHP.Constants.T_CLASS, - re: /^class(?=[\s\{])/i, - afterWhitespace: true - }, - { - value: PHP.Constants.T_TRAIT, - re: /^trait(?=[\s]+[A-Za-z])/i, - }, - { - value: PHP.Constants.T_PUBLIC, - re: /^public(?=[\s])/i - }, - { - value: PHP.Constants.T_PRIVATE, - re: /^private(?=[\s])/i - }, - { - value: PHP.Constants.T_PROTECTED, - re: /^protected(?=[\s])/i - }, - { - value: PHP.Constants.T_ARRAY, - re: /^array(?=\s*?\()/i - }, - { - value: PHP.Constants.T_EMPTY, - re: /^empty(?=[ \(])/i - }, - { - value: PHP.Constants.T_ISSET, - re: /^isset(?=[ \(])/i - }, - { - value: PHP.Constants.T_UNSET, - re: /^unset(?=[ \(])/i - }, - { - value: PHP.Constants.T_RETURN, - re: /^return(?=[ "'(;])/i - }, - { - value: PHP.Constants.T_FUNCTION, - re: /^function(?=[ "'(;])/i - }, - { - value: PHP.Constants.T_ECHO, - re: /^echo(?=[ "'(;])/i - }, - { - value: PHP.Constants.T_LIST, - re: /^list(?=\s*?\()/i - }, - { - value: PHP.Constants.T_PRINT, - re: /^print(?=[ "'(;])/i - }, - { - value: PHP.Constants.T_INCLUDE, - re: /^include(?=[ "'(;])/i - }, - { - value: PHP.Constants.T_INCLUDE_ONCE, - re: /^include_once(?=[ "'(;])/i - }, - { - value: PHP.Constants.T_REQUIRE, - re: /^require(?=[ "'(;])/i - }, - { - value: PHP.Constants.T_REQUIRE_ONCE, - re: /^require_once(?=[ "'(;])/i - }, - { - value: PHP.Constants.T_NEW, - re: /^new(?=[ ])/i - }, - { - value: PHP.Constants.T_COMMENT, - re: /^\/\*([\S\s]*?)(?:\*\/|$)/ - }, - { - value: PHP.Constants.T_COMMENT, - re: /^\/\/.*(\s)?/ - }, - { - value: PHP.Constants.T_COMMENT, - re: /^\#.*(\s)?/ - }, - { - value: PHP.Constants.T_ELSEIF, - re: /^elseif(?=[\s(])/i - }, - { - value: PHP.Constants.T_GOTO, - re: /^goto(?=[\s(])/i - }, - { - value: PHP.Constants.T_ELSE, - re: /^else(?=[\s{:])/i - }, - { - value: PHP.Constants.T_IF, - re: /^if(?=[\s(])/i - }, - { - value: PHP.Constants.T_DO, - re: /^do(?=[ {])/i - }, - { - value: PHP.Constants.T_WHILE, - re: /^while(?=[ (])/i - }, - { - value: PHP.Constants.T_FOREACH, - re: /^foreach(?=[ (])/i - }, - { - value: PHP.Constants.T_ISSET, - re: /^isset(?=[ (])/i - }, - { - value: PHP.Constants.T_IS_IDENTICAL, - re: /^===/ - }, - { - value: PHP.Constants.T_IS_EQUAL, - re: /^==/ - }, - { - value: PHP.Constants.T_IS_NOT_IDENTICAL, - re: /^\!==/ - }, - { - value: PHP.Constants.T_IS_NOT_EQUAL, - re: /^(\!=|\<\>)/ - }, - { - value: PHP.Constants.T_FOR, - re: /^for(?=[ (])/i - }, - - { - value: PHP.Constants.T_DNUMBER, - re: /^[0-9]*\.[0-9]+([eE][-]?[0-9]*)?/ - - }, - { - value: PHP.Constants.T_LNUMBER, - re: /^(0x[0-9A-F]+|[0-9]+)/i - }, - { - value: PHP.Constants.T_OPEN_TAG_WITH_ECHO, - re: /^(\<\?=|\<\%=)/i - }, - { - value: PHP.Constants.T_OPEN_TAG, - re: openTagStart - }, - { - value: PHP.Constants.T_VARIABLE, - re: /^\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/ - }, - { - value: PHP.Constants.T_WHITESPACE, - re: /^\s+/ - }, - { - value: PHP.Constants.T_CONSTANT_ENCAPSED_STRING, - re: /^("(?:[^"\\]|\\[\s\S])*"|'(?:[^'\\]|\\[\s\S])*')/, - func: function( result, token ) { - - var curlyOpen = 0, - len, - bracketOpen = 0; - - if (result.substring( 0,1 ) === "'") { - return result; - } - - var match = result.match( /(?:[^\\]|\\.)*[^\\]\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/g ); - if ( match !== null ) { - - while( result.length > 0 ) { - len = result.length; - match = result.match( /^[\[\]\;\:\?\(\)\!\.\,\>\<\=\+\-\/\*\|\&\@\^\%\"\'\{\}]/ ); - - if ( match !== null ) { - - results.push( match[ 0 ] ); - result = result.substring( 1 ); - - if ( curlyOpen > 0 && match[ 0 ] === "}") { - curlyOpen--; - } - - if ( match[ 0 ] === "[" ) { - bracketOpen++; - } - - if ( match[ 0 ] === "]" ) { - bracketOpen--; - } - - } - - match = result.match(/^\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/); - - - - if ( match !== null ) { - - results.push([ - parseInt(PHP.Constants.T_VARIABLE, 10), - match[ 0 ], - line - ]); - - result = result.substring( match[ 0 ].length ); - - match = result.match(/^(\-\>)([a-zA-Z0-9_\x7f-\xff]*)/); - - if ( match !== null ) { - - results.push([ - parseInt(PHP.Constants.T_OBJECT_OPERATOR, 10), - match[ 1 ], - line - ]); - results.push([ - parseInt(PHP.Constants.T_STRING, 10), - match[ 2 ], - line - ]); - result = result.substring( match[ 0 ].length ); - } - - - if ( result.match( /^\[/g ) !== null ) { - continue; - } - } - - var re; - if ( curlyOpen > 0) { - re = /^([^\\\$"{}\]]|\\.)+/g; - } else { - re = /^([^\\\$"{]|\\.|{[^\$])+/g; - } - - while(( match = result.match( re )) !== null ) { - - - if (result.length === 1) { - throw new Error(match); - } - - - - results.push([ - parseInt(( curlyOpen > 0 ) ? PHP.Constants.T_CONSTANT_ENCAPSED_STRING : PHP.Constants.T_ENCAPSED_AND_WHITESPACE, 10), - match[ 0 ].replace(/\n/g,"\\n").replace(/\r/g,""), - line - ]); - - line += match[ 0 ].split('\n').length - 1; - - result = result.substring( match[ 0 ].length ); - - } - - if( result.match(/^{\$/) !== null ) { - - results.push([ - parseInt(PHP.Constants.T_CURLY_OPEN, 10), - "{", - line - ]); - result = result.substring( 1 ); - curlyOpen++; - } - - if (len === result.length) { - if ((match = result.match( /^(([^\\]|\\.)*?[^\\]\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)/g )) !== null) { - return; - } - } - - } - - return undefined; - - } else { - result = result.replace(/\n/g,"\\n").replace(/\r/g,""); - } - return result; - } - }, - { - value: PHP.Constants.T_NS_SEPARATOR, - re: /^\\(?=[a-zA-Z_])/ - }, - { - value: PHP.Constants.T_STRING, - re: /^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/ - }, - { - value: -1, - re: /^[\[\]\;\:\?\(\)\!\.\,\>\<\=\+\-\/\*\|\&\{\}\@\^\%\"\'\$\~]/ - }]; - - - - - - var results = [], - line = 1, - insidePHP = false, - cancel = true; - - if ( src === null ) { - return results; - } - - if ( typeof src !== "string" ) { - src = src.toString(); - } - - - - while (src.length > 0 && cancel === true) { - - if ( insidePHP === true ) { - - if ( heredoc !== undefined ) { - - var regexp = new RegExp('([\\S\\s]*)(\\r\\n|\\n|\\r)(' + heredoc + ')(;|\\r\\n|\\n)',"i"); - - - - var result = src.match( regexp ); - if ( result !== null ) { - - results.push([ - parseInt(PHP.Constants.T_ENCAPSED_AND_WHITESPACE, 10), - result[ 1 ].replace(/^\n/g,"").replace(/\\\$/g,"$") + "\n", - line - ]); - line += result[ 1 ].split('\n').length; - results.push([ - parseInt(PHP.Constants.T_END_HEREDOC, 10), - result[ 3 ], - line - ]); - - src = src.substring( result[1].length + result[2].length + result[3].length ); - heredoc = undefined; - } - - if (result === null) { - throw Error("sup"); - } - - - } else { - cancel = tokens.some(function( token ){ - if ( token.afterWhitespace === true ) { - var last = results[ results.length - 1 ]; - if ( !Array.isArray( last ) || (last[ 0 ] !== PHP.Constants.T_WHITESPACE && last[ 0 ] !== PHP.Constants.T_OPEN_TAG && last[ 0 ] !== PHP.Constants.T_COMMENT)) { - return false; - } - } - var result = src.match( token.re ); - - if ( result !== null ) { - if ( token.value !== -1) { - var resultString = result[ 0 ]; - - - - if (token.func !== undefined ) { - resultString = token.func( resultString, token ); - } - if (resultString !== undefined ) { - - results.push([ - parseInt(token.value, 10), - resultString, - line - ]); - line += resultString.split('\n').length - 1; - } - - } else { - results.push( result[ 0 ] ); - } - - src = src.substring(result[ 0 ].length); - - return true; - } - return false; - - - }); - } - - } else { - - var result = openTag.exec( src ); - - - if ( result !== null ) { - if ( result.index > 0 ) { - var resultString = src.substring(0, result.index); - results.push ([ - parseInt(PHP.Constants.T_INLINE_HTML, 10), - resultString, - line - ]); - - line += resultString.split('\n').length - 1; - - src = src.substring( result.index ); - } - - insidePHP = true; - } else { - - results.push ([ - parseInt(PHP.Constants.T_INLINE_HTML, 10), - src.replace(/^\n/, ""), - line - ]); - return results; - } - - } - - - - } - - - - return results; - - - - }; - - -PHP.Parser = function ( preprocessedTokens, eval ) { - - var yybase = this.yybase, - yydefault = this.yydefault, - yycheck = this.yycheck, - yyaction = this.yyaction, - yylen = this.yylen, - yygbase = this.yygbase, - yygcheck = this.yygcheck, - yyp = this.yyp, - yygoto = this.yygoto, - yylhs = this.yylhs, - terminals = this.terminals, - translate = this.translate, - yygdefault = this.yygdefault; - - - this.pos = -1; - this.line = 1; - - this.tokenMap = this.createTokenMap( ); - - this.dropTokens = {}; - this.dropTokens[ PHP.Constants.T_WHITESPACE ] = 1; - this.dropTokens[ PHP.Constants.T_OPEN_TAG ] = 1; - var tokens = []; - preprocessedTokens.forEach( function( token, index ) { - if ( typeof token === "object" && token[ 0 ] === PHP.Constants.T_OPEN_TAG_WITH_ECHO) { - tokens.push([ - PHP.Constants.T_OPEN_TAG, - token[ 1 ], - token[ 2 ] - ]); - tokens.push([ - PHP.Constants.T_ECHO, - token[ 1 ], - token[ 2 ] - ]); - } else { - tokens.push( token ); - } - }); - this.tokens = tokens; - var tokenId = this.TOKEN_NONE; - this.startAttributes = { - 'startLine': 1 - }; - - this.endAttributes = {}; - var attributeStack = [ this.startAttributes ]; - var state = 0; - var stateStack = [ state ]; - this.yyastk = []; - this.stackPos = 0; - - var yyn; - - var origTokenId; - - - for (;;) { - - if ( yybase[ state ] === 0 ) { - yyn = yydefault[ state ]; - } else { - if (tokenId === this.TOKEN_NONE ) { - origTokenId = this.getNextToken( ); - tokenId = (origTokenId >= 0 && origTokenId < this.TOKEN_MAP_SIZE) ? translate[ origTokenId ] : this.TOKEN_INVALID; - - attributeStack[ this.stackPos ] = this.startAttributes; - } - - if (((yyn = yybase[ state ] + tokenId) >= 0 - && yyn < this.YYLAST && yycheck[ yyn ] === tokenId - || (state < this.YY2TBLSTATE - && (yyn = yybase[state + this.YYNLSTATES] + tokenId) >= 0 - && yyn < this.YYLAST - && yycheck[ yyn ] === tokenId)) - && (yyn = yyaction[ yyn ]) !== this.YYDEFAULT ) { - if (yyn > 0) { - ++this.stackPos; - - stateStack[ this.stackPos ] = state = yyn; - this.yyastk[ this.stackPos ] = this.tokenValue; - attributeStack[ this.stackPos ] = this.startAttributes; - tokenId = this.TOKEN_NONE; - - if (yyn < this.YYNLSTATES) - continue; - yyn -= this.YYNLSTATES; - } else { - yyn = -yyn; - } - } else { - yyn = yydefault[ state ]; - } - } - - for (;;) { - - if ( yyn === 0 ) { - return this.yyval; - } else if (yyn !== this.YYUNEXPECTED ) { - for (var attr in this.endAttributes) { - attributeStack[ this.stackPos - yylen[ yyn ] ][ attr ] = this.endAttributes[ attr ]; - } - try { - this['yyn' + yyn](attributeStack[ this.stackPos - yylen[ yyn ] ]); - } catch (e) { - throw e; - } - this.stackPos -= yylen[ yyn ]; - yyn = yylhs[ yyn ]; - if ((yyp = yygbase[ yyn ] + stateStack[ this.stackPos ]) >= 0 - && yyp < this.YYGLAST - && yygcheck[ yyp ] === yyn) { - state = yygoto[ yyp ]; - } else { - state = yygdefault[ yyn ]; - } - - ++this.stackPos; - - stateStack[ this.stackPos ] = state; - this.yyastk[ this.stackPos ] = this.yyval; - attributeStack[ this.stackPos ] = this.startAttributes; - } else { - if (eval !== true) { - - var expected = []; - - for (var i = 0; i < this.TOKEN_MAP_SIZE; ++i) { - if ((yyn = yybase[ state ] + i) >= 0 && yyn < this.YYLAST && yycheck[ yyn ] == i - || state < this.YY2TBLSTATE - && (yyn = yybase[ state + this.YYNLSTATES] + i) - && yyn < this.YYLAST && yycheck[ yyn ] == i - ) { - if (yyaction[ yyn ] != this.YYUNEXPECTED) { - if (expected.length == 4) { - expected = []; - break; - } - - expected.push( this.terminals[ i ] ); - } - } - } - - var expectedString = ''; - if (expected.length) { - expectedString = ', expecting ' + expected.join(' or '); - } - throw new PHP.ParseError('syntax error, unexpected ' + terminals[ tokenId ] + expectedString, this.startAttributes['startLine']); - } else { - return this.startAttributes['startLine']; - } - - } - - if (state < this.YYNLSTATES) - break; - yyn = state - this.YYNLSTATES; - } - } -}; - -PHP.ParseError = function( msg, line ) { - this.message = msg; - this.line = line; -}; - -PHP.Parser.prototype.MODIFIER_PUBLIC = 1; -PHP.Parser.prototype.MODIFIER_PROTECTED = 2; -PHP.Parser.prototype.MODIFIER_PRIVATE = 4; -PHP.Parser.prototype.MODIFIER_STATIC = 8; -PHP.Parser.prototype.MODIFIER_ABSTRACT = 16; -PHP.Parser.prototype.MODIFIER_FINAL = 32; - -PHP.Parser.prototype.getNextToken = function( ) { - - this.startAttributes = {}; - this.endAttributes = {}; - - var token, - tmp; - - while (this.tokens[++this.pos] !== undefined) { - token = this.tokens[this.pos]; - - if (typeof token === "string") { - this.startAttributes['startLine'] = this.line; - this.endAttributes['endLine'] = this.line; - if ('b"' === token) { - this.tokenValue = 'b"'; - return '"'.charCodeAt(0); - } else { - this.tokenValue = token; - return token.charCodeAt(0); - } - } else { - - - - this.line += ((tmp = token[ 1 ].match(/\n/g)) === null) ? 0 : tmp.length; - - if (PHP.Constants.T_COMMENT === token[0]) { - - if (!Array.isArray(this.startAttributes['comments'])) { - this.startAttributes['comments'] = []; - } - - this.startAttributes['comments'].push( { - type: "comment", - comment: token[1], - line: token[2] - }); - - } else if (PHP.Constants.T_DOC_COMMENT === token[0]) { - this.startAttributes['comments'].push( new PHPParser_Comment_Doc(token[1], token[2]) ); - } else if (this.dropTokens[token[0]] === undefined) { - this.tokenValue = token[1]; - this.startAttributes['startLine'] = token[2]; - this.endAttributes['endLine'] = this.line; - - return this.tokenMap[token[0]]; - } - } - } - - this.startAttributes['startLine'] = this.line; - return 0; -}; - -PHP.Parser.prototype.tokenName = function( token ) { - var constants = ["T_INCLUDE","T_INCLUDE_ONCE","T_EVAL","T_REQUIRE","T_REQUIRE_ONCE","T_LOGICAL_OR","T_LOGICAL_XOR","T_LOGICAL_AND","T_PRINT","T_PLUS_EQUAL","T_MINUS_EQUAL","T_MUL_EQUAL","T_DIV_EQUAL","T_CONCAT_EQUAL","T_MOD_EQUAL","T_AND_EQUAL","T_OR_EQUAL","T_XOR_EQUAL","T_SL_EQUAL","T_SR_EQUAL","T_BOOLEAN_OR","T_BOOLEAN_AND","T_IS_EQUAL","T_IS_NOT_EQUAL","T_IS_IDENTICAL","T_IS_NOT_IDENTICAL","T_IS_SMALLER_OR_EQUAL","T_IS_GREATER_OR_EQUAL","T_SL","T_SR","T_INSTANCEOF","T_INC","T_DEC","T_INT_CAST","T_DOUBLE_CAST","T_STRING_CAST","T_ARRAY_CAST","T_OBJECT_CAST","T_BOOL_CAST","T_UNSET_CAST","T_NEW","T_CLONE","T_EXIT","T_IF","T_ELSEIF","T_ELSE","T_ENDIF","T_LNUMBER","T_DNUMBER","T_STRING","T_STRING_VARNAME","T_VARIABLE","T_NUM_STRING","T_INLINE_HTML","T_CHARACTER","T_BAD_CHARACTER","T_ENCAPSED_AND_WHITESPACE","T_CONSTANT_ENCAPSED_STRING","T_ECHO","T_DO","T_WHILE","T_ENDWHILE","T_FOR","T_ENDFOR","T_FOREACH","T_ENDFOREACH","T_DECLARE","T_ENDDECLARE","T_AS","T_SWITCH","T_ENDSWITCH","T_CASE","T_DEFAULT","T_BREAK","T_CONTINUE","T_GOTO","T_FUNCTION","T_CONST","T_RETURN","T_TRY","T_CATCH","T_THROW","T_USE","T_INSTEADOF","T_GLOBAL","T_STATIC","T_ABSTRACT","T_FINAL","T_PRIVATE","T_PROTECTED","T_PUBLIC","T_VAR","T_UNSET","T_ISSET","T_EMPTY","T_HALT_COMPILER","T_CLASS","T_TRAIT","T_INTERFACE","T_EXTENDS","T_IMPLEMENTS","T_OBJECT_OPERATOR","T_DOUBLE_ARROW","T_LIST","T_ARRAY","T_CALLABLE","T_CLASS_C","T_TRAIT_C","T_METHOD_C","T_FUNC_C","T_LINE","T_FILE","T_COMMENT","T_DOC_COMMENT","T_OPEN_TAG","T_OPEN_TAG_WITH_ECHO","T_CLOSE_TAG","T_WHITESPACE","T_START_HEREDOC","T_END_HEREDOC","T_DOLLAR_OPEN_CURLY_BRACES","T_CURLY_OPEN","T_PAAMAYIM_NEKUDOTAYIM","T_DOUBLE_COLON","T_NAMESPACE","T_NS_C","T_DIR","T_NS_SEPARATOR"]; - var current = "UNKNOWN"; - constants.some(function( constant ) { - if (PHP.Constants[ constant ] === token) { - current = constant; - return true; - } else { - return false; - } - }); - - return current; -}; - -PHP.Parser.prototype.createTokenMap = function() { - var tokenMap = {}, - name, - i; - var T_DOUBLE_COLON = PHP.Constants.T_PAAMAYIM_NEKUDOTAYIM; - for ( i = 256; i < 1000; ++i ) { - if ( T_DOUBLE_COLON === i ) { - tokenMap[ i ] = this.T_PAAMAYIM_NEKUDOTAYIM; - } else if( PHP.Constants.T_OPEN_TAG_WITH_ECHO === i ) { - tokenMap[ i ] = PHP.Constants.T_ECHO; - } else if( PHP.Constants.T_CLOSE_TAG === i ) { - tokenMap[ i ] = 59; - } else if ( 'UNKNOWN' !== (name = this.tokenName( i ) ) ) { - tokenMap[ i ] = this[name]; - } - } - return tokenMap; -}; - -var yynStandard = function () { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.MakeArray = function( arr ) { - return Array.isArray( arr ) ? arr : [ arr ]; -} - - -PHP.Parser.prototype.parseString = function( str ) { - var bLength = 0; - if ('b' === str[0]) { - bLength = 1; - } - - if ('\'' === str[ bLength ]) { - str = str.replace( - ['\\\\', '\\\''], - [ '\\', '\'']); - } else { - - str = this.parseEscapeSequences( str, '"'); - - } - - return str; - -}; - -PHP.Parser.prototype.parseEscapeSequences = function( str, quote ) { - - - - if (undefined !== quote) { - str = str.replace(new RegExp('\\' + quote, "g"), quote); - } - - var replacements = { - '\\': '\\', - '$': '$', - 'n': "\n", - 'r': "\r", - 't': "\t", - 'f': "\f", - 'v': "\v", - 'e': "\x1B" - }; - - return str.replace( - /~\\\\([\\\\$nrtfve]|[xX][0-9a-fA-F]{1,2}|[0-7]{1,3})~/g, - function ( matches ){ - var str = matches[1]; - - if ( replacements[ str ] !== undefined ) { - return replacements[ str ]; - } else if ('x' === str[ 0 ] || 'X' === str[ 0 ]) { - return chr(hexdec(str)); - } else { - return chr(octdec(str)); - } - } - ); - - return str; -}; - -PHP.Parser.prototype.TOKEN_NONE = -1; -PHP.Parser.prototype.TOKEN_INVALID = 149; - -PHP.Parser.prototype.TOKEN_MAP_SIZE = 384; - -PHP.Parser.prototype.YYLAST = 913; -PHP.Parser.prototype.YY2TBLSTATE = 328; -PHP.Parser.prototype.YYGLAST = 415; -PHP.Parser.prototype.YYNLSTATES = 544; -PHP.Parser.prototype.YYUNEXPECTED = 32767; -PHP.Parser.prototype.YYDEFAULT = -32766; -PHP.Parser.prototype.YYERRTOK = 256; -PHP.Parser.prototype.T_INCLUDE = 257; -PHP.Parser.prototype.T_INCLUDE_ONCE = 258; -PHP.Parser.prototype.T_EVAL = 259; -PHP.Parser.prototype.T_REQUIRE = 260; -PHP.Parser.prototype.T_REQUIRE_ONCE = 261; -PHP.Parser.prototype.T_LOGICAL_OR = 262; -PHP.Parser.prototype.T_LOGICAL_XOR = 263; -PHP.Parser.prototype.T_LOGICAL_AND = 264; -PHP.Parser.prototype.T_PRINT = 265; -PHP.Parser.prototype.T_PLUS_EQUAL = 266; -PHP.Parser.prototype.T_MINUS_EQUAL = 267; -PHP.Parser.prototype.T_MUL_EQUAL = 268; -PHP.Parser.prototype.T_DIV_EQUAL = 269; -PHP.Parser.prototype.T_CONCAT_EQUAL = 270; -PHP.Parser.prototype.T_MOD_EQUAL = 271; -PHP.Parser.prototype.T_AND_EQUAL = 272; -PHP.Parser.prototype.T_OR_EQUAL = 273; -PHP.Parser.prototype.T_XOR_EQUAL = 274; -PHP.Parser.prototype.T_SL_EQUAL = 275; -PHP.Parser.prototype.T_SR_EQUAL = 276; -PHP.Parser.prototype.T_BOOLEAN_OR = 277; -PHP.Parser.prototype.T_BOOLEAN_AND = 278; -PHP.Parser.prototype.T_IS_EQUAL = 279; -PHP.Parser.prototype.T_IS_NOT_EQUAL = 280; -PHP.Parser.prototype.T_IS_IDENTICAL = 281; -PHP.Parser.prototype.T_IS_NOT_IDENTICAL = 282; -PHP.Parser.prototype.T_IS_SMALLER_OR_EQUAL = 283; -PHP.Parser.prototype.T_IS_GREATER_OR_EQUAL = 284; -PHP.Parser.prototype.T_SL = 285; -PHP.Parser.prototype.T_SR = 286; -PHP.Parser.prototype.T_INSTANCEOF = 287; -PHP.Parser.prototype.T_INC = 288; -PHP.Parser.prototype.T_DEC = 289; -PHP.Parser.prototype.T_INT_CAST = 290; -PHP.Parser.prototype.T_DOUBLE_CAST = 291; -PHP.Parser.prototype.T_STRING_CAST = 292; -PHP.Parser.prototype.T_ARRAY_CAST = 293; -PHP.Parser.prototype.T_OBJECT_CAST = 294; -PHP.Parser.prototype.T_BOOL_CAST = 295; -PHP.Parser.prototype.T_UNSET_CAST = 296; -PHP.Parser.prototype.T_NEW = 297; -PHP.Parser.prototype.T_CLONE = 298; -PHP.Parser.prototype.T_EXIT = 299; -PHP.Parser.prototype.T_IF = 300; -PHP.Parser.prototype.T_ELSEIF = 301; -PHP.Parser.prototype.T_ELSE = 302; -PHP.Parser.prototype.T_ENDIF = 303; -PHP.Parser.prototype.T_LNUMBER = 304; -PHP.Parser.prototype.T_DNUMBER = 305; -PHP.Parser.prototype.T_STRING = 306; -PHP.Parser.prototype.T_STRING_VARNAME = 307; -PHP.Parser.prototype.T_VARIABLE = 308; -PHP.Parser.prototype.T_NUM_STRING = 309; -PHP.Parser.prototype.T_INLINE_HTML = 310; -PHP.Parser.prototype.T_CHARACTER = 311; -PHP.Parser.prototype.T_BAD_CHARACTER = 312; -PHP.Parser.prototype.T_ENCAPSED_AND_WHITESPACE = 313; -PHP.Parser.prototype.T_CONSTANT_ENCAPSED_STRING = 314; -PHP.Parser.prototype.T_ECHO = 315; -PHP.Parser.prototype.T_DO = 316; -PHP.Parser.prototype.T_WHILE = 317; -PHP.Parser.prototype.T_ENDWHILE = 318; -PHP.Parser.prototype.T_FOR = 319; -PHP.Parser.prototype.T_ENDFOR = 320; -PHP.Parser.prototype.T_FOREACH = 321; -PHP.Parser.prototype.T_ENDFOREACH = 322; -PHP.Parser.prototype.T_DECLARE = 323; -PHP.Parser.prototype.T_ENDDECLARE = 324; -PHP.Parser.prototype.T_AS = 325; -PHP.Parser.prototype.T_SWITCH = 326; -PHP.Parser.prototype.T_ENDSWITCH = 327; -PHP.Parser.prototype.T_CASE = 328; -PHP.Parser.prototype.T_DEFAULT = 329; -PHP.Parser.prototype.T_BREAK = 330; -PHP.Parser.prototype.T_CONTINUE = 331; -PHP.Parser.prototype.T_GOTO = 332; -PHP.Parser.prototype.T_FUNCTION = 333; -PHP.Parser.prototype.T_CONST = 334; -PHP.Parser.prototype.T_RETURN = 335; -PHP.Parser.prototype.T_TRY = 336; -PHP.Parser.prototype.T_CATCH = 337; -PHP.Parser.prototype.T_THROW = 338; -PHP.Parser.prototype.T_USE = 339; -PHP.Parser.prototype.T_INSTEADOF = 340; -PHP.Parser.prototype.T_GLOBAL = 341; -PHP.Parser.prototype.T_STATIC = 342; -PHP.Parser.prototype.T_ABSTRACT = 343; -PHP.Parser.prototype.T_FINAL = 344; -PHP.Parser.prototype.T_PRIVATE = 345; -PHP.Parser.prototype.T_PROTECTED = 346; -PHP.Parser.prototype.T_PUBLIC = 347; -PHP.Parser.prototype.T_VAR = 348; -PHP.Parser.prototype.T_UNSET = 349; -PHP.Parser.prototype.T_ISSET = 350; -PHP.Parser.prototype.T_EMPTY = 351; -PHP.Parser.prototype.T_HALT_COMPILER = 352; -PHP.Parser.prototype.T_CLASS = 353; -PHP.Parser.prototype.T_TRAIT = 354; -PHP.Parser.prototype.T_INTERFACE = 355; -PHP.Parser.prototype.T_EXTENDS = 356; -PHP.Parser.prototype.T_IMPLEMENTS = 357; -PHP.Parser.prototype.T_OBJECT_OPERATOR = 358; -PHP.Parser.prototype.T_DOUBLE_ARROW = 359; -PHP.Parser.prototype.T_LIST = 360; -PHP.Parser.prototype.T_ARRAY = 361; -PHP.Parser.prototype.T_CALLABLE = 362; -PHP.Parser.prototype.T_CLASS_C = 363; -PHP.Parser.prototype.T_TRAIT_C = 364; -PHP.Parser.prototype.T_METHOD_C = 365; -PHP.Parser.prototype.T_FUNC_C = 366; -PHP.Parser.prototype.T_LINE = 367; -PHP.Parser.prototype.T_FILE = 368; -PHP.Parser.prototype.T_COMMENT = 369; -PHP.Parser.prototype.T_DOC_COMMENT = 370; -PHP.Parser.prototype.T_OPEN_TAG = 371; -PHP.Parser.prototype.T_OPEN_TAG_WITH_ECHO = 372; -PHP.Parser.prototype.T_CLOSE_TAG = 373; -PHP.Parser.prototype.T_WHITESPACE = 374; -PHP.Parser.prototype.T_START_HEREDOC = 375; -PHP.Parser.prototype.T_END_HEREDOC = 376; -PHP.Parser.prototype.T_DOLLAR_OPEN_CURLY_BRACES = 377; -PHP.Parser.prototype.T_CURLY_OPEN = 378; -PHP.Parser.prototype.T_PAAMAYIM_NEKUDOTAYIM = 379; -PHP.Parser.prototype.T_NAMESPACE = 380; -PHP.Parser.prototype.T_NS_C = 381; -PHP.Parser.prototype.T_DIR = 382; -PHP.Parser.prototype.T_NS_SEPARATOR = 383; -PHP.Parser.prototype.terminals = [ - "$EOF", - "error", - "T_INCLUDE", - "T_INCLUDE_ONCE", - "T_EVAL", - "T_REQUIRE", - "T_REQUIRE_ONCE", - "','", - "T_LOGICAL_OR", - "T_LOGICAL_XOR", - "T_LOGICAL_AND", - "T_PRINT", - "'='", - "T_PLUS_EQUAL", - "T_MINUS_EQUAL", - "T_MUL_EQUAL", - "T_DIV_EQUAL", - "T_CONCAT_EQUAL", - "T_MOD_EQUAL", - "T_AND_EQUAL", - "T_OR_EQUAL", - "T_XOR_EQUAL", - "T_SL_EQUAL", - "T_SR_EQUAL", - "'?'", - "':'", - "T_BOOLEAN_OR", - "T_BOOLEAN_AND", - "'|'", - "'^'", - "'&'", - "T_IS_EQUAL", - "T_IS_NOT_EQUAL", - "T_IS_IDENTICAL", - "T_IS_NOT_IDENTICAL", - "'<'", - "T_IS_SMALLER_OR_EQUAL", - "'>'", - "T_IS_GREATER_OR_EQUAL", - "T_SL", - "T_SR", - "'+'", - "'-'", - "'.'", - "'*'", - "'/'", - "'%'", - "'!'", - "T_INSTANCEOF", - "'~'", - "T_INC", - "T_DEC", - "T_INT_CAST", - "T_DOUBLE_CAST", - "T_STRING_CAST", - "T_ARRAY_CAST", - "T_OBJECT_CAST", - "T_BOOL_CAST", - "T_UNSET_CAST", - "'@'", - "'['", - "T_NEW", - "T_CLONE", - "T_EXIT", - "T_IF", - "T_ELSEIF", - "T_ELSE", - "T_ENDIF", - "T_LNUMBER", - "T_DNUMBER", - "T_STRING", - "T_STRING_VARNAME", - "T_VARIABLE", - "T_NUM_STRING", - "T_INLINE_HTML", - "T_ENCAPSED_AND_WHITESPACE", - "T_CONSTANT_ENCAPSED_STRING", - "T_ECHO", - "T_DO", - "T_WHILE", - "T_ENDWHILE", - "T_FOR", - "T_ENDFOR", - "T_FOREACH", - "T_ENDFOREACH", - "T_DECLARE", - "T_ENDDECLARE", - "T_AS", - "T_SWITCH", - "T_ENDSWITCH", - "T_CASE", - "T_DEFAULT", - "T_BREAK", - "T_CONTINUE", - "T_GOTO", - "T_FUNCTION", - "T_CONST", - "T_RETURN", - "T_TRY", - "T_CATCH", - "T_THROW", - "T_USE", - "T_INSTEADOF", - "T_GLOBAL", - "T_STATIC", - "T_ABSTRACT", - "T_FINAL", - "T_PRIVATE", - "T_PROTECTED", - "T_PUBLIC", - "T_VAR", - "T_UNSET", - "T_ISSET", - "T_EMPTY", - "T_HALT_COMPILER", - "T_CLASS", - "T_TRAIT", - "T_INTERFACE", - "T_EXTENDS", - "T_IMPLEMENTS", - "T_OBJECT_OPERATOR", - "T_DOUBLE_ARROW", - "T_LIST", - "T_ARRAY", - "T_CALLABLE", - "T_CLASS_C", - "T_TRAIT_C", - "T_METHOD_C", - "T_FUNC_C", - "T_LINE", - "T_FILE", - "T_START_HEREDOC", - "T_END_HEREDOC", - "T_DOLLAR_OPEN_CURLY_BRACES", - "T_CURLY_OPEN", - "T_PAAMAYIM_NEKUDOTAYIM", - "T_NAMESPACE", - "T_NS_C", - "T_DIR", - "T_NS_SEPARATOR", - "';'", - "'{'", - "'}'", - "'('", - "')'", - "'$'", - "']'", - "'`'", - "'\"'" - , "???" -]; -PHP.Parser.prototype.translate = [ - 0, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 47, 148, 149, 145, 46, 30, 149, - 143, 144, 44, 41, 7, 42, 43, 45, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 25, 140, - 35, 12, 37, 24, 59, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 60, 149, 146, 29, 149, 147, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 141, 28, 142, 49, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 1, 2, 3, 4, - 5, 6, 8, 9, 10, 11, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 26, 27, 31, - 32, 33, 34, 36, 38, 39, 40, 48, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 149, 149, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 149, - 149, 149, 149, 149, 149, 131, 132, 133, 134, 135, - 136, 137, 138, 139 -]; - -PHP.Parser.prototype.yyaction = [ - 61, 62, 363, 63, 64,-32766,-32766,-32766, 509, 65, - 708, 709, 710, 707, 706, 705,-32766,-32766,-32766,-32766, - -32766,-32766, 132,-32766,-32766,-32766,-32766,-32766,-32767,-32767, - -32767,-32767,-32766, 335,-32766,-32766,-32766,-32766,-32766, 66, - 67, 351, 663, 664, 40, 68, 548, 69, 232, 233, - 70, 71, 72, 73, 74, 75, 76, 77, 30, 246, - 78, 336, 364, -112, 0, 469, 833, 834, 365, 641, - 890, 436, 590, 41, 835, 53, 27, 366, 294, 367, - 687, 368, 921, 369, 923, 922, 370,-32766,-32766,-32766, - 42, 43, 371, 339, 126, 44, 372, 337, 79, 297, - 349, 292, 293,-32766, 918,-32766,-32766, 373, 374, 375, - 376, 377, 391, 199, 361, 338, 573, 613, 378, 379, - 380, 381, 845, 839, 840, 841, 842, 836, 837, 253, - -32766, 87, 88, 89, 391, 843, 838, 338, 597, 519, - 128, 80, 129, 273, 332, 257, 261, 47, 673, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 799, 247, 884, 108, 109, 110, 226, 247, 21,-32766, - 310,-32766,-32766,-32766, 642, 548,-32766,-32766,-32766,-32766, - 56, 353,-32766,-32766,-32766, 55,-32766,-32766,-32766,-32766, - -32766, 58,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766, - -32766, 557,-32766,-32766, 518,-32766, 548, 890,-32766, 390, - -32766, 228, 252,-32766,-32766,-32766,-32766,-32766, 275,-32766, - 234,-32766, 587, 588,-32766,-32766,-32766,-32766,-32766,-32766, - -32766, 46, 236,-32766,-32766, 281,-32766, 682, 348,-32766, - 390,-32766, 346, 333, 521,-32766,-32766,-32766, 271, 911, - 262, 237, 446, 911,-32766, 894, 59, 700, 358, 135, - 548, 123, 538, 35,-32766, 333, 122,-32766,-32766,-32766, - 271,-32766, 124,-32766, 692,-32766,-32766,-32766,-32766, 700, - 273, 22,-32766,-32766,-32766,-32766, 239,-32766,-32766, 612, - -32766, 548, 134,-32766, 390,-32766, 462, 354,-32766,-32766, - -32766,-32766,-32766, 227,-32766, 238,-32766, 845, 542,-32766, - 856, 611, 200,-32766,-32766,-32766, 259, 280,-32766,-32766, - 201,-32766, 855, 129,-32766, 390, 130, 202, 333, 206, - -32766,-32766,-32766, 271,-32766,-32766,-32766, 125, 601,-32766, - 136, 299, 700, 489, 28, 548, 105, 106, 107,-32766, - 498, 499,-32766,-32766,-32766, 207,-32766, 133,-32766, 525, - -32766,-32766,-32766,-32766, 663, 664, 527,-32766,-32766,-32766, - -32766, 528,-32766,-32766, 610,-32766, 548, 427,-32766, 390, - -32766, 532, 539,-32766,-32766,-32766,-32766,-32766, 240,-32766, - 247,-32766, 697, 543,-32766, 554, 523, 608,-32766,-32766, - -32766, 686, 535,-32766,-32766, 54,-32766, 57, 60,-32766, - 390, 246, -155, 278, 345,-32766,-32766,-32766, 506, 347, - -152, 471, 402, 403,-32766, 405, 404, 272, 493, 416, - 548, 318, 417, 505,-32766, 517, 548,-32766,-32766,-32766, - 549,-32766, 562,-32766, 916,-32766,-32766,-32766,-32766, 564, - 826, 848,-32766,-32766,-32766,-32766, 694,-32766,-32766, 485, - -32766, 548, 487,-32766, 390,-32766, 504, 802,-32766,-32766, - -32766,-32766,-32766, 279,-32766, 911,-32766, 502, 492,-32766, - 413, 483, 269,-32766,-32766,-32766, 243, 337,-32766,-32766, - 418,-32766, 454, 229,-32766, 390, 274, 373, 374, 344, - -32766,-32766,-32766, 360, 614,-32766, 573, 613, 378, 379, - -274, 548, 615, -332, 844,-32766, 258, 51,-32766,-32766, - -32766, 270,-32766, 346,-32766, 52,-32766, 260, 0,-32766, - -333,-32766,-32766,-32766,-32766,-32766,-32766, 205,-32766,-32766, - 49,-32766, 548, 424,-32766, 390,-32766, -266, 264,-32766, - -32766,-32766,-32766,-32766, 409,-32766, 343,-32766, 265, 312, - -32766, 470, 513, -275,-32766,-32766,-32766, 920, 337,-32766, - -32766, 530,-32766, 531, 600,-32766, 390, 592, 373, 374, - 578, 581,-32766,-32766, 644, 629,-32766, 573, 613, 378, - 379, 635, 548, 636, 576, 627,-32766, 625, 693,-32766, - -32766,-32766, 691,-32766, 591,-32766, 582,-32766, 203, 204, - -32766, 584, 583,-32766,-32766,-32766,-32766, 586, 599,-32766, - -32766, 589,-32766, 690, 558,-32766, 390, 197, 683, 919, - 86, 520, 522,-32766, 524, 833, 834, 529, 533,-32766, - 534, 537, 541, 835, 48, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 127, 31, 633, 337, - 330, 634, 585,-32766, 32, 291, 337, 330, 478, 373, - 374, 917, 291, 891, 889, 875, 373, 374, 553, 613, - 378, 379, 737, 739, 887, 553, 613, 378, 379, 824, - 451, 675, 839, 840, 841, 842, 836, 837, 320, 895, - 277, 885, 23, 33, 843, 838, 556, 277, 337, 330, - -32766, 34,-32766, 555, 291, 36, 37, 38, 373, 374, - 39, 45, 50, 81, 82, 83, 84, 553, 613, 378, - 379,-32767,-32767,-32767,-32767, 103, 104, 105, 106, 107, - 337, 85, 131, 137, 337, 138, 198, 224, 225, 277, - 373, 374, -332, 230, 373, 374, 24, 337, 231, 573, - 613, 378, 379, 573, 613, 378, 379, 373, 374, 235, - 248, 249, 250, 337, 251, 0, 573, 613, 378, 379, - 276, 329, 331, 373, 374,-32766, 337, 574, 490, 792, - 337, 609, 573, 613, 378, 379, 373, 374, 25, 300, - 373, 374, 319, 337, 795, 573, 613, 378, 379, 573, - 613, 378, 379, 373, 374, 516, 355, 359, 445, 482, - 796, 507, 573, 613, 378, 379, 508, 548, 337, 890, - 775, 791, 337, 604, 803, 808, 806, 698, 373, 374, - 888, 807, 373, 374,-32766,-32766,-32766, 573, 613, 378, - 379, 573, 613, 378, 379, 873, 832, 804, 872, 851, - -32766, 809,-32766,-32766,-32766,-32766, 805, 20, 26, 29, - 298, 480, 515, 770, 778, 827, 457, 0, 900, 455, - 774, 0, 0, 0, 874, 870, 886, 823, 915, 852, - 869, 488, 0, 391, 793, 0, 338, 0, 0, 0, - 340, 0, 273 -]; - -PHP.Parser.prototype.yycheck = [ - 2, 3, 4, 5, 6, 8, 9, 10, 70, 11, - 104, 105, 106, 107, 108, 109, 8, 9, 10, 8, - 9, 24, 60, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 24, 7, 26, 27, 28, 29, 30, 41, - 42, 7, 123, 124, 7, 47, 70, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 144, 0, 75, 68, 69, 70, 25, - 72, 70, 74, 7, 76, 77, 78, 79, 7, 81, - 142, 83, 70, 85, 72, 73, 88, 8, 9, 10, - 92, 93, 94, 95, 7, 97, 98, 95, 100, 7, - 7, 103, 104, 24, 142, 26, 27, 105, 106, 111, - 112, 113, 136, 7, 7, 139, 114, 115, 116, 117, - 122, 123, 132, 125, 126, 127, 128, 129, 130, 131, - 8, 8, 9, 10, 136, 137, 138, 139, 140, 141, - 25, 143, 141, 145, 142, 147, 148, 24, 72, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 144, 48, 72, 44, 45, 46, 30, 48, 144, 64, - 72, 8, 9, 10, 140, 70, 8, 9, 10, 74, - 60, 25, 77, 78, 79, 60, 81, 24, 83, 26, - 85, 60, 24, 88, 26, 27, 28, 92, 93, 94, - 64, 140, 97, 98, 70, 100, 70, 72, 103, 104, - 74, 145, 7, 77, 78, 79, 111, 81, 7, 83, - 30, 85, 140, 140, 88, 8, 9, 10, 92, 93, - 94, 133, 134, 97, 98, 145, 100, 140, 7, 103, - 104, 24, 139, 96, 141, 140, 141, 111, 101, 75, - 75, 30, 70, 75, 64, 70, 60, 110, 121, 12, - 70, 141, 25, 143, 74, 96, 141, 77, 78, 79, - 101, 81, 141, 83, 140, 85, 140, 141, 88, 110, - 145, 144, 92, 93, 94, 64, 7, 97, 98, 142, - 100, 70, 141, 103, 104, 74, 145, 141, 77, 78, - 79, 111, 81, 7, 83, 30, 85, 132, 25, 88, - 132, 142, 12, 92, 93, 94, 120, 60, 97, 98, - 12, 100, 148, 141, 103, 104, 141, 12, 96, 12, - 140, 141, 111, 101, 8, 9, 10, 141, 25, 64, - 90, 91, 110, 65, 66, 70, 41, 42, 43, 74, - 65, 66, 77, 78, 79, 12, 81, 25, 83, 25, - 85, 140, 141, 88, 123, 124, 25, 92, 93, 94, - 64, 25, 97, 98, 142, 100, 70, 120, 103, 104, - 74, 25, 25, 77, 78, 79, 111, 81, 30, 83, - 48, 85, 140, 141, 88, 140, 141, 30, 92, 93, - 94, 140, 141, 97, 98, 60, 100, 60, 60, 103, - 104, 61, 72, 75, 70, 140, 141, 111, 67, 70, - 87, 99, 70, 70, 64, 70, 72, 102, 89, 70, - 70, 71, 70, 70, 74, 70, 70, 77, 78, 79, - 70, 81, 70, 83, 70, 85, 140, 141, 88, 70, - 144, 70, 92, 93, 94, 64, 70, 97, 98, 72, - 100, 70, 72, 103, 104, 74, 72, 72, 77, 78, - 79, 111, 81, 75, 83, 75, 85, 89, 86, 88, - 79, 101, 118, 92, 93, 94, 87, 95, 97, 98, - 87, 100, 87, 87, 103, 104, 118, 105, 106, 95, - 140, 141, 111, 95, 115, 64, 114, 115, 116, 117, - 135, 70, 115, 120, 132, 74, 120, 140, 77, 78, - 79, 119, 81, 139, 83, 140, 85, 120, -1, 88, - 120, 140, 141, 92, 93, 94, 64, 121, 97, 98, - 121, 100, 70, 122, 103, 104, 74, 135, 135, 77, - 78, 79, 111, 81, 139, 83, 139, 85, 135, 135, - 88, 135, 135, 135, 92, 93, 94, 142, 95, 97, - 98, 140, 100, 140, 140, 103, 104, 140, 105, 106, - 140, 140, 141, 111, 140, 140, 64, 114, 115, 116, - 117, 140, 70, 140, 140, 140, 74, 140, 140, 77, - 78, 79, 140, 81, 140, 83, 140, 85, 41, 42, - 88, 140, 140, 141, 92, 93, 94, 140, 140, 97, - 98, 140, 100, 140, 140, 103, 104, 60, 140, 142, - 141, 141, 141, 111, 141, 68, 69, 141, 141, 72, - 141, 141, 141, 76, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 141, 143, 142, 95, - 96, 142, 140, 141, 143, 101, 95, 96, 142, 105, - 106, 142, 101, 142, 142, 142, 105, 106, 114, 115, - 116, 117, 50, 51, 142, 114, 115, 116, 117, 142, - 123, 142, 125, 126, 127, 128, 129, 130, 131, 142, - 136, 142, 144, 143, 137, 138, 142, 136, 95, 96, - 143, 143, 145, 142, 101, 143, 143, 143, 105, 106, - 143, 143, 143, 143, 143, 143, 143, 114, 115, 116, - 117, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 95, 143, 143, 143, 95, 143, 143, 143, 143, 136, - 105, 106, 120, 143, 105, 106, 144, 95, 143, 114, - 115, 116, 117, 114, 115, 116, 117, 105, 106, 143, - 143, 143, 143, 95, 143, -1, 114, 115, 116, 117, - 143, 143, 143, 105, 106, 143, 95, 142, 80, 146, - 95, 142, 114, 115, 116, 117, 105, 106, 144, 144, - 105, 106, 144, 95, 142, 114, 115, 116, 117, 114, - 115, 116, 117, 105, 106, 82, 144, 144, 144, 144, - 142, 84, 114, 115, 116, 117, 144, 70, 95, 72, - 144, 144, 95, 142, 144, 146, 144, 142, 105, 106, - 146, 144, 105, 106, 8, 9, 10, 114, 115, 116, - 117, 114, 115, 116, 117, 144, 144, 144, 144, 144, - 24, 104, 26, 27, 28, 29, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, -1, 144, 144, - 144, -1, -1, -1, 146, 146, 146, 146, 146, 146, - 146, 146, -1, 136, 147, -1, 139, -1, -1, -1, - 143, -1, 145 -]; - -PHP.Parser.prototype.yybase = [ - 0, 574, 581, 623, 655, 2, 718, 402, 747, 659, - 672, 688, 743, 701, 705, 483, 483, 483, 483, 483, - 351, 356, 366, 366, 367, 366, 344, -2, -2, -2, - 200, 200, 231, 231, 231, 231, 231, 231, 231, 231, - 200, 231, 451, 482, 532, 316, 370, 115, 146, 285, - 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, - 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, - 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, - 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, - 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, - 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, - 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, - 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, - 401, 401, 401, 401, 401, 401, 401, 401, 401, 44, - 474, 429, 476, 481, 487, 488, 739, 740, 741, 734, - 733, 416, 736, 539, 541, 342, 542, 543, 552, 557, - 559, 536, 567, 737, 755, 569, 735, 738, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 122, 11, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 227, 227, 173, 577, 577, 577, - 577, 577, 577, 577, 577, 577, 577, 577, 79, 178, - 846, 8, -3, -3, -3, -3, 642, 706, 706, 706, - 706, 157, 179, 242, 431, 431, 360, 431, 525, 368, - 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, - 767, 767, 350, 375, 315, 315, 652, 652, -81, -81, - -81, -81, 251, 185, 188, 184, -62, 348, 195, 195, - 195, 408, 392, 410, 1, 192, 129, 129, 129, -24, - -24, -24, -24, 499, -24, -24, -24, 113, 108, 108, - 12, 161, 349, 526, 271, 398, 529, 438, 130, 206, - 265, 427, 76, 414, 427, 288, 295, 76, 166, 44, - 262, 422, 141, 491, 372, 494, 413, 71, 92, 93, - 267, 135, 100, 34, 415, 745, 746, 742, -38, 420, - -10, 135, 147, 744, 498, 107, 26, 493, 144, 377, - 363, 369, 332, 363, 400, 377, 588, 377, 376, 377, - 360, 37, 582, 376, 377, 374, 376, 388, 363, 364, - 412, 369, 377, 441, 443, 390, 106, 332, 377, 390, - 377, 400, 64, 590, 591, 323, 592, 589, 593, 649, - 608, 362, 500, 399, 407, 620, 625, 636, 365, 354, - 614, 524, 425, 359, 355, 423, 570, 578, 357, 406, - 414, 394, 352, 403, 531, 433, 403, 653, 434, 385, - 417, 411, 444, 310, 318, 501, 425, 668, 757, 380, - 637, 684, 403, 609, 387, 87, 325, 638, 382, 403, - 639, 403, 696, 503, 615, 403, 697, 384, 435, 425, - 352, 352, 352, 700, 66, 699, 583, 702, 707, 704, - 748, 721, 749, 584, 750, 358, 583, 722, 751, 682, - 215, 613, 422, 436, 389, 447, 221, 257, 752, 403, - 403, 506, 499, 403, 395, 685, 397, 426, 753, 392, - 391, 647, 683, 403, 418, 754, 221, 723, 587, 724, - 450, 568, 507, 648, 509, 327, 725, 353, 497, 610, - 454, 622, 455, 461, 404, 510, 373, 732, 612, 247, - 361, 664, 463, 405, 692, 641, 464, 465, 511, 343, - 437, 335, 409, 396, 665, 293, 467, 468, 472, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -2, -2, -2, -2, -2, - -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, 0, 0, 0, -2, -2, -2, -2, -2, -2, - -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, -2, -2, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 767, 767, 767, 767, 767, 767, 767, 767, 767, - 767, 767, 123, 123, 123, 123, 123, 123, 123, 123, - 0, 129, 129, 129, 129, -94, -94, -94, 767, 767, - 767, 767, 767, 767, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -94, -94, 129, 129, - 767, 767, -24, -24, -24, -24, -24, 108, 108, 108, - -24, 108, 145, 145, 145, 108, 108, 108, 100, 100, - 0, 0, 0, 0, 0, 0, 0, 145, 0, 0, - 0, 376, 0, 0, 0, 145, 260, 260, 221, 260, - 260, 135, 0, 0, 425, 376, 0, 364, 376, 0, - 0, 0, 0, 0, 0, 531, 0, 87, 637, 241, - 425, 0, 0, 0, 0, 0, 0, 0, 425, 289, - 289, 306, 0, 358, 0, 0, 0, 306, 241, 0, - 0, 221 -]; - -PHP.Parser.prototype.yydefault = [ - 3,32767,32767, 1,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767, 104, 96, 110, 95, 106, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 358, 358, 122, 122, 122, 122, 122, 122, 122, 122, - 316,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 173, 173, 173,32767, 348, 348, 348, 348, 348, 348, - 348,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767, 363,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767, 232, 233, - 235, 236, 172, 125, 349, 362, 171, 199, 201, 250, - 200, 177, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 176, 229, 228, 197, 313, 313, 316, - 32767,32767,32767,32767,32767,32767,32767,32767, 198, 202, - 204, 203, 219, 220, 217, 218, 175, 221, 222, 223, - 224, 157, 157, 157, 357, 357,32767, 357,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767, 158,32767, 211, 212, 276, 276, 117, 117, - 117, 117, 117,32767,32767,32767,32767, 284,32767,32767, - 32767,32767,32767, 286,32767,32767, 206, 207, 205,32767, - 32767,32767,32767,32767,32767,32767,32767,32767, 285,32767, - 32767,32767,32767,32767,32767,32767,32767, 334, 321, 272, - 32767,32767,32767, 265,32767, 107, 109,32767,32767,32767, - 32767, 302, 339,32767,32767,32767, 17,32767,32767,32767, - 370, 334,32767,32767, 19,32767,32767,32767,32767, 227, - 32767, 338, 332,32767,32767,32767,32767,32767,32767, 63, - 32767,32767,32767,32767,32767, 63, 281, 63,32767, 63, - 32767, 315, 287,32767, 63, 74,32767, 72,32767,32767, - 76,32767, 63, 93, 93, 254, 315, 54, 63, 254, - 63,32767,32767,32767,32767, 4,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767, 267,32767, 323,32767, 337, 336, 324,32767, - 265,32767, 215, 194, 266,32767, 196,32767,32767, 270, - 273,32767,32767,32767, 134,32767, 268, 180,32767,32767, - 32767,32767, 365,32767,32767, 174,32767,32767,32767, 130, - 32767, 61, 332,32767,32767, 355,32767,32767, 332, 269, - 208, 209, 210,32767, 121,32767, 310,32767,32767,32767, - 32767,32767,32767, 327,32767, 333,32767,32767,32767,32767, - 111,32767, 302,32767,32767,32767, 75,32767,32767, 178, - 126,32767,32767, 364,32767,32767,32767, 320,32767,32767, - 32767,32767,32767, 62,32767,32767, 77,32767,32767,32767, - 32767, 332,32767,32767,32767, 115,32767, 169,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767, 332,32767,32767,32767,32767,32767,32767,32767, 4, - 32767, 151,32767,32767,32767,32767,32767,32767,32767, 25, - 25, 3, 137, 3, 137, 25, 101, 25, 25, 137, - 93, 93, 25, 25, 25, 144, 25, 25, 25, 25, - 25, 25, 25, 25 -]; - -PHP.Parser.prototype.yygoto = [ - 141, 141, 173, 173, 173, 173, 173, 173, 173, 173, - 141, 173, 142, 143, 144, 148, 153, 155, 181, 175, - 172, 172, 172, 172, 174, 174, 174, 174, 174, 174, - 174, 168, 169, 170, 171, 179, 757, 758, 392, 760, - 781, 782, 783, 784, 785, 786, 787, 789, 725, 145, - 146, 147, 149, 150, 151, 152, 154, 177, 178, 180, - 196, 208, 209, 210, 211, 212, 213, 214, 215, 217, - 218, 219, 220, 244, 245, 266, 267, 268, 430, 431, - 432, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 156, 157, 158, 159, 176, 160, 194, 161, - 162, 163, 164, 195, 165, 193, 139, 166, 167, 452, - 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, - 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, - 453, 551, 551, 551, 464, 491, 394, 394, 394, 394, - 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, - 394, 394, 394, 394, 407, 552, 552, 552, 810, 810, - 662, 662, 662, 662, 662, 594, 283, 595, 510, 399, - 399, 567, 679, 632, 849, 850, 863, 660, 714, 426, - 222, 622, 622, 622, 622, 223, 617, 623, 494, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 465, 472, 514, - 904, 398, 398, 425, 425, 459, 425, 419, 322, 421, - 421, 393, 396, 412, 422, 428, 460, 463, 473, 481, - 501, 5, 476, 284, 327, 1, 15, 2, 6, 7, - 550, 550, 550, 8, 9, 10, 668, 16, 11, 17, - 12, 18, 13, 19, 14, 704, 328, 881, 881, 643, - 628, 626, 626, 624, 626, 526, 401, 652, 647, 847, - 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, - 437, 438, 441, 447, 477, 479, 497, 290, 910, 910, - 400, 400, 486, 880, 880, 263, 913, 910, 303, 255, - 723, 306, 822, 821, 306, 896, 896, 896, 861, 304, - 323, 410, 913, 913, 897, 316, 420, 769, 658, 559, - 879, 671, 536, 324, 466, 565, 311, 311, 311, 801, - 241, 676, 496, 439, 440, 442, 444, 448, 475, 631, - 858, 311, 285, 286, 603, 495, 712, 0, 406, 321, - 0, 0, 0, 314, 0, 0, 429, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 411 -]; - -PHP.Parser.prototype.yygcheck = [ - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 6, 6, 6, 21, 21, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 71, 7, 7, 7, 35, 35, - 35, 35, 35, 35, 35, 29, 44, 29, 35, 86, - 86, 12, 12, 12, 12, 12, 12, 12, 12, 75, - 40, 35, 35, 35, 35, 40, 35, 35, 35, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 36, 36, 36, - 104, 82, 82, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 13, 42, 42, 42, 2, 13, 2, 13, 13, - 5, 5, 5, 13, 13, 13, 54, 13, 13, 13, - 13, 13, 13, 13, 13, 67, 67, 83, 83, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 52, 52, 52, 52, 52, 52, 52, 4, 105, 105, - 89, 89, 94, 84, 84, 92, 105, 105, 26, 92, - 71, 4, 91, 91, 4, 84, 84, 84, 97, 30, - 70, 30, 105, 105, 102, 27, 30, 72, 50, 10, - 84, 55, 46, 9, 30, 11, 90, 90, 90, 80, - 30, 56, 30, 85, 85, 85, 85, 85, 85, 43, - 96, 90, 44, 44, 34, 77, 69, -1, 4, 90, - -1, -1, -1, 4, -1, -1, 4, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 71 -]; - -PHP.Parser.prototype.yygbase = [ - 0, 0, -286, 0, 10, 239, 130, 154, 0, -10, - 25, -23, -29, -289, 0, -30, 0, 0, 0, 0, - 0, 83, 0, 0, 0, 0, 245, 84, -11, 142, - -28, 0, 0, 0, -13, -88, -42, 0, 0, 0, - -344, 0, -38, -12, -188, 0, 23, 0, 0, 0, - 66, 0, 247, 0, 205, 24, -18, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 13, 0, -15, - 85, 74, 70, 0, 0, 148, 0, -14, 0, 0, - -6, 0, -35, 11, 47, 278, -77, 0, 0, 44, - 68, 43, 38, 72, 94, 0, -16, 109, 0, 0, - 0, 0, 87, 0, 170, 34, 0 -]; - -PHP.Parser.prototype.yygdefault = [ - -32768, 362, 3, 546, 382, 570, 571, 572, 307, 305, - 560, 566, 467, 4, 568, 140, 295, 575, 296, 500, - 577, 414, 579, 580, 308, 309, 415, 315, 216, 593, - 503, 313, 596, 357, 602, 301, 449, 383, 350, 461, - 221, 423, 456, 630, 282, 638, 540, 646, 649, 450, - 657, 352, 433, 434, 667, 672, 677, 680, 334, 325, - 474, 684, 685, 256, 689, 511, 512, 703, 242, 711, - 317, 724, 342, 788, 790, 397, 408, 484, 797, 326, - 800, 384, 385, 386, 387, 435, 818, 815, 289, 866, - 287, 443, 254, 853, 468, 356, 903, 862, 288, 388, - 389, 302, 898, 341, 905, 912, 458 -]; - -PHP.Parser.prototype.yylhs = [ - 0, 1, 2, 2, 4, 4, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 8, 8, 10, 10, 10, - 10, 9, 9, 11, 13, 13, 14, 14, 14, 14, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 33, 33, - 34, 27, 27, 30, 30, 6, 7, 7, 7, 37, - 37, 37, 38, 38, 41, 41, 39, 39, 42, 42, - 22, 22, 29, 29, 32, 32, 31, 31, 43, 23, - 23, 23, 23, 44, 44, 45, 45, 46, 46, 20, - 20, 16, 16, 47, 18, 18, 48, 17, 17, 19, - 19, 36, 36, 49, 49, 50, 50, 51, 51, 51, - 51, 52, 52, 53, 53, 54, 54, 24, 24, 55, - 55, 55, 25, 25, 56, 56, 40, 40, 57, 57, - 57, 57, 62, 62, 63, 63, 64, 64, 64, 64, - 65, 66, 66, 61, 61, 58, 58, 60, 60, 68, - 68, 67, 67, 67, 67, 67, 67, 59, 59, 69, - 69, 26, 26, 21, 21, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 71, 77, 77, 79, 79, 80, 81, - 81, 81, 81, 81, 81, 86, 86, 35, 35, 35, - 72, 72, 87, 87, 82, 82, 88, 88, 88, 88, - 88, 73, 73, 73, 76, 76, 76, 78, 78, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 12, 12, 12, 12, 12, 12, 74, - 74, 74, 74, 94, 94, 96, 96, 95, 95, 97, - 97, 28, 28, 28, 28, 99, 99, 98, 98, 98, - 98, 98, 100, 100, 84, 84, 89, 89, 83, 83, - 101, 101, 101, 101, 90, 90, 90, 90, 85, 85, - 91, 91, 91, 70, 70, 102, 102, 102, 75, 75, - 103, 103, 104, 104, 104, 104, 92, 92, 92, 92, - 105, 105, 105, 105, 105, 105, 105, 106, 106, 106 -]; - -PHP.Parser.prototype.yylen = [ - 1, 1, 2, 0, 1, 3, 1, 1, 1, 1, - 3, 5, 4, 3, 3, 3, 1, 1, 3, 2, - 4, 3, 1, 3, 2, 0, 1, 1, 1, 1, - 3, 7, 10, 5, 7, 9, 5, 2, 3, 2, - 3, 2, 3, 3, 3, 3, 1, 2, 5, 7, - 8, 10, 5, 1, 5, 3, 3, 2, 1, 2, - 8, 1, 3, 0, 1, 9, 7, 6, 5, 1, - 2, 2, 0, 2, 0, 2, 0, 2, 1, 3, - 1, 4, 1, 4, 1, 4, 1, 3, 3, 3, - 4, 4, 5, 0, 2, 4, 3, 1, 1, 1, - 4, 0, 2, 5, 0, 2, 6, 0, 2, 0, - 3, 1, 0, 1, 3, 3, 5, 0, 1, 1, - 1, 1, 0, 1, 3, 1, 2, 3, 1, 1, - 2, 4, 3, 1, 1, 3, 2, 0, 3, 3, - 8, 3, 1, 3, 0, 2, 4, 5, 4, 4, - 3, 1, 1, 1, 3, 1, 1, 0, 1, 1, - 2, 1, 1, 1, 1, 1, 1, 1, 3, 1, - 3, 3, 1, 0, 1, 1, 6, 3, 4, 4, - 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, - 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 4, 3, 3, - 2, 9, 10, 3, 0, 4, 1, 3, 2, 4, - 6, 8, 4, 4, 4, 1, 1, 1, 2, 3, - 1, 1, 1, 1, 1, 1, 0, 3, 3, 4, - 4, 0, 2, 3, 0, 1, 1, 0, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 2, 1, 1, 3, 2, 2, 4, 3, 1, - 3, 3, 3, 0, 2, 0, 1, 3, 1, 3, - 1, 1, 1, 1, 1, 6, 4, 3, 6, 4, - 4, 4, 1, 3, 1, 2, 1, 1, 4, 1, - 3, 6, 4, 4, 4, 4, 1, 4, 0, 1, - 1, 3, 1, 3, 1, 1, 4, 0, 0, 2, - 3, 1, 3, 1, 4, 2, 2, 2, 1, 2, - 1, 4, 3, 3, 3, 6, 3, 1, 1, 1 -]; - - - - - - - -PHP.Parser.prototype.yyn0 = function () { - this.yyval = this.yyastk[ this.stackPos ]; -}; - -PHP.Parser.prototype.yyn1 = function ( attributes ) { - this.yyval = this.Stmt_Namespace_postprocess(this.yyastk[ this.stackPos-(1-1) ]); -}; - -PHP.Parser.prototype.yyn2 = function ( attributes ) { - if (Array.isArray(this.yyastk[ this.stackPos-(2-2) ])) { this.yyval = this.yyastk[ this.stackPos-(2-1) ].concat( this.yyastk[ this.stackPos-(2-2) ]); } else { this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ]; }; -}; - -PHP.Parser.prototype.yyn3 = function ( attributes ) { - this.yyval = []; -}; - -PHP.Parser.prototype.yyn4 = function ( attributes ) { - this.yyval = [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn5 = function ( attributes ) { - this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ]; -}; - -PHP.Parser.prototype.yyn6 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn7 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn8 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn9 = function ( attributes ) { - this.yyval = this.Node_Stmt_HaltCompiler(attributes); -}; - -PHP.Parser.prototype.yyn10 = function ( attributes ) { - this.yyval = this.Node_Stmt_Namespace(this.Node_Name(this.yyastk[ this.stackPos-(3-2) ], attributes), null, attributes); -}; - -PHP.Parser.prototype.yyn11 = function ( attributes ) { - this.yyval = this.Node_Stmt_Namespace(this.Node_Name(this.yyastk[ this.stackPos-(5-2) ], attributes), this.yyastk[ this.stackPos-(5-4) ], attributes); -}; - -PHP.Parser.prototype.yyn12 = function ( attributes ) { - this.yyval = this.Node_Stmt_Namespace(null, this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn13 = function ( attributes ) { - this.yyval = this.Node_Stmt_Use(this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn14 = function ( attributes ) { - this.yyval = this.Node_Stmt_Const(this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn15 = function ( attributes ) { - this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ]; -}; - -PHP.Parser.prototype.yyn16 = function ( attributes ) { - this.yyval = [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn17 = function ( attributes ) { - this.yyval = this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[ this.stackPos-(1-1) ], attributes), null, attributes); -}; - -PHP.Parser.prototype.yyn18 = function ( attributes ) { - this.yyval = this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[ this.stackPos-(3-1) ], attributes), this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn19 = function ( attributes ) { - this.yyval = this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[ this.stackPos-(2-2) ], attributes), null, attributes); -}; - -PHP.Parser.prototype.yyn20 = function ( attributes ) { - this.yyval = this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[ this.stackPos-(4-2) ], attributes), this.yyastk[ this.stackPos-(4-4) ], attributes); -}; - -PHP.Parser.prototype.yyn21 = function ( attributes ) { - this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ]; -}; - -PHP.Parser.prototype.yyn22 = function ( attributes ) { - this.yyval = [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn23 = function ( attributes ) { - this.yyval = this.Node_Const(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn24 = function ( attributes ) { - if (Array.isArray(this.yyastk[ this.stackPos-(2-2) ])) { this.yyval = this.yyastk[ this.stackPos-(2-1) ].concat( this.yyastk[ this.stackPos-(2-2) ]); } else { this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ]; }; -}; - -PHP.Parser.prototype.yyn25 = function ( attributes ) { - this.yyval = []; -}; - -PHP.Parser.prototype.yyn26 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn27 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn28 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn29 = function ( attributes ) { - throw new Error('__halt_compiler() can only be used from the outermost scope'); -}; - -PHP.Parser.prototype.yyn30 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(3-2) ]; -}; - -PHP.Parser.prototype.yyn31 = function ( attributes ) { - this.yyval = this.Node_Stmt_If(this.yyastk[ this.stackPos-(7-3) ], {'stmts': Array.isArray(this.yyastk[ this.stackPos-(7-5) ]) ? this.yyastk[ this.stackPos-(7-5) ] : [this.yyastk[ this.stackPos-(7-5) ]], 'elseifs': this.yyastk[ this.stackPos-(7-6) ], 'Else': this.yyastk[ this.stackPos-(7-7) ]}, attributes); -}; - -PHP.Parser.prototype.yyn32 = function ( attributes ) { - this.yyval = this.Node_Stmt_If(this.yyastk[ this.stackPos-(10-3) ], {'stmts': this.yyastk[ this.stackPos-(10-6) ], 'elseifs': this.yyastk[ this.stackPos-(10-7) ], 'else': this.yyastk[ this.stackPos-(10-8) ]}, attributes); -}; - -PHP.Parser.prototype.yyn33 = function ( attributes ) { - this.yyval = this.Node_Stmt_While(this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes); -}; - -PHP.Parser.prototype.yyn34 = function ( attributes ) { - this.yyval = this.Node_Stmt_Do(this.yyastk[ this.stackPos-(7-5) ], Array.isArray(this.yyastk[ this.stackPos-(7-2) ]) ? this.yyastk[ this.stackPos-(7-2) ] : [this.yyastk[ this.stackPos-(7-2) ]], attributes); -}; - -PHP.Parser.prototype.yyn35 = function ( attributes ) { - this.yyval = this.Node_Stmt_For({'init': this.yyastk[ this.stackPos-(9-3) ], 'cond': this.yyastk[ this.stackPos-(9-5) ], 'loop': this.yyastk[ this.stackPos-(9-7) ], 'stmts': this.yyastk[ this.stackPos-(9-9) ]}, attributes); -}; - -PHP.Parser.prototype.yyn36 = function ( attributes ) { - this.yyval = this.Node_Stmt_Switch(this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes); -}; - -PHP.Parser.prototype.yyn37 = function ( attributes ) { - this.yyval = this.Node_Stmt_Break(null, attributes); -}; - -PHP.Parser.prototype.yyn38 = function ( attributes ) { - this.yyval = this.Node_Stmt_Break(this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn39 = function ( attributes ) { - this.yyval = this.Node_Stmt_Continue(null, attributes); -}; - -PHP.Parser.prototype.yyn40 = function ( attributes ) { - this.yyval = this.Node_Stmt_Continue(this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn41 = function ( attributes ) { - this.yyval = this.Node_Stmt_Return(null, attributes); -}; - -PHP.Parser.prototype.yyn42 = function ( attributes ) { - this.yyval = this.Node_Stmt_Return(this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn43 = function ( attributes ) { - this.yyval = this.Node_Stmt_Global(this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn44 = function ( attributes ) { - this.yyval = this.Node_Stmt_Static(this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn45 = function ( attributes ) { - this.yyval = this.Node_Stmt_Echo(this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn46 = function ( attributes ) { - this.yyval = this.Node_Stmt_InlineHTML(this.yyastk[ this.stackPos-(1-1) ], attributes); -}; - -PHP.Parser.prototype.yyn47 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(2-1) ]; -}; - -PHP.Parser.prototype.yyn48 = function ( attributes ) { - this.yyval = this.Node_Stmt_Unset(this.yyastk[ this.stackPos-(5-3) ], attributes); -}; - -PHP.Parser.prototype.yyn49 = function ( attributes ) { - this.yyval = this.Node_Stmt_Foreach(this.yyastk[ this.stackPos-(7-3) ], this.yyastk[ this.stackPos-(7-5) ], {'keyVar': null, 'byRef': false, 'stmts': this.yyastk[ this.stackPos-(7-7) ]}, attributes); -}; - -PHP.Parser.prototype.yyn50 = function ( attributes ) { - this.yyval = this.Node_Stmt_Foreach(this.yyastk[ this.stackPos-(8-3) ], this.yyastk[ this.stackPos-(8-6) ], {'keyVar': null, 'byRef': true, 'stmts': this.yyastk[ this.stackPos-(8-8) ]}, attributes); -}; - -PHP.Parser.prototype.yyn51 = function ( attributes ) { - this.yyval = this.Node_Stmt_Foreach(this.yyastk[ this.stackPos-(10-3) ], this.yyastk[ this.stackPos-(10-8) ], {'keyVar': this.yyastk[ this.stackPos-(10-5) ], 'byRef': this.yyastk[ this.stackPos-(10-7) ], 'stmts': this.yyastk[ this.stackPos-(10-10) ]}, attributes); -}; - -PHP.Parser.prototype.yyn52 = function ( attributes ) { - this.yyval = this.Node_Stmt_Declare(this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes); -}; - -PHP.Parser.prototype.yyn53 = function ( attributes ) { - this.yyval = []; -}; - -PHP.Parser.prototype.yyn54 = function ( attributes ) { - this.yyval = this.Node_Stmt_TryCatch(this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes); -}; - -PHP.Parser.prototype.yyn55 = function ( attributes ) { - this.yyval = this.Node_Stmt_Throw(this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn56 = function ( attributes ) { - this.yyval = this.Node_Stmt_Goto(this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn57 = function ( attributes ) { - this.yyval = this.Node_Stmt_Label(this.yyastk[ this.stackPos-(2-1) ], attributes); -}; - -PHP.Parser.prototype.yyn58 = function ( attributes ) { - this.yyval = [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn59 = function ( attributes ) { - this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ]; -}; - -PHP.Parser.prototype.yyn60 = function ( attributes ) { - this.yyval = this.Node_Stmt_Catch(this.yyastk[ this.stackPos-(8-3) ], this.yyastk[ this.stackPos-(8-4) ].substring( 1 ), this.yyastk[ this.stackPos-(8-7) ], attributes); -}; - -PHP.Parser.prototype.yyn61 = function ( attributes ) { - this.yyval = [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn62 = function ( attributes ) { - this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ]; -}; - -PHP.Parser.prototype.yyn63 = function ( attributes ) { - this.yyval = false; -}; - -PHP.Parser.prototype.yyn64 = function ( attributes ) { - this.yyval = true; -}; - -PHP.Parser.prototype.yyn65 = function ( attributes ) { - this.yyval = this.Node_Stmt_Function(this.yyastk[ this.stackPos-(9-3) ], {'byRef': this.yyastk[ this.stackPos-(9-2) ], 'params': this.yyastk[ this.stackPos-(9-5) ], 'stmts': this.yyastk[ this.stackPos-(9-8) ]}, attributes); -}; - -PHP.Parser.prototype.yyn66 = function ( attributes ) { - this.yyval = this.Node_Stmt_Class(this.yyastk[ this.stackPos-(7-2) ], {'type': this.yyastk[ this.stackPos-(7-1) ], 'Extends': this.yyastk[ this.stackPos-(7-3) ], 'Implements': this.yyastk[ this.stackPos-(7-4) ], 'stmts': this.yyastk[ this.stackPos-(7-6) ]}, attributes); -}; - -PHP.Parser.prototype.yyn67 = function ( attributes ) { - this.yyval = this.Node_Stmt_Interface(this.yyastk[ this.stackPos-(6-2) ], {'Extends': this.yyastk[ this.stackPos-(6-3) ], 'stmts': this.yyastk[ this.stackPos-(6-5) ]}, attributes); -}; - -PHP.Parser.prototype.yyn68 = function ( attributes ) { - this.yyval = this.Node_Stmt_Trait(this.yyastk[ this.stackPos-(5-2) ], this.yyastk[ this.stackPos-(5-4) ], attributes); -}; - -PHP.Parser.prototype.yyn69 = function ( attributes ) { - this.yyval = 0; -}; - -PHP.Parser.prototype.yyn70 = function ( attributes ) { - this.yyval = this.MODIFIER_ABSTRACT; -}; - -PHP.Parser.prototype.yyn71 = function ( attributes ) { - this.yyval = this.MODIFIER_FINAL; -}; - -PHP.Parser.prototype.yyn72 = function ( attributes ) { - this.yyval = null; -}; - -PHP.Parser.prototype.yyn73 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(2-2) ]; -}; - -PHP.Parser.prototype.yyn74 = function ( attributes ) { - this.yyval = []; -}; - -PHP.Parser.prototype.yyn75 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(2-2) ]; -}; - -PHP.Parser.prototype.yyn76 = function ( attributes ) { - this.yyval = []; -}; - -PHP.Parser.prototype.yyn77 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(2-2) ]; -}; - -PHP.Parser.prototype.yyn78 = function ( attributes ) { - this.yyval = [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn79 = function ( attributes ) { - this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ]; -}; - -PHP.Parser.prototype.yyn80 = function ( attributes ) { - this.yyval = Array.isArray(this.yyastk[ this.stackPos-(1-1) ]) ? this.yyastk[ this.stackPos-(1-1) ] : [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn81 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(4-2) ]; -}; - -PHP.Parser.prototype.yyn82 = function ( attributes ) { - this.yyval = Array.isArray(this.yyastk[ this.stackPos-(1-1) ]) ? this.yyastk[ this.stackPos-(1-1) ] : [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn83 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(4-2) ]; -}; - -PHP.Parser.prototype.yyn84 = function ( attributes ) { - this.yyval = Array.isArray(this.yyastk[ this.stackPos-(1-1) ]) ? this.yyastk[ this.stackPos-(1-1) ] : [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn85 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(4-2) ]; -}; - -PHP.Parser.prototype.yyn86 = function ( attributes ) { - this.yyval = [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn87 = function ( attributes ) { - this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ]; -}; - -PHP.Parser.prototype.yyn88 = function ( attributes ) { - this.yyval = this.Node_Stmt_DeclareDeclare(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn89 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(3-2) ]; -}; - -PHP.Parser.prototype.yyn90 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(4-3) ]; -}; - -PHP.Parser.prototype.yyn91 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(4-2) ]; -}; - -PHP.Parser.prototype.yyn92 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(5-3) ]; -}; - -PHP.Parser.prototype.yyn93 = function ( attributes ) { - this.yyval = []; -}; - -PHP.Parser.prototype.yyn94 = function ( attributes ) { - this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ]; -}; - -PHP.Parser.prototype.yyn95 = function ( attributes ) { - this.yyval = this.Node_Stmt_Case(this.yyastk[ this.stackPos-(4-2) ], this.yyastk[ this.stackPos-(4-4) ], attributes); -}; - -PHP.Parser.prototype.yyn96 = function ( attributes ) { - this.yyval = this.Node_Stmt_Case(null, this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn97 = function () { - this.yyval = this.yyastk[ this.stackPos ]; -}; - -PHP.Parser.prototype.yyn98 = function () { - this.yyval = this.yyastk[ this.stackPos ]; -}; - -PHP.Parser.prototype.yyn99 = function ( attributes ) { - this.yyval = Array.isArray(this.yyastk[ this.stackPos-(1-1) ]) ? this.yyastk[ this.stackPos-(1-1) ] : [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn100 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(4-2) ]; -}; - -PHP.Parser.prototype.yyn101 = function ( attributes ) { - this.yyval = []; -}; - -PHP.Parser.prototype.yyn102 = function ( attributes ) { - this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ]; -}; - -PHP.Parser.prototype.yyn103 = function ( attributes ) { - this.yyval = this.Node_Stmt_ElseIf(this.yyastk[ this.stackPos-(5-3) ], Array.isArray(this.yyastk[ this.stackPos-(5-5) ]) ? this.yyastk[ this.stackPos-(5-5) ] : [this.yyastk[ this.stackPos-(5-5) ]], attributes); -}; - -PHP.Parser.prototype.yyn104 = function ( attributes ) { - this.yyval = []; -}; - -PHP.Parser.prototype.yyn105 = function ( attributes ) { - this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ]; -}; - -PHP.Parser.prototype.yyn106 = function ( attributes ) { - this.yyval = this.Node_Stmt_ElseIf(this.yyastk[ this.stackPos-(6-3) ], this.yyastk[ this.stackPos-(6-6) ], attributes); -}; - -PHP.Parser.prototype.yyn107 = function ( attributes ) { - this.yyval = null; -}; - -PHP.Parser.prototype.yyn108 = function ( attributes ) { - this.yyval = this.Node_Stmt_Else(Array.isArray(this.yyastk[ this.stackPos-(2-2) ]) ? this.yyastk[ this.stackPos-(2-2) ] : [this.yyastk[ this.stackPos-(2-2) ]], attributes); -}; - -PHP.Parser.prototype.yyn109 = function ( attributes ) { - this.yyval = null; -}; - -PHP.Parser.prototype.yyn110 = function ( attributes ) { - this.yyval = this.Node_Stmt_Else(this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn111 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn112 = function ( attributes ) { - this.yyval = []; -}; - -PHP.Parser.prototype.yyn113 = function ( attributes ) { - this.yyval = [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn114 = function ( attributes ) { - this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ]; -}; - -PHP.Parser.prototype.yyn115 = function ( attributes ) { - this.yyval = this.Node_Param(this.yyastk[ this.stackPos-(3-3) ].substring( 1 ), null, this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn116 = function ( attributes ) { - this.yyval = this.Node_Param(this.yyastk[ this.stackPos-(5-3) ].substring( 1 ), this.yyastk[ this.stackPos-(5-5) ], this.yyastk[ this.stackPos-(5-1) ], this.yyastk[ this.stackPos-(5-2) ], attributes); -}; - -PHP.Parser.prototype.yyn117 = function ( attributes ) { - this.yyval = null; -}; - -PHP.Parser.prototype.yyn118 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn119 = function ( attributes ) { - this.yyval = 'array'; -}; - -PHP.Parser.prototype.yyn120 = function ( attributes ) { - this.yyval = 'callable'; -}; - -PHP.Parser.prototype.yyn121 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn122 = function ( attributes ) { - this.yyval = []; -}; - -PHP.Parser.prototype.yyn123 = function ( attributes ) { - this.yyval = [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn124 = function ( attributes ) { - this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ]; -}; - -PHP.Parser.prototype.yyn125 = function ( attributes ) { - this.yyval = this.Node_Arg(this.yyastk[ this.stackPos-(1-1) ], false, attributes); -}; - -PHP.Parser.prototype.yyn126 = function ( attributes ) { - this.yyval = this.Node_Arg(this.yyastk[ this.stackPos-(2-2) ], true, attributes); -}; - -PHP.Parser.prototype.yyn127 = function ( attributes ) { - this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ]; -}; - -PHP.Parser.prototype.yyn128 = function ( attributes ) { - this.yyval = [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn129 = function ( attributes ) { - this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), attributes); -}; - -PHP.Parser.prototype.yyn130 = function ( attributes ) { - this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn131 = function ( attributes ) { - this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn132 = function ( attributes ) { - this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ]; -}; - -PHP.Parser.prototype.yyn133 = function ( attributes ) { - this.yyval = [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn134 = function ( attributes ) { - this.yyval = this.Node_Stmt_StaticVar(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), null, attributes); -}; - -PHP.Parser.prototype.yyn135 = function ( attributes ) { - this.yyval = this.Node_Stmt_StaticVar(this.yyastk[ this.stackPos-(3-1) ].substring( 1 ), this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn136 = function ( attributes ) { - this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ]; -}; - -PHP.Parser.prototype.yyn137 = function ( attributes ) { - this.yyval = []; -}; - -PHP.Parser.prototype.yyn138 = function ( attributes ) { - this.yyval = this.Node_Stmt_Property(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn139 = function ( attributes ) { - this.yyval = this.Node_Stmt_ClassConst(this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn140 = function ( attributes ) { - this.yyval = this.Node_Stmt_ClassMethod(this.yyastk[ this.stackPos-(8-4) ], {'type': this.yyastk[ this.stackPos-(8-1) ], 'byRef': this.yyastk[ this.stackPos-(8-3) ], 'params': this.yyastk[ this.stackPos-(8-6) ], 'stmts': this.yyastk[ this.stackPos-(8-8) ]}, attributes); -}; - -PHP.Parser.prototype.yyn141 = function ( attributes ) { - this.yyval = this.Node_Stmt_TraitUse(this.yyastk[ this.stackPos-(3-2) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn142 = function ( attributes ) { - this.yyval = []; -}; - -PHP.Parser.prototype.yyn143 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(3-2) ]; -}; - -PHP.Parser.prototype.yyn144 = function ( attributes ) { - this.yyval = []; -}; - -PHP.Parser.prototype.yyn145 = function ( attributes ) { - this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ]; -}; - -PHP.Parser.prototype.yyn146 = function ( attributes ) { - this.yyval = this.Node_Stmt_TraitUseAdaptation_Precedence(this.yyastk[ this.stackPos-(4-1) ][0], this.yyastk[ this.stackPos-(4-1) ][1], this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn147 = function ( attributes ) { - this.yyval = this.Node_Stmt_TraitUseAdaptation_Alias(this.yyastk[ this.stackPos-(5-1) ][0], this.yyastk[ this.stackPos-(5-1) ][1], this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-4) ], attributes); -}; - -PHP.Parser.prototype.yyn148 = function ( attributes ) { - this.yyval = this.Node_Stmt_TraitUseAdaptation_Alias(this.yyastk[ this.stackPos-(4-1) ][0], this.yyastk[ this.stackPos-(4-1) ][1], this.yyastk[ this.stackPos-(4-3) ], null, attributes); -}; - -PHP.Parser.prototype.yyn149 = function ( attributes ) { - this.yyval = this.Node_Stmt_TraitUseAdaptation_Alias(this.yyastk[ this.stackPos-(4-1) ][0], this.yyastk[ this.stackPos-(4-1) ][1], null, this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn150 = function ( attributes ) { - this.yyval = array(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ]); -}; - -PHP.Parser.prototype.yyn151 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn152 = function ( attributes ) { - this.yyval = array(null, this.yyastk[ this.stackPos-(1-1) ]); -}; - -PHP.Parser.prototype.yyn153 = function ( attributes ) { - this.yyval = null; -}; - -PHP.Parser.prototype.yyn154 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(3-2) ]; -}; - -PHP.Parser.prototype.yyn155 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn156 = function ( attributes ) { - this.yyval = this.MODIFIER_PUBLIC; -}; - -PHP.Parser.prototype.yyn157 = function ( attributes ) { - this.yyval = this.MODIFIER_PUBLIC; -}; - -PHP.Parser.prototype.yyn158 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn159 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn160 = function ( attributes ) { - this.Stmt_Class_verifyModifier(this.yyastk[ this.stackPos-(2-1) ], this.yyastk[ this.stackPos-(2-2) ]); this.yyval = this.yyastk[ this.stackPos-(2-1) ] | this.yyastk[ this.stackPos-(2-2) ]; -}; - -PHP.Parser.prototype.yyn161 = function ( attributes ) { - this.yyval = this.MODIFIER_PUBLIC; -}; - -PHP.Parser.prototype.yyn162 = function ( attributes ) { - this.yyval = this.MODIFIER_PROTECTED; -}; - -PHP.Parser.prototype.yyn163 = function ( attributes ) { - this.yyval = this.MODIFIER_PRIVATE; -}; - -PHP.Parser.prototype.yyn164 = function ( attributes ) { - this.yyval = this.MODIFIER_STATIC; -}; - -PHP.Parser.prototype.yyn165 = function ( attributes ) { - this.yyval = this.MODIFIER_ABSTRACT; -}; - -PHP.Parser.prototype.yyn166 = function ( attributes ) { - this.yyval = this.MODIFIER_FINAL; -}; - -PHP.Parser.prototype.yyn167 = function ( attributes ) { - this.yyval = [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn168 = function ( attributes ) { - this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ]; -}; - -PHP.Parser.prototype.yyn169 = function ( attributes ) { - this.yyval = this.Node_Stmt_PropertyProperty(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), null, attributes); -}; - -PHP.Parser.prototype.yyn170 = function ( attributes ) { - this.yyval = this.Node_Stmt_PropertyProperty(this.yyastk[ this.stackPos-(3-1) ].substring( 1 ), this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn171 = function ( attributes ) { - this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ]; -}; - -PHP.Parser.prototype.yyn172 = function ( attributes ) { - this.yyval = [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn173 = function ( attributes ) { - this.yyval = []; -}; - -PHP.Parser.prototype.yyn174 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn175 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn176 = function ( attributes ) { - this.yyval = this.Node_Expr_AssignList(this.yyastk[ this.stackPos-(6-3) ], this.yyastk[ this.stackPos-(6-6) ], attributes); -}; - -PHP.Parser.prototype.yyn177 = function ( attributes ) { - this.yyval = this.Node_Expr_Assign(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn178 = function ( attributes ) { - this.yyval = this.Node_Expr_AssignRef(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-4) ], attributes); -}; - -PHP.Parser.prototype.yyn179 = function ( attributes ) { - this.yyval = this.Node_Expr_AssignRef(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-4) ], attributes); -}; - -PHP.Parser.prototype.yyn180 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn181 = function ( attributes ) { - this.yyval = this.Node_Expr_Clone(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn182 = function ( attributes ) { - this.yyval = this.Node_Expr_AssignPlus(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn183 = function ( attributes ) { - this.yyval = this.Node_Expr_AssignMinus(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn184 = function ( attributes ) { - this.yyval = this.Node_Expr_AssignMul(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn185 = function ( attributes ) { - this.yyval = this.Node_Expr_AssignDiv(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn186 = function ( attributes ) { - this.yyval = this.Node_Expr_AssignConcat(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn187 = function ( attributes ) { - this.yyval = this.Node_Expr_AssignMod(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn188 = function ( attributes ) { - this.yyval = this.Node_Expr_AssignBitwiseAnd(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn189 = function ( attributes ) { - this.yyval = this.Node_Expr_AssignBitwiseOr(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn190 = function ( attributes ) { - this.yyval = this.Node_Expr_AssignBitwiseXor(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn191 = function ( attributes ) { - this.yyval = this.Node_Expr_AssignShiftLeft(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn192 = function ( attributes ) { - this.yyval = this.Node_Expr_AssignShiftRight(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn193 = function ( attributes ) { - this.yyval = this.Node_Expr_PostInc(this.yyastk[ this.stackPos-(2-1) ], attributes); -}; - -PHP.Parser.prototype.yyn194 = function ( attributes ) { - this.yyval = this.Node_Expr_PreInc(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn195 = function ( attributes ) { - this.yyval = this.Node_Expr_PostDec(this.yyastk[ this.stackPos-(2-1) ], attributes); -}; - -PHP.Parser.prototype.yyn196 = function ( attributes ) { - this.yyval = this.Node_Expr_PreDec(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn197 = function ( attributes ) { - this.yyval = this.Node_Expr_BooleanOr(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn198 = function ( attributes ) { - this.yyval = this.Node_Expr_BooleanAnd(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn199 = function ( attributes ) { - this.yyval = this.Node_Expr_LogicalOr(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn200 = function ( attributes ) { - this.yyval = this.Node_Expr_LogicalAnd(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn201 = function ( attributes ) { - this.yyval = this.Node_Expr_LogicalXor(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn202 = function ( attributes ) { - this.yyval = this.Node_Expr_BitwiseOr(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn203 = function ( attributes ) { - this.yyval = this.Node_Expr_BitwiseAnd(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn204 = function ( attributes ) { - this.yyval = this.Node_Expr_BitwiseXor(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn205 = function ( attributes ) { - this.yyval = this.Node_Expr_Concat(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn206 = function ( attributes ) { - this.yyval = this.Node_Expr_Plus(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn207 = function ( attributes ) { - this.yyval = this.Node_Expr_Minus(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn208 = function ( attributes ) { - this.yyval = this.Node_Expr_Mul(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn209 = function ( attributes ) { - this.yyval = this.Node_Expr_Div(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn210 = function ( attributes ) { - this.yyval = this.Node_Expr_Mod(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn211 = function ( attributes ) { - this.yyval = this.Node_Expr_ShiftLeft(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn212 = function ( attributes ) { - this.yyval = this.Node_Expr_ShiftRight(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn213 = function ( attributes ) { - this.yyval = this.Node_Expr_UnaryPlus(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn214 = function ( attributes ) { - this.yyval = this.Node_Expr_UnaryMinus(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn215 = function ( attributes ) { - this.yyval = this.Node_Expr_BooleanNot(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn216 = function ( attributes ) { - this.yyval = this.Node_Expr_BitwiseNot(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn217 = function ( attributes ) { - this.yyval = this.Node_Expr_Identical(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn218 = function ( attributes ) { - this.yyval = this.Node_Expr_NotIdentical(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn219 = function ( attributes ) { - this.yyval = this.Node_Expr_Equal(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn220 = function ( attributes ) { - this.yyval = this.Node_Expr_NotEqual(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn221 = function ( attributes ) { - this.yyval = this.Node_Expr_Smaller(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn222 = function ( attributes ) { - this.yyval = this.Node_Expr_SmallerOrEqual(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn223 = function ( attributes ) { - this.yyval = this.Node_Expr_Greater(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn224 = function ( attributes ) { - this.yyval = this.Node_Expr_GreaterOrEqual(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn225 = function ( attributes ) { - this.yyval = this.Node_Expr_Instanceof(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn226 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(3-2) ]; -}; - -PHP.Parser.prototype.yyn227 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(3-2) ]; -}; - -PHP.Parser.prototype.yyn228 = function ( attributes ) { - this.yyval = this.Node_Expr_Ternary(this.yyastk[ this.stackPos-(5-1) ], this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes); -}; - -PHP.Parser.prototype.yyn229 = function ( attributes ) { - this.yyval = this.Node_Expr_Ternary(this.yyastk[ this.stackPos-(4-1) ], null, this.yyastk[ this.stackPos-(4-4) ], attributes); -}; - -PHP.Parser.prototype.yyn230 = function ( attributes ) { - this.yyval = this.Node_Expr_Isset(this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn231 = function ( attributes ) { - this.yyval = this.Node_Expr_Empty(this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn232 = function ( attributes ) { - this.yyval = this.Node_Expr_Include(this.yyastk[ this.stackPos-(2-2) ], "Node_Expr_Include", attributes); -}; - -PHP.Parser.prototype.yyn233 = function ( attributes ) { - this.yyval = this.Node_Expr_Include(this.yyastk[ this.stackPos-(2-2) ], "Node_Expr_IncludeOnce", attributes); -}; - -PHP.Parser.prototype.yyn234 = function ( attributes ) { - this.yyval = this.Node_Expr_Eval(this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn235 = function ( attributes ) { - this.yyval = this.Node_Expr_Include(this.yyastk[ this.stackPos-(2-2) ], "Node_Expr_Require", attributes); -}; - -PHP.Parser.prototype.yyn236 = function ( attributes ) { - this.yyval = this.Node_Expr_Include(this.yyastk[ this.stackPos-(2-2) ], "Node_Expr_RequireOnce", attributes); -}; - -PHP.Parser.prototype.yyn237 = function ( attributes ) { - this.yyval = this.Node_Expr_Cast_Int(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn238 = function ( attributes ) { - this.yyval = this.Node_Expr_Cast_Double(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn239 = function ( attributes ) { - this.yyval = this.Node_Expr_Cast_String(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn240 = function ( attributes ) { - this.yyval = this.Node_Expr_Cast_Array(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn241 = function ( attributes ) { - this.yyval = this.Node_Expr_Cast_Object(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn242 = function ( attributes ) { - this.yyval = this.Node_Expr_Cast_Bool(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn243 = function ( attributes ) { - this.yyval = this.Node_Expr_Cast_Unset(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn244 = function ( attributes ) { - this.yyval = this.Node_Expr_Exit(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn245 = function ( attributes ) { - this.yyval = this.Node_Expr_ErrorSuppress(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn246 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn247 = function ( attributes ) { - this.yyval = this.Node_Expr_Array(this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn248 = function ( attributes ) { - this.yyval = this.Node_Expr_Array(this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn249 = function ( attributes ) { - this.yyval = this.Node_Expr_ShellExec(this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn250 = function ( attributes ) { - this.yyval = this.Node_Expr_Print(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn251 = function ( attributes ) { - this.yyval = this.Node_Expr_Closure({'static': false, 'byRef': this.yyastk[ this.stackPos-(9-2) ], 'params': this.yyastk[ this.stackPos-(9-4) ], 'uses': this.yyastk[ this.stackPos-(9-6) ], 'stmts': this.yyastk[ this.stackPos-(9-8) ]}, attributes); -}; - -PHP.Parser.prototype.yyn252 = function ( attributes ) { - this.yyval = this.Node_Expr_Closure({'static': true, 'byRef': this.yyastk[ this.stackPos-(10-3) ], 'params': this.yyastk[ this.stackPos-(10-5) ], 'uses': this.yyastk[ this.stackPos-(10-7) ], 'stmts': this.yyastk[ this.stackPos-(10-9) ]}, attributes); -}; - -PHP.Parser.prototype.yyn253 = function ( attributes ) { - this.yyval = this.Node_Expr_New(this.yyastk[ this.stackPos-(3-2) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn254 = function ( attributes ) { - this.yyval = []; -}; - -PHP.Parser.prototype.yyn255 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(4-3) ]; -}; - -PHP.Parser.prototype.yyn256 = function ( attributes ) { - this.yyval = [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn257 = function ( attributes ) { - this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ]; -}; - -PHP.Parser.prototype.yyn258 = function ( attributes ) { - this.yyval = this.Node_Expr_ClosureUse(this.yyastk[ this.stackPos-(2-2) ].substring( 1 ), this.yyastk[ this.stackPos-(2-1) ], attributes); -}; - -PHP.Parser.prototype.yyn259 = function ( attributes ) { - this.yyval = this.Node_Expr_FuncCall(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn260 = function ( attributes ) { - this.yyval = this.Node_Expr_StaticCall(this.yyastk[ this.stackPos-(6-1) ], this.yyastk[ this.stackPos-(6-3) ], this.yyastk[ this.stackPos-(6-5) ], attributes); -}; - -PHP.Parser.prototype.yyn261 = function ( attributes ) { - this.yyval = this.Node_Expr_StaticCall(this.yyastk[ this.stackPos-(8-1) ], this.yyastk[ this.stackPos-(8-4) ], this.yyastk[ this.stackPos-(8-7) ], attributes); -}; - -PHP.Parser.prototype.yyn262 = function ( attributes ) { - - if (this.yyastk[ this.stackPos-(4-1) ].type === "Node_Expr_StaticPropertyFetch") { - this.yyval = this.Node_Expr_StaticCall(this.yyastk[ this.stackPos-(4-1) ].Class, this.Node_Expr_Variable(this.yyastk[ this.stackPos-(4-1) ].name, attributes), this.yyastk[ this.stackPos-(4-3) ], attributes); - } else if (this.yyastk[ this.stackPos-(4-1) ].type === "Node_Expr_ArrayDimFetch") { - var tmp = this.yyastk[ this.stackPos-(4-1) ]; - while (tmp.variable.type === "Node_Expr_ArrayDimFetch") { - tmp = tmp.variable; - } - - this.yyval = this.Node_Expr_StaticCall(tmp.variable.Class, this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes); - tmp.variable = this.Node_Expr_Variable(tmp.variable.name, attributes); - } else { - throw new Exception; - } - -}; - -PHP.Parser.prototype.yyn263 = function ( attributes ) { - this.yyval = this.Node_Expr_FuncCall(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn264 = function ( attributes ) { - this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn265 = function ( attributes ) { - this.yyval = this.Node_Name('static', attributes); -}; - -PHP.Parser.prototype.yyn266 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn267 = function ( attributes ) { - this.yyval = this.Node_Name(this.yyastk[ this.stackPos-(1-1) ], attributes); -}; - -PHP.Parser.prototype.yyn268 = function ( attributes ) { - this.yyval = this.Node_Name_FullyQualified(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn269 = function ( attributes ) { - this.yyval = this.Node_Name_Relative(this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn270 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn271 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn272 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn273 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn274 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn275 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn276 = function () { - this.yyval = this.yyastk[ this.stackPos ]; -}; - -PHP.Parser.prototype.yyn277 = function ( attributes ) { - this.yyval = this.Node_Expr_PropertyFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn278 = function ( attributes ) { - this.yyval = this.Node_Expr_PropertyFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn279 = function ( attributes ) { - this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn280 = function ( attributes ) { - this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn281 = function ( attributes ) { - this.yyval = null; -}; - -PHP.Parser.prototype.yyn282 = function ( attributes ) { - this.yyval = null; -}; - -PHP.Parser.prototype.yyn283 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(3-2) ]; -}; - -PHP.Parser.prototype.yyn284 = function ( attributes ) { - this.yyval = []; -}; - -PHP.Parser.prototype.yyn285 = function ( attributes ) { - this.yyval = [this.Scalar_String_parseEscapeSequences(this.yyastk[ this.stackPos-(1-1) ], '`')]; -}; - -PHP.Parser.prototype.yyn286 = function ( attributes ) { - ; this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn287 = function ( attributes ) { - this.yyval = []; -}; - -PHP.Parser.prototype.yyn288 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(3-2) ]; -}; - -PHP.Parser.prototype.yyn289 = function ( attributes ) { - this.yyval = this.Node_Scalar_LNumber(this.Scalar_LNumber_parse(this.yyastk[ this.stackPos-(1-1) ]), attributes); -}; - -PHP.Parser.prototype.yyn290 = function ( attributes ) { - this.yyval = this.Node_Scalar_DNumber(this.Scalar_DNumber_parse(this.yyastk[ this.stackPos-(1-1) ]), attributes); -}; - -PHP.Parser.prototype.yyn291 = function ( attributes ) { - this.yyval = this.Scalar_String_create(this.yyastk[ this.stackPos-(1-1) ], attributes); -}; - -PHP.Parser.prototype.yyn292 = function ( attributes ) { - this.yyval = {type: "Node_Scalar_LineConst", attributes: attributes}; -}; - -PHP.Parser.prototype.yyn293 = function ( attributes ) { - this.yyval = {type: "Node_Scalar_FileConst", attributes: attributes}; -}; - -PHP.Parser.prototype.yyn294 = function ( attributes ) { - this.yyval = {type: "Node_Scalar_DirConst", attributes: attributes}; -}; - -PHP.Parser.prototype.yyn295 = function ( attributes ) { - this.yyval = {type: "Node_Scalar_ClassConst", attributes: attributes}; -}; - -PHP.Parser.prototype.yyn296 = function ( attributes ) { - this.yyval = {type: "Node_Scalar_TraitConst", attributes: attributes}; -}; - -PHP.Parser.prototype.yyn297 = function ( attributes ) { - this.yyval = {type: "Node_Scalar_MethodConst", attributes: attributes}; -}; - -PHP.Parser.prototype.yyn298 = function ( attributes ) { - this.yyval = {type: "Node_Scalar_FuncConst", attributes: attributes}; -}; - -PHP.Parser.prototype.yyn299 = function ( attributes ) { - this.yyval = {type: "Node_Scalar_NSConst", attributes: attributes}; -}; - -PHP.Parser.prototype.yyn300 = function ( attributes ) { - this.yyval = this.Node_Scalar_String(this.Scalar_String_parseDocString(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-2) ]), attributes); -}; - -PHP.Parser.prototype.yyn301 = function ( attributes ) { - this.yyval = this.Node_Scalar_String('', attributes); -}; - -PHP.Parser.prototype.yyn302 = function ( attributes ) { - this.yyval = this.Node_Expr_ConstFetch(this.yyastk[ this.stackPos-(1-1) ], attributes); -}; - -PHP.Parser.prototype.yyn303 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn304 = function ( attributes ) { - this.yyval = this.Node_Expr_ClassConstFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn305 = function ( attributes ) { - this.yyval = this.Node_Expr_UnaryPlus(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn306 = function ( attributes ) { - this.yyval = this.Node_Expr_UnaryMinus(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn307 = function ( attributes ) { - this.yyval = this.Node_Expr_Array(this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn308 = function ( attributes ) { - this.yyval = this.Node_Expr_Array(this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn309 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn310 = function ( attributes ) { - this.yyval = this.Node_Expr_ClassConstFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn311 = function ( attributes ) { - ; this.yyval = this.Node_Scalar_Encapsed(this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn312 = function ( attributes ) { - ; this.yyval = this.Node_Scalar_Encapsed(this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn313 = function ( attributes ) { - this.yyval = []; -}; - -PHP.Parser.prototype.yyn314 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(2-1) ]; -}; - -PHP.Parser.prototype.yyn315 = function () { - this.yyval = this.yyastk[ this.stackPos ]; -}; - -PHP.Parser.prototype.yyn316 = function () { - this.yyval = this.yyastk[ this.stackPos ]; -}; - -PHP.Parser.prototype.yyn317 = function ( attributes ) { - this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ]; -}; - -PHP.Parser.prototype.yyn318 = function ( attributes ) { - this.yyval = [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn319 = function ( attributes ) { - this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(3-3) ], this.yyastk[ this.stackPos-(3-1) ], false, attributes); -}; - -PHP.Parser.prototype.yyn320 = function ( attributes ) { - this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(1-1) ], null, false, attributes); -}; - -PHP.Parser.prototype.yyn321 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn322 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn323 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn324 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn325 = function ( attributes ) { - this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(6-2) ], this.yyastk[ this.stackPos-(6-5) ], attributes); -}; - -PHP.Parser.prototype.yyn326 = function ( attributes ) { - this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn327 = function ( attributes ) { - this.yyval = this.Node_Expr_PropertyFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn328 = function ( attributes ) { - this.yyval = this.Node_Expr_MethodCall(this.yyastk[ this.stackPos-(6-1) ], this.yyastk[ this.stackPos-(6-3) ], this.yyastk[ this.stackPos-(6-5) ], attributes); -}; - -PHP.Parser.prototype.yyn329 = function ( attributes ) { - this.yyval = this.Node_Expr_FuncCall(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn330 = function ( attributes ) { - this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn331 = function ( attributes ) { - this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn332 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn333 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(3-2) ]; -}; - -PHP.Parser.prototype.yyn334 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn335 = function ( attributes ) { - this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(2-2) ], attributes); -}; - -PHP.Parser.prototype.yyn336 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn337 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn338 = function ( attributes ) { - this.yyval = this.Node_Expr_StaticPropertyFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-4) ], attributes); -}; - -PHP.Parser.prototype.yyn339 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn340 = function ( attributes ) { - this.yyval = this.Node_Expr_StaticPropertyFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ].substring( 1 ), attributes); -}; - -PHP.Parser.prototype.yyn341 = function ( attributes ) { - this.yyval = this.Node_Expr_StaticPropertyFetch(this.yyastk[ this.stackPos-(6-1) ], this.yyastk[ this.stackPos-(6-5) ], attributes); -}; - -PHP.Parser.prototype.yyn342 = function ( attributes ) { - this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn343 = function ( attributes ) { - this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn344 = function ( attributes ) { - this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn345 = function ( attributes ) { - this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn346 = function ( attributes ) { - this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), attributes); -}; - -PHP.Parser.prototype.yyn347 = function ( attributes ) { - this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn348 = function ( attributes ) { - this.yyval = null; -}; - -PHP.Parser.prototype.yyn349 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn350 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn351 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(3-2) ]; -}; - -PHP.Parser.prototype.yyn352 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn353 = function ( attributes ) { - this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ]; -}; - -PHP.Parser.prototype.yyn354 = function ( attributes ) { - this.yyval = [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn355 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(1-1) ]; -}; - -PHP.Parser.prototype.yyn356 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(4-3) ]; -}; - -PHP.Parser.prototype.yyn357 = function ( attributes ) { - this.yyval = null; -}; - -PHP.Parser.prototype.yyn358 = function ( attributes ) { - this.yyval = []; -}; - -PHP.Parser.prototype.yyn359 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(2-1) ]; -}; - -PHP.Parser.prototype.yyn360 = function ( attributes ) { - this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ]; -}; - -PHP.Parser.prototype.yyn361 = function ( attributes ) { - this.yyval = [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn362 = function ( attributes ) { - this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(3-3) ], this.yyastk[ this.stackPos-(3-1) ], false, attributes); -}; - -PHP.Parser.prototype.yyn363 = function ( attributes ) { - this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(1-1) ], null, false, attributes); -}; - -PHP.Parser.prototype.yyn364 = function ( attributes ) { - this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(4-4) ], this.yyastk[ this.stackPos-(4-1) ], true, attributes); -}; - -PHP.Parser.prototype.yyn365 = function ( attributes ) { - this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(2-2) ], null, true, attributes); -}; - -PHP.Parser.prototype.yyn366 = function ( attributes ) { - this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ]; -}; - -PHP.Parser.prototype.yyn367 = function ( attributes ) { - this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ]; -}; - -PHP.Parser.prototype.yyn368 = function ( attributes ) { - this.yyval = [this.yyastk[ this.stackPos-(1-1) ]]; -}; - -PHP.Parser.prototype.yyn369 = function ( attributes ) { - this.yyval = [this.yyastk[ this.stackPos-(2-1) ], this.yyastk[ this.stackPos-(2-2) ]]; -}; - -PHP.Parser.prototype.yyn370 = function ( attributes ) { - this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), attributes); -}; - -PHP.Parser.prototype.yyn371 = function ( attributes ) { - this.yyval = this.Node_Expr_ArrayDimFetch(this.Node_Expr_Variable(this.yyastk[ this.stackPos-(4-1) ].substring( 1 ), attributes), this.yyastk[ this.stackPos-(4-3) ], attributes); -}; - -PHP.Parser.prototype.yyn372 = function ( attributes ) { - this.yyval = this.Node_Expr_PropertyFetch(this.Node_Expr_Variable(this.yyastk[ this.stackPos-(3-1) ].substring( 1 ), attributes), this.yyastk[ this.stackPos-(3-3) ], attributes); -}; - -PHP.Parser.prototype.yyn373 = function ( attributes ) { - this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn374 = function ( attributes ) { - this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(3-2) ], attributes); -}; - -PHP.Parser.prototype.yyn375 = function ( attributes ) { - this.yyval = this.Node_Expr_ArrayDimFetch(this.Node_Expr_Variable(this.yyastk[ this.stackPos-(6-2) ], attributes), this.yyastk[ this.stackPos-(6-4) ], attributes); -}; - -PHP.Parser.prototype.yyn376 = function ( attributes ) { - this.yyval = this.yyastk[ this.stackPos-(3-2) ]; -}; - -PHP.Parser.prototype.yyn377 = function ( attributes ) { - this.yyval = this.Node_Scalar_String(this.yyastk[ this.stackPos-(1-1) ], attributes); -}; - -PHP.Parser.prototype.yyn378 = function ( attributes ) { - this.yyval = this.Node_Scalar_String(this.yyastk[ this.stackPos-(1-1) ], attributes); -}; - -PHP.Parser.prototype.yyn379 = function ( attributes ) { - this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), attributes); -}; - - -PHP.Parser.prototype.Stmt_Namespace_postprocess = function( a ) { - return a; -}; - - -PHP.Parser.prototype.Node_Stmt_Echo = function() { - return { - type: "Node_Stmt_Echo", - exprs: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - - -PHP.Parser.prototype.Node_Stmt_If = function() { - return { - type: "Node_Stmt_If", - cond: arguments[ 0 ], - stmts: arguments[ 1 ].stmts, - elseifs: arguments[ 1 ].elseifs, - Else: arguments[ 1 ].Else || null, - attributes: arguments[ 2 ] - }; - -}; - - -PHP.Parser.prototype.Node_Stmt_For = function() { - - return { - type: "Node_Stmt_For", - init: arguments[ 0 ].init, - cond: arguments[ 0 ].cond, - loop: arguments[ 0 ].loop, - stmts: arguments[ 0 ].stmts, - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Stmt_Function = function() { - return { - type: "Node_Stmt_Function", - name: arguments[ 0 ], - byRef: arguments[ 1 ].byRef, - params: arguments[ 1 ].params, - stmts: arguments[ 1 ].stmts, - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Stmt_Class_verifyModifier = function() { - - -}; - -PHP.Parser.prototype.Node_Stmt_Namespace = function() { - return { - type: "Node_Stmt_Namespace", - name: arguments[ 0 ], - attributes: arguments[ 2 ] - }; -}; - -PHP.Parser.prototype.Node_Stmt_Use = function() { - return { - type: "Node_Stmt_Use", - name: arguments[ 0 ], - attributes: arguments[ 2 ] - }; -}; - -PHP.Parser.prototype.Node_Stmt_UseUse = function() { - return { - type: "Node_Stmt_UseUse", - name: arguments[ 0 ], - as: arguments[1], - attributes: arguments[ 2 ] - }; -}; - -PHP.Parser.prototype.Node_Stmt_TraitUseAdaptation_Precedence = function() { - return { - type: "Node_Stmt_TraitUseAdaptation_Precedence", - name: arguments[ 0 ], - attributes: arguments[ 2 ] - }; -}; - -PHP.Parser.prototype.Node_Stmt_TraitUseAdaptation_Alias = function() { - return { - type: "Node_Stmt_TraitUseAdaptation_Alias", - name: arguments[ 0 ], - attributes: arguments[ 2 ] - }; -}; - -PHP.Parser.prototype.Node_Stmt_Trait = function() { - return { - type: "Node_Stmt_Trait", - name: arguments[ 0 ], - attributes: arguments[ 2 ] - }; -}; - -PHP.Parser.prototype.Node_Stmt_TraitUse = function() { - return { - type: "Node_Stmt_TraitUse", - name: arguments[ 0 ], - attributes: arguments[ 2 ] - }; -}; - -PHP.Parser.prototype.Node_Stmt_Class = function() { - return { - type: "Node_Stmt_Class", - name: arguments[ 0 ], - Type: arguments[ 1 ].type, - Extends: arguments[ 1 ].Extends, - Implements: arguments[ 1 ].Implements, - stmts: arguments[ 1 ].stmts, - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Stmt_ClassMethod = function() { - return { - type: "Node_Stmt_ClassMethod", - name: arguments[ 0 ], - Type: arguments[ 1 ].type, - byRef: arguments[ 1 ].byRef, - params: arguments[ 1 ].params, - stmts: arguments[ 1 ].stmts, - attributes: arguments[ 2 ] - }; - -}; - - -PHP.Parser.prototype.Node_Stmt_ClassConst = function() { - return { - type: "Node_Stmt_ClassConst", - consts: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Stmt_Interface = function() { - return { - type: "Node_Stmt_Interface", - name: arguments[ 0 ], - Extends: arguments[ 1 ].Extends, - stmts: arguments[ 1 ].stmts, - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Stmt_Throw = function() { - return { - type: "Node_Stmt_Throw", - expr: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Stmt_Catch = function() { - return { - type: "Node_Stmt_Catch", - Type: arguments[ 0 ], - variable: arguments[ 1 ], - stmts: arguments[ 2 ], - attributes: arguments[ 3 ] - }; - -}; - - -PHP.Parser.prototype.Node_Stmt_TryCatch = function() { - return { - type: "Node_Stmt_TryCatch", - stmts: arguments[ 0 ], - catches: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - - -PHP.Parser.prototype.Node_Stmt_Foreach = function() { - return { - type: "Node_Stmt_Foreach", - expr: arguments[ 0 ], - valueVar: arguments[ 1 ], - keyVar: arguments[ 2 ].keyVar, - byRef: arguments[ 2 ].byRef, - stmts: arguments[ 2 ].stmts, - attributes: arguments[ 3 ] - }; - -}; - -PHP.Parser.prototype.Node_Stmt_While = function() { - return { - type: "Node_Stmt_While", - cond: arguments[ 0 ], - stmts: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Stmt_Do = function() { - return { - type: "Node_Stmt_Do", - cond: arguments[ 0 ], - stmts: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Stmt_Break = function() { - return { - type: "Node_Stmt_Break", - num: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Stmt_Continue = function() { - return { - type: "Node_Stmt_Continue", - num: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Stmt_Return = function() { - return { - type: "Node_Stmt_Return", - expr: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Stmt_Case = function() { - return { - type: "Node_Stmt_Case", - cond: arguments[ 0 ], - stmts: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Stmt_Switch = function() { - return { - type: "Node_Stmt_Switch", - cond: arguments[ 0 ], - cases: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Stmt_Else = function() { - - return { - type: "Node_Stmt_Else", - stmts: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Stmt_ElseIf = function() { - return { - type: "Node_Stmt_ElseIf", - cond: arguments[ 0 ], - stmts: arguments[ 1 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Stmt_InlineHTML = function() { - return { - type: "Node_Stmt_InlineHTML", - value: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - - -PHP.Parser.prototype.Node_Stmt_StaticVar = function() { - return { - type: "Node_Stmt_StaticVar", - name: arguments[ 0 ], - def: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - - -PHP.Parser.prototype.Node_Stmt_Static = function() { - return { - type: "Node_Stmt_Static", - vars: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Stmt_Global = function() { - return { - type: "Node_Stmt_Global", - vars: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - - -PHP.Parser.prototype.Node_Stmt_PropertyProperty = function() { - return { - type: "Node_Stmt_PropertyProperty", - name: arguments[ 0 ], - def: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - - -PHP.Parser.prototype.Node_Stmt_Property = function() { - return { - type: "Node_Stmt_Property", - Type: arguments[ 0 ], - props: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Stmt_Unset = function() { - return { - type: "Node_Stmt_Unset", - variables: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - - -PHP.Parser.prototype.Node_Expr_Variable = function( a ) { - return { - type: "Node_Expr_Variable", - name: arguments[ 0 ], - attributes: arguments[ 1 ] - }; -}; - -PHP.Parser.prototype.Node_Expr_FuncCall = function() { - - return { - type: "Node_Expr_FuncCall", - func: arguments[ 0 ], - args: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_MethodCall = function() { - - return { - type: "Node_Expr_MethodCall", - variable: arguments[ 0 ], - name: arguments[ 1 ], - args: arguments[ 2 ], - attributes: arguments[ 3 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_StaticCall = function() { - - return { - type: "Node_Expr_StaticCall", - Class: arguments[ 0 ], - func: arguments[ 1 ], - args: arguments[ 2 ], - attributes: arguments[ 3 ] - }; - -}; - - -PHP.Parser.prototype.Node_Expr_Ternary = function() { - - return { - type: "Node_Expr_Ternary", - cond: arguments[ 0 ], - If: arguments[ 1 ], - Else: arguments[ 2 ], - attributes: arguments[ 3 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_AssignList = function() { - - return { - type: "Node_Expr_AssignList", - assignList: arguments[ 0 ], - expr: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - - -PHP.Parser.prototype.Node_Expr_Assign = function() { - - return { - type: "Node_Expr_Assign", - variable: arguments[ 0 ], - expr: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_AssignConcat = function() { - - return { - type: "Node_Expr_AssignConcat", - variable: arguments[ 0 ], - expr: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_AssignMinus = function() { - - return { - type: "Node_Expr_AssignMinus", - variable: arguments[ 0 ], - expr: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_AssignPlus = function() { - - return { - type: "Node_Expr_AssignPlus", - variable: arguments[ 0 ], - expr: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_AssignDiv = function() { - - return { - type: "Node_Expr_AssignDiv", - variable: arguments[ 0 ], - expr: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_AssignRef = function() { - - return { - type: "Node_Expr_AssignRef", - variable: arguments[ 0 ], - refVar: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_AssignMul = function() { - - return { - type: "Node_Expr_AssignMul", - variable: arguments[ 0 ], - expr: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_AssignMod = function() { - - return { - type: "Node_Expr_AssignMod", - variable: arguments[ 0 ], - expr: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_Plus = function() { - - return { - type: "Node_Expr_Plus", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_Minus = function() { - - return { - type: "Node_Expr_Minus", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - - -PHP.Parser.prototype.Node_Expr_Mul = function() { - - return { - type: "Node_Expr_Mul", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - - -PHP.Parser.prototype.Node_Expr_Div = function() { - - return { - type: "Node_Expr_Div", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - - -PHP.Parser.prototype.Node_Expr_Mod = function() { - - return { - type: "Node_Expr_Mod", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_Greater = function() { - - return { - type: "Node_Expr_Greater", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_Equal = function() { - - return { - type: "Node_Expr_Equal", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_NotEqual = function() { - - return { - type: "Node_Expr_NotEqual", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - - -PHP.Parser.prototype.Node_Expr_Identical = function() { - - return { - type: "Node_Expr_Identical", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - - -PHP.Parser.prototype.Node_Expr_NotIdentical = function() { - - return { - type: "Node_Expr_NotIdentical", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_GreaterOrEqual = function() { - - return { - type: "Node_Expr_GreaterOrEqual", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_SmallerOrEqual = function() { - - return { - type: "Node_Expr_SmallerOrEqual", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_Concat = function() { - - return { - type: "Node_Expr_Concat", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_Smaller = function() { - - return { - type: "Node_Expr_Smaller", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_PostInc = function() { - - return { - type: "Node_Expr_PostInc", - variable: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_PostDec = function() { - - return { - type: "Node_Expr_PostDec", - variable: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_PreInc = function() { - - return { - type: "Node_Expr_PreInc", - variable: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_PreDec = function() { - - return { - type: "Node_Expr_PreDec", - variable: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_Include = function() { - return { - expr: arguments[ 0 ], - type: arguments[ 1 ], - attributes: arguments[ 2 ] - }; -}; - -PHP.Parser.prototype.Node_Expr_ArrayDimFetch = function() { - - return { - type: "Node_Expr_ArrayDimFetch", - variable: arguments[ 0 ], - dim: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_StaticPropertyFetch = function() { - - return { - type: "Node_Expr_StaticPropertyFetch", - Class: arguments[ 0 ], - name: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_ClassConstFetch = function() { - - return { - type: "Node_Expr_ClassConstFetch", - Class: arguments[ 0 ], - name: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - - -PHP.Parser.prototype.Node_Expr_StaticPropertyFetch = function() { - - return { - type: "Node_Expr_StaticPropertyFetch", - Class: arguments[ 0 ], - name: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_ConstFetch = function() { - - return { - type: "Node_Expr_ConstFetch", - name: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_ArrayItem = function() { - - return { - type: "Node_Expr_ArrayItem", - value: arguments[ 0 ], - key: arguments[ 1 ], - byRef: arguments[ 2 ], - attributes: arguments[ 3 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_Array = function() { - - return { - type: "Node_Expr_Array", - items: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_PropertyFetch = function() { - - return { - type: "Node_Expr_PropertyFetch", - variable: arguments[ 0 ], - name: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_New = function() { - - return { - type: "Node_Expr_New", - Class: arguments[ 0 ], - args: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - - -PHP.Parser.prototype.Node_Expr_Print = function() { - return { - type: "Node_Expr_Print", - expr: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - - -PHP.Parser.prototype.Node_Expr_Exit = function() { - return { - type: "Node_Expr_Exit", - expr: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - - -PHP.Parser.prototype.Node_Expr_Cast_Bool = function() { - return { - type: "Node_Expr_Cast_Bool", - expr: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_Cast_Int = function() { - return { - type: "Node_Expr_Cast_Int", - expr: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_Cast_String = function() { - return { - type: "Node_Expr_Cast_String", - expr: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_Cast_Double = function() { - return { - type: "Node_Expr_Cast_Double", - expr: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_Cast_Array = function() { - return { - type: "Node_Expr_Cast_Array", - expr: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_Cast_Object = function() { - return { - type: "Node_Expr_Cast_Object", - expr: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - - -PHP.Parser.prototype.Node_Expr_ErrorSuppress = function() { - return { - type: "Node_Expr_ErrorSuppress", - expr: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - - -PHP.Parser.prototype.Node_Expr_Isset = function() { - return { - type: "Node_Expr_Isset", - variables: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - - - - -PHP.Parser.prototype.Node_Expr_UnaryMinus = function() { - return { - type: "Node_Expr_UnaryMinus", - expr: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - - -PHP.Parser.prototype.Node_Expr_UnaryPlus = function() { - return { - type: "Node_Expr_UnaryPlus", - expr: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_Empty = function() { - return { - type: "Node_Expr_Empty", - variable: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_BooleanOr = function() { - return { - type: "Node_Expr_BooleanOr", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_LogicalOr = function() { - return { - type: "Node_Expr_LogicalOr", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_LogicalAnd = function() { - return { - type: "Node_Expr_LogicalAnd", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - - -PHP.Parser.prototype.Node_Expr_LogicalXor = function() { - return { - type: "Node_Expr_LogicalXor", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_BitwiseAnd = function() { - return { - type: "Node_Expr_BitwiseAnd", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_BitwiseOr = function() { - return { - type: "Node_Expr_BitwiseOr", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_BitwiseNot = function() { - return { - type: "Node_Expr_BitwiseNot", - expr: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_BooleanNot = function() { - return { - type: "Node_Expr_BooleanNot", - expr: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_BooleanAnd = function() { - return { - type: "Node_Expr_BooleanAnd", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_Instanceof = function() { - - return { - type: "Node_Expr_Instanceof", - left: arguments[ 0 ], - right: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Expr_Clone = function() { - - return { - type: "Node_Expr_Clone", - expr: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - - - -PHP.Parser.prototype.Scalar_LNumber_parse = function( a ) { - - return a; -}; - -PHP.Parser.prototype.Scalar_DNumber_parse = function( a ) { - - return a; -}; - -PHP.Parser.prototype.Scalar_String_parseDocString = function() { - - return '"' + arguments[ 1 ].replace(/([^"\\]*(?:\\.[^"\\]*)*)"/g, '$1\\"') + '"'; -}; - - -PHP.Parser.prototype.Node_Scalar_String = function( ) { - - return { - type: "Node_Scalar_String", - value: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Scalar_String_create = function( ) { - return { - type: "Node_Scalar_String", - value: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Scalar_LNumber = function() { - - return { - type: "Node_Scalar_LNumber", - value: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - - -PHP.Parser.prototype.Node_Scalar_DNumber = function() { - - return { - type: "Node_Scalar_DNumber", - value: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - - -PHP.Parser.prototype.Node_Scalar_Encapsed = function() { - - return { - type: "Node_Scalar_Encapsed", - parts: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Name = function() { - - return { - type: "Node_Name", - parts: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Name_FullyQualified = function() { - - return { - type: "Node_Name_FullyQualified", - parts: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Name_Relative = function() { - - return { - type: "Node_Name_Relative", - parts: arguments[ 0 ], - attributes: arguments[ 1 ] - }; - -}; - -PHP.Parser.prototype.Node_Param = function() { - - return { - type: "Node_Param", - name: arguments[ 0 ], - def: arguments[ 1 ], - Type: arguments[ 2 ], - byRef: arguments[ 3 ], - attributes: arguments[ 4 ] - }; - -}; - -PHP.Parser.prototype.Node_Arg = function() { - - return { - type: "Node_Name", - value: arguments[ 0 ], - byRef: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - -PHP.Parser.prototype.Node_Const = function() { - - return { - type: "Node_Const", - name: arguments[ 0 ], - value: arguments[ 1 ], - attributes: arguments[ 2 ] - }; - -}; - - -exports.PHP = PHP; -}); diff --git a/js/vendor/ace/src-noconflict/worker-xquery.js b/js/vendor/ace/src-noconflict/worker-xquery.js deleted file mode 100644 index 9c282bf..0000000 --- a/js/vendor/ace/src-noconflict/worker-xquery.js +++ /dev/null @@ -1,21843 +0,0 @@ -"no use strict"; -;(function(window) { -if (typeof window.window != "undefined" && window.document) { - return; -} - -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.normalizeModule = function(parentId, moduleName) { - if (moduleName.indexOf("!") !== -1) { - var chunks = moduleName.split("!"); - return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]); - } - if (moduleName.charAt(0) == ".") { - var base = parentId.split("/").slice(0, -1).join("/"); - moduleName = base + "/" + moduleName; - - while(moduleName.indexOf(".") !== -1 && previous != moduleName) { - var previous = moduleName; - moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, ""); - } - } - - return moduleName; -}; - -window.require = function(parentId, id) { - if (!id) { - id = parentId - parentId = null; - } - if (!id.charAt) - throw new Error("worker.js require() accepts only (parentId, id) as arguments"); - - id = normalizeModule(parentId, id); - - var module = require.modules[id]; - if (module) { - if (!module.initialized) { - module.initialized = true; - module.exports = module.factory().exports; - } - return module.exports; - } - - var chunks = id.split("/"); - chunks[0] = require.tlns[chunks[0]] || chunks[0]; - var path = chunks.join("/") + ".js"; - - require.id = id; - importScripts(path); - return require(parentId, id); -}; - -require.modules = {}; -require.tlns = {}; - -window.define = function(id, deps, factory) { - if (arguments.length == 2) { - factory = deps; - if (typeof id != "string") { - deps = id; - id = require.id; - } - } else if (arguments.length == 1) { - factory = id; - id = require.id; - } - - if (id.indexOf("text!") === 0) - return; - - var req = function(deps, factory) { - return require(id, deps, factory); - }; - - require.modules[id] = { - exports: {}, - factory: function() { - var module = this; - var returnExports = factory(req, module.exports, module); - if (returnExports) - module.exports = returnExports; - return module; - } - }; -}; - -window.initBaseUrls = function initBaseUrls(topLevelNamespaces) { - require.tlns = topLevelNamespaces; -} - -window.initSender = function initSender() { - - var EventEmitter = require("ace/lib/event_emitter").EventEmitter; - var oop = require("ace/lib/oop"); - - var Sender = function() {}; - - (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); - - return new Sender(); -} - -window.main = null; -window.sender = null; - -window.onmessage = function(e) { - var msg = e.data; - if (msg.command) { - if (main[msg.command]) - main[msg.command].apply(main, msg.args); - else - throw new Error("Unknown command:" + msg.command); - } - else if (msg.init) { - initBaseUrls(msg.tlns); - require("ace/lib/es5-shim"); - sender = initSender(); - var clazz = require(msg.module)[msg.classname]; - main = new clazz(sender); - } - else if (msg.event && sender) { - sender._emit(msg.event, msg.data); - } -}; -})(this); - -ace.define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) { - - -var EventEmitter = {}; -var stopPropagation = function() { this.propagationStopped = true; }; -var preventDefault = function() { this.defaultPrevented = true; }; - -EventEmitter._emit = -EventEmitter._dispatchEvent = function(eventName, e) { - this._eventRegistry || (this._eventRegistry = {}); - this._defaultHandlers || (this._defaultHandlers = {}); - - var listeners = this._eventRegistry[eventName] || []; - var defaultHandler = this._defaultHandlers[eventName]; - if (!listeners.length && !defaultHandler) - return; - - if (typeof e != "object" || !e) - e = {}; - - if (!e.type) - e.type = eventName; - if (!e.stopPropagation) - e.stopPropagation = stopPropagation; - if (!e.preventDefault) - e.preventDefault = preventDefault; - - for (var i=0; i<listeners.length; i++) { - listeners[i](e, this); - if (e.propagationStopped) - break; - } - - if (defaultHandler && !e.defaultPrevented) - return defaultHandler(e, this); -}; - - -EventEmitter._signal = function(eventName, e) { - var listeners = (this._eventRegistry || {})[eventName]; - if (!listeners) - return; - - for (var i=0; i<listeners.length; 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_: {}}; - - if (handlers[eventName]) { - var old = handlers[eventName]; - var disabled = handlers._disabled_[eventName]; - if (!disabled) - handlers._disabled_[eventName] = disabled = []; - disabled.push(old); - var i = disabled.indexOf(callback); - if (i != -1) - disabled.splice(i, 1); - } - handlers[eventName] = callback; -}; -EventEmitter.removeDefaultHandler = function(eventName, callback) { - var handlers = this._defaultHandlers - if (!handlers) - return; - var disabled = handlers._disabled_[eventName]; - - if (handlers[eventName] == callback) { - var old = handlers[eventName]; - if (disabled) - this.setDefaultHandler(eventName, disabled.pop()); - } else if (disabled) { - var i = disabled.indexOf(callback); - if (i != -1) - disabled.splice(i, 1); - } -}; - -EventEmitter.on = -EventEmitter.addEventListener = function(eventName, callback, capturing) { - this._eventRegistry = this._eventRegistry || {}; - - var listeners = this._eventRegistry[eventName]; - if (!listeners) - listeners = this._eventRegistry[eventName] = []; - - if (listeners.indexOf(callback) == -1) - listeners[capturing ? "unshift" : "push"](callback); - return callback; -}; - -EventEmitter.off = -EventEmitter.removeListener = -EventEmitter.removeEventListener = function(eventName, callback) { - this._eventRegistry = this._eventRegistry || {}; - - var listeners = this._eventRegistry[eventName]; - if (!listeners) - return; - - var index = listeners.indexOf(callback); - if (index !== -1) - listeners.splice(index, 1); -}; - -EventEmitter.removeAllListeners = function(eventName) { - if (this._eventRegistry) this._eventRegistry[eventName] = []; -}; - -exports.EventEmitter = EventEmitter; - -}); - -ace.define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) { - - -exports.inherits = (function() { - var tempCtor = function() {}; - return function(ctor, superCtor) { - tempCtor.prototype = superCtor.prototype; - ctor.super_ = superCtor.prototype; - ctor.prototype = new tempCtor(); - ctor.prototype.constructor = ctor; - }; -}()); - -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/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) { - -function Empty() {} - -if (!Function.prototype.bind) { - Function.prototype.bind = function bind(that) { // .length is 1 - var target = this; - if (typeof target != "function") { - throw new TypeError("Function.prototype.bind called on incompatible " + target); - } - var args = slice.call(arguments, 1); // for normal call - var bound = function () { - - if (this instanceof bound) { - - var result = target.apply( - this, - args.concat(slice.call(arguments)) - ); - if (Object(result) === result) { - return result; - } - return this; - - } else { - return target.apply( - that, - args.concat(slice.call(arguments)) - ); - - } - - }; - if(target.prototype) { - Empty.prototype = target.prototype; - bound.prototype = new Empty(); - Empty.prototype = null; - } - return bound; - }; -} -var call = Function.prototype.call; -var prototypeOfArray = Array.prototype; -var prototypeOfObject = Object.prototype; -var slice = prototypeOfArray.slice; -var _toString = call.bind(prototypeOfObject.toString); -var owns = call.bind(prototypeOfObject.hasOwnProperty); -var defineGetter; -var defineSetter; -var lookupGetter; -var lookupSetter; -var supportsAccessors; -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__); -} -if ([1,2].splice(0).length != 2) { - if(function() { // test IE < 9 to splice bug - see issue #138 - function makeArray(l) { - var a = new Array(l+2); - a[0] = a[1] = 0; - return a; - } - var array = [], lengthBefore; - - array.splice.apply(array, makeArray(20)); - array.splice.apply(array, makeArray(26)); - - lengthBefore = array.length; //46 - array.splice(5, 0, "XXX"); // add one element - - lengthBefore + 1 == array.length - - if (lengthBefore + 1 == array.length) { - return true;// has right splice implementation without bugs - } - }()) {//IE 6/7 - var array_splice = Array.prototype.splice; - Array.prototype.splice = function(start, deleteCount) { - if (!arguments.length) { - return []; - } else { - return array_splice.apply(this, [ - start === void 0 ? 0 : start, - deleteCount === void 0 ? (this.length - start) : deleteCount - ].concat(slice.call(arguments, 2))) - } - }; - } else {//IE8 - Array.prototype.splice = function(pos, removeCount){ - var length = this.length; - if (pos > 0) { - if (pos > length) - pos = length; - } else if (pos == void 0) { - pos = 0; - } else if (pos < 0) { - pos = Math.max(length + pos, 0); - } - - if (!(pos+removeCount < length)) - removeCount = length - pos; - - var removed = this.slice(pos, pos+removeCount); - var insert = slice.call(arguments, 2); - var add = insert.length; - if (pos === length) { - if (add) { - this.push.apply(this, insert); - } - } else { - var remove = Math.min(removeCount, length - pos); - var tailOldPos = pos + remove; - var tailNewPos = tailOldPos + add - remove; - var tailCount = length - tailOldPos; - var lengthAfterRemove = length - remove; - - if (tailNewPos < tailOldPos) { // case A - for (var i = 0; i < tailCount; ++i) { - this[tailNewPos+i] = this[tailOldPos+i]; - } - } else if (tailNewPos > tailOldPos) { // case B - for (i = tailCount; i--; ) { - this[tailNewPos+i] = this[tailOldPos+i]; - } - } // else, add == remove (nothing to do) - - if (add && pos === lengthAfterRemove) { - this.length = lengthAfterRemove; // truncate array - this.push.apply(this, insert); - } else { - this.length = lengthAfterRemove + add; // reserves space - for (i = 0; i < add; ++i) { - this[pos+i] = insert[i]; - } - } - } - return removed; - }; - } -} -if (!Array.isArray) { - Array.isArray = function isArray(obj) { - return _toString(obj) == "[object Array]"; - }; -} -var boxedString = Object("a"), - splitString = boxedString[0] != "a" || !(0 in boxedString); - -if (!Array.prototype.forEach) { - Array.prototype.forEach = function forEach(fun /*, thisp*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - thisp = arguments[1], - i = -1, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(); // TODO message - } - - while (++i < length) { - if (i in self) { - fun.call(thisp, self[i], i, object); - } - } - }; -} -if (!Array.prototype.map) { - Array.prototype.map = function map(fun /*, thisp*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - result = Array(length), - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self) - result[i] = fun.call(thisp, self[i], i, object); - } - return result; - }; -} -if (!Array.prototype.filter) { - Array.prototype.filter = function filter(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - result = [], - value, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self) { - value = self[i]; - if (fun.call(thisp, value, i, object)) { - result.push(value); - } - } - } - return result; - }; -} -if (!Array.prototype.every) { - Array.prototype.every = function every(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self && !fun.call(thisp, self[i], i, object)) { - return false; - } - } - return true; - }; -} -if (!Array.prototype.some) { - Array.prototype.some = function some(fun /*, thisp */) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0, - thisp = arguments[1]; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - - for (var i = 0; i < length; i++) { - if (i in self && fun.call(thisp, self[i], i, object)) { - return true; - } - } - return false; - }; -} -if (!Array.prototype.reduce) { - Array.prototype.reduce = function reduce(fun /*, initial*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - if (!length && arguments.length == 1) { - throw new TypeError("reduce of empty array with no initial value"); - } - - var i = 0; - var result; - if (arguments.length >= 2) { - result = arguments[1]; - } else { - do { - if (i in self) { - result = self[i++]; - break; - } - if (++i >= length) { - throw new TypeError("reduce of empty array with no initial value"); - } - } while (true); - } - - for (; i < length; i++) { - if (i in self) { - result = fun.call(void 0, result, self[i], i, object); - } - } - - return result; - }; -} -if (!Array.prototype.reduceRight) { - Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) { - var object = toObject(this), - self = splitString && _toString(this) == "[object String]" ? - this.split("") : - object, - length = self.length >>> 0; - if (_toString(fun) != "[object Function]") { - throw new TypeError(fun + " is not a function"); - } - if (!length && arguments.length == 1) { - throw new TypeError("reduceRight of empty array with no initial value"); - } - - var result, i = length - 1; - if (arguments.length >= 2) { - result = arguments[1]; - } else { - do { - if (i in self) { - result = self[i--]; - break; - } - if (--i < 0) { - throw new TypeError("reduceRight of empty array with no initial value"); - } - } while (true); - } - - do { - if (i in this) { - result = fun.call(void 0, result, self[i], i, object); - } - } while (i--); - - return result; - }; -} -if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) { - Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) { - var self = splitString && _toString(this) == "[object String]" ? - this.split("") : - toObject(this), - length = self.length >>> 0; - - if (!length) { - return -1; - } - - var i = 0; - if (arguments.length > 1) { - i = toInteger(arguments[1]); - } - i = i >= 0 ? i : Math.max(0, length + i); - for (; i < length; i++) { - if (i in self && self[i] === sought) { - return i; - } - } - return -1; - }; -} -if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) { - Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) { - var self = splitString && _toString(this) == "[object String]" ? - this.split("") : - toObject(this), - length = self.length >>> 0; - - if (!length) { - return -1; - } - var i = length - 1; - if (arguments.length > 1) { - i = Math.min(i, toInteger(arguments[1])); - } - i = i >= 0 ? i : length - Math.abs(i); - for (; i >= 0; i--) { - if (i in self && sought === self[i]) { - return i; - } - } - return -1; - }; -} -if (!Object.getPrototypeOf) { - Object.getPrototypeOf = function getPrototypeOf(object) { - return object.__proto__ || ( - object.constructor ? - object.constructor.prototype : - prototypeOfObject - ); - }; -} -if (!Object.getOwnPropertyDescriptor) { - var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " + - "non-object: "; - Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) { - if ((typeof object != "object" && typeof object != "function") || object === null) - throw new TypeError(ERR_NON_OBJECT + object); - if (!owns(object, property)) - return; - - var descriptor, getter, setter; - descriptor = { enumerable: true, configurable: true }; - if (supportsAccessors) { - var prototype = object.__proto__; - object.__proto__ = prototypeOfObject; - - var getter = lookupGetter(object, property); - var setter = lookupSetter(object, property); - object.__proto__ = prototype; - - if (getter || setter) { - if (getter) descriptor.get = getter; - if (setter) descriptor.set = setter; - return descriptor; - } - } - descriptor.value = object[property]; - return descriptor; - }; -} -if (!Object.getOwnPropertyNames) { - Object.getOwnPropertyNames = function getOwnPropertyNames(object) { - return Object.keys(object); - }; -} -if (!Object.create) { - var createEmpty; - if (Object.prototype.__proto__ === null) { - createEmpty = function () { - return { "__proto__": null }; - }; - } else { - createEmpty = function () { - var empty = {}; - for (var i in empty) - empty[i] = null; - empty.constructor = - empty.hasOwnProperty = - empty.propertyIsEnumerable = - empty.isPrototypeOf = - empty.toLocaleString = - empty.toString = - empty.valueOf = - empty.__proto__ = null; - return empty; - } - } - - Object.create = function create(prototype, properties) { - var object; - if (prototype === null) { - object = createEmpty(); - } else { - if (typeof prototype != "object") - throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'"); - var Type = function () {}; - Type.prototype = prototype; - object = new Type(); - object.__proto__ = prototype; - } - if (properties !== void 0) - Object.defineProperties(object, properties); - return object; - }; -} - -function doesDefinePropertyWork(object) { - try { - Object.defineProperty(object, "sentinel", {}); - return "sentinel" in object; - } catch (exception) { - } -} -if (Object.defineProperty) { - var definePropertyWorksOnObject = doesDefinePropertyWork({}); - var definePropertyWorksOnDom = typeof document == "undefined" || - 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: "; - var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: " - var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " + - "on this javascript engine"; - - Object.defineProperty = function defineProperty(object, property, descriptor) { - if ((typeof object != "object" && typeof object != "function") || object === null) - throw new TypeError(ERR_NON_OBJECT_TARGET + object); - if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null) - 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); - if (owns(descriptor, "get")) - defineGetter(object, property, descriptor.get); - if (owns(descriptor, "set")) - defineSetter(object, property, descriptor.set); - } - - return object; - }; -} -if (!Object.defineProperties) { - Object.defineProperties = function defineProperties(object, properties) { - for (var property in properties) { - if (owns(properties, property)) - Object.defineProperty(object, property, properties[property]); - } - return object; - }; -} -if (!Object.seal) { - Object.seal = function seal(object) { - return object; - }; -} -if (!Object.freeze) { - Object.freeze = function freeze(object) { - return object; - }; -} -try { - Object.freeze(function () {}); -} catch (exception) { - Object.freeze = (function freeze(freezeObject) { - return function freeze(object) { - if (typeof object == "function") { - return object; - } else { - return freezeObject(object); - } - }; - })(Object.freeze); -} -if (!Object.preventExtensions) { - Object.preventExtensions = function preventExtensions(object) { - return object; - }; -} -if (!Object.isSealed) { - Object.isSealed = function isSealed(object) { - return false; - }; -} -if (!Object.isFrozen) { - Object.isFrozen = function isFrozen(object) { - return false; - }; -} -if (!Object.isExtensible) { - Object.isExtensible = function isExtensible(object) { - if (Object(object) === object) { - throw new TypeError(); // TODO message - } - var name = ''; - while (owns(object, name)) { - name += '?'; - } - object[name] = true; - var returnValue = owns(object, name); - delete object[name]; - return returnValue; - }; -} -if (!Object.keys) { - var hasDontEnumBug = true, - dontEnums = [ - "toString", - "toLocaleString", - "valueOf", - "hasOwnProperty", - "isPrototypeOf", - "propertyIsEnumerable", - "constructor" - ], - dontEnumsLength = dontEnums.length; - - for (var key in {"toString": null}) { - hasDontEnumBug = false; - } - - Object.keys = function keys(object) { - - if ( - (typeof object != "object" && typeof object != "function") || - object === null - ) { - throw new TypeError("Object.keys called on a non-object"); - } - - var keys = []; - for (var name in object) { - if (owns(object, name)) { - keys.push(name); - } - } - - if (hasDontEnumBug) { - for (var i = 0, ii = dontEnumsLength; i < ii; i++) { - var dontEnum = dontEnums[i]; - if (owns(object, dontEnum)) { - keys.push(dontEnum); - } - } - } - return keys; - }; - -} -if (!Date.now) { - Date.now = function now() { - return new Date().getTime(); - }; -} -var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" + - "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" + - "\u2029\uFEFF"; -if (!String.prototype.trim || ws.trim()) { - ws = "[" + ws + "]"; - var trimBeginRegexp = new RegExp("^" + ws + ws + "*"), - trimEndRegexp = new RegExp(ws + ws + "*$"); - String.prototype.trim = function trim() { - return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, ""); - }; -} - -function toInteger(n) { - n = +n; - if (n !== n) { // isNaN - n = 0; - } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) { - n = (n > 0 || -1) * Math.floor(Math.abs(n)); - } - return n; -} - -function isPrimitive(input) { - var type = typeof input; - return ( - input === null || - type === "undefined" || - type === "boolean" || - type === "number" || - type === "string" - ); -} - -function toPrimitive(input) { - var val, valueOf, toString; - if (isPrimitive(input)) { - return input; - } - valueOf = input.valueOf; - if (typeof valueOf === "function") { - val = valueOf.call(input); - if (isPrimitive(val)) { - return val; - } - } - toString = input.toString; - if (typeof toString === "function") { - val = toString.call(input); - if (isPrimitive(val)) { - return val; - } - } - throw new TypeError(); -} -var toObject = function (o) { - if (o == null) { // this matches both null and undefined - throw new TypeError("can't convert "+o+" to object"); - } - return Object(o); -}; - -}); - -ace.define('ace/mode/xquery_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/xquery/JSONParseTreeHandler', 'ace/mode/xquery/XQueryParser', 'ace/mode/xquery/visitors/SemanticHighlighter'], function(require, exports, module) { - - -var oop = require("../lib/oop"); -var Mirror = require("../worker/mirror").Mirror; -var JSONParseTreeHandler = require("./xquery/JSONParseTreeHandler").JSONParseTreeHandler; -var XQueryParser = require("./xquery/XQueryParser").XQueryParser; -var SemanticHighlighter = require("./xquery/visitors/SemanticHighlighter").SemanticHighlighter; - -var XQueryWorker = exports.XQueryWorker = function(sender) { - Mirror.call(this, sender); - this.setTimeout(200); -}; - -oop.inherits(XQueryWorker, Mirror); - -(function() { - - this.onUpdate = function() { - this.sender.emit("start"); - var value = this.doc.getValue(); - var h = new JSONParseTreeHandler(value); - var parser = new XQueryParser(value, h); - try { - parser.parse_XQuery(); - this.sender.emit("ok"); - var ast = h.getParseTree(); - var highlighter = new SemanticHighlighter(ast, value); - var tokens = highlighter.getTokens(); - this.sender.emit("highlight", { tokens: tokens, lines: highlighter.lines }); - } catch(e) { - if(e instanceof parser.ParseException) { - var prefix = value.substring(0, e.getBegin()); - var line = prefix.split("\n").length; - var column = e.getBegin() - prefix.lastIndexOf("\n"); - var message = parser.getErrorMessage(e); - this.sender.emit("error", { - row: line - 1, - column: column, - text: message, - type: "error" - }); - } else { - throw e; - } - } - }; - -}).call(XQueryWorker.prototype); - -}); -ace.define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) { - - -var Document = require("../document").Document; -var lang = require("../lib/lang"); - -var Mirror = exports.Mirror = function(sender) { - this.sender = sender; - var doc = this.doc = new Document(""); - - var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this)); - - var _self = this; - sender.on("change", function(e) { - doc.applyDeltas(e.data); - deferredUpdate.schedule(_self.$timeout); - }); -}; - -(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() { - }; - -}).call(Mirror.prototype); - -}); - -ace.define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) { - - -var oop = require("./lib/oop"); -var EventEmitter = require("./lib/event_emitter").EventEmitter; -var Range = require("./range").Range; -var Anchor = require("./anchor").Anchor; - -var Document = function(text) { - this.$lines = []; - if (text.length == 0) { - this.$lines = [""]; - } else if (Array.isArray(text)) { - this._insertLines(0, text); - } else { - this.insert({row: 0, column:0}, text); - } -}; - -(function() { - - oop.implement(this, EventEmitter); - this.setValue = function(text) { - var len = this.getLength(); - this.remove(new Range(0, 0, len, this.getLine(len-1).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); - }; - if ("aaa".split(/a/).length == 0) - this.$split = function(text) { - return text.replace(/\r\n|\r/g, "\n").split("\n"); - } - else - this.$split = 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.getNewLineCharacter = function() { - switch (this.$newLineMode) { - case "windows": - return "\r\n"; - case "unix": - return "\n"; - default: - return this.$autoNewLine; - } - }; - - this.$autoNewLine = "\n"; - this.$newLineMode = "auto"; - this.setNewLineMode = function(newLineMode) { - if (this.$newLineMode === newLineMode) - return; - - this.$newLineMode = newLineMode; - }; - this.getNewLineMode = function() { - return this.$newLineMode; - }; - this.isNewLine = function(text) { - return (text == "\r\n" || text == "\r" || text == "\n"); - }; - 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) { - if (range.start.row == range.end.row) { - return this.getLine(range.start.row) - .substring(range.start.column, range.end.column); - } - var lines = this.getLines(range.start.row, range.end.row); - lines[0] = (lines[0] || "").substring(range.start.column); - var l = lines.length - 1; - if (range.end.row - range.start.row == l) - lines[l] = lines[l].substring(0, range.end.column); - return lines.join(this.getNewLineCharacter()); - }; - - this.$clipPosition = function(position) { - var length = this.getLength(); - if (position.row >= length) { - position.row = Math.max(0, length - 1); - position.column = this.getLine(length-1).length; - } else if (position.row < 0) - position.row = 0; - return position; - }; - this.insert = function(position, text) { - if (!text || text.length === 0) - return position; - - position = this.$clipPosition(position); - if (this.getLength() <= 1) - this.$detectNewLine(text); - - var lines = this.$split(text); - var firstLine = lines.splice(0, 1)[0]; - var lastLine = lines.length == 0 ? null : lines.splice(lines.length - 1, 1)[0]; - - position = this.insertInLine(position, firstLine); - if (lastLine !== null) { - position = this.insertNewLine(position); // terminate first line - position = this._insertLines(position.row, lines); - position = this.insertInLine(position, lastLine || ""); - } - return position; - }; - this.insertLines = function(row, lines) { - if (row >= this.getLength()) - return this.insert({row: row, column: 0}, "\n" + lines.join("\n")); - return this._insertLines(Math.max(row, 0), lines); - }; - this._insertLines = function(row, lines) { - if (lines.length == 0) - return {row: row, column: 0}; - if (lines.length > 0xFFFF) { - var end = this._insertLines(row, lines.slice(0xFFFF)); - lines = lines.slice(0, 0xFFFF); - } - - var args = [row, 0]; - args.push.apply(args, lines); - this.$lines.splice.apply(this.$lines, args); - - var range = new Range(row, 0, row + lines.length, 0); - var delta = { - action: "insertLines", - range: range, - lines: lines - }; - this._emit("change", { data: delta }); - return end || range.end; - }; - this.insertNewLine = function(position) { - position = this.$clipPosition(position); - var line = this.$lines[position.row] || ""; - - this.$lines[position.row] = line.substring(0, position.column); - this.$lines.splice(position.row + 1, 0, line.substring(position.column, line.length)); - - var end = { - row : position.row + 1, - column : 0 - }; - - var delta = { - action: "insertText", - range: Range.fromPoints(position, end), - text: this.getNewLineCharacter() - }; - this._emit("change", { data: delta }); - - return end; - }; - this.insertInLine = function(position, text) { - if (text.length == 0) - return position; - - var line = this.$lines[position.row] || ""; - - this.$lines[position.row] = line.substring(0, position.column) + text - + line.substring(position.column); - - var end = { - row : position.row, - column : position.column + text.length - }; - - var delta = { - action: "insertText", - range: Range.fromPoints(position, end), - text: text - }; - this._emit("change", { data: delta }); - - return end; - }; - this.remove = function(range) { - range.start = this.$clipPosition(range.start); - range.end = this.$clipPosition(range.end); - - if (range.isEmpty()) - return range.start; - - var firstRow = range.start.row; - var lastRow = range.end.row; - - if (range.isMultiLine()) { - var firstFullRow = range.start.column == 0 ? firstRow : firstRow + 1; - var lastFullRow = lastRow - 1; - - if (range.end.column > 0) - this.removeInLine(lastRow, 0, range.end.column); - - if (lastFullRow >= firstFullRow) - this._removeLines(firstFullRow, lastFullRow); - - if (firstFullRow != firstRow) { - this.removeInLine(firstRow, range.start.column, this.getLine(firstRow).length); - this.removeNewLine(range.start.row); - } - } - else { - this.removeInLine(firstRow, range.start.column, range.end.column); - } - return range.start; - }; - this.removeInLine = function(row, startColumn, endColumn) { - if (startColumn == endColumn) - return; - - var range = new Range(row, startColumn, row, endColumn); - var line = this.getLine(row); - var removed = line.substring(startColumn, endColumn); - var newLine = line.substring(0, startColumn) + line.substring(endColumn, line.length); - this.$lines.splice(row, 1, newLine); - - var delta = { - action: "removeText", - range: range, - text: removed - }; - this._emit("change", { data: delta }); - return range.start; - }; - this.removeLines = function(firstRow, lastRow) { - if (firstRow < 0 || lastRow >= this.getLength()) - return this.remove(new Range(firstRow, 0, lastRow + 1, 0)); - return this._removeLines(firstRow, lastRow); - }; - - this._removeLines = function(firstRow, lastRow) { - var range = new Range(firstRow, 0, lastRow + 1, 0); - var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1); - - var delta = { - action: "removeLines", - range: range, - nl: this.getNewLineCharacter(), - lines: removed - }; - this._emit("change", { data: delta }); - return removed; - }; - this.removeNewLine = function(row) { - var firstLine = this.getLine(row); - var secondLine = this.getLine(row+1); - - var range = new Range(row, firstLine.length, row+1, 0); - var line = firstLine + secondLine; - - this.$lines.splice(row, 2, line); - - var delta = { - action: "removeText", - range: range, - text: this.getNewLineCharacter() - }; - this._emit("change", { data: delta }); - }; - this.replace = function(range, text) { - if (text.length == 0 && range.isEmpty()) - return range.start; - if (text == this.getTextRange(range)) - return range.end; - - this.remove(range); - if (text) { - var end = this.insert(range.start, text); - } - else { - end = range.start; - } - - return end; - }; - this.applyDeltas = function(deltas) { - for (var i=0; i<deltas.length; i++) { - var delta = deltas[i]; - var range = Range.fromPoints(delta.range.start, delta.range.end); - - if (delta.action == "insertLines") - this.insertLines(range.start.row, delta.lines); - else if (delta.action == "insertText") - this.insert(range.start, delta.text); - else if (delta.action == "removeLines") - this._removeLines(range.start.row, range.end.row - 1); - else if (delta.action == "removeText") - this.remove(range); - } - }; - this.revertDeltas = function(deltas) { - for (var i=deltas.length-1; i>=0; i--) { - var delta = deltas[i]; - - var range = Range.fromPoints(delta.range.start, delta.range.end); - - if (delta.action == "insertLines") - this._removeLines(range.start.row, range.end.row - 1); - else if (delta.action == "insertText") - this.remove(range); - else if (delta.action == "removeLines") - this._insertLines(range.start.row, delta.lines); - else if (delta.action == "removeText") - this.insert(range.start, delta.text); - } - }; - this.indexToPosition = function(index, startRow) { - var lines = this.$lines || this.getAllLines(); - var newlineLength = this.getNewLineCharacter().length; - for (var i = startRow || 0, l = lines.length; i < l; i++) { - index -= lines[i].length + newlineLength; - if (index < 0) - return {row: i, column: index + lines[i].length + newlineLength}; - } - return {row: l-1, column: lines[l-1].length}; - }; - this.positionToIndex = function(pos, startRow) { - var lines = this.$lines || this.getAllLines(); - var newlineLength = this.getNewLineCharacter().length; - var index = 0; - var row = Math.min(pos.row, lines.length); - for (var i = startRow || 0; i < row; ++i) - index += lines[i].length + newlineLength; - - return index + pos.column; - }; - -}).call(Document.prototype); - -exports.Document = Document; -}); - -ace.define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) { - -var comparePoints = function(p1, p2) { - return p1.row - p2.row || p1.column - p2.column; -}; -var 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 this.compare(row, column) == 0; - }; - this.compareRange = function(range) { - var cmp, - end = range.end, - start = range.start; - - cmp = this.compare(end.row, end.column); - if (cmp == 1) { - cmp = this.compare(start.row, start.column); - if (cmp == 1) { - return 2; - } else if (cmp == 0) { - return 1; - } else { - return 0; - } - } else if (cmp == -1) { - return -2; - } else { - cmp = this.compare(start.row, start.column); - if (cmp == -1) { - return -1; - } else if (cmp == 1) { - return 42; - } else { - return 0; - } - } - }; - this.comparePoint = function(p) { - return this.compare(p.row, p.column); - }; - this.containsRange = function(range) { - return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0; - }; - this.intersects = function(range) { - var cmp = this.compareRange(range); - return (cmp == -1 || cmp == 0 || cmp == 1); - }; - 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) { - if (typeof row == "object") { - this.start.column = row.column; - this.start.row = row.row; - } else { - this.start.row = row; - this.start.column = column; - } - }; - this.setEnd = function(row, column) { - if (typeof row == "object") { - this.end.column = row.column; - this.end.row = row.row; - } else { - this.end.row = row; - this.end.column = column; - } - }; - this.inside = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isEnd(row, column) || this.isStart(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.insideStart = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isEnd(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.insideEnd = function(row, column) { - if (this.compare(row, column) == 0) { - if (this.isStart(row, column)) { - return false; - } else { - return true; - } - } - return false; - }; - this.compare = function(row, column) { - if (!this.isMultiLine()) { - if (row === this.start.row) { - return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0); - }; - } - - if (row < this.start.row) - return -1; - - if (row > this.end.row) - return 1; - - if (this.start.row === row) - return column >= this.start.column ? 0 : -1; - - if (this.end.row === row) - return column <= this.end.column ? 0 : 1; - - return 0; - }; - this.compareStart = function(row, column) { - if (this.start.row == row && this.start.column == column) { - return -1; - } else { - return this.compare(row, column); - } - }; - this.compareEnd = function(row, column) { - if (this.end.row == row && this.end.column == column) { - return 1; - } else { - return this.compare(row, column); - } - }; - this.compareInside = function(row, column) { - if (this.end.row == row && this.end.column == column) { - return 1; - } else if (this.start.row == row && this.start.column == column) { - return -1; - } else { - return this.compare(row, column); - } - }; - this.clipRows = function(firstRow, lastRow) { - if (this.end.row > lastRow) - var end = {row: lastRow + 1, column: 0}; - else if (this.end.row < firstRow) - var end = {row: firstRow, column: 0}; - - if (this.start.row > lastRow) - var start = {row: lastRow + 1, column: 0}; - else if (this.start.row < firstRow) - 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 (cmp == 0) - return this; - else if (cmp == -1) - 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() { - if (this.end.column == 0) - return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0) - else - return new Range(this.start.row, 0, this.end.row, 0) - }; - this.toScreenRange = function(session) { - var screenPosStart = session.documentToScreenPosition(this.start); - var 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/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) { - - -var oop = require("./lib/oop"); -var EventEmitter = require("./lib/event_emitter").EventEmitter; - -var Anchor = exports.Anchor = function(doc, row, column) { - this.$onChange = this.onChange.bind(this); - this.attach(doc); - - if (typeof column == "undefined") - this.setPosition(row.row, row.column); - else - this.setPosition(row, column); -}; - -(function() { - - oop.implement(this, EventEmitter); - this.getPosition = function() { - return this.$clipPositionToDocument(this.row, this.column); - }; - this.getDocument = function() { - return this.document; - }; - this.onChange = function(e) { - var delta = e.data; - var range = delta.range; - - if (range.start.row == range.end.row && range.start.row != this.row) - return; - - if (range.start.row > this.row) - return; - - if (range.start.row == this.row && range.start.column > this.column) - return; - - var row = this.row; - var column = this.column; - var start = range.start; - var end = range.end; - - if (delta.action === "insertText") { - if (start.row === row && start.column <= column) { - if (start.row === end.row) { - column += end.column - start.column; - } else { - column -= start.column; - row += end.row - start.row; - } - } else if (start.row !== end.row && start.row < row) { - row += end.row - start.row; - } - } else if (delta.action === "insertLines") { - if (start.row <= row) { - row += end.row - start.row; - } - } else if (delta.action === "removeText") { - if (start.row === row && start.column < column) { - if (end.column >= column) - column = start.column; - else - column = Math.max(0, column - (end.column - start.column)); - - } else if (start.row !== end.row && start.row < row) { - if (end.row === row) - column = Math.max(0, column - end.column) + start.column; - row -= (end.row - start.row); - } else if (end.row === row) { - row -= end.row - start.row; - column = Math.max(0, column - end.column) + start.column; - } - } else if (delta.action == "removeLines") { - if (start.row <= row) { - if (end.row <= row) - row -= end.row - start.row; - else { - row = start.row; - column = 0; - } - } - } - - this.setPosition(row, column, true); - }; - this.setPosition = function(row, column, noClip) { - var pos; - if (noClip) { - pos = { - row: row, - column: column - }; - } else { - pos = this.$clipPositionToDocument(row, column); - } - - if (this.row == pos.row && this.column == pos.column) - return; - - var old = { - row: this.row, - column: this.column - }; - - this.row = pos.row; - this.column = pos.column; - this._emit("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 = {}; - - if (row >= this.document.getLength()) { - pos.row = Math.max(0, this.document.getLength() - 1); - pos.column = this.document.getLine(pos.row).length; - } - else if (row < 0) { - pos.row = 0; - pos.column = 0; - } - else { - pos.row = row; - pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column)); - } - - if (column < 0) - pos.column = 0; - - return pos; - }; - -}).call(Anchor.prototype); - -}); - -ace.define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) { - - -exports.stringReverse = function(string) { - return string.split("").reverse().join(""); -}; - -exports.stringRepeat = function (string, count) { - var result = ''; - while (count > 0) { - if (count & 1) - result += string; - - if (count >>= 1) - string += string; - } - return result; -}; - -var trimBeginRegexp = /^\s\s*/; -var 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){ - var copy = []; - for (var i=0, l=array.length; i<l; i++) { - if (array[i] && typeof array[i] == "object") - copy[i] = this.copyObject( array[i] ); - else - copy[i] = array[i]; - } - return copy; -}; - -exports.deepCopy = function (obj) { - if (typeof obj != "object") { - return obj; - } - - var copy = obj.constructor(); - for (var key in obj) { - if (typeof obj[key] == "object") { - copy[key] = this.deepCopy(obj[key]); - } else { - copy[key] = obj[key]; - } - } - return copy; -}; - -exports.arrayToMap = function(arr) { - var map = {}; - for (var i=0; i<arr.length; 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; i <= array.length; i++) { - if (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(/</g, "<"); -}; - -exports.getMatchOffsets = function(string, regExp) { - var matches = []; - - string.replace(regExp, function(str) { - matches.push({ - offset: arguments[arguments.length-2], - length: str.length - }); - }); - - return matches; -}; -exports.deferredCall = function(fcn) { - - var timer = null; - var callback = function() { - timer = null; - fcn(); - }; - - var deferred = function(timeout) { - deferred.cancel(); - timer = setTimeout(callback, timeout || 0); - return deferred; - }; - - deferred.schedule = deferred; - - deferred.call = function() { - this.cancel(); - fcn(); - return deferred; - }; - - deferred.cancel = function() { - clearTimeout(timer); - timer = null; - return deferred; - }; - - return deferred; -}; - - -exports.delayedCall = function(fcn, defaultTimeout) { - var timer = null; - var callback = function() { - timer = null; - fcn(); - }; - - var _self = function(timeout) { - timer && clearTimeout(timer); - timer = setTimeout(callback, timeout || defaultTimeout); - }; - - _self.delay = _self; - _self.schedule = function(timeout) { - if (timer == null) - timer = setTimeout(callback, timeout || 0); - }; - - _self.call = function() { - this.cancel(); - fcn(); - }; - - _self.cancel = function() { - timer && clearTimeout(timer); - timer = null; - }; - - _self.isPending = function() { - return timer; - }; - - return _self; -}; -}); - -ace.define('ace/mode/xquery/JSONParseTreeHandler', ['require', 'exports', 'module' ], function(require, exports, module) { - - var JSONParseTreeHandler = exports.JSONParseTreeHandler = function(code) { - var list = [ - "OrExpr", "AndExpr", "ComparisonExpr", "StringConcatExpr", "RangeExpr" - , "UnionExpr", "IntersectExceptExpr", "InstanceofExpr", "TreatExpr", "CastableExpr" - , "CastExpr", "UnaryExpr", "ValueExpr", "FTContainsExpr", "SimpleMapExpr", "PathExpr", "RelativePathExpr" - , "PostfixExpr", "StepExpr" - ]; - - var ast = null; - var ptr = null; - var remains = code; - var cursor = 0; - var lineCursor = 0; - var line = 0; - var col = 0; - - function createNode(name){ - return { name: name, children: [], getParent: null, pos: { sl: 0, sc: 0, el: 0, ec: 0 } }; - } - - function pushNode(name, begin){ - var node = createNode(name); - if(ast === null) { - ast = node; - ptr = node; - } else { - node.getParent = ptr; - ptr.children.push(node); - ptr = ptr.children[ptr.children.length - 1]; - } - } - - function popNode(){ - - if(ptr.children.length > 0) { - var s = ptr.children[0]; - var e = null; - for(var i= ptr.children.length - 1; i >= 0;i--) { - e = ptr.children[i]; - if(e.pos.el !== 0 || e.pos.ec !== 0) { - break; - } - } - ptr.pos.sl = s.pos.sl; - ptr.pos.sc = s.pos.sc; - ptr.pos.el = e.pos.el; - ptr.pos.ec = e.pos.ec; - } - if(ptr.name === "FunctionName") { - ptr.name = "EQName"; - } - if(ptr.name === "EQName" && ptr.value === undefined) { - ptr.value = ptr.children[0].value; - ptr.children.pop(); - } - - if(ptr.getParent !== null) { - ptr = ptr.getParent; - } else { - } - if(ptr.children.length > 0) { - var lastChild = ptr.children[ptr.children.length - 1]; - if(lastChild.children.length === 1 && list.indexOf(lastChild.name) !== -1) { - ptr.children[ptr.children.length - 1] = lastChild.children[0]; - } - } - } - - this.closeParseTree = function() { - while(ptr.getParent !== null) { - popNode(); - } - popNode(); - }; - - this.peek = function() { - return ptr; - }; - - this.getParseTree = function() { - return ast; - }; - - this.reset = function(input) {}; - - this.startNonterminal = function(name, begin) { - pushNode(name, begin); - }; - - this.endNonterminal = function(name, end) { - popNode(); - }; - - this.terminal = function(name, begin, end) { - name = (name.substring(0, 1) === "'" && name.substring(name.length - 1) === "'") ? "TOKEN" : name; - pushNode(name, begin); - setValue(ptr, begin, end); - popNode(); - }; - - this.whitespace = function(begin, end) { - var name = "WS"; - pushNode(name, begin); - setValue(ptr, begin, end); - popNode(); - }; - - function setValue(node, begin, end) { - - var e = end - cursor; - ptr.value = remains.substring(0, e); - remains = remains.substring(e); - cursor = end; - - var sl = line; - var sc = lineCursor; - var el = sl + ptr.value.split("\n").length - 1; - var lastIdx = ptr.value.lastIndexOf("\n"); - var ec = lastIdx === -1 ? sc + ptr.value.length : ptr.value.substring(lastIdx + 1).length; - - line = el; - lineCursor = ec; - - ptr.pos.sl = sl; - ptr.pos.sc = sc; - ptr.pos.el = el; - ptr.pos.ec = ec; - } - }; -}); - - ace.define('ace/mode/xquery/XQueryParser', ['require', 'exports', 'module' ], function(require, exports, module) { - var XQueryParser = exports.XQueryParser = function XQueryParser(string, parsingEventHandler) - { - init(string, parsingEventHandler); - var self = this; - - this.ParseException = function(b, e, s, o, x) - { - var - begin = b, - end = e, - state = s, - offending = o, - expected = x; - - this.getBegin = function() {return begin;}; - this.getEnd = function() {return end;}; - this.getState = function() {return state;}; - this.getExpected = function() {return expected;}; - this.getOffending = function() {return offending;}; - - this.getMessage = function() - { - return offending < 0 ? "lexical analysis failed" : "syntax error"; - }; - }; - - function init(string, parsingEventHandler) - { - eventHandler = parsingEventHandler; - input = string; - size = string.length; - reset(0, 0, 0); - } - - this.getInput = function() - { - return input; - }; - - function reset(l, b, e) - { - b0 = b; e0 = b; - l1 = l; b1 = b; e1 = e; - l2 = 0; - end = e; - ex = -1; - memo = {}; - eventHandler.reset(input); - } - - this.getOffendingToken = function(e) - { - var o = e.getOffending(); - return o >= 0 ? XQueryParser.TOKEN[o] : null; - }; - - this.getExpectedTokenSet = function(e) - { - var expected; - if (e.getExpected() < 0) - { - expected = XQueryParser.getTokenSet(- e.getState()); - } - else - { - expected = [XQueryParser.TOKEN[e.getExpected()]]; - } - return expected; - }; - - this.getErrorMessage = function(e) - { - var tokenSet = this.getExpectedTokenSet(e); - var found = this.getOffendingToken(e); - var prefix = input.substring(0, e.getBegin()); - var lines = prefix.split("\n"); - var line = lines.length; - var column = lines[line - 1].length + 1; - var size = e.getEnd() - e.getBegin(); - return e.getMessage() - + (found == null ? "" : ", found " + found) - + "\nwhile expecting " - + (tokenSet.length == 1 ? tokenSet[0] : ("[" + tokenSet.join(", ") + "]")) - + "\n" - + (size == 0 || found != null ? "" : "after successfully scanning " + size + " characters beginning ") - + "at line " + line + ", column " + column + ":\n..." - + input.substring(e.getBegin(), Math.min(input.length, e.getBegin() + 64)) - + "..."; - }; - - this.parse_XQuery = function() - { - eventHandler.startNonterminal("XQuery", e0); - lookahead1W(268); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Module(); - shift(25); // EOF - eventHandler.endNonterminal("XQuery", e0); - }; - - function parse_Module() - { - eventHandler.startNonterminal("Module", e0); - switch (l1) - { - case 274: // 'xquery' - lookahead2W(199); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - default: - lk = l1; - } - if (lk == 64274 // 'xquery' 'encoding' - || lk == 134930) // 'xquery' 'version' - { - parse_VersionDecl(); - } - lookahead1W(268); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - switch (l1) - { - case 182: // 'module' - lookahead2W(194); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - default: - lk = l1; - } - switch (lk) - { - case 94390: // 'module' 'namespace' - whitespace(); - parse_LibraryModule(); - break; - default: - whitespace(); - parse_MainModule(); - } - eventHandler.endNonterminal("Module", e0); - } - - function parse_VersionDecl() - { - eventHandler.startNonterminal("VersionDecl", e0); - shift(274); // 'xquery' - lookahead1W(116); // S^WS | '(:' | 'encoding' | 'version' - switch (l1) - { - case 125: // 'encoding' - shift(125); // 'encoding' - lookahead1W(17); // StringLiteral | S^WS | '(:' - shift(11); // StringLiteral - break; - default: - shift(263); // 'version' - lookahead1W(17); // StringLiteral | S^WS | '(:' - shift(11); // StringLiteral - lookahead1W(109); // S^WS | '(:' | ';' | 'encoding' - if (l1 == 125) // 'encoding' - { - shift(125); // 'encoding' - lookahead1W(17); // StringLiteral | S^WS | '(:' - shift(11); // StringLiteral - } - } - lookahead1W(28); // S^WS | '(:' | ';' - whitespace(); - parse_Separator(); - eventHandler.endNonterminal("VersionDecl", e0); - } - - function parse_LibraryModule() - { - eventHandler.startNonterminal("LibraryModule", e0); - parse_ModuleDecl(); - lookahead1W(138); // S^WS | EOF | '(:' | 'declare' | 'import' - whitespace(); - parse_Prolog(); - eventHandler.endNonterminal("LibraryModule", e0); - } - - function parse_ModuleDecl() - { - eventHandler.startNonterminal("ModuleDecl", e0); - shift(182); // 'module' - lookahead1W(61); // S^WS | '(:' | 'namespace' - shift(184); // 'namespace' - lookahead1W(247); // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_NCName(); - lookahead1W(29); // S^WS | '(:' | '=' - shift(60); // '=' - lookahead1W(15); // URILiteral | S^WS | '(:' - shift(7); // URILiteral - lookahead1W(28); // S^WS | '(:' | ';' - whitespace(); - parse_Separator(); - eventHandler.endNonterminal("ModuleDecl", e0); - } - - function parse_Prolog() - { - eventHandler.startNonterminal("Prolog", e0); - for (;;) - { - lookahead1W(268); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - switch (l1) - { - case 108: // 'declare' - lookahead2W(213); // S^WS | EOF | '!' | '!=' | '#' | '%' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | - break; - case 153: // 'import' - lookahead2W(201); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - default: - lk = l1; - } - if (lk != 42604 // 'declare' 'base-uri' - && lk != 43628 // 'declare' 'boundary-space' - && lk != 50284 // 'declare' 'construction' - && lk != 53356 // 'declare' 'copy-namespaces' - && lk != 54380 // 'declare' 'decimal-format' - && lk != 55916 // 'declare' 'default' - && lk != 72300 // 'declare' 'ft-option' - && lk != 93337 // 'import' 'module' - && lk != 94316 // 'declare' 'namespace' - && lk != 104044 // 'declare' 'ordering' - && lk != 113772 // 'declare' 'revalidation' - && lk != 115353) // 'import' 'schema' - { - break; - } - switch (l1) - { - case 108: // 'declare' - lookahead2W(178); // S^WS | '(:' | 'base-uri' | 'boundary-space' | 'construction' | - break; - default: - lk = l1; - } - if (lk == 55916) // 'declare' 'default' - { - lk = memoized(0, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - try_DefaultNamespaceDecl(); - lk = -1; - } - catch (p1A) - { - lk = -2; - } - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(0, e0, lk); - } - } - switch (lk) - { - case -1: - whitespace(); - parse_DefaultNamespaceDecl(); - break; - case 94316: // 'declare' 'namespace' - whitespace(); - parse_NamespaceDecl(); - break; - case 153: // 'import' - whitespace(); - parse_Import(); - break; - case 72300: // 'declare' 'ft-option' - whitespace(); - parse_FTOptionDecl(); - break; - default: - whitespace(); - parse_Setter(); - } - lookahead1W(28); // S^WS | '(:' | ';' - whitespace(); - parse_Separator(); - } - for (;;) - { - lookahead1W(268); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - switch (l1) - { - case 108: // 'declare' - lookahead2W(210); // S^WS | EOF | '!' | '!=' | '#' | '%' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | - break; - default: - lk = l1; - } - if (lk != 16492 // 'declare' '%' - && lk != 48748 // 'declare' 'collection' - && lk != 51820 // 'declare' 'context' - && lk != 74348 // 'declare' 'function' - && lk != 79468 // 'declare' 'index' - && lk != 82540 // 'declare' 'integrity' - && lk != 101996 // 'declare' 'option' - && lk != 131692 // 'declare' 'updating' - && lk != 134252) // 'declare' 'variable' - { - break; - } - switch (l1) - { - case 108: // 'declare' - lookahead2W(175); // S^WS | '%' | '(:' | 'collection' | 'context' | 'function' | 'index' | - break; - default: - lk = l1; - } - switch (lk) - { - case 51820: // 'declare' 'context' - whitespace(); - parse_ContextItemDecl(); - break; - case 101996: // 'declare' 'option' - whitespace(); - parse_OptionDecl(); - break; - default: - whitespace(); - parse_AnnotatedDecl(); - } - lookahead1W(28); // S^WS | '(:' | ';' - whitespace(); - parse_Separator(); - } - eventHandler.endNonterminal("Prolog", e0); - } - - function parse_Separator() - { - eventHandler.startNonterminal("Separator", e0); - shift(53); // ';' - eventHandler.endNonterminal("Separator", e0); - } - - function parse_Setter() - { - eventHandler.startNonterminal("Setter", e0); - switch (l1) - { - case 108: // 'declare' - lookahead2W(172); // S^WS | '(:' | 'base-uri' | 'boundary-space' | 'construction' | - break; - default: - lk = l1; - } - if (lk == 55916) // 'declare' 'default' - { - lk = memoized(1, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - try_DefaultCollationDecl(); - lk = -2; - } - catch (p2A) - { - try - { - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - try_EmptyOrderDecl(); - lk = -6; - } - catch (p6A) - { - lk = -9; - } - } - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(1, e0, lk); - } - } - switch (lk) - { - case 43628: // 'declare' 'boundary-space' - parse_BoundarySpaceDecl(); - break; - case -2: - parse_DefaultCollationDecl(); - break; - case 42604: // 'declare' 'base-uri' - parse_BaseURIDecl(); - break; - case 50284: // 'declare' 'construction' - parse_ConstructionDecl(); - break; - case 104044: // 'declare' 'ordering' - parse_OrderingModeDecl(); - break; - case -6: - parse_EmptyOrderDecl(); - break; - case 113772: // 'declare' 'revalidation' - parse_RevalidationDecl(); - break; - case 53356: // 'declare' 'copy-namespaces' - parse_CopyNamespacesDecl(); - break; - default: - parse_DecimalFormatDecl(); - } - eventHandler.endNonterminal("Setter", e0); - } - - function parse_BoundarySpaceDecl() - { - eventHandler.startNonterminal("BoundarySpaceDecl", e0); - shift(108); // 'declare' - lookahead1W(33); // S^WS | '(:' | 'boundary-space' - shift(85); // 'boundary-space' - lookahead1W(133); // S^WS | '(:' | 'preserve' | 'strip' - switch (l1) - { - case 214: // 'preserve' - shift(214); // 'preserve' - break; - default: - shift(241); // 'strip' - } - eventHandler.endNonterminal("BoundarySpaceDecl", e0); - } - - function parse_DefaultCollationDecl() - { - eventHandler.startNonterminal("DefaultCollationDecl", e0); - shift(108); // 'declare' - lookahead1W(46); // S^WS | '(:' | 'default' - shift(109); // 'default' - lookahead1W(38); // S^WS | '(:' | 'collation' - shift(94); // 'collation' - lookahead1W(15); // URILiteral | S^WS | '(:' - shift(7); // URILiteral - eventHandler.endNonterminal("DefaultCollationDecl", e0); - } - - function try_DefaultCollationDecl() - { - shiftT(108); // 'declare' - lookahead1W(46); // S^WS | '(:' | 'default' - shiftT(109); // 'default' - lookahead1W(38); // S^WS | '(:' | 'collation' - shiftT(94); // 'collation' - lookahead1W(15); // URILiteral | S^WS | '(:' - shiftT(7); // URILiteral - } - - function parse_BaseURIDecl() - { - eventHandler.startNonterminal("BaseURIDecl", e0); - shift(108); // 'declare' - lookahead1W(32); // S^WS | '(:' | 'base-uri' - shift(83); // 'base-uri' - lookahead1W(15); // URILiteral | S^WS | '(:' - shift(7); // URILiteral - eventHandler.endNonterminal("BaseURIDecl", e0); - } - - function parse_ConstructionDecl() - { - eventHandler.startNonterminal("ConstructionDecl", e0); - shift(108); // 'declare' - lookahead1W(41); // S^WS | '(:' | 'construction' - shift(98); // 'construction' - lookahead1W(133); // S^WS | '(:' | 'preserve' | 'strip' - switch (l1) - { - case 241: // 'strip' - shift(241); // 'strip' - break; - default: - shift(214); // 'preserve' - } - eventHandler.endNonterminal("ConstructionDecl", e0); - } - - function parse_OrderingModeDecl() - { - eventHandler.startNonterminal("OrderingModeDecl", e0); - shift(108); // 'declare' - lookahead1W(68); // S^WS | '(:' | 'ordering' - shift(203); // 'ordering' - lookahead1W(131); // S^WS | '(:' | 'ordered' | 'unordered' - switch (l1) - { - case 202: // 'ordered' - shift(202); // 'ordered' - break; - default: - shift(256); // 'unordered' - } - eventHandler.endNonterminal("OrderingModeDecl", e0); - } - - function parse_EmptyOrderDecl() - { - eventHandler.startNonterminal("EmptyOrderDecl", e0); - shift(108); // 'declare' - lookahead1W(46); // S^WS | '(:' | 'default' - shift(109); // 'default' - lookahead1W(67); // S^WS | '(:' | 'order' - shift(201); // 'order' - lookahead1W(49); // S^WS | '(:' | 'empty' - shift(123); // 'empty' - lookahead1W(121); // S^WS | '(:' | 'greatest' | 'least' - switch (l1) - { - case 147: // 'greatest' - shift(147); // 'greatest' - break; - default: - shift(173); // 'least' - } - eventHandler.endNonterminal("EmptyOrderDecl", e0); - } - - function try_EmptyOrderDecl() - { - shiftT(108); // 'declare' - lookahead1W(46); // S^WS | '(:' | 'default' - shiftT(109); // 'default' - lookahead1W(67); // S^WS | '(:' | 'order' - shiftT(201); // 'order' - lookahead1W(49); // S^WS | '(:' | 'empty' - shiftT(123); // 'empty' - lookahead1W(121); // S^WS | '(:' | 'greatest' | 'least' - switch (l1) - { - case 147: // 'greatest' - shiftT(147); // 'greatest' - break; - default: - shiftT(173); // 'least' - } - } - - function parse_CopyNamespacesDecl() - { - eventHandler.startNonterminal("CopyNamespacesDecl", e0); - shift(108); // 'declare' - lookahead1W(44); // S^WS | '(:' | 'copy-namespaces' - shift(104); // 'copy-namespaces' - lookahead1W(128); // S^WS | '(:' | 'no-preserve' | 'preserve' - whitespace(); - parse_PreserveMode(); - lookahead1W(25); // S^WS | '(:' | ',' - shift(41); // ',' - lookahead1W(123); // S^WS | '(:' | 'inherit' | 'no-inherit' - whitespace(); - parse_InheritMode(); - eventHandler.endNonterminal("CopyNamespacesDecl", e0); - } - - function parse_PreserveMode() - { - eventHandler.startNonterminal("PreserveMode", e0); - switch (l1) - { - case 214: // 'preserve' - shift(214); // 'preserve' - break; - default: - shift(190); // 'no-preserve' - } - eventHandler.endNonterminal("PreserveMode", e0); - } - - function parse_InheritMode() - { - eventHandler.startNonterminal("InheritMode", e0); - switch (l1) - { - case 157: // 'inherit' - shift(157); // 'inherit' - break; - default: - shift(189); // 'no-inherit' - } - eventHandler.endNonterminal("InheritMode", e0); - } - - function parse_DecimalFormatDecl() - { - eventHandler.startNonterminal("DecimalFormatDecl", e0); - shift(108); // 'declare' - lookahead1W(114); // S^WS | '(:' | 'decimal-format' | 'default' - switch (l1) - { - case 106: // 'decimal-format' - shift(106); // 'decimal-format' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_EQName(); - break; - default: - shift(109); // 'default' - lookahead1W(45); // S^WS | '(:' | 'decimal-format' - shift(106); // 'decimal-format' - } - for (;;) - { - lookahead1W(180); // S^WS | '(:' | ';' | 'NaN' | 'decimal-separator' | 'digit' | - if (l1 == 53) // ';' - { - break; - } - whitespace(); - parse_DFPropertyName(); - lookahead1W(29); // S^WS | '(:' | '=' - shift(60); // '=' - lookahead1W(17); // StringLiteral | S^WS | '(:' - shift(11); // StringLiteral - } - eventHandler.endNonterminal("DecimalFormatDecl", e0); - } - - function parse_DFPropertyName() - { - eventHandler.startNonterminal("DFPropertyName", e0); - switch (l1) - { - case 107: // 'decimal-separator' - shift(107); // 'decimal-separator' - break; - case 149: // 'grouping-separator' - shift(149); // 'grouping-separator' - break; - case 156: // 'infinity' - shift(156); // 'infinity' - break; - case 179: // 'minus-sign' - shift(179); // 'minus-sign' - break; - case 67: // 'NaN' - shift(67); // 'NaN' - break; - case 209: // 'percent' - shift(209); // 'percent' - break; - case 208: // 'per-mille' - shift(208); // 'per-mille' - break; - case 275: // 'zero-digit' - shift(275); // 'zero-digit' - break; - case 116: // 'digit' - shift(116); // 'digit' - break; - default: - shift(207); // 'pattern-separator' - } - eventHandler.endNonterminal("DFPropertyName", e0); - } - - function parse_Import() - { - eventHandler.startNonterminal("Import", e0); - switch (l1) - { - case 153: // 'import' - lookahead2W(126); // S^WS | '(:' | 'module' | 'schema' - break; - default: - lk = l1; - } - switch (lk) - { - case 115353: // 'import' 'schema' - parse_SchemaImport(); - break; - default: - parse_ModuleImport(); - } - eventHandler.endNonterminal("Import", e0); - } - - function parse_SchemaImport() - { - eventHandler.startNonterminal("SchemaImport", e0); - shift(153); // 'import' - lookahead1W(73); // S^WS | '(:' | 'schema' - shift(225); // 'schema' - lookahead1W(137); // URILiteral | S^WS | '(:' | 'default' | 'namespace' - if (l1 != 7) // URILiteral - { - whitespace(); - parse_SchemaPrefix(); - } - lookahead1W(15); // URILiteral | S^WS | '(:' - shift(7); // URILiteral - lookahead1W(108); // S^WS | '(:' | ';' | 'at' - if (l1 == 81) // 'at' - { - shift(81); // 'at' - lookahead1W(15); // URILiteral | S^WS | '(:' - shift(7); // URILiteral - for (;;) - { - lookahead1W(103); // S^WS | '(:' | ',' | ';' - if (l1 != 41) // ',' - { - break; - } - shift(41); // ',' - lookahead1W(15); // URILiteral | S^WS | '(:' - shift(7); // URILiteral - } - } - eventHandler.endNonterminal("SchemaImport", e0); - } - - function parse_SchemaPrefix() - { - eventHandler.startNonterminal("SchemaPrefix", e0); - switch (l1) - { - case 184: // 'namespace' - shift(184); // 'namespace' - lookahead1W(247); // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_NCName(); - lookahead1W(29); // S^WS | '(:' | '=' - shift(60); // '=' - break; - default: - shift(109); // 'default' - lookahead1W(47); // S^WS | '(:' | 'element' - shift(121); // 'element' - lookahead1W(61); // S^WS | '(:' | 'namespace' - shift(184); // 'namespace' - } - eventHandler.endNonterminal("SchemaPrefix", e0); - } - - function parse_ModuleImport() - { - eventHandler.startNonterminal("ModuleImport", e0); - shift(153); // 'import' - lookahead1W(60); // S^WS | '(:' | 'module' - shift(182); // 'module' - lookahead1W(90); // URILiteral | S^WS | '(:' | 'namespace' - if (l1 == 184) // 'namespace' - { - shift(184); // 'namespace' - lookahead1W(247); // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_NCName(); - lookahead1W(29); // S^WS | '(:' | '=' - shift(60); // '=' - } - lookahead1W(15); // URILiteral | S^WS | '(:' - shift(7); // URILiteral - lookahead1W(108); // S^WS | '(:' | ';' | 'at' - if (l1 == 81) // 'at' - { - shift(81); // 'at' - lookahead1W(15); // URILiteral | S^WS | '(:' - shift(7); // URILiteral - for (;;) - { - lookahead1W(103); // S^WS | '(:' | ',' | ';' - if (l1 != 41) // ',' - { - break; - } - shift(41); // ',' - lookahead1W(15); // URILiteral | S^WS | '(:' - shift(7); // URILiteral - } - } - eventHandler.endNonterminal("ModuleImport", e0); - } - - function parse_NamespaceDecl() - { - eventHandler.startNonterminal("NamespaceDecl", e0); - shift(108); // 'declare' - lookahead1W(61); // S^WS | '(:' | 'namespace' - shift(184); // 'namespace' - lookahead1W(247); // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_NCName(); - lookahead1W(29); // S^WS | '(:' | '=' - shift(60); // '=' - lookahead1W(15); // URILiteral | S^WS | '(:' - shift(7); // URILiteral - eventHandler.endNonterminal("NamespaceDecl", e0); - } - - function parse_DefaultNamespaceDecl() - { - eventHandler.startNonterminal("DefaultNamespaceDecl", e0); - shift(108); // 'declare' - lookahead1W(46); // S^WS | '(:' | 'default' - shift(109); // 'default' - lookahead1W(115); // S^WS | '(:' | 'element' | 'function' - switch (l1) - { - case 121: // 'element' - shift(121); // 'element' - break; - default: - shift(145); // 'function' - } - lookahead1W(61); // S^WS | '(:' | 'namespace' - shift(184); // 'namespace' - lookahead1W(15); // URILiteral | S^WS | '(:' - shift(7); // URILiteral - eventHandler.endNonterminal("DefaultNamespaceDecl", e0); - } - - function try_DefaultNamespaceDecl() - { - shiftT(108); // 'declare' - lookahead1W(46); // S^WS | '(:' | 'default' - shiftT(109); // 'default' - lookahead1W(115); // S^WS | '(:' | 'element' | 'function' - switch (l1) - { - case 121: // 'element' - shiftT(121); // 'element' - break; - default: - shiftT(145); // 'function' - } - lookahead1W(61); // S^WS | '(:' | 'namespace' - shiftT(184); // 'namespace' - lookahead1W(15); // URILiteral | S^WS | '(:' - shiftT(7); // URILiteral - } - - function parse_FTOptionDecl() - { - eventHandler.startNonterminal("FTOptionDecl", e0); - shift(108); // 'declare' - lookahead1W(52); // S^WS | '(:' | 'ft-option' - shift(141); // 'ft-option' - lookahead1W(81); // S^WS | '(:' | 'using' - whitespace(); - parse_FTMatchOptions(); - eventHandler.endNonterminal("FTOptionDecl", e0); - } - - function parse_AnnotatedDecl() - { - eventHandler.startNonterminal("AnnotatedDecl", e0); - shift(108); // 'declare' - for (;;) - { - lookahead1W(170); // S^WS | '%' | '(:' | 'collection' | 'function' | 'index' | 'integrity' | - if (l1 != 32 // '%' - && l1 != 257) // 'updating' - { - break; - } - switch (l1) - { - case 257: // 'updating' - whitespace(); - parse_CompatibilityAnnotation(); - break; - default: - whitespace(); - parse_Annotation(); - } - } - switch (l1) - { - case 262: // 'variable' - whitespace(); - parse_VarDecl(); - break; - case 145: // 'function' - whitespace(); - parse_FunctionDecl(); - break; - case 95: // 'collection' - whitespace(); - parse_CollectionDecl(); - break; - case 155: // 'index' - whitespace(); - parse_IndexDecl(); - break; - default: - whitespace(); - parse_ICDecl(); - } - eventHandler.endNonterminal("AnnotatedDecl", e0); - } - - function parse_CompatibilityAnnotation() - { - eventHandler.startNonterminal("CompatibilityAnnotation", e0); - shift(257); // 'updating' - eventHandler.endNonterminal("CompatibilityAnnotation", e0); - } - - function parse_Annotation() - { - eventHandler.startNonterminal("Annotation", e0); - shift(32); // '%' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_EQName(); - lookahead1W(171); // S^WS | '%' | '(' | '(:' | 'collection' | 'function' | 'index' | 'integrity' | - if (l1 == 34) // '(' - { - shift(34); // '(' - lookahead1W(154); // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:' - whitespace(); - parse_Literal(); - for (;;) - { - lookahead1W(101); // S^WS | '(:' | ')' | ',' - if (l1 != 41) // ',' - { - break; - } - shift(41); // ',' - lookahead1W(154); // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:' - whitespace(); - parse_Literal(); - } - shift(37); // ')' - } - eventHandler.endNonterminal("Annotation", e0); - } - - function try_Annotation() - { - shiftT(32); // '%' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_EQName(); - lookahead1W(171); // S^WS | '%' | '(' | '(:' | 'collection' | 'function' | 'index' | 'integrity' | - if (l1 == 34) // '(' - { - shiftT(34); // '(' - lookahead1W(154); // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:' - try_Literal(); - for (;;) - { - lookahead1W(101); // S^WS | '(:' | ')' | ',' - if (l1 != 41) // ',' - { - break; - } - shiftT(41); // ',' - lookahead1W(154); // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:' - try_Literal(); - } - shiftT(37); // ')' - } - } - - function parse_VarDecl() - { - eventHandler.startNonterminal("VarDecl", e0); - shift(262); // 'variable' - lookahead1W(21); // S^WS | '$' | '(:' - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - lookahead1W(147); // S^WS | '(:' | ':=' | 'as' | 'external' - if (l1 == 79) // 'as' - { - whitespace(); - parse_TypeDeclaration(); - } - lookahead1W(106); // S^WS | '(:' | ':=' | 'external' - switch (l1) - { - case 52: // ':=' - shift(52); // ':=' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_VarValue(); - break; - default: - shift(133); // 'external' - lookahead1W(104); // S^WS | '(:' | ':=' | ';' - if (l1 == 52) // ':=' - { - shift(52); // ':=' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_VarDefaultValue(); - } - } - eventHandler.endNonterminal("VarDecl", e0); - } - - function parse_VarValue() - { - eventHandler.startNonterminal("VarValue", e0); - parse_ExprSingle(); - eventHandler.endNonterminal("VarValue", e0); - } - - function parse_VarDefaultValue() - { - eventHandler.startNonterminal("VarDefaultValue", e0); - parse_ExprSingle(); - eventHandler.endNonterminal("VarDefaultValue", e0); - } - - function parse_ContextItemDecl() - { - eventHandler.startNonterminal("ContextItemDecl", e0); - shift(108); // 'declare' - lookahead1W(43); // S^WS | '(:' | 'context' - shift(101); // 'context' - lookahead1W(55); // S^WS | '(:' | 'item' - shift(165); // 'item' - lookahead1W(147); // S^WS | '(:' | ':=' | 'as' | 'external' - if (l1 == 79) // 'as' - { - shift(79); // 'as' - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_ItemType(); - } - lookahead1W(106); // S^WS | '(:' | ':=' | 'external' - switch (l1) - { - case 52: // ':=' - shift(52); // ':=' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_VarValue(); - break; - default: - shift(133); // 'external' - lookahead1W(104); // S^WS | '(:' | ':=' | ';' - if (l1 == 52) // ':=' - { - shift(52); // ':=' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_VarDefaultValue(); - } - } - eventHandler.endNonterminal("ContextItemDecl", e0); - } - - function parse_ParamList() - { - eventHandler.startNonterminal("ParamList", e0); - parse_Param(); - for (;;) - { - lookahead1W(101); // S^WS | '(:' | ')' | ',' - if (l1 != 41) // ',' - { - break; - } - shift(41); // ',' - lookahead1W(21); // S^WS | '$' | '(:' - whitespace(); - parse_Param(); - } - eventHandler.endNonterminal("ParamList", e0); - } - - function try_ParamList() - { - try_Param(); - for (;;) - { - lookahead1W(101); // S^WS | '(:' | ')' | ',' - if (l1 != 41) // ',' - { - break; - } - shiftT(41); // ',' - lookahead1W(21); // S^WS | '$' | '(:' - try_Param(); - } - } - - function parse_Param() - { - eventHandler.startNonterminal("Param", e0); - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_EQName(); - lookahead1W(143); // S^WS | '(:' | ')' | ',' | 'as' - if (l1 == 79) // 'as' - { - whitespace(); - parse_TypeDeclaration(); - } - eventHandler.endNonterminal("Param", e0); - } - - function try_Param() - { - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_EQName(); - lookahead1W(143); // S^WS | '(:' | ')' | ',' | 'as' - if (l1 == 79) // 'as' - { - try_TypeDeclaration(); - } - } - - function parse_FunctionBody() - { - eventHandler.startNonterminal("FunctionBody", e0); - parse_EnclosedExpr(); - eventHandler.endNonterminal("FunctionBody", e0); - } - - function try_FunctionBody() - { - try_EnclosedExpr(); - } - - function parse_EnclosedExpr() - { - eventHandler.startNonterminal("EnclosedExpr", e0); - shift(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Expr(); - shift(282); // '}' - eventHandler.endNonterminal("EnclosedExpr", e0); - } - - function try_EnclosedExpr() - { - shiftT(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Expr(); - shiftT(282); // '}' - } - - function parse_OptionDecl() - { - eventHandler.startNonterminal("OptionDecl", e0); - shift(108); // 'declare' - lookahead1W(66); // S^WS | '(:' | 'option' - shift(199); // 'option' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_EQName(); - lookahead1W(17); // StringLiteral | S^WS | '(:' - shift(11); // StringLiteral - eventHandler.endNonterminal("OptionDecl", e0); - } - - function parse_Expr() - { - eventHandler.startNonterminal("Expr", e0); - parse_ExprSingle(); - for (;;) - { - if (l1 != 41) // ',' - { - break; - } - shift(41); // ',' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - } - eventHandler.endNonterminal("Expr", e0); - } - - function try_Expr() - { - try_ExprSingle(); - for (;;) - { - if (l1 != 41) // ',' - { - break; - } - shiftT(41); // ',' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - } - - function parse_FLWORExpr() - { - eventHandler.startNonterminal("FLWORExpr", e0); - parse_InitialClause(); - for (;;) - { - lookahead1W(173); // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' | - if (l1 == 220) // 'return' - { - break; - } - whitespace(); - parse_IntermediateClause(); - } - whitespace(); - parse_ReturnClause(); - eventHandler.endNonterminal("FLWORExpr", e0); - } - - function try_FLWORExpr() - { - try_InitialClause(); - for (;;) - { - lookahead1W(173); // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' | - if (l1 == 220) // 'return' - { - break; - } - try_IntermediateClause(); - } - try_ReturnClause(); - } - - function parse_InitialClause() - { - eventHandler.startNonterminal("InitialClause", e0); - switch (l1) - { - case 137: // 'for' - lookahead2W(141); // S^WS | '$' | '(:' | 'sliding' | 'tumbling' - break; - default: - lk = l1; - } - switch (lk) - { - case 16009: // 'for' '$' - parse_ForClause(); - break; - case 174: // 'let' - parse_LetClause(); - break; - default: - parse_WindowClause(); - } - eventHandler.endNonterminal("InitialClause", e0); - } - - function try_InitialClause() - { - switch (l1) - { - case 137: // 'for' - lookahead2W(141); // S^WS | '$' | '(:' | 'sliding' | 'tumbling' - break; - default: - lk = l1; - } - switch (lk) - { - case 16009: // 'for' '$' - try_ForClause(); - break; - case 174: // 'let' - try_LetClause(); - break; - default: - try_WindowClause(); - } - } - - function parse_IntermediateClause() - { - eventHandler.startNonterminal("IntermediateClause", e0); - switch (l1) - { - case 137: // 'for' - case 174: // 'let' - parse_InitialClause(); - break; - case 266: // 'where' - parse_WhereClause(); - break; - case 148: // 'group' - parse_GroupByClause(); - break; - case 105: // 'count' - parse_CountClause(); - break; - default: - parse_OrderByClause(); - } - eventHandler.endNonterminal("IntermediateClause", e0); - } - - function try_IntermediateClause() - { - switch (l1) - { - case 137: // 'for' - case 174: // 'let' - try_InitialClause(); - break; - case 266: // 'where' - try_WhereClause(); - break; - case 148: // 'group' - try_GroupByClause(); - break; - case 105: // 'count' - try_CountClause(); - break; - default: - try_OrderByClause(); - } - } - - function parse_ForClause() - { - eventHandler.startNonterminal("ForClause", e0); - shift(137); // 'for' - lookahead1W(21); // S^WS | '$' | '(:' - whitespace(); - parse_ForBinding(); - for (;;) - { - if (l1 != 41) // ',' - { - break; - } - shift(41); // ',' - lookahead1W(21); // S^WS | '$' | '(:' - whitespace(); - parse_ForBinding(); - } - eventHandler.endNonterminal("ForClause", e0); - } - - function try_ForClause() - { - shiftT(137); // 'for' - lookahead1W(21); // S^WS | '$' | '(:' - try_ForBinding(); - for (;;) - { - if (l1 != 41) // ',' - { - break; - } - shiftT(41); // ',' - lookahead1W(21); // S^WS | '$' | '(:' - try_ForBinding(); - } - } - - function parse_ForBinding() - { - eventHandler.startNonterminal("ForBinding", e0); - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - lookahead1W(164); // S^WS | '(:' | 'allowing' | 'as' | 'at' | 'in' | 'score' - if (l1 == 79) // 'as' - { - whitespace(); - parse_TypeDeclaration(); - } - lookahead1W(158); // S^WS | '(:' | 'allowing' | 'at' | 'in' | 'score' - if (l1 == 72) // 'allowing' - { - whitespace(); - parse_AllowingEmpty(); - } - lookahead1W(150); // S^WS | '(:' | 'at' | 'in' | 'score' - if (l1 == 81) // 'at' - { - whitespace(); - parse_PositionalVar(); - } - lookahead1W(122); // S^WS | '(:' | 'in' | 'score' - if (l1 == 228) // 'score' - { - whitespace(); - parse_FTScoreVar(); - } - lookahead1W(53); // S^WS | '(:' | 'in' - shift(154); // 'in' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("ForBinding", e0); - } - - function try_ForBinding() - { - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - lookahead1W(164); // S^WS | '(:' | 'allowing' | 'as' | 'at' | 'in' | 'score' - if (l1 == 79) // 'as' - { - try_TypeDeclaration(); - } - lookahead1W(158); // S^WS | '(:' | 'allowing' | 'at' | 'in' | 'score' - if (l1 == 72) // 'allowing' - { - try_AllowingEmpty(); - } - lookahead1W(150); // S^WS | '(:' | 'at' | 'in' | 'score' - if (l1 == 81) // 'at' - { - try_PositionalVar(); - } - lookahead1W(122); // S^WS | '(:' | 'in' | 'score' - if (l1 == 228) // 'score' - { - try_FTScoreVar(); - } - lookahead1W(53); // S^WS | '(:' | 'in' - shiftT(154); // 'in' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - - function parse_AllowingEmpty() - { - eventHandler.startNonterminal("AllowingEmpty", e0); - shift(72); // 'allowing' - lookahead1W(49); // S^WS | '(:' | 'empty' - shift(123); // 'empty' - eventHandler.endNonterminal("AllowingEmpty", e0); - } - - function try_AllowingEmpty() - { - shiftT(72); // 'allowing' - lookahead1W(49); // S^WS | '(:' | 'empty' - shiftT(123); // 'empty' - } - - function parse_PositionalVar() - { - eventHandler.startNonterminal("PositionalVar", e0); - shift(81); // 'at' - lookahead1W(21); // S^WS | '$' | '(:' - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - eventHandler.endNonterminal("PositionalVar", e0); - } - - function try_PositionalVar() - { - shiftT(81); // 'at' - lookahead1W(21); // S^WS | '$' | '(:' - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - } - - function parse_FTScoreVar() - { - eventHandler.startNonterminal("FTScoreVar", e0); - shift(228); // 'score' - lookahead1W(21); // S^WS | '$' | '(:' - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - eventHandler.endNonterminal("FTScoreVar", e0); - } - - function try_FTScoreVar() - { - shiftT(228); // 'score' - lookahead1W(21); // S^WS | '$' | '(:' - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - } - - function parse_LetClause() - { - eventHandler.startNonterminal("LetClause", e0); - shift(174); // 'let' - lookahead1W(96); // S^WS | '$' | '(:' | 'score' - whitespace(); - parse_LetBinding(); - for (;;) - { - if (l1 != 41) // ',' - { - break; - } - shift(41); // ',' - lookahead1W(96); // S^WS | '$' | '(:' | 'score' - whitespace(); - parse_LetBinding(); - } - eventHandler.endNonterminal("LetClause", e0); - } - - function try_LetClause() - { - shiftT(174); // 'let' - lookahead1W(96); // S^WS | '$' | '(:' | 'score' - try_LetBinding(); - for (;;) - { - if (l1 != 41) // ',' - { - break; - } - shiftT(41); // ',' - lookahead1W(96); // S^WS | '$' | '(:' | 'score' - try_LetBinding(); - } - } - - function parse_LetBinding() - { - eventHandler.startNonterminal("LetBinding", e0); - switch (l1) - { - case 31: // '$' - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - lookahead1W(105); // S^WS | '(:' | ':=' | 'as' - if (l1 == 79) // 'as' - { - whitespace(); - parse_TypeDeclaration(); - } - break; - default: - parse_FTScoreVar(); - } - lookahead1W(27); // S^WS | '(:' | ':=' - shift(52); // ':=' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("LetBinding", e0); - } - - function try_LetBinding() - { - switch (l1) - { - case 31: // '$' - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - lookahead1W(105); // S^WS | '(:' | ':=' | 'as' - if (l1 == 79) // 'as' - { - try_TypeDeclaration(); - } - break; - default: - try_FTScoreVar(); - } - lookahead1W(27); // S^WS | '(:' | ':=' - shiftT(52); // ':=' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - - function parse_WindowClause() - { - eventHandler.startNonterminal("WindowClause", e0); - shift(137); // 'for' - lookahead1W(135); // S^WS | '(:' | 'sliding' | 'tumbling' - switch (l1) - { - case 251: // 'tumbling' - whitespace(); - parse_TumblingWindowClause(); - break; - default: - whitespace(); - parse_SlidingWindowClause(); - } - eventHandler.endNonterminal("WindowClause", e0); - } - - function try_WindowClause() - { - shiftT(137); // 'for' - lookahead1W(135); // S^WS | '(:' | 'sliding' | 'tumbling' - switch (l1) - { - case 251: // 'tumbling' - try_TumblingWindowClause(); - break; - default: - try_SlidingWindowClause(); - } - } - - function parse_TumblingWindowClause() - { - eventHandler.startNonterminal("TumblingWindowClause", e0); - shift(251); // 'tumbling' - lookahead1W(85); // S^WS | '(:' | 'window' - shift(269); // 'window' - lookahead1W(21); // S^WS | '$' | '(:' - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - lookahead1W(110); // S^WS | '(:' | 'as' | 'in' - if (l1 == 79) // 'as' - { - whitespace(); - parse_TypeDeclaration(); - } - lookahead1W(53); // S^WS | '(:' | 'in' - shift(154); // 'in' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - whitespace(); - parse_WindowStartCondition(); - if (l1 == 126 // 'end' - || l1 == 198) // 'only' - { - whitespace(); - parse_WindowEndCondition(); - } - eventHandler.endNonterminal("TumblingWindowClause", e0); - } - - function try_TumblingWindowClause() - { - shiftT(251); // 'tumbling' - lookahead1W(85); // S^WS | '(:' | 'window' - shiftT(269); // 'window' - lookahead1W(21); // S^WS | '$' | '(:' - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - lookahead1W(110); // S^WS | '(:' | 'as' | 'in' - if (l1 == 79) // 'as' - { - try_TypeDeclaration(); - } - lookahead1W(53); // S^WS | '(:' | 'in' - shiftT(154); // 'in' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - try_WindowStartCondition(); - if (l1 == 126 // 'end' - || l1 == 198) // 'only' - { - try_WindowEndCondition(); - } - } - - function parse_SlidingWindowClause() - { - eventHandler.startNonterminal("SlidingWindowClause", e0); - shift(234); // 'sliding' - lookahead1W(85); // S^WS | '(:' | 'window' - shift(269); // 'window' - lookahead1W(21); // S^WS | '$' | '(:' - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - lookahead1W(110); // S^WS | '(:' | 'as' | 'in' - if (l1 == 79) // 'as' - { - whitespace(); - parse_TypeDeclaration(); - } - lookahead1W(53); // S^WS | '(:' | 'in' - shift(154); // 'in' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - whitespace(); - parse_WindowStartCondition(); - whitespace(); - parse_WindowEndCondition(); - eventHandler.endNonterminal("SlidingWindowClause", e0); - } - - function try_SlidingWindowClause() - { - shiftT(234); // 'sliding' - lookahead1W(85); // S^WS | '(:' | 'window' - shiftT(269); // 'window' - lookahead1W(21); // S^WS | '$' | '(:' - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - lookahead1W(110); // S^WS | '(:' | 'as' | 'in' - if (l1 == 79) // 'as' - { - try_TypeDeclaration(); - } - lookahead1W(53); // S^WS | '(:' | 'in' - shiftT(154); // 'in' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - try_WindowStartCondition(); - try_WindowEndCondition(); - } - - function parse_WindowStartCondition() - { - eventHandler.startNonterminal("WindowStartCondition", e0); - shift(237); // 'start' - lookahead1W(163); // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when' - whitespace(); - parse_WindowVars(); - lookahead1W(83); // S^WS | '(:' | 'when' - shift(265); // 'when' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("WindowStartCondition", e0); - } - - function try_WindowStartCondition() - { - shiftT(237); // 'start' - lookahead1W(163); // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when' - try_WindowVars(); - lookahead1W(83); // S^WS | '(:' | 'when' - shiftT(265); // 'when' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - - function parse_WindowEndCondition() - { - eventHandler.startNonterminal("WindowEndCondition", e0); - if (l1 == 198) // 'only' - { - shift(198); // 'only' - } - lookahead1W(50); // S^WS | '(:' | 'end' - shift(126); // 'end' - lookahead1W(163); // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when' - whitespace(); - parse_WindowVars(); - lookahead1W(83); // S^WS | '(:' | 'when' - shift(265); // 'when' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("WindowEndCondition", e0); - } - - function try_WindowEndCondition() - { - if (l1 == 198) // 'only' - { - shiftT(198); // 'only' - } - lookahead1W(50); // S^WS | '(:' | 'end' - shiftT(126); // 'end' - lookahead1W(163); // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when' - try_WindowVars(); - lookahead1W(83); // S^WS | '(:' | 'when' - shiftT(265); // 'when' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - - function parse_WindowVars() - { - eventHandler.startNonterminal("WindowVars", e0); - if (l1 == 31) // '$' - { - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_CurrentItem(); - } - lookahead1W(159); // S^WS | '(:' | 'at' | 'next' | 'previous' | 'when' - if (l1 == 81) // 'at' - { - whitespace(); - parse_PositionalVar(); - } - lookahead1W(153); // S^WS | '(:' | 'next' | 'previous' | 'when' - if (l1 == 215) // 'previous' - { - shift(215); // 'previous' - lookahead1W(21); // S^WS | '$' | '(:' - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_PreviousItem(); - } - lookahead1W(127); // S^WS | '(:' | 'next' | 'when' - if (l1 == 187) // 'next' - { - shift(187); // 'next' - lookahead1W(21); // S^WS | '$' | '(:' - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_NextItem(); - } - eventHandler.endNonterminal("WindowVars", e0); - } - - function try_WindowVars() - { - if (l1 == 31) // '$' - { - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_CurrentItem(); - } - lookahead1W(159); // S^WS | '(:' | 'at' | 'next' | 'previous' | 'when' - if (l1 == 81) // 'at' - { - try_PositionalVar(); - } - lookahead1W(153); // S^WS | '(:' | 'next' | 'previous' | 'when' - if (l1 == 215) // 'previous' - { - shiftT(215); // 'previous' - lookahead1W(21); // S^WS | '$' | '(:' - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_PreviousItem(); - } - lookahead1W(127); // S^WS | '(:' | 'next' | 'when' - if (l1 == 187) // 'next' - { - shiftT(187); // 'next' - lookahead1W(21); // S^WS | '$' | '(:' - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_NextItem(); - } - } - - function parse_CurrentItem() - { - eventHandler.startNonterminal("CurrentItem", e0); - parse_EQName(); - eventHandler.endNonterminal("CurrentItem", e0); - } - - function try_CurrentItem() - { - try_EQName(); - } - - function parse_PreviousItem() - { - eventHandler.startNonterminal("PreviousItem", e0); - parse_EQName(); - eventHandler.endNonterminal("PreviousItem", e0); - } - - function try_PreviousItem() - { - try_EQName(); - } - - function parse_NextItem() - { - eventHandler.startNonterminal("NextItem", e0); - parse_EQName(); - eventHandler.endNonterminal("NextItem", e0); - } - - function try_NextItem() - { - try_EQName(); - } - - function parse_CountClause() - { - eventHandler.startNonterminal("CountClause", e0); - shift(105); // 'count' - lookahead1W(21); // S^WS | '$' | '(:' - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - eventHandler.endNonterminal("CountClause", e0); - } - - function try_CountClause() - { - shiftT(105); // 'count' - lookahead1W(21); // S^WS | '$' | '(:' - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - } - - function parse_WhereClause() - { - eventHandler.startNonterminal("WhereClause", e0); - shift(266); // 'where' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("WhereClause", e0); - } - - function try_WhereClause() - { - shiftT(266); // 'where' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - - function parse_GroupByClause() - { - eventHandler.startNonterminal("GroupByClause", e0); - shift(148); // 'group' - lookahead1W(34); // S^WS | '(:' | 'by' - shift(87); // 'by' - lookahead1W(21); // S^WS | '$' | '(:' - whitespace(); - parse_GroupingSpecList(); - eventHandler.endNonterminal("GroupByClause", e0); - } - - function try_GroupByClause() - { - shiftT(148); // 'group' - lookahead1W(34); // S^WS | '(:' | 'by' - shiftT(87); // 'by' - lookahead1W(21); // S^WS | '$' | '(:' - try_GroupingSpecList(); - } - - function parse_GroupingSpecList() - { - eventHandler.startNonterminal("GroupingSpecList", e0); - parse_GroupingSpec(); - for (;;) - { - lookahead1W(176); // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | - if (l1 != 41) // ',' - { - break; - } - shift(41); // ',' - lookahead1W(21); // S^WS | '$' | '(:' - whitespace(); - parse_GroupingSpec(); - } - eventHandler.endNonterminal("GroupingSpecList", e0); - } - - function try_GroupingSpecList() - { - try_GroupingSpec(); - for (;;) - { - lookahead1W(176); // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | - if (l1 != 41) // ',' - { - break; - } - shiftT(41); // ',' - lookahead1W(21); // S^WS | '$' | '(:' - try_GroupingSpec(); - } - } - - function parse_GroupingSpec() - { - eventHandler.startNonterminal("GroupingSpec", e0); - parse_GroupingVariable(); - lookahead1W(182); // S^WS | '(:' | ',' | ':=' | 'as' | 'collation' | 'count' | 'for' | 'group' | - if (l1 == 52 // ':=' - || l1 == 79) // 'as' - { - if (l1 == 79) // 'as' - { - whitespace(); - parse_TypeDeclaration(); - } - lookahead1W(27); // S^WS | '(:' | ':=' - shift(52); // ':=' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - } - if (l1 == 94) // 'collation' - { - shift(94); // 'collation' - lookahead1W(15); // URILiteral | S^WS | '(:' - shift(7); // URILiteral - } - eventHandler.endNonterminal("GroupingSpec", e0); - } - - function try_GroupingSpec() - { - try_GroupingVariable(); - lookahead1W(182); // S^WS | '(:' | ',' | ':=' | 'as' | 'collation' | 'count' | 'for' | 'group' | - if (l1 == 52 // ':=' - || l1 == 79) // 'as' - { - if (l1 == 79) // 'as' - { - try_TypeDeclaration(); - } - lookahead1W(27); // S^WS | '(:' | ':=' - shiftT(52); // ':=' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - if (l1 == 94) // 'collation' - { - shiftT(94); // 'collation' - lookahead1W(15); // URILiteral | S^WS | '(:' - shiftT(7); // URILiteral - } - } - - function parse_GroupingVariable() - { - eventHandler.startNonterminal("GroupingVariable", e0); - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - eventHandler.endNonterminal("GroupingVariable", e0); - } - - function try_GroupingVariable() - { - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - } - - function parse_OrderByClause() - { - eventHandler.startNonterminal("OrderByClause", e0); - switch (l1) - { - case 201: // 'order' - shift(201); // 'order' - lookahead1W(34); // S^WS | '(:' | 'by' - shift(87); // 'by' - break; - default: - shift(236); // 'stable' - lookahead1W(67); // S^WS | '(:' | 'order' - shift(201); // 'order' - lookahead1W(34); // S^WS | '(:' | 'by' - shift(87); // 'by' - } - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_OrderSpecList(); - eventHandler.endNonterminal("OrderByClause", e0); - } - - function try_OrderByClause() - { - switch (l1) - { - case 201: // 'order' - shiftT(201); // 'order' - lookahead1W(34); // S^WS | '(:' | 'by' - shiftT(87); // 'by' - break; - default: - shiftT(236); // 'stable' - lookahead1W(67); // S^WS | '(:' | 'order' - shiftT(201); // 'order' - lookahead1W(34); // S^WS | '(:' | 'by' - shiftT(87); // 'by' - } - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_OrderSpecList(); - } - - function parse_OrderSpecList() - { - eventHandler.startNonterminal("OrderSpecList", e0); - parse_OrderSpec(); - for (;;) - { - lookahead1W(176); // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | - if (l1 != 41) // ',' - { - break; - } - shift(41); // ',' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_OrderSpec(); - } - eventHandler.endNonterminal("OrderSpecList", e0); - } - - function try_OrderSpecList() - { - try_OrderSpec(); - for (;;) - { - lookahead1W(176); // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | - if (l1 != 41) // ',' - { - break; - } - shiftT(41); // ',' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_OrderSpec(); - } - } - - function parse_OrderSpec() - { - eventHandler.startNonterminal("OrderSpec", e0); - parse_ExprSingle(); - whitespace(); - parse_OrderModifier(); - eventHandler.endNonterminal("OrderSpec", e0); - } - - function try_OrderSpec() - { - try_ExprSingle(); - try_OrderModifier(); - } - - function parse_OrderModifier() - { - eventHandler.startNonterminal("OrderModifier", e0); - if (l1 == 80 // 'ascending' - || l1 == 113) // 'descending' - { - switch (l1) - { - case 80: // 'ascending' - shift(80); // 'ascending' - break; - default: - shift(113); // 'descending' - } - } - lookahead1W(179); // S^WS | '(:' | ',' | 'collation' | 'count' | 'empty' | 'for' | 'group' | 'let' | - if (l1 == 123) // 'empty' - { - shift(123); // 'empty' - lookahead1W(121); // S^WS | '(:' | 'greatest' | 'least' - switch (l1) - { - case 147: // 'greatest' - shift(147); // 'greatest' - break; - default: - shift(173); // 'least' - } - } - lookahead1W(177); // S^WS | '(:' | ',' | 'collation' | 'count' | 'for' | 'group' | 'let' | 'order' | - if (l1 == 94) // 'collation' - { - shift(94); // 'collation' - lookahead1W(15); // URILiteral | S^WS | '(:' - shift(7); // URILiteral - } - eventHandler.endNonterminal("OrderModifier", e0); - } - - function try_OrderModifier() - { - if (l1 == 80 // 'ascending' - || l1 == 113) // 'descending' - { - switch (l1) - { - case 80: // 'ascending' - shiftT(80); // 'ascending' - break; - default: - shiftT(113); // 'descending' - } - } - lookahead1W(179); // S^WS | '(:' | ',' | 'collation' | 'count' | 'empty' | 'for' | 'group' | 'let' | - if (l1 == 123) // 'empty' - { - shiftT(123); // 'empty' - lookahead1W(121); // S^WS | '(:' | 'greatest' | 'least' - switch (l1) - { - case 147: // 'greatest' - shiftT(147); // 'greatest' - break; - default: - shiftT(173); // 'least' - } - } - lookahead1W(177); // S^WS | '(:' | ',' | 'collation' | 'count' | 'for' | 'group' | 'let' | 'order' | - if (l1 == 94) // 'collation' - { - shiftT(94); // 'collation' - lookahead1W(15); // URILiteral | S^WS | '(:' - shiftT(7); // URILiteral - } - } - - function parse_ReturnClause() - { - eventHandler.startNonterminal("ReturnClause", e0); - shift(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("ReturnClause", e0); - } - - function try_ReturnClause() - { - shiftT(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - - function parse_QuantifiedExpr() - { - eventHandler.startNonterminal("QuantifiedExpr", e0); - switch (l1) - { - case 235: // 'some' - shift(235); // 'some' - break; - default: - shift(129); // 'every' - } - lookahead1W(21); // S^WS | '$' | '(:' - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - lookahead1W(110); // S^WS | '(:' | 'as' | 'in' - if (l1 == 79) // 'as' - { - whitespace(); - parse_TypeDeclaration(); - } - lookahead1W(53); // S^WS | '(:' | 'in' - shift(154); // 'in' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - for (;;) - { - if (l1 != 41) // ',' - { - break; - } - shift(41); // ',' - lookahead1W(21); // S^WS | '$' | '(:' - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - lookahead1W(110); // S^WS | '(:' | 'as' | 'in' - if (l1 == 79) // 'as' - { - whitespace(); - parse_TypeDeclaration(); - } - lookahead1W(53); // S^WS | '(:' | 'in' - shift(154); // 'in' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - } - shift(224); // 'satisfies' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("QuantifiedExpr", e0); - } - - function try_QuantifiedExpr() - { - switch (l1) - { - case 235: // 'some' - shiftT(235); // 'some' - break; - default: - shiftT(129); // 'every' - } - lookahead1W(21); // S^WS | '$' | '(:' - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - lookahead1W(110); // S^WS | '(:' | 'as' | 'in' - if (l1 == 79) // 'as' - { - try_TypeDeclaration(); - } - lookahead1W(53); // S^WS | '(:' | 'in' - shiftT(154); // 'in' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - for (;;) - { - if (l1 != 41) // ',' - { - break; - } - shiftT(41); // ',' - lookahead1W(21); // S^WS | '$' | '(:' - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - lookahead1W(110); // S^WS | '(:' | 'as' | 'in' - if (l1 == 79) // 'as' - { - try_TypeDeclaration(); - } - lookahead1W(53); // S^WS | '(:' | 'in' - shiftT(154); // 'in' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - shiftT(224); // 'satisfies' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - - function parse_SwitchExpr() - { - eventHandler.startNonterminal("SwitchExpr", e0); - shift(243); // 'switch' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Expr(); - shift(37); // ')' - for (;;) - { - lookahead1W(35); // S^WS | '(:' | 'case' - whitespace(); - parse_SwitchCaseClause(); - if (l1 != 88) // 'case' - { - break; - } - } - shift(109); // 'default' - lookahead1W(70); // S^WS | '(:' | 'return' - shift(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("SwitchExpr", e0); - } - - function try_SwitchExpr() - { - shiftT(243); // 'switch' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Expr(); - shiftT(37); // ')' - for (;;) - { - lookahead1W(35); // S^WS | '(:' | 'case' - try_SwitchCaseClause(); - if (l1 != 88) // 'case' - { - break; - } - } - shiftT(109); // 'default' - lookahead1W(70); // S^WS | '(:' | 'return' - shiftT(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - - function parse_SwitchCaseClause() - { - eventHandler.startNonterminal("SwitchCaseClause", e0); - for (;;) - { - shift(88); // 'case' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_SwitchCaseOperand(); - if (l1 != 88) // 'case' - { - break; - } - } - shift(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("SwitchCaseClause", e0); - } - - function try_SwitchCaseClause() - { - for (;;) - { - shiftT(88); // 'case' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_SwitchCaseOperand(); - if (l1 != 88) // 'case' - { - break; - } - } - shiftT(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - - function parse_SwitchCaseOperand() - { - eventHandler.startNonterminal("SwitchCaseOperand", e0); - parse_ExprSingle(); - eventHandler.endNonterminal("SwitchCaseOperand", e0); - } - - function try_SwitchCaseOperand() - { - try_ExprSingle(); - } - - function parse_TypeswitchExpr() - { - eventHandler.startNonterminal("TypeswitchExpr", e0); - shift(253); // 'typeswitch' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Expr(); - shift(37); // ')' - for (;;) - { - lookahead1W(35); // S^WS | '(:' | 'case' - whitespace(); - parse_CaseClause(); - if (l1 != 88) // 'case' - { - break; - } - } - shift(109); // 'default' - lookahead1W(95); // S^WS | '$' | '(:' | 'return' - if (l1 == 31) // '$' - { - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - } - lookahead1W(70); // S^WS | '(:' | 'return' - shift(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("TypeswitchExpr", e0); - } - - function try_TypeswitchExpr() - { - shiftT(253); // 'typeswitch' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Expr(); - shiftT(37); // ')' - for (;;) - { - lookahead1W(35); // S^WS | '(:' | 'case' - try_CaseClause(); - if (l1 != 88) // 'case' - { - break; - } - } - shiftT(109); // 'default' - lookahead1W(95); // S^WS | '$' | '(:' | 'return' - if (l1 == 31) // '$' - { - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - } - lookahead1W(70); // S^WS | '(:' | 'return' - shiftT(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - - function parse_CaseClause() - { - eventHandler.startNonterminal("CaseClause", e0); - shift(88); // 'case' - lookahead1W(260); // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' | - if (l1 == 31) // '$' - { - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - lookahead1W(30); // S^WS | '(:' | 'as' - shift(79); // 'as' - } - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_SequenceTypeUnion(); - shift(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("CaseClause", e0); - } - - function try_CaseClause() - { - shiftT(88); // 'case' - lookahead1W(260); // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' | - if (l1 == 31) // '$' - { - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - lookahead1W(30); // S^WS | '(:' | 'as' - shiftT(79); // 'as' - } - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - try_SequenceTypeUnion(); - shiftT(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - - function parse_SequenceTypeUnion() - { - eventHandler.startNonterminal("SequenceTypeUnion", e0); - parse_SequenceType(); - for (;;) - { - lookahead1W(134); // S^WS | '(:' | 'return' | '|' - if (l1 != 279) // '|' - { - break; - } - shift(279); // '|' - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_SequenceType(); - } - eventHandler.endNonterminal("SequenceTypeUnion", e0); - } - - function try_SequenceTypeUnion() - { - try_SequenceType(); - for (;;) - { - lookahead1W(134); // S^WS | '(:' | 'return' | '|' - if (l1 != 279) // '|' - { - break; - } - shiftT(279); // '|' - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - try_SequenceType(); - } - } - - function parse_IfExpr() - { - eventHandler.startNonterminal("IfExpr", e0); - shift(152); // 'if' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Expr(); - shift(37); // ')' - lookahead1W(77); // S^WS | '(:' | 'then' - shift(245); // 'then' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - shift(122); // 'else' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("IfExpr", e0); - } - - function try_IfExpr() - { - shiftT(152); // 'if' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Expr(); - shiftT(37); // ')' - lookahead1W(77); // S^WS | '(:' | 'then' - shiftT(245); // 'then' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - shiftT(122); // 'else' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - - function parse_TryCatchExpr() - { - eventHandler.startNonterminal("TryCatchExpr", e0); - parse_TryClause(); - for (;;) - { - lookahead1W(36); // S^WS | '(:' | 'catch' - whitespace(); - parse_CatchClause(); - lookahead1W(184); // S^WS | EOF | '(:' | ')' | ',' | ':' | ';' | ']' | 'after' | 'as' | 'ascending' | - if (l1 != 91) // 'catch' - { - break; - } - } - eventHandler.endNonterminal("TryCatchExpr", e0); - } - - function try_TryCatchExpr() - { - try_TryClause(); - for (;;) - { - lookahead1W(36); // S^WS | '(:' | 'catch' - try_CatchClause(); - lookahead1W(184); // S^WS | EOF | '(:' | ')' | ',' | ':' | ';' | ']' | 'after' | 'as' | 'ascending' | - if (l1 != 91) // 'catch' - { - break; - } - } - } - - function parse_TryClause() - { - eventHandler.startNonterminal("TryClause", e0); - shift(250); // 'try' - lookahead1W(87); // S^WS | '(:' | '{' - shift(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_TryTargetExpr(); - shift(282); // '}' - eventHandler.endNonterminal("TryClause", e0); - } - - function try_TryClause() - { - shiftT(250); // 'try' - lookahead1W(87); // S^WS | '(:' | '{' - shiftT(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_TryTargetExpr(); - shiftT(282); // '}' - } - - function parse_TryTargetExpr() - { - eventHandler.startNonterminal("TryTargetExpr", e0); - parse_Expr(); - eventHandler.endNonterminal("TryTargetExpr", e0); - } - - function try_TryTargetExpr() - { - try_Expr(); - } - - function parse_CatchClause() - { - eventHandler.startNonterminal("CatchClause", e0); - shift(91); // 'catch' - lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_CatchErrorList(); - shift(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Expr(); - shift(282); // '}' - eventHandler.endNonterminal("CatchClause", e0); - } - - function try_CatchClause() - { - shiftT(91); // 'catch' - lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_CatchErrorList(); - shiftT(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Expr(); - shiftT(282); // '}' - } - - function parse_CatchErrorList() - { - eventHandler.startNonterminal("CatchErrorList", e0); - parse_NameTest(); - for (;;) - { - lookahead1W(136); // S^WS | '(:' | '{' | '|' - if (l1 != 279) // '|' - { - break; - } - shift(279); // '|' - lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_NameTest(); - } - eventHandler.endNonterminal("CatchErrorList", e0); - } - - function try_CatchErrorList() - { - try_NameTest(); - for (;;) - { - lookahead1W(136); // S^WS | '(:' | '{' | '|' - if (l1 != 279) // '|' - { - break; - } - shiftT(279); // '|' - lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_NameTest(); - } - } - - function parse_OrExpr() - { - eventHandler.startNonterminal("OrExpr", e0); - parse_AndExpr(); - for (;;) - { - if (l1 != 200) // 'or' - { - break; - } - shift(200); // 'or' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_AndExpr(); - } - eventHandler.endNonterminal("OrExpr", e0); - } - - function try_OrExpr() - { - try_AndExpr(); - for (;;) - { - if (l1 != 200) // 'or' - { - break; - } - shiftT(200); // 'or' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_AndExpr(); - } - } - - function parse_AndExpr() - { - eventHandler.startNonterminal("AndExpr", e0); - parse_ComparisonExpr(); - for (;;) - { - if (l1 != 75) // 'and' - { - break; - } - shift(75); // 'and' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ComparisonExpr(); - } - eventHandler.endNonterminal("AndExpr", e0); - } - - function try_AndExpr() - { - try_ComparisonExpr(); - for (;;) - { - if (l1 != 75) // 'and' - { - break; - } - shiftT(75); // 'and' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ComparisonExpr(); - } - } - - function parse_ComparisonExpr() - { - eventHandler.startNonterminal("ComparisonExpr", e0); - parse_FTContainsExpr(); - if (l1 == 27 // '!=' - || l1 == 54 // '<' - || l1 == 57 // '<<' - || l1 == 58 // '<=' - || l1 == 60 // '=' - || l1 == 61 // '>' - || l1 == 62 // '>=' - || l1 == 63 // '>>' - || l1 == 128 // 'eq' - || l1 == 146 // 'ge' - || l1 == 150 // 'gt' - || l1 == 164 // 'is' - || l1 == 172 // 'le' - || l1 == 178 // 'lt' - || l1 == 186) // 'ne' - { - switch (l1) - { - case 128: // 'eq' - case 146: // 'ge' - case 150: // 'gt' - case 172: // 'le' - case 178: // 'lt' - case 186: // 'ne' - whitespace(); - parse_ValueComp(); - break; - case 57: // '<<' - case 63: // '>>' - case 164: // 'is' - whitespace(); - parse_NodeComp(); - break; - default: - whitespace(); - parse_GeneralComp(); - } - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_FTContainsExpr(); - } - eventHandler.endNonterminal("ComparisonExpr", e0); - } - - function try_ComparisonExpr() - { - try_FTContainsExpr(); - if (l1 == 27 // '!=' - || l1 == 54 // '<' - || l1 == 57 // '<<' - || l1 == 58 // '<=' - || l1 == 60 // '=' - || l1 == 61 // '>' - || l1 == 62 // '>=' - || l1 == 63 // '>>' - || l1 == 128 // 'eq' - || l1 == 146 // 'ge' - || l1 == 150 // 'gt' - || l1 == 164 // 'is' - || l1 == 172 // 'le' - || l1 == 178 // 'lt' - || l1 == 186) // 'ne' - { - switch (l1) - { - case 128: // 'eq' - case 146: // 'ge' - case 150: // 'gt' - case 172: // 'le' - case 178: // 'lt' - case 186: // 'ne' - try_ValueComp(); - break; - case 57: // '<<' - case 63: // '>>' - case 164: // 'is' - try_NodeComp(); - break; - default: - try_GeneralComp(); - } - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_FTContainsExpr(); - } - } - - function parse_FTContainsExpr() - { - eventHandler.startNonterminal("FTContainsExpr", e0); - parse_StringConcatExpr(); - if (l1 == 99) // 'contains' - { - shift(99); // 'contains' - lookahead1W(76); // S^WS | '(:' | 'text' - shift(244); // 'text' - lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' - whitespace(); - parse_FTSelection(); - if (l1 == 271) // 'without' - { - whitespace(); - parse_FTIgnoreOption(); - } - } - eventHandler.endNonterminal("FTContainsExpr", e0); - } - - function try_FTContainsExpr() - { - try_StringConcatExpr(); - if (l1 == 99) // 'contains' - { - shiftT(99); // 'contains' - lookahead1W(76); // S^WS | '(:' | 'text' - shiftT(244); // 'text' - lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' - try_FTSelection(); - if (l1 == 271) // 'without' - { - try_FTIgnoreOption(); - } - } - } - - function parse_StringConcatExpr() - { - eventHandler.startNonterminal("StringConcatExpr", e0); - parse_RangeExpr(); - for (;;) - { - if (l1 != 280) // '||' - { - break; - } - shift(280); // '||' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_RangeExpr(); - } - eventHandler.endNonterminal("StringConcatExpr", e0); - } - - function try_StringConcatExpr() - { - try_RangeExpr(); - for (;;) - { - if (l1 != 280) // '||' - { - break; - } - shiftT(280); // '||' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_RangeExpr(); - } - } - - function parse_RangeExpr() - { - eventHandler.startNonterminal("RangeExpr", e0); - parse_AdditiveExpr(); - if (l1 == 248) // 'to' - { - shift(248); // 'to' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_AdditiveExpr(); - } - eventHandler.endNonterminal("RangeExpr", e0); - } - - function try_RangeExpr() - { - try_AdditiveExpr(); - if (l1 == 248) // 'to' - { - shiftT(248); // 'to' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_AdditiveExpr(); - } - } - - function parse_AdditiveExpr() - { - eventHandler.startNonterminal("AdditiveExpr", e0); - parse_MultiplicativeExpr(); - for (;;) - { - if (l1 != 40 // '+' - && l1 != 42) // '-' - { - break; - } - switch (l1) - { - case 40: // '+' - shift(40); // '+' - break; - default: - shift(42); // '-' - } - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_MultiplicativeExpr(); - } - eventHandler.endNonterminal("AdditiveExpr", e0); - } - - function try_AdditiveExpr() - { - try_MultiplicativeExpr(); - for (;;) - { - if (l1 != 40 // '+' - && l1 != 42) // '-' - { - break; - } - switch (l1) - { - case 40: // '+' - shiftT(40); // '+' - break; - default: - shiftT(42); // '-' - } - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_MultiplicativeExpr(); - } - } - - function parse_MultiplicativeExpr() - { - eventHandler.startNonterminal("MultiplicativeExpr", e0); - parse_UnionExpr(); - for (;;) - { - if (l1 != 38 // '*' - && l1 != 118 // 'div' - && l1 != 151 // 'idiv' - && l1 != 180) // 'mod' - { - break; - } - switch (l1) - { - case 38: // '*' - shift(38); // '*' - break; - case 118: // 'div' - shift(118); // 'div' - break; - case 151: // 'idiv' - shift(151); // 'idiv' - break; - default: - shift(180); // 'mod' - } - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_UnionExpr(); - } - eventHandler.endNonterminal("MultiplicativeExpr", e0); - } - - function try_MultiplicativeExpr() - { - try_UnionExpr(); - for (;;) - { - if (l1 != 38 // '*' - && l1 != 118 // 'div' - && l1 != 151 // 'idiv' - && l1 != 180) // 'mod' - { - break; - } - switch (l1) - { - case 38: // '*' - shiftT(38); // '*' - break; - case 118: // 'div' - shiftT(118); // 'div' - break; - case 151: // 'idiv' - shiftT(151); // 'idiv' - break; - default: - shiftT(180); // 'mod' - } - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_UnionExpr(); - } - } - - function parse_UnionExpr() - { - eventHandler.startNonterminal("UnionExpr", e0); - parse_IntersectExceptExpr(); - for (;;) - { - if (l1 != 254 // 'union' - && l1 != 279) // '|' - { - break; - } - switch (l1) - { - case 254: // 'union' - shift(254); // 'union' - break; - default: - shift(279); // '|' - } - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_IntersectExceptExpr(); - } - eventHandler.endNonterminal("UnionExpr", e0); - } - - function try_UnionExpr() - { - try_IntersectExceptExpr(); - for (;;) - { - if (l1 != 254 // 'union' - && l1 != 279) // '|' - { - break; - } - switch (l1) - { - case 254: // 'union' - shiftT(254); // 'union' - break; - default: - shiftT(279); // '|' - } - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_IntersectExceptExpr(); - } - } - - function parse_IntersectExceptExpr() - { - eventHandler.startNonterminal("IntersectExceptExpr", e0); - parse_InstanceofExpr(); - for (;;) - { - lookahead1W(222); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' | - if (l1 != 131 // 'except' - && l1 != 162) // 'intersect' - { - break; - } - switch (l1) - { - case 162: // 'intersect' - shift(162); // 'intersect' - break; - default: - shift(131); // 'except' - } - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_InstanceofExpr(); - } - eventHandler.endNonterminal("IntersectExceptExpr", e0); - } - - function try_IntersectExceptExpr() - { - try_InstanceofExpr(); - for (;;) - { - lookahead1W(222); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' | - if (l1 != 131 // 'except' - && l1 != 162) // 'intersect' - { - break; - } - switch (l1) - { - case 162: // 'intersect' - shiftT(162); // 'intersect' - break; - default: - shiftT(131); // 'except' - } - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_InstanceofExpr(); - } - } - - function parse_InstanceofExpr() - { - eventHandler.startNonterminal("InstanceofExpr", e0); - parse_TreatExpr(); - lookahead1W(223); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' | - if (l1 == 160) // 'instance' - { - shift(160); // 'instance' - lookahead1W(64); // S^WS | '(:' | 'of' - shift(196); // 'of' - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_SequenceType(); - } - eventHandler.endNonterminal("InstanceofExpr", e0); - } - - function try_InstanceofExpr() - { - try_TreatExpr(); - lookahead1W(223); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' | - if (l1 == 160) // 'instance' - { - shiftT(160); // 'instance' - lookahead1W(64); // S^WS | '(:' | 'of' - shiftT(196); // 'of' - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - try_SequenceType(); - } - } - - function parse_TreatExpr() - { - eventHandler.startNonterminal("TreatExpr", e0); - parse_CastableExpr(); - lookahead1W(224); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' | - if (l1 == 249) // 'treat' - { - shift(249); // 'treat' - lookahead1W(30); // S^WS | '(:' | 'as' - shift(79); // 'as' - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_SequenceType(); - } - eventHandler.endNonterminal("TreatExpr", e0); - } - - function try_TreatExpr() - { - try_CastableExpr(); - lookahead1W(224); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' | - if (l1 == 249) // 'treat' - { - shiftT(249); // 'treat' - lookahead1W(30); // S^WS | '(:' | 'as' - shiftT(79); // 'as' - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - try_SequenceType(); - } - } - - function parse_CastableExpr() - { - eventHandler.startNonterminal("CastableExpr", e0); - parse_CastExpr(); - lookahead1W(225); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' | - if (l1 == 90) // 'castable' - { - shift(90); // 'castable' - lookahead1W(30); // S^WS | '(:' | 'as' - shift(79); // 'as' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_SingleType(); - } - eventHandler.endNonterminal("CastableExpr", e0); - } - - function try_CastableExpr() - { - try_CastExpr(); - lookahead1W(225); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' | - if (l1 == 90) // 'castable' - { - shiftT(90); // 'castable' - lookahead1W(30); // S^WS | '(:' | 'as' - shiftT(79); // 'as' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_SingleType(); - } - } - - function parse_CastExpr() - { - eventHandler.startNonterminal("CastExpr", e0); - parse_UnaryExpr(); - lookahead1W(227); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' | - if (l1 == 89) // 'cast' - { - shift(89); // 'cast' - lookahead1W(30); // S^WS | '(:' | 'as' - shift(79); // 'as' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_SingleType(); - } - eventHandler.endNonterminal("CastExpr", e0); - } - - function try_CastExpr() - { - try_UnaryExpr(); - lookahead1W(227); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' | - if (l1 == 89) // 'cast' - { - shiftT(89); // 'cast' - lookahead1W(30); // S^WS | '(:' | 'as' - shiftT(79); // 'as' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_SingleType(); - } - } - - function parse_UnaryExpr() - { - eventHandler.startNonterminal("UnaryExpr", e0); - for (;;) - { - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - if (l1 != 40 // '+' - && l1 != 42) // '-' - { - break; - } - switch (l1) - { - case 42: // '-' - shift(42); // '-' - break; - default: - shift(40); // '+' - } - } - whitespace(); - parse_ValueExpr(); - eventHandler.endNonterminal("UnaryExpr", e0); - } - - function try_UnaryExpr() - { - for (;;) - { - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - if (l1 != 40 // '+' - && l1 != 42) // '-' - { - break; - } - switch (l1) - { - case 42: // '-' - shiftT(42); // '-' - break; - default: - shiftT(40); // '+' - } - } - try_ValueExpr(); - } - - function parse_ValueExpr() - { - eventHandler.startNonterminal("ValueExpr", e0); - switch (l1) - { - case 260: // 'validate' - lookahead2W(246); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | - break; - default: - lk = l1; - } - switch (lk) - { - case 87812: // 'validate' 'lax' - case 123140: // 'validate' 'strict' - case 129284: // 'validate' 'type' - case 141572: // 'validate' '{' - parse_ValidateExpr(); - break; - case 35: // '(#' - parse_ExtensionExpr(); - break; - default: - parse_SimpleMapExpr(); - } - eventHandler.endNonterminal("ValueExpr", e0); - } - - function try_ValueExpr() - { - switch (l1) - { - case 260: // 'validate' - lookahead2W(246); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | - break; - default: - lk = l1; - } - switch (lk) - { - case 87812: // 'validate' 'lax' - case 123140: // 'validate' 'strict' - case 129284: // 'validate' 'type' - case 141572: // 'validate' '{' - try_ValidateExpr(); - break; - case 35: // '(#' - try_ExtensionExpr(); - break; - default: - try_SimpleMapExpr(); - } - } - - function parse_SimpleMapExpr() - { - eventHandler.startNonterminal("SimpleMapExpr", e0); - parse_PathExpr(); - for (;;) - { - if (l1 != 26) // '!' - { - break; - } - shift(26); // '!' - lookahead1W(264); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_PathExpr(); - } - eventHandler.endNonterminal("SimpleMapExpr", e0); - } - - function try_SimpleMapExpr() - { - try_PathExpr(); - for (;;) - { - if (l1 != 26) // '!' - { - break; - } - shiftT(26); // '!' - lookahead1W(264); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_PathExpr(); - } - } - - function parse_GeneralComp() - { - eventHandler.startNonterminal("GeneralComp", e0); - switch (l1) - { - case 60: // '=' - shift(60); // '=' - break; - case 27: // '!=' - shift(27); // '!=' - break; - case 54: // '<' - shift(54); // '<' - break; - case 58: // '<=' - shift(58); // '<=' - break; - case 61: // '>' - shift(61); // '>' - break; - default: - shift(62); // '>=' - } - eventHandler.endNonterminal("GeneralComp", e0); - } - - function try_GeneralComp() - { - switch (l1) - { - case 60: // '=' - shiftT(60); // '=' - break; - case 27: // '!=' - shiftT(27); // '!=' - break; - case 54: // '<' - shiftT(54); // '<' - break; - case 58: // '<=' - shiftT(58); // '<=' - break; - case 61: // '>' - shiftT(61); // '>' - break; - default: - shiftT(62); // '>=' - } - } - - function parse_ValueComp() - { - eventHandler.startNonterminal("ValueComp", e0); - switch (l1) - { - case 128: // 'eq' - shift(128); // 'eq' - break; - case 186: // 'ne' - shift(186); // 'ne' - break; - case 178: // 'lt' - shift(178); // 'lt' - break; - case 172: // 'le' - shift(172); // 'le' - break; - case 150: // 'gt' - shift(150); // 'gt' - break; - default: - shift(146); // 'ge' - } - eventHandler.endNonterminal("ValueComp", e0); - } - - function try_ValueComp() - { - switch (l1) - { - case 128: // 'eq' - shiftT(128); // 'eq' - break; - case 186: // 'ne' - shiftT(186); // 'ne' - break; - case 178: // 'lt' - shiftT(178); // 'lt' - break; - case 172: // 'le' - shiftT(172); // 'le' - break; - case 150: // 'gt' - shiftT(150); // 'gt' - break; - default: - shiftT(146); // 'ge' - } - } - - function parse_NodeComp() - { - eventHandler.startNonterminal("NodeComp", e0); - switch (l1) - { - case 164: // 'is' - shift(164); // 'is' - break; - case 57: // '<<' - shift(57); // '<<' - break; - default: - shift(63); // '>>' - } - eventHandler.endNonterminal("NodeComp", e0); - } - - function try_NodeComp() - { - switch (l1) - { - case 164: // 'is' - shiftT(164); // 'is' - break; - case 57: // '<<' - shiftT(57); // '<<' - break; - default: - shiftT(63); // '>>' - } - } - - function parse_ValidateExpr() - { - eventHandler.startNonterminal("ValidateExpr", e0); - shift(260); // 'validate' - lookahead1W(160); // S^WS | '(:' | 'lax' | 'strict' | 'type' | '{' - if (l1 != 276) // '{' - { - switch (l1) - { - case 252: // 'type' - shift(252); // 'type' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_TypeName(); - break; - default: - whitespace(); - parse_ValidationMode(); - } - } - lookahead1W(87); // S^WS | '(:' | '{' - shift(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Expr(); - shift(282); // '}' - eventHandler.endNonterminal("ValidateExpr", e0); - } - - function try_ValidateExpr() - { - shiftT(260); // 'validate' - lookahead1W(160); // S^WS | '(:' | 'lax' | 'strict' | 'type' | '{' - if (l1 != 276) // '{' - { - switch (l1) - { - case 252: // 'type' - shiftT(252); // 'type' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_TypeName(); - break; - default: - try_ValidationMode(); - } - } - lookahead1W(87); // S^WS | '(:' | '{' - shiftT(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Expr(); - shiftT(282); // '}' - } - - function parse_ValidationMode() - { - eventHandler.startNonterminal("ValidationMode", e0); - switch (l1) - { - case 171: // 'lax' - shift(171); // 'lax' - break; - default: - shift(240); // 'strict' - } - eventHandler.endNonterminal("ValidationMode", e0); - } - - function try_ValidationMode() - { - switch (l1) - { - case 171: // 'lax' - shiftT(171); // 'lax' - break; - default: - shiftT(240); // 'strict' - } - } - - function parse_ExtensionExpr() - { - eventHandler.startNonterminal("ExtensionExpr", e0); - for (;;) - { - whitespace(); - parse_Pragma(); - lookahead1W(100); // S^WS | '(#' | '(:' | '{' - if (l1 != 35) // '(#' - { - break; - } - } - shift(276); // '{' - lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - if (l1 != 282) // '}' - { - whitespace(); - parse_Expr(); - } - shift(282); // '}' - eventHandler.endNonterminal("ExtensionExpr", e0); - } - - function try_ExtensionExpr() - { - for (;;) - { - try_Pragma(); - lookahead1W(100); // S^WS | '(#' | '(:' | '{' - if (l1 != 35) // '(#' - { - break; - } - } - shiftT(276); // '{' - lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - if (l1 != 282) // '}' - { - try_Expr(); - } - shiftT(282); // '}' - } - - function parse_Pragma() - { - eventHandler.startNonterminal("Pragma", e0); - shift(35); // '(#' - lookahead1(250); // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' | - if (l1 == 21) // S - { - shift(21); // S - } - parse_EQName(); - lookahead1(10); // S | '#)' - if (l1 == 21) // S - { - shift(21); // S - lookahead1(0); // PragmaContents - shift(1); // PragmaContents - } - lookahead1(5); // '#)' - shift(30); // '#)' - eventHandler.endNonterminal("Pragma", e0); - } - - function try_Pragma() - { - shiftT(35); // '(#' - lookahead1(250); // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' | - if (l1 == 21) // S - { - shiftT(21); // S - } - try_EQName(); - lookahead1(10); // S | '#)' - if (l1 == 21) // S - { - shiftT(21); // S - lookahead1(0); // PragmaContents - shiftT(1); // PragmaContents - } - lookahead1(5); // '#)' - shiftT(30); // '#)' - } - - function parse_PathExpr() - { - eventHandler.startNonterminal("PathExpr", e0); - switch (l1) - { - case 46: // '/' - shift(46); // '/' - lookahead1W(283); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - switch (l1) - { - case 25: // EOF - case 26: // '!' - case 27: // '!=' - case 37: // ')' - case 38: // '*' - case 40: // '+' - case 41: // ',' - case 42: // '-' - case 49: // ':' - case 53: // ';' - case 57: // '<<' - case 58: // '<=' - case 60: // '=' - case 61: // '>' - case 62: // '>=' - case 63: // '>>' - case 69: // ']' - case 87: // 'by' - case 99: // 'contains' - case 205: // 'paragraphs' - case 232: // 'sentences' - case 247: // 'times' - case 273: // 'words' - case 279: // '|' - case 280: // '||' - case 281: // '|}' - case 282: // '}' - break; - default: - whitespace(); - parse_RelativePathExpr(); - } - break; - case 47: // '//' - shift(47); // '//' - lookahead1W(263); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_RelativePathExpr(); - break; - default: - parse_RelativePathExpr(); - } - eventHandler.endNonterminal("PathExpr", e0); - } - - function try_PathExpr() - { - switch (l1) - { - case 46: // '/' - shiftT(46); // '/' - lookahead1W(283); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - switch (l1) - { - case 25: // EOF - case 26: // '!' - case 27: // '!=' - case 37: // ')' - case 38: // '*' - case 40: // '+' - case 41: // ',' - case 42: // '-' - case 49: // ':' - case 53: // ';' - case 57: // '<<' - case 58: // '<=' - case 60: // '=' - case 61: // '>' - case 62: // '>=' - case 63: // '>>' - case 69: // ']' - case 87: // 'by' - case 99: // 'contains' - case 205: // 'paragraphs' - case 232: // 'sentences' - case 247: // 'times' - case 273: // 'words' - case 279: // '|' - case 280: // '||' - case 281: // '|}' - case 282: // '}' - break; - default: - try_RelativePathExpr(); - } - break; - case 47: // '//' - shiftT(47); // '//' - lookahead1W(263); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_RelativePathExpr(); - break; - default: - try_RelativePathExpr(); - } - } - - function parse_RelativePathExpr() - { - eventHandler.startNonterminal("RelativePathExpr", e0); - parse_StepExpr(); - for (;;) - { - switch (l1) - { - case 26: // '!' - lookahead2W(264); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - default: - lk = l1; - } - if (lk != 25 // EOF - && lk != 27 // '!=' - && lk != 37 // ')' - && lk != 38 // '*' - && lk != 40 // '+' - && lk != 41 // ',' - && lk != 42 // '-' - && lk != 46 // '/' - && lk != 47 // '//' - && lk != 49 // ':' - && lk != 53 // ';' - && lk != 54 // '<' - && lk != 57 // '<<' - && lk != 58 // '<=' - && lk != 60 // '=' - && lk != 61 // '>' - && lk != 62 // '>=' - && lk != 63 // '>>' - && lk != 69 // ']' - && lk != 70 // 'after' - && lk != 75 // 'and' - && lk != 79 // 'as' - && lk != 80 // 'ascending' - && lk != 81 // 'at' - && lk != 84 // 'before' - && lk != 87 // 'by' - && lk != 88 // 'case' - && lk != 89 // 'cast' - && lk != 90 // 'castable' - && lk != 94 // 'collation' - && lk != 99 // 'contains' - && lk != 105 // 'count' - && lk != 109 // 'default' - && lk != 113 // 'descending' - && lk != 118 // 'div' - && lk != 122 // 'else' - && lk != 123 // 'empty' - && lk != 126 // 'end' - && lk != 128 // 'eq' - && lk != 131 // 'except' - && lk != 137 // 'for' - && lk != 146 // 'ge' - && lk != 148 // 'group' - && lk != 150 // 'gt' - && lk != 151 // 'idiv' - && lk != 160 // 'instance' - && lk != 162 // 'intersect' - && lk != 163 // 'into' - && lk != 164 // 'is' - && lk != 172 // 'le' - && lk != 174 // 'let' - && lk != 178 // 'lt' - && lk != 180 // 'mod' - && lk != 181 // 'modify' - && lk != 186 // 'ne' - && lk != 198 // 'only' - && lk != 200 // 'or' - && lk != 201 // 'order' - && lk != 205 // 'paragraphs' - && lk != 220 // 'return' - && lk != 224 // 'satisfies' - && lk != 232 // 'sentences' - && lk != 236 // 'stable' - && lk != 237 // 'start' - && lk != 247 // 'times' - && lk != 248 // 'to' - && lk != 249 // 'treat' - && lk != 254 // 'union' - && lk != 266 // 'where' - && lk != 270 // 'with' - && lk != 273 // 'words' - && lk != 279 // '|' - && lk != 280 // '||' - && lk != 281 // '|}' - && lk != 282 // '}' - && lk != 23578 // '!' '/' - && lk != 24090) // '!' '//' - { - lk = memoized(2, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - switch (l1) - { - case 46: // '/' - shiftT(46); // '/' - break; - case 47: // '//' - shiftT(47); // '//' - break; - default: - shiftT(26); // '!' - } - lookahead1W(263); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_StepExpr(); - lk = -1; - } - catch (p1A) - { - lk = -2; - } - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(2, e0, lk); - } - } - if (lk != -1 - && lk != 46 // '/' - && lk != 47) // '//' - { - break; - } - switch (l1) - { - case 46: // '/' - shift(46); // '/' - break; - case 47: // '//' - shift(47); // '//' - break; - default: - shift(26); // '!' - } - lookahead1W(263); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_StepExpr(); - } - eventHandler.endNonterminal("RelativePathExpr", e0); - } - - function try_RelativePathExpr() - { - try_StepExpr(); - for (;;) - { - switch (l1) - { - case 26: // '!' - lookahead2W(264); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - default: - lk = l1; - } - if (lk != 25 // EOF - && lk != 27 // '!=' - && lk != 37 // ')' - && lk != 38 // '*' - && lk != 40 // '+' - && lk != 41 // ',' - && lk != 42 // '-' - && lk != 46 // '/' - && lk != 47 // '//' - && lk != 49 // ':' - && lk != 53 // ';' - && lk != 54 // '<' - && lk != 57 // '<<' - && lk != 58 // '<=' - && lk != 60 // '=' - && lk != 61 // '>' - && lk != 62 // '>=' - && lk != 63 // '>>' - && lk != 69 // ']' - && lk != 70 // 'after' - && lk != 75 // 'and' - && lk != 79 // 'as' - && lk != 80 // 'ascending' - && lk != 81 // 'at' - && lk != 84 // 'before' - && lk != 87 // 'by' - && lk != 88 // 'case' - && lk != 89 // 'cast' - && lk != 90 // 'castable' - && lk != 94 // 'collation' - && lk != 99 // 'contains' - && lk != 105 // 'count' - && lk != 109 // 'default' - && lk != 113 // 'descending' - && lk != 118 // 'div' - && lk != 122 // 'else' - && lk != 123 // 'empty' - && lk != 126 // 'end' - && lk != 128 // 'eq' - && lk != 131 // 'except' - && lk != 137 // 'for' - && lk != 146 // 'ge' - && lk != 148 // 'group' - && lk != 150 // 'gt' - && lk != 151 // 'idiv' - && lk != 160 // 'instance' - && lk != 162 // 'intersect' - && lk != 163 // 'into' - && lk != 164 // 'is' - && lk != 172 // 'le' - && lk != 174 // 'let' - && lk != 178 // 'lt' - && lk != 180 // 'mod' - && lk != 181 // 'modify' - && lk != 186 // 'ne' - && lk != 198 // 'only' - && lk != 200 // 'or' - && lk != 201 // 'order' - && lk != 205 // 'paragraphs' - && lk != 220 // 'return' - && lk != 224 // 'satisfies' - && lk != 232 // 'sentences' - && lk != 236 // 'stable' - && lk != 237 // 'start' - && lk != 247 // 'times' - && lk != 248 // 'to' - && lk != 249 // 'treat' - && lk != 254 // 'union' - && lk != 266 // 'where' - && lk != 270 // 'with' - && lk != 273 // 'words' - && lk != 279 // '|' - && lk != 280 // '||' - && lk != 281 // '|}' - && lk != 282 // '}' - && lk != 23578 // '!' '/' - && lk != 24090) // '!' '//' - { - lk = memoized(2, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - switch (l1) - { - case 46: // '/' - shiftT(46); // '/' - break; - case 47: // '//' - shiftT(47); // '//' - break; - default: - shiftT(26); // '!' - } - lookahead1W(263); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_StepExpr(); - memoize(2, e0A, -1); - continue; - } - catch (p1A) - { - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(2, e0A, -2); - break; - } - } - } - if (lk != -1 - && lk != 46 // '/' - && lk != 47) // '//' - { - break; - } - switch (l1) - { - case 46: // '/' - shiftT(46); // '/' - break; - case 47: // '//' - shiftT(47); // '//' - break; - default: - shiftT(26); // '!' - } - lookahead1W(263); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_StepExpr(); - } - } - - function parse_StepExpr() - { - eventHandler.startNonterminal("StepExpr", e0); - switch (l1) - { - case 82: // 'attribute' - lookahead2W(282); // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | - break; - case 121: // 'element' - lookahead2W(280); // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | - break; - case 184: // 'namespace' - case 216: // 'processing-instruction' - lookahead2W(279); // NCName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | - break; - case 96: // 'comment' - case 119: // 'document' - case 202: // 'ordered' - case 244: // 'text' - case 256: // 'unordered' - lookahead2W(245); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | - break; - case 124: // 'empty-sequence' - case 152: // 'if' - case 165: // 'item' - case 243: // 'switch' - case 253: // 'typeswitch' - lookahead2W(238); // S^WS | EOF | '!' | '!=' | '#' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 73: // 'ancestor' - case 74: // 'ancestor-or-self' - case 93: // 'child' - case 111: // 'descendant' - case 112: // 'descendant-or-self' - case 135: // 'following' - case 136: // 'following-sibling' - case 206: // 'parent' - case 212: // 'preceding' - case 213: // 'preceding-sibling' - case 229: // 'self' - lookahead2W(244); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | - break; - case 6: // EQName^Token - case 70: // 'after' - case 72: // 'allowing' - case 75: // 'and' - case 78: // 'array' - case 79: // 'as' - case 80: // 'ascending' - case 81: // 'at' - case 83: // 'base-uri' - case 84: // 'before' - case 85: // 'boundary-space' - case 86: // 'break' - case 88: // 'case' - case 89: // 'cast' - case 90: // 'castable' - case 91: // 'catch' - case 94: // 'collation' - case 97: // 'constraint' - case 98: // 'construction' - case 101: // 'context' - case 102: // 'continue' - case 103: // 'copy' - case 104: // 'copy-namespaces' - case 105: // 'count' - case 106: // 'decimal-format' - case 108: // 'declare' - case 109: // 'default' - case 110: // 'delete' - case 113: // 'descending' - case 118: // 'div' - case 120: // 'document-node' - case 122: // 'else' - case 123: // 'empty' - case 125: // 'encoding' - case 126: // 'end' - case 128: // 'eq' - case 129: // 'every' - case 131: // 'except' - case 132: // 'exit' - case 133: // 'external' - case 134: // 'first' - case 137: // 'for' - case 141: // 'ft-option' - case 145: // 'function' - case 146: // 'ge' - case 148: // 'group' - case 150: // 'gt' - case 151: // 'idiv' - case 153: // 'import' - case 154: // 'in' - case 155: // 'index' - case 159: // 'insert' - case 160: // 'instance' - case 161: // 'integrity' - case 162: // 'intersect' - case 163: // 'into' - case 164: // 'is' - case 167: // 'json-item' - case 170: // 'last' - case 171: // 'lax' - case 172: // 'le' - case 174: // 'let' - case 176: // 'loop' - case 178: // 'lt' - case 180: // 'mod' - case 181: // 'modify' - case 182: // 'module' - case 185: // 'namespace-node' - case 186: // 'ne' - case 191: // 'node' - case 192: // 'nodes' - case 194: // 'object' - case 198: // 'only' - case 199: // 'option' - case 200: // 'or' - case 201: // 'order' - case 203: // 'ordering' - case 218: // 'rename' - case 219: // 'replace' - case 220: // 'return' - case 221: // 'returning' - case 222: // 'revalidation' - case 224: // 'satisfies' - case 225: // 'schema' - case 226: // 'schema-attribute' - case 227: // 'schema-element' - case 228: // 'score' - case 234: // 'sliding' - case 235: // 'some' - case 236: // 'stable' - case 237: // 'start' - case 240: // 'strict' - case 248: // 'to' - case 249: // 'treat' - case 250: // 'try' - case 251: // 'tumbling' - case 252: // 'type' - case 254: // 'union' - case 257: // 'updating' - case 260: // 'validate' - case 261: // 'value' - case 262: // 'variable' - case 263: // 'version' - case 266: // 'where' - case 267: // 'while' - case 270: // 'with' - case 274: // 'xquery' - lookahead2W(242); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | - break; - default: - lk = l1; - } - if (lk == 17486 // 'array' '(' - || lk == 17575 // 'json-item' '(' - || lk == 17602 // 'object' '(' - || lk == 35922 // 'attribute' 'after' - || lk == 35961 // 'element' 'after' - || lk == 36024 // 'namespace' 'after' - || lk == 36056 // 'processing-instruction' 'after' - || lk == 38482 // 'attribute' 'and' - || lk == 38521 // 'element' 'and' - || lk == 38584 // 'namespace' 'and' - || lk == 38616 // 'processing-instruction' 'and' - || lk == 40530 // 'attribute' 'as' - || lk == 40569 // 'element' 'as' - || lk == 40632 // 'namespace' 'as' - || lk == 40664 // 'processing-instruction' 'as' - || lk == 41042 // 'attribute' 'ascending' - || lk == 41081 // 'element' 'ascending' - || lk == 41144 // 'namespace' 'ascending' - || lk == 41176 // 'processing-instruction' 'ascending' - || lk == 41554 // 'attribute' 'at' - || lk == 41593 // 'element' 'at' - || lk == 41656 // 'namespace' 'at' - || lk == 41688 // 'processing-instruction' 'at' - || lk == 43090 // 'attribute' 'before' - || lk == 43129 // 'element' 'before' - || lk == 43192 // 'namespace' 'before' - || lk == 43224 // 'processing-instruction' 'before' - || lk == 45138 // 'attribute' 'case' - || lk == 45177 // 'element' 'case' - || lk == 45240 // 'namespace' 'case' - || lk == 45272 // 'processing-instruction' 'case' - || lk == 45650 // 'attribute' 'cast' - || lk == 45689 // 'element' 'cast' - || lk == 45752 // 'namespace' 'cast' - || lk == 45784 // 'processing-instruction' 'cast' - || lk == 46162 // 'attribute' 'castable' - || lk == 46201 // 'element' 'castable' - || lk == 46264 // 'namespace' 'castable' - || lk == 46296 // 'processing-instruction' 'castable' - || lk == 48210 // 'attribute' 'collation' - || lk == 48249 // 'element' 'collation' - || lk == 48312 // 'namespace' 'collation' - || lk == 48344 // 'processing-instruction' 'collation' - || lk == 53842 // 'attribute' 'count' - || lk == 53881 // 'element' 'count' - || lk == 53944 // 'namespace' 'count' - || lk == 53976 // 'processing-instruction' 'count' - || lk == 55890 // 'attribute' 'default' - || lk == 55929 // 'element' 'default' - || lk == 55992 // 'namespace' 'default' - || lk == 56024 // 'processing-instruction' 'default' - || lk == 57938 // 'attribute' 'descending' - || lk == 57977 // 'element' 'descending' - || lk == 58040 // 'namespace' 'descending' - || lk == 58072 // 'processing-instruction' 'descending' - || lk == 60498 // 'attribute' 'div' - || lk == 60537 // 'element' 'div' - || lk == 60600 // 'namespace' 'div' - || lk == 60632 // 'processing-instruction' 'div' - || lk == 62546 // 'attribute' 'else' - || lk == 62585 // 'element' 'else' - || lk == 62648 // 'namespace' 'else' - || lk == 62680 // 'processing-instruction' 'else' - || lk == 63058 // 'attribute' 'empty' - || lk == 63097 // 'element' 'empty' - || lk == 63160 // 'namespace' 'empty' - || lk == 63192 // 'processing-instruction' 'empty' - || lk == 64594 // 'attribute' 'end' - || lk == 64633 // 'element' 'end' - || lk == 64696 // 'namespace' 'end' - || lk == 64728 // 'processing-instruction' 'end' - || lk == 65618 // 'attribute' 'eq' - || lk == 65657 // 'element' 'eq' - || lk == 65720 // 'namespace' 'eq' - || lk == 65752 // 'processing-instruction' 'eq' - || lk == 67154 // 'attribute' 'except' - || lk == 67193 // 'element' 'except' - || lk == 67256 // 'namespace' 'except' - || lk == 67288 // 'processing-instruction' 'except' - || lk == 70226 // 'attribute' 'for' - || lk == 70265 // 'element' 'for' - || lk == 70328 // 'namespace' 'for' - || lk == 70360 // 'processing-instruction' 'for' - || lk == 74834 // 'attribute' 'ge' - || lk == 74873 // 'element' 'ge' - || lk == 74936 // 'namespace' 'ge' - || lk == 74968 // 'processing-instruction' 'ge' - || lk == 75858 // 'attribute' 'group' - || lk == 75897 // 'element' 'group' - || lk == 75960 // 'namespace' 'group' - || lk == 75992 // 'processing-instruction' 'group' - || lk == 76882 // 'attribute' 'gt' - || lk == 76921 // 'element' 'gt' - || lk == 76984 // 'namespace' 'gt' - || lk == 77016 // 'processing-instruction' 'gt' - || lk == 77394 // 'attribute' 'idiv' - || lk == 77433 // 'element' 'idiv' - || lk == 77496 // 'namespace' 'idiv' - || lk == 77528 // 'processing-instruction' 'idiv' - || lk == 82002 // 'attribute' 'instance' - || lk == 82041 // 'element' 'instance' - || lk == 82104 // 'namespace' 'instance' - || lk == 82136 // 'processing-instruction' 'instance' - || lk == 83026 // 'attribute' 'intersect' - || lk == 83065 // 'element' 'intersect' - || lk == 83128 // 'namespace' 'intersect' - || lk == 83160 // 'processing-instruction' 'intersect' - || lk == 83538 // 'attribute' 'into' - || lk == 83577 // 'element' 'into' - || lk == 83640 // 'namespace' 'into' - || lk == 83672 // 'processing-instruction' 'into' - || lk == 84050 // 'attribute' 'is' - || lk == 84089 // 'element' 'is' - || lk == 84152 // 'namespace' 'is' - || lk == 84184 // 'processing-instruction' 'is' - || lk == 88146 // 'attribute' 'le' - || lk == 88185 // 'element' 'le' - || lk == 88248 // 'namespace' 'le' - || lk == 88280 // 'processing-instruction' 'le' - || lk == 89170 // 'attribute' 'let' - || lk == 89209 // 'element' 'let' - || lk == 89272 // 'namespace' 'let' - || lk == 89304 // 'processing-instruction' 'let' - || lk == 91218 // 'attribute' 'lt' - || lk == 91257 // 'element' 'lt' - || lk == 91320 // 'namespace' 'lt' - || lk == 91352 // 'processing-instruction' 'lt' - || lk == 92242 // 'attribute' 'mod' - || lk == 92281 // 'element' 'mod' - || lk == 92344 // 'namespace' 'mod' - || lk == 92376 // 'processing-instruction' 'mod' - || lk == 92754 // 'attribute' 'modify' - || lk == 92793 // 'element' 'modify' - || lk == 92856 // 'namespace' 'modify' - || lk == 92888 // 'processing-instruction' 'modify' - || lk == 95314 // 'attribute' 'ne' - || lk == 95353 // 'element' 'ne' - || lk == 95416 // 'namespace' 'ne' - || lk == 95448 // 'processing-instruction' 'ne' - || lk == 101458 // 'attribute' 'only' - || lk == 101497 // 'element' 'only' - || lk == 101560 // 'namespace' 'only' - || lk == 101592 // 'processing-instruction' 'only' - || lk == 102482 // 'attribute' 'or' - || lk == 102521 // 'element' 'or' - || lk == 102584 // 'namespace' 'or' - || lk == 102616 // 'processing-instruction' 'or' - || lk == 102994 // 'attribute' 'order' - || lk == 103033 // 'element' 'order' - || lk == 103096 // 'namespace' 'order' - || lk == 103128 // 'processing-instruction' 'order' - || lk == 112722 // 'attribute' 'return' - || lk == 112761 // 'element' 'return' - || lk == 112824 // 'namespace' 'return' - || lk == 112856 // 'processing-instruction' 'return' - || lk == 114770 // 'attribute' 'satisfies' - || lk == 114809 // 'element' 'satisfies' - || lk == 114872 // 'namespace' 'satisfies' - || lk == 114904 // 'processing-instruction' 'satisfies' - || lk == 120914 // 'attribute' 'stable' - || lk == 120953 // 'element' 'stable' - || lk == 121016 // 'namespace' 'stable' - || lk == 121048 // 'processing-instruction' 'stable' - || lk == 121426 // 'attribute' 'start' - || lk == 121465 // 'element' 'start' - || lk == 121528 // 'namespace' 'start' - || lk == 121560 // 'processing-instruction' 'start' - || lk == 127058 // 'attribute' 'to' - || lk == 127097 // 'element' 'to' - || lk == 127160 // 'namespace' 'to' - || lk == 127192 // 'processing-instruction' 'to' - || lk == 127570 // 'attribute' 'treat' - || lk == 127609 // 'element' 'treat' - || lk == 127672 // 'namespace' 'treat' - || lk == 127704 // 'processing-instruction' 'treat' - || lk == 130130 // 'attribute' 'union' - || lk == 130169 // 'element' 'union' - || lk == 130232 // 'namespace' 'union' - || lk == 130264 // 'processing-instruction' 'union' - || lk == 136274 // 'attribute' 'where' - || lk == 136313 // 'element' 'where' - || lk == 136376 // 'namespace' 'where' - || lk == 136408 // 'processing-instruction' 'where' - || lk == 138322 // 'attribute' 'with' - || lk == 138361 // 'element' 'with' - || lk == 138424 // 'namespace' 'with' - || lk == 138456) // 'processing-instruction' 'with' - { - lk = memoized(3, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - try_PostfixExpr(); - lk = -1; - } - catch (p1A) - { - lk = -2; - } - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(3, e0, lk); - } - } - switch (lk) - { - case -1: - case 8: // IntegerLiteral - case 9: // DecimalLiteral - case 10: // DoubleLiteral - case 11: // StringLiteral - case 31: // '$' - case 32: // '%' - case 34: // '(' - case 44: // '.' - case 54: // '<' - case 55: // '<!--' - case 59: // '<?' - case 68: // '[' - case 276: // '{' - case 278: // '{|' - case 3154: // 'attribute' EQName^Token - case 3193: // 'element' EQName^Token - case 9912: // 'namespace' NCName^Token - case 9944: // 'processing-instruction' NCName^Token - case 14854: // EQName^Token '#' - case 14918: // 'after' '#' - case 14920: // 'allowing' '#' - case 14921: // 'ancestor' '#' - case 14922: // 'ancestor-or-self' '#' - case 14923: // 'and' '#' - case 14926: // 'array' '#' - case 14927: // 'as' '#' - case 14928: // 'ascending' '#' - case 14929: // 'at' '#' - case 14930: // 'attribute' '#' - case 14931: // 'base-uri' '#' - case 14932: // 'before' '#' - case 14933: // 'boundary-space' '#' - case 14934: // 'break' '#' - case 14936: // 'case' '#' - case 14937: // 'cast' '#' - case 14938: // 'castable' '#' - case 14939: // 'catch' '#' - case 14941: // 'child' '#' - case 14942: // 'collation' '#' - case 14944: // 'comment' '#' - case 14945: // 'constraint' '#' - case 14946: // 'construction' '#' - case 14949: // 'context' '#' - case 14950: // 'continue' '#' - case 14951: // 'copy' '#' - case 14952: // 'copy-namespaces' '#' - case 14953: // 'count' '#' - case 14954: // 'decimal-format' '#' - case 14956: // 'declare' '#' - case 14957: // 'default' '#' - case 14958: // 'delete' '#' - case 14959: // 'descendant' '#' - case 14960: // 'descendant-or-self' '#' - case 14961: // 'descending' '#' - case 14966: // 'div' '#' - case 14967: // 'document' '#' - case 14968: // 'document-node' '#' - case 14969: // 'element' '#' - case 14970: // 'else' '#' - case 14971: // 'empty' '#' - case 14972: // 'empty-sequence' '#' - case 14973: // 'encoding' '#' - case 14974: // 'end' '#' - case 14976: // 'eq' '#' - case 14977: // 'every' '#' - case 14979: // 'except' '#' - case 14980: // 'exit' '#' - case 14981: // 'external' '#' - case 14982: // 'first' '#' - case 14983: // 'following' '#' - case 14984: // 'following-sibling' '#' - case 14985: // 'for' '#' - case 14989: // 'ft-option' '#' - case 14993: // 'function' '#' - case 14994: // 'ge' '#' - case 14996: // 'group' '#' - case 14998: // 'gt' '#' - case 14999: // 'idiv' '#' - case 15000: // 'if' '#' - case 15001: // 'import' '#' - case 15002: // 'in' '#' - case 15003: // 'index' '#' - case 15007: // 'insert' '#' - case 15008: // 'instance' '#' - case 15009: // 'integrity' '#' - case 15010: // 'intersect' '#' - case 15011: // 'into' '#' - case 15012: // 'is' '#' - case 15013: // 'item' '#' - case 15015: // 'json-item' '#' - case 15018: // 'last' '#' - case 15019: // 'lax' '#' - case 15020: // 'le' '#' - case 15022: // 'let' '#' - case 15024: // 'loop' '#' - case 15026: // 'lt' '#' - case 15028: // 'mod' '#' - case 15029: // 'modify' '#' - case 15030: // 'module' '#' - case 15032: // 'namespace' '#' - case 15033: // 'namespace-node' '#' - case 15034: // 'ne' '#' - case 15039: // 'node' '#' - case 15040: // 'nodes' '#' - case 15042: // 'object' '#' - case 15046: // 'only' '#' - case 15047: // 'option' '#' - case 15048: // 'or' '#' - case 15049: // 'order' '#' - case 15050: // 'ordered' '#' - case 15051: // 'ordering' '#' - case 15054: // 'parent' '#' - case 15060: // 'preceding' '#' - case 15061: // 'preceding-sibling' '#' - case 15064: // 'processing-instruction' '#' - case 15066: // 'rename' '#' - case 15067: // 'replace' '#' - case 15068: // 'return' '#' - case 15069: // 'returning' '#' - case 15070: // 'revalidation' '#' - case 15072: // 'satisfies' '#' - case 15073: // 'schema' '#' - case 15074: // 'schema-attribute' '#' - case 15075: // 'schema-element' '#' - case 15076: // 'score' '#' - case 15077: // 'self' '#' - case 15082: // 'sliding' '#' - case 15083: // 'some' '#' - case 15084: // 'stable' '#' - case 15085: // 'start' '#' - case 15088: // 'strict' '#' - case 15091: // 'switch' '#' - case 15092: // 'text' '#' - case 15096: // 'to' '#' - case 15097: // 'treat' '#' - case 15098: // 'try' '#' - case 15099: // 'tumbling' '#' - case 15100: // 'type' '#' - case 15101: // 'typeswitch' '#' - case 15102: // 'union' '#' - case 15104: // 'unordered' '#' - case 15105: // 'updating' '#' - case 15108: // 'validate' '#' - case 15109: // 'value' '#' - case 15110: // 'variable' '#' - case 15111: // 'version' '#' - case 15114: // 'where' '#' - case 15115: // 'while' '#' - case 15118: // 'with' '#' - case 15122: // 'xquery' '#' - case 17414: // EQName^Token '(' - case 17478: // 'after' '(' - case 17480: // 'allowing' '(' - case 17481: // 'ancestor' '(' - case 17482: // 'ancestor-or-self' '(' - case 17483: // 'and' '(' - case 17487: // 'as' '(' - case 17488: // 'ascending' '(' - case 17489: // 'at' '(' - case 17491: // 'base-uri' '(' - case 17492: // 'before' '(' - case 17493: // 'boundary-space' '(' - case 17494: // 'break' '(' - case 17496: // 'case' '(' - case 17497: // 'cast' '(' - case 17498: // 'castable' '(' - case 17499: // 'catch' '(' - case 17501: // 'child' '(' - case 17502: // 'collation' '(' - case 17505: // 'constraint' '(' - case 17506: // 'construction' '(' - case 17509: // 'context' '(' - case 17510: // 'continue' '(' - case 17511: // 'copy' '(' - case 17512: // 'copy-namespaces' '(' - case 17513: // 'count' '(' - case 17514: // 'decimal-format' '(' - case 17516: // 'declare' '(' - case 17517: // 'default' '(' - case 17518: // 'delete' '(' - case 17519: // 'descendant' '(' - case 17520: // 'descendant-or-self' '(' - case 17521: // 'descending' '(' - case 17526: // 'div' '(' - case 17527: // 'document' '(' - case 17530: // 'else' '(' - case 17531: // 'empty' '(' - case 17533: // 'encoding' '(' - case 17534: // 'end' '(' - case 17536: // 'eq' '(' - case 17537: // 'every' '(' - case 17539: // 'except' '(' - case 17540: // 'exit' '(' - case 17541: // 'external' '(' - case 17542: // 'first' '(' - case 17543: // 'following' '(' - case 17544: // 'following-sibling' '(' - case 17545: // 'for' '(' - case 17549: // 'ft-option' '(' - case 17553: // 'function' '(' - case 17554: // 'ge' '(' - case 17556: // 'group' '(' - case 17558: // 'gt' '(' - case 17559: // 'idiv' '(' - case 17561: // 'import' '(' - case 17562: // 'in' '(' - case 17563: // 'index' '(' - case 17567: // 'insert' '(' - case 17568: // 'instance' '(' - case 17569: // 'integrity' '(' - case 17570: // 'intersect' '(' - case 17571: // 'into' '(' - case 17572: // 'is' '(' - case 17578: // 'last' '(' - case 17579: // 'lax' '(' - case 17580: // 'le' '(' - case 17582: // 'let' '(' - case 17584: // 'loop' '(' - case 17586: // 'lt' '(' - case 17588: // 'mod' '(' - case 17589: // 'modify' '(' - case 17590: // 'module' '(' - case 17592: // 'namespace' '(' - case 17594: // 'ne' '(' - case 17600: // 'nodes' '(' - case 17606: // 'only' '(' - case 17607: // 'option' '(' - case 17608: // 'or' '(' - case 17609: // 'order' '(' - case 17610: // 'ordered' '(' - case 17611: // 'ordering' '(' - case 17614: // 'parent' '(' - case 17620: // 'preceding' '(' - case 17621: // 'preceding-sibling' '(' - case 17626: // 'rename' '(' - case 17627: // 'replace' '(' - case 17628: // 'return' '(' - case 17629: // 'returning' '(' - case 17630: // 'revalidation' '(' - case 17632: // 'satisfies' '(' - case 17633: // 'schema' '(' - case 17636: // 'score' '(' - case 17637: // 'self' '(' - case 17642: // 'sliding' '(' - case 17643: // 'some' '(' - case 17644: // 'stable' '(' - case 17645: // 'start' '(' - case 17648: // 'strict' '(' - case 17656: // 'to' '(' - case 17657: // 'treat' '(' - case 17658: // 'try' '(' - case 17659: // 'tumbling' '(' - case 17660: // 'type' '(' - case 17662: // 'union' '(' - case 17664: // 'unordered' '(' - case 17665: // 'updating' '(' - case 17668: // 'validate' '(' - case 17669: // 'value' '(' - case 17670: // 'variable' '(' - case 17671: // 'version' '(' - case 17674: // 'where' '(' - case 17675: // 'while' '(' - case 17678: // 'with' '(' - case 17682: // 'xquery' '(' - case 36946: // 'attribute' 'allowing' - case 36985: // 'element' 'allowing' - case 37048: // 'namespace' 'allowing' - case 37080: // 'processing-instruction' 'allowing' - case 37458: // 'attribute' 'ancestor' - case 37497: // 'element' 'ancestor' - case 37560: // 'namespace' 'ancestor' - case 37592: // 'processing-instruction' 'ancestor' - case 37970: // 'attribute' 'ancestor-or-self' - case 38009: // 'element' 'ancestor-or-self' - case 38072: // 'namespace' 'ancestor-or-self' - case 38104: // 'processing-instruction' 'ancestor-or-self' - case 40018: // 'attribute' 'array' - case 40057: // 'element' 'array' - case 42066: // 'attribute' 'attribute' - case 42105: // 'element' 'attribute' - case 42168: // 'namespace' 'attribute' - case 42200: // 'processing-instruction' 'attribute' - case 42578: // 'attribute' 'base-uri' - case 42617: // 'element' 'base-uri' - case 42680: // 'namespace' 'base-uri' - case 42712: // 'processing-instruction' 'base-uri' - case 43602: // 'attribute' 'boundary-space' - case 43641: // 'element' 'boundary-space' - case 43704: // 'namespace' 'boundary-space' - case 43736: // 'processing-instruction' 'boundary-space' - case 44114: // 'attribute' 'break' - case 44153: // 'element' 'break' - case 44216: // 'namespace' 'break' - case 44248: // 'processing-instruction' 'break' - case 46674: // 'attribute' 'catch' - case 46713: // 'element' 'catch' - case 46776: // 'namespace' 'catch' - case 46808: // 'processing-instruction' 'catch' - case 47698: // 'attribute' 'child' - case 47737: // 'element' 'child' - case 47800: // 'namespace' 'child' - case 47832: // 'processing-instruction' 'child' - case 49234: // 'attribute' 'comment' - case 49273: // 'element' 'comment' - case 49336: // 'namespace' 'comment' - case 49368: // 'processing-instruction' 'comment' - case 49746: // 'attribute' 'constraint' - case 49785: // 'element' 'constraint' - case 49848: // 'namespace' 'constraint' - case 49880: // 'processing-instruction' 'constraint' - case 50258: // 'attribute' 'construction' - case 50297: // 'element' 'construction' - case 50360: // 'namespace' 'construction' - case 50392: // 'processing-instruction' 'construction' - case 51794: // 'attribute' 'context' - case 51833: // 'element' 'context' - case 51896: // 'namespace' 'context' - case 51928: // 'processing-instruction' 'context' - case 52306: // 'attribute' 'continue' - case 52345: // 'element' 'continue' - case 52408: // 'namespace' 'continue' - case 52440: // 'processing-instruction' 'continue' - case 52818: // 'attribute' 'copy' - case 52857: // 'element' 'copy' - case 52920: // 'namespace' 'copy' - case 52952: // 'processing-instruction' 'copy' - case 53330: // 'attribute' 'copy-namespaces' - case 53369: // 'element' 'copy-namespaces' - case 53432: // 'namespace' 'copy-namespaces' - case 53464: // 'processing-instruction' 'copy-namespaces' - case 54354: // 'attribute' 'decimal-format' - case 54393: // 'element' 'decimal-format' - case 54456: // 'namespace' 'decimal-format' - case 54488: // 'processing-instruction' 'decimal-format' - case 55378: // 'attribute' 'declare' - case 55417: // 'element' 'declare' - case 55480: // 'namespace' 'declare' - case 55512: // 'processing-instruction' 'declare' - case 56402: // 'attribute' 'delete' - case 56441: // 'element' 'delete' - case 56504: // 'namespace' 'delete' - case 56536: // 'processing-instruction' 'delete' - case 56914: // 'attribute' 'descendant' - case 56953: // 'element' 'descendant' - case 57016: // 'namespace' 'descendant' - case 57048: // 'processing-instruction' 'descendant' - case 57426: // 'attribute' 'descendant-or-self' - case 57465: // 'element' 'descendant-or-self' - case 57528: // 'namespace' 'descendant-or-self' - case 57560: // 'processing-instruction' 'descendant-or-self' - case 61010: // 'attribute' 'document' - case 61049: // 'element' 'document' - case 61112: // 'namespace' 'document' - case 61144: // 'processing-instruction' 'document' - case 61522: // 'attribute' 'document-node' - case 61561: // 'element' 'document-node' - case 61624: // 'namespace' 'document-node' - case 61656: // 'processing-instruction' 'document-node' - case 62034: // 'attribute' 'element' - case 62073: // 'element' 'element' - case 62136: // 'namespace' 'element' - case 62168: // 'processing-instruction' 'element' - case 63570: // 'attribute' 'empty-sequence' - case 63609: // 'element' 'empty-sequence' - case 63672: // 'namespace' 'empty-sequence' - case 63704: // 'processing-instruction' 'empty-sequence' - case 64082: // 'attribute' 'encoding' - case 64121: // 'element' 'encoding' - case 64184: // 'namespace' 'encoding' - case 64216: // 'processing-instruction' 'encoding' - case 66130: // 'attribute' 'every' - case 66169: // 'element' 'every' - case 66232: // 'namespace' 'every' - case 66264: // 'processing-instruction' 'every' - case 67666: // 'attribute' 'exit' - case 67705: // 'element' 'exit' - case 67768: // 'namespace' 'exit' - case 67800: // 'processing-instruction' 'exit' - case 68178: // 'attribute' 'external' - case 68217: // 'element' 'external' - case 68280: // 'namespace' 'external' - case 68312: // 'processing-instruction' 'external' - case 68690: // 'attribute' 'first' - case 68729: // 'element' 'first' - case 68792: // 'namespace' 'first' - case 68824: // 'processing-instruction' 'first' - case 69202: // 'attribute' 'following' - case 69241: // 'element' 'following' - case 69304: // 'namespace' 'following' - case 69336: // 'processing-instruction' 'following' - case 69714: // 'attribute' 'following-sibling' - case 69753: // 'element' 'following-sibling' - case 69816: // 'namespace' 'following-sibling' - case 69848: // 'processing-instruction' 'following-sibling' - case 72274: // 'attribute' 'ft-option' - case 72313: // 'element' 'ft-option' - case 72376: // 'namespace' 'ft-option' - case 72408: // 'processing-instruction' 'ft-option' - case 74322: // 'attribute' 'function' - case 74361: // 'element' 'function' - case 74424: // 'namespace' 'function' - case 74456: // 'processing-instruction' 'function' - case 77906: // 'attribute' 'if' - case 77945: // 'element' 'if' - case 78008: // 'namespace' 'if' - case 78040: // 'processing-instruction' 'if' - case 78418: // 'attribute' 'import' - case 78457: // 'element' 'import' - case 78520: // 'namespace' 'import' - case 78552: // 'processing-instruction' 'import' - case 78930: // 'attribute' 'in' - case 78969: // 'element' 'in' - case 79032: // 'namespace' 'in' - case 79064: // 'processing-instruction' 'in' - case 79442: // 'attribute' 'index' - case 79481: // 'element' 'index' - case 79544: // 'namespace' 'index' - case 79576: // 'processing-instruction' 'index' - case 81490: // 'attribute' 'insert' - case 81529: // 'element' 'insert' - case 81592: // 'namespace' 'insert' - case 81624: // 'processing-instruction' 'insert' - case 82514: // 'attribute' 'integrity' - case 82553: // 'element' 'integrity' - case 82616: // 'namespace' 'integrity' - case 82648: // 'processing-instruction' 'integrity' - case 84562: // 'attribute' 'item' - case 84601: // 'element' 'item' - case 84664: // 'namespace' 'item' - case 84696: // 'processing-instruction' 'item' - case 85586: // 'attribute' 'json-item' - case 85625: // 'element' 'json-item' - case 87122: // 'attribute' 'last' - case 87161: // 'element' 'last' - case 87224: // 'namespace' 'last' - case 87256: // 'processing-instruction' 'last' - case 87634: // 'attribute' 'lax' - case 87673: // 'element' 'lax' - case 87736: // 'namespace' 'lax' - case 87768: // 'processing-instruction' 'lax' - case 90194: // 'attribute' 'loop' - case 90233: // 'element' 'loop' - case 90296: // 'namespace' 'loop' - case 90328: // 'processing-instruction' 'loop' - case 93266: // 'attribute' 'module' - case 93305: // 'element' 'module' - case 93368: // 'namespace' 'module' - case 93400: // 'processing-instruction' 'module' - case 94290: // 'attribute' 'namespace' - case 94329: // 'element' 'namespace' - case 94392: // 'namespace' 'namespace' - case 94424: // 'processing-instruction' 'namespace' - case 94802: // 'attribute' 'namespace-node' - case 94841: // 'element' 'namespace-node' - case 94904: // 'namespace' 'namespace-node' - case 94936: // 'processing-instruction' 'namespace-node' - case 97874: // 'attribute' 'node' - case 97913: // 'element' 'node' - case 97976: // 'namespace' 'node' - case 98008: // 'processing-instruction' 'node' - case 98386: // 'attribute' 'nodes' - case 98425: // 'element' 'nodes' - case 98488: // 'namespace' 'nodes' - case 98520: // 'processing-instruction' 'nodes' - case 99410: // 'attribute' 'object' - case 99449: // 'element' 'object' - case 101970: // 'attribute' 'option' - case 102009: // 'element' 'option' - case 102072: // 'namespace' 'option' - case 102104: // 'processing-instruction' 'option' - case 103506: // 'attribute' 'ordered' - case 103545: // 'element' 'ordered' - case 103608: // 'namespace' 'ordered' - case 103640: // 'processing-instruction' 'ordered' - case 104018: // 'attribute' 'ordering' - case 104057: // 'element' 'ordering' - case 104120: // 'namespace' 'ordering' - case 104152: // 'processing-instruction' 'ordering' - case 105554: // 'attribute' 'parent' - case 105593: // 'element' 'parent' - case 105656: // 'namespace' 'parent' - case 105688: // 'processing-instruction' 'parent' - case 108626: // 'attribute' 'preceding' - case 108665: // 'element' 'preceding' - case 108728: // 'namespace' 'preceding' - case 108760: // 'processing-instruction' 'preceding' - case 109138: // 'attribute' 'preceding-sibling' - case 109177: // 'element' 'preceding-sibling' - case 109240: // 'namespace' 'preceding-sibling' - case 109272: // 'processing-instruction' 'preceding-sibling' - case 110674: // 'attribute' 'processing-instruction' - case 110713: // 'element' 'processing-instruction' - case 110776: // 'namespace' 'processing-instruction' - case 110808: // 'processing-instruction' 'processing-instruction' - case 111698: // 'attribute' 'rename' - case 111737: // 'element' 'rename' - case 111800: // 'namespace' 'rename' - case 111832: // 'processing-instruction' 'rename' - case 112210: // 'attribute' 'replace' - case 112249: // 'element' 'replace' - case 112312: // 'namespace' 'replace' - case 112344: // 'processing-instruction' 'replace' - case 113234: // 'attribute' 'returning' - case 113273: // 'element' 'returning' - case 113336: // 'namespace' 'returning' - case 113368: // 'processing-instruction' 'returning' - case 113746: // 'attribute' 'revalidation' - case 113785: // 'element' 'revalidation' - case 113848: // 'namespace' 'revalidation' - case 113880: // 'processing-instruction' 'revalidation' - case 115282: // 'attribute' 'schema' - case 115321: // 'element' 'schema' - case 115384: // 'namespace' 'schema' - case 115416: // 'processing-instruction' 'schema' - case 115794: // 'attribute' 'schema-attribute' - case 115833: // 'element' 'schema-attribute' - case 115896: // 'namespace' 'schema-attribute' - case 115928: // 'processing-instruction' 'schema-attribute' - case 116306: // 'attribute' 'schema-element' - case 116345: // 'element' 'schema-element' - case 116408: // 'namespace' 'schema-element' - case 116440: // 'processing-instruction' 'schema-element' - case 116818: // 'attribute' 'score' - case 116857: // 'element' 'score' - case 116920: // 'namespace' 'score' - case 116952: // 'processing-instruction' 'score' - case 117330: // 'attribute' 'self' - case 117369: // 'element' 'self' - case 117432: // 'namespace' 'self' - case 117464: // 'processing-instruction' 'self' - case 119890: // 'attribute' 'sliding' - case 119929: // 'element' 'sliding' - case 119992: // 'namespace' 'sliding' - case 120024: // 'processing-instruction' 'sliding' - case 120402: // 'attribute' 'some' - case 120441: // 'element' 'some' - case 120504: // 'namespace' 'some' - case 120536: // 'processing-instruction' 'some' - case 122962: // 'attribute' 'strict' - case 123001: // 'element' 'strict' - case 123064: // 'namespace' 'strict' - case 123096: // 'processing-instruction' 'strict' - case 124498: // 'attribute' 'switch' - case 124537: // 'element' 'switch' - case 124600: // 'namespace' 'switch' - case 124632: // 'processing-instruction' 'switch' - case 125010: // 'attribute' 'text' - case 125049: // 'element' 'text' - case 125112: // 'namespace' 'text' - case 125144: // 'processing-instruction' 'text' - case 128082: // 'attribute' 'try' - case 128121: // 'element' 'try' - case 128184: // 'namespace' 'try' - case 128216: // 'processing-instruction' 'try' - case 128594: // 'attribute' 'tumbling' - case 128633: // 'element' 'tumbling' - case 128696: // 'namespace' 'tumbling' - case 128728: // 'processing-instruction' 'tumbling' - case 129106: // 'attribute' 'type' - case 129145: // 'element' 'type' - case 129208: // 'namespace' 'type' - case 129240: // 'processing-instruction' 'type' - case 129618: // 'attribute' 'typeswitch' - case 129657: // 'element' 'typeswitch' - case 129720: // 'namespace' 'typeswitch' - case 129752: // 'processing-instruction' 'typeswitch' - case 131154: // 'attribute' 'unordered' - case 131193: // 'element' 'unordered' - case 131256: // 'namespace' 'unordered' - case 131288: // 'processing-instruction' 'unordered' - case 131666: // 'attribute' 'updating' - case 131705: // 'element' 'updating' - case 131768: // 'namespace' 'updating' - case 131800: // 'processing-instruction' 'updating' - case 133202: // 'attribute' 'validate' - case 133241: // 'element' 'validate' - case 133304: // 'namespace' 'validate' - case 133336: // 'processing-instruction' 'validate' - case 133714: // 'attribute' 'value' - case 133753: // 'element' 'value' - case 133816: // 'namespace' 'value' - case 133848: // 'processing-instruction' 'value' - case 134226: // 'attribute' 'variable' - case 134265: // 'element' 'variable' - case 134328: // 'namespace' 'variable' - case 134360: // 'processing-instruction' 'variable' - case 134738: // 'attribute' 'version' - case 134777: // 'element' 'version' - case 134840: // 'namespace' 'version' - case 134872: // 'processing-instruction' 'version' - case 136786: // 'attribute' 'while' - case 136825: // 'element' 'while' - case 136888: // 'namespace' 'while' - case 136920: // 'processing-instruction' 'while' - case 140370: // 'attribute' 'xquery' - case 140409: // 'element' 'xquery' - case 140472: // 'namespace' 'xquery' - case 140504: // 'processing-instruction' 'xquery' - case 141394: // 'attribute' '{' - case 141408: // 'comment' '{' - case 141431: // 'document' '{' - case 141433: // 'element' '{' - case 141496: // 'namespace' '{' - case 141514: // 'ordered' '{' - case 141528: // 'processing-instruction' '{' - case 141556: // 'text' '{' - case 141568: // 'unordered' '{' - parse_PostfixExpr(); - break; - default: - parse_AxisStep(); - } - eventHandler.endNonterminal("StepExpr", e0); - } - - function try_StepExpr() - { - switch (l1) - { - case 82: // 'attribute' - lookahead2W(282); // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | - break; - case 121: // 'element' - lookahead2W(280); // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | - break; - case 184: // 'namespace' - case 216: // 'processing-instruction' - lookahead2W(279); // NCName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | - break; - case 96: // 'comment' - case 119: // 'document' - case 202: // 'ordered' - case 244: // 'text' - case 256: // 'unordered' - lookahead2W(245); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | - break; - case 124: // 'empty-sequence' - case 152: // 'if' - case 165: // 'item' - case 243: // 'switch' - case 253: // 'typeswitch' - lookahead2W(238); // S^WS | EOF | '!' | '!=' | '#' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 73: // 'ancestor' - case 74: // 'ancestor-or-self' - case 93: // 'child' - case 111: // 'descendant' - case 112: // 'descendant-or-self' - case 135: // 'following' - case 136: // 'following-sibling' - case 206: // 'parent' - case 212: // 'preceding' - case 213: // 'preceding-sibling' - case 229: // 'self' - lookahead2W(244); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | - break; - case 6: // EQName^Token - case 70: // 'after' - case 72: // 'allowing' - case 75: // 'and' - case 78: // 'array' - case 79: // 'as' - case 80: // 'ascending' - case 81: // 'at' - case 83: // 'base-uri' - case 84: // 'before' - case 85: // 'boundary-space' - case 86: // 'break' - case 88: // 'case' - case 89: // 'cast' - case 90: // 'castable' - case 91: // 'catch' - case 94: // 'collation' - case 97: // 'constraint' - case 98: // 'construction' - case 101: // 'context' - case 102: // 'continue' - case 103: // 'copy' - case 104: // 'copy-namespaces' - case 105: // 'count' - case 106: // 'decimal-format' - case 108: // 'declare' - case 109: // 'default' - case 110: // 'delete' - case 113: // 'descending' - case 118: // 'div' - case 120: // 'document-node' - case 122: // 'else' - case 123: // 'empty' - case 125: // 'encoding' - case 126: // 'end' - case 128: // 'eq' - case 129: // 'every' - case 131: // 'except' - case 132: // 'exit' - case 133: // 'external' - case 134: // 'first' - case 137: // 'for' - case 141: // 'ft-option' - case 145: // 'function' - case 146: // 'ge' - case 148: // 'group' - case 150: // 'gt' - case 151: // 'idiv' - case 153: // 'import' - case 154: // 'in' - case 155: // 'index' - case 159: // 'insert' - case 160: // 'instance' - case 161: // 'integrity' - case 162: // 'intersect' - case 163: // 'into' - case 164: // 'is' - case 167: // 'json-item' - case 170: // 'last' - case 171: // 'lax' - case 172: // 'le' - case 174: // 'let' - case 176: // 'loop' - case 178: // 'lt' - case 180: // 'mod' - case 181: // 'modify' - case 182: // 'module' - case 185: // 'namespace-node' - case 186: // 'ne' - case 191: // 'node' - case 192: // 'nodes' - case 194: // 'object' - case 198: // 'only' - case 199: // 'option' - case 200: // 'or' - case 201: // 'order' - case 203: // 'ordering' - case 218: // 'rename' - case 219: // 'replace' - case 220: // 'return' - case 221: // 'returning' - case 222: // 'revalidation' - case 224: // 'satisfies' - case 225: // 'schema' - case 226: // 'schema-attribute' - case 227: // 'schema-element' - case 228: // 'score' - case 234: // 'sliding' - case 235: // 'some' - case 236: // 'stable' - case 237: // 'start' - case 240: // 'strict' - case 248: // 'to' - case 249: // 'treat' - case 250: // 'try' - case 251: // 'tumbling' - case 252: // 'type' - case 254: // 'union' - case 257: // 'updating' - case 260: // 'validate' - case 261: // 'value' - case 262: // 'variable' - case 263: // 'version' - case 266: // 'where' - case 267: // 'while' - case 270: // 'with' - case 274: // 'xquery' - lookahead2W(242); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | - break; - default: - lk = l1; - } - if (lk == 17486 // 'array' '(' - || lk == 17575 // 'json-item' '(' - || lk == 17602 // 'object' '(' - || lk == 35922 // 'attribute' 'after' - || lk == 35961 // 'element' 'after' - || lk == 36024 // 'namespace' 'after' - || lk == 36056 // 'processing-instruction' 'after' - || lk == 38482 // 'attribute' 'and' - || lk == 38521 // 'element' 'and' - || lk == 38584 // 'namespace' 'and' - || lk == 38616 // 'processing-instruction' 'and' - || lk == 40530 // 'attribute' 'as' - || lk == 40569 // 'element' 'as' - || lk == 40632 // 'namespace' 'as' - || lk == 40664 // 'processing-instruction' 'as' - || lk == 41042 // 'attribute' 'ascending' - || lk == 41081 // 'element' 'ascending' - || lk == 41144 // 'namespace' 'ascending' - || lk == 41176 // 'processing-instruction' 'ascending' - || lk == 41554 // 'attribute' 'at' - || lk == 41593 // 'element' 'at' - || lk == 41656 // 'namespace' 'at' - || lk == 41688 // 'processing-instruction' 'at' - || lk == 43090 // 'attribute' 'before' - || lk == 43129 // 'element' 'before' - || lk == 43192 // 'namespace' 'before' - || lk == 43224 // 'processing-instruction' 'before' - || lk == 45138 // 'attribute' 'case' - || lk == 45177 // 'element' 'case' - || lk == 45240 // 'namespace' 'case' - || lk == 45272 // 'processing-instruction' 'case' - || lk == 45650 // 'attribute' 'cast' - || lk == 45689 // 'element' 'cast' - || lk == 45752 // 'namespace' 'cast' - || lk == 45784 // 'processing-instruction' 'cast' - || lk == 46162 // 'attribute' 'castable' - || lk == 46201 // 'element' 'castable' - || lk == 46264 // 'namespace' 'castable' - || lk == 46296 // 'processing-instruction' 'castable' - || lk == 48210 // 'attribute' 'collation' - || lk == 48249 // 'element' 'collation' - || lk == 48312 // 'namespace' 'collation' - || lk == 48344 // 'processing-instruction' 'collation' - || lk == 53842 // 'attribute' 'count' - || lk == 53881 // 'element' 'count' - || lk == 53944 // 'namespace' 'count' - || lk == 53976 // 'processing-instruction' 'count' - || lk == 55890 // 'attribute' 'default' - || lk == 55929 // 'element' 'default' - || lk == 55992 // 'namespace' 'default' - || lk == 56024 // 'processing-instruction' 'default' - || lk == 57938 // 'attribute' 'descending' - || lk == 57977 // 'element' 'descending' - || lk == 58040 // 'namespace' 'descending' - || lk == 58072 // 'processing-instruction' 'descending' - || lk == 60498 // 'attribute' 'div' - || lk == 60537 // 'element' 'div' - || lk == 60600 // 'namespace' 'div' - || lk == 60632 // 'processing-instruction' 'div' - || lk == 62546 // 'attribute' 'else' - || lk == 62585 // 'element' 'else' - || lk == 62648 // 'namespace' 'else' - || lk == 62680 // 'processing-instruction' 'else' - || lk == 63058 // 'attribute' 'empty' - || lk == 63097 // 'element' 'empty' - || lk == 63160 // 'namespace' 'empty' - || lk == 63192 // 'processing-instruction' 'empty' - || lk == 64594 // 'attribute' 'end' - || lk == 64633 // 'element' 'end' - || lk == 64696 // 'namespace' 'end' - || lk == 64728 // 'processing-instruction' 'end' - || lk == 65618 // 'attribute' 'eq' - || lk == 65657 // 'element' 'eq' - || lk == 65720 // 'namespace' 'eq' - || lk == 65752 // 'processing-instruction' 'eq' - || lk == 67154 // 'attribute' 'except' - || lk == 67193 // 'element' 'except' - || lk == 67256 // 'namespace' 'except' - || lk == 67288 // 'processing-instruction' 'except' - || lk == 70226 // 'attribute' 'for' - || lk == 70265 // 'element' 'for' - || lk == 70328 // 'namespace' 'for' - || lk == 70360 // 'processing-instruction' 'for' - || lk == 74834 // 'attribute' 'ge' - || lk == 74873 // 'element' 'ge' - || lk == 74936 // 'namespace' 'ge' - || lk == 74968 // 'processing-instruction' 'ge' - || lk == 75858 // 'attribute' 'group' - || lk == 75897 // 'element' 'group' - || lk == 75960 // 'namespace' 'group' - || lk == 75992 // 'processing-instruction' 'group' - || lk == 76882 // 'attribute' 'gt' - || lk == 76921 // 'element' 'gt' - || lk == 76984 // 'namespace' 'gt' - || lk == 77016 // 'processing-instruction' 'gt' - || lk == 77394 // 'attribute' 'idiv' - || lk == 77433 // 'element' 'idiv' - || lk == 77496 // 'namespace' 'idiv' - || lk == 77528 // 'processing-instruction' 'idiv' - || lk == 82002 // 'attribute' 'instance' - || lk == 82041 // 'element' 'instance' - || lk == 82104 // 'namespace' 'instance' - || lk == 82136 // 'processing-instruction' 'instance' - || lk == 83026 // 'attribute' 'intersect' - || lk == 83065 // 'element' 'intersect' - || lk == 83128 // 'namespace' 'intersect' - || lk == 83160 // 'processing-instruction' 'intersect' - || lk == 83538 // 'attribute' 'into' - || lk == 83577 // 'element' 'into' - || lk == 83640 // 'namespace' 'into' - || lk == 83672 // 'processing-instruction' 'into' - || lk == 84050 // 'attribute' 'is' - || lk == 84089 // 'element' 'is' - || lk == 84152 // 'namespace' 'is' - || lk == 84184 // 'processing-instruction' 'is' - || lk == 88146 // 'attribute' 'le' - || lk == 88185 // 'element' 'le' - || lk == 88248 // 'namespace' 'le' - || lk == 88280 // 'processing-instruction' 'le' - || lk == 89170 // 'attribute' 'let' - || lk == 89209 // 'element' 'let' - || lk == 89272 // 'namespace' 'let' - || lk == 89304 // 'processing-instruction' 'let' - || lk == 91218 // 'attribute' 'lt' - || lk == 91257 // 'element' 'lt' - || lk == 91320 // 'namespace' 'lt' - || lk == 91352 // 'processing-instruction' 'lt' - || lk == 92242 // 'attribute' 'mod' - || lk == 92281 // 'element' 'mod' - || lk == 92344 // 'namespace' 'mod' - || lk == 92376 // 'processing-instruction' 'mod' - || lk == 92754 // 'attribute' 'modify' - || lk == 92793 // 'element' 'modify' - || lk == 92856 // 'namespace' 'modify' - || lk == 92888 // 'processing-instruction' 'modify' - || lk == 95314 // 'attribute' 'ne' - || lk == 95353 // 'element' 'ne' - || lk == 95416 // 'namespace' 'ne' - || lk == 95448 // 'processing-instruction' 'ne' - || lk == 101458 // 'attribute' 'only' - || lk == 101497 // 'element' 'only' - || lk == 101560 // 'namespace' 'only' - || lk == 101592 // 'processing-instruction' 'only' - || lk == 102482 // 'attribute' 'or' - || lk == 102521 // 'element' 'or' - || lk == 102584 // 'namespace' 'or' - || lk == 102616 // 'processing-instruction' 'or' - || lk == 102994 // 'attribute' 'order' - || lk == 103033 // 'element' 'order' - || lk == 103096 // 'namespace' 'order' - || lk == 103128 // 'processing-instruction' 'order' - || lk == 112722 // 'attribute' 'return' - || lk == 112761 // 'element' 'return' - || lk == 112824 // 'namespace' 'return' - || lk == 112856 // 'processing-instruction' 'return' - || lk == 114770 // 'attribute' 'satisfies' - || lk == 114809 // 'element' 'satisfies' - || lk == 114872 // 'namespace' 'satisfies' - || lk == 114904 // 'processing-instruction' 'satisfies' - || lk == 120914 // 'attribute' 'stable' - || lk == 120953 // 'element' 'stable' - || lk == 121016 // 'namespace' 'stable' - || lk == 121048 // 'processing-instruction' 'stable' - || lk == 121426 // 'attribute' 'start' - || lk == 121465 // 'element' 'start' - || lk == 121528 // 'namespace' 'start' - || lk == 121560 // 'processing-instruction' 'start' - || lk == 127058 // 'attribute' 'to' - || lk == 127097 // 'element' 'to' - || lk == 127160 // 'namespace' 'to' - || lk == 127192 // 'processing-instruction' 'to' - || lk == 127570 // 'attribute' 'treat' - || lk == 127609 // 'element' 'treat' - || lk == 127672 // 'namespace' 'treat' - || lk == 127704 // 'processing-instruction' 'treat' - || lk == 130130 // 'attribute' 'union' - || lk == 130169 // 'element' 'union' - || lk == 130232 // 'namespace' 'union' - || lk == 130264 // 'processing-instruction' 'union' - || lk == 136274 // 'attribute' 'where' - || lk == 136313 // 'element' 'where' - || lk == 136376 // 'namespace' 'where' - || lk == 136408 // 'processing-instruction' 'where' - || lk == 138322 // 'attribute' 'with' - || lk == 138361 // 'element' 'with' - || lk == 138424 // 'namespace' 'with' - || lk == 138456) // 'processing-instruction' 'with' - { - lk = memoized(3, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - try_PostfixExpr(); - memoize(3, e0A, -1); - lk = -3; - } - catch (p1A) - { - lk = -2; - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(3, e0A, -2); - } - } - } - switch (lk) - { - case -1: - case 8: // IntegerLiteral - case 9: // DecimalLiteral - case 10: // DoubleLiteral - case 11: // StringLiteral - case 31: // '$' - case 32: // '%' - case 34: // '(' - case 44: // '.' - case 54: // '<' - case 55: // '<!--' - case 59: // '<?' - case 68: // '[' - case 276: // '{' - case 278: // '{|' - case 3154: // 'attribute' EQName^Token - case 3193: // 'element' EQName^Token - case 9912: // 'namespace' NCName^Token - case 9944: // 'processing-instruction' NCName^Token - case 14854: // EQName^Token '#' - case 14918: // 'after' '#' - case 14920: // 'allowing' '#' - case 14921: // 'ancestor' '#' - case 14922: // 'ancestor-or-self' '#' - case 14923: // 'and' '#' - case 14926: // 'array' '#' - case 14927: // 'as' '#' - case 14928: // 'ascending' '#' - case 14929: // 'at' '#' - case 14930: // 'attribute' '#' - case 14931: // 'base-uri' '#' - case 14932: // 'before' '#' - case 14933: // 'boundary-space' '#' - case 14934: // 'break' '#' - case 14936: // 'case' '#' - case 14937: // 'cast' '#' - case 14938: // 'castable' '#' - case 14939: // 'catch' '#' - case 14941: // 'child' '#' - case 14942: // 'collation' '#' - case 14944: // 'comment' '#' - case 14945: // 'constraint' '#' - case 14946: // 'construction' '#' - case 14949: // 'context' '#' - case 14950: // 'continue' '#' - case 14951: // 'copy' '#' - case 14952: // 'copy-namespaces' '#' - case 14953: // 'count' '#' - case 14954: // 'decimal-format' '#' - case 14956: // 'declare' '#' - case 14957: // 'default' '#' - case 14958: // 'delete' '#' - case 14959: // 'descendant' '#' - case 14960: // 'descendant-or-self' '#' - case 14961: // 'descending' '#' - case 14966: // 'div' '#' - case 14967: // 'document' '#' - case 14968: // 'document-node' '#' - case 14969: // 'element' '#' - case 14970: // 'else' '#' - case 14971: // 'empty' '#' - case 14972: // 'empty-sequence' '#' - case 14973: // 'encoding' '#' - case 14974: // 'end' '#' - case 14976: // 'eq' '#' - case 14977: // 'every' '#' - case 14979: // 'except' '#' - case 14980: // 'exit' '#' - case 14981: // 'external' '#' - case 14982: // 'first' '#' - case 14983: // 'following' '#' - case 14984: // 'following-sibling' '#' - case 14985: // 'for' '#' - case 14989: // 'ft-option' '#' - case 14993: // 'function' '#' - case 14994: // 'ge' '#' - case 14996: // 'group' '#' - case 14998: // 'gt' '#' - case 14999: // 'idiv' '#' - case 15000: // 'if' '#' - case 15001: // 'import' '#' - case 15002: // 'in' '#' - case 15003: // 'index' '#' - case 15007: // 'insert' '#' - case 15008: // 'instance' '#' - case 15009: // 'integrity' '#' - case 15010: // 'intersect' '#' - case 15011: // 'into' '#' - case 15012: // 'is' '#' - case 15013: // 'item' '#' - case 15015: // 'json-item' '#' - case 15018: // 'last' '#' - case 15019: // 'lax' '#' - case 15020: // 'le' '#' - case 15022: // 'let' '#' - case 15024: // 'loop' '#' - case 15026: // 'lt' '#' - case 15028: // 'mod' '#' - case 15029: // 'modify' '#' - case 15030: // 'module' '#' - case 15032: // 'namespace' '#' - case 15033: // 'namespace-node' '#' - case 15034: // 'ne' '#' - case 15039: // 'node' '#' - case 15040: // 'nodes' '#' - case 15042: // 'object' '#' - case 15046: // 'only' '#' - case 15047: // 'option' '#' - case 15048: // 'or' '#' - case 15049: // 'order' '#' - case 15050: // 'ordered' '#' - case 15051: // 'ordering' '#' - case 15054: // 'parent' '#' - case 15060: // 'preceding' '#' - case 15061: // 'preceding-sibling' '#' - case 15064: // 'processing-instruction' '#' - case 15066: // 'rename' '#' - case 15067: // 'replace' '#' - case 15068: // 'return' '#' - case 15069: // 'returning' '#' - case 15070: // 'revalidation' '#' - case 15072: // 'satisfies' '#' - case 15073: // 'schema' '#' - case 15074: // 'schema-attribute' '#' - case 15075: // 'schema-element' '#' - case 15076: // 'score' '#' - case 15077: // 'self' '#' - case 15082: // 'sliding' '#' - case 15083: // 'some' '#' - case 15084: // 'stable' '#' - case 15085: // 'start' '#' - case 15088: // 'strict' '#' - case 15091: // 'switch' '#' - case 15092: // 'text' '#' - case 15096: // 'to' '#' - case 15097: // 'treat' '#' - case 15098: // 'try' '#' - case 15099: // 'tumbling' '#' - case 15100: // 'type' '#' - case 15101: // 'typeswitch' '#' - case 15102: // 'union' '#' - case 15104: // 'unordered' '#' - case 15105: // 'updating' '#' - case 15108: // 'validate' '#' - case 15109: // 'value' '#' - case 15110: // 'variable' '#' - case 15111: // 'version' '#' - case 15114: // 'where' '#' - case 15115: // 'while' '#' - case 15118: // 'with' '#' - case 15122: // 'xquery' '#' - case 17414: // EQName^Token '(' - case 17478: // 'after' '(' - case 17480: // 'allowing' '(' - case 17481: // 'ancestor' '(' - case 17482: // 'ancestor-or-self' '(' - case 17483: // 'and' '(' - case 17487: // 'as' '(' - case 17488: // 'ascending' '(' - case 17489: // 'at' '(' - case 17491: // 'base-uri' '(' - case 17492: // 'before' '(' - case 17493: // 'boundary-space' '(' - case 17494: // 'break' '(' - case 17496: // 'case' '(' - case 17497: // 'cast' '(' - case 17498: // 'castable' '(' - case 17499: // 'catch' '(' - case 17501: // 'child' '(' - case 17502: // 'collation' '(' - case 17505: // 'constraint' '(' - case 17506: // 'construction' '(' - case 17509: // 'context' '(' - case 17510: // 'continue' '(' - case 17511: // 'copy' '(' - case 17512: // 'copy-namespaces' '(' - case 17513: // 'count' '(' - case 17514: // 'decimal-format' '(' - case 17516: // 'declare' '(' - case 17517: // 'default' '(' - case 17518: // 'delete' '(' - case 17519: // 'descendant' '(' - case 17520: // 'descendant-or-self' '(' - case 17521: // 'descending' '(' - case 17526: // 'div' '(' - case 17527: // 'document' '(' - case 17530: // 'else' '(' - case 17531: // 'empty' '(' - case 17533: // 'encoding' '(' - case 17534: // 'end' '(' - case 17536: // 'eq' '(' - case 17537: // 'every' '(' - case 17539: // 'except' '(' - case 17540: // 'exit' '(' - case 17541: // 'external' '(' - case 17542: // 'first' '(' - case 17543: // 'following' '(' - case 17544: // 'following-sibling' '(' - case 17545: // 'for' '(' - case 17549: // 'ft-option' '(' - case 17553: // 'function' '(' - case 17554: // 'ge' '(' - case 17556: // 'group' '(' - case 17558: // 'gt' '(' - case 17559: // 'idiv' '(' - case 17561: // 'import' '(' - case 17562: // 'in' '(' - case 17563: // 'index' '(' - case 17567: // 'insert' '(' - case 17568: // 'instance' '(' - case 17569: // 'integrity' '(' - case 17570: // 'intersect' '(' - case 17571: // 'into' '(' - case 17572: // 'is' '(' - case 17578: // 'last' '(' - case 17579: // 'lax' '(' - case 17580: // 'le' '(' - case 17582: // 'let' '(' - case 17584: // 'loop' '(' - case 17586: // 'lt' '(' - case 17588: // 'mod' '(' - case 17589: // 'modify' '(' - case 17590: // 'module' '(' - case 17592: // 'namespace' '(' - case 17594: // 'ne' '(' - case 17600: // 'nodes' '(' - case 17606: // 'only' '(' - case 17607: // 'option' '(' - case 17608: // 'or' '(' - case 17609: // 'order' '(' - case 17610: // 'ordered' '(' - case 17611: // 'ordering' '(' - case 17614: // 'parent' '(' - case 17620: // 'preceding' '(' - case 17621: // 'preceding-sibling' '(' - case 17626: // 'rename' '(' - case 17627: // 'replace' '(' - case 17628: // 'return' '(' - case 17629: // 'returning' '(' - case 17630: // 'revalidation' '(' - case 17632: // 'satisfies' '(' - case 17633: // 'schema' '(' - case 17636: // 'score' '(' - case 17637: // 'self' '(' - case 17642: // 'sliding' '(' - case 17643: // 'some' '(' - case 17644: // 'stable' '(' - case 17645: // 'start' '(' - case 17648: // 'strict' '(' - case 17656: // 'to' '(' - case 17657: // 'treat' '(' - case 17658: // 'try' '(' - case 17659: // 'tumbling' '(' - case 17660: // 'type' '(' - case 17662: // 'union' '(' - case 17664: // 'unordered' '(' - case 17665: // 'updating' '(' - case 17668: // 'validate' '(' - case 17669: // 'value' '(' - case 17670: // 'variable' '(' - case 17671: // 'version' '(' - case 17674: // 'where' '(' - case 17675: // 'while' '(' - case 17678: // 'with' '(' - case 17682: // 'xquery' '(' - case 36946: // 'attribute' 'allowing' - case 36985: // 'element' 'allowing' - case 37048: // 'namespace' 'allowing' - case 37080: // 'processing-instruction' 'allowing' - case 37458: // 'attribute' 'ancestor' - case 37497: // 'element' 'ancestor' - case 37560: // 'namespace' 'ancestor' - case 37592: // 'processing-instruction' 'ancestor' - case 37970: // 'attribute' 'ancestor-or-self' - case 38009: // 'element' 'ancestor-or-self' - case 38072: // 'namespace' 'ancestor-or-self' - case 38104: // 'processing-instruction' 'ancestor-or-self' - case 40018: // 'attribute' 'array' - case 40057: // 'element' 'array' - case 42066: // 'attribute' 'attribute' - case 42105: // 'element' 'attribute' - case 42168: // 'namespace' 'attribute' - case 42200: // 'processing-instruction' 'attribute' - case 42578: // 'attribute' 'base-uri' - case 42617: // 'element' 'base-uri' - case 42680: // 'namespace' 'base-uri' - case 42712: // 'processing-instruction' 'base-uri' - case 43602: // 'attribute' 'boundary-space' - case 43641: // 'element' 'boundary-space' - case 43704: // 'namespace' 'boundary-space' - case 43736: // 'processing-instruction' 'boundary-space' - case 44114: // 'attribute' 'break' - case 44153: // 'element' 'break' - case 44216: // 'namespace' 'break' - case 44248: // 'processing-instruction' 'break' - case 46674: // 'attribute' 'catch' - case 46713: // 'element' 'catch' - case 46776: // 'namespace' 'catch' - case 46808: // 'processing-instruction' 'catch' - case 47698: // 'attribute' 'child' - case 47737: // 'element' 'child' - case 47800: // 'namespace' 'child' - case 47832: // 'processing-instruction' 'child' - case 49234: // 'attribute' 'comment' - case 49273: // 'element' 'comment' - case 49336: // 'namespace' 'comment' - case 49368: // 'processing-instruction' 'comment' - case 49746: // 'attribute' 'constraint' - case 49785: // 'element' 'constraint' - case 49848: // 'namespace' 'constraint' - case 49880: // 'processing-instruction' 'constraint' - case 50258: // 'attribute' 'construction' - case 50297: // 'element' 'construction' - case 50360: // 'namespace' 'construction' - case 50392: // 'processing-instruction' 'construction' - case 51794: // 'attribute' 'context' - case 51833: // 'element' 'context' - case 51896: // 'namespace' 'context' - case 51928: // 'processing-instruction' 'context' - case 52306: // 'attribute' 'continue' - case 52345: // 'element' 'continue' - case 52408: // 'namespace' 'continue' - case 52440: // 'processing-instruction' 'continue' - case 52818: // 'attribute' 'copy' - case 52857: // 'element' 'copy' - case 52920: // 'namespace' 'copy' - case 52952: // 'processing-instruction' 'copy' - case 53330: // 'attribute' 'copy-namespaces' - case 53369: // 'element' 'copy-namespaces' - case 53432: // 'namespace' 'copy-namespaces' - case 53464: // 'processing-instruction' 'copy-namespaces' - case 54354: // 'attribute' 'decimal-format' - case 54393: // 'element' 'decimal-format' - case 54456: // 'namespace' 'decimal-format' - case 54488: // 'processing-instruction' 'decimal-format' - case 55378: // 'attribute' 'declare' - case 55417: // 'element' 'declare' - case 55480: // 'namespace' 'declare' - case 55512: // 'processing-instruction' 'declare' - case 56402: // 'attribute' 'delete' - case 56441: // 'element' 'delete' - case 56504: // 'namespace' 'delete' - case 56536: // 'processing-instruction' 'delete' - case 56914: // 'attribute' 'descendant' - case 56953: // 'element' 'descendant' - case 57016: // 'namespace' 'descendant' - case 57048: // 'processing-instruction' 'descendant' - case 57426: // 'attribute' 'descendant-or-self' - case 57465: // 'element' 'descendant-or-self' - case 57528: // 'namespace' 'descendant-or-self' - case 57560: // 'processing-instruction' 'descendant-or-self' - case 61010: // 'attribute' 'document' - case 61049: // 'element' 'document' - case 61112: // 'namespace' 'document' - case 61144: // 'processing-instruction' 'document' - case 61522: // 'attribute' 'document-node' - case 61561: // 'element' 'document-node' - case 61624: // 'namespace' 'document-node' - case 61656: // 'processing-instruction' 'document-node' - case 62034: // 'attribute' 'element' - case 62073: // 'element' 'element' - case 62136: // 'namespace' 'element' - case 62168: // 'processing-instruction' 'element' - case 63570: // 'attribute' 'empty-sequence' - case 63609: // 'element' 'empty-sequence' - case 63672: // 'namespace' 'empty-sequence' - case 63704: // 'processing-instruction' 'empty-sequence' - case 64082: // 'attribute' 'encoding' - case 64121: // 'element' 'encoding' - case 64184: // 'namespace' 'encoding' - case 64216: // 'processing-instruction' 'encoding' - case 66130: // 'attribute' 'every' - case 66169: // 'element' 'every' - case 66232: // 'namespace' 'every' - case 66264: // 'processing-instruction' 'every' - case 67666: // 'attribute' 'exit' - case 67705: // 'element' 'exit' - case 67768: // 'namespace' 'exit' - case 67800: // 'processing-instruction' 'exit' - case 68178: // 'attribute' 'external' - case 68217: // 'element' 'external' - case 68280: // 'namespace' 'external' - case 68312: // 'processing-instruction' 'external' - case 68690: // 'attribute' 'first' - case 68729: // 'element' 'first' - case 68792: // 'namespace' 'first' - case 68824: // 'processing-instruction' 'first' - case 69202: // 'attribute' 'following' - case 69241: // 'element' 'following' - case 69304: // 'namespace' 'following' - case 69336: // 'processing-instruction' 'following' - case 69714: // 'attribute' 'following-sibling' - case 69753: // 'element' 'following-sibling' - case 69816: // 'namespace' 'following-sibling' - case 69848: // 'processing-instruction' 'following-sibling' - case 72274: // 'attribute' 'ft-option' - case 72313: // 'element' 'ft-option' - case 72376: // 'namespace' 'ft-option' - case 72408: // 'processing-instruction' 'ft-option' - case 74322: // 'attribute' 'function' - case 74361: // 'element' 'function' - case 74424: // 'namespace' 'function' - case 74456: // 'processing-instruction' 'function' - case 77906: // 'attribute' 'if' - case 77945: // 'element' 'if' - case 78008: // 'namespace' 'if' - case 78040: // 'processing-instruction' 'if' - case 78418: // 'attribute' 'import' - case 78457: // 'element' 'import' - case 78520: // 'namespace' 'import' - case 78552: // 'processing-instruction' 'import' - case 78930: // 'attribute' 'in' - case 78969: // 'element' 'in' - case 79032: // 'namespace' 'in' - case 79064: // 'processing-instruction' 'in' - case 79442: // 'attribute' 'index' - case 79481: // 'element' 'index' - case 79544: // 'namespace' 'index' - case 79576: // 'processing-instruction' 'index' - case 81490: // 'attribute' 'insert' - case 81529: // 'element' 'insert' - case 81592: // 'namespace' 'insert' - case 81624: // 'processing-instruction' 'insert' - case 82514: // 'attribute' 'integrity' - case 82553: // 'element' 'integrity' - case 82616: // 'namespace' 'integrity' - case 82648: // 'processing-instruction' 'integrity' - case 84562: // 'attribute' 'item' - case 84601: // 'element' 'item' - case 84664: // 'namespace' 'item' - case 84696: // 'processing-instruction' 'item' - case 85586: // 'attribute' 'json-item' - case 85625: // 'element' 'json-item' - case 87122: // 'attribute' 'last' - case 87161: // 'element' 'last' - case 87224: // 'namespace' 'last' - case 87256: // 'processing-instruction' 'last' - case 87634: // 'attribute' 'lax' - case 87673: // 'element' 'lax' - case 87736: // 'namespace' 'lax' - case 87768: // 'processing-instruction' 'lax' - case 90194: // 'attribute' 'loop' - case 90233: // 'element' 'loop' - case 90296: // 'namespace' 'loop' - case 90328: // 'processing-instruction' 'loop' - case 93266: // 'attribute' 'module' - case 93305: // 'element' 'module' - case 93368: // 'namespace' 'module' - case 93400: // 'processing-instruction' 'module' - case 94290: // 'attribute' 'namespace' - case 94329: // 'element' 'namespace' - case 94392: // 'namespace' 'namespace' - case 94424: // 'processing-instruction' 'namespace' - case 94802: // 'attribute' 'namespace-node' - case 94841: // 'element' 'namespace-node' - case 94904: // 'namespace' 'namespace-node' - case 94936: // 'processing-instruction' 'namespace-node' - case 97874: // 'attribute' 'node' - case 97913: // 'element' 'node' - case 97976: // 'namespace' 'node' - case 98008: // 'processing-instruction' 'node' - case 98386: // 'attribute' 'nodes' - case 98425: // 'element' 'nodes' - case 98488: // 'namespace' 'nodes' - case 98520: // 'processing-instruction' 'nodes' - case 99410: // 'attribute' 'object' - case 99449: // 'element' 'object' - case 101970: // 'attribute' 'option' - case 102009: // 'element' 'option' - case 102072: // 'namespace' 'option' - case 102104: // 'processing-instruction' 'option' - case 103506: // 'attribute' 'ordered' - case 103545: // 'element' 'ordered' - case 103608: // 'namespace' 'ordered' - case 103640: // 'processing-instruction' 'ordered' - case 104018: // 'attribute' 'ordering' - case 104057: // 'element' 'ordering' - case 104120: // 'namespace' 'ordering' - case 104152: // 'processing-instruction' 'ordering' - case 105554: // 'attribute' 'parent' - case 105593: // 'element' 'parent' - case 105656: // 'namespace' 'parent' - case 105688: // 'processing-instruction' 'parent' - case 108626: // 'attribute' 'preceding' - case 108665: // 'element' 'preceding' - case 108728: // 'namespace' 'preceding' - case 108760: // 'processing-instruction' 'preceding' - case 109138: // 'attribute' 'preceding-sibling' - case 109177: // 'element' 'preceding-sibling' - case 109240: // 'namespace' 'preceding-sibling' - case 109272: // 'processing-instruction' 'preceding-sibling' - case 110674: // 'attribute' 'processing-instruction' - case 110713: // 'element' 'processing-instruction' - case 110776: // 'namespace' 'processing-instruction' - case 110808: // 'processing-instruction' 'processing-instruction' - case 111698: // 'attribute' 'rename' - case 111737: // 'element' 'rename' - case 111800: // 'namespace' 'rename' - case 111832: // 'processing-instruction' 'rename' - case 112210: // 'attribute' 'replace' - case 112249: // 'element' 'replace' - case 112312: // 'namespace' 'replace' - case 112344: // 'processing-instruction' 'replace' - case 113234: // 'attribute' 'returning' - case 113273: // 'element' 'returning' - case 113336: // 'namespace' 'returning' - case 113368: // 'processing-instruction' 'returning' - case 113746: // 'attribute' 'revalidation' - case 113785: // 'element' 'revalidation' - case 113848: // 'namespace' 'revalidation' - case 113880: // 'processing-instruction' 'revalidation' - case 115282: // 'attribute' 'schema' - case 115321: // 'element' 'schema' - case 115384: // 'namespace' 'schema' - case 115416: // 'processing-instruction' 'schema' - case 115794: // 'attribute' 'schema-attribute' - case 115833: // 'element' 'schema-attribute' - case 115896: // 'namespace' 'schema-attribute' - case 115928: // 'processing-instruction' 'schema-attribute' - case 116306: // 'attribute' 'schema-element' - case 116345: // 'element' 'schema-element' - case 116408: // 'namespace' 'schema-element' - case 116440: // 'processing-instruction' 'schema-element' - case 116818: // 'attribute' 'score' - case 116857: // 'element' 'score' - case 116920: // 'namespace' 'score' - case 116952: // 'processing-instruction' 'score' - case 117330: // 'attribute' 'self' - case 117369: // 'element' 'self' - case 117432: // 'namespace' 'self' - case 117464: // 'processing-instruction' 'self' - case 119890: // 'attribute' 'sliding' - case 119929: // 'element' 'sliding' - case 119992: // 'namespace' 'sliding' - case 120024: // 'processing-instruction' 'sliding' - case 120402: // 'attribute' 'some' - case 120441: // 'element' 'some' - case 120504: // 'namespace' 'some' - case 120536: // 'processing-instruction' 'some' - case 122962: // 'attribute' 'strict' - case 123001: // 'element' 'strict' - case 123064: // 'namespace' 'strict' - case 123096: // 'processing-instruction' 'strict' - case 124498: // 'attribute' 'switch' - case 124537: // 'element' 'switch' - case 124600: // 'namespace' 'switch' - case 124632: // 'processing-instruction' 'switch' - case 125010: // 'attribute' 'text' - case 125049: // 'element' 'text' - case 125112: // 'namespace' 'text' - case 125144: // 'processing-instruction' 'text' - case 128082: // 'attribute' 'try' - case 128121: // 'element' 'try' - case 128184: // 'namespace' 'try' - case 128216: // 'processing-instruction' 'try' - case 128594: // 'attribute' 'tumbling' - case 128633: // 'element' 'tumbling' - case 128696: // 'namespace' 'tumbling' - case 128728: // 'processing-instruction' 'tumbling' - case 129106: // 'attribute' 'type' - case 129145: // 'element' 'type' - case 129208: // 'namespace' 'type' - case 129240: // 'processing-instruction' 'type' - case 129618: // 'attribute' 'typeswitch' - case 129657: // 'element' 'typeswitch' - case 129720: // 'namespace' 'typeswitch' - case 129752: // 'processing-instruction' 'typeswitch' - case 131154: // 'attribute' 'unordered' - case 131193: // 'element' 'unordered' - case 131256: // 'namespace' 'unordered' - case 131288: // 'processing-instruction' 'unordered' - case 131666: // 'attribute' 'updating' - case 131705: // 'element' 'updating' - case 131768: // 'namespace' 'updating' - case 131800: // 'processing-instruction' 'updating' - case 133202: // 'attribute' 'validate' - case 133241: // 'element' 'validate' - case 133304: // 'namespace' 'validate' - case 133336: // 'processing-instruction' 'validate' - case 133714: // 'attribute' 'value' - case 133753: // 'element' 'value' - case 133816: // 'namespace' 'value' - case 133848: // 'processing-instruction' 'value' - case 134226: // 'attribute' 'variable' - case 134265: // 'element' 'variable' - case 134328: // 'namespace' 'variable' - case 134360: // 'processing-instruction' 'variable' - case 134738: // 'attribute' 'version' - case 134777: // 'element' 'version' - case 134840: // 'namespace' 'version' - case 134872: // 'processing-instruction' 'version' - case 136786: // 'attribute' 'while' - case 136825: // 'element' 'while' - case 136888: // 'namespace' 'while' - case 136920: // 'processing-instruction' 'while' - case 140370: // 'attribute' 'xquery' - case 140409: // 'element' 'xquery' - case 140472: // 'namespace' 'xquery' - case 140504: // 'processing-instruction' 'xquery' - case 141394: // 'attribute' '{' - case 141408: // 'comment' '{' - case 141431: // 'document' '{' - case 141433: // 'element' '{' - case 141496: // 'namespace' '{' - case 141514: // 'ordered' '{' - case 141528: // 'processing-instruction' '{' - case 141556: // 'text' '{' - case 141568: // 'unordered' '{' - try_PostfixExpr(); - break; - case -3: - break; - default: - try_AxisStep(); - } - } - - function parse_AxisStep() - { - eventHandler.startNonterminal("AxisStep", e0); - switch (l1) - { - case 73: // 'ancestor' - case 74: // 'ancestor-or-self' - case 206: // 'parent' - case 212: // 'preceding' - case 213: // 'preceding-sibling' - lookahead2W(240); // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' | - break; - default: - lk = l1; - } - switch (lk) - { - case 45: // '..' - case 26185: // 'ancestor' '::' - case 26186: // 'ancestor-or-self' '::' - case 26318: // 'parent' '::' - case 26324: // 'preceding' '::' - case 26325: // 'preceding-sibling' '::' - parse_ReverseStep(); - break; - default: - parse_ForwardStep(); - } - lookahead1W(236); // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' | - whitespace(); - parse_PredicateList(); - eventHandler.endNonterminal("AxisStep", e0); - } - - function try_AxisStep() - { - switch (l1) - { - case 73: // 'ancestor' - case 74: // 'ancestor-or-self' - case 206: // 'parent' - case 212: // 'preceding' - case 213: // 'preceding-sibling' - lookahead2W(240); // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' | - break; - default: - lk = l1; - } - switch (lk) - { - case 45: // '..' - case 26185: // 'ancestor' '::' - case 26186: // 'ancestor-or-self' '::' - case 26318: // 'parent' '::' - case 26324: // 'preceding' '::' - case 26325: // 'preceding-sibling' '::' - try_ReverseStep(); - break; - default: - try_ForwardStep(); - } - lookahead1W(236); // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' | - try_PredicateList(); - } - - function parse_ForwardStep() - { - eventHandler.startNonterminal("ForwardStep", e0); - switch (l1) - { - case 82: // 'attribute' - lookahead2W(243); // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 93: // 'child' - case 111: // 'descendant' - case 112: // 'descendant-or-self' - case 135: // 'following' - case 136: // 'following-sibling' - case 229: // 'self' - lookahead2W(240); // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' | - break; - default: - lk = l1; - } - switch (lk) - { - case 26194: // 'attribute' '::' - case 26205: // 'child' '::' - case 26223: // 'descendant' '::' - case 26224: // 'descendant-or-self' '::' - case 26247: // 'following' '::' - case 26248: // 'following-sibling' '::' - case 26341: // 'self' '::' - parse_ForwardAxis(); - lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_NodeTest(); - break; - default: - parse_AbbrevForwardStep(); - } - eventHandler.endNonterminal("ForwardStep", e0); - } - - function try_ForwardStep() - { - switch (l1) - { - case 82: // 'attribute' - lookahead2W(243); // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 93: // 'child' - case 111: // 'descendant' - case 112: // 'descendant-or-self' - case 135: // 'following' - case 136: // 'following-sibling' - case 229: // 'self' - lookahead2W(240); // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' | - break; - default: - lk = l1; - } - switch (lk) - { - case 26194: // 'attribute' '::' - case 26205: // 'child' '::' - case 26223: // 'descendant' '::' - case 26224: // 'descendant-or-self' '::' - case 26247: // 'following' '::' - case 26248: // 'following-sibling' '::' - case 26341: // 'self' '::' - try_ForwardAxis(); - lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_NodeTest(); - break; - default: - try_AbbrevForwardStep(); - } - } - - function parse_ForwardAxis() - { - eventHandler.startNonterminal("ForwardAxis", e0); - switch (l1) - { - case 93: // 'child' - shift(93); // 'child' - lookahead1W(26); // S^WS | '(:' | '::' - shift(51); // '::' - break; - case 111: // 'descendant' - shift(111); // 'descendant' - lookahead1W(26); // S^WS | '(:' | '::' - shift(51); // '::' - break; - case 82: // 'attribute' - shift(82); // 'attribute' - lookahead1W(26); // S^WS | '(:' | '::' - shift(51); // '::' - break; - case 229: // 'self' - shift(229); // 'self' - lookahead1W(26); // S^WS | '(:' | '::' - shift(51); // '::' - break; - case 112: // 'descendant-or-self' - shift(112); // 'descendant-or-self' - lookahead1W(26); // S^WS | '(:' | '::' - shift(51); // '::' - break; - case 136: // 'following-sibling' - shift(136); // 'following-sibling' - lookahead1W(26); // S^WS | '(:' | '::' - shift(51); // '::' - break; - default: - shift(135); // 'following' - lookahead1W(26); // S^WS | '(:' | '::' - shift(51); // '::' - } - eventHandler.endNonterminal("ForwardAxis", e0); - } - - function try_ForwardAxis() - { - switch (l1) - { - case 93: // 'child' - shiftT(93); // 'child' - lookahead1W(26); // S^WS | '(:' | '::' - shiftT(51); // '::' - break; - case 111: // 'descendant' - shiftT(111); // 'descendant' - lookahead1W(26); // S^WS | '(:' | '::' - shiftT(51); // '::' - break; - case 82: // 'attribute' - shiftT(82); // 'attribute' - lookahead1W(26); // S^WS | '(:' | '::' - shiftT(51); // '::' - break; - case 229: // 'self' - shiftT(229); // 'self' - lookahead1W(26); // S^WS | '(:' | '::' - shiftT(51); // '::' - break; - case 112: // 'descendant-or-self' - shiftT(112); // 'descendant-or-self' - lookahead1W(26); // S^WS | '(:' | '::' - shiftT(51); // '::' - break; - case 136: // 'following-sibling' - shiftT(136); // 'following-sibling' - lookahead1W(26); // S^WS | '(:' | '::' - shiftT(51); // '::' - break; - default: - shiftT(135); // 'following' - lookahead1W(26); // S^WS | '(:' | '::' - shiftT(51); // '::' - } - } - - function parse_AbbrevForwardStep() - { - eventHandler.startNonterminal("AbbrevForwardStep", e0); - if (l1 == 66) // '@' - { - shift(66); // '@' - } - lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_NodeTest(); - eventHandler.endNonterminal("AbbrevForwardStep", e0); - } - - function try_AbbrevForwardStep() - { - if (l1 == 66) // '@' - { - shiftT(66); // '@' - } - lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_NodeTest(); - } - - function parse_ReverseStep() - { - eventHandler.startNonterminal("ReverseStep", e0); - switch (l1) - { - case 45: // '..' - parse_AbbrevReverseStep(); - break; - default: - parse_ReverseAxis(); - lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_NodeTest(); - } - eventHandler.endNonterminal("ReverseStep", e0); - } - - function try_ReverseStep() - { - switch (l1) - { - case 45: // '..' - try_AbbrevReverseStep(); - break; - default: - try_ReverseAxis(); - lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_NodeTest(); - } - } - - function parse_ReverseAxis() - { - eventHandler.startNonterminal("ReverseAxis", e0); - switch (l1) - { - case 206: // 'parent' - shift(206); // 'parent' - lookahead1W(26); // S^WS | '(:' | '::' - shift(51); // '::' - break; - case 73: // 'ancestor' - shift(73); // 'ancestor' - lookahead1W(26); // S^WS | '(:' | '::' - shift(51); // '::' - break; - case 213: // 'preceding-sibling' - shift(213); // 'preceding-sibling' - lookahead1W(26); // S^WS | '(:' | '::' - shift(51); // '::' - break; - case 212: // 'preceding' - shift(212); // 'preceding' - lookahead1W(26); // S^WS | '(:' | '::' - shift(51); // '::' - break; - default: - shift(74); // 'ancestor-or-self' - lookahead1W(26); // S^WS | '(:' | '::' - shift(51); // '::' - } - eventHandler.endNonterminal("ReverseAxis", e0); - } - - function try_ReverseAxis() - { - switch (l1) - { - case 206: // 'parent' - shiftT(206); // 'parent' - lookahead1W(26); // S^WS | '(:' | '::' - shiftT(51); // '::' - break; - case 73: // 'ancestor' - shiftT(73); // 'ancestor' - lookahead1W(26); // S^WS | '(:' | '::' - shiftT(51); // '::' - break; - case 213: // 'preceding-sibling' - shiftT(213); // 'preceding-sibling' - lookahead1W(26); // S^WS | '(:' | '::' - shiftT(51); // '::' - break; - case 212: // 'preceding' - shiftT(212); // 'preceding' - lookahead1W(26); // S^WS | '(:' | '::' - shiftT(51); // '::' - break; - default: - shiftT(74); // 'ancestor-or-self' - lookahead1W(26); // S^WS | '(:' | '::' - shiftT(51); // '::' - } - } - - function parse_AbbrevReverseStep() - { - eventHandler.startNonterminal("AbbrevReverseStep", e0); - shift(45); // '..' - eventHandler.endNonterminal("AbbrevReverseStep", e0); - } - - function try_AbbrevReverseStep() - { - shiftT(45); // '..' - } - - function parse_NodeTest() - { - eventHandler.startNonterminal("NodeTest", e0); - switch (l1) - { - case 78: // 'array' - case 82: // 'attribute' - case 96: // 'comment' - case 120: // 'document-node' - case 121: // 'element' - case 167: // 'json-item' - case 185: // 'namespace-node' - case 191: // 'node' - case 194: // 'object' - case 216: // 'processing-instruction' - case 226: // 'schema-attribute' - case 227: // 'schema-element' - case 244: // 'text' - lookahead2W(239); // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - default: - lk = l1; - } - switch (lk) - { - case 17486: // 'array' '(' - case 17490: // 'attribute' '(' - case 17504: // 'comment' '(' - case 17528: // 'document-node' '(' - case 17529: // 'element' '(' - case 17575: // 'json-item' '(' - case 17593: // 'namespace-node' '(' - case 17599: // 'node' '(' - case 17602: // 'object' '(' - case 17624: // 'processing-instruction' '(' - case 17634: // 'schema-attribute' '(' - case 17635: // 'schema-element' '(' - case 17652: // 'text' '(' - parse_KindTest(); - break; - default: - parse_NameTest(); - } - eventHandler.endNonterminal("NodeTest", e0); - } - - function try_NodeTest() - { - switch (l1) - { - case 78: // 'array' - case 82: // 'attribute' - case 96: // 'comment' - case 120: // 'document-node' - case 121: // 'element' - case 167: // 'json-item' - case 185: // 'namespace-node' - case 191: // 'node' - case 194: // 'object' - case 216: // 'processing-instruction' - case 226: // 'schema-attribute' - case 227: // 'schema-element' - case 244: // 'text' - lookahead2W(239); // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - default: - lk = l1; - } - switch (lk) - { - case 17486: // 'array' '(' - case 17490: // 'attribute' '(' - case 17504: // 'comment' '(' - case 17528: // 'document-node' '(' - case 17529: // 'element' '(' - case 17575: // 'json-item' '(' - case 17593: // 'namespace-node' '(' - case 17599: // 'node' '(' - case 17602: // 'object' '(' - case 17624: // 'processing-instruction' '(' - case 17634: // 'schema-attribute' '(' - case 17635: // 'schema-element' '(' - case 17652: // 'text' '(' - try_KindTest(); - break; - default: - try_NameTest(); - } - } - - function parse_NameTest() - { - eventHandler.startNonterminal("NameTest", e0); - switch (l1) - { - case 5: // Wildcard - shift(5); // Wildcard - break; - default: - parse_EQName(); - } - eventHandler.endNonterminal("NameTest", e0); - } - - function try_NameTest() - { - switch (l1) - { - case 5: // Wildcard - shiftT(5); // Wildcard - break; - default: - try_EQName(); - } - } - - function parse_PostfixExpr() - { - eventHandler.startNonterminal("PostfixExpr", e0); - parse_PrimaryExpr(); - for (;;) - { - lookahead1W(239); // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | - if (l1 != 34 // '(' - && l1 != 68) // '[' - { - break; - } - switch (l1) - { - case 68: // '[' - whitespace(); - parse_Predicate(); - break; - default: - whitespace(); - parse_ArgumentList(); - } - } - eventHandler.endNonterminal("PostfixExpr", e0); - } - - function try_PostfixExpr() - { - try_PrimaryExpr(); - for (;;) - { - lookahead1W(239); // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | - if (l1 != 34 // '(' - && l1 != 68) // '[' - { - break; - } - switch (l1) - { - case 68: // '[' - try_Predicate(); - break; - default: - try_ArgumentList(); - } - } - } - - function parse_ArgumentList() - { - eventHandler.startNonterminal("ArgumentList", e0); - shift(34); // '(' - lookahead1W(275); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - if (l1 != 37) // ')' - { - whitespace(); - parse_Argument(); - for (;;) - { - lookahead1W(101); // S^WS | '(:' | ')' | ',' - if (l1 != 41) // ',' - { - break; - } - shift(41); // ',' - lookahead1W(270); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Argument(); - } - } - shift(37); // ')' - eventHandler.endNonterminal("ArgumentList", e0); - } - - function try_ArgumentList() - { - shiftT(34); // '(' - lookahead1W(275); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - if (l1 != 37) // ')' - { - try_Argument(); - for (;;) - { - lookahead1W(101); // S^WS | '(:' | ')' | ',' - if (l1 != 41) // ',' - { - break; - } - shiftT(41); // ',' - lookahead1W(270); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Argument(); - } - } - shiftT(37); // ')' - } - - function parse_PredicateList() - { - eventHandler.startNonterminal("PredicateList", e0); - for (;;) - { - lookahead1W(236); // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' | - if (l1 != 68) // '[' - { - break; - } - whitespace(); - parse_Predicate(); - } - eventHandler.endNonterminal("PredicateList", e0); - } - - function try_PredicateList() - { - for (;;) - { - lookahead1W(236); // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' | - if (l1 != 68) // '[' - { - break; - } - try_Predicate(); - } - } - - function parse_Predicate() - { - eventHandler.startNonterminal("Predicate", e0); - shift(68); // '[' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Expr(); - shift(69); // ']' - eventHandler.endNonterminal("Predicate", e0); - } - - function try_Predicate() - { - shiftT(68); // '[' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Expr(); - shiftT(69); // ']' - } - - function parse_Literal() - { - eventHandler.startNonterminal("Literal", e0); - switch (l1) - { - case 11: // StringLiteral - shift(11); // StringLiteral - break; - default: - parse_NumericLiteral(); - } - eventHandler.endNonterminal("Literal", e0); - } - - function try_Literal() - { - switch (l1) - { - case 11: // StringLiteral - shiftT(11); // StringLiteral - break; - default: - try_NumericLiteral(); - } - } - - function parse_NumericLiteral() - { - eventHandler.startNonterminal("NumericLiteral", e0); - switch (l1) - { - case 8: // IntegerLiteral - shift(8); // IntegerLiteral - break; - case 9: // DecimalLiteral - shift(9); // DecimalLiteral - break; - default: - shift(10); // DoubleLiteral - } - eventHandler.endNonterminal("NumericLiteral", e0); - } - - function try_NumericLiteral() - { - switch (l1) - { - case 8: // IntegerLiteral - shiftT(8); // IntegerLiteral - break; - case 9: // DecimalLiteral - shiftT(9); // DecimalLiteral - break; - default: - shiftT(10); // DoubleLiteral - } - } - - function parse_VarRef() - { - eventHandler.startNonterminal("VarRef", e0); - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - eventHandler.endNonterminal("VarRef", e0); - } - - function try_VarRef() - { - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - } - - function parse_VarName() - { - eventHandler.startNonterminal("VarName", e0); - parse_EQName(); - eventHandler.endNonterminal("VarName", e0); - } - - function try_VarName() - { - try_EQName(); - } - - function parse_ParenthesizedExpr() - { - eventHandler.startNonterminal("ParenthesizedExpr", e0); - shift(34); // '(' - lookahead1W(269); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - if (l1 != 37) // ')' - { - whitespace(); - parse_Expr(); - } - shift(37); // ')' - eventHandler.endNonterminal("ParenthesizedExpr", e0); - } - - function try_ParenthesizedExpr() - { - shiftT(34); // '(' - lookahead1W(269); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - if (l1 != 37) // ')' - { - try_Expr(); - } - shiftT(37); // ')' - } - - function parse_ContextItemExpr() - { - eventHandler.startNonterminal("ContextItemExpr", e0); - shift(44); // '.' - eventHandler.endNonterminal("ContextItemExpr", e0); - } - - function try_ContextItemExpr() - { - shiftT(44); // '.' - } - - function parse_OrderedExpr() - { - eventHandler.startNonterminal("OrderedExpr", e0); - shift(202); // 'ordered' - lookahead1W(87); // S^WS | '(:' | '{' - shift(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Expr(); - shift(282); // '}' - eventHandler.endNonterminal("OrderedExpr", e0); - } - - function try_OrderedExpr() - { - shiftT(202); // 'ordered' - lookahead1W(87); // S^WS | '(:' | '{' - shiftT(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Expr(); - shiftT(282); // '}' - } - - function parse_UnorderedExpr() - { - eventHandler.startNonterminal("UnorderedExpr", e0); - shift(256); // 'unordered' - lookahead1W(87); // S^WS | '(:' | '{' - shift(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Expr(); - shift(282); // '}' - eventHandler.endNonterminal("UnorderedExpr", e0); - } - - function try_UnorderedExpr() - { - shiftT(256); // 'unordered' - lookahead1W(87); // S^WS | '(:' | '{' - shiftT(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Expr(); - shiftT(282); // '}' - } - - function parse_FunctionCall() - { - eventHandler.startNonterminal("FunctionCall", e0); - parse_FunctionName(); - lookahead1W(22); // S^WS | '(' | '(:' - whitespace(); - parse_ArgumentList(); - eventHandler.endNonterminal("FunctionCall", e0); - } - - function try_FunctionCall() - { - try_FunctionName(); - lookahead1W(22); // S^WS | '(' | '(:' - try_ArgumentList(); - } - - function parse_Argument() - { - eventHandler.startNonterminal("Argument", e0); - switch (l1) - { - case 64: // '?' - parse_ArgumentPlaceholder(); - break; - default: - parse_ExprSingle(); - } - eventHandler.endNonterminal("Argument", e0); - } - - function try_Argument() - { - switch (l1) - { - case 64: // '?' - try_ArgumentPlaceholder(); - break; - default: - try_ExprSingle(); - } - } - - function parse_ArgumentPlaceholder() - { - eventHandler.startNonterminal("ArgumentPlaceholder", e0); - shift(64); // '?' - eventHandler.endNonterminal("ArgumentPlaceholder", e0); - } - - function try_ArgumentPlaceholder() - { - shiftT(64); // '?' - } - - function parse_Constructor() - { - eventHandler.startNonterminal("Constructor", e0); - switch (l1) - { - case 54: // '<' - case 55: // '<!--' - case 59: // '<?' - parse_DirectConstructor(); - break; - default: - parse_ComputedConstructor(); - } - eventHandler.endNonterminal("Constructor", e0); - } - - function try_Constructor() - { - switch (l1) - { - case 54: // '<' - case 55: // '<!--' - case 59: // '<?' - try_DirectConstructor(); - break; - default: - try_ComputedConstructor(); - } - } - - function parse_DirectConstructor() - { - eventHandler.startNonterminal("DirectConstructor", e0); - switch (l1) - { - case 54: // '<' - parse_DirElemConstructor(); - break; - case 55: // '<!--' - parse_DirCommentConstructor(); - break; - default: - parse_DirPIConstructor(); - } - eventHandler.endNonterminal("DirectConstructor", e0); - } - - function try_DirectConstructor() - { - switch (l1) - { - case 54: // '<' - try_DirElemConstructor(); - break; - case 55: // '<!--' - try_DirCommentConstructor(); - break; - default: - try_DirPIConstructor(); - } - } - - function parse_DirElemConstructor() - { - eventHandler.startNonterminal("DirElemConstructor", e0); - shift(54); // '<' - lookahead1(4); // QName - shift(20); // QName - parse_DirAttributeList(); - switch (l1) - { - case 48: // '/>' - shift(48); // '/>' - break; - default: - shift(61); // '>' - for (;;) - { - lookahead1(174); // CDataSection | PredefinedEntityRef | ElementContentChar | CharRef | '<' | - if (l1 == 56) // '</' - { - break; - } - parse_DirElemContent(); - } - shift(56); // '</' - lookahead1(4); // QName - shift(20); // QName - lookahead1(12); // S | '>' - if (l1 == 21) // S - { - shift(21); // S - } - lookahead1(8); // '>' - shift(61); // '>' - } - eventHandler.endNonterminal("DirElemConstructor", e0); - } - - function try_DirElemConstructor() - { - shiftT(54); // '<' - lookahead1(4); // QName - shiftT(20); // QName - try_DirAttributeList(); - switch (l1) - { - case 48: // '/>' - shiftT(48); // '/>' - break; - default: - shiftT(61); // '>' - for (;;) - { - lookahead1(174); // CDataSection | PredefinedEntityRef | ElementContentChar | CharRef | '<' | - if (l1 == 56) // '</' - { - break; - } - try_DirElemContent(); - } - shiftT(56); // '</' - lookahead1(4); // QName - shiftT(20); // QName - lookahead1(12); // S | '>' - if (l1 == 21) // S - { - shiftT(21); // S - } - lookahead1(8); // '>' - shiftT(61); // '>' - } - } - - function parse_DirAttributeList() - { - eventHandler.startNonterminal("DirAttributeList", e0); - for (;;) - { - lookahead1(19); // S | '/>' | '>' - if (l1 != 21) // S - { - break; - } - shift(21); // S - lookahead1(91); // QName | S | '/>' | '>' - if (l1 == 20) // QName - { - shift(20); // QName - lookahead1(11); // S | '=' - if (l1 == 21) // S - { - shift(21); // S - } - lookahead1(7); // '=' - shift(60); // '=' - lookahead1(18); // S | '"' | "'" - if (l1 == 21) // S - { - shift(21); // S - } - parse_DirAttributeValue(); - } - } - eventHandler.endNonterminal("DirAttributeList", e0); - } - - function try_DirAttributeList() - { - for (;;) - { - lookahead1(19); // S | '/>' | '>' - if (l1 != 21) // S - { - break; - } - shiftT(21); // S - lookahead1(91); // QName | S | '/>' | '>' - if (l1 == 20) // QName - { - shiftT(20); // QName - lookahead1(11); // S | '=' - if (l1 == 21) // S - { - shiftT(21); // S - } - lookahead1(7); // '=' - shiftT(60); // '=' - lookahead1(18); // S | '"' | "'" - if (l1 == 21) // S - { - shiftT(21); // S - } - try_DirAttributeValue(); - } - } - } - - function parse_DirAttributeValue() - { - eventHandler.startNonterminal("DirAttributeValue", e0); - lookahead1(14); // '"' | "'" - switch (l1) - { - case 28: // '"' - shift(28); // '"' - for (;;) - { - lookahead1(167); // PredefinedEntityRef | EscapeQuot | QuotAttrContentChar | CharRef | '"' | '{' | - if (l1 == 28) // '"' - { - break; - } - switch (l1) - { - case 13: // EscapeQuot - shift(13); // EscapeQuot - break; - default: - parse_QuotAttrValueContent(); - } - } - shift(28); // '"' - break; - default: - shift(33); // "'" - for (;;) - { - lookahead1(168); // PredefinedEntityRef | EscapeApos | AposAttrContentChar | CharRef | "'" | '{' | - if (l1 == 33) // "'" - { - break; - } - switch (l1) - { - case 14: // EscapeApos - shift(14); // EscapeApos - break; - default: - parse_AposAttrValueContent(); - } - } - shift(33); // "'" - } - eventHandler.endNonterminal("DirAttributeValue", e0); - } - - function try_DirAttributeValue() - { - lookahead1(14); // '"' | "'" - switch (l1) - { - case 28: // '"' - shiftT(28); // '"' - for (;;) - { - lookahead1(167); // PredefinedEntityRef | EscapeQuot | QuotAttrContentChar | CharRef | '"' | '{' | - if (l1 == 28) // '"' - { - break; - } - switch (l1) - { - case 13: // EscapeQuot - shiftT(13); // EscapeQuot - break; - default: - try_QuotAttrValueContent(); - } - } - shiftT(28); // '"' - break; - default: - shiftT(33); // "'" - for (;;) - { - lookahead1(168); // PredefinedEntityRef | EscapeApos | AposAttrContentChar | CharRef | "'" | '{' | - if (l1 == 33) // "'" - { - break; - } - switch (l1) - { - case 14: // EscapeApos - shiftT(14); // EscapeApos - break; - default: - try_AposAttrValueContent(); - } - } - shiftT(33); // "'" - } - } - - function parse_QuotAttrValueContent() - { - eventHandler.startNonterminal("QuotAttrValueContent", e0); - switch (l1) - { - case 16: // QuotAttrContentChar - shift(16); // QuotAttrContentChar - break; - default: - parse_CommonContent(); - } - eventHandler.endNonterminal("QuotAttrValueContent", e0); - } - - function try_QuotAttrValueContent() - { - switch (l1) - { - case 16: // QuotAttrContentChar - shiftT(16); // QuotAttrContentChar - break; - default: - try_CommonContent(); - } - } - - function parse_AposAttrValueContent() - { - eventHandler.startNonterminal("AposAttrValueContent", e0); - switch (l1) - { - case 17: // AposAttrContentChar - shift(17); // AposAttrContentChar - break; - default: - parse_CommonContent(); - } - eventHandler.endNonterminal("AposAttrValueContent", e0); - } - - function try_AposAttrValueContent() - { - switch (l1) - { - case 17: // AposAttrContentChar - shiftT(17); // AposAttrContentChar - break; - default: - try_CommonContent(); - } - } - - function parse_DirElemContent() - { - eventHandler.startNonterminal("DirElemContent", e0); - switch (l1) - { - case 54: // '<' - case 55: // '<!--' - case 59: // '<?' - parse_DirectConstructor(); - break; - case 4: // CDataSection - shift(4); // CDataSection - break; - case 15: // ElementContentChar - shift(15); // ElementContentChar - break; - default: - parse_CommonContent(); - } - eventHandler.endNonterminal("DirElemContent", e0); - } - - function try_DirElemContent() - { - switch (l1) - { - case 54: // '<' - case 55: // '<!--' - case 59: // '<?' - try_DirectConstructor(); - break; - case 4: // CDataSection - shiftT(4); // CDataSection - break; - case 15: // ElementContentChar - shiftT(15); // ElementContentChar - break; - default: - try_CommonContent(); - } - } - - function parse_DirCommentConstructor() - { - eventHandler.startNonterminal("DirCommentConstructor", e0); - shift(55); // '<!--' - lookahead1(1); // DirCommentContents - shift(2); // DirCommentContents - lookahead1(6); // '-->' - shift(43); // '-->' - eventHandler.endNonterminal("DirCommentConstructor", e0); - } - - function try_DirCommentConstructor() - { - shiftT(55); // '<!--' - lookahead1(1); // DirCommentContents - shiftT(2); // DirCommentContents - lookahead1(6); // '-->' - shiftT(43); // '-->' - } - - function parse_DirPIConstructor() - { - eventHandler.startNonterminal("DirPIConstructor", e0); - shift(59); // '<?' - lookahead1(3); // PITarget - shift(18); // PITarget - lookahead1(13); // S | '?>' - if (l1 == 21) // S - { - shift(21); // S - lookahead1(2); // DirPIContents - shift(3); // DirPIContents - } - lookahead1(9); // '?>' - shift(65); // '?>' - eventHandler.endNonterminal("DirPIConstructor", e0); - } - - function try_DirPIConstructor() - { - shiftT(59); // '<?' - lookahead1(3); // PITarget - shiftT(18); // PITarget - lookahead1(13); // S | '?>' - if (l1 == 21) // S - { - shiftT(21); // S - lookahead1(2); // DirPIContents - shiftT(3); // DirPIContents - } - lookahead1(9); // '?>' - shiftT(65); // '?>' - } - - function parse_ComputedConstructor() - { - eventHandler.startNonterminal("ComputedConstructor", e0); - switch (l1) - { - case 119: // 'document' - parse_CompDocConstructor(); - break; - case 121: // 'element' - parse_CompElemConstructor(); - break; - case 82: // 'attribute' - parse_CompAttrConstructor(); - break; - case 184: // 'namespace' - parse_CompNamespaceConstructor(); - break; - case 244: // 'text' - parse_CompTextConstructor(); - break; - case 96: // 'comment' - parse_CompCommentConstructor(); - break; - default: - parse_CompPIConstructor(); - } - eventHandler.endNonterminal("ComputedConstructor", e0); - } - - function try_ComputedConstructor() - { - switch (l1) - { - case 119: // 'document' - try_CompDocConstructor(); - break; - case 121: // 'element' - try_CompElemConstructor(); - break; - case 82: // 'attribute' - try_CompAttrConstructor(); - break; - case 184: // 'namespace' - try_CompNamespaceConstructor(); - break; - case 244: // 'text' - try_CompTextConstructor(); - break; - case 96: // 'comment' - try_CompCommentConstructor(); - break; - default: - try_CompPIConstructor(); - } - } - - function parse_CompElemConstructor() - { - eventHandler.startNonterminal("CompElemConstructor", e0); - shift(121); // 'element' - lookahead1W(256); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - switch (l1) - { - case 276: // '{' - shift(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Expr(); - shift(282); // '}' - break; - default: - whitespace(); - parse_EQName(); - } - lookahead1W(87); // S^WS | '(:' | '{' - shift(276); // '{' - lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - if (l1 != 282) // '}' - { - whitespace(); - parse_ContentExpr(); - } - shift(282); // '}' - eventHandler.endNonterminal("CompElemConstructor", e0); - } - - function try_CompElemConstructor() - { - shiftT(121); // 'element' - lookahead1W(256); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - switch (l1) - { - case 276: // '{' - shiftT(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Expr(); - shiftT(282); // '}' - break; - default: - try_EQName(); - } - lookahead1W(87); // S^WS | '(:' | '{' - shiftT(276); // '{' - lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - if (l1 != 282) // '}' - { - try_ContentExpr(); - } - shiftT(282); // '}' - } - - function parse_CompNamespaceConstructor() - { - eventHandler.startNonterminal("CompNamespaceConstructor", e0); - shift(184); // 'namespace' - lookahead1W(249); // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - switch (l1) - { - case 276: // '{' - shift(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_PrefixExpr(); - shift(282); // '}' - break; - default: - whitespace(); - parse_Prefix(); - } - lookahead1W(87); // S^WS | '(:' | '{' - shift(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_URIExpr(); - shift(282); // '}' - eventHandler.endNonterminal("CompNamespaceConstructor", e0); - } - - function try_CompNamespaceConstructor() - { - shiftT(184); // 'namespace' - lookahead1W(249); // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - switch (l1) - { - case 276: // '{' - shiftT(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_PrefixExpr(); - shiftT(282); // '}' - break; - default: - try_Prefix(); - } - lookahead1W(87); // S^WS | '(:' | '{' - shiftT(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_URIExpr(); - shiftT(282); // '}' - } - - function parse_Prefix() - { - eventHandler.startNonterminal("Prefix", e0); - parse_NCName(); - eventHandler.endNonterminal("Prefix", e0); - } - - function try_Prefix() - { - try_NCName(); - } - - function parse_PrefixExpr() - { - eventHandler.startNonterminal("PrefixExpr", e0); - parse_Expr(); - eventHandler.endNonterminal("PrefixExpr", e0); - } - - function try_PrefixExpr() - { - try_Expr(); - } - - function parse_URIExpr() - { - eventHandler.startNonterminal("URIExpr", e0); - parse_Expr(); - eventHandler.endNonterminal("URIExpr", e0); - } - - function try_URIExpr() - { - try_Expr(); - } - - function parse_FunctionItemExpr() - { - eventHandler.startNonterminal("FunctionItemExpr", e0); - switch (l1) - { - case 145: // 'function' - lookahead2W(92); // S^WS | '#' | '(' | '(:' - break; - default: - lk = l1; - } - switch (lk) - { - case 32: // '%' - case 17553: // 'function' '(' - parse_InlineFunctionExpr(); - break; - default: - parse_NamedFunctionRef(); - } - eventHandler.endNonterminal("FunctionItemExpr", e0); - } - - function try_FunctionItemExpr() - { - switch (l1) - { - case 145: // 'function' - lookahead2W(92); // S^WS | '#' | '(' | '(:' - break; - default: - lk = l1; - } - switch (lk) - { - case 32: // '%' - case 17553: // 'function' '(' - try_InlineFunctionExpr(); - break; - default: - try_NamedFunctionRef(); - } - } - - function parse_NamedFunctionRef() - { - eventHandler.startNonterminal("NamedFunctionRef", e0); - parse_EQName(); - lookahead1W(20); // S^WS | '#' | '(:' - shift(29); // '#' - lookahead1W(16); // IntegerLiteral | S^WS | '(:' - shift(8); // IntegerLiteral - eventHandler.endNonterminal("NamedFunctionRef", e0); - } - - function try_NamedFunctionRef() - { - try_EQName(); - lookahead1W(20); // S^WS | '#' | '(:' - shiftT(29); // '#' - lookahead1W(16); // IntegerLiteral | S^WS | '(:' - shiftT(8); // IntegerLiteral - } - - function parse_InlineFunctionExpr() - { - eventHandler.startNonterminal("InlineFunctionExpr", e0); - for (;;) - { - lookahead1W(97); // S^WS | '%' | '(:' | 'function' - if (l1 != 32) // '%' - { - break; - } - whitespace(); - parse_Annotation(); - } - shift(145); // 'function' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(94); // S^WS | '$' | '(:' | ')' - if (l1 == 31) // '$' - { - whitespace(); - parse_ParamList(); - } - shift(37); // ')' - lookahead1W(111); // S^WS | '(:' | 'as' | '{' - if (l1 == 79) // 'as' - { - shift(79); // 'as' - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_SequenceType(); - } - lookahead1W(87); // S^WS | '(:' | '{' - whitespace(); - parse_FunctionBody(); - eventHandler.endNonterminal("InlineFunctionExpr", e0); - } - - function try_InlineFunctionExpr() - { - for (;;) - { - lookahead1W(97); // S^WS | '%' | '(:' | 'function' - if (l1 != 32) // '%' - { - break; - } - try_Annotation(); - } - shiftT(145); // 'function' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(94); // S^WS | '$' | '(:' | ')' - if (l1 == 31) // '$' - { - try_ParamList(); - } - shiftT(37); // ')' - lookahead1W(111); // S^WS | '(:' | 'as' | '{' - if (l1 == 79) // 'as' - { - shiftT(79); // 'as' - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - try_SequenceType(); - } - lookahead1W(87); // S^WS | '(:' | '{' - try_FunctionBody(); - } - - function parse_SingleType() - { - eventHandler.startNonterminal("SingleType", e0); - parse_SimpleTypeName(); - lookahead1W(226); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' | - if (l1 == 64) // '?' - { - shift(64); // '?' - } - eventHandler.endNonterminal("SingleType", e0); - } - - function try_SingleType() - { - try_SimpleTypeName(); - lookahead1W(226); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' | - if (l1 == 64) // '?' - { - shiftT(64); // '?' - } - } - - function parse_TypeDeclaration() - { - eventHandler.startNonterminal("TypeDeclaration", e0); - shift(79); // 'as' - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_SequenceType(); - eventHandler.endNonterminal("TypeDeclaration", e0); - } - - function try_TypeDeclaration() - { - shiftT(79); // 'as' - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - try_SequenceType(); - } - - function parse_SequenceType() - { - eventHandler.startNonterminal("SequenceType", e0); - switch (l1) - { - case 124: // 'empty-sequence' - lookahead2W(241); // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' | - break; - default: - lk = l1; - } - switch (lk) - { - case 17532: // 'empty-sequence' '(' - shift(124); // 'empty-sequence' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shift(37); // ')' - break; - default: - parse_ItemType(); - lookahead1W(237); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' | ';' | - switch (l1) - { - case 39: // '*' - case 40: // '+' - case 64: // '?' - whitespace(); - parse_OccurrenceIndicator(); - break; - default: - break; - } - } - eventHandler.endNonterminal("SequenceType", e0); - } - - function try_SequenceType() - { - switch (l1) - { - case 124: // 'empty-sequence' - lookahead2W(241); // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' | - break; - default: - lk = l1; - } - switch (lk) - { - case 17532: // 'empty-sequence' '(' - shiftT(124); // 'empty-sequence' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shiftT(37); // ')' - break; - default: - try_ItemType(); - lookahead1W(237); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' | ';' | - switch (l1) - { - case 39: // '*' - case 40: // '+' - case 64: // '?' - try_OccurrenceIndicator(); - break; - default: - break; - } - } - } - - function parse_OccurrenceIndicator() - { - eventHandler.startNonterminal("OccurrenceIndicator", e0); - switch (l1) - { - case 64: // '?' - shift(64); // '?' - break; - case 39: // '*' - shift(39); // '*' - break; - default: - shift(40); // '+' - } - eventHandler.endNonterminal("OccurrenceIndicator", e0); - } - - function try_OccurrenceIndicator() - { - switch (l1) - { - case 64: // '?' - shiftT(64); // '?' - break; - case 39: // '*' - shiftT(39); // '*' - break; - default: - shiftT(40); // '+' - } - } - - function parse_ItemType() - { - eventHandler.startNonterminal("ItemType", e0); - switch (l1) - { - case 78: // 'array' - case 82: // 'attribute' - case 96: // 'comment' - case 120: // 'document-node' - case 121: // 'element' - case 145: // 'function' - case 165: // 'item' - case 167: // 'json-item' - case 185: // 'namespace-node' - case 191: // 'node' - case 194: // 'object' - case 216: // 'processing-instruction' - case 226: // 'schema-attribute' - case 227: // 'schema-element' - case 244: // 'text' - lookahead2W(241); // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' | - break; - default: - lk = l1; - } - if (lk == 17486 // 'array' '(' - || lk == 17575 // 'json-item' '(' - || lk == 17602) // 'object' '(' - { - lk = memoized(4, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - try_KindTest(); - lk = -1; - } - catch (p1A) - { - lk = -6; - } - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(4, e0, lk); - } - } - switch (lk) - { - case -1: - case 17490: // 'attribute' '(' - case 17504: // 'comment' '(' - case 17528: // 'document-node' '(' - case 17529: // 'element' '(' - case 17593: // 'namespace-node' '(' - case 17599: // 'node' '(' - case 17624: // 'processing-instruction' '(' - case 17634: // 'schema-attribute' '(' - case 17635: // 'schema-element' '(' - case 17652: // 'text' '(' - parse_KindTest(); - break; - case 17573: // 'item' '(' - shift(165); // 'item' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shift(37); // ')' - break; - case 32: // '%' - case 17553: // 'function' '(' - parse_FunctionTest(); - break; - case 34: // '(' - parse_ParenthesizedItemType(); - break; - case -6: - parse_JSONTest(); - break; - case 242: // 'structured-item' - parse_StructuredItemTest(); - break; - default: - parse_AtomicOrUnionType(); - } - eventHandler.endNonterminal("ItemType", e0); - } - - function try_ItemType() - { - switch (l1) - { - case 78: // 'array' - case 82: // 'attribute' - case 96: // 'comment' - case 120: // 'document-node' - case 121: // 'element' - case 145: // 'function' - case 165: // 'item' - case 167: // 'json-item' - case 185: // 'namespace-node' - case 191: // 'node' - case 194: // 'object' - case 216: // 'processing-instruction' - case 226: // 'schema-attribute' - case 227: // 'schema-element' - case 244: // 'text' - lookahead2W(241); // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' | - break; - default: - lk = l1; - } - if (lk == 17486 // 'array' '(' - || lk == 17575 // 'json-item' '(' - || lk == 17602) // 'object' '(' - { - lk = memoized(4, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - try_KindTest(); - memoize(4, e0A, -1); - lk = -8; - } - catch (p1A) - { - lk = -6; - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(4, e0A, -6); - } - } - } - switch (lk) - { - case -1: - case 17490: // 'attribute' '(' - case 17504: // 'comment' '(' - case 17528: // 'document-node' '(' - case 17529: // 'element' '(' - case 17593: // 'namespace-node' '(' - case 17599: // 'node' '(' - case 17624: // 'processing-instruction' '(' - case 17634: // 'schema-attribute' '(' - case 17635: // 'schema-element' '(' - case 17652: // 'text' '(' - try_KindTest(); - break; - case 17573: // 'item' '(' - shiftT(165); // 'item' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shiftT(37); // ')' - break; - case 32: // '%' - case 17553: // 'function' '(' - try_FunctionTest(); - break; - case 34: // '(' - try_ParenthesizedItemType(); - break; - case -6: - try_JSONTest(); - break; - case 242: // 'structured-item' - try_StructuredItemTest(); - break; - case -8: - break; - default: - try_AtomicOrUnionType(); - } - } - - function parse_JSONTest() - { - eventHandler.startNonterminal("JSONTest", e0); - switch (l1) - { - case 167: // 'json-item' - parse_JSONItemTest(); - break; - case 194: // 'object' - parse_JSONObjectTest(); - break; - default: - parse_JSONArrayTest(); - } - eventHandler.endNonterminal("JSONTest", e0); - } - - function try_JSONTest() - { - switch (l1) - { - case 167: // 'json-item' - try_JSONItemTest(); - break; - case 194: // 'object' - try_JSONObjectTest(); - break; - default: - try_JSONArrayTest(); - } - } - - function parse_StructuredItemTest() - { - eventHandler.startNonterminal("StructuredItemTest", e0); - shift(242); // 'structured-item' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shift(37); // ')' - eventHandler.endNonterminal("StructuredItemTest", e0); - } - - function try_StructuredItemTest() - { - shiftT(242); // 'structured-item' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shiftT(37); // ')' - } - - function parse_JSONItemTest() - { - eventHandler.startNonterminal("JSONItemTest", e0); - shift(167); // 'json-item' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shift(37); // ')' - eventHandler.endNonterminal("JSONItemTest", e0); - } - - function try_JSONItemTest() - { - shiftT(167); // 'json-item' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shiftT(37); // ')' - } - - function parse_JSONObjectTest() - { - eventHandler.startNonterminal("JSONObjectTest", e0); - shift(194); // 'object' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shift(37); // ')' - eventHandler.endNonterminal("JSONObjectTest", e0); - } - - function try_JSONObjectTest() - { - shiftT(194); // 'object' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shiftT(37); // ')' - } - - function parse_JSONArrayTest() - { - eventHandler.startNonterminal("JSONArrayTest", e0); - shift(78); // 'array' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shift(37); // ')' - eventHandler.endNonterminal("JSONArrayTest", e0); - } - - function try_JSONArrayTest() - { - shiftT(78); // 'array' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shiftT(37); // ')' - } - - function parse_AtomicOrUnionType() - { - eventHandler.startNonterminal("AtomicOrUnionType", e0); - parse_EQName(); - eventHandler.endNonterminal("AtomicOrUnionType", e0); - } - - function try_AtomicOrUnionType() - { - try_EQName(); - } - - function parse_KindTest() - { - eventHandler.startNonterminal("KindTest", e0); - switch (l1) - { - case 120: // 'document-node' - parse_DocumentTest(); - break; - case 121: // 'element' - parse_ElementTest(); - break; - case 82: // 'attribute' - parse_AttributeTest(); - break; - case 227: // 'schema-element' - parse_SchemaElementTest(); - break; - case 226: // 'schema-attribute' - parse_SchemaAttributeTest(); - break; - case 216: // 'processing-instruction' - parse_PITest(); - break; - case 96: // 'comment' - parse_CommentTest(); - break; - case 244: // 'text' - parse_TextTest(); - break; - case 185: // 'namespace-node' - parse_NamespaceNodeTest(); - break; - case 191: // 'node' - parse_AnyKindTest(); - break; - default: - parse_JSONTest(); - } - eventHandler.endNonterminal("KindTest", e0); - } - - function try_KindTest() - { - switch (l1) - { - case 120: // 'document-node' - try_DocumentTest(); - break; - case 121: // 'element' - try_ElementTest(); - break; - case 82: // 'attribute' - try_AttributeTest(); - break; - case 227: // 'schema-element' - try_SchemaElementTest(); - break; - case 226: // 'schema-attribute' - try_SchemaAttributeTest(); - break; - case 216: // 'processing-instruction' - try_PITest(); - break; - case 96: // 'comment' - try_CommentTest(); - break; - case 244: // 'text' - try_TextTest(); - break; - case 185: // 'namespace-node' - try_NamespaceNodeTest(); - break; - case 191: // 'node' - try_AnyKindTest(); - break; - default: - try_JSONTest(); - } - } - - function parse_AnyKindTest() - { - eventHandler.startNonterminal("AnyKindTest", e0); - shift(191); // 'node' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shift(37); // ')' - eventHandler.endNonterminal("AnyKindTest", e0); - } - - function try_AnyKindTest() - { - shiftT(191); // 'node' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shiftT(37); // ')' - } - - function parse_DocumentTest() - { - eventHandler.startNonterminal("DocumentTest", e0); - shift(120); // 'document-node' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(144); // S^WS | '(:' | ')' | 'element' | 'schema-element' - if (l1 != 37) // ')' - { - switch (l1) - { - case 121: // 'element' - whitespace(); - parse_ElementTest(); - break; - default: - whitespace(); - parse_SchemaElementTest(); - } - } - lookahead1W(23); // S^WS | '(:' | ')' - shift(37); // ')' - eventHandler.endNonterminal("DocumentTest", e0); - } - - function try_DocumentTest() - { - shiftT(120); // 'document-node' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(144); // S^WS | '(:' | ')' | 'element' | 'schema-element' - if (l1 != 37) // ')' - { - switch (l1) - { - case 121: // 'element' - try_ElementTest(); - break; - default: - try_SchemaElementTest(); - } - } - lookahead1W(23); // S^WS | '(:' | ')' - shiftT(37); // ')' - } - - function parse_TextTest() - { - eventHandler.startNonterminal("TextTest", e0); - shift(244); // 'text' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shift(37); // ')' - eventHandler.endNonterminal("TextTest", e0); - } - - function try_TextTest() - { - shiftT(244); // 'text' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shiftT(37); // ')' - } - - function parse_CommentTest() - { - eventHandler.startNonterminal("CommentTest", e0); - shift(96); // 'comment' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shift(37); // ')' - eventHandler.endNonterminal("CommentTest", e0); - } - - function try_CommentTest() - { - shiftT(96); // 'comment' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shiftT(37); // ')' - } - - function parse_NamespaceNodeTest() - { - eventHandler.startNonterminal("NamespaceNodeTest", e0); - shift(185); // 'namespace-node' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shift(37); // ')' - eventHandler.endNonterminal("NamespaceNodeTest", e0); - } - - function try_NamespaceNodeTest() - { - shiftT(185); // 'namespace-node' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(23); // S^WS | '(:' | ')' - shiftT(37); // ')' - } - - function parse_PITest() - { - eventHandler.startNonterminal("PITest", e0); - shift(216); // 'processing-instruction' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(251); // StringLiteral | NCName^Token | S^WS | '(:' | ')' | 'after' | 'allowing' | - if (l1 != 37) // ')' - { - switch (l1) - { - case 11: // StringLiteral - shift(11); // StringLiteral - break; - default: - whitespace(); - parse_NCName(); - } - } - lookahead1W(23); // S^WS | '(:' | ')' - shift(37); // ')' - eventHandler.endNonterminal("PITest", e0); - } - - function try_PITest() - { - shiftT(216); // 'processing-instruction' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(251); // StringLiteral | NCName^Token | S^WS | '(:' | ')' | 'after' | 'allowing' | - if (l1 != 37) // ')' - { - switch (l1) - { - case 11: // StringLiteral - shiftT(11); // StringLiteral - break; - default: - try_NCName(); - } - } - lookahead1W(23); // S^WS | '(:' | ')' - shiftT(37); // ')' - } - - function parse_AttributeTest() - { - eventHandler.startNonterminal("AttributeTest", e0); - shift(82); // 'attribute' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(258); // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' | - if (l1 != 37) // ')' - { - whitespace(); - parse_AttribNameOrWildcard(); - lookahead1W(101); // S^WS | '(:' | ')' | ',' - if (l1 == 41) // ',' - { - shift(41); // ',' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_TypeName(); - } - } - lookahead1W(23); // S^WS | '(:' | ')' - shift(37); // ')' - eventHandler.endNonterminal("AttributeTest", e0); - } - - function try_AttributeTest() - { - shiftT(82); // 'attribute' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(258); // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' | - if (l1 != 37) // ')' - { - try_AttribNameOrWildcard(); - lookahead1W(101); // S^WS | '(:' | ')' | ',' - if (l1 == 41) // ',' - { - shiftT(41); // ',' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_TypeName(); - } - } - lookahead1W(23); // S^WS | '(:' | ')' - shiftT(37); // ')' - } - - function parse_AttribNameOrWildcard() - { - eventHandler.startNonterminal("AttribNameOrWildcard", e0); - switch (l1) - { - case 38: // '*' - shift(38); // '*' - break; - default: - parse_AttributeName(); - } - eventHandler.endNonterminal("AttribNameOrWildcard", e0); - } - - function try_AttribNameOrWildcard() - { - switch (l1) - { - case 38: // '*' - shiftT(38); // '*' - break; - default: - try_AttributeName(); - } - } - - function parse_SchemaAttributeTest() - { - eventHandler.startNonterminal("SchemaAttributeTest", e0); - shift(226); // 'schema-attribute' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_AttributeDeclaration(); - lookahead1W(23); // S^WS | '(:' | ')' - shift(37); // ')' - eventHandler.endNonterminal("SchemaAttributeTest", e0); - } - - function try_SchemaAttributeTest() - { - shiftT(226); // 'schema-attribute' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_AttributeDeclaration(); - lookahead1W(23); // S^WS | '(:' | ')' - shiftT(37); // ')' - } - - function parse_AttributeDeclaration() - { - eventHandler.startNonterminal("AttributeDeclaration", e0); - parse_AttributeName(); - eventHandler.endNonterminal("AttributeDeclaration", e0); - } - - function try_AttributeDeclaration() - { - try_AttributeName(); - } - - function parse_ElementTest() - { - eventHandler.startNonterminal("ElementTest", e0); - shift(121); // 'element' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(258); // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' | - if (l1 != 37) // ')' - { - whitespace(); - parse_ElementNameOrWildcard(); - lookahead1W(101); // S^WS | '(:' | ')' | ',' - if (l1 == 41) // ',' - { - shift(41); // ',' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_TypeName(); - lookahead1W(102); // S^WS | '(:' | ')' | '?' - if (l1 == 64) // '?' - { - shift(64); // '?' - } - } - } - lookahead1W(23); // S^WS | '(:' | ')' - shift(37); // ')' - eventHandler.endNonterminal("ElementTest", e0); - } - - function try_ElementTest() - { - shiftT(121); // 'element' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(258); // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' | - if (l1 != 37) // ')' - { - try_ElementNameOrWildcard(); - lookahead1W(101); // S^WS | '(:' | ')' | ',' - if (l1 == 41) // ',' - { - shiftT(41); // ',' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_TypeName(); - lookahead1W(102); // S^WS | '(:' | ')' | '?' - if (l1 == 64) // '?' - { - shiftT(64); // '?' - } - } - } - lookahead1W(23); // S^WS | '(:' | ')' - shiftT(37); // ')' - } - - function parse_ElementNameOrWildcard() - { - eventHandler.startNonterminal("ElementNameOrWildcard", e0); - switch (l1) - { - case 38: // '*' - shift(38); // '*' - break; - default: - parse_ElementName(); - } - eventHandler.endNonterminal("ElementNameOrWildcard", e0); - } - - function try_ElementNameOrWildcard() - { - switch (l1) - { - case 38: // '*' - shiftT(38); // '*' - break; - default: - try_ElementName(); - } - } - - function parse_SchemaElementTest() - { - eventHandler.startNonterminal("SchemaElementTest", e0); - shift(227); // 'schema-element' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_ElementDeclaration(); - lookahead1W(23); // S^WS | '(:' | ')' - shift(37); // ')' - eventHandler.endNonterminal("SchemaElementTest", e0); - } - - function try_SchemaElementTest() - { - shiftT(227); // 'schema-element' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_ElementDeclaration(); - lookahead1W(23); // S^WS | '(:' | ')' - shiftT(37); // ')' - } - - function parse_ElementDeclaration() - { - eventHandler.startNonterminal("ElementDeclaration", e0); - parse_ElementName(); - eventHandler.endNonterminal("ElementDeclaration", e0); - } - - function try_ElementDeclaration() - { - try_ElementName(); - } - - function parse_AttributeName() - { - eventHandler.startNonterminal("AttributeName", e0); - parse_EQName(); - eventHandler.endNonterminal("AttributeName", e0); - } - - function try_AttributeName() - { - try_EQName(); - } - - function parse_ElementName() - { - eventHandler.startNonterminal("ElementName", e0); - parse_EQName(); - eventHandler.endNonterminal("ElementName", e0); - } - - function try_ElementName() - { - try_EQName(); - } - - function parse_SimpleTypeName() - { - eventHandler.startNonterminal("SimpleTypeName", e0); - parse_TypeName(); - eventHandler.endNonterminal("SimpleTypeName", e0); - } - - function try_SimpleTypeName() - { - try_TypeName(); - } - - function parse_TypeName() - { - eventHandler.startNonterminal("TypeName", e0); - parse_EQName(); - eventHandler.endNonterminal("TypeName", e0); - } - - function try_TypeName() - { - try_EQName(); - } - - function parse_FunctionTest() - { - eventHandler.startNonterminal("FunctionTest", e0); - for (;;) - { - lookahead1W(97); // S^WS | '%' | '(:' | 'function' - if (l1 != 32) // '%' - { - break; - } - whitespace(); - parse_Annotation(); - } - switch (l1) - { - case 145: // 'function' - lookahead2W(22); // S^WS | '(' | '(:' - break; - default: - lk = l1; - } - lk = memoized(5, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - try_AnyFunctionTest(); - lk = -1; - } - catch (p1A) - { - lk = -2; - } - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(5, e0, lk); - } - switch (lk) - { - case -1: - whitespace(); - parse_AnyFunctionTest(); - break; - default: - whitespace(); - parse_TypedFunctionTest(); - } - eventHandler.endNonterminal("FunctionTest", e0); - } - - function try_FunctionTest() - { - for (;;) - { - lookahead1W(97); // S^WS | '%' | '(:' | 'function' - if (l1 != 32) // '%' - { - break; - } - try_Annotation(); - } - switch (l1) - { - case 145: // 'function' - lookahead2W(22); // S^WS | '(' | '(:' - break; - default: - lk = l1; - } - lk = memoized(5, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - try_AnyFunctionTest(); - memoize(5, e0A, -1); - lk = -3; - } - catch (p1A) - { - lk = -2; - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(5, e0A, -2); - } - } - switch (lk) - { - case -1: - try_AnyFunctionTest(); - break; - case -3: - break; - default: - try_TypedFunctionTest(); - } - } - - function parse_AnyFunctionTest() - { - eventHandler.startNonterminal("AnyFunctionTest", e0); - shift(145); // 'function' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(24); // S^WS | '(:' | '*' - shift(38); // '*' - lookahead1W(23); // S^WS | '(:' | ')' - shift(37); // ')' - eventHandler.endNonterminal("AnyFunctionTest", e0); - } - - function try_AnyFunctionTest() - { - shiftT(145); // 'function' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(24); // S^WS | '(:' | '*' - shiftT(38); // '*' - lookahead1W(23); // S^WS | '(:' | ')' - shiftT(37); // ')' - } - - function parse_TypedFunctionTest() - { - eventHandler.startNonterminal("TypedFunctionTest", e0); - shift(145); // 'function' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(261); // EQName^Token | S^WS | '%' | '(' | '(:' | ')' | 'after' | 'allowing' | - if (l1 != 37) // ')' - { - whitespace(); - parse_SequenceType(); - for (;;) - { - lookahead1W(101); // S^WS | '(:' | ')' | ',' - if (l1 != 41) // ',' - { - break; - } - shift(41); // ',' - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_SequenceType(); - } - } - shift(37); // ')' - lookahead1W(30); // S^WS | '(:' | 'as' - shift(79); // 'as' - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_SequenceType(); - eventHandler.endNonterminal("TypedFunctionTest", e0); - } - - function try_TypedFunctionTest() - { - shiftT(145); // 'function' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(261); // EQName^Token | S^WS | '%' | '(' | '(:' | ')' | 'after' | 'allowing' | - if (l1 != 37) // ')' - { - try_SequenceType(); - for (;;) - { - lookahead1W(101); // S^WS | '(:' | ')' | ',' - if (l1 != 41) // ',' - { - break; - } - shiftT(41); // ',' - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - try_SequenceType(); - } - } - shiftT(37); // ')' - lookahead1W(30); // S^WS | '(:' | 'as' - shiftT(79); // 'as' - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - try_SequenceType(); - } - - function parse_ParenthesizedItemType() - { - eventHandler.startNonterminal("ParenthesizedItemType", e0); - shift(34); // '(' - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_ItemType(); - lookahead1W(23); // S^WS | '(:' | ')' - shift(37); // ')' - eventHandler.endNonterminal("ParenthesizedItemType", e0); - } - - function try_ParenthesizedItemType() - { - shiftT(34); // '(' - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - try_ItemType(); - lookahead1W(23); // S^WS | '(:' | ')' - shiftT(37); // ')' - } - - function parse_RevalidationDecl() - { - eventHandler.startNonterminal("RevalidationDecl", e0); - shift(108); // 'declare' - lookahead1W(72); // S^WS | '(:' | 'revalidation' - shift(222); // 'revalidation' - lookahead1W(152); // S^WS | '(:' | 'lax' | 'skip' | 'strict' - switch (l1) - { - case 240: // 'strict' - shift(240); // 'strict' - break; - case 171: // 'lax' - shift(171); // 'lax' - break; - default: - shift(233); // 'skip' - } - eventHandler.endNonterminal("RevalidationDecl", e0); - } - - function parse_InsertExprTargetChoice() - { - eventHandler.startNonterminal("InsertExprTargetChoice", e0); - switch (l1) - { - case 70: // 'after' - shift(70); // 'after' - break; - case 84: // 'before' - shift(84); // 'before' - break; - default: - if (l1 == 79) // 'as' - { - shift(79); // 'as' - lookahead1W(119); // S^WS | '(:' | 'first' | 'last' - switch (l1) - { - case 134: // 'first' - shift(134); // 'first' - break; - default: - shift(170); // 'last' - } - } - lookahead1W(54); // S^WS | '(:' | 'into' - shift(163); // 'into' - } - eventHandler.endNonterminal("InsertExprTargetChoice", e0); - } - - function try_InsertExprTargetChoice() - { - switch (l1) - { - case 70: // 'after' - shiftT(70); // 'after' - break; - case 84: // 'before' - shiftT(84); // 'before' - break; - default: - if (l1 == 79) // 'as' - { - shiftT(79); // 'as' - lookahead1W(119); // S^WS | '(:' | 'first' | 'last' - switch (l1) - { - case 134: // 'first' - shiftT(134); // 'first' - break; - default: - shiftT(170); // 'last' - } - } - lookahead1W(54); // S^WS | '(:' | 'into' - shiftT(163); // 'into' - } - } - - function parse_InsertExpr() - { - eventHandler.startNonterminal("InsertExpr", e0); - shift(159); // 'insert' - lookahead1W(129); // S^WS | '(:' | 'node' | 'nodes' - switch (l1) - { - case 191: // 'node' - shift(191); // 'node' - break; - default: - shift(192); // 'nodes' - } - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_SourceExpr(); - whitespace(); - parse_InsertExprTargetChoice(); - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_TargetExpr(); - eventHandler.endNonterminal("InsertExpr", e0); - } - - function try_InsertExpr() - { - shiftT(159); // 'insert' - lookahead1W(129); // S^WS | '(:' | 'node' | 'nodes' - switch (l1) - { - case 191: // 'node' - shiftT(191); // 'node' - break; - default: - shiftT(192); // 'nodes' - } - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_SourceExpr(); - try_InsertExprTargetChoice(); - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_TargetExpr(); - } - - function parse_DeleteExpr() - { - eventHandler.startNonterminal("DeleteExpr", e0); - shift(110); // 'delete' - lookahead1W(129); // S^WS | '(:' | 'node' | 'nodes' - switch (l1) - { - case 191: // 'node' - shift(191); // 'node' - break; - default: - shift(192); // 'nodes' - } - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_TargetExpr(); - eventHandler.endNonterminal("DeleteExpr", e0); - } - - function try_DeleteExpr() - { - shiftT(110); // 'delete' - lookahead1W(129); // S^WS | '(:' | 'node' | 'nodes' - switch (l1) - { - case 191: // 'node' - shiftT(191); // 'node' - break; - default: - shiftT(192); // 'nodes' - } - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_TargetExpr(); - } - - function parse_ReplaceExpr() - { - eventHandler.startNonterminal("ReplaceExpr", e0); - shift(219); // 'replace' - lookahead1W(130); // S^WS | '(:' | 'node' | 'value' - if (l1 == 261) // 'value' - { - shift(261); // 'value' - lookahead1W(64); // S^WS | '(:' | 'of' - shift(196); // 'of' - } - lookahead1W(62); // S^WS | '(:' | 'node' - shift(191); // 'node' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_TargetExpr(); - shift(270); // 'with' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("ReplaceExpr", e0); - } - - function try_ReplaceExpr() - { - shiftT(219); // 'replace' - lookahead1W(130); // S^WS | '(:' | 'node' | 'value' - if (l1 == 261) // 'value' - { - shiftT(261); // 'value' - lookahead1W(64); // S^WS | '(:' | 'of' - shiftT(196); // 'of' - } - lookahead1W(62); // S^WS | '(:' | 'node' - shiftT(191); // 'node' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_TargetExpr(); - shiftT(270); // 'with' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - - function parse_RenameExpr() - { - eventHandler.startNonterminal("RenameExpr", e0); - shift(218); // 'rename' - lookahead1W(62); // S^WS | '(:' | 'node' - shift(191); // 'node' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_TargetExpr(); - shift(79); // 'as' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_NewNameExpr(); - eventHandler.endNonterminal("RenameExpr", e0); - } - - function try_RenameExpr() - { - shiftT(218); // 'rename' - lookahead1W(62); // S^WS | '(:' | 'node' - shiftT(191); // 'node' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_TargetExpr(); - shiftT(79); // 'as' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_NewNameExpr(); - } - - function parse_SourceExpr() - { - eventHandler.startNonterminal("SourceExpr", e0); - parse_ExprSingle(); - eventHandler.endNonterminal("SourceExpr", e0); - } - - function try_SourceExpr() - { - try_ExprSingle(); - } - - function parse_TargetExpr() - { - eventHandler.startNonterminal("TargetExpr", e0); - parse_ExprSingle(); - eventHandler.endNonterminal("TargetExpr", e0); - } - - function try_TargetExpr() - { - try_ExprSingle(); - } - - function parse_NewNameExpr() - { - eventHandler.startNonterminal("NewNameExpr", e0); - parse_ExprSingle(); - eventHandler.endNonterminal("NewNameExpr", e0); - } - - function try_NewNameExpr() - { - try_ExprSingle(); - } - - function parse_TransformExpr() - { - eventHandler.startNonterminal("TransformExpr", e0); - shift(103); // 'copy' - lookahead1W(21); // S^WS | '$' | '(:' - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - lookahead1W(27); // S^WS | '(:' | ':=' - shift(52); // ':=' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - for (;;) - { - if (l1 != 41) // ',' - { - break; - } - shift(41); // ',' - lookahead1W(21); // S^WS | '$' | '(:' - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - lookahead1W(27); // S^WS | '(:' | ':=' - shift(52); // ':=' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - } - shift(181); // 'modify' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - shift(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("TransformExpr", e0); - } - - function try_TransformExpr() - { - shiftT(103); // 'copy' - lookahead1W(21); // S^WS | '$' | '(:' - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - lookahead1W(27); // S^WS | '(:' | ':=' - shiftT(52); // ':=' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - for (;;) - { - if (l1 != 41) // ',' - { - break; - } - shiftT(41); // ',' - lookahead1W(21); // S^WS | '$' | '(:' - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - lookahead1W(27); // S^WS | '(:' | ':=' - shiftT(52); // ':=' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - shiftT(181); // 'modify' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - shiftT(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - - function parse_FTSelection() - { - eventHandler.startNonterminal("FTSelection", e0); - parse_FTOr(); - for (;;) - { - lookahead1W(211); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - switch (l1) - { - case 81: // 'at' - lookahead2W(151); // S^WS | '(:' | 'end' | 'position' | 'start' - break; - default: - lk = l1; - } - if (lk != 115 // 'different' - && lk != 117 // 'distance' - && lk != 127 // 'entire' - && lk != 202 // 'ordered' - && lk != 223 // 'same' - && lk != 269 // 'window' - && lk != 64593 // 'at' 'end' - && lk != 121425) // 'at' 'start' - { - break; - } - whitespace(); - parse_FTPosFilter(); - } - eventHandler.endNonterminal("FTSelection", e0); - } - - function try_FTSelection() - { - try_FTOr(); - for (;;) - { - lookahead1W(211); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - switch (l1) - { - case 81: // 'at' - lookahead2W(151); // S^WS | '(:' | 'end' | 'position' | 'start' - break; - default: - lk = l1; - } - if (lk != 115 // 'different' - && lk != 117 // 'distance' - && lk != 127 // 'entire' - && lk != 202 // 'ordered' - && lk != 223 // 'same' - && lk != 269 // 'window' - && lk != 64593 // 'at' 'end' - && lk != 121425) // 'at' 'start' - { - break; - } - try_FTPosFilter(); - } - } - - function parse_FTWeight() - { - eventHandler.startNonterminal("FTWeight", e0); - shift(264); // 'weight' - lookahead1W(87); // S^WS | '(:' | '{' - shift(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Expr(); - shift(282); // '}' - eventHandler.endNonterminal("FTWeight", e0); - } - - function try_FTWeight() - { - shiftT(264); // 'weight' - lookahead1W(87); // S^WS | '(:' | '{' - shiftT(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Expr(); - shiftT(282); // '}' - } - - function parse_FTOr() - { - eventHandler.startNonterminal("FTOr", e0); - parse_FTAnd(); - for (;;) - { - if (l1 != 144) // 'ftor' - { - break; - } - shift(144); // 'ftor' - lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' - whitespace(); - parse_FTAnd(); - } - eventHandler.endNonterminal("FTOr", e0); - } - - function try_FTOr() - { - try_FTAnd(); - for (;;) - { - if (l1 != 144) // 'ftor' - { - break; - } - shiftT(144); // 'ftor' - lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' - try_FTAnd(); - } - } - - function parse_FTAnd() - { - eventHandler.startNonterminal("FTAnd", e0); - parse_FTMildNot(); - for (;;) - { - if (l1 != 142) // 'ftand' - { - break; - } - shift(142); // 'ftand' - lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' - whitespace(); - parse_FTMildNot(); - } - eventHandler.endNonterminal("FTAnd", e0); - } - - function try_FTAnd() - { - try_FTMildNot(); - for (;;) - { - if (l1 != 142) // 'ftand' - { - break; - } - shiftT(142); // 'ftand' - lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' - try_FTMildNot(); - } - } - - function parse_FTMildNot() - { - eventHandler.startNonterminal("FTMildNot", e0); - parse_FTUnaryNot(); - for (;;) - { - lookahead1W(212); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 != 193) // 'not' - { - break; - } - shift(193); // 'not' - lookahead1W(53); // S^WS | '(:' | 'in' - shift(154); // 'in' - lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' - whitespace(); - parse_FTUnaryNot(); - } - eventHandler.endNonterminal("FTMildNot", e0); - } - - function try_FTMildNot() - { - try_FTUnaryNot(); - for (;;) - { - lookahead1W(212); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 != 193) // 'not' - { - break; - } - shiftT(193); // 'not' - lookahead1W(53); // S^WS | '(:' | 'in' - shiftT(154); // 'in' - lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' - try_FTUnaryNot(); - } - } - - function parse_FTUnaryNot() - { - eventHandler.startNonterminal("FTUnaryNot", e0); - if (l1 == 143) // 'ftnot' - { - shift(143); // 'ftnot' - } - lookahead1W(155); // StringLiteral | S^WS | '(' | '(#' | '(:' | '{' - whitespace(); - parse_FTPrimaryWithOptions(); - eventHandler.endNonterminal("FTUnaryNot", e0); - } - - function try_FTUnaryNot() - { - if (l1 == 143) // 'ftnot' - { - shiftT(143); // 'ftnot' - } - lookahead1W(155); // StringLiteral | S^WS | '(' | '(#' | '(:' | '{' - try_FTPrimaryWithOptions(); - } - - function parse_FTPrimaryWithOptions() - { - eventHandler.startNonterminal("FTPrimaryWithOptions", e0); - parse_FTPrimary(); - lookahead1W(214); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 == 259) // 'using' - { - whitespace(); - parse_FTMatchOptions(); - } - if (l1 == 264) // 'weight' - { - whitespace(); - parse_FTWeight(); - } - eventHandler.endNonterminal("FTPrimaryWithOptions", e0); - } - - function try_FTPrimaryWithOptions() - { - try_FTPrimary(); - lookahead1W(214); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 == 259) // 'using' - { - try_FTMatchOptions(); - } - if (l1 == 264) // 'weight' - { - try_FTWeight(); - } - } - - function parse_FTPrimary() - { - eventHandler.startNonterminal("FTPrimary", e0); - switch (l1) - { - case 34: // '(' - shift(34); // '(' - lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' - whitespace(); - parse_FTSelection(); - shift(37); // ')' - break; - case 35: // '(#' - parse_FTExtensionSelection(); - break; - default: - parse_FTWords(); - lookahead1W(215); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 == 195) // 'occurs' - { - whitespace(); - parse_FTTimes(); - } - } - eventHandler.endNonterminal("FTPrimary", e0); - } - - function try_FTPrimary() - { - switch (l1) - { - case 34: // '(' - shiftT(34); // '(' - lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' - try_FTSelection(); - shiftT(37); // ')' - break; - case 35: // '(#' - try_FTExtensionSelection(); - break; - default: - try_FTWords(); - lookahead1W(215); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 == 195) // 'occurs' - { - try_FTTimes(); - } - } - } - - function parse_FTWords() - { - eventHandler.startNonterminal("FTWords", e0); - parse_FTWordsValue(); - lookahead1W(221); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 == 71 // 'all' - || l1 == 76 // 'any' - || l1 == 210) // 'phrase' - { - whitespace(); - parse_FTAnyallOption(); - } - eventHandler.endNonterminal("FTWords", e0); - } - - function try_FTWords() - { - try_FTWordsValue(); - lookahead1W(221); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 == 71 // 'all' - || l1 == 76 // 'any' - || l1 == 210) // 'phrase' - { - try_FTAnyallOption(); - } - } - - function parse_FTWordsValue() - { - eventHandler.startNonterminal("FTWordsValue", e0); - switch (l1) - { - case 11: // StringLiteral - shift(11); // StringLiteral - break; - default: - shift(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Expr(); - shift(282); // '}' - } - eventHandler.endNonterminal("FTWordsValue", e0); - } - - function try_FTWordsValue() - { - switch (l1) - { - case 11: // StringLiteral - shiftT(11); // StringLiteral - break; - default: - shiftT(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Expr(); - shiftT(282); // '}' - } - } - - function parse_FTExtensionSelection() - { - eventHandler.startNonterminal("FTExtensionSelection", e0); - for (;;) - { - whitespace(); - parse_Pragma(); - lookahead1W(100); // S^WS | '(#' | '(:' | '{' - if (l1 != 35) // '(#' - { - break; - } - } - shift(276); // '{' - lookahead1W(166); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' | '}' - if (l1 != 282) // '}' - { - whitespace(); - parse_FTSelection(); - } - shift(282); // '}' - eventHandler.endNonterminal("FTExtensionSelection", e0); - } - - function try_FTExtensionSelection() - { - for (;;) - { - try_Pragma(); - lookahead1W(100); // S^WS | '(#' | '(:' | '{' - if (l1 != 35) // '(#' - { - break; - } - } - shiftT(276); // '{' - lookahead1W(166); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' | '}' - if (l1 != 282) // '}' - { - try_FTSelection(); - } - shiftT(282); // '}' - } - - function parse_FTAnyallOption() - { - eventHandler.startNonterminal("FTAnyallOption", e0); - switch (l1) - { - case 76: // 'any' - shift(76); // 'any' - lookahead1W(218); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 == 272) // 'word' - { - shift(272); // 'word' - } - break; - case 71: // 'all' - shift(71); // 'all' - lookahead1W(219); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 == 273) // 'words' - { - shift(273); // 'words' - } - break; - default: - shift(210); // 'phrase' - } - eventHandler.endNonterminal("FTAnyallOption", e0); - } - - function try_FTAnyallOption() - { - switch (l1) - { - case 76: // 'any' - shiftT(76); // 'any' - lookahead1W(218); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 == 272) // 'word' - { - shiftT(272); // 'word' - } - break; - case 71: // 'all' - shiftT(71); // 'all' - lookahead1W(219); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 == 273) // 'words' - { - shiftT(273); // 'words' - } - break; - default: - shiftT(210); // 'phrase' - } - } - - function parse_FTTimes() - { - eventHandler.startNonterminal("FTTimes", e0); - shift(195); // 'occurs' - lookahead1W(149); // S^WS | '(:' | 'at' | 'exactly' | 'from' - whitespace(); - parse_FTRange(); - shift(247); // 'times' - eventHandler.endNonterminal("FTTimes", e0); - } - - function try_FTTimes() - { - shiftT(195); // 'occurs' - lookahead1W(149); // S^WS | '(:' | 'at' | 'exactly' | 'from' - try_FTRange(); - shiftT(247); // 'times' - } - - function parse_FTRange() - { - eventHandler.startNonterminal("FTRange", e0); - switch (l1) - { - case 130: // 'exactly' - shift(130); // 'exactly' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_AdditiveExpr(); - break; - case 81: // 'at' - shift(81); // 'at' - lookahead1W(125); // S^WS | '(:' | 'least' | 'most' - switch (l1) - { - case 173: // 'least' - shift(173); // 'least' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_AdditiveExpr(); - break; - default: - shift(183); // 'most' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_AdditiveExpr(); - } - break; - default: - shift(140); // 'from' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_AdditiveExpr(); - shift(248); // 'to' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_AdditiveExpr(); - } - eventHandler.endNonterminal("FTRange", e0); - } - - function try_FTRange() - { - switch (l1) - { - case 130: // 'exactly' - shiftT(130); // 'exactly' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_AdditiveExpr(); - break; - case 81: // 'at' - shiftT(81); // 'at' - lookahead1W(125); // S^WS | '(:' | 'least' | 'most' - switch (l1) - { - case 173: // 'least' - shiftT(173); // 'least' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_AdditiveExpr(); - break; - default: - shiftT(183); // 'most' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_AdditiveExpr(); - } - break; - default: - shiftT(140); // 'from' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_AdditiveExpr(); - shiftT(248); // 'to' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_AdditiveExpr(); - } - } - - function parse_FTPosFilter() - { - eventHandler.startNonterminal("FTPosFilter", e0); - switch (l1) - { - case 202: // 'ordered' - parse_FTOrder(); - break; - case 269: // 'window' - parse_FTWindow(); - break; - case 117: // 'distance' - parse_FTDistance(); - break; - case 115: // 'different' - case 223: // 'same' - parse_FTScope(); - break; - default: - parse_FTContent(); - } - eventHandler.endNonterminal("FTPosFilter", e0); - } - - function try_FTPosFilter() - { - switch (l1) - { - case 202: // 'ordered' - try_FTOrder(); - break; - case 269: // 'window' - try_FTWindow(); - break; - case 117: // 'distance' - try_FTDistance(); - break; - case 115: // 'different' - case 223: // 'same' - try_FTScope(); - break; - default: - try_FTContent(); - } - } - - function parse_FTOrder() - { - eventHandler.startNonterminal("FTOrder", e0); - shift(202); // 'ordered' - eventHandler.endNonterminal("FTOrder", e0); - } - - function try_FTOrder() - { - shiftT(202); // 'ordered' - } - - function parse_FTWindow() - { - eventHandler.startNonterminal("FTWindow", e0); - shift(269); // 'window' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_AdditiveExpr(); - whitespace(); - parse_FTUnit(); - eventHandler.endNonterminal("FTWindow", e0); - } - - function try_FTWindow() - { - shiftT(269); // 'window' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_AdditiveExpr(); - try_FTUnit(); - } - - function parse_FTDistance() - { - eventHandler.startNonterminal("FTDistance", e0); - shift(117); // 'distance' - lookahead1W(149); // S^WS | '(:' | 'at' | 'exactly' | 'from' - whitespace(); - parse_FTRange(); - whitespace(); - parse_FTUnit(); - eventHandler.endNonterminal("FTDistance", e0); - } - - function try_FTDistance() - { - shiftT(117); // 'distance' - lookahead1W(149); // S^WS | '(:' | 'at' | 'exactly' | 'from' - try_FTRange(); - try_FTUnit(); - } - - function parse_FTUnit() - { - eventHandler.startNonterminal("FTUnit", e0); - switch (l1) - { - case 273: // 'words' - shift(273); // 'words' - break; - case 232: // 'sentences' - shift(232); // 'sentences' - break; - default: - shift(205); // 'paragraphs' - } - eventHandler.endNonterminal("FTUnit", e0); - } - - function try_FTUnit() - { - switch (l1) - { - case 273: // 'words' - shiftT(273); // 'words' - break; - case 232: // 'sentences' - shiftT(232); // 'sentences' - break; - default: - shiftT(205); // 'paragraphs' - } - } - - function parse_FTScope() - { - eventHandler.startNonterminal("FTScope", e0); - switch (l1) - { - case 223: // 'same' - shift(223); // 'same' - break; - default: - shift(115); // 'different' - } - lookahead1W(132); // S^WS | '(:' | 'paragraph' | 'sentence' - whitespace(); - parse_FTBigUnit(); - eventHandler.endNonterminal("FTScope", e0); - } - - function try_FTScope() - { - switch (l1) - { - case 223: // 'same' - shiftT(223); // 'same' - break; - default: - shiftT(115); // 'different' - } - lookahead1W(132); // S^WS | '(:' | 'paragraph' | 'sentence' - try_FTBigUnit(); - } - - function parse_FTBigUnit() - { - eventHandler.startNonterminal("FTBigUnit", e0); - switch (l1) - { - case 231: // 'sentence' - shift(231); // 'sentence' - break; - default: - shift(204); // 'paragraph' - } - eventHandler.endNonterminal("FTBigUnit", e0); - } - - function try_FTBigUnit() - { - switch (l1) - { - case 231: // 'sentence' - shiftT(231); // 'sentence' - break; - default: - shiftT(204); // 'paragraph' - } - } - - function parse_FTContent() - { - eventHandler.startNonterminal("FTContent", e0); - switch (l1) - { - case 81: // 'at' - shift(81); // 'at' - lookahead1W(117); // S^WS | '(:' | 'end' | 'start' - switch (l1) - { - case 237: // 'start' - shift(237); // 'start' - break; - default: - shift(126); // 'end' - } - break; - default: - shift(127); // 'entire' - lookahead1W(42); // S^WS | '(:' | 'content' - shift(100); // 'content' - } - eventHandler.endNonterminal("FTContent", e0); - } - - function try_FTContent() - { - switch (l1) - { - case 81: // 'at' - shiftT(81); // 'at' - lookahead1W(117); // S^WS | '(:' | 'end' | 'start' - switch (l1) - { - case 237: // 'start' - shiftT(237); // 'start' - break; - default: - shiftT(126); // 'end' - } - break; - default: - shiftT(127); // 'entire' - lookahead1W(42); // S^WS | '(:' | 'content' - shiftT(100); // 'content' - } - } - - function parse_FTMatchOptions() - { - eventHandler.startNonterminal("FTMatchOptions", e0); - for (;;) - { - shift(259); // 'using' - lookahead1W(181); // S^WS | '(:' | 'case' | 'diacritics' | 'language' | 'lowercase' | 'no' | - whitespace(); - parse_FTMatchOption(); - lookahead1W(214); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 != 259) // 'using' - { - break; - } - } - eventHandler.endNonterminal("FTMatchOptions", e0); - } - - function try_FTMatchOptions() - { - for (;;) - { - shiftT(259); // 'using' - lookahead1W(181); // S^WS | '(:' | 'case' | 'diacritics' | 'language' | 'lowercase' | 'no' | - try_FTMatchOption(); - lookahead1W(214); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 != 259) // 'using' - { - break; - } - } - } - - function parse_FTMatchOption() - { - eventHandler.startNonterminal("FTMatchOption", e0); - switch (l1) - { - case 188: // 'no' - lookahead2W(161); // S^WS | '(:' | 'stemming' | 'stop' | 'thesaurus' | 'wildcards' - break; - default: - lk = l1; - } - switch (lk) - { - case 169: // 'language' - parse_FTLanguageOption(); - break; - case 268: // 'wildcards' - case 137404: // 'no' 'wildcards' - parse_FTWildCardOption(); - break; - case 246: // 'thesaurus' - case 126140: // 'no' 'thesaurus' - parse_FTThesaurusOption(); - break; - case 238: // 'stemming' - case 122044: // 'no' 'stemming' - parse_FTStemOption(); - break; - case 114: // 'diacritics' - parse_FTDiacriticsOption(); - break; - case 239: // 'stop' - case 122556: // 'no' 'stop' - parse_FTStopWordOption(); - break; - case 199: // 'option' - parse_FTExtensionOption(); - break; - default: - parse_FTCaseOption(); - } - eventHandler.endNonterminal("FTMatchOption", e0); - } - - function try_FTMatchOption() - { - switch (l1) - { - case 188: // 'no' - lookahead2W(161); // S^WS | '(:' | 'stemming' | 'stop' | 'thesaurus' | 'wildcards' - break; - default: - lk = l1; - } - switch (lk) - { - case 169: // 'language' - try_FTLanguageOption(); - break; - case 268: // 'wildcards' - case 137404: // 'no' 'wildcards' - try_FTWildCardOption(); - break; - case 246: // 'thesaurus' - case 126140: // 'no' 'thesaurus' - try_FTThesaurusOption(); - break; - case 238: // 'stemming' - case 122044: // 'no' 'stemming' - try_FTStemOption(); - break; - case 114: // 'diacritics' - try_FTDiacriticsOption(); - break; - case 239: // 'stop' - case 122556: // 'no' 'stop' - try_FTStopWordOption(); - break; - case 199: // 'option' - try_FTExtensionOption(); - break; - default: - try_FTCaseOption(); - } - } - - function parse_FTCaseOption() - { - eventHandler.startNonterminal("FTCaseOption", e0); - switch (l1) - { - case 88: // 'case' - shift(88); // 'case' - lookahead1W(124); // S^WS | '(:' | 'insensitive' | 'sensitive' - switch (l1) - { - case 158: // 'insensitive' - shift(158); // 'insensitive' - break; - default: - shift(230); // 'sensitive' - } - break; - case 177: // 'lowercase' - shift(177); // 'lowercase' - break; - default: - shift(258); // 'uppercase' - } - eventHandler.endNonterminal("FTCaseOption", e0); - } - - function try_FTCaseOption() - { - switch (l1) - { - case 88: // 'case' - shiftT(88); // 'case' - lookahead1W(124); // S^WS | '(:' | 'insensitive' | 'sensitive' - switch (l1) - { - case 158: // 'insensitive' - shiftT(158); // 'insensitive' - break; - default: - shiftT(230); // 'sensitive' - } - break; - case 177: // 'lowercase' - shiftT(177); // 'lowercase' - break; - default: - shiftT(258); // 'uppercase' - } - } - - function parse_FTDiacriticsOption() - { - eventHandler.startNonterminal("FTDiacriticsOption", e0); - shift(114); // 'diacritics' - lookahead1W(124); // S^WS | '(:' | 'insensitive' | 'sensitive' - switch (l1) - { - case 158: // 'insensitive' - shift(158); // 'insensitive' - break; - default: - shift(230); // 'sensitive' - } - eventHandler.endNonterminal("FTDiacriticsOption", e0); - } - - function try_FTDiacriticsOption() - { - shiftT(114); // 'diacritics' - lookahead1W(124); // S^WS | '(:' | 'insensitive' | 'sensitive' - switch (l1) - { - case 158: // 'insensitive' - shiftT(158); // 'insensitive' - break; - default: - shiftT(230); // 'sensitive' - } - } - - function parse_FTStemOption() - { - eventHandler.startNonterminal("FTStemOption", e0); - switch (l1) - { - case 238: // 'stemming' - shift(238); // 'stemming' - break; - default: - shift(188); // 'no' - lookahead1W(74); // S^WS | '(:' | 'stemming' - shift(238); // 'stemming' - } - eventHandler.endNonterminal("FTStemOption", e0); - } - - function try_FTStemOption() - { - switch (l1) - { - case 238: // 'stemming' - shiftT(238); // 'stemming' - break; - default: - shiftT(188); // 'no' - lookahead1W(74); // S^WS | '(:' | 'stemming' - shiftT(238); // 'stemming' - } - } - - function parse_FTThesaurusOption() - { - eventHandler.startNonterminal("FTThesaurusOption", e0); - switch (l1) - { - case 246: // 'thesaurus' - shift(246); // 'thesaurus' - lookahead1W(142); // S^WS | '(' | '(:' | 'at' | 'default' - switch (l1) - { - case 81: // 'at' - whitespace(); - parse_FTThesaurusID(); - break; - case 109: // 'default' - shift(109); // 'default' - break; - default: - shift(34); // '(' - lookahead1W(112); // S^WS | '(:' | 'at' | 'default' - switch (l1) - { - case 81: // 'at' - whitespace(); - parse_FTThesaurusID(); - break; - default: - shift(109); // 'default' - } - for (;;) - { - lookahead1W(101); // S^WS | '(:' | ')' | ',' - if (l1 != 41) // ',' - { - break; - } - shift(41); // ',' - lookahead1W(31); // S^WS | '(:' | 'at' - whitespace(); - parse_FTThesaurusID(); - } - shift(37); // ')' - } - break; - default: - shift(188); // 'no' - lookahead1W(78); // S^WS | '(:' | 'thesaurus' - shift(246); // 'thesaurus' - } - eventHandler.endNonterminal("FTThesaurusOption", e0); - } - - function try_FTThesaurusOption() - { - switch (l1) - { - case 246: // 'thesaurus' - shiftT(246); // 'thesaurus' - lookahead1W(142); // S^WS | '(' | '(:' | 'at' | 'default' - switch (l1) - { - case 81: // 'at' - try_FTThesaurusID(); - break; - case 109: // 'default' - shiftT(109); // 'default' - break; - default: - shiftT(34); // '(' - lookahead1W(112); // S^WS | '(:' | 'at' | 'default' - switch (l1) - { - case 81: // 'at' - try_FTThesaurusID(); - break; - default: - shiftT(109); // 'default' - } - for (;;) - { - lookahead1W(101); // S^WS | '(:' | ')' | ',' - if (l1 != 41) // ',' - { - break; - } - shiftT(41); // ',' - lookahead1W(31); // S^WS | '(:' | 'at' - try_FTThesaurusID(); - } - shiftT(37); // ')' - } - break; - default: - shiftT(188); // 'no' - lookahead1W(78); // S^WS | '(:' | 'thesaurus' - shiftT(246); // 'thesaurus' - } - } - - function parse_FTThesaurusID() - { - eventHandler.startNonterminal("FTThesaurusID", e0); - shift(81); // 'at' - lookahead1W(15); // URILiteral | S^WS | '(:' - shift(7); // URILiteral - lookahead1W(220); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 == 217) // 'relationship' - { - shift(217); // 'relationship' - lookahead1W(17); // StringLiteral | S^WS | '(:' - shift(11); // StringLiteral - } - lookahead1W(216); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - switch (l1) - { - case 81: // 'at' - lookahead2W(165); // S^WS | '(:' | 'end' | 'least' | 'most' | 'position' | 'start' - break; - default: - lk = l1; - } - if (lk == 130 // 'exactly' - || lk == 140 // 'from' - || lk == 88657 // 'at' 'least' - || lk == 93777) // 'at' 'most' - { - whitespace(); - parse_FTLiteralRange(); - lookahead1W(58); // S^WS | '(:' | 'levels' - shift(175); // 'levels' - } - eventHandler.endNonterminal("FTThesaurusID", e0); - } - - function try_FTThesaurusID() - { - shiftT(81); // 'at' - lookahead1W(15); // URILiteral | S^WS | '(:' - shiftT(7); // URILiteral - lookahead1W(220); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 == 217) // 'relationship' - { - shiftT(217); // 'relationship' - lookahead1W(17); // StringLiteral | S^WS | '(:' - shiftT(11); // StringLiteral - } - lookahead1W(216); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - switch (l1) - { - case 81: // 'at' - lookahead2W(165); // S^WS | '(:' | 'end' | 'least' | 'most' | 'position' | 'start' - break; - default: - lk = l1; - } - if (lk == 130 // 'exactly' - || lk == 140 // 'from' - || lk == 88657 // 'at' 'least' - || lk == 93777) // 'at' 'most' - { - try_FTLiteralRange(); - lookahead1W(58); // S^WS | '(:' | 'levels' - shiftT(175); // 'levels' - } - } - - function parse_FTLiteralRange() - { - eventHandler.startNonterminal("FTLiteralRange", e0); - switch (l1) - { - case 130: // 'exactly' - shift(130); // 'exactly' - lookahead1W(16); // IntegerLiteral | S^WS | '(:' - shift(8); // IntegerLiteral - break; - case 81: // 'at' - shift(81); // 'at' - lookahead1W(125); // S^WS | '(:' | 'least' | 'most' - switch (l1) - { - case 173: // 'least' - shift(173); // 'least' - lookahead1W(16); // IntegerLiteral | S^WS | '(:' - shift(8); // IntegerLiteral - break; - default: - shift(183); // 'most' - lookahead1W(16); // IntegerLiteral | S^WS | '(:' - shift(8); // IntegerLiteral - } - break; - default: - shift(140); // 'from' - lookahead1W(16); // IntegerLiteral | S^WS | '(:' - shift(8); // IntegerLiteral - lookahead1W(79); // S^WS | '(:' | 'to' - shift(248); // 'to' - lookahead1W(16); // IntegerLiteral | S^WS | '(:' - shift(8); // IntegerLiteral - } - eventHandler.endNonterminal("FTLiteralRange", e0); - } - - function try_FTLiteralRange() - { - switch (l1) - { - case 130: // 'exactly' - shiftT(130); // 'exactly' - lookahead1W(16); // IntegerLiteral | S^WS | '(:' - shiftT(8); // IntegerLiteral - break; - case 81: // 'at' - shiftT(81); // 'at' - lookahead1W(125); // S^WS | '(:' | 'least' | 'most' - switch (l1) - { - case 173: // 'least' - shiftT(173); // 'least' - lookahead1W(16); // IntegerLiteral | S^WS | '(:' - shiftT(8); // IntegerLiteral - break; - default: - shiftT(183); // 'most' - lookahead1W(16); // IntegerLiteral | S^WS | '(:' - shiftT(8); // IntegerLiteral - } - break; - default: - shiftT(140); // 'from' - lookahead1W(16); // IntegerLiteral | S^WS | '(:' - shiftT(8); // IntegerLiteral - lookahead1W(79); // S^WS | '(:' | 'to' - shiftT(248); // 'to' - lookahead1W(16); // IntegerLiteral | S^WS | '(:' - shiftT(8); // IntegerLiteral - } - } - - function parse_FTStopWordOption() - { - eventHandler.startNonterminal("FTStopWordOption", e0); - switch (l1) - { - case 239: // 'stop' - shift(239); // 'stop' - lookahead1W(86); // S^WS | '(:' | 'words' - shift(273); // 'words' - lookahead1W(142); // S^WS | '(' | '(:' | 'at' | 'default' - switch (l1) - { - case 109: // 'default' - shift(109); // 'default' - for (;;) - { - lookahead1W(217); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 != 131 // 'except' - && l1 != 254) // 'union' - { - break; - } - whitespace(); - parse_FTStopWordsInclExcl(); - } - break; - default: - whitespace(); - parse_FTStopWords(); - for (;;) - { - lookahead1W(217); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 != 131 // 'except' - && l1 != 254) // 'union' - { - break; - } - whitespace(); - parse_FTStopWordsInclExcl(); - } - } - break; - default: - shift(188); // 'no' - lookahead1W(75); // S^WS | '(:' | 'stop' - shift(239); // 'stop' - lookahead1W(86); // S^WS | '(:' | 'words' - shift(273); // 'words' - } - eventHandler.endNonterminal("FTStopWordOption", e0); - } - - function try_FTStopWordOption() - { - switch (l1) - { - case 239: // 'stop' - shiftT(239); // 'stop' - lookahead1W(86); // S^WS | '(:' | 'words' - shiftT(273); // 'words' - lookahead1W(142); // S^WS | '(' | '(:' | 'at' | 'default' - switch (l1) - { - case 109: // 'default' - shiftT(109); // 'default' - for (;;) - { - lookahead1W(217); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 != 131 // 'except' - && l1 != 254) // 'union' - { - break; - } - try_FTStopWordsInclExcl(); - } - break; - default: - try_FTStopWords(); - for (;;) - { - lookahead1W(217); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' | - if (l1 != 131 // 'except' - && l1 != 254) // 'union' - { - break; - } - try_FTStopWordsInclExcl(); - } - } - break; - default: - shiftT(188); // 'no' - lookahead1W(75); // S^WS | '(:' | 'stop' - shiftT(239); // 'stop' - lookahead1W(86); // S^WS | '(:' | 'words' - shiftT(273); // 'words' - } - } - - function parse_FTStopWords() - { - eventHandler.startNonterminal("FTStopWords", e0); - switch (l1) - { - case 81: // 'at' - shift(81); // 'at' - lookahead1W(15); // URILiteral | S^WS | '(:' - shift(7); // URILiteral - break; - default: - shift(34); // '(' - lookahead1W(17); // StringLiteral | S^WS | '(:' - shift(11); // StringLiteral - for (;;) - { - lookahead1W(101); // S^WS | '(:' | ')' | ',' - if (l1 != 41) // ',' - { - break; - } - shift(41); // ',' - lookahead1W(17); // StringLiteral | S^WS | '(:' - shift(11); // StringLiteral - } - shift(37); // ')' - } - eventHandler.endNonterminal("FTStopWords", e0); - } - - function try_FTStopWords() - { - switch (l1) - { - case 81: // 'at' - shiftT(81); // 'at' - lookahead1W(15); // URILiteral | S^WS | '(:' - shiftT(7); // URILiteral - break; - default: - shiftT(34); // '(' - lookahead1W(17); // StringLiteral | S^WS | '(:' - shiftT(11); // StringLiteral - for (;;) - { - lookahead1W(101); // S^WS | '(:' | ')' | ',' - if (l1 != 41) // ',' - { - break; - } - shiftT(41); // ',' - lookahead1W(17); // StringLiteral | S^WS | '(:' - shiftT(11); // StringLiteral - } - shiftT(37); // ')' - } - } - - function parse_FTStopWordsInclExcl() - { - eventHandler.startNonterminal("FTStopWordsInclExcl", e0); - switch (l1) - { - case 254: // 'union' - shift(254); // 'union' - break; - default: - shift(131); // 'except' - } - lookahead1W(99); // S^WS | '(' | '(:' | 'at' - whitespace(); - parse_FTStopWords(); - eventHandler.endNonterminal("FTStopWordsInclExcl", e0); - } - - function try_FTStopWordsInclExcl() - { - switch (l1) - { - case 254: // 'union' - shiftT(254); // 'union' - break; - default: - shiftT(131); // 'except' - } - lookahead1W(99); // S^WS | '(' | '(:' | 'at' - try_FTStopWords(); - } - - function parse_FTLanguageOption() - { - eventHandler.startNonterminal("FTLanguageOption", e0); - shift(169); // 'language' - lookahead1W(17); // StringLiteral | S^WS | '(:' - shift(11); // StringLiteral - eventHandler.endNonterminal("FTLanguageOption", e0); - } - - function try_FTLanguageOption() - { - shiftT(169); // 'language' - lookahead1W(17); // StringLiteral | S^WS | '(:' - shiftT(11); // StringLiteral - } - - function parse_FTWildCardOption() - { - eventHandler.startNonterminal("FTWildCardOption", e0); - switch (l1) - { - case 268: // 'wildcards' - shift(268); // 'wildcards' - break; - default: - shift(188); // 'no' - lookahead1W(84); // S^WS | '(:' | 'wildcards' - shift(268); // 'wildcards' - } - eventHandler.endNonterminal("FTWildCardOption", e0); - } - - function try_FTWildCardOption() - { - switch (l1) - { - case 268: // 'wildcards' - shiftT(268); // 'wildcards' - break; - default: - shiftT(188); // 'no' - lookahead1W(84); // S^WS | '(:' | 'wildcards' - shiftT(268); // 'wildcards' - } - } - - function parse_FTExtensionOption() - { - eventHandler.startNonterminal("FTExtensionOption", e0); - shift(199); // 'option' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_EQName(); - lookahead1W(17); // StringLiteral | S^WS | '(:' - shift(11); // StringLiteral - eventHandler.endNonterminal("FTExtensionOption", e0); - } - - function try_FTExtensionOption() - { - shiftT(199); // 'option' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_EQName(); - lookahead1W(17); // StringLiteral | S^WS | '(:' - shiftT(11); // StringLiteral - } - - function parse_FTIgnoreOption() - { - eventHandler.startNonterminal("FTIgnoreOption", e0); - shift(271); // 'without' - lookahead1W(42); // S^WS | '(:' | 'content' - shift(100); // 'content' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_UnionExpr(); - eventHandler.endNonterminal("FTIgnoreOption", e0); - } - - function try_FTIgnoreOption() - { - shiftT(271); // 'without' - lookahead1W(42); // S^WS | '(:' | 'content' - shiftT(100); // 'content' - lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_UnionExpr(); - } - - function parse_CollectionDecl() - { - eventHandler.startNonterminal("CollectionDecl", e0); - shift(95); // 'collection' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_EQName(); - lookahead1W(107); // S^WS | '(:' | ';' | 'as' - if (l1 == 79) // 'as' - { - whitespace(); - parse_CollectionTypeDecl(); - } - eventHandler.endNonterminal("CollectionDecl", e0); - } - - function parse_CollectionTypeDecl() - { - eventHandler.startNonterminal("CollectionTypeDecl", e0); - shift(79); // 'as' - lookahead1W(183); // S^WS | '(:' | 'array' | 'attribute' | 'comment' | 'document-node' | 'element' | - whitespace(); - parse_KindTest(); - lookahead1W(156); // S^WS | '(:' | '*' | '+' | ';' | '?' - if (l1 != 53) // ';' - { - whitespace(); - parse_OccurrenceIndicator(); - } - eventHandler.endNonterminal("CollectionTypeDecl", e0); - } - - function parse_IndexName() - { - eventHandler.startNonterminal("IndexName", e0); - parse_EQName(); - eventHandler.endNonterminal("IndexName", e0); - } - - function parse_IndexDomainExpr() - { - eventHandler.startNonterminal("IndexDomainExpr", e0); - parse_PathExpr(); - eventHandler.endNonterminal("IndexDomainExpr", e0); - } - - function parse_IndexKeySpec() - { - eventHandler.startNonterminal("IndexKeySpec", e0); - parse_IndexKeyExpr(); - if (l1 == 79) // 'as' - { - whitespace(); - parse_IndexKeyTypeDecl(); - } - lookahead1W(146); // S^WS | '(:' | ',' | ';' | 'collation' - if (l1 == 94) // 'collation' - { - whitespace(); - parse_IndexKeyCollation(); - } - eventHandler.endNonterminal("IndexKeySpec", e0); - } - - function parse_IndexKeyExpr() - { - eventHandler.startNonterminal("IndexKeyExpr", e0); - parse_PathExpr(); - eventHandler.endNonterminal("IndexKeyExpr", e0); - } - - function parse_IndexKeyTypeDecl() - { - eventHandler.startNonterminal("IndexKeyTypeDecl", e0); - shift(79); // 'as' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_AtomicType(); - lookahead1W(169); // S^WS | '(:' | '*' | '+' | ',' | ';' | '?' | 'collation' - if (l1 == 39 // '*' - || l1 == 40 // '+' - || l1 == 64) // '?' - { - whitespace(); - parse_OccurrenceIndicator(); - } - eventHandler.endNonterminal("IndexKeyTypeDecl", e0); - } - - function parse_AtomicType() - { - eventHandler.startNonterminal("AtomicType", e0); - parse_EQName(); - eventHandler.endNonterminal("AtomicType", e0); - } - - function parse_IndexKeyCollation() - { - eventHandler.startNonterminal("IndexKeyCollation", e0); - shift(94); // 'collation' - lookahead1W(15); // URILiteral | S^WS | '(:' - shift(7); // URILiteral - eventHandler.endNonterminal("IndexKeyCollation", e0); - } - - function parse_IndexDecl() - { - eventHandler.startNonterminal("IndexDecl", e0); - shift(155); // 'index' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_IndexName(); - lookahead1W(65); // S^WS | '(:' | 'on' - shift(197); // 'on' - lookahead1W(63); // S^WS | '(:' | 'nodes' - shift(192); // 'nodes' - lookahead1W(264); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_IndexDomainExpr(); - shift(87); // 'by' - lookahead1W(264); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_IndexKeySpec(); - for (;;) - { - lookahead1W(103); // S^WS | '(:' | ',' | ';' - if (l1 != 41) // ',' - { - break; - } - shift(41); // ',' - lookahead1W(264); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_IndexKeySpec(); - } - eventHandler.endNonterminal("IndexDecl", e0); - } - - function parse_ICDecl() - { - eventHandler.startNonterminal("ICDecl", e0); - shift(161); // 'integrity' - lookahead1W(40); // S^WS | '(:' | 'constraint' - shift(97); // 'constraint' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_EQName(); - lookahead1W(120); // S^WS | '(:' | 'foreign' | 'on' - switch (l1) - { - case 197: // 'on' - whitespace(); - parse_ICCollection(); - break; - default: - whitespace(); - parse_ICForeignKey(); - } - eventHandler.endNonterminal("ICDecl", e0); - } - - function parse_ICCollection() - { - eventHandler.startNonterminal("ICCollection", e0); - shift(197); // 'on' - lookahead1W(39); // S^WS | '(:' | 'collection' - shift(95); // 'collection' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_EQName(); - lookahead1W(140); // S^WS | '$' | '(:' | 'foreach' | 'node' - switch (l1) - { - case 31: // '$' - whitespace(); - parse_ICCollSequence(); - break; - case 191: // 'node' - whitespace(); - parse_ICCollSequenceUnique(); - break; - default: - whitespace(); - parse_ICCollNode(); - } - eventHandler.endNonterminal("ICCollection", e0); - } - - function parse_ICCollSequence() - { - eventHandler.startNonterminal("ICCollSequence", e0); - parse_VarRef(); - lookahead1W(37); // S^WS | '(:' | 'check' - shift(92); // 'check' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("ICCollSequence", e0); - } - - function parse_ICCollSequenceUnique() - { - eventHandler.startNonterminal("ICCollSequenceUnique", e0); - shift(191); // 'node' - lookahead1W(21); // S^WS | '$' | '(:' - whitespace(); - parse_VarRef(); - lookahead1W(37); // S^WS | '(:' | 'check' - shift(92); // 'check' - lookahead1W(80); // S^WS | '(:' | 'unique' - shift(255); // 'unique' - lookahead1W(57); // S^WS | '(:' | 'key' - shift(168); // 'key' - lookahead1W(264); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_PathExpr(); - eventHandler.endNonterminal("ICCollSequenceUnique", e0); - } - - function parse_ICCollNode() - { - eventHandler.startNonterminal("ICCollNode", e0); - shift(138); // 'foreach' - lookahead1W(62); // S^WS | '(:' | 'node' - shift(191); // 'node' - lookahead1W(21); // S^WS | '$' | '(:' - whitespace(); - parse_VarRef(); - lookahead1W(37); // S^WS | '(:' | 'check' - shift(92); // 'check' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("ICCollNode", e0); - } - - function parse_ICForeignKey() - { - eventHandler.startNonterminal("ICForeignKey", e0); - shift(139); // 'foreign' - lookahead1W(57); // S^WS | '(:' | 'key' - shift(168); // 'key' - lookahead1W(51); // S^WS | '(:' | 'from' - whitespace(); - parse_ICForeignKeySource(); - whitespace(); - parse_ICForeignKeyTarget(); - eventHandler.endNonterminal("ICForeignKey", e0); - } - - function parse_ICForeignKeySource() - { - eventHandler.startNonterminal("ICForeignKeySource", e0); - shift(140); // 'from' - lookahead1W(39); // S^WS | '(:' | 'collection' - whitespace(); - parse_ICForeignKeyValues(); - eventHandler.endNonterminal("ICForeignKeySource", e0); - } - - function parse_ICForeignKeyTarget() - { - eventHandler.startNonterminal("ICForeignKeyTarget", e0); - shift(248); // 'to' - lookahead1W(39); // S^WS | '(:' | 'collection' - whitespace(); - parse_ICForeignKeyValues(); - eventHandler.endNonterminal("ICForeignKeyTarget", e0); - } - - function parse_ICForeignKeyValues() - { - eventHandler.startNonterminal("ICForeignKeyValues", e0); - shift(95); // 'collection' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_EQName(); - lookahead1W(62); // S^WS | '(:' | 'node' - shift(191); // 'node' - lookahead1W(21); // S^WS | '$' | '(:' - whitespace(); - parse_VarRef(); - lookahead1W(57); // S^WS | '(:' | 'key' - shift(168); // 'key' - lookahead1W(264); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_PathExpr(); - eventHandler.endNonterminal("ICForeignKeyValues", e0); - } - - function try_Comment() - { - shiftT(36); // '(:' - for (;;) - { - lookahead1(89); // CommentContents | '(:' | ':)' - if (l1 == 50) // ':)' - { - break; - } - switch (l1) - { - case 24: // CommentContents - shiftT(24); // CommentContents - break; - default: - try_Comment(); - } - } - shiftT(50); // ':)' - } - - function try_Whitespace() - { - switch (l1) - { - case 22: // S^WS - shiftT(22); // S^WS - break; - default: - try_Comment(); - } - } - - function parse_EQName() - { - eventHandler.startNonterminal("EQName", e0); - lookahead1(248); // EQName^Token | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' | 'and' | - switch (l1) - { - case 82: // 'attribute' - shift(82); // 'attribute' - break; - case 96: // 'comment' - shift(96); // 'comment' - break; - case 120: // 'document-node' - shift(120); // 'document-node' - break; - case 121: // 'element' - shift(121); // 'element' - break; - case 124: // 'empty-sequence' - shift(124); // 'empty-sequence' - break; - case 145: // 'function' - shift(145); // 'function' - break; - case 152: // 'if' - shift(152); // 'if' - break; - case 165: // 'item' - shift(165); // 'item' - break; - case 185: // 'namespace-node' - shift(185); // 'namespace-node' - break; - case 191: // 'node' - shift(191); // 'node' - break; - case 216: // 'processing-instruction' - shift(216); // 'processing-instruction' - break; - case 226: // 'schema-attribute' - shift(226); // 'schema-attribute' - break; - case 227: // 'schema-element' - shift(227); // 'schema-element' - break; - case 243: // 'switch' - shift(243); // 'switch' - break; - case 244: // 'text' - shift(244); // 'text' - break; - case 253: // 'typeswitch' - shift(253); // 'typeswitch' - break; - default: - parse_FunctionName(); - } - eventHandler.endNonterminal("EQName", e0); - } - - function try_EQName() - { - lookahead1(248); // EQName^Token | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' | 'and' | - switch (l1) - { - case 82: // 'attribute' - shiftT(82); // 'attribute' - break; - case 96: // 'comment' - shiftT(96); // 'comment' - break; - case 120: // 'document-node' - shiftT(120); // 'document-node' - break; - case 121: // 'element' - shiftT(121); // 'element' - break; - case 124: // 'empty-sequence' - shiftT(124); // 'empty-sequence' - break; - case 145: // 'function' - shiftT(145); // 'function' - break; - case 152: // 'if' - shiftT(152); // 'if' - break; - case 165: // 'item' - shiftT(165); // 'item' - break; - case 185: // 'namespace-node' - shiftT(185); // 'namespace-node' - break; - case 191: // 'node' - shiftT(191); // 'node' - break; - case 216: // 'processing-instruction' - shiftT(216); // 'processing-instruction' - break; - case 226: // 'schema-attribute' - shiftT(226); // 'schema-attribute' - break; - case 227: // 'schema-element' - shiftT(227); // 'schema-element' - break; - case 243: // 'switch' - shiftT(243); // 'switch' - break; - case 244: // 'text' - shiftT(244); // 'text' - break; - case 253: // 'typeswitch' - shiftT(253); // 'typeswitch' - break; - default: - try_FunctionName(); - } - } - - function parse_FunctionName() - { - eventHandler.startNonterminal("FunctionName", e0); - switch (l1) - { - case 6: // EQName^Token - shift(6); // EQName^Token - break; - case 70: // 'after' - shift(70); // 'after' - break; - case 73: // 'ancestor' - shift(73); // 'ancestor' - break; - case 74: // 'ancestor-or-self' - shift(74); // 'ancestor-or-self' - break; - case 75: // 'and' - shift(75); // 'and' - break; - case 79: // 'as' - shift(79); // 'as' - break; - case 80: // 'ascending' - shift(80); // 'ascending' - break; - case 84: // 'before' - shift(84); // 'before' - break; - case 88: // 'case' - shift(88); // 'case' - break; - case 89: // 'cast' - shift(89); // 'cast' - break; - case 90: // 'castable' - shift(90); // 'castable' - break; - case 93: // 'child' - shift(93); // 'child' - break; - case 94: // 'collation' - shift(94); // 'collation' - break; - case 103: // 'copy' - shift(103); // 'copy' - break; - case 105: // 'count' - shift(105); // 'count' - break; - case 108: // 'declare' - shift(108); // 'declare' - break; - case 109: // 'default' - shift(109); // 'default' - break; - case 110: // 'delete' - shift(110); // 'delete' - break; - case 111: // 'descendant' - shift(111); // 'descendant' - break; - case 112: // 'descendant-or-self' - shift(112); // 'descendant-or-self' - break; - case 113: // 'descending' - shift(113); // 'descending' - break; - case 118: // 'div' - shift(118); // 'div' - break; - case 119: // 'document' - shift(119); // 'document' - break; - case 122: // 'else' - shift(122); // 'else' - break; - case 123: // 'empty' - shift(123); // 'empty' - break; - case 126: // 'end' - shift(126); // 'end' - break; - case 128: // 'eq' - shift(128); // 'eq' - break; - case 129: // 'every' - shift(129); // 'every' - break; - case 131: // 'except' - shift(131); // 'except' - break; - case 134: // 'first' - shift(134); // 'first' - break; - case 135: // 'following' - shift(135); // 'following' - break; - case 136: // 'following-sibling' - shift(136); // 'following-sibling' - break; - case 137: // 'for' - shift(137); // 'for' - break; - case 146: // 'ge' - shift(146); // 'ge' - break; - case 148: // 'group' - shift(148); // 'group' - break; - case 150: // 'gt' - shift(150); // 'gt' - break; - case 151: // 'idiv' - shift(151); // 'idiv' - break; - case 153: // 'import' - shift(153); // 'import' - break; - case 159: // 'insert' - shift(159); // 'insert' - break; - case 160: // 'instance' - shift(160); // 'instance' - break; - case 162: // 'intersect' - shift(162); // 'intersect' - break; - case 163: // 'into' - shift(163); // 'into' - break; - case 164: // 'is' - shift(164); // 'is' - break; - case 170: // 'last' - shift(170); // 'last' - break; - case 172: // 'le' - shift(172); // 'le' - break; - case 174: // 'let' - shift(174); // 'let' - break; - case 178: // 'lt' - shift(178); // 'lt' - break; - case 180: // 'mod' - shift(180); // 'mod' - break; - case 181: // 'modify' - shift(181); // 'modify' - break; - case 182: // 'module' - shift(182); // 'module' - break; - case 184: // 'namespace' - shift(184); // 'namespace' - break; - case 186: // 'ne' - shift(186); // 'ne' - break; - case 198: // 'only' - shift(198); // 'only' - break; - case 200: // 'or' - shift(200); // 'or' - break; - case 201: // 'order' - shift(201); // 'order' - break; - case 202: // 'ordered' - shift(202); // 'ordered' - break; - case 206: // 'parent' - shift(206); // 'parent' - break; - case 212: // 'preceding' - shift(212); // 'preceding' - break; - case 213: // 'preceding-sibling' - shift(213); // 'preceding-sibling' - break; - case 218: // 'rename' - shift(218); // 'rename' - break; - case 219: // 'replace' - shift(219); // 'replace' - break; - case 220: // 'return' - shift(220); // 'return' - break; - case 224: // 'satisfies' - shift(224); // 'satisfies' - break; - case 229: // 'self' - shift(229); // 'self' - break; - case 235: // 'some' - shift(235); // 'some' - break; - case 236: // 'stable' - shift(236); // 'stable' - break; - case 237: // 'start' - shift(237); // 'start' - break; - case 248: // 'to' - shift(248); // 'to' - break; - case 249: // 'treat' - shift(249); // 'treat' - break; - case 250: // 'try' - shift(250); // 'try' - break; - case 254: // 'union' - shift(254); // 'union' - break; - case 256: // 'unordered' - shift(256); // 'unordered' - break; - case 260: // 'validate' - shift(260); // 'validate' - break; - case 266: // 'where' - shift(266); // 'where' - break; - case 270: // 'with' - shift(270); // 'with' - break; - case 274: // 'xquery' - shift(274); // 'xquery' - break; - case 72: // 'allowing' - shift(72); // 'allowing' - break; - case 81: // 'at' - shift(81); // 'at' - break; - case 83: // 'base-uri' - shift(83); // 'base-uri' - break; - case 85: // 'boundary-space' - shift(85); // 'boundary-space' - break; - case 86: // 'break' - shift(86); // 'break' - break; - case 91: // 'catch' - shift(91); // 'catch' - break; - case 98: // 'construction' - shift(98); // 'construction' - break; - case 101: // 'context' - shift(101); // 'context' - break; - case 102: // 'continue' - shift(102); // 'continue' - break; - case 104: // 'copy-namespaces' - shift(104); // 'copy-namespaces' - break; - case 106: // 'decimal-format' - shift(106); // 'decimal-format' - break; - case 125: // 'encoding' - shift(125); // 'encoding' - break; - case 132: // 'exit' - shift(132); // 'exit' - break; - case 133: // 'external' - shift(133); // 'external' - break; - case 141: // 'ft-option' - shift(141); // 'ft-option' - break; - case 154: // 'in' - shift(154); // 'in' - break; - case 155: // 'index' - shift(155); // 'index' - break; - case 161: // 'integrity' - shift(161); // 'integrity' - break; - case 171: // 'lax' - shift(171); // 'lax' - break; - case 192: // 'nodes' - shift(192); // 'nodes' - break; - case 199: // 'option' - shift(199); // 'option' - break; - case 203: // 'ordering' - shift(203); // 'ordering' - break; - case 222: // 'revalidation' - shift(222); // 'revalidation' - break; - case 225: // 'schema' - shift(225); // 'schema' - break; - case 228: // 'score' - shift(228); // 'score' - break; - case 234: // 'sliding' - shift(234); // 'sliding' - break; - case 240: // 'strict' - shift(240); // 'strict' - break; - case 251: // 'tumbling' - shift(251); // 'tumbling' - break; - case 252: // 'type' - shift(252); // 'type' - break; - case 257: // 'updating' - shift(257); // 'updating' - break; - case 261: // 'value' - shift(261); // 'value' - break; - case 262: // 'variable' - shift(262); // 'variable' - break; - case 263: // 'version' - shift(263); // 'version' - break; - case 267: // 'while' - shift(267); // 'while' - break; - case 97: // 'constraint' - shift(97); // 'constraint' - break; - case 176: // 'loop' - shift(176); // 'loop' - break; - case 221: // 'returning' - shift(221); // 'returning' - break; - case 194: // 'object' - shift(194); // 'object' - break; - case 167: // 'json-item' - shift(167); // 'json-item' - break; - default: - shift(78); // 'array' - } - eventHandler.endNonterminal("FunctionName", e0); - } - - function try_FunctionName() - { - switch (l1) - { - case 6: // EQName^Token - shiftT(6); // EQName^Token - break; - case 70: // 'after' - shiftT(70); // 'after' - break; - case 73: // 'ancestor' - shiftT(73); // 'ancestor' - break; - case 74: // 'ancestor-or-self' - shiftT(74); // 'ancestor-or-self' - break; - case 75: // 'and' - shiftT(75); // 'and' - break; - case 79: // 'as' - shiftT(79); // 'as' - break; - case 80: // 'ascending' - shiftT(80); // 'ascending' - break; - case 84: // 'before' - shiftT(84); // 'before' - break; - case 88: // 'case' - shiftT(88); // 'case' - break; - case 89: // 'cast' - shiftT(89); // 'cast' - break; - case 90: // 'castable' - shiftT(90); // 'castable' - break; - case 93: // 'child' - shiftT(93); // 'child' - break; - case 94: // 'collation' - shiftT(94); // 'collation' - break; - case 103: // 'copy' - shiftT(103); // 'copy' - break; - case 105: // 'count' - shiftT(105); // 'count' - break; - case 108: // 'declare' - shiftT(108); // 'declare' - break; - case 109: // 'default' - shiftT(109); // 'default' - break; - case 110: // 'delete' - shiftT(110); // 'delete' - break; - case 111: // 'descendant' - shiftT(111); // 'descendant' - break; - case 112: // 'descendant-or-self' - shiftT(112); // 'descendant-or-self' - break; - case 113: // 'descending' - shiftT(113); // 'descending' - break; - case 118: // 'div' - shiftT(118); // 'div' - break; - case 119: // 'document' - shiftT(119); // 'document' - break; - case 122: // 'else' - shiftT(122); // 'else' - break; - case 123: // 'empty' - shiftT(123); // 'empty' - break; - case 126: // 'end' - shiftT(126); // 'end' - break; - case 128: // 'eq' - shiftT(128); // 'eq' - break; - case 129: // 'every' - shiftT(129); // 'every' - break; - case 131: // 'except' - shiftT(131); // 'except' - break; - case 134: // 'first' - shiftT(134); // 'first' - break; - case 135: // 'following' - shiftT(135); // 'following' - break; - case 136: // 'following-sibling' - shiftT(136); // 'following-sibling' - break; - case 137: // 'for' - shiftT(137); // 'for' - break; - case 146: // 'ge' - shiftT(146); // 'ge' - break; - case 148: // 'group' - shiftT(148); // 'group' - break; - case 150: // 'gt' - shiftT(150); // 'gt' - break; - case 151: // 'idiv' - shiftT(151); // 'idiv' - break; - case 153: // 'import' - shiftT(153); // 'import' - break; - case 159: // 'insert' - shiftT(159); // 'insert' - break; - case 160: // 'instance' - shiftT(160); // 'instance' - break; - case 162: // 'intersect' - shiftT(162); // 'intersect' - break; - case 163: // 'into' - shiftT(163); // 'into' - break; - case 164: // 'is' - shiftT(164); // 'is' - break; - case 170: // 'last' - shiftT(170); // 'last' - break; - case 172: // 'le' - shiftT(172); // 'le' - break; - case 174: // 'let' - shiftT(174); // 'let' - break; - case 178: // 'lt' - shiftT(178); // 'lt' - break; - case 180: // 'mod' - shiftT(180); // 'mod' - break; - case 181: // 'modify' - shiftT(181); // 'modify' - break; - case 182: // 'module' - shiftT(182); // 'module' - break; - case 184: // 'namespace' - shiftT(184); // 'namespace' - break; - case 186: // 'ne' - shiftT(186); // 'ne' - break; - case 198: // 'only' - shiftT(198); // 'only' - break; - case 200: // 'or' - shiftT(200); // 'or' - break; - case 201: // 'order' - shiftT(201); // 'order' - break; - case 202: // 'ordered' - shiftT(202); // 'ordered' - break; - case 206: // 'parent' - shiftT(206); // 'parent' - break; - case 212: // 'preceding' - shiftT(212); // 'preceding' - break; - case 213: // 'preceding-sibling' - shiftT(213); // 'preceding-sibling' - break; - case 218: // 'rename' - shiftT(218); // 'rename' - break; - case 219: // 'replace' - shiftT(219); // 'replace' - break; - case 220: // 'return' - shiftT(220); // 'return' - break; - case 224: // 'satisfies' - shiftT(224); // 'satisfies' - break; - case 229: // 'self' - shiftT(229); // 'self' - break; - case 235: // 'some' - shiftT(235); // 'some' - break; - case 236: // 'stable' - shiftT(236); // 'stable' - break; - case 237: // 'start' - shiftT(237); // 'start' - break; - case 248: // 'to' - shiftT(248); // 'to' - break; - case 249: // 'treat' - shiftT(249); // 'treat' - break; - case 250: // 'try' - shiftT(250); // 'try' - break; - case 254: // 'union' - shiftT(254); // 'union' - break; - case 256: // 'unordered' - shiftT(256); // 'unordered' - break; - case 260: // 'validate' - shiftT(260); // 'validate' - break; - case 266: // 'where' - shiftT(266); // 'where' - break; - case 270: // 'with' - shiftT(270); // 'with' - break; - case 274: // 'xquery' - shiftT(274); // 'xquery' - break; - case 72: // 'allowing' - shiftT(72); // 'allowing' - break; - case 81: // 'at' - shiftT(81); // 'at' - break; - case 83: // 'base-uri' - shiftT(83); // 'base-uri' - break; - case 85: // 'boundary-space' - shiftT(85); // 'boundary-space' - break; - case 86: // 'break' - shiftT(86); // 'break' - break; - case 91: // 'catch' - shiftT(91); // 'catch' - break; - case 98: // 'construction' - shiftT(98); // 'construction' - break; - case 101: // 'context' - shiftT(101); // 'context' - break; - case 102: // 'continue' - shiftT(102); // 'continue' - break; - case 104: // 'copy-namespaces' - shiftT(104); // 'copy-namespaces' - break; - case 106: // 'decimal-format' - shiftT(106); // 'decimal-format' - break; - case 125: // 'encoding' - shiftT(125); // 'encoding' - break; - case 132: // 'exit' - shiftT(132); // 'exit' - break; - case 133: // 'external' - shiftT(133); // 'external' - break; - case 141: // 'ft-option' - shiftT(141); // 'ft-option' - break; - case 154: // 'in' - shiftT(154); // 'in' - break; - case 155: // 'index' - shiftT(155); // 'index' - break; - case 161: // 'integrity' - shiftT(161); // 'integrity' - break; - case 171: // 'lax' - shiftT(171); // 'lax' - break; - case 192: // 'nodes' - shiftT(192); // 'nodes' - break; - case 199: // 'option' - shiftT(199); // 'option' - break; - case 203: // 'ordering' - shiftT(203); // 'ordering' - break; - case 222: // 'revalidation' - shiftT(222); // 'revalidation' - break; - case 225: // 'schema' - shiftT(225); // 'schema' - break; - case 228: // 'score' - shiftT(228); // 'score' - break; - case 234: // 'sliding' - shiftT(234); // 'sliding' - break; - case 240: // 'strict' - shiftT(240); // 'strict' - break; - case 251: // 'tumbling' - shiftT(251); // 'tumbling' - break; - case 252: // 'type' - shiftT(252); // 'type' - break; - case 257: // 'updating' - shiftT(257); // 'updating' - break; - case 261: // 'value' - shiftT(261); // 'value' - break; - case 262: // 'variable' - shiftT(262); // 'variable' - break; - case 263: // 'version' - shiftT(263); // 'version' - break; - case 267: // 'while' - shiftT(267); // 'while' - break; - case 97: // 'constraint' - shiftT(97); // 'constraint' - break; - case 176: // 'loop' - shiftT(176); // 'loop' - break; - case 221: // 'returning' - shiftT(221); // 'returning' - break; - case 194: // 'object' - shiftT(194); // 'object' - break; - case 167: // 'json-item' - shiftT(167); // 'json-item' - break; - default: - shiftT(78); // 'array' - } - } - - function parse_NCName() - { - eventHandler.startNonterminal("NCName", e0); - switch (l1) - { - case 19: // NCName^Token - shift(19); // NCName^Token - break; - case 70: // 'after' - shift(70); // 'after' - break; - case 75: // 'and' - shift(75); // 'and' - break; - case 79: // 'as' - shift(79); // 'as' - break; - case 80: // 'ascending' - shift(80); // 'ascending' - break; - case 84: // 'before' - shift(84); // 'before' - break; - case 88: // 'case' - shift(88); // 'case' - break; - case 89: // 'cast' - shift(89); // 'cast' - break; - case 90: // 'castable' - shift(90); // 'castable' - break; - case 94: // 'collation' - shift(94); // 'collation' - break; - case 105: // 'count' - shift(105); // 'count' - break; - case 109: // 'default' - shift(109); // 'default' - break; - case 113: // 'descending' - shift(113); // 'descending' - break; - case 118: // 'div' - shift(118); // 'div' - break; - case 122: // 'else' - shift(122); // 'else' - break; - case 123: // 'empty' - shift(123); // 'empty' - break; - case 126: // 'end' - shift(126); // 'end' - break; - case 128: // 'eq' - shift(128); // 'eq' - break; - case 131: // 'except' - shift(131); // 'except' - break; - case 137: // 'for' - shift(137); // 'for' - break; - case 146: // 'ge' - shift(146); // 'ge' - break; - case 148: // 'group' - shift(148); // 'group' - break; - case 150: // 'gt' - shift(150); // 'gt' - break; - case 151: // 'idiv' - shift(151); // 'idiv' - break; - case 160: // 'instance' - shift(160); // 'instance' - break; - case 162: // 'intersect' - shift(162); // 'intersect' - break; - case 163: // 'into' - shift(163); // 'into' - break; - case 164: // 'is' - shift(164); // 'is' - break; - case 172: // 'le' - shift(172); // 'le' - break; - case 174: // 'let' - shift(174); // 'let' - break; - case 178: // 'lt' - shift(178); // 'lt' - break; - case 180: // 'mod' - shift(180); // 'mod' - break; - case 181: // 'modify' - shift(181); // 'modify' - break; - case 186: // 'ne' - shift(186); // 'ne' - break; - case 198: // 'only' - shift(198); // 'only' - break; - case 200: // 'or' - shift(200); // 'or' - break; - case 201: // 'order' - shift(201); // 'order' - break; - case 220: // 'return' - shift(220); // 'return' - break; - case 224: // 'satisfies' - shift(224); // 'satisfies' - break; - case 236: // 'stable' - shift(236); // 'stable' - break; - case 237: // 'start' - shift(237); // 'start' - break; - case 248: // 'to' - shift(248); // 'to' - break; - case 249: // 'treat' - shift(249); // 'treat' - break; - case 254: // 'union' - shift(254); // 'union' - break; - case 266: // 'where' - shift(266); // 'where' - break; - case 270: // 'with' - shift(270); // 'with' - break; - case 73: // 'ancestor' - shift(73); // 'ancestor' - break; - case 74: // 'ancestor-or-self' - shift(74); // 'ancestor-or-self' - break; - case 82: // 'attribute' - shift(82); // 'attribute' - break; - case 93: // 'child' - shift(93); // 'child' - break; - case 96: // 'comment' - shift(96); // 'comment' - break; - case 103: // 'copy' - shift(103); // 'copy' - break; - case 108: // 'declare' - shift(108); // 'declare' - break; - case 110: // 'delete' - shift(110); // 'delete' - break; - case 111: // 'descendant' - shift(111); // 'descendant' - break; - case 112: // 'descendant-or-self' - shift(112); // 'descendant-or-self' - break; - case 119: // 'document' - shift(119); // 'document' - break; - case 120: // 'document-node' - shift(120); // 'document-node' - break; - case 121: // 'element' - shift(121); // 'element' - break; - case 124: // 'empty-sequence' - shift(124); // 'empty-sequence' - break; - case 129: // 'every' - shift(129); // 'every' - break; - case 134: // 'first' - shift(134); // 'first' - break; - case 135: // 'following' - shift(135); // 'following' - break; - case 136: // 'following-sibling' - shift(136); // 'following-sibling' - break; - case 145: // 'function' - shift(145); // 'function' - break; - case 152: // 'if' - shift(152); // 'if' - break; - case 153: // 'import' - shift(153); // 'import' - break; - case 159: // 'insert' - shift(159); // 'insert' - break; - case 165: // 'item' - shift(165); // 'item' - break; - case 170: // 'last' - shift(170); // 'last' - break; - case 182: // 'module' - shift(182); // 'module' - break; - case 184: // 'namespace' - shift(184); // 'namespace' - break; - case 185: // 'namespace-node' - shift(185); // 'namespace-node' - break; - case 191: // 'node' - shift(191); // 'node' - break; - case 202: // 'ordered' - shift(202); // 'ordered' - break; - case 206: // 'parent' - shift(206); // 'parent' - break; - case 212: // 'preceding' - shift(212); // 'preceding' - break; - case 213: // 'preceding-sibling' - shift(213); // 'preceding-sibling' - break; - case 216: // 'processing-instruction' - shift(216); // 'processing-instruction' - break; - case 218: // 'rename' - shift(218); // 'rename' - break; - case 219: // 'replace' - shift(219); // 'replace' - break; - case 226: // 'schema-attribute' - shift(226); // 'schema-attribute' - break; - case 227: // 'schema-element' - shift(227); // 'schema-element' - break; - case 229: // 'self' - shift(229); // 'self' - break; - case 235: // 'some' - shift(235); // 'some' - break; - case 243: // 'switch' - shift(243); // 'switch' - break; - case 244: // 'text' - shift(244); // 'text' - break; - case 250: // 'try' - shift(250); // 'try' - break; - case 253: // 'typeswitch' - shift(253); // 'typeswitch' - break; - case 256: // 'unordered' - shift(256); // 'unordered' - break; - case 260: // 'validate' - shift(260); // 'validate' - break; - case 262: // 'variable' - shift(262); // 'variable' - break; - case 274: // 'xquery' - shift(274); // 'xquery' - break; - case 72: // 'allowing' - shift(72); // 'allowing' - break; - case 81: // 'at' - shift(81); // 'at' - break; - case 83: // 'base-uri' - shift(83); // 'base-uri' - break; - case 85: // 'boundary-space' - shift(85); // 'boundary-space' - break; - case 86: // 'break' - shift(86); // 'break' - break; - case 91: // 'catch' - shift(91); // 'catch' - break; - case 98: // 'construction' - shift(98); // 'construction' - break; - case 101: // 'context' - shift(101); // 'context' - break; - case 102: // 'continue' - shift(102); // 'continue' - break; - case 104: // 'copy-namespaces' - shift(104); // 'copy-namespaces' - break; - case 106: // 'decimal-format' - shift(106); // 'decimal-format' - break; - case 125: // 'encoding' - shift(125); // 'encoding' - break; - case 132: // 'exit' - shift(132); // 'exit' - break; - case 133: // 'external' - shift(133); // 'external' - break; - case 141: // 'ft-option' - shift(141); // 'ft-option' - break; - case 154: // 'in' - shift(154); // 'in' - break; - case 155: // 'index' - shift(155); // 'index' - break; - case 161: // 'integrity' - shift(161); // 'integrity' - break; - case 171: // 'lax' - shift(171); // 'lax' - break; - case 192: // 'nodes' - shift(192); // 'nodes' - break; - case 199: // 'option' - shift(199); // 'option' - break; - case 203: // 'ordering' - shift(203); // 'ordering' - break; - case 222: // 'revalidation' - shift(222); // 'revalidation' - break; - case 225: // 'schema' - shift(225); // 'schema' - break; - case 228: // 'score' - shift(228); // 'score' - break; - case 234: // 'sliding' - shift(234); // 'sliding' - break; - case 240: // 'strict' - shift(240); // 'strict' - break; - case 251: // 'tumbling' - shift(251); // 'tumbling' - break; - case 252: // 'type' - shift(252); // 'type' - break; - case 257: // 'updating' - shift(257); // 'updating' - break; - case 261: // 'value' - shift(261); // 'value' - break; - case 263: // 'version' - shift(263); // 'version' - break; - case 267: // 'while' - shift(267); // 'while' - break; - case 97: // 'constraint' - shift(97); // 'constraint' - break; - case 176: // 'loop' - shift(176); // 'loop' - break; - default: - shift(221); // 'returning' - } - eventHandler.endNonterminal("NCName", e0); - } - - function try_NCName() - { - switch (l1) - { - case 19: // NCName^Token - shiftT(19); // NCName^Token - break; - case 70: // 'after' - shiftT(70); // 'after' - break; - case 75: // 'and' - shiftT(75); // 'and' - break; - case 79: // 'as' - shiftT(79); // 'as' - break; - case 80: // 'ascending' - shiftT(80); // 'ascending' - break; - case 84: // 'before' - shiftT(84); // 'before' - break; - case 88: // 'case' - shiftT(88); // 'case' - break; - case 89: // 'cast' - shiftT(89); // 'cast' - break; - case 90: // 'castable' - shiftT(90); // 'castable' - break; - case 94: // 'collation' - shiftT(94); // 'collation' - break; - case 105: // 'count' - shiftT(105); // 'count' - break; - case 109: // 'default' - shiftT(109); // 'default' - break; - case 113: // 'descending' - shiftT(113); // 'descending' - break; - case 118: // 'div' - shiftT(118); // 'div' - break; - case 122: // 'else' - shiftT(122); // 'else' - break; - case 123: // 'empty' - shiftT(123); // 'empty' - break; - case 126: // 'end' - shiftT(126); // 'end' - break; - case 128: // 'eq' - shiftT(128); // 'eq' - break; - case 131: // 'except' - shiftT(131); // 'except' - break; - case 137: // 'for' - shiftT(137); // 'for' - break; - case 146: // 'ge' - shiftT(146); // 'ge' - break; - case 148: // 'group' - shiftT(148); // 'group' - break; - case 150: // 'gt' - shiftT(150); // 'gt' - break; - case 151: // 'idiv' - shiftT(151); // 'idiv' - break; - case 160: // 'instance' - shiftT(160); // 'instance' - break; - case 162: // 'intersect' - shiftT(162); // 'intersect' - break; - case 163: // 'into' - shiftT(163); // 'into' - break; - case 164: // 'is' - shiftT(164); // 'is' - break; - case 172: // 'le' - shiftT(172); // 'le' - break; - case 174: // 'let' - shiftT(174); // 'let' - break; - case 178: // 'lt' - shiftT(178); // 'lt' - break; - case 180: // 'mod' - shiftT(180); // 'mod' - break; - case 181: // 'modify' - shiftT(181); // 'modify' - break; - case 186: // 'ne' - shiftT(186); // 'ne' - break; - case 198: // 'only' - shiftT(198); // 'only' - break; - case 200: // 'or' - shiftT(200); // 'or' - break; - case 201: // 'order' - shiftT(201); // 'order' - break; - case 220: // 'return' - shiftT(220); // 'return' - break; - case 224: // 'satisfies' - shiftT(224); // 'satisfies' - break; - case 236: // 'stable' - shiftT(236); // 'stable' - break; - case 237: // 'start' - shiftT(237); // 'start' - break; - case 248: // 'to' - shiftT(248); // 'to' - break; - case 249: // 'treat' - shiftT(249); // 'treat' - break; - case 254: // 'union' - shiftT(254); // 'union' - break; - case 266: // 'where' - shiftT(266); // 'where' - break; - case 270: // 'with' - shiftT(270); // 'with' - break; - case 73: // 'ancestor' - shiftT(73); // 'ancestor' - break; - case 74: // 'ancestor-or-self' - shiftT(74); // 'ancestor-or-self' - break; - case 82: // 'attribute' - shiftT(82); // 'attribute' - break; - case 93: // 'child' - shiftT(93); // 'child' - break; - case 96: // 'comment' - shiftT(96); // 'comment' - break; - case 103: // 'copy' - shiftT(103); // 'copy' - break; - case 108: // 'declare' - shiftT(108); // 'declare' - break; - case 110: // 'delete' - shiftT(110); // 'delete' - break; - case 111: // 'descendant' - shiftT(111); // 'descendant' - break; - case 112: // 'descendant-or-self' - shiftT(112); // 'descendant-or-self' - break; - case 119: // 'document' - shiftT(119); // 'document' - break; - case 120: // 'document-node' - shiftT(120); // 'document-node' - break; - case 121: // 'element' - shiftT(121); // 'element' - break; - case 124: // 'empty-sequence' - shiftT(124); // 'empty-sequence' - break; - case 129: // 'every' - shiftT(129); // 'every' - break; - case 134: // 'first' - shiftT(134); // 'first' - break; - case 135: // 'following' - shiftT(135); // 'following' - break; - case 136: // 'following-sibling' - shiftT(136); // 'following-sibling' - break; - case 145: // 'function' - shiftT(145); // 'function' - break; - case 152: // 'if' - shiftT(152); // 'if' - break; - case 153: // 'import' - shiftT(153); // 'import' - break; - case 159: // 'insert' - shiftT(159); // 'insert' - break; - case 165: // 'item' - shiftT(165); // 'item' - break; - case 170: // 'last' - shiftT(170); // 'last' - break; - case 182: // 'module' - shiftT(182); // 'module' - break; - case 184: // 'namespace' - shiftT(184); // 'namespace' - break; - case 185: // 'namespace-node' - shiftT(185); // 'namespace-node' - break; - case 191: // 'node' - shiftT(191); // 'node' - break; - case 202: // 'ordered' - shiftT(202); // 'ordered' - break; - case 206: // 'parent' - shiftT(206); // 'parent' - break; - case 212: // 'preceding' - shiftT(212); // 'preceding' - break; - case 213: // 'preceding-sibling' - shiftT(213); // 'preceding-sibling' - break; - case 216: // 'processing-instruction' - shiftT(216); // 'processing-instruction' - break; - case 218: // 'rename' - shiftT(218); // 'rename' - break; - case 219: // 'replace' - shiftT(219); // 'replace' - break; - case 226: // 'schema-attribute' - shiftT(226); // 'schema-attribute' - break; - case 227: // 'schema-element' - shiftT(227); // 'schema-element' - break; - case 229: // 'self' - shiftT(229); // 'self' - break; - case 235: // 'some' - shiftT(235); // 'some' - break; - case 243: // 'switch' - shiftT(243); // 'switch' - break; - case 244: // 'text' - shiftT(244); // 'text' - break; - case 250: // 'try' - shiftT(250); // 'try' - break; - case 253: // 'typeswitch' - shiftT(253); // 'typeswitch' - break; - case 256: // 'unordered' - shiftT(256); // 'unordered' - break; - case 260: // 'validate' - shiftT(260); // 'validate' - break; - case 262: // 'variable' - shiftT(262); // 'variable' - break; - case 274: // 'xquery' - shiftT(274); // 'xquery' - break; - case 72: // 'allowing' - shiftT(72); // 'allowing' - break; - case 81: // 'at' - shiftT(81); // 'at' - break; - case 83: // 'base-uri' - shiftT(83); // 'base-uri' - break; - case 85: // 'boundary-space' - shiftT(85); // 'boundary-space' - break; - case 86: // 'break' - shiftT(86); // 'break' - break; - case 91: // 'catch' - shiftT(91); // 'catch' - break; - case 98: // 'construction' - shiftT(98); // 'construction' - break; - case 101: // 'context' - shiftT(101); // 'context' - break; - case 102: // 'continue' - shiftT(102); // 'continue' - break; - case 104: // 'copy-namespaces' - shiftT(104); // 'copy-namespaces' - break; - case 106: // 'decimal-format' - shiftT(106); // 'decimal-format' - break; - case 125: // 'encoding' - shiftT(125); // 'encoding' - break; - case 132: // 'exit' - shiftT(132); // 'exit' - break; - case 133: // 'external' - shiftT(133); // 'external' - break; - case 141: // 'ft-option' - shiftT(141); // 'ft-option' - break; - case 154: // 'in' - shiftT(154); // 'in' - break; - case 155: // 'index' - shiftT(155); // 'index' - break; - case 161: // 'integrity' - shiftT(161); // 'integrity' - break; - case 171: // 'lax' - shiftT(171); // 'lax' - break; - case 192: // 'nodes' - shiftT(192); // 'nodes' - break; - case 199: // 'option' - shiftT(199); // 'option' - break; - case 203: // 'ordering' - shiftT(203); // 'ordering' - break; - case 222: // 'revalidation' - shiftT(222); // 'revalidation' - break; - case 225: // 'schema' - shiftT(225); // 'schema' - break; - case 228: // 'score' - shiftT(228); // 'score' - break; - case 234: // 'sliding' - shiftT(234); // 'sliding' - break; - case 240: // 'strict' - shiftT(240); // 'strict' - break; - case 251: // 'tumbling' - shiftT(251); // 'tumbling' - break; - case 252: // 'type' - shiftT(252); // 'type' - break; - case 257: // 'updating' - shiftT(257); // 'updating' - break; - case 261: // 'value' - shiftT(261); // 'value' - break; - case 263: // 'version' - shiftT(263); // 'version' - break; - case 267: // 'while' - shiftT(267); // 'while' - break; - case 97: // 'constraint' - shiftT(97); // 'constraint' - break; - case 176: // 'loop' - shiftT(176); // 'loop' - break; - default: - shiftT(221); // 'returning' - } - } - - function parse_MainModule() - { - eventHandler.startNonterminal("MainModule", e0); - parse_Prolog(); - whitespace(); - parse_Program(); - eventHandler.endNonterminal("MainModule", e0); - } - - function parse_Program() - { - eventHandler.startNonterminal("Program", e0); - parse_StatementsAndOptionalExpr(); - eventHandler.endNonterminal("Program", e0); - } - - function parse_Statements() - { - eventHandler.startNonterminal("Statements", e0); - for (;;) - { - lookahead1W(274); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - switch (l1) - { - case 34: // '(' - lookahead2W(269); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - case 35: // '(#' - lookahead2(250); // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' | - break; - case 46: // '/' - lookahead2W(281); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - case 47: // '//' - lookahead2W(263); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - case 54: // '<' - lookahead2(4); // QName - break; - case 55: // '<!--' - lookahead2(1); // DirCommentContents - break; - case 59: // '<?' - lookahead2(3); // PITarget - break; - case 66: // '@' - lookahead2W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - break; - case 68: // '[' - lookahead2W(271); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - case 77: // 'append' - lookahead2W(56); // S^WS | '(:' | 'json' - break; - case 82: // 'attribute' - lookahead2W(278); // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | - break; - case 121: // 'element' - lookahead2W(277); // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | - break; - case 132: // 'exit' - lookahead2W(202); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 137: // 'for' - lookahead2W(206); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | - break; - case 174: // 'let' - lookahead2W(204); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | - break; - case 218: // 'rename' - lookahead2W(205); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 219: // 'replace' - lookahead2W(208); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 260: // 'validate' - lookahead2W(209); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 276: // '{' - lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - case 278: // '{|' - lookahead2W(272); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - case 5: // Wildcard - case 45: // '..' - lookahead2W(186); // S^WS | EOF | '!' | '!=' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' | '<' | - break; - case 31: // '$' - case 32: // '%' - lookahead2W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - break; - case 40: // '+' - case 42: // '-' - lookahead2W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - case 86: // 'break' - case 102: // 'continue' - lookahead2W(200); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 110: // 'delete' - case 159: // 'insert' - lookahead2W(207); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 124: // 'empty-sequence' - case 165: // 'item' - lookahead2W(191); // S^WS | EOF | '!' | '!=' | '#' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' | - break; - case 184: // 'namespace' - case 216: // 'processing-instruction' - lookahead2W(266); // NCName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | - break; - case 103: // 'copy' - case 129: // 'every' - case 235: // 'some' - case 262: // 'variable' - lookahead2W(197); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | - break; - case 8: // IntegerLiteral - case 9: // DecimalLiteral - case 10: // DoubleLiteral - case 11: // StringLiteral - case 44: // '.' - lookahead2W(192); // S^WS | EOF | '!' | '!=' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' | - break; - case 96: // 'comment' - case 119: // 'document' - case 202: // 'ordered' - case 244: // 'text' - case 250: // 'try' - case 256: // 'unordered' - lookahead2W(203); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 73: // 'ancestor' - case 74: // 'ancestor-or-self' - case 93: // 'child' - case 111: // 'descendant' - case 112: // 'descendant-or-self' - case 135: // 'following' - case 136: // 'following-sibling' - case 206: // 'parent' - case 212: // 'preceding' - case 213: // 'preceding-sibling' - case 229: // 'self' - lookahead2W(198); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 6: // EQName^Token - case 70: // 'after' - case 72: // 'allowing' - case 75: // 'and' - case 78: // 'array' - case 79: // 'as' - case 80: // 'ascending' - case 81: // 'at' - case 83: // 'base-uri' - case 84: // 'before' - case 85: // 'boundary-space' - case 88: // 'case' - case 89: // 'cast' - case 90: // 'castable' - case 91: // 'catch' - case 94: // 'collation' - case 97: // 'constraint' - case 98: // 'construction' - case 101: // 'context' - case 104: // 'copy-namespaces' - case 105: // 'count' - case 106: // 'decimal-format' - case 108: // 'declare' - case 109: // 'default' - case 113: // 'descending' - case 118: // 'div' - case 120: // 'document-node' - case 122: // 'else' - case 123: // 'empty' - case 125: // 'encoding' - case 126: // 'end' - case 128: // 'eq' - case 131: // 'except' - case 133: // 'external' - case 134: // 'first' - case 141: // 'ft-option' - case 145: // 'function' - case 146: // 'ge' - case 148: // 'group' - case 150: // 'gt' - case 151: // 'idiv' - case 152: // 'if' - case 153: // 'import' - case 154: // 'in' - case 155: // 'index' - case 160: // 'instance' - case 161: // 'integrity' - case 162: // 'intersect' - case 163: // 'into' - case 164: // 'is' - case 167: // 'json-item' - case 170: // 'last' - case 171: // 'lax' - case 172: // 'le' - case 176: // 'loop' - case 178: // 'lt' - case 180: // 'mod' - case 181: // 'modify' - case 182: // 'module' - case 185: // 'namespace-node' - case 186: // 'ne' - case 191: // 'node' - case 192: // 'nodes' - case 194: // 'object' - case 198: // 'only' - case 199: // 'option' - case 200: // 'or' - case 201: // 'order' - case 203: // 'ordering' - case 220: // 'return' - case 221: // 'returning' - case 222: // 'revalidation' - case 224: // 'satisfies' - case 225: // 'schema' - case 226: // 'schema-attribute' - case 227: // 'schema-element' - case 228: // 'score' - case 234: // 'sliding' - case 236: // 'stable' - case 237: // 'start' - case 240: // 'strict' - case 243: // 'switch' - case 248: // 'to' - case 249: // 'treat' - case 251: // 'tumbling' - case 252: // 'type' - case 253: // 'typeswitch' - case 254: // 'union' - case 257: // 'updating' - case 261: // 'value' - case 263: // 'version' - case 266: // 'where' - case 267: // 'while' - case 270: // 'with' - case 274: // 'xquery' - lookahead2W(195); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - default: - lk = l1; - } - if (lk != 25 // EOF - && lk != 282 // '}' - && lk != 12805 // Wildcard EOF - && lk != 12806 // EQName^Token EOF - && lk != 12808 // IntegerLiteral EOF - && lk != 12809 // DecimalLiteral EOF - && lk != 12810 // DoubleLiteral EOF - && lk != 12811 // StringLiteral EOF - && lk != 12844 // '.' EOF - && lk != 12845 // '..' EOF - && lk != 12846 // '/' EOF - && lk != 12870 // 'after' EOF - && lk != 12872 // 'allowing' EOF - && lk != 12873 // 'ancestor' EOF - && lk != 12874 // 'ancestor-or-self' EOF - && lk != 12875 // 'and' EOF - && lk != 12878 // 'array' EOF - && lk != 12879 // 'as' EOF - && lk != 12880 // 'ascending' EOF - && lk != 12881 // 'at' EOF - && lk != 12882 // 'attribute' EOF - && lk != 12883 // 'base-uri' EOF - && lk != 12884 // 'before' EOF - && lk != 12885 // 'boundary-space' EOF - && lk != 12886 // 'break' EOF - && lk != 12888 // 'case' EOF - && lk != 12889 // 'cast' EOF - && lk != 12890 // 'castable' EOF - && lk != 12891 // 'catch' EOF - && lk != 12893 // 'child' EOF - && lk != 12894 // 'collation' EOF - && lk != 12896 // 'comment' EOF - && lk != 12897 // 'constraint' EOF - && lk != 12898 // 'construction' EOF - && lk != 12901 // 'context' EOF - && lk != 12902 // 'continue' EOF - && lk != 12903 // 'copy' EOF - && lk != 12904 // 'copy-namespaces' EOF - && lk != 12905 // 'count' EOF - && lk != 12906 // 'decimal-format' EOF - && lk != 12908 // 'declare' EOF - && lk != 12909 // 'default' EOF - && lk != 12910 // 'delete' EOF - && lk != 12911 // 'descendant' EOF - && lk != 12912 // 'descendant-or-self' EOF - && lk != 12913 // 'descending' EOF - && lk != 12918 // 'div' EOF - && lk != 12919 // 'document' EOF - && lk != 12920 // 'document-node' EOF - && lk != 12921 // 'element' EOF - && lk != 12922 // 'else' EOF - && lk != 12923 // 'empty' EOF - && lk != 12924 // 'empty-sequence' EOF - && lk != 12925 // 'encoding' EOF - && lk != 12926 // 'end' EOF - && lk != 12928 // 'eq' EOF - && lk != 12929 // 'every' EOF - && lk != 12931 // 'except' EOF - && lk != 12932 // 'exit' EOF - && lk != 12933 // 'external' EOF - && lk != 12934 // 'first' EOF - && lk != 12935 // 'following' EOF - && lk != 12936 // 'following-sibling' EOF - && lk != 12937 // 'for' EOF - && lk != 12941 // 'ft-option' EOF - && lk != 12945 // 'function' EOF - && lk != 12946 // 'ge' EOF - && lk != 12948 // 'group' EOF - && lk != 12950 // 'gt' EOF - && lk != 12951 // 'idiv' EOF - && lk != 12952 // 'if' EOF - && lk != 12953 // 'import' EOF - && lk != 12954 // 'in' EOF - && lk != 12955 // 'index' EOF - && lk != 12959 // 'insert' EOF - && lk != 12960 // 'instance' EOF - && lk != 12961 // 'integrity' EOF - && lk != 12962 // 'intersect' EOF - && lk != 12963 // 'into' EOF - && lk != 12964 // 'is' EOF - && lk != 12965 // 'item' EOF - && lk != 12967 // 'json-item' EOF - && lk != 12970 // 'last' EOF - && lk != 12971 // 'lax' EOF - && lk != 12972 // 'le' EOF - && lk != 12974 // 'let' EOF - && lk != 12976 // 'loop' EOF - && lk != 12978 // 'lt' EOF - && lk != 12980 // 'mod' EOF - && lk != 12981 // 'modify' EOF - && lk != 12982 // 'module' EOF - && lk != 12984 // 'namespace' EOF - && lk != 12985 // 'namespace-node' EOF - && lk != 12986 // 'ne' EOF - && lk != 12991 // 'node' EOF - && lk != 12992 // 'nodes' EOF - && lk != 12994 // 'object' EOF - && lk != 12998 // 'only' EOF - && lk != 12999 // 'option' EOF - && lk != 13000 // 'or' EOF - && lk != 13001 // 'order' EOF - && lk != 13002 // 'ordered' EOF - && lk != 13003 // 'ordering' EOF - && lk != 13006 // 'parent' EOF - && lk != 13012 // 'preceding' EOF - && lk != 13013 // 'preceding-sibling' EOF - && lk != 13016 // 'processing-instruction' EOF - && lk != 13018 // 'rename' EOF - && lk != 13019 // 'replace' EOF - && lk != 13020 // 'return' EOF - && lk != 13021 // 'returning' EOF - && lk != 13022 // 'revalidation' EOF - && lk != 13024 // 'satisfies' EOF - && lk != 13025 // 'schema' EOF - && lk != 13026 // 'schema-attribute' EOF - && lk != 13027 // 'schema-element' EOF - && lk != 13028 // 'score' EOF - && lk != 13029 // 'self' EOF - && lk != 13034 // 'sliding' EOF - && lk != 13035 // 'some' EOF - && lk != 13036 // 'stable' EOF - && lk != 13037 // 'start' EOF - && lk != 13040 // 'strict' EOF - && lk != 13043 // 'switch' EOF - && lk != 13044 // 'text' EOF - && lk != 13048 // 'to' EOF - && lk != 13049 // 'treat' EOF - && lk != 13050 // 'try' EOF - && lk != 13051 // 'tumbling' EOF - && lk != 13052 // 'type' EOF - && lk != 13053 // 'typeswitch' EOF - && lk != 13054 // 'union' EOF - && lk != 13056 // 'unordered' EOF - && lk != 13057 // 'updating' EOF - && lk != 13060 // 'validate' EOF - && lk != 13061 // 'value' EOF - && lk != 13062 // 'variable' EOF - && lk != 13063 // 'version' EOF - && lk != 13066 // 'where' EOF - && lk != 13067 // 'while' EOF - && lk != 13070 // 'with' EOF - && lk != 13074 // 'xquery' EOF - && lk != 16134 // 'variable' '$' - && lk != 20997 // Wildcard ',' - && lk != 20998 // EQName^Token ',' - && lk != 21000 // IntegerLiteral ',' - && lk != 21001 // DecimalLiteral ',' - && lk != 21002 // DoubleLiteral ',' - && lk != 21003 // StringLiteral ',' - && lk != 21036 // '.' ',' - && lk != 21037 // '..' ',' - && lk != 21038 // '/' ',' - && lk != 21062 // 'after' ',' - && lk != 21064 // 'allowing' ',' - && lk != 21065 // 'ancestor' ',' - && lk != 21066 // 'ancestor-or-self' ',' - && lk != 21067 // 'and' ',' - && lk != 21070 // 'array' ',' - && lk != 21071 // 'as' ',' - && lk != 21072 // 'ascending' ',' - && lk != 21073 // 'at' ',' - && lk != 21074 // 'attribute' ',' - && lk != 21075 // 'base-uri' ',' - && lk != 21076 // 'before' ',' - && lk != 21077 // 'boundary-space' ',' - && lk != 21078 // 'break' ',' - && lk != 21080 // 'case' ',' - && lk != 21081 // 'cast' ',' - && lk != 21082 // 'castable' ',' - && lk != 21083 // 'catch' ',' - && lk != 21085 // 'child' ',' - && lk != 21086 // 'collation' ',' - && lk != 21088 // 'comment' ',' - && lk != 21089 // 'constraint' ',' - && lk != 21090 // 'construction' ',' - && lk != 21093 // 'context' ',' - && lk != 21094 // 'continue' ',' - && lk != 21095 // 'copy' ',' - && lk != 21096 // 'copy-namespaces' ',' - && lk != 21097 // 'count' ',' - && lk != 21098 // 'decimal-format' ',' - && lk != 21100 // 'declare' ',' - && lk != 21101 // 'default' ',' - && lk != 21102 // 'delete' ',' - && lk != 21103 // 'descendant' ',' - && lk != 21104 // 'descendant-or-self' ',' - && lk != 21105 // 'descending' ',' - && lk != 21110 // 'div' ',' - && lk != 21111 // 'document' ',' - && lk != 21112 // 'document-node' ',' - && lk != 21113 // 'element' ',' - && lk != 21114 // 'else' ',' - && lk != 21115 // 'empty' ',' - && lk != 21116 // 'empty-sequence' ',' - && lk != 21117 // 'encoding' ',' - && lk != 21118 // 'end' ',' - && lk != 21120 // 'eq' ',' - && lk != 21121 // 'every' ',' - && lk != 21123 // 'except' ',' - && lk != 21124 // 'exit' ',' - && lk != 21125 // 'external' ',' - && lk != 21126 // 'first' ',' - && lk != 21127 // 'following' ',' - && lk != 21128 // 'following-sibling' ',' - && lk != 21129 // 'for' ',' - && lk != 21133 // 'ft-option' ',' - && lk != 21137 // 'function' ',' - && lk != 21138 // 'ge' ',' - && lk != 21140 // 'group' ',' - && lk != 21142 // 'gt' ',' - && lk != 21143 // 'idiv' ',' - && lk != 21144 // 'if' ',' - && lk != 21145 // 'import' ',' - && lk != 21146 // 'in' ',' - && lk != 21147 // 'index' ',' - && lk != 21151 // 'insert' ',' - && lk != 21152 // 'instance' ',' - && lk != 21153 // 'integrity' ',' - && lk != 21154 // 'intersect' ',' - && lk != 21155 // 'into' ',' - && lk != 21156 // 'is' ',' - && lk != 21157 // 'item' ',' - && lk != 21159 // 'json-item' ',' - && lk != 21162 // 'last' ',' - && lk != 21163 // 'lax' ',' - && lk != 21164 // 'le' ',' - && lk != 21166 // 'let' ',' - && lk != 21168 // 'loop' ',' - && lk != 21170 // 'lt' ',' - && lk != 21172 // 'mod' ',' - && lk != 21173 // 'modify' ',' - && lk != 21174 // 'module' ',' - && lk != 21176 // 'namespace' ',' - && lk != 21177 // 'namespace-node' ',' - && lk != 21178 // 'ne' ',' - && lk != 21183 // 'node' ',' - && lk != 21184 // 'nodes' ',' - && lk != 21186 // 'object' ',' - && lk != 21190 // 'only' ',' - && lk != 21191 // 'option' ',' - && lk != 21192 // 'or' ',' - && lk != 21193 // 'order' ',' - && lk != 21194 // 'ordered' ',' - && lk != 21195 // 'ordering' ',' - && lk != 21198 // 'parent' ',' - && lk != 21204 // 'preceding' ',' - && lk != 21205 // 'preceding-sibling' ',' - && lk != 21208 // 'processing-instruction' ',' - && lk != 21210 // 'rename' ',' - && lk != 21211 // 'replace' ',' - && lk != 21212 // 'return' ',' - && lk != 21213 // 'returning' ',' - && lk != 21214 // 'revalidation' ',' - && lk != 21216 // 'satisfies' ',' - && lk != 21217 // 'schema' ',' - && lk != 21218 // 'schema-attribute' ',' - && lk != 21219 // 'schema-element' ',' - && lk != 21220 // 'score' ',' - && lk != 21221 // 'self' ',' - && lk != 21226 // 'sliding' ',' - && lk != 21227 // 'some' ',' - && lk != 21228 // 'stable' ',' - && lk != 21229 // 'start' ',' - && lk != 21232 // 'strict' ',' - && lk != 21235 // 'switch' ',' - && lk != 21236 // 'text' ',' - && lk != 21240 // 'to' ',' - && lk != 21241 // 'treat' ',' - && lk != 21242 // 'try' ',' - && lk != 21243 // 'tumbling' ',' - && lk != 21244 // 'type' ',' - && lk != 21245 // 'typeswitch' ',' - && lk != 21246 // 'union' ',' - && lk != 21248 // 'unordered' ',' - && lk != 21249 // 'updating' ',' - && lk != 21252 // 'validate' ',' - && lk != 21253 // 'value' ',' - && lk != 21254 // 'variable' ',' - && lk != 21255 // 'version' ',' - && lk != 21258 // 'where' ',' - && lk != 21259 // 'while' ',' - && lk != 21262 // 'with' ',' - && lk != 21266 // 'xquery' ',' - && lk != 27141 // Wildcard ';' - && lk != 27142 // EQName^Token ';' - && lk != 27144 // IntegerLiteral ';' - && lk != 27145 // DecimalLiteral ';' - && lk != 27146 // DoubleLiteral ';' - && lk != 27147 // StringLiteral ';' - && lk != 27180 // '.' ';' - && lk != 27181 // '..' ';' - && lk != 27182 // '/' ';' - && lk != 27206 // 'after' ';' - && lk != 27208 // 'allowing' ';' - && lk != 27209 // 'ancestor' ';' - && lk != 27210 // 'ancestor-or-self' ';' - && lk != 27211 // 'and' ';' - && lk != 27214 // 'array' ';' - && lk != 27215 // 'as' ';' - && lk != 27216 // 'ascending' ';' - && lk != 27217 // 'at' ';' - && lk != 27218 // 'attribute' ';' - && lk != 27219 // 'base-uri' ';' - && lk != 27220 // 'before' ';' - && lk != 27221 // 'boundary-space' ';' - && lk != 27222 // 'break' ';' - && lk != 27224 // 'case' ';' - && lk != 27225 // 'cast' ';' - && lk != 27226 // 'castable' ';' - && lk != 27227 // 'catch' ';' - && lk != 27229 // 'child' ';' - && lk != 27230 // 'collation' ';' - && lk != 27232 // 'comment' ';' - && lk != 27233 // 'constraint' ';' - && lk != 27234 // 'construction' ';' - && lk != 27237 // 'context' ';' - && lk != 27238 // 'continue' ';' - && lk != 27239 // 'copy' ';' - && lk != 27240 // 'copy-namespaces' ';' - && lk != 27241 // 'count' ';' - && lk != 27242 // 'decimal-format' ';' - && lk != 27244 // 'declare' ';' - && lk != 27245 // 'default' ';' - && lk != 27246 // 'delete' ';' - && lk != 27247 // 'descendant' ';' - && lk != 27248 // 'descendant-or-self' ';' - && lk != 27249 // 'descending' ';' - && lk != 27254 // 'div' ';' - && lk != 27255 // 'document' ';' - && lk != 27256 // 'document-node' ';' - && lk != 27257 // 'element' ';' - && lk != 27258 // 'else' ';' - && lk != 27259 // 'empty' ';' - && lk != 27260 // 'empty-sequence' ';' - && lk != 27261 // 'encoding' ';' - && lk != 27262 // 'end' ';' - && lk != 27264 // 'eq' ';' - && lk != 27265 // 'every' ';' - && lk != 27267 // 'except' ';' - && lk != 27268 // 'exit' ';' - && lk != 27269 // 'external' ';' - && lk != 27270 // 'first' ';' - && lk != 27271 // 'following' ';' - && lk != 27272 // 'following-sibling' ';' - && lk != 27273 // 'for' ';' - && lk != 27277 // 'ft-option' ';' - && lk != 27281 // 'function' ';' - && lk != 27282 // 'ge' ';' - && lk != 27284 // 'group' ';' - && lk != 27286 // 'gt' ';' - && lk != 27287 // 'idiv' ';' - && lk != 27288 // 'if' ';' - && lk != 27289 // 'import' ';' - && lk != 27290 // 'in' ';' - && lk != 27291 // 'index' ';' - && lk != 27295 // 'insert' ';' - && lk != 27296 // 'instance' ';' - && lk != 27297 // 'integrity' ';' - && lk != 27298 // 'intersect' ';' - && lk != 27299 // 'into' ';' - && lk != 27300 // 'is' ';' - && lk != 27301 // 'item' ';' - && lk != 27303 // 'json-item' ';' - && lk != 27306 // 'last' ';' - && lk != 27307 // 'lax' ';' - && lk != 27308 // 'le' ';' - && lk != 27310 // 'let' ';' - && lk != 27312 // 'loop' ';' - && lk != 27314 // 'lt' ';' - && lk != 27316 // 'mod' ';' - && lk != 27317 // 'modify' ';' - && lk != 27318 // 'module' ';' - && lk != 27320 // 'namespace' ';' - && lk != 27321 // 'namespace-node' ';' - && lk != 27322 // 'ne' ';' - && lk != 27327 // 'node' ';' - && lk != 27328 // 'nodes' ';' - && lk != 27330 // 'object' ';' - && lk != 27334 // 'only' ';' - && lk != 27335 // 'option' ';' - && lk != 27336 // 'or' ';' - && lk != 27337 // 'order' ';' - && lk != 27338 // 'ordered' ';' - && lk != 27339 // 'ordering' ';' - && lk != 27342 // 'parent' ';' - && lk != 27348 // 'preceding' ';' - && lk != 27349 // 'preceding-sibling' ';' - && lk != 27352 // 'processing-instruction' ';' - && lk != 27354 // 'rename' ';' - && lk != 27355 // 'replace' ';' - && lk != 27356 // 'return' ';' - && lk != 27357 // 'returning' ';' - && lk != 27358 // 'revalidation' ';' - && lk != 27360 // 'satisfies' ';' - && lk != 27361 // 'schema' ';' - && lk != 27362 // 'schema-attribute' ';' - && lk != 27363 // 'schema-element' ';' - && lk != 27364 // 'score' ';' - && lk != 27365 // 'self' ';' - && lk != 27370 // 'sliding' ';' - && lk != 27371 // 'some' ';' - && lk != 27372 // 'stable' ';' - && lk != 27373 // 'start' ';' - && lk != 27376 // 'strict' ';' - && lk != 27379 // 'switch' ';' - && lk != 27380 // 'text' ';' - && lk != 27384 // 'to' ';' - && lk != 27385 // 'treat' ';' - && lk != 27386 // 'try' ';' - && lk != 27387 // 'tumbling' ';' - && lk != 27388 // 'type' ';' - && lk != 27389 // 'typeswitch' ';' - && lk != 27390 // 'union' ';' - && lk != 27392 // 'unordered' ';' - && lk != 27393 // 'updating' ';' - && lk != 27396 // 'validate' ';' - && lk != 27397 // 'value' ';' - && lk != 27398 // 'variable' ';' - && lk != 27399 // 'version' ';' - && lk != 27402 // 'where' ';' - && lk != 27403 // 'while' ';' - && lk != 27406 // 'with' ';' - && lk != 27410 // 'xquery' ';' - && lk != 90198 // 'break' 'loop' - && lk != 90214 // 'continue' 'loop' - && lk != 113284 // 'exit' 'returning' - && lk != 144389 // Wildcard '}' - && lk != 144390 // EQName^Token '}' - && lk != 144392 // IntegerLiteral '}' - && lk != 144393 // DecimalLiteral '}' - && lk != 144394 // DoubleLiteral '}' - && lk != 144395 // StringLiteral '}' - && lk != 144428 // '.' '}' - && lk != 144429 // '..' '}' - && lk != 144430 // '/' '}' - && lk != 144454 // 'after' '}' - && lk != 144456 // 'allowing' '}' - && lk != 144457 // 'ancestor' '}' - && lk != 144458 // 'ancestor-or-self' '}' - && lk != 144459 // 'and' '}' - && lk != 144462 // 'array' '}' - && lk != 144463 // 'as' '}' - && lk != 144464 // 'ascending' '}' - && lk != 144465 // 'at' '}' - && lk != 144466 // 'attribute' '}' - && lk != 144467 // 'base-uri' '}' - && lk != 144468 // 'before' '}' - && lk != 144469 // 'boundary-space' '}' - && lk != 144470 // 'break' '}' - && lk != 144472 // 'case' '}' - && lk != 144473 // 'cast' '}' - && lk != 144474 // 'castable' '}' - && lk != 144475 // 'catch' '}' - && lk != 144477 // 'child' '}' - && lk != 144478 // 'collation' '}' - && lk != 144480 // 'comment' '}' - && lk != 144481 // 'constraint' '}' - && lk != 144482 // 'construction' '}' - && lk != 144485 // 'context' '}' - && lk != 144486 // 'continue' '}' - && lk != 144487 // 'copy' '}' - && lk != 144488 // 'copy-namespaces' '}' - && lk != 144489 // 'count' '}' - && lk != 144490 // 'decimal-format' '}' - && lk != 144492 // 'declare' '}' - && lk != 144493 // 'default' '}' - && lk != 144494 // 'delete' '}' - && lk != 144495 // 'descendant' '}' - && lk != 144496 // 'descendant-or-self' '}' - && lk != 144497 // 'descending' '}' - && lk != 144502 // 'div' '}' - && lk != 144503 // 'document' '}' - && lk != 144504 // 'document-node' '}' - && lk != 144505 // 'element' '}' - && lk != 144506 // 'else' '}' - && lk != 144507 // 'empty' '}' - && lk != 144508 // 'empty-sequence' '}' - && lk != 144509 // 'encoding' '}' - && lk != 144510 // 'end' '}' - && lk != 144512 // 'eq' '}' - && lk != 144513 // 'every' '}' - && lk != 144515 // 'except' '}' - && lk != 144516 // 'exit' '}' - && lk != 144517 // 'external' '}' - && lk != 144518 // 'first' '}' - && lk != 144519 // 'following' '}' - && lk != 144520 // 'following-sibling' '}' - && lk != 144521 // 'for' '}' - && lk != 144525 // 'ft-option' '}' - && lk != 144529 // 'function' '}' - && lk != 144530 // 'ge' '}' - && lk != 144532 // 'group' '}' - && lk != 144534 // 'gt' '}' - && lk != 144535 // 'idiv' '}' - && lk != 144536 // 'if' '}' - && lk != 144537 // 'import' '}' - && lk != 144538 // 'in' '}' - && lk != 144539 // 'index' '}' - && lk != 144543 // 'insert' '}' - && lk != 144544 // 'instance' '}' - && lk != 144545 // 'integrity' '}' - && lk != 144546 // 'intersect' '}' - && lk != 144547 // 'into' '}' - && lk != 144548 // 'is' '}' - && lk != 144549 // 'item' '}' - && lk != 144551 // 'json-item' '}' - && lk != 144554 // 'last' '}' - && lk != 144555 // 'lax' '}' - && lk != 144556 // 'le' '}' - && lk != 144558 // 'let' '}' - && lk != 144560 // 'loop' '}' - && lk != 144562 // 'lt' '}' - && lk != 144564 // 'mod' '}' - && lk != 144565 // 'modify' '}' - && lk != 144566 // 'module' '}' - && lk != 144568 // 'namespace' '}' - && lk != 144569 // 'namespace-node' '}' - && lk != 144570 // 'ne' '}' - && lk != 144575 // 'node' '}' - && lk != 144576 // 'nodes' '}' - && lk != 144578 // 'object' '}' - && lk != 144582 // 'only' '}' - && lk != 144583 // 'option' '}' - && lk != 144584 // 'or' '}' - && lk != 144585 // 'order' '}' - && lk != 144586 // 'ordered' '}' - && lk != 144587 // 'ordering' '}' - && lk != 144590 // 'parent' '}' - && lk != 144596 // 'preceding' '}' - && lk != 144597 // 'preceding-sibling' '}' - && lk != 144600 // 'processing-instruction' '}' - && lk != 144602 // 'rename' '}' - && lk != 144603 // 'replace' '}' - && lk != 144604 // 'return' '}' - && lk != 144605 // 'returning' '}' - && lk != 144606 // 'revalidation' '}' - && lk != 144608 // 'satisfies' '}' - && lk != 144609 // 'schema' '}' - && lk != 144610 // 'schema-attribute' '}' - && lk != 144611 // 'schema-element' '}' - && lk != 144612 // 'score' '}' - && lk != 144613 // 'self' '}' - && lk != 144618 // 'sliding' '}' - && lk != 144619 // 'some' '}' - && lk != 144620 // 'stable' '}' - && lk != 144621 // 'start' '}' - && lk != 144624 // 'strict' '}' - && lk != 144627 // 'switch' '}' - && lk != 144628 // 'text' '}' - && lk != 144632 // 'to' '}' - && lk != 144633 // 'treat' '}' - && lk != 144634 // 'try' '}' - && lk != 144635 // 'tumbling' '}' - && lk != 144636 // 'type' '}' - && lk != 144637 // 'typeswitch' '}' - && lk != 144638 // 'union' '}' - && lk != 144640 // 'unordered' '}' - && lk != 144641 // 'updating' '}' - && lk != 144644 // 'validate' '}' - && lk != 144645 // 'value' '}' - && lk != 144646 // 'variable' '}' - && lk != 144647 // 'version' '}' - && lk != 144650 // 'where' '}' - && lk != 144651 // 'while' '}' - && lk != 144654 // 'with' '}' - && lk != 144658) // 'xquery' '}' - { - lk = memoized(6, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - try_Statement(); - lk = -1; - } - catch (p1A) - { - lk = -2; - } - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(6, e0, lk); - } - } - if (lk != -1 - && lk != 16134 // 'variable' '$' - && lk != 27141 // Wildcard ';' - && lk != 27142 // EQName^Token ';' - && lk != 27144 // IntegerLiteral ';' - && lk != 27145 // DecimalLiteral ';' - && lk != 27146 // DoubleLiteral ';' - && lk != 27147 // StringLiteral ';' - && lk != 27180 // '.' ';' - && lk != 27181 // '..' ';' - && lk != 27182 // '/' ';' - && lk != 27206 // 'after' ';' - && lk != 27208 // 'allowing' ';' - && lk != 27209 // 'ancestor' ';' - && lk != 27210 // 'ancestor-or-self' ';' - && lk != 27211 // 'and' ';' - && lk != 27214 // 'array' ';' - && lk != 27215 // 'as' ';' - && lk != 27216 // 'ascending' ';' - && lk != 27217 // 'at' ';' - && lk != 27218 // 'attribute' ';' - && lk != 27219 // 'base-uri' ';' - && lk != 27220 // 'before' ';' - && lk != 27221 // 'boundary-space' ';' - && lk != 27222 // 'break' ';' - && lk != 27224 // 'case' ';' - && lk != 27225 // 'cast' ';' - && lk != 27226 // 'castable' ';' - && lk != 27227 // 'catch' ';' - && lk != 27229 // 'child' ';' - && lk != 27230 // 'collation' ';' - && lk != 27232 // 'comment' ';' - && lk != 27233 // 'constraint' ';' - && lk != 27234 // 'construction' ';' - && lk != 27237 // 'context' ';' - && lk != 27238 // 'continue' ';' - && lk != 27239 // 'copy' ';' - && lk != 27240 // 'copy-namespaces' ';' - && lk != 27241 // 'count' ';' - && lk != 27242 // 'decimal-format' ';' - && lk != 27244 // 'declare' ';' - && lk != 27245 // 'default' ';' - && lk != 27246 // 'delete' ';' - && lk != 27247 // 'descendant' ';' - && lk != 27248 // 'descendant-or-self' ';' - && lk != 27249 // 'descending' ';' - && lk != 27254 // 'div' ';' - && lk != 27255 // 'document' ';' - && lk != 27256 // 'document-node' ';' - && lk != 27257 // 'element' ';' - && lk != 27258 // 'else' ';' - && lk != 27259 // 'empty' ';' - && lk != 27260 // 'empty-sequence' ';' - && lk != 27261 // 'encoding' ';' - && lk != 27262 // 'end' ';' - && lk != 27264 // 'eq' ';' - && lk != 27265 // 'every' ';' - && lk != 27267 // 'except' ';' - && lk != 27268 // 'exit' ';' - && lk != 27269 // 'external' ';' - && lk != 27270 // 'first' ';' - && lk != 27271 // 'following' ';' - && lk != 27272 // 'following-sibling' ';' - && lk != 27273 // 'for' ';' - && lk != 27277 // 'ft-option' ';' - && lk != 27281 // 'function' ';' - && lk != 27282 // 'ge' ';' - && lk != 27284 // 'group' ';' - && lk != 27286 // 'gt' ';' - && lk != 27287 // 'idiv' ';' - && lk != 27288 // 'if' ';' - && lk != 27289 // 'import' ';' - && lk != 27290 // 'in' ';' - && lk != 27291 // 'index' ';' - && lk != 27295 // 'insert' ';' - && lk != 27296 // 'instance' ';' - && lk != 27297 // 'integrity' ';' - && lk != 27298 // 'intersect' ';' - && lk != 27299 // 'into' ';' - && lk != 27300 // 'is' ';' - && lk != 27301 // 'item' ';' - && lk != 27303 // 'json-item' ';' - && lk != 27306 // 'last' ';' - && lk != 27307 // 'lax' ';' - && lk != 27308 // 'le' ';' - && lk != 27310 // 'let' ';' - && lk != 27312 // 'loop' ';' - && lk != 27314 // 'lt' ';' - && lk != 27316 // 'mod' ';' - && lk != 27317 // 'modify' ';' - && lk != 27318 // 'module' ';' - && lk != 27320 // 'namespace' ';' - && lk != 27321 // 'namespace-node' ';' - && lk != 27322 // 'ne' ';' - && lk != 27327 // 'node' ';' - && lk != 27328 // 'nodes' ';' - && lk != 27330 // 'object' ';' - && lk != 27334 // 'only' ';' - && lk != 27335 // 'option' ';' - && lk != 27336 // 'or' ';' - && lk != 27337 // 'order' ';' - && lk != 27338 // 'ordered' ';' - && lk != 27339 // 'ordering' ';' - && lk != 27342 // 'parent' ';' - && lk != 27348 // 'preceding' ';' - && lk != 27349 // 'preceding-sibling' ';' - && lk != 27352 // 'processing-instruction' ';' - && lk != 27354 // 'rename' ';' - && lk != 27355 // 'replace' ';' - && lk != 27356 // 'return' ';' - && lk != 27357 // 'returning' ';' - && lk != 27358 // 'revalidation' ';' - && lk != 27360 // 'satisfies' ';' - && lk != 27361 // 'schema' ';' - && lk != 27362 // 'schema-attribute' ';' - && lk != 27363 // 'schema-element' ';' - && lk != 27364 // 'score' ';' - && lk != 27365 // 'self' ';' - && lk != 27370 // 'sliding' ';' - && lk != 27371 // 'some' ';' - && lk != 27372 // 'stable' ';' - && lk != 27373 // 'start' ';' - && lk != 27376 // 'strict' ';' - && lk != 27379 // 'switch' ';' - && lk != 27380 // 'text' ';' - && lk != 27384 // 'to' ';' - && lk != 27385 // 'treat' ';' - && lk != 27386 // 'try' ';' - && lk != 27387 // 'tumbling' ';' - && lk != 27388 // 'type' ';' - && lk != 27389 // 'typeswitch' ';' - && lk != 27390 // 'union' ';' - && lk != 27392 // 'unordered' ';' - && lk != 27393 // 'updating' ';' - && lk != 27396 // 'validate' ';' - && lk != 27397 // 'value' ';' - && lk != 27398 // 'variable' ';' - && lk != 27399 // 'version' ';' - && lk != 27402 // 'where' ';' - && lk != 27403 // 'while' ';' - && lk != 27406 // 'with' ';' - && lk != 27410 // 'xquery' ';' - && lk != 90198 // 'break' 'loop' - && lk != 90214 // 'continue' 'loop' - && lk != 113284) // 'exit' 'returning' - { - break; - } - whitespace(); - parse_Statement(); - } - eventHandler.endNonterminal("Statements", e0); - } - - function try_Statements() - { - for (;;) - { - lookahead1W(274); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - switch (l1) - { - case 34: // '(' - lookahead2W(269); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - case 35: // '(#' - lookahead2(250); // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' | - break; - case 46: // '/' - lookahead2W(281); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - case 47: // '//' - lookahead2W(263); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - case 54: // '<' - lookahead2(4); // QName - break; - case 55: // '<!--' - lookahead2(1); // DirCommentContents - break; - case 59: // '<?' - lookahead2(3); // PITarget - break; - case 66: // '@' - lookahead2W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - break; - case 68: // '[' - lookahead2W(271); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - case 77: // 'append' - lookahead2W(56); // S^WS | '(:' | 'json' - break; - case 82: // 'attribute' - lookahead2W(278); // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | - break; - case 121: // 'element' - lookahead2W(277); // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | - break; - case 132: // 'exit' - lookahead2W(202); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 137: // 'for' - lookahead2W(206); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | - break; - case 174: // 'let' - lookahead2W(204); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | - break; - case 218: // 'rename' - lookahead2W(205); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 219: // 'replace' - lookahead2W(208); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 260: // 'validate' - lookahead2W(209); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 276: // '{' - lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - case 278: // '{|' - lookahead2W(272); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - case 5: // Wildcard - case 45: // '..' - lookahead2W(186); // S^WS | EOF | '!' | '!=' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' | '<' | - break; - case 31: // '$' - case 32: // '%' - lookahead2W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - break; - case 40: // '+' - case 42: // '-' - lookahead2W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - case 86: // 'break' - case 102: // 'continue' - lookahead2W(200); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 110: // 'delete' - case 159: // 'insert' - lookahead2W(207); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 124: // 'empty-sequence' - case 165: // 'item' - lookahead2W(191); // S^WS | EOF | '!' | '!=' | '#' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' | - break; - case 184: // 'namespace' - case 216: // 'processing-instruction' - lookahead2W(266); // NCName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | - break; - case 103: // 'copy' - case 129: // 'every' - case 235: // 'some' - case 262: // 'variable' - lookahead2W(197); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | - break; - case 8: // IntegerLiteral - case 9: // DecimalLiteral - case 10: // DoubleLiteral - case 11: // StringLiteral - case 44: // '.' - lookahead2W(192); // S^WS | EOF | '!' | '!=' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' | - break; - case 96: // 'comment' - case 119: // 'document' - case 202: // 'ordered' - case 244: // 'text' - case 250: // 'try' - case 256: // 'unordered' - lookahead2W(203); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 73: // 'ancestor' - case 74: // 'ancestor-or-self' - case 93: // 'child' - case 111: // 'descendant' - case 112: // 'descendant-or-self' - case 135: // 'following' - case 136: // 'following-sibling' - case 206: // 'parent' - case 212: // 'preceding' - case 213: // 'preceding-sibling' - case 229: // 'self' - lookahead2W(198); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - case 6: // EQName^Token - case 70: // 'after' - case 72: // 'allowing' - case 75: // 'and' - case 78: // 'array' - case 79: // 'as' - case 80: // 'ascending' - case 81: // 'at' - case 83: // 'base-uri' - case 84: // 'before' - case 85: // 'boundary-space' - case 88: // 'case' - case 89: // 'cast' - case 90: // 'castable' - case 91: // 'catch' - case 94: // 'collation' - case 97: // 'constraint' - case 98: // 'construction' - case 101: // 'context' - case 104: // 'copy-namespaces' - case 105: // 'count' - case 106: // 'decimal-format' - case 108: // 'declare' - case 109: // 'default' - case 113: // 'descending' - case 118: // 'div' - case 120: // 'document-node' - case 122: // 'else' - case 123: // 'empty' - case 125: // 'encoding' - case 126: // 'end' - case 128: // 'eq' - case 131: // 'except' - case 133: // 'external' - case 134: // 'first' - case 141: // 'ft-option' - case 145: // 'function' - case 146: // 'ge' - case 148: // 'group' - case 150: // 'gt' - case 151: // 'idiv' - case 152: // 'if' - case 153: // 'import' - case 154: // 'in' - case 155: // 'index' - case 160: // 'instance' - case 161: // 'integrity' - case 162: // 'intersect' - case 163: // 'into' - case 164: // 'is' - case 167: // 'json-item' - case 170: // 'last' - case 171: // 'lax' - case 172: // 'le' - case 176: // 'loop' - case 178: // 'lt' - case 180: // 'mod' - case 181: // 'modify' - case 182: // 'module' - case 185: // 'namespace-node' - case 186: // 'ne' - case 191: // 'node' - case 192: // 'nodes' - case 194: // 'object' - case 198: // 'only' - case 199: // 'option' - case 200: // 'or' - case 201: // 'order' - case 203: // 'ordering' - case 220: // 'return' - case 221: // 'returning' - case 222: // 'revalidation' - case 224: // 'satisfies' - case 225: // 'schema' - case 226: // 'schema-attribute' - case 227: // 'schema-element' - case 228: // 'score' - case 234: // 'sliding' - case 236: // 'stable' - case 237: // 'start' - case 240: // 'strict' - case 243: // 'switch' - case 248: // 'to' - case 249: // 'treat' - case 251: // 'tumbling' - case 252: // 'type' - case 253: // 'typeswitch' - case 254: // 'union' - case 257: // 'updating' - case 261: // 'value' - case 263: // 'version' - case 266: // 'where' - case 267: // 'while' - case 270: // 'with' - case 274: // 'xquery' - lookahead2W(195); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | - break; - default: - lk = l1; - } - if (lk != 25 // EOF - && lk != 282 // '}' - && lk != 12805 // Wildcard EOF - && lk != 12806 // EQName^Token EOF - && lk != 12808 // IntegerLiteral EOF - && lk != 12809 // DecimalLiteral EOF - && lk != 12810 // DoubleLiteral EOF - && lk != 12811 // StringLiteral EOF - && lk != 12844 // '.' EOF - && lk != 12845 // '..' EOF - && lk != 12846 // '/' EOF - && lk != 12870 // 'after' EOF - && lk != 12872 // 'allowing' EOF - && lk != 12873 // 'ancestor' EOF - && lk != 12874 // 'ancestor-or-self' EOF - && lk != 12875 // 'and' EOF - && lk != 12878 // 'array' EOF - && lk != 12879 // 'as' EOF - && lk != 12880 // 'ascending' EOF - && lk != 12881 // 'at' EOF - && lk != 12882 // 'attribute' EOF - && lk != 12883 // 'base-uri' EOF - && lk != 12884 // 'before' EOF - && lk != 12885 // 'boundary-space' EOF - && lk != 12886 // 'break' EOF - && lk != 12888 // 'case' EOF - && lk != 12889 // 'cast' EOF - && lk != 12890 // 'castable' EOF - && lk != 12891 // 'catch' EOF - && lk != 12893 // 'child' EOF - && lk != 12894 // 'collation' EOF - && lk != 12896 // 'comment' EOF - && lk != 12897 // 'constraint' EOF - && lk != 12898 // 'construction' EOF - && lk != 12901 // 'context' EOF - && lk != 12902 // 'continue' EOF - && lk != 12903 // 'copy' EOF - && lk != 12904 // 'copy-namespaces' EOF - && lk != 12905 // 'count' EOF - && lk != 12906 // 'decimal-format' EOF - && lk != 12908 // 'declare' EOF - && lk != 12909 // 'default' EOF - && lk != 12910 // 'delete' EOF - && lk != 12911 // 'descendant' EOF - && lk != 12912 // 'descendant-or-self' EOF - && lk != 12913 // 'descending' EOF - && lk != 12918 // 'div' EOF - && lk != 12919 // 'document' EOF - && lk != 12920 // 'document-node' EOF - && lk != 12921 // 'element' EOF - && lk != 12922 // 'else' EOF - && lk != 12923 // 'empty' EOF - && lk != 12924 // 'empty-sequence' EOF - && lk != 12925 // 'encoding' EOF - && lk != 12926 // 'end' EOF - && lk != 12928 // 'eq' EOF - && lk != 12929 // 'every' EOF - && lk != 12931 // 'except' EOF - && lk != 12932 // 'exit' EOF - && lk != 12933 // 'external' EOF - && lk != 12934 // 'first' EOF - && lk != 12935 // 'following' EOF - && lk != 12936 // 'following-sibling' EOF - && lk != 12937 // 'for' EOF - && lk != 12941 // 'ft-option' EOF - && lk != 12945 // 'function' EOF - && lk != 12946 // 'ge' EOF - && lk != 12948 // 'group' EOF - && lk != 12950 // 'gt' EOF - && lk != 12951 // 'idiv' EOF - && lk != 12952 // 'if' EOF - && lk != 12953 // 'import' EOF - && lk != 12954 // 'in' EOF - && lk != 12955 // 'index' EOF - && lk != 12959 // 'insert' EOF - && lk != 12960 // 'instance' EOF - && lk != 12961 // 'integrity' EOF - && lk != 12962 // 'intersect' EOF - && lk != 12963 // 'into' EOF - && lk != 12964 // 'is' EOF - && lk != 12965 // 'item' EOF - && lk != 12967 // 'json-item' EOF - && lk != 12970 // 'last' EOF - && lk != 12971 // 'lax' EOF - && lk != 12972 // 'le' EOF - && lk != 12974 // 'let' EOF - && lk != 12976 // 'loop' EOF - && lk != 12978 // 'lt' EOF - && lk != 12980 // 'mod' EOF - && lk != 12981 // 'modify' EOF - && lk != 12982 // 'module' EOF - && lk != 12984 // 'namespace' EOF - && lk != 12985 // 'namespace-node' EOF - && lk != 12986 // 'ne' EOF - && lk != 12991 // 'node' EOF - && lk != 12992 // 'nodes' EOF - && lk != 12994 // 'object' EOF - && lk != 12998 // 'only' EOF - && lk != 12999 // 'option' EOF - && lk != 13000 // 'or' EOF - && lk != 13001 // 'order' EOF - && lk != 13002 // 'ordered' EOF - && lk != 13003 // 'ordering' EOF - && lk != 13006 // 'parent' EOF - && lk != 13012 // 'preceding' EOF - && lk != 13013 // 'preceding-sibling' EOF - && lk != 13016 // 'processing-instruction' EOF - && lk != 13018 // 'rename' EOF - && lk != 13019 // 'replace' EOF - && lk != 13020 // 'return' EOF - && lk != 13021 // 'returning' EOF - && lk != 13022 // 'revalidation' EOF - && lk != 13024 // 'satisfies' EOF - && lk != 13025 // 'schema' EOF - && lk != 13026 // 'schema-attribute' EOF - && lk != 13027 // 'schema-element' EOF - && lk != 13028 // 'score' EOF - && lk != 13029 // 'self' EOF - && lk != 13034 // 'sliding' EOF - && lk != 13035 // 'some' EOF - && lk != 13036 // 'stable' EOF - && lk != 13037 // 'start' EOF - && lk != 13040 // 'strict' EOF - && lk != 13043 // 'switch' EOF - && lk != 13044 // 'text' EOF - && lk != 13048 // 'to' EOF - && lk != 13049 // 'treat' EOF - && lk != 13050 // 'try' EOF - && lk != 13051 // 'tumbling' EOF - && lk != 13052 // 'type' EOF - && lk != 13053 // 'typeswitch' EOF - && lk != 13054 // 'union' EOF - && lk != 13056 // 'unordered' EOF - && lk != 13057 // 'updating' EOF - && lk != 13060 // 'validate' EOF - && lk != 13061 // 'value' EOF - && lk != 13062 // 'variable' EOF - && lk != 13063 // 'version' EOF - && lk != 13066 // 'where' EOF - && lk != 13067 // 'while' EOF - && lk != 13070 // 'with' EOF - && lk != 13074 // 'xquery' EOF - && lk != 16134 // 'variable' '$' - && lk != 20997 // Wildcard ',' - && lk != 20998 // EQName^Token ',' - && lk != 21000 // IntegerLiteral ',' - && lk != 21001 // DecimalLiteral ',' - && lk != 21002 // DoubleLiteral ',' - && lk != 21003 // StringLiteral ',' - && lk != 21036 // '.' ',' - && lk != 21037 // '..' ',' - && lk != 21038 // '/' ',' - && lk != 21062 // 'after' ',' - && lk != 21064 // 'allowing' ',' - && lk != 21065 // 'ancestor' ',' - && lk != 21066 // 'ancestor-or-self' ',' - && lk != 21067 // 'and' ',' - && lk != 21070 // 'array' ',' - && lk != 21071 // 'as' ',' - && lk != 21072 // 'ascending' ',' - && lk != 21073 // 'at' ',' - && lk != 21074 // 'attribute' ',' - && lk != 21075 // 'base-uri' ',' - && lk != 21076 // 'before' ',' - && lk != 21077 // 'boundary-space' ',' - && lk != 21078 // 'break' ',' - && lk != 21080 // 'case' ',' - && lk != 21081 // 'cast' ',' - && lk != 21082 // 'castable' ',' - && lk != 21083 // 'catch' ',' - && lk != 21085 // 'child' ',' - && lk != 21086 // 'collation' ',' - && lk != 21088 // 'comment' ',' - && lk != 21089 // 'constraint' ',' - && lk != 21090 // 'construction' ',' - && lk != 21093 // 'context' ',' - && lk != 21094 // 'continue' ',' - && lk != 21095 // 'copy' ',' - && lk != 21096 // 'copy-namespaces' ',' - && lk != 21097 // 'count' ',' - && lk != 21098 // 'decimal-format' ',' - && lk != 21100 // 'declare' ',' - && lk != 21101 // 'default' ',' - && lk != 21102 // 'delete' ',' - && lk != 21103 // 'descendant' ',' - && lk != 21104 // 'descendant-or-self' ',' - && lk != 21105 // 'descending' ',' - && lk != 21110 // 'div' ',' - && lk != 21111 // 'document' ',' - && lk != 21112 // 'document-node' ',' - && lk != 21113 // 'element' ',' - && lk != 21114 // 'else' ',' - && lk != 21115 // 'empty' ',' - && lk != 21116 // 'empty-sequence' ',' - && lk != 21117 // 'encoding' ',' - && lk != 21118 // 'end' ',' - && lk != 21120 // 'eq' ',' - && lk != 21121 // 'every' ',' - && lk != 21123 // 'except' ',' - && lk != 21124 // 'exit' ',' - && lk != 21125 // 'external' ',' - && lk != 21126 // 'first' ',' - && lk != 21127 // 'following' ',' - && lk != 21128 // 'following-sibling' ',' - && lk != 21129 // 'for' ',' - && lk != 21133 // 'ft-option' ',' - && lk != 21137 // 'function' ',' - && lk != 21138 // 'ge' ',' - && lk != 21140 // 'group' ',' - && lk != 21142 // 'gt' ',' - && lk != 21143 // 'idiv' ',' - && lk != 21144 // 'if' ',' - && lk != 21145 // 'import' ',' - && lk != 21146 // 'in' ',' - && lk != 21147 // 'index' ',' - && lk != 21151 // 'insert' ',' - && lk != 21152 // 'instance' ',' - && lk != 21153 // 'integrity' ',' - && lk != 21154 // 'intersect' ',' - && lk != 21155 // 'into' ',' - && lk != 21156 // 'is' ',' - && lk != 21157 // 'item' ',' - && lk != 21159 // 'json-item' ',' - && lk != 21162 // 'last' ',' - && lk != 21163 // 'lax' ',' - && lk != 21164 // 'le' ',' - && lk != 21166 // 'let' ',' - && lk != 21168 // 'loop' ',' - && lk != 21170 // 'lt' ',' - && lk != 21172 // 'mod' ',' - && lk != 21173 // 'modify' ',' - && lk != 21174 // 'module' ',' - && lk != 21176 // 'namespace' ',' - && lk != 21177 // 'namespace-node' ',' - && lk != 21178 // 'ne' ',' - && lk != 21183 // 'node' ',' - && lk != 21184 // 'nodes' ',' - && lk != 21186 // 'object' ',' - && lk != 21190 // 'only' ',' - && lk != 21191 // 'option' ',' - && lk != 21192 // 'or' ',' - && lk != 21193 // 'order' ',' - && lk != 21194 // 'ordered' ',' - && lk != 21195 // 'ordering' ',' - && lk != 21198 // 'parent' ',' - && lk != 21204 // 'preceding' ',' - && lk != 21205 // 'preceding-sibling' ',' - && lk != 21208 // 'processing-instruction' ',' - && lk != 21210 // 'rename' ',' - && lk != 21211 // 'replace' ',' - && lk != 21212 // 'return' ',' - && lk != 21213 // 'returning' ',' - && lk != 21214 // 'revalidation' ',' - && lk != 21216 // 'satisfies' ',' - && lk != 21217 // 'schema' ',' - && lk != 21218 // 'schema-attribute' ',' - && lk != 21219 // 'schema-element' ',' - && lk != 21220 // 'score' ',' - && lk != 21221 // 'self' ',' - && lk != 21226 // 'sliding' ',' - && lk != 21227 // 'some' ',' - && lk != 21228 // 'stable' ',' - && lk != 21229 // 'start' ',' - && lk != 21232 // 'strict' ',' - && lk != 21235 // 'switch' ',' - && lk != 21236 // 'text' ',' - && lk != 21240 // 'to' ',' - && lk != 21241 // 'treat' ',' - && lk != 21242 // 'try' ',' - && lk != 21243 // 'tumbling' ',' - && lk != 21244 // 'type' ',' - && lk != 21245 // 'typeswitch' ',' - && lk != 21246 // 'union' ',' - && lk != 21248 // 'unordered' ',' - && lk != 21249 // 'updating' ',' - && lk != 21252 // 'validate' ',' - && lk != 21253 // 'value' ',' - && lk != 21254 // 'variable' ',' - && lk != 21255 // 'version' ',' - && lk != 21258 // 'where' ',' - && lk != 21259 // 'while' ',' - && lk != 21262 // 'with' ',' - && lk != 21266 // 'xquery' ',' - && lk != 27141 // Wildcard ';' - && lk != 27142 // EQName^Token ';' - && lk != 27144 // IntegerLiteral ';' - && lk != 27145 // DecimalLiteral ';' - && lk != 27146 // DoubleLiteral ';' - && lk != 27147 // StringLiteral ';' - && lk != 27180 // '.' ';' - && lk != 27181 // '..' ';' - && lk != 27182 // '/' ';' - && lk != 27206 // 'after' ';' - && lk != 27208 // 'allowing' ';' - && lk != 27209 // 'ancestor' ';' - && lk != 27210 // 'ancestor-or-self' ';' - && lk != 27211 // 'and' ';' - && lk != 27214 // 'array' ';' - && lk != 27215 // 'as' ';' - && lk != 27216 // 'ascending' ';' - && lk != 27217 // 'at' ';' - && lk != 27218 // 'attribute' ';' - && lk != 27219 // 'base-uri' ';' - && lk != 27220 // 'before' ';' - && lk != 27221 // 'boundary-space' ';' - && lk != 27222 // 'break' ';' - && lk != 27224 // 'case' ';' - && lk != 27225 // 'cast' ';' - && lk != 27226 // 'castable' ';' - && lk != 27227 // 'catch' ';' - && lk != 27229 // 'child' ';' - && lk != 27230 // 'collation' ';' - && lk != 27232 // 'comment' ';' - && lk != 27233 // 'constraint' ';' - && lk != 27234 // 'construction' ';' - && lk != 27237 // 'context' ';' - && lk != 27238 // 'continue' ';' - && lk != 27239 // 'copy' ';' - && lk != 27240 // 'copy-namespaces' ';' - && lk != 27241 // 'count' ';' - && lk != 27242 // 'decimal-format' ';' - && lk != 27244 // 'declare' ';' - && lk != 27245 // 'default' ';' - && lk != 27246 // 'delete' ';' - && lk != 27247 // 'descendant' ';' - && lk != 27248 // 'descendant-or-self' ';' - && lk != 27249 // 'descending' ';' - && lk != 27254 // 'div' ';' - && lk != 27255 // 'document' ';' - && lk != 27256 // 'document-node' ';' - && lk != 27257 // 'element' ';' - && lk != 27258 // 'else' ';' - && lk != 27259 // 'empty' ';' - && lk != 27260 // 'empty-sequence' ';' - && lk != 27261 // 'encoding' ';' - && lk != 27262 // 'end' ';' - && lk != 27264 // 'eq' ';' - && lk != 27265 // 'every' ';' - && lk != 27267 // 'except' ';' - && lk != 27268 // 'exit' ';' - && lk != 27269 // 'external' ';' - && lk != 27270 // 'first' ';' - && lk != 27271 // 'following' ';' - && lk != 27272 // 'following-sibling' ';' - && lk != 27273 // 'for' ';' - && lk != 27277 // 'ft-option' ';' - && lk != 27281 // 'function' ';' - && lk != 27282 // 'ge' ';' - && lk != 27284 // 'group' ';' - && lk != 27286 // 'gt' ';' - && lk != 27287 // 'idiv' ';' - && lk != 27288 // 'if' ';' - && lk != 27289 // 'import' ';' - && lk != 27290 // 'in' ';' - && lk != 27291 // 'index' ';' - && lk != 27295 // 'insert' ';' - && lk != 27296 // 'instance' ';' - && lk != 27297 // 'integrity' ';' - && lk != 27298 // 'intersect' ';' - && lk != 27299 // 'into' ';' - && lk != 27300 // 'is' ';' - && lk != 27301 // 'item' ';' - && lk != 27303 // 'json-item' ';' - && lk != 27306 // 'last' ';' - && lk != 27307 // 'lax' ';' - && lk != 27308 // 'le' ';' - && lk != 27310 // 'let' ';' - && lk != 27312 // 'loop' ';' - && lk != 27314 // 'lt' ';' - && lk != 27316 // 'mod' ';' - && lk != 27317 // 'modify' ';' - && lk != 27318 // 'module' ';' - && lk != 27320 // 'namespace' ';' - && lk != 27321 // 'namespace-node' ';' - && lk != 27322 // 'ne' ';' - && lk != 27327 // 'node' ';' - && lk != 27328 // 'nodes' ';' - && lk != 27330 // 'object' ';' - && lk != 27334 // 'only' ';' - && lk != 27335 // 'option' ';' - && lk != 27336 // 'or' ';' - && lk != 27337 // 'order' ';' - && lk != 27338 // 'ordered' ';' - && lk != 27339 // 'ordering' ';' - && lk != 27342 // 'parent' ';' - && lk != 27348 // 'preceding' ';' - && lk != 27349 // 'preceding-sibling' ';' - && lk != 27352 // 'processing-instruction' ';' - && lk != 27354 // 'rename' ';' - && lk != 27355 // 'replace' ';' - && lk != 27356 // 'return' ';' - && lk != 27357 // 'returning' ';' - && lk != 27358 // 'revalidation' ';' - && lk != 27360 // 'satisfies' ';' - && lk != 27361 // 'schema' ';' - && lk != 27362 // 'schema-attribute' ';' - && lk != 27363 // 'schema-element' ';' - && lk != 27364 // 'score' ';' - && lk != 27365 // 'self' ';' - && lk != 27370 // 'sliding' ';' - && lk != 27371 // 'some' ';' - && lk != 27372 // 'stable' ';' - && lk != 27373 // 'start' ';' - && lk != 27376 // 'strict' ';' - && lk != 27379 // 'switch' ';' - && lk != 27380 // 'text' ';' - && lk != 27384 // 'to' ';' - && lk != 27385 // 'treat' ';' - && lk != 27386 // 'try' ';' - && lk != 27387 // 'tumbling' ';' - && lk != 27388 // 'type' ';' - && lk != 27389 // 'typeswitch' ';' - && lk != 27390 // 'union' ';' - && lk != 27392 // 'unordered' ';' - && lk != 27393 // 'updating' ';' - && lk != 27396 // 'validate' ';' - && lk != 27397 // 'value' ';' - && lk != 27398 // 'variable' ';' - && lk != 27399 // 'version' ';' - && lk != 27402 // 'where' ';' - && lk != 27403 // 'while' ';' - && lk != 27406 // 'with' ';' - && lk != 27410 // 'xquery' ';' - && lk != 90198 // 'break' 'loop' - && lk != 90214 // 'continue' 'loop' - && lk != 113284 // 'exit' 'returning' - && lk != 144389 // Wildcard '}' - && lk != 144390 // EQName^Token '}' - && lk != 144392 // IntegerLiteral '}' - && lk != 144393 // DecimalLiteral '}' - && lk != 144394 // DoubleLiteral '}' - && lk != 144395 // StringLiteral '}' - && lk != 144428 // '.' '}' - && lk != 144429 // '..' '}' - && lk != 144430 // '/' '}' - && lk != 144454 // 'after' '}' - && lk != 144456 // 'allowing' '}' - && lk != 144457 // 'ancestor' '}' - && lk != 144458 // 'ancestor-or-self' '}' - && lk != 144459 // 'and' '}' - && lk != 144462 // 'array' '}' - && lk != 144463 // 'as' '}' - && lk != 144464 // 'ascending' '}' - && lk != 144465 // 'at' '}' - && lk != 144466 // 'attribute' '}' - && lk != 144467 // 'base-uri' '}' - && lk != 144468 // 'before' '}' - && lk != 144469 // 'boundary-space' '}' - && lk != 144470 // 'break' '}' - && lk != 144472 // 'case' '}' - && lk != 144473 // 'cast' '}' - && lk != 144474 // 'castable' '}' - && lk != 144475 // 'catch' '}' - && lk != 144477 // 'child' '}' - && lk != 144478 // 'collation' '}' - && lk != 144480 // 'comment' '}' - && lk != 144481 // 'constraint' '}' - && lk != 144482 // 'construction' '}' - && lk != 144485 // 'context' '}' - && lk != 144486 // 'continue' '}' - && lk != 144487 // 'copy' '}' - && lk != 144488 // 'copy-namespaces' '}' - && lk != 144489 // 'count' '}' - && lk != 144490 // 'decimal-format' '}' - && lk != 144492 // 'declare' '}' - && lk != 144493 // 'default' '}' - && lk != 144494 // 'delete' '}' - && lk != 144495 // 'descendant' '}' - && lk != 144496 // 'descendant-or-self' '}' - && lk != 144497 // 'descending' '}' - && lk != 144502 // 'div' '}' - && lk != 144503 // 'document' '}' - && lk != 144504 // 'document-node' '}' - && lk != 144505 // 'element' '}' - && lk != 144506 // 'else' '}' - && lk != 144507 // 'empty' '}' - && lk != 144508 // 'empty-sequence' '}' - && lk != 144509 // 'encoding' '}' - && lk != 144510 // 'end' '}' - && lk != 144512 // 'eq' '}' - && lk != 144513 // 'every' '}' - && lk != 144515 // 'except' '}' - && lk != 144516 // 'exit' '}' - && lk != 144517 // 'external' '}' - && lk != 144518 // 'first' '}' - && lk != 144519 // 'following' '}' - && lk != 144520 // 'following-sibling' '}' - && lk != 144521 // 'for' '}' - && lk != 144525 // 'ft-option' '}' - && lk != 144529 // 'function' '}' - && lk != 144530 // 'ge' '}' - && lk != 144532 // 'group' '}' - && lk != 144534 // 'gt' '}' - && lk != 144535 // 'idiv' '}' - && lk != 144536 // 'if' '}' - && lk != 144537 // 'import' '}' - && lk != 144538 // 'in' '}' - && lk != 144539 // 'index' '}' - && lk != 144543 // 'insert' '}' - && lk != 144544 // 'instance' '}' - && lk != 144545 // 'integrity' '}' - && lk != 144546 // 'intersect' '}' - && lk != 144547 // 'into' '}' - && lk != 144548 // 'is' '}' - && lk != 144549 // 'item' '}' - && lk != 144551 // 'json-item' '}' - && lk != 144554 // 'last' '}' - && lk != 144555 // 'lax' '}' - && lk != 144556 // 'le' '}' - && lk != 144558 // 'let' '}' - && lk != 144560 // 'loop' '}' - && lk != 144562 // 'lt' '}' - && lk != 144564 // 'mod' '}' - && lk != 144565 // 'modify' '}' - && lk != 144566 // 'module' '}' - && lk != 144568 // 'namespace' '}' - && lk != 144569 // 'namespace-node' '}' - && lk != 144570 // 'ne' '}' - && lk != 144575 // 'node' '}' - && lk != 144576 // 'nodes' '}' - && lk != 144578 // 'object' '}' - && lk != 144582 // 'only' '}' - && lk != 144583 // 'option' '}' - && lk != 144584 // 'or' '}' - && lk != 144585 // 'order' '}' - && lk != 144586 // 'ordered' '}' - && lk != 144587 // 'ordering' '}' - && lk != 144590 // 'parent' '}' - && lk != 144596 // 'preceding' '}' - && lk != 144597 // 'preceding-sibling' '}' - && lk != 144600 // 'processing-instruction' '}' - && lk != 144602 // 'rename' '}' - && lk != 144603 // 'replace' '}' - && lk != 144604 // 'return' '}' - && lk != 144605 // 'returning' '}' - && lk != 144606 // 'revalidation' '}' - && lk != 144608 // 'satisfies' '}' - && lk != 144609 // 'schema' '}' - && lk != 144610 // 'schema-attribute' '}' - && lk != 144611 // 'schema-element' '}' - && lk != 144612 // 'score' '}' - && lk != 144613 // 'self' '}' - && lk != 144618 // 'sliding' '}' - && lk != 144619 // 'some' '}' - && lk != 144620 // 'stable' '}' - && lk != 144621 // 'start' '}' - && lk != 144624 // 'strict' '}' - && lk != 144627 // 'switch' '}' - && lk != 144628 // 'text' '}' - && lk != 144632 // 'to' '}' - && lk != 144633 // 'treat' '}' - && lk != 144634 // 'try' '}' - && lk != 144635 // 'tumbling' '}' - && lk != 144636 // 'type' '}' - && lk != 144637 // 'typeswitch' '}' - && lk != 144638 // 'union' '}' - && lk != 144640 // 'unordered' '}' - && lk != 144641 // 'updating' '}' - && lk != 144644 // 'validate' '}' - && lk != 144645 // 'value' '}' - && lk != 144646 // 'variable' '}' - && lk != 144647 // 'version' '}' - && lk != 144650 // 'where' '}' - && lk != 144651 // 'while' '}' - && lk != 144654 // 'with' '}' - && lk != 144658) // 'xquery' '}' - { - lk = memoized(6, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - try_Statement(); - memoize(6, e0A, -1); - continue; - } - catch (p1A) - { - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(6, e0A, -2); - break; - } - } - } - if (lk != -1 - && lk != 16134 // 'variable' '$' - && lk != 27141 // Wildcard ';' - && lk != 27142 // EQName^Token ';' - && lk != 27144 // IntegerLiteral ';' - && lk != 27145 // DecimalLiteral ';' - && lk != 27146 // DoubleLiteral ';' - && lk != 27147 // StringLiteral ';' - && lk != 27180 // '.' ';' - && lk != 27181 // '..' ';' - && lk != 27182 // '/' ';' - && lk != 27206 // 'after' ';' - && lk != 27208 // 'allowing' ';' - && lk != 27209 // 'ancestor' ';' - && lk != 27210 // 'ancestor-or-self' ';' - && lk != 27211 // 'and' ';' - && lk != 27214 // 'array' ';' - && lk != 27215 // 'as' ';' - && lk != 27216 // 'ascending' ';' - && lk != 27217 // 'at' ';' - && lk != 27218 // 'attribute' ';' - && lk != 27219 // 'base-uri' ';' - && lk != 27220 // 'before' ';' - && lk != 27221 // 'boundary-space' ';' - && lk != 27222 // 'break' ';' - && lk != 27224 // 'case' ';' - && lk != 27225 // 'cast' ';' - && lk != 27226 // 'castable' ';' - && lk != 27227 // 'catch' ';' - && lk != 27229 // 'child' ';' - && lk != 27230 // 'collation' ';' - && lk != 27232 // 'comment' ';' - && lk != 27233 // 'constraint' ';' - && lk != 27234 // 'construction' ';' - && lk != 27237 // 'context' ';' - && lk != 27238 // 'continue' ';' - && lk != 27239 // 'copy' ';' - && lk != 27240 // 'copy-namespaces' ';' - && lk != 27241 // 'count' ';' - && lk != 27242 // 'decimal-format' ';' - && lk != 27244 // 'declare' ';' - && lk != 27245 // 'default' ';' - && lk != 27246 // 'delete' ';' - && lk != 27247 // 'descendant' ';' - && lk != 27248 // 'descendant-or-self' ';' - && lk != 27249 // 'descending' ';' - && lk != 27254 // 'div' ';' - && lk != 27255 // 'document' ';' - && lk != 27256 // 'document-node' ';' - && lk != 27257 // 'element' ';' - && lk != 27258 // 'else' ';' - && lk != 27259 // 'empty' ';' - && lk != 27260 // 'empty-sequence' ';' - && lk != 27261 // 'encoding' ';' - && lk != 27262 // 'end' ';' - && lk != 27264 // 'eq' ';' - && lk != 27265 // 'every' ';' - && lk != 27267 // 'except' ';' - && lk != 27268 // 'exit' ';' - && lk != 27269 // 'external' ';' - && lk != 27270 // 'first' ';' - && lk != 27271 // 'following' ';' - && lk != 27272 // 'following-sibling' ';' - && lk != 27273 // 'for' ';' - && lk != 27277 // 'ft-option' ';' - && lk != 27281 // 'function' ';' - && lk != 27282 // 'ge' ';' - && lk != 27284 // 'group' ';' - && lk != 27286 // 'gt' ';' - && lk != 27287 // 'idiv' ';' - && lk != 27288 // 'if' ';' - && lk != 27289 // 'import' ';' - && lk != 27290 // 'in' ';' - && lk != 27291 // 'index' ';' - && lk != 27295 // 'insert' ';' - && lk != 27296 // 'instance' ';' - && lk != 27297 // 'integrity' ';' - && lk != 27298 // 'intersect' ';' - && lk != 27299 // 'into' ';' - && lk != 27300 // 'is' ';' - && lk != 27301 // 'item' ';' - && lk != 27303 // 'json-item' ';' - && lk != 27306 // 'last' ';' - && lk != 27307 // 'lax' ';' - && lk != 27308 // 'le' ';' - && lk != 27310 // 'let' ';' - && lk != 27312 // 'loop' ';' - && lk != 27314 // 'lt' ';' - && lk != 27316 // 'mod' ';' - && lk != 27317 // 'modify' ';' - && lk != 27318 // 'module' ';' - && lk != 27320 // 'namespace' ';' - && lk != 27321 // 'namespace-node' ';' - && lk != 27322 // 'ne' ';' - && lk != 27327 // 'node' ';' - && lk != 27328 // 'nodes' ';' - && lk != 27330 // 'object' ';' - && lk != 27334 // 'only' ';' - && lk != 27335 // 'option' ';' - && lk != 27336 // 'or' ';' - && lk != 27337 // 'order' ';' - && lk != 27338 // 'ordered' ';' - && lk != 27339 // 'ordering' ';' - && lk != 27342 // 'parent' ';' - && lk != 27348 // 'preceding' ';' - && lk != 27349 // 'preceding-sibling' ';' - && lk != 27352 // 'processing-instruction' ';' - && lk != 27354 // 'rename' ';' - && lk != 27355 // 'replace' ';' - && lk != 27356 // 'return' ';' - && lk != 27357 // 'returning' ';' - && lk != 27358 // 'revalidation' ';' - && lk != 27360 // 'satisfies' ';' - && lk != 27361 // 'schema' ';' - && lk != 27362 // 'schema-attribute' ';' - && lk != 27363 // 'schema-element' ';' - && lk != 27364 // 'score' ';' - && lk != 27365 // 'self' ';' - && lk != 27370 // 'sliding' ';' - && lk != 27371 // 'some' ';' - && lk != 27372 // 'stable' ';' - && lk != 27373 // 'start' ';' - && lk != 27376 // 'strict' ';' - && lk != 27379 // 'switch' ';' - && lk != 27380 // 'text' ';' - && lk != 27384 // 'to' ';' - && lk != 27385 // 'treat' ';' - && lk != 27386 // 'try' ';' - && lk != 27387 // 'tumbling' ';' - && lk != 27388 // 'type' ';' - && lk != 27389 // 'typeswitch' ';' - && lk != 27390 // 'union' ';' - && lk != 27392 // 'unordered' ';' - && lk != 27393 // 'updating' ';' - && lk != 27396 // 'validate' ';' - && lk != 27397 // 'value' ';' - && lk != 27398 // 'variable' ';' - && lk != 27399 // 'version' ';' - && lk != 27402 // 'where' ';' - && lk != 27403 // 'while' ';' - && lk != 27406 // 'with' ';' - && lk != 27410 // 'xquery' ';' - && lk != 90198 // 'break' 'loop' - && lk != 90214 // 'continue' 'loop' - && lk != 113284) // 'exit' 'returning' - { - break; - } - try_Statement(); - } - } - - function parse_StatementsAndExpr() - { - eventHandler.startNonterminal("StatementsAndExpr", e0); - parse_Statements(); - whitespace(); - parse_Expr(); - eventHandler.endNonterminal("StatementsAndExpr", e0); - } - - function try_StatementsAndExpr() - { - try_Statements(); - try_Expr(); - } - - function parse_StatementsAndOptionalExpr() - { - eventHandler.startNonterminal("StatementsAndOptionalExpr", e0); - parse_Statements(); - if (l1 != 25 // EOF - && l1 != 282) // '}' - { - whitespace(); - parse_Expr(); - } - eventHandler.endNonterminal("StatementsAndOptionalExpr", e0); - } - - function try_StatementsAndOptionalExpr() - { - try_Statements(); - if (l1 != 25 // EOF - && l1 != 282) // '}' - { - try_Expr(); - } - } - - function parse_Statement() - { - eventHandler.startNonterminal("Statement", e0); - switch (l1) - { - case 132: // 'exit' - lookahead2W(189); // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' | - break; - case 137: // 'for' - lookahead2W(196); // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | - break; - case 174: // 'let' - lookahead2W(193); // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | - break; - case 250: // 'try' - lookahead2W(190); // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' | - break; - case 262: // 'variable' - lookahead2W(187); // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | - break; - case 276: // '{' - lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - case 31: // '$' - case 32: // '%' - lookahead2W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - break; - case 86: // 'break' - case 102: // 'continue' - lookahead2W(188); // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' | - break; - case 152: // 'if' - case 243: // 'switch' - case 253: // 'typeswitch' - case 267: // 'while' - lookahead2W(185); // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' | - break; - default: - lk = l1; - } - if (lk == 2836 // '{' Wildcard - || lk == 3103 // '$' EQName^Token - || lk == 3104 // '%' EQName^Token - || lk == 3348 // '{' EQName^Token - || lk == 4372 // '{' IntegerLiteral - || lk == 4884 // '{' DecimalLiteral - || lk == 5396 // '{' DoubleLiteral - || lk == 5908 // '{' StringLiteral - || lk == 16148 // '{' '$' - || lk == 16660 // '{' '%' - || lk == 17675 // 'while' '(' - || lk == 17684 // '{' '(' - || lk == 18196 // '{' '(#' - || lk == 20756 // '{' '+' - || lk == 21780 // '{' '-' - || lk == 22804 // '{' '.' - || lk == 23316 // '{' '..' - || lk == 23828 // '{' '/' - || lk == 24340 // '{' '//' - || lk == 27924 // '{' '<' - || lk == 28436 // '{' '<!--' - || lk == 30484 // '{' '<?' - || lk == 34068 // '{' '@' - || lk == 35092 // '{' '[' - || lk == 35871 // '$' 'after' - || lk == 35872 // '%' 'after' - || lk == 36116 // '{' 'after' - || lk == 36895 // '$' 'allowing' - || lk == 36896 // '%' 'allowing' - || lk == 37140 // '{' 'allowing' - || lk == 37407 // '$' 'ancestor' - || lk == 37408 // '%' 'ancestor' - || lk == 37652 // '{' 'ancestor' - || lk == 37919 // '$' 'ancestor-or-self' - || lk == 37920 // '%' 'ancestor-or-self' - || lk == 38164 // '{' 'ancestor-or-self' - || lk == 38431 // '$' 'and' - || lk == 38432 // '%' 'and' - || lk == 38676 // '{' 'and' - || lk == 39700 // '{' 'append' - || lk == 39967 // '$' 'array' - || lk == 39968 // '%' 'array' - || lk == 40212 // '{' 'array' - || lk == 40479 // '$' 'as' - || lk == 40480 // '%' 'as' - || lk == 40724 // '{' 'as' - || lk == 40991 // '$' 'ascending' - || lk == 40992 // '%' 'ascending' - || lk == 41236 // '{' 'ascending' - || lk == 41503 // '$' 'at' - || lk == 41504 // '%' 'at' - || lk == 41748 // '{' 'at' - || lk == 42015 // '$' 'attribute' - || lk == 42016 // '%' 'attribute' - || lk == 42260 // '{' 'attribute' - || lk == 42527 // '$' 'base-uri' - || lk == 42528 // '%' 'base-uri' - || lk == 42772 // '{' 'base-uri' - || lk == 43039 // '$' 'before' - || lk == 43040 // '%' 'before' - || lk == 43284 // '{' 'before' - || lk == 43551 // '$' 'boundary-space' - || lk == 43552 // '%' 'boundary-space' - || lk == 43796 // '{' 'boundary-space' - || lk == 44063 // '$' 'break' - || lk == 44064 // '%' 'break' - || lk == 44308 // '{' 'break' - || lk == 45087 // '$' 'case' - || lk == 45088 // '%' 'case' - || lk == 45332 // '{' 'case' - || lk == 45599 // '$' 'cast' - || lk == 45600 // '%' 'cast' - || lk == 45844 // '{' 'cast' - || lk == 46111 // '$' 'castable' - || lk == 46112 // '%' 'castable' - || lk == 46356 // '{' 'castable' - || lk == 46623 // '$' 'catch' - || lk == 46624 // '%' 'catch' - || lk == 46868 // '{' 'catch' - || lk == 47647 // '$' 'child' - || lk == 47648 // '%' 'child' - || lk == 47892 // '{' 'child' - || lk == 48159 // '$' 'collation' - || lk == 48160 // '%' 'collation' - || lk == 48404 // '{' 'collation' - || lk == 49183 // '$' 'comment' - || lk == 49184 // '%' 'comment' - || lk == 49428 // '{' 'comment' - || lk == 49695 // '$' 'constraint' - || lk == 49696 // '%' 'constraint' - || lk == 49940 // '{' 'constraint' - || lk == 50207 // '$' 'construction' - || lk == 50208 // '%' 'construction' - || lk == 50452 // '{' 'construction' - || lk == 51743 // '$' 'context' - || lk == 51744 // '%' 'context' - || lk == 51988 // '{' 'context' - || lk == 52255 // '$' 'continue' - || lk == 52256 // '%' 'continue' - || lk == 52500 // '{' 'continue' - || lk == 52767 // '$' 'copy' - || lk == 52768 // '%' 'copy' - || lk == 53012 // '{' 'copy' - || lk == 53279 // '$' 'copy-namespaces' - || lk == 53280 // '%' 'copy-namespaces' - || lk == 53524 // '{' 'copy-namespaces' - || lk == 53791 // '$' 'count' - || lk == 53792 // '%' 'count' - || lk == 54036 // '{' 'count' - || lk == 54303 // '$' 'decimal-format' - || lk == 54304 // '%' 'decimal-format' - || lk == 54548 // '{' 'decimal-format' - || lk == 55327 // '$' 'declare' - || lk == 55328 // '%' 'declare' - || lk == 55572 // '{' 'declare' - || lk == 55839 // '$' 'default' - || lk == 55840 // '%' 'default' - || lk == 56084 // '{' 'default' - || lk == 56351 // '$' 'delete' - || lk == 56352 // '%' 'delete' - || lk == 56596 // '{' 'delete' - || lk == 56863 // '$' 'descendant' - || lk == 56864 // '%' 'descendant' - || lk == 57108 // '{' 'descendant' - || lk == 57375 // '$' 'descendant-or-self' - || lk == 57376 // '%' 'descendant-or-self' - || lk == 57620 // '{' 'descendant-or-self' - || lk == 57887 // '$' 'descending' - || lk == 57888 // '%' 'descending' - || lk == 58132 // '{' 'descending' - || lk == 60447 // '$' 'div' - || lk == 60448 // '%' 'div' - || lk == 60692 // '{' 'div' - || lk == 60959 // '$' 'document' - || lk == 60960 // '%' 'document' - || lk == 61204 // '{' 'document' - || lk == 61471 // '$' 'document-node' - || lk == 61472 // '%' 'document-node' - || lk == 61716 // '{' 'document-node' - || lk == 61983 // '$' 'element' - || lk == 61984 // '%' 'element' - || lk == 62228 // '{' 'element' - || lk == 62495 // '$' 'else' - || lk == 62496 // '%' 'else' - || lk == 62740 // '{' 'else' - || lk == 63007 // '$' 'empty' - || lk == 63008 // '%' 'empty' - || lk == 63252 // '{' 'empty' - || lk == 63519 // '$' 'empty-sequence' - || lk == 63520 // '%' 'empty-sequence' - || lk == 63764 // '{' 'empty-sequence' - || lk == 64031 // '$' 'encoding' - || lk == 64032 // '%' 'encoding' - || lk == 64276 // '{' 'encoding' - || lk == 64543 // '$' 'end' - || lk == 64544 // '%' 'end' - || lk == 64788 // '{' 'end' - || lk == 65567 // '$' 'eq' - || lk == 65568 // '%' 'eq' - || lk == 65812 // '{' 'eq' - || lk == 66079 // '$' 'every' - || lk == 66080 // '%' 'every' - || lk == 66324 // '{' 'every' - || lk == 67103 // '$' 'except' - || lk == 67104 // '%' 'except' - || lk == 67348 // '{' 'except' - || lk == 67615 // '$' 'exit' - || lk == 67616 // '%' 'exit' - || lk == 67860 // '{' 'exit' - || lk == 68127 // '$' 'external' - || lk == 68128 // '%' 'external' - || lk == 68372 // '{' 'external' - || lk == 68639 // '$' 'first' - || lk == 68640 // '%' 'first' - || lk == 68884 // '{' 'first' - || lk == 69151 // '$' 'following' - || lk == 69152 // '%' 'following' - || lk == 69396 // '{' 'following' - || lk == 69663 // '$' 'following-sibling' - || lk == 69664 // '%' 'following-sibling' - || lk == 69908 // '{' 'following-sibling' - || lk == 70175 // '$' 'for' - || lk == 70176 // '%' 'for' - || lk == 70420 // '{' 'for' - || lk == 72223 // '$' 'ft-option' - || lk == 72224 // '%' 'ft-option' - || lk == 72468 // '{' 'ft-option' - || lk == 74271 // '$' 'function' - || lk == 74272 // '%' 'function' - || lk == 74516 // '{' 'function' - || lk == 74783 // '$' 'ge' - || lk == 74784 // '%' 'ge' - || lk == 75028 // '{' 'ge' - || lk == 75807 // '$' 'group' - || lk == 75808 // '%' 'group' - || lk == 76052 // '{' 'group' - || lk == 76831 // '$' 'gt' - || lk == 76832 // '%' 'gt' - || lk == 77076 // '{' 'gt' - || lk == 77343 // '$' 'idiv' - || lk == 77344 // '%' 'idiv' - || lk == 77588 // '{' 'idiv' - || lk == 77855 // '$' 'if' - || lk == 77856 // '%' 'if' - || lk == 78100 // '{' 'if' - || lk == 78367 // '$' 'import' - || lk == 78368 // '%' 'import' - || lk == 78612 // '{' 'import' - || lk == 78879 // '$' 'in' - || lk == 78880 // '%' 'in' - || lk == 79124 // '{' 'in' - || lk == 79391 // '$' 'index' - || lk == 79392 // '%' 'index' - || lk == 79636 // '{' 'index' - || lk == 81439 // '$' 'insert' - || lk == 81440 // '%' 'insert' - || lk == 81684 // '{' 'insert' - || lk == 81951 // '$' 'instance' - || lk == 81952 // '%' 'instance' - || lk == 82196 // '{' 'instance' - || lk == 82463 // '$' 'integrity' - || lk == 82464 // '%' 'integrity' - || lk == 82708 // '{' 'integrity' - || lk == 82975 // '$' 'intersect' - || lk == 82976 // '%' 'intersect' - || lk == 83220 // '{' 'intersect' - || lk == 83487 // '$' 'into' - || lk == 83488 // '%' 'into' - || lk == 83732 // '{' 'into' - || lk == 83999 // '$' 'is' - || lk == 84000 // '%' 'is' - || lk == 84244 // '{' 'is' - || lk == 84511 // '$' 'item' - || lk == 84512 // '%' 'item' - || lk == 84756 // '{' 'item' - || lk == 85535 // '$' 'json-item' - || lk == 85536 // '%' 'json-item' - || lk == 85780 // '{' 'json-item' - || lk == 87071 // '$' 'last' - || lk == 87072 // '%' 'last' - || lk == 87316 // '{' 'last' - || lk == 87583 // '$' 'lax' - || lk == 87584 // '%' 'lax' - || lk == 87828 // '{' 'lax' - || lk == 88095 // '$' 'le' - || lk == 88096 // '%' 'le' - || lk == 88340 // '{' 'le' - || lk == 89119 // '$' 'let' - || lk == 89120 // '%' 'let' - || lk == 89364 // '{' 'let' - || lk == 90143 // '$' 'loop' - || lk == 90144 // '%' 'loop' - || lk == 90388 // '{' 'loop' - || lk == 91167 // '$' 'lt' - || lk == 91168 // '%' 'lt' - || lk == 91412 // '{' 'lt' - || lk == 92191 // '$' 'mod' - || lk == 92192 // '%' 'mod' - || lk == 92436 // '{' 'mod' - || lk == 92703 // '$' 'modify' - || lk == 92704 // '%' 'modify' - || lk == 92948 // '{' 'modify' - || lk == 93215 // '$' 'module' - || lk == 93216 // '%' 'module' - || lk == 93460 // '{' 'module' - || lk == 94239 // '$' 'namespace' - || lk == 94240 // '%' 'namespace' - || lk == 94484 // '{' 'namespace' - || lk == 94751 // '$' 'namespace-node' - || lk == 94752 // '%' 'namespace-node' - || lk == 94996 // '{' 'namespace-node' - || lk == 95263 // '$' 'ne' - || lk == 95264 // '%' 'ne' - || lk == 95508 // '{' 'ne' - || lk == 97823 // '$' 'node' - || lk == 97824 // '%' 'node' - || lk == 98068 // '{' 'node' - || lk == 98335 // '$' 'nodes' - || lk == 98336 // '%' 'nodes' - || lk == 98580 // '{' 'nodes' - || lk == 99359 // '$' 'object' - || lk == 99360 // '%' 'object' - || lk == 99604 // '{' 'object' - || lk == 101407 // '$' 'only' - || lk == 101408 // '%' 'only' - || lk == 101652 // '{' 'only' - || lk == 101919 // '$' 'option' - || lk == 101920 // '%' 'option' - || lk == 102164 // '{' 'option' - || lk == 102431 // '$' 'or' - || lk == 102432 // '%' 'or' - || lk == 102676 // '{' 'or' - || lk == 102943 // '$' 'order' - || lk == 102944 // '%' 'order' - || lk == 103188 // '{' 'order' - || lk == 103455 // '$' 'ordered' - || lk == 103456 // '%' 'ordered' - || lk == 103700 // '{' 'ordered' - || lk == 103967 // '$' 'ordering' - || lk == 103968 // '%' 'ordering' - || lk == 104212 // '{' 'ordering' - || lk == 105503 // '$' 'parent' - || lk == 105504 // '%' 'parent' - || lk == 105748 // '{' 'parent' - || lk == 108575 // '$' 'preceding' - || lk == 108576 // '%' 'preceding' - || lk == 108820 // '{' 'preceding' - || lk == 109087 // '$' 'preceding-sibling' - || lk == 109088 // '%' 'preceding-sibling' - || lk == 109332 // '{' 'preceding-sibling' - || lk == 110623 // '$' 'processing-instruction' - || lk == 110624 // '%' 'processing-instruction' - || lk == 110868 // '{' 'processing-instruction' - || lk == 111647 // '$' 'rename' - || lk == 111648 // '%' 'rename' - || lk == 111892 // '{' 'rename' - || lk == 112159 // '$' 'replace' - || lk == 112160 // '%' 'replace' - || lk == 112404 // '{' 'replace' - || lk == 112671 // '$' 'return' - || lk == 112672 // '%' 'return' - || lk == 112916 // '{' 'return' - || lk == 113183 // '$' 'returning' - || lk == 113184 // '%' 'returning' - || lk == 113428 // '{' 'returning' - || lk == 113695 // '$' 'revalidation' - || lk == 113696 // '%' 'revalidation' - || lk == 113940 // '{' 'revalidation' - || lk == 114719 // '$' 'satisfies' - || lk == 114720 // '%' 'satisfies' - || lk == 114964 // '{' 'satisfies' - || lk == 115231 // '$' 'schema' - || lk == 115232 // '%' 'schema' - || lk == 115476 // '{' 'schema' - || lk == 115743 // '$' 'schema-attribute' - || lk == 115744 // '%' 'schema-attribute' - || lk == 115988 // '{' 'schema-attribute' - || lk == 116255 // '$' 'schema-element' - || lk == 116256 // '%' 'schema-element' - || lk == 116500 // '{' 'schema-element' - || lk == 116767 // '$' 'score' - || lk == 116768 // '%' 'score' - || lk == 117012 // '{' 'score' - || lk == 117279 // '$' 'self' - || lk == 117280 // '%' 'self' - || lk == 117524 // '{' 'self' - || lk == 119839 // '$' 'sliding' - || lk == 119840 // '%' 'sliding' - || lk == 120084 // '{' 'sliding' - || lk == 120351 // '$' 'some' - || lk == 120352 // '%' 'some' - || lk == 120596 // '{' 'some' - || lk == 120863 // '$' 'stable' - || lk == 120864 // '%' 'stable' - || lk == 121108 // '{' 'stable' - || lk == 121375 // '$' 'start' - || lk == 121376 // '%' 'start' - || lk == 121620 // '{' 'start' - || lk == 122911 // '$' 'strict' - || lk == 122912 // '%' 'strict' - || lk == 123156 // '{' 'strict' - || lk == 124447 // '$' 'switch' - || lk == 124448 // '%' 'switch' - || lk == 124692 // '{' 'switch' - || lk == 124959 // '$' 'text' - || lk == 124960 // '%' 'text' - || lk == 125204 // '{' 'text' - || lk == 127007 // '$' 'to' - || lk == 127008 // '%' 'to' - || lk == 127252 // '{' 'to' - || lk == 127519 // '$' 'treat' - || lk == 127520 // '%' 'treat' - || lk == 127764 // '{' 'treat' - || lk == 128031 // '$' 'try' - || lk == 128032 // '%' 'try' - || lk == 128276 // '{' 'try' - || lk == 128543 // '$' 'tumbling' - || lk == 128544 // '%' 'tumbling' - || lk == 128788 // '{' 'tumbling' - || lk == 129055 // '$' 'type' - || lk == 129056 // '%' 'type' - || lk == 129300 // '{' 'type' - || lk == 129567 // '$' 'typeswitch' - || lk == 129568 // '%' 'typeswitch' - || lk == 129812 // '{' 'typeswitch' - || lk == 130079 // '$' 'union' - || lk == 130080 // '%' 'union' - || lk == 130324 // '{' 'union' - || lk == 131103 // '$' 'unordered' - || lk == 131104 // '%' 'unordered' - || lk == 131348 // '{' 'unordered' - || lk == 131615 // '$' 'updating' - || lk == 131616 // '%' 'updating' - || lk == 131860 // '{' 'updating' - || lk == 133151 // '$' 'validate' - || lk == 133152 // '%' 'validate' - || lk == 133396 // '{' 'validate' - || lk == 133663 // '$' 'value' - || lk == 133664 // '%' 'value' - || lk == 133908 // '{' 'value' - || lk == 134175 // '$' 'variable' - || lk == 134176 // '%' 'variable' - || lk == 134420 // '{' 'variable' - || lk == 134687 // '$' 'version' - || lk == 134688 // '%' 'version' - || lk == 134932 // '{' 'version' - || lk == 136223 // '$' 'where' - || lk == 136224 // '%' 'where' - || lk == 136468 // '{' 'where' - || lk == 136735 // '$' 'while' - || lk == 136736 // '%' 'while' - || lk == 136980 // '{' 'while' - || lk == 138271 // '$' 'with' - || lk == 138272 // '%' 'with' - || lk == 138516 // '{' 'with' - || lk == 140319 // '$' 'xquery' - || lk == 140320 // '%' 'xquery' - || lk == 140564 // '{' 'xquery' - || lk == 141588 // '{' '{' - || lk == 142612 // '{' '{|' - || lk == 144660) // '{' '}' - { - lk = memoized(7, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - try_ApplyStatement(); - lk = -1; - } - catch (p1A) - { - try - { - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - try_AssignStatement(); - lk = -2; - } - catch (p2A) - { - try - { - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - try_BlockStatement(); - lk = -3; - } - catch (p3A) - { - try - { - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - try_VarDeclStatement(); - lk = -12; - } - catch (p12A) - { - lk = -13; - } - } - } - } - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(7, e0, lk); - } - } - switch (lk) - { - case -2: - parse_AssignStatement(); - break; - case -3: - parse_BlockStatement(); - break; - case 90198: // 'break' 'loop' - parse_BreakStatement(); - break; - case 90214: // 'continue' 'loop' - parse_ContinueStatement(); - break; - case 113284: // 'exit' 'returning' - parse_ExitStatement(); - break; - case 16009: // 'for' '$' - case 16046: // 'let' '$' - case 116910: // 'let' 'score' - case 119945: // 'for' 'sliding' - case 128649: // 'for' 'tumbling' - parse_FLWORStatement(); - break; - case 17560: // 'if' '(' - parse_IfStatement(); - break; - case 17651: // 'switch' '(' - parse_SwitchStatement(); - break; - case 141562: // 'try' '{' - parse_TryCatchStatement(); - break; - case 17661: // 'typeswitch' '(' - parse_TypeswitchStatement(); - break; - case -12: - case 16134: // 'variable' '$' - parse_VarDeclStatement(); - break; - case -13: - parse_WhileStatement(); - break; - default: - parse_ApplyStatement(); - } - eventHandler.endNonterminal("Statement", e0); - } - - function try_Statement() - { - switch (l1) - { - case 132: // 'exit' - lookahead2W(189); // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' | - break; - case 137: // 'for' - lookahead2W(196); // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | - break; - case 174: // 'let' - lookahead2W(193); // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | - break; - case 250: // 'try' - lookahead2W(190); // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' | - break; - case 262: // 'variable' - lookahead2W(187); // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | - break; - case 276: // '{' - lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - case 31: // '$' - case 32: // '%' - lookahead2W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - break; - case 86: // 'break' - case 102: // 'continue' - lookahead2W(188); // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' | - break; - case 152: // 'if' - case 243: // 'switch' - case 253: // 'typeswitch' - case 267: // 'while' - lookahead2W(185); // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' | - break; - default: - lk = l1; - } - if (lk == 2836 // '{' Wildcard - || lk == 3103 // '$' EQName^Token - || lk == 3104 // '%' EQName^Token - || lk == 3348 // '{' EQName^Token - || lk == 4372 // '{' IntegerLiteral - || lk == 4884 // '{' DecimalLiteral - || lk == 5396 // '{' DoubleLiteral - || lk == 5908 // '{' StringLiteral - || lk == 16148 // '{' '$' - || lk == 16660 // '{' '%' - || lk == 17675 // 'while' '(' - || lk == 17684 // '{' '(' - || lk == 18196 // '{' '(#' - || lk == 20756 // '{' '+' - || lk == 21780 // '{' '-' - || lk == 22804 // '{' '.' - || lk == 23316 // '{' '..' - || lk == 23828 // '{' '/' - || lk == 24340 // '{' '//' - || lk == 27924 // '{' '<' - || lk == 28436 // '{' '<!--' - || lk == 30484 // '{' '<?' - || lk == 34068 // '{' '@' - || lk == 35092 // '{' '[' - || lk == 35871 // '$' 'after' - || lk == 35872 // '%' 'after' - || lk == 36116 // '{' 'after' - || lk == 36895 // '$' 'allowing' - || lk == 36896 // '%' 'allowing' - || lk == 37140 // '{' 'allowing' - || lk == 37407 // '$' 'ancestor' - || lk == 37408 // '%' 'ancestor' - || lk == 37652 // '{' 'ancestor' - || lk == 37919 // '$' 'ancestor-or-self' - || lk == 37920 // '%' 'ancestor-or-self' - || lk == 38164 // '{' 'ancestor-or-self' - || lk == 38431 // '$' 'and' - || lk == 38432 // '%' 'and' - || lk == 38676 // '{' 'and' - || lk == 39700 // '{' 'append' - || lk == 39967 // '$' 'array' - || lk == 39968 // '%' 'array' - || lk == 40212 // '{' 'array' - || lk == 40479 // '$' 'as' - || lk == 40480 // '%' 'as' - || lk == 40724 // '{' 'as' - || lk == 40991 // '$' 'ascending' - || lk == 40992 // '%' 'ascending' - || lk == 41236 // '{' 'ascending' - || lk == 41503 // '$' 'at' - || lk == 41504 // '%' 'at' - || lk == 41748 // '{' 'at' - || lk == 42015 // '$' 'attribute' - || lk == 42016 // '%' 'attribute' - || lk == 42260 // '{' 'attribute' - || lk == 42527 // '$' 'base-uri' - || lk == 42528 // '%' 'base-uri' - || lk == 42772 // '{' 'base-uri' - || lk == 43039 // '$' 'before' - || lk == 43040 // '%' 'before' - || lk == 43284 // '{' 'before' - || lk == 43551 // '$' 'boundary-space' - || lk == 43552 // '%' 'boundary-space' - || lk == 43796 // '{' 'boundary-space' - || lk == 44063 // '$' 'break' - || lk == 44064 // '%' 'break' - || lk == 44308 // '{' 'break' - || lk == 45087 // '$' 'case' - || lk == 45088 // '%' 'case' - || lk == 45332 // '{' 'case' - || lk == 45599 // '$' 'cast' - || lk == 45600 // '%' 'cast' - || lk == 45844 // '{' 'cast' - || lk == 46111 // '$' 'castable' - || lk == 46112 // '%' 'castable' - || lk == 46356 // '{' 'castable' - || lk == 46623 // '$' 'catch' - || lk == 46624 // '%' 'catch' - || lk == 46868 // '{' 'catch' - || lk == 47647 // '$' 'child' - || lk == 47648 // '%' 'child' - || lk == 47892 // '{' 'child' - || lk == 48159 // '$' 'collation' - || lk == 48160 // '%' 'collation' - || lk == 48404 // '{' 'collation' - || lk == 49183 // '$' 'comment' - || lk == 49184 // '%' 'comment' - || lk == 49428 // '{' 'comment' - || lk == 49695 // '$' 'constraint' - || lk == 49696 // '%' 'constraint' - || lk == 49940 // '{' 'constraint' - || lk == 50207 // '$' 'construction' - || lk == 50208 // '%' 'construction' - || lk == 50452 // '{' 'construction' - || lk == 51743 // '$' 'context' - || lk == 51744 // '%' 'context' - || lk == 51988 // '{' 'context' - || lk == 52255 // '$' 'continue' - || lk == 52256 // '%' 'continue' - || lk == 52500 // '{' 'continue' - || lk == 52767 // '$' 'copy' - || lk == 52768 // '%' 'copy' - || lk == 53012 // '{' 'copy' - || lk == 53279 // '$' 'copy-namespaces' - || lk == 53280 // '%' 'copy-namespaces' - || lk == 53524 // '{' 'copy-namespaces' - || lk == 53791 // '$' 'count' - || lk == 53792 // '%' 'count' - || lk == 54036 // '{' 'count' - || lk == 54303 // '$' 'decimal-format' - || lk == 54304 // '%' 'decimal-format' - || lk == 54548 // '{' 'decimal-format' - || lk == 55327 // '$' 'declare' - || lk == 55328 // '%' 'declare' - || lk == 55572 // '{' 'declare' - || lk == 55839 // '$' 'default' - || lk == 55840 // '%' 'default' - || lk == 56084 // '{' 'default' - || lk == 56351 // '$' 'delete' - || lk == 56352 // '%' 'delete' - || lk == 56596 // '{' 'delete' - || lk == 56863 // '$' 'descendant' - || lk == 56864 // '%' 'descendant' - || lk == 57108 // '{' 'descendant' - || lk == 57375 // '$' 'descendant-or-self' - || lk == 57376 // '%' 'descendant-or-self' - || lk == 57620 // '{' 'descendant-or-self' - || lk == 57887 // '$' 'descending' - || lk == 57888 // '%' 'descending' - || lk == 58132 // '{' 'descending' - || lk == 60447 // '$' 'div' - || lk == 60448 // '%' 'div' - || lk == 60692 // '{' 'div' - || lk == 60959 // '$' 'document' - || lk == 60960 // '%' 'document' - || lk == 61204 // '{' 'document' - || lk == 61471 // '$' 'document-node' - || lk == 61472 // '%' 'document-node' - || lk == 61716 // '{' 'document-node' - || lk == 61983 // '$' 'element' - || lk == 61984 // '%' 'element' - || lk == 62228 // '{' 'element' - || lk == 62495 // '$' 'else' - || lk == 62496 // '%' 'else' - || lk == 62740 // '{' 'else' - || lk == 63007 // '$' 'empty' - || lk == 63008 // '%' 'empty' - || lk == 63252 // '{' 'empty' - || lk == 63519 // '$' 'empty-sequence' - || lk == 63520 // '%' 'empty-sequence' - || lk == 63764 // '{' 'empty-sequence' - || lk == 64031 // '$' 'encoding' - || lk == 64032 // '%' 'encoding' - || lk == 64276 // '{' 'encoding' - || lk == 64543 // '$' 'end' - || lk == 64544 // '%' 'end' - || lk == 64788 // '{' 'end' - || lk == 65567 // '$' 'eq' - || lk == 65568 // '%' 'eq' - || lk == 65812 // '{' 'eq' - || lk == 66079 // '$' 'every' - || lk == 66080 // '%' 'every' - || lk == 66324 // '{' 'every' - || lk == 67103 // '$' 'except' - || lk == 67104 // '%' 'except' - || lk == 67348 // '{' 'except' - || lk == 67615 // '$' 'exit' - || lk == 67616 // '%' 'exit' - || lk == 67860 // '{' 'exit' - || lk == 68127 // '$' 'external' - || lk == 68128 // '%' 'external' - || lk == 68372 // '{' 'external' - || lk == 68639 // '$' 'first' - || lk == 68640 // '%' 'first' - || lk == 68884 // '{' 'first' - || lk == 69151 // '$' 'following' - || lk == 69152 // '%' 'following' - || lk == 69396 // '{' 'following' - || lk == 69663 // '$' 'following-sibling' - || lk == 69664 // '%' 'following-sibling' - || lk == 69908 // '{' 'following-sibling' - || lk == 70175 // '$' 'for' - || lk == 70176 // '%' 'for' - || lk == 70420 // '{' 'for' - || lk == 72223 // '$' 'ft-option' - || lk == 72224 // '%' 'ft-option' - || lk == 72468 // '{' 'ft-option' - || lk == 74271 // '$' 'function' - || lk == 74272 // '%' 'function' - || lk == 74516 // '{' 'function' - || lk == 74783 // '$' 'ge' - || lk == 74784 // '%' 'ge' - || lk == 75028 // '{' 'ge' - || lk == 75807 // '$' 'group' - || lk == 75808 // '%' 'group' - || lk == 76052 // '{' 'group' - || lk == 76831 // '$' 'gt' - || lk == 76832 // '%' 'gt' - || lk == 77076 // '{' 'gt' - || lk == 77343 // '$' 'idiv' - || lk == 77344 // '%' 'idiv' - || lk == 77588 // '{' 'idiv' - || lk == 77855 // '$' 'if' - || lk == 77856 // '%' 'if' - || lk == 78100 // '{' 'if' - || lk == 78367 // '$' 'import' - || lk == 78368 // '%' 'import' - || lk == 78612 // '{' 'import' - || lk == 78879 // '$' 'in' - || lk == 78880 // '%' 'in' - || lk == 79124 // '{' 'in' - || lk == 79391 // '$' 'index' - || lk == 79392 // '%' 'index' - || lk == 79636 // '{' 'index' - || lk == 81439 // '$' 'insert' - || lk == 81440 // '%' 'insert' - || lk == 81684 // '{' 'insert' - || lk == 81951 // '$' 'instance' - || lk == 81952 // '%' 'instance' - || lk == 82196 // '{' 'instance' - || lk == 82463 // '$' 'integrity' - || lk == 82464 // '%' 'integrity' - || lk == 82708 // '{' 'integrity' - || lk == 82975 // '$' 'intersect' - || lk == 82976 // '%' 'intersect' - || lk == 83220 // '{' 'intersect' - || lk == 83487 // '$' 'into' - || lk == 83488 // '%' 'into' - || lk == 83732 // '{' 'into' - || lk == 83999 // '$' 'is' - || lk == 84000 // '%' 'is' - || lk == 84244 // '{' 'is' - || lk == 84511 // '$' 'item' - || lk == 84512 // '%' 'item' - || lk == 84756 // '{' 'item' - || lk == 85535 // '$' 'json-item' - || lk == 85536 // '%' 'json-item' - || lk == 85780 // '{' 'json-item' - || lk == 87071 // '$' 'last' - || lk == 87072 // '%' 'last' - || lk == 87316 // '{' 'last' - || lk == 87583 // '$' 'lax' - || lk == 87584 // '%' 'lax' - || lk == 87828 // '{' 'lax' - || lk == 88095 // '$' 'le' - || lk == 88096 // '%' 'le' - || lk == 88340 // '{' 'le' - || lk == 89119 // '$' 'let' - || lk == 89120 // '%' 'let' - || lk == 89364 // '{' 'let' - || lk == 90143 // '$' 'loop' - || lk == 90144 // '%' 'loop' - || lk == 90388 // '{' 'loop' - || lk == 91167 // '$' 'lt' - || lk == 91168 // '%' 'lt' - || lk == 91412 // '{' 'lt' - || lk == 92191 // '$' 'mod' - || lk == 92192 // '%' 'mod' - || lk == 92436 // '{' 'mod' - || lk == 92703 // '$' 'modify' - || lk == 92704 // '%' 'modify' - || lk == 92948 // '{' 'modify' - || lk == 93215 // '$' 'module' - || lk == 93216 // '%' 'module' - || lk == 93460 // '{' 'module' - || lk == 94239 // '$' 'namespace' - || lk == 94240 // '%' 'namespace' - || lk == 94484 // '{' 'namespace' - || lk == 94751 // '$' 'namespace-node' - || lk == 94752 // '%' 'namespace-node' - || lk == 94996 // '{' 'namespace-node' - || lk == 95263 // '$' 'ne' - || lk == 95264 // '%' 'ne' - || lk == 95508 // '{' 'ne' - || lk == 97823 // '$' 'node' - || lk == 97824 // '%' 'node' - || lk == 98068 // '{' 'node' - || lk == 98335 // '$' 'nodes' - || lk == 98336 // '%' 'nodes' - || lk == 98580 // '{' 'nodes' - || lk == 99359 // '$' 'object' - || lk == 99360 // '%' 'object' - || lk == 99604 // '{' 'object' - || lk == 101407 // '$' 'only' - || lk == 101408 // '%' 'only' - || lk == 101652 // '{' 'only' - || lk == 101919 // '$' 'option' - || lk == 101920 // '%' 'option' - || lk == 102164 // '{' 'option' - || lk == 102431 // '$' 'or' - || lk == 102432 // '%' 'or' - || lk == 102676 // '{' 'or' - || lk == 102943 // '$' 'order' - || lk == 102944 // '%' 'order' - || lk == 103188 // '{' 'order' - || lk == 103455 // '$' 'ordered' - || lk == 103456 // '%' 'ordered' - || lk == 103700 // '{' 'ordered' - || lk == 103967 // '$' 'ordering' - || lk == 103968 // '%' 'ordering' - || lk == 104212 // '{' 'ordering' - || lk == 105503 // '$' 'parent' - || lk == 105504 // '%' 'parent' - || lk == 105748 // '{' 'parent' - || lk == 108575 // '$' 'preceding' - || lk == 108576 // '%' 'preceding' - || lk == 108820 // '{' 'preceding' - || lk == 109087 // '$' 'preceding-sibling' - || lk == 109088 // '%' 'preceding-sibling' - || lk == 109332 // '{' 'preceding-sibling' - || lk == 110623 // '$' 'processing-instruction' - || lk == 110624 // '%' 'processing-instruction' - || lk == 110868 // '{' 'processing-instruction' - || lk == 111647 // '$' 'rename' - || lk == 111648 // '%' 'rename' - || lk == 111892 // '{' 'rename' - || lk == 112159 // '$' 'replace' - || lk == 112160 // '%' 'replace' - || lk == 112404 // '{' 'replace' - || lk == 112671 // '$' 'return' - || lk == 112672 // '%' 'return' - || lk == 112916 // '{' 'return' - || lk == 113183 // '$' 'returning' - || lk == 113184 // '%' 'returning' - || lk == 113428 // '{' 'returning' - || lk == 113695 // '$' 'revalidation' - || lk == 113696 // '%' 'revalidation' - || lk == 113940 // '{' 'revalidation' - || lk == 114719 // '$' 'satisfies' - || lk == 114720 // '%' 'satisfies' - || lk == 114964 // '{' 'satisfies' - || lk == 115231 // '$' 'schema' - || lk == 115232 // '%' 'schema' - || lk == 115476 // '{' 'schema' - || lk == 115743 // '$' 'schema-attribute' - || lk == 115744 // '%' 'schema-attribute' - || lk == 115988 // '{' 'schema-attribute' - || lk == 116255 // '$' 'schema-element' - || lk == 116256 // '%' 'schema-element' - || lk == 116500 // '{' 'schema-element' - || lk == 116767 // '$' 'score' - || lk == 116768 // '%' 'score' - || lk == 117012 // '{' 'score' - || lk == 117279 // '$' 'self' - || lk == 117280 // '%' 'self' - || lk == 117524 // '{' 'self' - || lk == 119839 // '$' 'sliding' - || lk == 119840 // '%' 'sliding' - || lk == 120084 // '{' 'sliding' - || lk == 120351 // '$' 'some' - || lk == 120352 // '%' 'some' - || lk == 120596 // '{' 'some' - || lk == 120863 // '$' 'stable' - || lk == 120864 // '%' 'stable' - || lk == 121108 // '{' 'stable' - || lk == 121375 // '$' 'start' - || lk == 121376 // '%' 'start' - || lk == 121620 // '{' 'start' - || lk == 122911 // '$' 'strict' - || lk == 122912 // '%' 'strict' - || lk == 123156 // '{' 'strict' - || lk == 124447 // '$' 'switch' - || lk == 124448 // '%' 'switch' - || lk == 124692 // '{' 'switch' - || lk == 124959 // '$' 'text' - || lk == 124960 // '%' 'text' - || lk == 125204 // '{' 'text' - || lk == 127007 // '$' 'to' - || lk == 127008 // '%' 'to' - || lk == 127252 // '{' 'to' - || lk == 127519 // '$' 'treat' - || lk == 127520 // '%' 'treat' - || lk == 127764 // '{' 'treat' - || lk == 128031 // '$' 'try' - || lk == 128032 // '%' 'try' - || lk == 128276 // '{' 'try' - || lk == 128543 // '$' 'tumbling' - || lk == 128544 // '%' 'tumbling' - || lk == 128788 // '{' 'tumbling' - || lk == 129055 // '$' 'type' - || lk == 129056 // '%' 'type' - || lk == 129300 // '{' 'type' - || lk == 129567 // '$' 'typeswitch' - || lk == 129568 // '%' 'typeswitch' - || lk == 129812 // '{' 'typeswitch' - || lk == 130079 // '$' 'union' - || lk == 130080 // '%' 'union' - || lk == 130324 // '{' 'union' - || lk == 131103 // '$' 'unordered' - || lk == 131104 // '%' 'unordered' - || lk == 131348 // '{' 'unordered' - || lk == 131615 // '$' 'updating' - || lk == 131616 // '%' 'updating' - || lk == 131860 // '{' 'updating' - || lk == 133151 // '$' 'validate' - || lk == 133152 // '%' 'validate' - || lk == 133396 // '{' 'validate' - || lk == 133663 // '$' 'value' - || lk == 133664 // '%' 'value' - || lk == 133908 // '{' 'value' - || lk == 134175 // '$' 'variable' - || lk == 134176 // '%' 'variable' - || lk == 134420 // '{' 'variable' - || lk == 134687 // '$' 'version' - || lk == 134688 // '%' 'version' - || lk == 134932 // '{' 'version' - || lk == 136223 // '$' 'where' - || lk == 136224 // '%' 'where' - || lk == 136468 // '{' 'where' - || lk == 136735 // '$' 'while' - || lk == 136736 // '%' 'while' - || lk == 136980 // '{' 'while' - || lk == 138271 // '$' 'with' - || lk == 138272 // '%' 'with' - || lk == 138516 // '{' 'with' - || lk == 140319 // '$' 'xquery' - || lk == 140320 // '%' 'xquery' - || lk == 140564 // '{' 'xquery' - || lk == 141588 // '{' '{' - || lk == 142612 // '{' '{|' - || lk == 144660) // '{' '}' - { - lk = memoized(7, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - try_ApplyStatement(); - memoize(7, e0A, -1); - lk = -14; - } - catch (p1A) - { - try - { - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - try_AssignStatement(); - memoize(7, e0A, -2); - lk = -14; - } - catch (p2A) - { - try - { - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - try_BlockStatement(); - memoize(7, e0A, -3); - lk = -14; - } - catch (p3A) - { - try - { - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - try_VarDeclStatement(); - memoize(7, e0A, -12); - lk = -14; - } - catch (p12A) - { - lk = -13; - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(7, e0A, -13); - } - } - } - } - } - } - switch (lk) - { - case -2: - try_AssignStatement(); - break; - case -3: - try_BlockStatement(); - break; - case 90198: // 'break' 'loop' - try_BreakStatement(); - break; - case 90214: // 'continue' 'loop' - try_ContinueStatement(); - break; - case 113284: // 'exit' 'returning' - try_ExitStatement(); - break; - case 16009: // 'for' '$' - case 16046: // 'let' '$' - case 116910: // 'let' 'score' - case 119945: // 'for' 'sliding' - case 128649: // 'for' 'tumbling' - try_FLWORStatement(); - break; - case 17560: // 'if' '(' - try_IfStatement(); - break; - case 17651: // 'switch' '(' - try_SwitchStatement(); - break; - case 141562: // 'try' '{' - try_TryCatchStatement(); - break; - case 17661: // 'typeswitch' '(' - try_TypeswitchStatement(); - break; - case -12: - case 16134: // 'variable' '$' - try_VarDeclStatement(); - break; - case -13: - try_WhileStatement(); - break; - case -14: - break; - default: - try_ApplyStatement(); - } - } - - function parse_ApplyStatement() - { - eventHandler.startNonterminal("ApplyStatement", e0); - parse_ExprSimple(); - shift(53); // ';' - eventHandler.endNonterminal("ApplyStatement", e0); - } - - function try_ApplyStatement() - { - try_ExprSimple(); - shiftT(53); // ';' - } - - function parse_AssignStatement() - { - eventHandler.startNonterminal("AssignStatement", e0); - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - lookahead1W(27); // S^WS | '(:' | ':=' - shift(52); // ':=' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - shift(53); // ';' - eventHandler.endNonterminal("AssignStatement", e0); - } - - function try_AssignStatement() - { - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - lookahead1W(27); // S^WS | '(:' | ':=' - shiftT(52); // ':=' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - shiftT(53); // ';' - } - - function parse_BlockStatement() - { - eventHandler.startNonterminal("BlockStatement", e0); - shift(276); // '{' - lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Statements(); - shift(282); // '}' - eventHandler.endNonterminal("BlockStatement", e0); - } - - function try_BlockStatement() - { - shiftT(276); // '{' - lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Statements(); - shiftT(282); // '}' - } - - function parse_BreakStatement() - { - eventHandler.startNonterminal("BreakStatement", e0); - shift(86); // 'break' - lookahead1W(59); // S^WS | '(:' | 'loop' - shift(176); // 'loop' - lookahead1W(28); // S^WS | '(:' | ';' - shift(53); // ';' - eventHandler.endNonterminal("BreakStatement", e0); - } - - function try_BreakStatement() - { - shiftT(86); // 'break' - lookahead1W(59); // S^WS | '(:' | 'loop' - shiftT(176); // 'loop' - lookahead1W(28); // S^WS | '(:' | ';' - shiftT(53); // ';' - } - - function parse_ContinueStatement() - { - eventHandler.startNonterminal("ContinueStatement", e0); - shift(102); // 'continue' - lookahead1W(59); // S^WS | '(:' | 'loop' - shift(176); // 'loop' - lookahead1W(28); // S^WS | '(:' | ';' - shift(53); // ';' - eventHandler.endNonterminal("ContinueStatement", e0); - } - - function try_ContinueStatement() - { - shiftT(102); // 'continue' - lookahead1W(59); // S^WS | '(:' | 'loop' - shiftT(176); // 'loop' - lookahead1W(28); // S^WS | '(:' | ';' - shiftT(53); // ';' - } - - function parse_ExitStatement() - { - eventHandler.startNonterminal("ExitStatement", e0); - shift(132); // 'exit' - lookahead1W(71); // S^WS | '(:' | 'returning' - shift(221); // 'returning' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - shift(53); // ';' - eventHandler.endNonterminal("ExitStatement", e0); - } - - function try_ExitStatement() - { - shiftT(132); // 'exit' - lookahead1W(71); // S^WS | '(:' | 'returning' - shiftT(221); // 'returning' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - shiftT(53); // ';' - } - - function parse_FLWORStatement() - { - eventHandler.startNonterminal("FLWORStatement", e0); - parse_InitialClause(); - for (;;) - { - lookahead1W(173); // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' | - if (l1 == 220) // 'return' - { - break; - } - whitespace(); - parse_IntermediateClause(); - } - whitespace(); - parse_ReturnStatement(); - eventHandler.endNonterminal("FLWORStatement", e0); - } - - function try_FLWORStatement() - { - try_InitialClause(); - for (;;) - { - lookahead1W(173); // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' | - if (l1 == 220) // 'return' - { - break; - } - try_IntermediateClause(); - } - try_ReturnStatement(); - } - - function parse_ReturnStatement() - { - eventHandler.startNonterminal("ReturnStatement", e0); - shift(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Statement(); - eventHandler.endNonterminal("ReturnStatement", e0); - } - - function try_ReturnStatement() - { - shiftT(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Statement(); - } - - function parse_IfStatement() - { - eventHandler.startNonterminal("IfStatement", e0); - shift(152); // 'if' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Expr(); - shift(37); // ')' - lookahead1W(77); // S^WS | '(:' | 'then' - shift(245); // 'then' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Statement(); - lookahead1W(48); // S^WS | '(:' | 'else' - shift(122); // 'else' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Statement(); - eventHandler.endNonterminal("IfStatement", e0); - } - - function try_IfStatement() - { - shiftT(152); // 'if' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Expr(); - shiftT(37); // ')' - lookahead1W(77); // S^WS | '(:' | 'then' - shiftT(245); // 'then' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Statement(); - lookahead1W(48); // S^WS | '(:' | 'else' - shiftT(122); // 'else' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Statement(); - } - - function parse_SwitchStatement() - { - eventHandler.startNonterminal("SwitchStatement", e0); - shift(243); // 'switch' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Expr(); - shift(37); // ')' - for (;;) - { - lookahead1W(35); // S^WS | '(:' | 'case' - whitespace(); - parse_SwitchCaseStatement(); - lookahead1W(113); // S^WS | '(:' | 'case' | 'default' - if (l1 != 88) // 'case' - { - break; - } - } - shift(109); // 'default' - lookahead1W(70); // S^WS | '(:' | 'return' - shift(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Statement(); - eventHandler.endNonterminal("SwitchStatement", e0); - } - - function try_SwitchStatement() - { - shiftT(243); // 'switch' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Expr(); - shiftT(37); // ')' - for (;;) - { - lookahead1W(35); // S^WS | '(:' | 'case' - try_SwitchCaseStatement(); - lookahead1W(113); // S^WS | '(:' | 'case' | 'default' - if (l1 != 88) // 'case' - { - break; - } - } - shiftT(109); // 'default' - lookahead1W(70); // S^WS | '(:' | 'return' - shiftT(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Statement(); - } - - function parse_SwitchCaseStatement() - { - eventHandler.startNonterminal("SwitchCaseStatement", e0); - for (;;) - { - shift(88); // 'case' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_SwitchCaseOperand(); - if (l1 != 88) // 'case' - { - break; - } - } - shift(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Statement(); - eventHandler.endNonterminal("SwitchCaseStatement", e0); - } - - function try_SwitchCaseStatement() - { - for (;;) - { - shiftT(88); // 'case' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_SwitchCaseOperand(); - if (l1 != 88) // 'case' - { - break; - } - } - shiftT(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Statement(); - } - - function parse_TryCatchStatement() - { - eventHandler.startNonterminal("TryCatchStatement", e0); - shift(250); // 'try' - lookahead1W(87); // S^WS | '(:' | '{' - whitespace(); - parse_BlockStatement(); - for (;;) - { - lookahead1W(36); // S^WS | '(:' | 'catch' - shift(91); // 'catch' - lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_CatchErrorList(); - whitespace(); - parse_BlockStatement(); - lookahead1W(274); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - switch (l1) - { - case 91: // 'catch' - lookahead2W(276); // Wildcard | EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | - break; - default: - lk = l1; - } - if (lk == 38491 // 'catch' 'and' - || lk == 45659 // 'catch' 'cast' - || lk == 46171 // 'catch' 'castable' - || lk == 60507 // 'catch' 'div' - || lk == 65627 // 'catch' 'eq' - || lk == 67163 // 'catch' 'except' - || lk == 74843 // 'catch' 'ge' - || lk == 76891 // 'catch' 'gt' - || lk == 77403 // 'catch' 'idiv' - || lk == 82011 // 'catch' 'instance' - || lk == 83035 // 'catch' 'intersect' - || lk == 84059 // 'catch' 'is' - || lk == 88155 // 'catch' 'le' - || lk == 91227 // 'catch' 'lt' - || lk == 92251 // 'catch' 'mod' - || lk == 95323 // 'catch' 'ne' - || lk == 102491 // 'catch' 'or' - || lk == 127067 // 'catch' 'to' - || lk == 127579 // 'catch' 'treat' - || lk == 130139) // 'catch' 'union' - { - lk = memoized(8, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - lookahead1W(36); // S^WS | '(:' | 'catch' - shiftT(91); // 'catch' - lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_CatchErrorList(); - try_BlockStatement(); - lk = -1; - } - catch (p1A) - { - lk = -2; - } - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(8, e0, lk); - } - } - if (lk != -1 - && lk != 2651 // 'catch' Wildcard - && lk != 3163 // 'catch' EQName^Token - && lk != 35931 // 'catch' 'after' - && lk != 36955 // 'catch' 'allowing' - && lk != 37467 // 'catch' 'ancestor' - && lk != 37979 // 'catch' 'ancestor-or-self' - && lk != 40027 // 'catch' 'array' - && lk != 40539 // 'catch' 'as' - && lk != 41051 // 'catch' 'ascending' - && lk != 41563 // 'catch' 'at' - && lk != 42075 // 'catch' 'attribute' - && lk != 42587 // 'catch' 'base-uri' - && lk != 43099 // 'catch' 'before' - && lk != 43611 // 'catch' 'boundary-space' - && lk != 44123 // 'catch' 'break' - && lk != 45147 // 'catch' 'case' - && lk != 46683 // 'catch' 'catch' - && lk != 47707 // 'catch' 'child' - && lk != 48219 // 'catch' 'collation' - && lk != 49243 // 'catch' 'comment' - && lk != 49755 // 'catch' 'constraint' - && lk != 50267 // 'catch' 'construction' - && lk != 51803 // 'catch' 'context' - && lk != 52315 // 'catch' 'continue' - && lk != 52827 // 'catch' 'copy' - && lk != 53339 // 'catch' 'copy-namespaces' - && lk != 53851 // 'catch' 'count' - && lk != 54363 // 'catch' 'decimal-format' - && lk != 55387 // 'catch' 'declare' - && lk != 55899 // 'catch' 'default' - && lk != 56411 // 'catch' 'delete' - && lk != 56923 // 'catch' 'descendant' - && lk != 57435 // 'catch' 'descendant-or-self' - && lk != 57947 // 'catch' 'descending' - && lk != 61019 // 'catch' 'document' - && lk != 61531 // 'catch' 'document-node' - && lk != 62043 // 'catch' 'element' - && lk != 62555 // 'catch' 'else' - && lk != 63067 // 'catch' 'empty' - && lk != 63579 // 'catch' 'empty-sequence' - && lk != 64091 // 'catch' 'encoding' - && lk != 64603 // 'catch' 'end' - && lk != 66139 // 'catch' 'every' - && lk != 67675 // 'catch' 'exit' - && lk != 68187 // 'catch' 'external' - && lk != 68699 // 'catch' 'first' - && lk != 69211 // 'catch' 'following' - && lk != 69723 // 'catch' 'following-sibling' - && lk != 70235 // 'catch' 'for' - && lk != 72283 // 'catch' 'ft-option' - && lk != 74331 // 'catch' 'function' - && lk != 75867 // 'catch' 'group' - && lk != 77915 // 'catch' 'if' - && lk != 78427 // 'catch' 'import' - && lk != 78939 // 'catch' 'in' - && lk != 79451 // 'catch' 'index' - && lk != 81499 // 'catch' 'insert' - && lk != 82523 // 'catch' 'integrity' - && lk != 83547 // 'catch' 'into' - && lk != 84571 // 'catch' 'item' - && lk != 85595 // 'catch' 'json-item' - && lk != 87131 // 'catch' 'last' - && lk != 87643 // 'catch' 'lax' - && lk != 89179 // 'catch' 'let' - && lk != 90203 // 'catch' 'loop' - && lk != 92763 // 'catch' 'modify' - && lk != 93275 // 'catch' 'module' - && lk != 94299 // 'catch' 'namespace' - && lk != 94811 // 'catch' 'namespace-node' - && lk != 97883 // 'catch' 'node' - && lk != 98395 // 'catch' 'nodes' - && lk != 99419 // 'catch' 'object' - && lk != 101467 // 'catch' 'only' - && lk != 101979 // 'catch' 'option' - && lk != 103003 // 'catch' 'order' - && lk != 103515 // 'catch' 'ordered' - && lk != 104027 // 'catch' 'ordering' - && lk != 105563 // 'catch' 'parent' - && lk != 108635 // 'catch' 'preceding' - && lk != 109147 // 'catch' 'preceding-sibling' - && lk != 110683 // 'catch' 'processing-instruction' - && lk != 111707 // 'catch' 'rename' - && lk != 112219 // 'catch' 'replace' - && lk != 112731 // 'catch' 'return' - && lk != 113243 // 'catch' 'returning' - && lk != 113755 // 'catch' 'revalidation' - && lk != 114779 // 'catch' 'satisfies' - && lk != 115291 // 'catch' 'schema' - && lk != 115803 // 'catch' 'schema-attribute' - && lk != 116315 // 'catch' 'schema-element' - && lk != 116827 // 'catch' 'score' - && lk != 117339 // 'catch' 'self' - && lk != 119899 // 'catch' 'sliding' - && lk != 120411 // 'catch' 'some' - && lk != 120923 // 'catch' 'stable' - && lk != 121435 // 'catch' 'start' - && lk != 122971 // 'catch' 'strict' - && lk != 124507 // 'catch' 'switch' - && lk != 125019 // 'catch' 'text' - && lk != 128091 // 'catch' 'try' - && lk != 128603 // 'catch' 'tumbling' - && lk != 129115 // 'catch' 'type' - && lk != 129627 // 'catch' 'typeswitch' - && lk != 131163 // 'catch' 'unordered' - && lk != 131675 // 'catch' 'updating' - && lk != 133211 // 'catch' 'validate' - && lk != 133723 // 'catch' 'value' - && lk != 134235 // 'catch' 'variable' - && lk != 134747 // 'catch' 'version' - && lk != 136283 // 'catch' 'where' - && lk != 136795 // 'catch' 'while' - && lk != 138331 // 'catch' 'with' - && lk != 140379) // 'catch' 'xquery' - { - break; - } - } - eventHandler.endNonterminal("TryCatchStatement", e0); - } - - function try_TryCatchStatement() - { - shiftT(250); // 'try' - lookahead1W(87); // S^WS | '(:' | '{' - try_BlockStatement(); - lookahead1W(36); // S^WS | '(:' | 'catch' - shiftT(91); // 'catch' - lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_CatchErrorList(); - try_BlockStatement(); - for (;;) - { - lookahead1W(274); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - switch (l1) - { - case 91: // 'catch' - lookahead2W(276); // Wildcard | EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | - break; - default: - lk = l1; - } - if (lk == 38491 // 'catch' 'and' - || lk == 45659 // 'catch' 'cast' - || lk == 46171 // 'catch' 'castable' - || lk == 60507 // 'catch' 'div' - || lk == 65627 // 'catch' 'eq' - || lk == 67163 // 'catch' 'except' - || lk == 74843 // 'catch' 'ge' - || lk == 76891 // 'catch' 'gt' - || lk == 77403 // 'catch' 'idiv' - || lk == 82011 // 'catch' 'instance' - || lk == 83035 // 'catch' 'intersect' - || lk == 84059 // 'catch' 'is' - || lk == 88155 // 'catch' 'le' - || lk == 91227 // 'catch' 'lt' - || lk == 92251 // 'catch' 'mod' - || lk == 95323 // 'catch' 'ne' - || lk == 102491 // 'catch' 'or' - || lk == 127067 // 'catch' 'to' - || lk == 127579 // 'catch' 'treat' - || lk == 130139) // 'catch' 'union' - { - lk = memoized(8, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - lookahead1W(36); // S^WS | '(:' | 'catch' - shiftT(91); // 'catch' - lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_CatchErrorList(); - try_BlockStatement(); - memoize(8, e0A, -1); - continue; - } - catch (p1A) - { - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(8, e0A, -2); - break; - } - } - } - if (lk != -1 - && lk != 2651 // 'catch' Wildcard - && lk != 3163 // 'catch' EQName^Token - && lk != 35931 // 'catch' 'after' - && lk != 36955 // 'catch' 'allowing' - && lk != 37467 // 'catch' 'ancestor' - && lk != 37979 // 'catch' 'ancestor-or-self' - && lk != 40027 // 'catch' 'array' - && lk != 40539 // 'catch' 'as' - && lk != 41051 // 'catch' 'ascending' - && lk != 41563 // 'catch' 'at' - && lk != 42075 // 'catch' 'attribute' - && lk != 42587 // 'catch' 'base-uri' - && lk != 43099 // 'catch' 'before' - && lk != 43611 // 'catch' 'boundary-space' - && lk != 44123 // 'catch' 'break' - && lk != 45147 // 'catch' 'case' - && lk != 46683 // 'catch' 'catch' - && lk != 47707 // 'catch' 'child' - && lk != 48219 // 'catch' 'collation' - && lk != 49243 // 'catch' 'comment' - && lk != 49755 // 'catch' 'constraint' - && lk != 50267 // 'catch' 'construction' - && lk != 51803 // 'catch' 'context' - && lk != 52315 // 'catch' 'continue' - && lk != 52827 // 'catch' 'copy' - && lk != 53339 // 'catch' 'copy-namespaces' - && lk != 53851 // 'catch' 'count' - && lk != 54363 // 'catch' 'decimal-format' - && lk != 55387 // 'catch' 'declare' - && lk != 55899 // 'catch' 'default' - && lk != 56411 // 'catch' 'delete' - && lk != 56923 // 'catch' 'descendant' - && lk != 57435 // 'catch' 'descendant-or-self' - && lk != 57947 // 'catch' 'descending' - && lk != 61019 // 'catch' 'document' - && lk != 61531 // 'catch' 'document-node' - && lk != 62043 // 'catch' 'element' - && lk != 62555 // 'catch' 'else' - && lk != 63067 // 'catch' 'empty' - && lk != 63579 // 'catch' 'empty-sequence' - && lk != 64091 // 'catch' 'encoding' - && lk != 64603 // 'catch' 'end' - && lk != 66139 // 'catch' 'every' - && lk != 67675 // 'catch' 'exit' - && lk != 68187 // 'catch' 'external' - && lk != 68699 // 'catch' 'first' - && lk != 69211 // 'catch' 'following' - && lk != 69723 // 'catch' 'following-sibling' - && lk != 70235 // 'catch' 'for' - && lk != 72283 // 'catch' 'ft-option' - && lk != 74331 // 'catch' 'function' - && lk != 75867 // 'catch' 'group' - && lk != 77915 // 'catch' 'if' - && lk != 78427 // 'catch' 'import' - && lk != 78939 // 'catch' 'in' - && lk != 79451 // 'catch' 'index' - && lk != 81499 // 'catch' 'insert' - && lk != 82523 // 'catch' 'integrity' - && lk != 83547 // 'catch' 'into' - && lk != 84571 // 'catch' 'item' - && lk != 85595 // 'catch' 'json-item' - && lk != 87131 // 'catch' 'last' - && lk != 87643 // 'catch' 'lax' - && lk != 89179 // 'catch' 'let' - && lk != 90203 // 'catch' 'loop' - && lk != 92763 // 'catch' 'modify' - && lk != 93275 // 'catch' 'module' - && lk != 94299 // 'catch' 'namespace' - && lk != 94811 // 'catch' 'namespace-node' - && lk != 97883 // 'catch' 'node' - && lk != 98395 // 'catch' 'nodes' - && lk != 99419 // 'catch' 'object' - && lk != 101467 // 'catch' 'only' - && lk != 101979 // 'catch' 'option' - && lk != 103003 // 'catch' 'order' - && lk != 103515 // 'catch' 'ordered' - && lk != 104027 // 'catch' 'ordering' - && lk != 105563 // 'catch' 'parent' - && lk != 108635 // 'catch' 'preceding' - && lk != 109147 // 'catch' 'preceding-sibling' - && lk != 110683 // 'catch' 'processing-instruction' - && lk != 111707 // 'catch' 'rename' - && lk != 112219 // 'catch' 'replace' - && lk != 112731 // 'catch' 'return' - && lk != 113243 // 'catch' 'returning' - && lk != 113755 // 'catch' 'revalidation' - && lk != 114779 // 'catch' 'satisfies' - && lk != 115291 // 'catch' 'schema' - && lk != 115803 // 'catch' 'schema-attribute' - && lk != 116315 // 'catch' 'schema-element' - && lk != 116827 // 'catch' 'score' - && lk != 117339 // 'catch' 'self' - && lk != 119899 // 'catch' 'sliding' - && lk != 120411 // 'catch' 'some' - && lk != 120923 // 'catch' 'stable' - && lk != 121435 // 'catch' 'start' - && lk != 122971 // 'catch' 'strict' - && lk != 124507 // 'catch' 'switch' - && lk != 125019 // 'catch' 'text' - && lk != 128091 // 'catch' 'try' - && lk != 128603 // 'catch' 'tumbling' - && lk != 129115 // 'catch' 'type' - && lk != 129627 // 'catch' 'typeswitch' - && lk != 131163 // 'catch' 'unordered' - && lk != 131675 // 'catch' 'updating' - && lk != 133211 // 'catch' 'validate' - && lk != 133723 // 'catch' 'value' - && lk != 134235 // 'catch' 'variable' - && lk != 134747 // 'catch' 'version' - && lk != 136283 // 'catch' 'where' - && lk != 136795 // 'catch' 'while' - && lk != 138331 // 'catch' 'with' - && lk != 140379) // 'catch' 'xquery' - { - break; - } - lookahead1W(36); // S^WS | '(:' | 'catch' - shiftT(91); // 'catch' - lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_CatchErrorList(); - try_BlockStatement(); - } - } - - function parse_TypeswitchStatement() - { - eventHandler.startNonterminal("TypeswitchStatement", e0); - shift(253); // 'typeswitch' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Expr(); - shift(37); // ')' - for (;;) - { - lookahead1W(35); // S^WS | '(:' | 'case' - whitespace(); - parse_CaseStatement(); - lookahead1W(113); // S^WS | '(:' | 'case' | 'default' - if (l1 != 88) // 'case' - { - break; - } - } - shift(109); // 'default' - lookahead1W(95); // S^WS | '$' | '(:' | 'return' - if (l1 == 31) // '$' - { - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - } - lookahead1W(70); // S^WS | '(:' | 'return' - shift(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Statement(); - eventHandler.endNonterminal("TypeswitchStatement", e0); - } - - function try_TypeswitchStatement() - { - shiftT(253); // 'typeswitch' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Expr(); - shiftT(37); // ')' - for (;;) - { - lookahead1W(35); // S^WS | '(:' | 'case' - try_CaseStatement(); - lookahead1W(113); // S^WS | '(:' | 'case' | 'default' - if (l1 != 88) // 'case' - { - break; - } - } - shiftT(109); // 'default' - lookahead1W(95); // S^WS | '$' | '(:' | 'return' - if (l1 == 31) // '$' - { - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - } - lookahead1W(70); // S^WS | '(:' | 'return' - shiftT(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Statement(); - } - - function parse_CaseStatement() - { - eventHandler.startNonterminal("CaseStatement", e0); - shift(88); // 'case' - lookahead1W(260); // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' | - if (l1 == 31) // '$' - { - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - lookahead1W(30); // S^WS | '(:' | 'as' - shift(79); // 'as' - } - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_SequenceType(); - lookahead1W(70); // S^WS | '(:' | 'return' - shift(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Statement(); - eventHandler.endNonterminal("CaseStatement", e0); - } - - function try_CaseStatement() - { - shiftT(88); // 'case' - lookahead1W(260); // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' | - if (l1 == 31) // '$' - { - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - lookahead1W(30); // S^WS | '(:' | 'as' - shiftT(79); // 'as' - } - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - try_SequenceType(); - lookahead1W(70); // S^WS | '(:' | 'return' - shiftT(220); // 'return' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Statement(); - } - - function parse_VarDeclStatement() - { - eventHandler.startNonterminal("VarDeclStatement", e0); - for (;;) - { - lookahead1W(98); // S^WS | '%' | '(:' | 'variable' - if (l1 != 32) // '%' - { - break; - } - whitespace(); - parse_Annotation(); - } - shift(262); // 'variable' - lookahead1W(21); // S^WS | '$' | '(:' - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - lookahead1W(157); // S^WS | '(:' | ',' | ':=' | ';' | 'as' - if (l1 == 79) // 'as' - { - whitespace(); - parse_TypeDeclaration(); - } - lookahead1W(145); // S^WS | '(:' | ',' | ':=' | ';' - if (l1 == 52) // ':=' - { - shift(52); // ':=' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - } - for (;;) - { - if (l1 != 41) // ',' - { - break; - } - shift(41); // ',' - lookahead1W(21); // S^WS | '$' | '(:' - shift(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_VarName(); - lookahead1W(157); // S^WS | '(:' | ',' | ':=' | ';' | 'as' - if (l1 == 79) // 'as' - { - whitespace(); - parse_TypeDeclaration(); - } - lookahead1W(145); // S^WS | '(:' | ',' | ':=' | ';' - if (l1 == 52) // ':=' - { - shift(52); // ':=' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - } - } - shift(53); // ';' - eventHandler.endNonterminal("VarDeclStatement", e0); - } - - function try_VarDeclStatement() - { - for (;;) - { - lookahead1W(98); // S^WS | '%' | '(:' | 'variable' - if (l1 != 32) // '%' - { - break; - } - try_Annotation(); - } - shiftT(262); // 'variable' - lookahead1W(21); // S^WS | '$' | '(:' - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - lookahead1W(157); // S^WS | '(:' | ',' | ':=' | ';' | 'as' - if (l1 == 79) // 'as' - { - try_TypeDeclaration(); - } - lookahead1W(145); // S^WS | '(:' | ',' | ':=' | ';' - if (l1 == 52) // ':=' - { - shiftT(52); // ':=' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - for (;;) - { - if (l1 != 41) // ',' - { - break; - } - shiftT(41); // ',' - lookahead1W(21); // S^WS | '$' | '(:' - shiftT(31); // '$' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - try_VarName(); - lookahead1W(157); // S^WS | '(:' | ',' | ':=' | ';' | 'as' - if (l1 == 79) // 'as' - { - try_TypeDeclaration(); - } - lookahead1W(145); // S^WS | '(:' | ',' | ':=' | ';' - if (l1 == 52) // ':=' - { - shiftT(52); // ':=' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - } - shiftT(53); // ';' - } - - function parse_WhileStatement() - { - eventHandler.startNonterminal("WhileStatement", e0); - shift(267); // 'while' - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Expr(); - shift(37); // ')' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Statement(); - eventHandler.endNonterminal("WhileStatement", e0); - } - - function try_WhileStatement() - { - shiftT(267); // 'while' - lookahead1W(22); // S^WS | '(' | '(:' - shiftT(34); // '(' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Expr(); - shiftT(37); // ')' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Statement(); - } - - function parse_ExprSingle() - { - eventHandler.startNonterminal("ExprSingle", e0); - switch (l1) - { - case 137: // 'for' - lookahead2W(233); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | - break; - case 174: // 'let' - lookahead2W(231); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | - break; - case 250: // 'try' - lookahead2W(230); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | - break; - case 152: // 'if' - case 243: // 'switch' - case 253: // 'typeswitch' - lookahead2W(228); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | - break; - default: - lk = l1; - } - switch (lk) - { - case 16009: // 'for' '$' - case 16046: // 'let' '$' - case 116910: // 'let' 'score' - case 119945: // 'for' 'sliding' - case 128649: // 'for' 'tumbling' - parse_FLWORExpr(); - break; - case 17560: // 'if' '(' - parse_IfExpr(); - break; - case 17651: // 'switch' '(' - parse_SwitchExpr(); - break; - case 141562: // 'try' '{' - parse_TryCatchExpr(); - break; - case 17661: // 'typeswitch' '(' - parse_TypeswitchExpr(); - break; - default: - parse_ExprSimple(); - } - eventHandler.endNonterminal("ExprSingle", e0); - } - - function try_ExprSingle() - { - switch (l1) - { - case 137: // 'for' - lookahead2W(233); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | - break; - case 174: // 'let' - lookahead2W(231); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | - break; - case 250: // 'try' - lookahead2W(230); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | - break; - case 152: // 'if' - case 243: // 'switch' - case 253: // 'typeswitch' - lookahead2W(228); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | - break; - default: - lk = l1; - } - switch (lk) - { - case 16009: // 'for' '$' - case 16046: // 'let' '$' - case 116910: // 'let' 'score' - case 119945: // 'for' 'sliding' - case 128649: // 'for' 'tumbling' - try_FLWORExpr(); - break; - case 17560: // 'if' '(' - try_IfExpr(); - break; - case 17651: // 'switch' '(' - try_SwitchExpr(); - break; - case 141562: // 'try' '{' - try_TryCatchExpr(); - break; - case 17661: // 'typeswitch' '(' - try_TypeswitchExpr(); - break; - default: - try_ExprSimple(); - } - } - - function parse_ExprSimple() - { - eventHandler.startNonterminal("ExprSimple", e0); - switch (l1) - { - case 218: // 'rename' - lookahead2W(232); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | - break; - case 219: // 'replace' - lookahead2W(235); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | - break; - case 110: // 'delete' - case 159: // 'insert' - lookahead2W(234); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | - break; - case 103: // 'copy' - case 129: // 'every' - case 235: // 'some' - lookahead2W(229); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | - break; - default: - lk = l1; - } - switch (lk) - { - case 16001: // 'every' '$' - case 16107: // 'some' '$' - parse_QuantifiedExpr(); - break; - case 97951: // 'insert' 'node' - case 98463: // 'insert' 'nodes' - parse_InsertExpr(); - break; - case 97902: // 'delete' 'node' - case 98414: // 'delete' 'nodes' - parse_DeleteExpr(); - break; - case 98010: // 'rename' 'node' - parse_RenameExpr(); - break; - case 98011: // 'replace' 'node' - case 133851: // 'replace' 'value' - parse_ReplaceExpr(); - break; - case 15975: // 'copy' '$' - parse_TransformExpr(); - break; - case 85102: // 'delete' 'json' - parse_JSONDeleteExpr(); - break; - case 85151: // 'insert' 'json' - parse_JSONInsertExpr(); - break; - case 85210: // 'rename' 'json' - parse_JSONRenameExpr(); - break; - case 85211: // 'replace' 'json' - parse_JSONReplaceExpr(); - break; - case 77: // 'append' - parse_JSONAppendExpr(); - break; - default: - parse_OrExpr(); - } - eventHandler.endNonterminal("ExprSimple", e0); - } - - function try_ExprSimple() - { - switch (l1) - { - case 218: // 'rename' - lookahead2W(232); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | - break; - case 219: // 'replace' - lookahead2W(235); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | - break; - case 110: // 'delete' - case 159: // 'insert' - lookahead2W(234); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | - break; - case 103: // 'copy' - case 129: // 'every' - case 235: // 'some' - lookahead2W(229); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | - break; - default: - lk = l1; - } - switch (lk) - { - case 16001: // 'every' '$' - case 16107: // 'some' '$' - try_QuantifiedExpr(); - break; - case 97951: // 'insert' 'node' - case 98463: // 'insert' 'nodes' - try_InsertExpr(); - break; - case 97902: // 'delete' 'node' - case 98414: // 'delete' 'nodes' - try_DeleteExpr(); - break; - case 98010: // 'rename' 'node' - try_RenameExpr(); - break; - case 98011: // 'replace' 'node' - case 133851: // 'replace' 'value' - try_ReplaceExpr(); - break; - case 15975: // 'copy' '$' - try_TransformExpr(); - break; - case 85102: // 'delete' 'json' - try_JSONDeleteExpr(); - break; - case 85151: // 'insert' 'json' - try_JSONInsertExpr(); - break; - case 85210: // 'rename' 'json' - try_JSONRenameExpr(); - break; - case 85211: // 'replace' 'json' - try_JSONReplaceExpr(); - break; - case 77: // 'append' - try_JSONAppendExpr(); - break; - default: - try_OrExpr(); - } - } - - function parse_JSONDeleteExpr() - { - eventHandler.startNonterminal("JSONDeleteExpr", e0); - shift(110); // 'delete' - lookahead1W(56); // S^WS | '(:' | 'json' - shift(166); // 'json' - lookahead1W(262); // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | - whitespace(); - parse_PostfixExpr(); - eventHandler.endNonterminal("JSONDeleteExpr", e0); - } - - function try_JSONDeleteExpr() - { - shiftT(110); // 'delete' - lookahead1W(56); // S^WS | '(:' | 'json' - shiftT(166); // 'json' - lookahead1W(262); // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | - try_PostfixExpr(); - } - - function parse_JSONInsertExpr() - { - eventHandler.startNonterminal("JSONInsertExpr", e0); - shift(159); // 'insert' - lookahead1W(56); // S^WS | '(:' | 'json' - shift(166); // 'json' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - shift(163); // 'into' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - switch (l1) - { - case 81: // 'at' - lookahead2W(69); // S^WS | '(:' | 'position' - break; - default: - lk = l1; - } - if (lk == 108113) // 'at' 'position' - { - lk = memoized(9, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - shiftT(81); // 'at' - lookahead1W(69); // S^WS | '(:' | 'position' - shiftT(211); // 'position' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - lk = -1; - } - catch (p1A) - { - lk = -2; - } - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(9, e0, lk); - } - } - if (lk == -1) - { - shift(81); // 'at' - lookahead1W(69); // S^WS | '(:' | 'position' - shift(211); // 'position' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - } - eventHandler.endNonterminal("JSONInsertExpr", e0); - } - - function try_JSONInsertExpr() - { - shiftT(159); // 'insert' - lookahead1W(56); // S^WS | '(:' | 'json' - shiftT(166); // 'json' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - shiftT(163); // 'into' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - switch (l1) - { - case 81: // 'at' - lookahead2W(69); // S^WS | '(:' | 'position' - break; - default: - lk = l1; - } - if (lk == 108113) // 'at' 'position' - { - lk = memoized(9, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - shiftT(81); // 'at' - lookahead1W(69); // S^WS | '(:' | 'position' - shiftT(211); // 'position' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - memoize(9, e0A, -1); - } - catch (p1A) - { - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(9, e0A, -2); - } - lk = -2; - } - } - if (lk == -1) - { - shiftT(81); // 'at' - lookahead1W(69); // S^WS | '(:' | 'position' - shiftT(211); // 'position' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - } - - function parse_JSONRenameExpr() - { - eventHandler.startNonterminal("JSONRenameExpr", e0); - shift(218); // 'rename' - lookahead1W(56); // S^WS | '(:' | 'json' - shift(166); // 'json' - lookahead1W(262); // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | - whitespace(); - parse_PostfixExpr(); - shift(79); // 'as' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("JSONRenameExpr", e0); - } - - function try_JSONRenameExpr() - { - shiftT(218); // 'rename' - lookahead1W(56); // S^WS | '(:' | 'json' - shiftT(166); // 'json' - lookahead1W(262); // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | - try_PostfixExpr(); - shiftT(79); // 'as' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - - function parse_JSONReplaceExpr() - { - eventHandler.startNonterminal("JSONReplaceExpr", e0); - shift(219); // 'replace' - lookahead1W(56); // S^WS | '(:' | 'json' - shift(166); // 'json' - lookahead1W(82); // S^WS | '(:' | 'value' - shift(261); // 'value' - lookahead1W(64); // S^WS | '(:' | 'of' - shift(196); // 'of' - lookahead1W(262); // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | - whitespace(); - parse_PostfixExpr(); - shift(270); // 'with' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("JSONReplaceExpr", e0); - } - - function try_JSONReplaceExpr() - { - shiftT(219); // 'replace' - lookahead1W(56); // S^WS | '(:' | 'json' - shiftT(166); // 'json' - lookahead1W(82); // S^WS | '(:' | 'value' - shiftT(261); // 'value' - lookahead1W(64); // S^WS | '(:' | 'of' - shiftT(196); // 'of' - lookahead1W(262); // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | - try_PostfixExpr(); - shiftT(270); // 'with' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - - function parse_JSONAppendExpr() - { - eventHandler.startNonterminal("JSONAppendExpr", e0); - shift(77); // 'append' - lookahead1W(56); // S^WS | '(:' | 'json' - shift(166); // 'json' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - shift(163); // 'into' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("JSONAppendExpr", e0); - } - - function try_JSONAppendExpr() - { - shiftT(77); // 'append' - lookahead1W(56); // S^WS | '(:' | 'json' - shiftT(166); // 'json' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - shiftT(163); // 'into' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - - function parse_CommonContent() - { - eventHandler.startNonterminal("CommonContent", e0); - switch (l1) - { - case 12: // PredefinedEntityRef - shift(12); // PredefinedEntityRef - break; - case 23: // CharRef - shift(23); // CharRef - break; - case 277: // '{{' - shift(277); // '{{' - break; - case 283: // '}}' - shift(283); // '}}' - break; - default: - parse_BlockExpr(); - } - eventHandler.endNonterminal("CommonContent", e0); - } - - function try_CommonContent() - { - switch (l1) - { - case 12: // PredefinedEntityRef - shiftT(12); // PredefinedEntityRef - break; - case 23: // CharRef - shiftT(23); // CharRef - break; - case 277: // '{{' - shiftT(277); // '{{' - break; - case 283: // '}}' - shiftT(283); // '}}' - break; - default: - try_BlockExpr(); - } - } - - function parse_ContentExpr() - { - eventHandler.startNonterminal("ContentExpr", e0); - parse_StatementsAndExpr(); - eventHandler.endNonterminal("ContentExpr", e0); - } - - function try_ContentExpr() - { - try_StatementsAndExpr(); - } - - function parse_CompDocConstructor() - { - eventHandler.startNonterminal("CompDocConstructor", e0); - shift(119); // 'document' - lookahead1W(87); // S^WS | '(:' | '{' - whitespace(); - parse_BlockExpr(); - eventHandler.endNonterminal("CompDocConstructor", e0); - } - - function try_CompDocConstructor() - { - shiftT(119); // 'document' - lookahead1W(87); // S^WS | '(:' | '{' - try_BlockExpr(); - } - - function parse_CompAttrConstructor() - { - eventHandler.startNonterminal("CompAttrConstructor", e0); - shift(82); // 'attribute' - lookahead1W(256); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - switch (l1) - { - case 276: // '{' - shift(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Expr(); - shift(282); // '}' - break; - default: - whitespace(); - parse_EQName(); - } - lookahead1W(87); // S^WS | '(:' | '{' - switch (l1) - { - case 276: // '{' - lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - default: - lk = l1; - } - if (lk == 144660) // '{' '}' - { - lk = memoized(10, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - shiftT(276); // '{' - lookahead1W(88); // S^WS | '(:' | '}' - shiftT(282); // '}' - lk = -1; - } - catch (p1A) - { - lk = -2; - } - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(10, e0, lk); - } - } - switch (lk) - { - case -1: - shift(276); // '{' - lookahead1W(88); // S^WS | '(:' | '}' - shift(282); // '}' - break; - default: - whitespace(); - parse_BlockExpr(); - } - eventHandler.endNonterminal("CompAttrConstructor", e0); - } - - function try_CompAttrConstructor() - { - shiftT(82); // 'attribute' - lookahead1W(256); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - switch (l1) - { - case 276: // '{' - shiftT(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Expr(); - shiftT(282); // '}' - break; - default: - try_EQName(); - } - lookahead1W(87); // S^WS | '(:' | '{' - switch (l1) - { - case 276: // '{' - lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - default: - lk = l1; - } - if (lk == 144660) // '{' '}' - { - lk = memoized(10, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - shiftT(276); // '{' - lookahead1W(88); // S^WS | '(:' | '}' - shiftT(282); // '}' - memoize(10, e0A, -1); - lk = -3; - } - catch (p1A) - { - lk = -2; - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(10, e0A, -2); - } - } - } - switch (lk) - { - case -1: - shiftT(276); // '{' - lookahead1W(88); // S^WS | '(:' | '}' - shiftT(282); // '}' - break; - case -3: - break; - default: - try_BlockExpr(); - } - } - - function parse_CompPIConstructor() - { - eventHandler.startNonterminal("CompPIConstructor", e0); - shift(216); // 'processing-instruction' - lookahead1W(249); // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - switch (l1) - { - case 276: // '{' - shift(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_Expr(); - shift(282); // '}' - break; - default: - whitespace(); - parse_NCName(); - } - lookahead1W(87); // S^WS | '(:' | '{' - switch (l1) - { - case 276: // '{' - lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - default: - lk = l1; - } - if (lk == 144660) // '{' '}' - { - lk = memoized(11, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - shiftT(276); // '{' - lookahead1W(88); // S^WS | '(:' | '}' - shiftT(282); // '}' - lk = -1; - } - catch (p1A) - { - lk = -2; - } - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(11, e0, lk); - } - } - switch (lk) - { - case -1: - shift(276); // '{' - lookahead1W(88); // S^WS | '(:' | '}' - shift(282); // '}' - break; - default: - whitespace(); - parse_BlockExpr(); - } - eventHandler.endNonterminal("CompPIConstructor", e0); - } - - function try_CompPIConstructor() - { - shiftT(216); // 'processing-instruction' - lookahead1W(249); // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - switch (l1) - { - case 276: // '{' - shiftT(276); // '{' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_Expr(); - shiftT(282); // '}' - break; - default: - try_NCName(); - } - lookahead1W(87); // S^WS | '(:' | '{' - switch (l1) - { - case 276: // '{' - lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - default: - lk = l1; - } - if (lk == 144660) // '{' '}' - { - lk = memoized(11, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - shiftT(276); // '{' - lookahead1W(88); // S^WS | '(:' | '}' - shiftT(282); // '}' - memoize(11, e0A, -1); - lk = -3; - } - catch (p1A) - { - lk = -2; - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(11, e0A, -2); - } - } - } - switch (lk) - { - case -1: - shiftT(276); // '{' - lookahead1W(88); // S^WS | '(:' | '}' - shiftT(282); // '}' - break; - case -3: - break; - default: - try_BlockExpr(); - } - } - - function parse_CompCommentConstructor() - { - eventHandler.startNonterminal("CompCommentConstructor", e0); - shift(96); // 'comment' - lookahead1W(87); // S^WS | '(:' | '{' - whitespace(); - parse_BlockExpr(); - eventHandler.endNonterminal("CompCommentConstructor", e0); - } - - function try_CompCommentConstructor() - { - shiftT(96); // 'comment' - lookahead1W(87); // S^WS | '(:' | '{' - try_BlockExpr(); - } - - function parse_CompTextConstructor() - { - eventHandler.startNonterminal("CompTextConstructor", e0); - shift(244); // 'text' - lookahead1W(87); // S^WS | '(:' | '{' - whitespace(); - parse_BlockExpr(); - eventHandler.endNonterminal("CompTextConstructor", e0); - } - - function try_CompTextConstructor() - { - shiftT(244); // 'text' - lookahead1W(87); // S^WS | '(:' | '{' - try_BlockExpr(); - } - - function parse_PrimaryExpr() - { - eventHandler.startNonterminal("PrimaryExpr", e0); - switch (l1) - { - case 184: // 'namespace' - lookahead2W(254); // NCName^Token | S^WS | '#' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - break; - case 216: // 'processing-instruction' - lookahead2W(252); // NCName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' | - break; - case 276: // '{' - lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - case 82: // 'attribute' - case 121: // 'element' - lookahead2W(257); // EQName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' | - break; - case 96: // 'comment' - case 244: // 'text' - lookahead2W(93); // S^WS | '#' | '(:' | '{' - break; - case 119: // 'document' - case 202: // 'ordered' - case 256: // 'unordered' - lookahead2W(139); // S^WS | '#' | '(' | '(:' | '{' - break; - case 6: // EQName^Token - case 70: // 'after' - case 72: // 'allowing' - case 73: // 'ancestor' - case 74: // 'ancestor-or-self' - case 75: // 'and' - case 78: // 'array' - case 79: // 'as' - case 80: // 'ascending' - case 81: // 'at' - case 83: // 'base-uri' - case 84: // 'before' - case 85: // 'boundary-space' - case 86: // 'break' - case 88: // 'case' - case 89: // 'cast' - case 90: // 'castable' - case 91: // 'catch' - case 93: // 'child' - case 94: // 'collation' - case 97: // 'constraint' - case 98: // 'construction' - case 101: // 'context' - case 102: // 'continue' - case 103: // 'copy' - case 104: // 'copy-namespaces' - case 105: // 'count' - case 106: // 'decimal-format' - case 108: // 'declare' - case 109: // 'default' - case 110: // 'delete' - case 111: // 'descendant' - case 112: // 'descendant-or-self' - case 113: // 'descending' - case 118: // 'div' - case 122: // 'else' - case 123: // 'empty' - case 125: // 'encoding' - case 126: // 'end' - case 128: // 'eq' - case 129: // 'every' - case 131: // 'except' - case 132: // 'exit' - case 133: // 'external' - case 134: // 'first' - case 135: // 'following' - case 136: // 'following-sibling' - case 137: // 'for' - case 141: // 'ft-option' - case 146: // 'ge' - case 148: // 'group' - case 150: // 'gt' - case 151: // 'idiv' - case 153: // 'import' - case 154: // 'in' - case 155: // 'index' - case 159: // 'insert' - case 160: // 'instance' - case 161: // 'integrity' - case 162: // 'intersect' - case 163: // 'into' - case 164: // 'is' - case 167: // 'json-item' - case 170: // 'last' - case 171: // 'lax' - case 172: // 'le' - case 174: // 'let' - case 176: // 'loop' - case 178: // 'lt' - case 180: // 'mod' - case 181: // 'modify' - case 182: // 'module' - case 186: // 'ne' - case 192: // 'nodes' - case 194: // 'object' - case 198: // 'only' - case 199: // 'option' - case 200: // 'or' - case 201: // 'order' - case 203: // 'ordering' - case 206: // 'parent' - case 212: // 'preceding' - case 213: // 'preceding-sibling' - case 218: // 'rename' - case 219: // 'replace' - case 220: // 'return' - case 221: // 'returning' - case 222: // 'revalidation' - case 224: // 'satisfies' - case 225: // 'schema' - case 228: // 'score' - case 229: // 'self' - case 234: // 'sliding' - case 235: // 'some' - case 236: // 'stable' - case 237: // 'start' - case 240: // 'strict' - case 248: // 'to' - case 249: // 'treat' - case 250: // 'try' - case 251: // 'tumbling' - case 252: // 'type' - case 254: // 'union' - case 257: // 'updating' - case 260: // 'validate' - case 261: // 'value' - case 262: // 'variable' - case 263: // 'version' - case 266: // 'where' - case 267: // 'while' - case 270: // 'with' - case 274: // 'xquery' - lookahead2W(92); // S^WS | '#' | '(' | '(:' - break; - default: - lk = l1; - } - if (lk == 2836 // '{' Wildcard - || lk == 3348 // '{' EQName^Token - || lk == 4372 // '{' IntegerLiteral - || lk == 4884 // '{' DecimalLiteral - || lk == 5396 // '{' DoubleLiteral - || lk == 5908 // '{' StringLiteral - || lk == 16148 // '{' '$' - || lk == 16660 // '{' '%' - || lk == 17684 // '{' '(' - || lk == 18196 // '{' '(#' - || lk == 20756 // '{' '+' - || lk == 21780 // '{' '-' - || lk == 22804 // '{' '.' - || lk == 23316 // '{' '..' - || lk == 23828 // '{' '/' - || lk == 24340 // '{' '//' - || lk == 27924 // '{' '<' - || lk == 28436 // '{' '<!--' - || lk == 30484 // '{' '<?' - || lk == 34068 // '{' '@' - || lk == 35092 // '{' '[' - || lk == 36116 // '{' 'after' - || lk == 37140 // '{' 'allowing' - || lk == 37652 // '{' 'ancestor' - || lk == 38164 // '{' 'ancestor-or-self' - || lk == 38676 // '{' 'and' - || lk == 39700 // '{' 'append' - || lk == 40212 // '{' 'array' - || lk == 40724 // '{' 'as' - || lk == 41236 // '{' 'ascending' - || lk == 41748 // '{' 'at' - || lk == 42260 // '{' 'attribute' - || lk == 42772 // '{' 'base-uri' - || lk == 43284 // '{' 'before' - || lk == 43796 // '{' 'boundary-space' - || lk == 44308 // '{' 'break' - || lk == 45332 // '{' 'case' - || lk == 45844 // '{' 'cast' - || lk == 46356 // '{' 'castable' - || lk == 46868 // '{' 'catch' - || lk == 47892 // '{' 'child' - || lk == 48404 // '{' 'collation' - || lk == 49428 // '{' 'comment' - || lk == 49940 // '{' 'constraint' - || lk == 50452 // '{' 'construction' - || lk == 51988 // '{' 'context' - || lk == 52500 // '{' 'continue' - || lk == 53012 // '{' 'copy' - || lk == 53524 // '{' 'copy-namespaces' - || lk == 54036 // '{' 'count' - || lk == 54548 // '{' 'decimal-format' - || lk == 55572 // '{' 'declare' - || lk == 56084 // '{' 'default' - || lk == 56596 // '{' 'delete' - || lk == 57108 // '{' 'descendant' - || lk == 57620 // '{' 'descendant-or-self' - || lk == 58132 // '{' 'descending' - || lk == 60692 // '{' 'div' - || lk == 61204 // '{' 'document' - || lk == 61716 // '{' 'document-node' - || lk == 62228 // '{' 'element' - || lk == 62740 // '{' 'else' - || lk == 63252 // '{' 'empty' - || lk == 63764 // '{' 'empty-sequence' - || lk == 64276 // '{' 'encoding' - || lk == 64788 // '{' 'end' - || lk == 65812 // '{' 'eq' - || lk == 66324 // '{' 'every' - || lk == 67348 // '{' 'except' - || lk == 67860 // '{' 'exit' - || lk == 68372 // '{' 'external' - || lk == 68884 // '{' 'first' - || lk == 69396 // '{' 'following' - || lk == 69908 // '{' 'following-sibling' - || lk == 70420 // '{' 'for' - || lk == 72468 // '{' 'ft-option' - || lk == 74516 // '{' 'function' - || lk == 75028 // '{' 'ge' - || lk == 76052 // '{' 'group' - || lk == 77076 // '{' 'gt' - || lk == 77588 // '{' 'idiv' - || lk == 78100 // '{' 'if' - || lk == 78612 // '{' 'import' - || lk == 79124 // '{' 'in' - || lk == 79636 // '{' 'index' - || lk == 81684 // '{' 'insert' - || lk == 82196 // '{' 'instance' - || lk == 82708 // '{' 'integrity' - || lk == 83220 // '{' 'intersect' - || lk == 83732 // '{' 'into' - || lk == 84244 // '{' 'is' - || lk == 84756 // '{' 'item' - || lk == 85780 // '{' 'json-item' - || lk == 87316 // '{' 'last' - || lk == 87828 // '{' 'lax' - || lk == 88340 // '{' 'le' - || lk == 89364 // '{' 'let' - || lk == 90388 // '{' 'loop' - || lk == 91412 // '{' 'lt' - || lk == 92436 // '{' 'mod' - || lk == 92948 // '{' 'modify' - || lk == 93460 // '{' 'module' - || lk == 94484 // '{' 'namespace' - || lk == 94996 // '{' 'namespace-node' - || lk == 95508 // '{' 'ne' - || lk == 98068 // '{' 'node' - || lk == 98580 // '{' 'nodes' - || lk == 99604 // '{' 'object' - || lk == 101652 // '{' 'only' - || lk == 102164 // '{' 'option' - || lk == 102676 // '{' 'or' - || lk == 103188 // '{' 'order' - || lk == 103700 // '{' 'ordered' - || lk == 104212 // '{' 'ordering' - || lk == 105748 // '{' 'parent' - || lk == 108820 // '{' 'preceding' - || lk == 109332 // '{' 'preceding-sibling' - || lk == 110868 // '{' 'processing-instruction' - || lk == 111892 // '{' 'rename' - || lk == 112404 // '{' 'replace' - || lk == 112916 // '{' 'return' - || lk == 113428 // '{' 'returning' - || lk == 113940 // '{' 'revalidation' - || lk == 114964 // '{' 'satisfies' - || lk == 115476 // '{' 'schema' - || lk == 115988 // '{' 'schema-attribute' - || lk == 116500 // '{' 'schema-element' - || lk == 117012 // '{' 'score' - || lk == 117524 // '{' 'self' - || lk == 120084 // '{' 'sliding' - || lk == 120596 // '{' 'some' - || lk == 121108 // '{' 'stable' - || lk == 121620 // '{' 'start' - || lk == 123156 // '{' 'strict' - || lk == 124692 // '{' 'switch' - || lk == 125204 // '{' 'text' - || lk == 127252 // '{' 'to' - || lk == 127764 // '{' 'treat' - || lk == 128276 // '{' 'try' - || lk == 128788 // '{' 'tumbling' - || lk == 129300 // '{' 'type' - || lk == 129812 // '{' 'typeswitch' - || lk == 130324 // '{' 'union' - || lk == 131348 // '{' 'unordered' - || lk == 131860 // '{' 'updating' - || lk == 133396 // '{' 'validate' - || lk == 133908 // '{' 'value' - || lk == 134420 // '{' 'variable' - || lk == 134932 // '{' 'version' - || lk == 136468 // '{' 'where' - || lk == 136980 // '{' 'while' - || lk == 138516 // '{' 'with' - || lk == 140564 // '{' 'xquery' - || lk == 141588 // '{' '{' - || lk == 142612 // '{' '{|' - || lk == 144660) // '{' '}' - { - lk = memoized(12, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - try_BlockExpr(); - lk = -10; - } - catch (p10A) - { - lk = -11; - } - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(12, e0, lk); - } - } - switch (lk) - { - case 8: // IntegerLiteral - case 9: // DecimalLiteral - case 10: // DoubleLiteral - case 11: // StringLiteral - parse_Literal(); - break; - case 31: // '$' - parse_VarRef(); - break; - case 34: // '(' - parse_ParenthesizedExpr(); - break; - case 44: // '.' - parse_ContextItemExpr(); - break; - case 17414: // EQName^Token '(' - case 17478: // 'after' '(' - case 17480: // 'allowing' '(' - case 17481: // 'ancestor' '(' - case 17482: // 'ancestor-or-self' '(' - case 17483: // 'and' '(' - case 17486: // 'array' '(' - case 17487: // 'as' '(' - case 17488: // 'ascending' '(' - case 17489: // 'at' '(' - case 17491: // 'base-uri' '(' - case 17492: // 'before' '(' - case 17493: // 'boundary-space' '(' - case 17494: // 'break' '(' - case 17496: // 'case' '(' - case 17497: // 'cast' '(' - case 17498: // 'castable' '(' - case 17499: // 'catch' '(' - case 17501: // 'child' '(' - case 17502: // 'collation' '(' - case 17505: // 'constraint' '(' - case 17506: // 'construction' '(' - case 17509: // 'context' '(' - case 17510: // 'continue' '(' - case 17511: // 'copy' '(' - case 17512: // 'copy-namespaces' '(' - case 17513: // 'count' '(' - case 17514: // 'decimal-format' '(' - case 17516: // 'declare' '(' - case 17517: // 'default' '(' - case 17518: // 'delete' '(' - case 17519: // 'descendant' '(' - case 17520: // 'descendant-or-self' '(' - case 17521: // 'descending' '(' - case 17526: // 'div' '(' - case 17527: // 'document' '(' - case 17530: // 'else' '(' - case 17531: // 'empty' '(' - case 17533: // 'encoding' '(' - case 17534: // 'end' '(' - case 17536: // 'eq' '(' - case 17537: // 'every' '(' - case 17539: // 'except' '(' - case 17540: // 'exit' '(' - case 17541: // 'external' '(' - case 17542: // 'first' '(' - case 17543: // 'following' '(' - case 17544: // 'following-sibling' '(' - case 17545: // 'for' '(' - case 17549: // 'ft-option' '(' - case 17554: // 'ge' '(' - case 17556: // 'group' '(' - case 17558: // 'gt' '(' - case 17559: // 'idiv' '(' - case 17561: // 'import' '(' - case 17562: // 'in' '(' - case 17563: // 'index' '(' - case 17567: // 'insert' '(' - case 17568: // 'instance' '(' - case 17569: // 'integrity' '(' - case 17570: // 'intersect' '(' - case 17571: // 'into' '(' - case 17572: // 'is' '(' - case 17575: // 'json-item' '(' - case 17578: // 'last' '(' - case 17579: // 'lax' '(' - case 17580: // 'le' '(' - case 17582: // 'let' '(' - case 17584: // 'loop' '(' - case 17586: // 'lt' '(' - case 17588: // 'mod' '(' - case 17589: // 'modify' '(' - case 17590: // 'module' '(' - case 17592: // 'namespace' '(' - case 17594: // 'ne' '(' - case 17600: // 'nodes' '(' - case 17602: // 'object' '(' - case 17606: // 'only' '(' - case 17607: // 'option' '(' - case 17608: // 'or' '(' - case 17609: // 'order' '(' - case 17610: // 'ordered' '(' - case 17611: // 'ordering' '(' - case 17614: // 'parent' '(' - case 17620: // 'preceding' '(' - case 17621: // 'preceding-sibling' '(' - case 17626: // 'rename' '(' - case 17627: // 'replace' '(' - case 17628: // 'return' '(' - case 17629: // 'returning' '(' - case 17630: // 'revalidation' '(' - case 17632: // 'satisfies' '(' - case 17633: // 'schema' '(' - case 17636: // 'score' '(' - case 17637: // 'self' '(' - case 17642: // 'sliding' '(' - case 17643: // 'some' '(' - case 17644: // 'stable' '(' - case 17645: // 'start' '(' - case 17648: // 'strict' '(' - case 17656: // 'to' '(' - case 17657: // 'treat' '(' - case 17658: // 'try' '(' - case 17659: // 'tumbling' '(' - case 17660: // 'type' '(' - case 17662: // 'union' '(' - case 17664: // 'unordered' '(' - case 17665: // 'updating' '(' - case 17668: // 'validate' '(' - case 17669: // 'value' '(' - case 17670: // 'variable' '(' - case 17671: // 'version' '(' - case 17674: // 'where' '(' - case 17675: // 'while' '(' - case 17678: // 'with' '(' - case 17682: // 'xquery' '(' - parse_FunctionCall(); - break; - case 141514: // 'ordered' '{' - parse_OrderedExpr(); - break; - case 141568: // 'unordered' '{' - parse_UnorderedExpr(); - break; - case 32: // '%' - case 120: // 'document-node' - case 124: // 'empty-sequence' - case 145: // 'function' - case 152: // 'if' - case 165: // 'item' - case 185: // 'namespace-node' - case 191: // 'node' - case 226: // 'schema-attribute' - case 227: // 'schema-element' - case 243: // 'switch' - case 253: // 'typeswitch' - case 14854: // EQName^Token '#' - case 14918: // 'after' '#' - case 14920: // 'allowing' '#' - case 14921: // 'ancestor' '#' - case 14922: // 'ancestor-or-self' '#' - case 14923: // 'and' '#' - case 14926: // 'array' '#' - case 14927: // 'as' '#' - case 14928: // 'ascending' '#' - case 14929: // 'at' '#' - case 14930: // 'attribute' '#' - case 14931: // 'base-uri' '#' - case 14932: // 'before' '#' - case 14933: // 'boundary-space' '#' - case 14934: // 'break' '#' - case 14936: // 'case' '#' - case 14937: // 'cast' '#' - case 14938: // 'castable' '#' - case 14939: // 'catch' '#' - case 14941: // 'child' '#' - case 14942: // 'collation' '#' - case 14944: // 'comment' '#' - case 14945: // 'constraint' '#' - case 14946: // 'construction' '#' - case 14949: // 'context' '#' - case 14950: // 'continue' '#' - case 14951: // 'copy' '#' - case 14952: // 'copy-namespaces' '#' - case 14953: // 'count' '#' - case 14954: // 'decimal-format' '#' - case 14956: // 'declare' '#' - case 14957: // 'default' '#' - case 14958: // 'delete' '#' - case 14959: // 'descendant' '#' - case 14960: // 'descendant-or-self' '#' - case 14961: // 'descending' '#' - case 14966: // 'div' '#' - case 14967: // 'document' '#' - case 14969: // 'element' '#' - case 14970: // 'else' '#' - case 14971: // 'empty' '#' - case 14973: // 'encoding' '#' - case 14974: // 'end' '#' - case 14976: // 'eq' '#' - case 14977: // 'every' '#' - case 14979: // 'except' '#' - case 14980: // 'exit' '#' - case 14981: // 'external' '#' - case 14982: // 'first' '#' - case 14983: // 'following' '#' - case 14984: // 'following-sibling' '#' - case 14985: // 'for' '#' - case 14989: // 'ft-option' '#' - case 14994: // 'ge' '#' - case 14996: // 'group' '#' - case 14998: // 'gt' '#' - case 14999: // 'idiv' '#' - case 15001: // 'import' '#' - case 15002: // 'in' '#' - case 15003: // 'index' '#' - case 15007: // 'insert' '#' - case 15008: // 'instance' '#' - case 15009: // 'integrity' '#' - case 15010: // 'intersect' '#' - case 15011: // 'into' '#' - case 15012: // 'is' '#' - case 15015: // 'json-item' '#' - case 15018: // 'last' '#' - case 15019: // 'lax' '#' - case 15020: // 'le' '#' - case 15022: // 'let' '#' - case 15024: // 'loop' '#' - case 15026: // 'lt' '#' - case 15028: // 'mod' '#' - case 15029: // 'modify' '#' - case 15030: // 'module' '#' - case 15032: // 'namespace' '#' - case 15034: // 'ne' '#' - case 15040: // 'nodes' '#' - case 15042: // 'object' '#' - case 15046: // 'only' '#' - case 15047: // 'option' '#' - case 15048: // 'or' '#' - case 15049: // 'order' '#' - case 15050: // 'ordered' '#' - case 15051: // 'ordering' '#' - case 15054: // 'parent' '#' - case 15060: // 'preceding' '#' - case 15061: // 'preceding-sibling' '#' - case 15064: // 'processing-instruction' '#' - case 15066: // 'rename' '#' - case 15067: // 'replace' '#' - case 15068: // 'return' '#' - case 15069: // 'returning' '#' - case 15070: // 'revalidation' '#' - case 15072: // 'satisfies' '#' - case 15073: // 'schema' '#' - case 15076: // 'score' '#' - case 15077: // 'self' '#' - case 15082: // 'sliding' '#' - case 15083: // 'some' '#' - case 15084: // 'stable' '#' - case 15085: // 'start' '#' - case 15088: // 'strict' '#' - case 15092: // 'text' '#' - case 15096: // 'to' '#' - case 15097: // 'treat' '#' - case 15098: // 'try' '#' - case 15099: // 'tumbling' '#' - case 15100: // 'type' '#' - case 15102: // 'union' '#' - case 15104: // 'unordered' '#' - case 15105: // 'updating' '#' - case 15108: // 'validate' '#' - case 15109: // 'value' '#' - case 15110: // 'variable' '#' - case 15111: // 'version' '#' - case 15114: // 'where' '#' - case 15115: // 'while' '#' - case 15118: // 'with' '#' - case 15122: // 'xquery' '#' - parse_FunctionItemExpr(); - break; - case -10: - parse_BlockExpr(); - break; - case -11: - parse_ObjectConstructor(); - break; - case 68: // '[' - parse_ArrayConstructor(); - break; - case 278: // '{|' - parse_JSONSimpleObjectUnion(); - break; - default: - parse_Constructor(); - } - eventHandler.endNonterminal("PrimaryExpr", e0); - } - - function try_PrimaryExpr() - { - switch (l1) - { - case 184: // 'namespace' - lookahead2W(254); // NCName^Token | S^WS | '#' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - break; - case 216: // 'processing-instruction' - lookahead2W(252); // NCName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' | - break; - case 276: // '{' - lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - break; - case 82: // 'attribute' - case 121: // 'element' - lookahead2W(257); // EQName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' | - break; - case 96: // 'comment' - case 244: // 'text' - lookahead2W(93); // S^WS | '#' | '(:' | '{' - break; - case 119: // 'document' - case 202: // 'ordered' - case 256: // 'unordered' - lookahead2W(139); // S^WS | '#' | '(' | '(:' | '{' - break; - case 6: // EQName^Token - case 70: // 'after' - case 72: // 'allowing' - case 73: // 'ancestor' - case 74: // 'ancestor-or-self' - case 75: // 'and' - case 78: // 'array' - case 79: // 'as' - case 80: // 'ascending' - case 81: // 'at' - case 83: // 'base-uri' - case 84: // 'before' - case 85: // 'boundary-space' - case 86: // 'break' - case 88: // 'case' - case 89: // 'cast' - case 90: // 'castable' - case 91: // 'catch' - case 93: // 'child' - case 94: // 'collation' - case 97: // 'constraint' - case 98: // 'construction' - case 101: // 'context' - case 102: // 'continue' - case 103: // 'copy' - case 104: // 'copy-namespaces' - case 105: // 'count' - case 106: // 'decimal-format' - case 108: // 'declare' - case 109: // 'default' - case 110: // 'delete' - case 111: // 'descendant' - case 112: // 'descendant-or-self' - case 113: // 'descending' - case 118: // 'div' - case 122: // 'else' - case 123: // 'empty' - case 125: // 'encoding' - case 126: // 'end' - case 128: // 'eq' - case 129: // 'every' - case 131: // 'except' - case 132: // 'exit' - case 133: // 'external' - case 134: // 'first' - case 135: // 'following' - case 136: // 'following-sibling' - case 137: // 'for' - case 141: // 'ft-option' - case 146: // 'ge' - case 148: // 'group' - case 150: // 'gt' - case 151: // 'idiv' - case 153: // 'import' - case 154: // 'in' - case 155: // 'index' - case 159: // 'insert' - case 160: // 'instance' - case 161: // 'integrity' - case 162: // 'intersect' - case 163: // 'into' - case 164: // 'is' - case 167: // 'json-item' - case 170: // 'last' - case 171: // 'lax' - case 172: // 'le' - case 174: // 'let' - case 176: // 'loop' - case 178: // 'lt' - case 180: // 'mod' - case 181: // 'modify' - case 182: // 'module' - case 186: // 'ne' - case 192: // 'nodes' - case 194: // 'object' - case 198: // 'only' - case 199: // 'option' - case 200: // 'or' - case 201: // 'order' - case 203: // 'ordering' - case 206: // 'parent' - case 212: // 'preceding' - case 213: // 'preceding-sibling' - case 218: // 'rename' - case 219: // 'replace' - case 220: // 'return' - case 221: // 'returning' - case 222: // 'revalidation' - case 224: // 'satisfies' - case 225: // 'schema' - case 228: // 'score' - case 229: // 'self' - case 234: // 'sliding' - case 235: // 'some' - case 236: // 'stable' - case 237: // 'start' - case 240: // 'strict' - case 248: // 'to' - case 249: // 'treat' - case 250: // 'try' - case 251: // 'tumbling' - case 252: // 'type' - case 254: // 'union' - case 257: // 'updating' - case 260: // 'validate' - case 261: // 'value' - case 262: // 'variable' - case 263: // 'version' - case 266: // 'where' - case 267: // 'while' - case 270: // 'with' - case 274: // 'xquery' - lookahead2W(92); // S^WS | '#' | '(' | '(:' - break; - default: - lk = l1; - } - if (lk == 2836 // '{' Wildcard - || lk == 3348 // '{' EQName^Token - || lk == 4372 // '{' IntegerLiteral - || lk == 4884 // '{' DecimalLiteral - || lk == 5396 // '{' DoubleLiteral - || lk == 5908 // '{' StringLiteral - || lk == 16148 // '{' '$' - || lk == 16660 // '{' '%' - || lk == 17684 // '{' '(' - || lk == 18196 // '{' '(#' - || lk == 20756 // '{' '+' - || lk == 21780 // '{' '-' - || lk == 22804 // '{' '.' - || lk == 23316 // '{' '..' - || lk == 23828 // '{' '/' - || lk == 24340 // '{' '//' - || lk == 27924 // '{' '<' - || lk == 28436 // '{' '<!--' - || lk == 30484 // '{' '<?' - || lk == 34068 // '{' '@' - || lk == 35092 // '{' '[' - || lk == 36116 // '{' 'after' - || lk == 37140 // '{' 'allowing' - || lk == 37652 // '{' 'ancestor' - || lk == 38164 // '{' 'ancestor-or-self' - || lk == 38676 // '{' 'and' - || lk == 39700 // '{' 'append' - || lk == 40212 // '{' 'array' - || lk == 40724 // '{' 'as' - || lk == 41236 // '{' 'ascending' - || lk == 41748 // '{' 'at' - || lk == 42260 // '{' 'attribute' - || lk == 42772 // '{' 'base-uri' - || lk == 43284 // '{' 'before' - || lk == 43796 // '{' 'boundary-space' - || lk == 44308 // '{' 'break' - || lk == 45332 // '{' 'case' - || lk == 45844 // '{' 'cast' - || lk == 46356 // '{' 'castable' - || lk == 46868 // '{' 'catch' - || lk == 47892 // '{' 'child' - || lk == 48404 // '{' 'collation' - || lk == 49428 // '{' 'comment' - || lk == 49940 // '{' 'constraint' - || lk == 50452 // '{' 'construction' - || lk == 51988 // '{' 'context' - || lk == 52500 // '{' 'continue' - || lk == 53012 // '{' 'copy' - || lk == 53524 // '{' 'copy-namespaces' - || lk == 54036 // '{' 'count' - || lk == 54548 // '{' 'decimal-format' - || lk == 55572 // '{' 'declare' - || lk == 56084 // '{' 'default' - || lk == 56596 // '{' 'delete' - || lk == 57108 // '{' 'descendant' - || lk == 57620 // '{' 'descendant-or-self' - || lk == 58132 // '{' 'descending' - || lk == 60692 // '{' 'div' - || lk == 61204 // '{' 'document' - || lk == 61716 // '{' 'document-node' - || lk == 62228 // '{' 'element' - || lk == 62740 // '{' 'else' - || lk == 63252 // '{' 'empty' - || lk == 63764 // '{' 'empty-sequence' - || lk == 64276 // '{' 'encoding' - || lk == 64788 // '{' 'end' - || lk == 65812 // '{' 'eq' - || lk == 66324 // '{' 'every' - || lk == 67348 // '{' 'except' - || lk == 67860 // '{' 'exit' - || lk == 68372 // '{' 'external' - || lk == 68884 // '{' 'first' - || lk == 69396 // '{' 'following' - || lk == 69908 // '{' 'following-sibling' - || lk == 70420 // '{' 'for' - || lk == 72468 // '{' 'ft-option' - || lk == 74516 // '{' 'function' - || lk == 75028 // '{' 'ge' - || lk == 76052 // '{' 'group' - || lk == 77076 // '{' 'gt' - || lk == 77588 // '{' 'idiv' - || lk == 78100 // '{' 'if' - || lk == 78612 // '{' 'import' - || lk == 79124 // '{' 'in' - || lk == 79636 // '{' 'index' - || lk == 81684 // '{' 'insert' - || lk == 82196 // '{' 'instance' - || lk == 82708 // '{' 'integrity' - || lk == 83220 // '{' 'intersect' - || lk == 83732 // '{' 'into' - || lk == 84244 // '{' 'is' - || lk == 84756 // '{' 'item' - || lk == 85780 // '{' 'json-item' - || lk == 87316 // '{' 'last' - || lk == 87828 // '{' 'lax' - || lk == 88340 // '{' 'le' - || lk == 89364 // '{' 'let' - || lk == 90388 // '{' 'loop' - || lk == 91412 // '{' 'lt' - || lk == 92436 // '{' 'mod' - || lk == 92948 // '{' 'modify' - || lk == 93460 // '{' 'module' - || lk == 94484 // '{' 'namespace' - || lk == 94996 // '{' 'namespace-node' - || lk == 95508 // '{' 'ne' - || lk == 98068 // '{' 'node' - || lk == 98580 // '{' 'nodes' - || lk == 99604 // '{' 'object' - || lk == 101652 // '{' 'only' - || lk == 102164 // '{' 'option' - || lk == 102676 // '{' 'or' - || lk == 103188 // '{' 'order' - || lk == 103700 // '{' 'ordered' - || lk == 104212 // '{' 'ordering' - || lk == 105748 // '{' 'parent' - || lk == 108820 // '{' 'preceding' - || lk == 109332 // '{' 'preceding-sibling' - || lk == 110868 // '{' 'processing-instruction' - || lk == 111892 // '{' 'rename' - || lk == 112404 // '{' 'replace' - || lk == 112916 // '{' 'return' - || lk == 113428 // '{' 'returning' - || lk == 113940 // '{' 'revalidation' - || lk == 114964 // '{' 'satisfies' - || lk == 115476 // '{' 'schema' - || lk == 115988 // '{' 'schema-attribute' - || lk == 116500 // '{' 'schema-element' - || lk == 117012 // '{' 'score' - || lk == 117524 // '{' 'self' - || lk == 120084 // '{' 'sliding' - || lk == 120596 // '{' 'some' - || lk == 121108 // '{' 'stable' - || lk == 121620 // '{' 'start' - || lk == 123156 // '{' 'strict' - || lk == 124692 // '{' 'switch' - || lk == 125204 // '{' 'text' - || lk == 127252 // '{' 'to' - || lk == 127764 // '{' 'treat' - || lk == 128276 // '{' 'try' - || lk == 128788 // '{' 'tumbling' - || lk == 129300 // '{' 'type' - || lk == 129812 // '{' 'typeswitch' - || lk == 130324 // '{' 'union' - || lk == 131348 // '{' 'unordered' - || lk == 131860 // '{' 'updating' - || lk == 133396 // '{' 'validate' - || lk == 133908 // '{' 'value' - || lk == 134420 // '{' 'variable' - || lk == 134932 // '{' 'version' - || lk == 136468 // '{' 'where' - || lk == 136980 // '{' 'while' - || lk == 138516 // '{' 'with' - || lk == 140564 // '{' 'xquery' - || lk == 141588 // '{' '{' - || lk == 142612 // '{' '{|' - || lk == 144660) // '{' '}' - { - lk = memoized(12, e0); - if (lk == 0) - { - var b0A = b0; var e0A = e0; var l1A = l1; - var b1A = b1; var e1A = e1; var l2A = l2; - var b2A = b2; var e2A = e2; - try - { - try_BlockExpr(); - memoize(12, e0A, -10); - lk = -14; - } - catch (p10A) - { - lk = -11; - b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else { - b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else { - b2 = b2A; e2 = e2A; end = e2A; }} - memoize(12, e0A, -11); - } - } - } - switch (lk) - { - case 8: // IntegerLiteral - case 9: // DecimalLiteral - case 10: // DoubleLiteral - case 11: // StringLiteral - try_Literal(); - break; - case 31: // '$' - try_VarRef(); - break; - case 34: // '(' - try_ParenthesizedExpr(); - break; - case 44: // '.' - try_ContextItemExpr(); - break; - case 17414: // EQName^Token '(' - case 17478: // 'after' '(' - case 17480: // 'allowing' '(' - case 17481: // 'ancestor' '(' - case 17482: // 'ancestor-or-self' '(' - case 17483: // 'and' '(' - case 17486: // 'array' '(' - case 17487: // 'as' '(' - case 17488: // 'ascending' '(' - case 17489: // 'at' '(' - case 17491: // 'base-uri' '(' - case 17492: // 'before' '(' - case 17493: // 'boundary-space' '(' - case 17494: // 'break' '(' - case 17496: // 'case' '(' - case 17497: // 'cast' '(' - case 17498: // 'castable' '(' - case 17499: // 'catch' '(' - case 17501: // 'child' '(' - case 17502: // 'collation' '(' - case 17505: // 'constraint' '(' - case 17506: // 'construction' '(' - case 17509: // 'context' '(' - case 17510: // 'continue' '(' - case 17511: // 'copy' '(' - case 17512: // 'copy-namespaces' '(' - case 17513: // 'count' '(' - case 17514: // 'decimal-format' '(' - case 17516: // 'declare' '(' - case 17517: // 'default' '(' - case 17518: // 'delete' '(' - case 17519: // 'descendant' '(' - case 17520: // 'descendant-or-self' '(' - case 17521: // 'descending' '(' - case 17526: // 'div' '(' - case 17527: // 'document' '(' - case 17530: // 'else' '(' - case 17531: // 'empty' '(' - case 17533: // 'encoding' '(' - case 17534: // 'end' '(' - case 17536: // 'eq' '(' - case 17537: // 'every' '(' - case 17539: // 'except' '(' - case 17540: // 'exit' '(' - case 17541: // 'external' '(' - case 17542: // 'first' '(' - case 17543: // 'following' '(' - case 17544: // 'following-sibling' '(' - case 17545: // 'for' '(' - case 17549: // 'ft-option' '(' - case 17554: // 'ge' '(' - case 17556: // 'group' '(' - case 17558: // 'gt' '(' - case 17559: // 'idiv' '(' - case 17561: // 'import' '(' - case 17562: // 'in' '(' - case 17563: // 'index' '(' - case 17567: // 'insert' '(' - case 17568: // 'instance' '(' - case 17569: // 'integrity' '(' - case 17570: // 'intersect' '(' - case 17571: // 'into' '(' - case 17572: // 'is' '(' - case 17575: // 'json-item' '(' - case 17578: // 'last' '(' - case 17579: // 'lax' '(' - case 17580: // 'le' '(' - case 17582: // 'let' '(' - case 17584: // 'loop' '(' - case 17586: // 'lt' '(' - case 17588: // 'mod' '(' - case 17589: // 'modify' '(' - case 17590: // 'module' '(' - case 17592: // 'namespace' '(' - case 17594: // 'ne' '(' - case 17600: // 'nodes' '(' - case 17602: // 'object' '(' - case 17606: // 'only' '(' - case 17607: // 'option' '(' - case 17608: // 'or' '(' - case 17609: // 'order' '(' - case 17610: // 'ordered' '(' - case 17611: // 'ordering' '(' - case 17614: // 'parent' '(' - case 17620: // 'preceding' '(' - case 17621: // 'preceding-sibling' '(' - case 17626: // 'rename' '(' - case 17627: // 'replace' '(' - case 17628: // 'return' '(' - case 17629: // 'returning' '(' - case 17630: // 'revalidation' '(' - case 17632: // 'satisfies' '(' - case 17633: // 'schema' '(' - case 17636: // 'score' '(' - case 17637: // 'self' '(' - case 17642: // 'sliding' '(' - case 17643: // 'some' '(' - case 17644: // 'stable' '(' - case 17645: // 'start' '(' - case 17648: // 'strict' '(' - case 17656: // 'to' '(' - case 17657: // 'treat' '(' - case 17658: // 'try' '(' - case 17659: // 'tumbling' '(' - case 17660: // 'type' '(' - case 17662: // 'union' '(' - case 17664: // 'unordered' '(' - case 17665: // 'updating' '(' - case 17668: // 'validate' '(' - case 17669: // 'value' '(' - case 17670: // 'variable' '(' - case 17671: // 'version' '(' - case 17674: // 'where' '(' - case 17675: // 'while' '(' - case 17678: // 'with' '(' - case 17682: // 'xquery' '(' - try_FunctionCall(); - break; - case 141514: // 'ordered' '{' - try_OrderedExpr(); - break; - case 141568: // 'unordered' '{' - try_UnorderedExpr(); - break; - case 32: // '%' - case 120: // 'document-node' - case 124: // 'empty-sequence' - case 145: // 'function' - case 152: // 'if' - case 165: // 'item' - case 185: // 'namespace-node' - case 191: // 'node' - case 226: // 'schema-attribute' - case 227: // 'schema-element' - case 243: // 'switch' - case 253: // 'typeswitch' - case 14854: // EQName^Token '#' - case 14918: // 'after' '#' - case 14920: // 'allowing' '#' - case 14921: // 'ancestor' '#' - case 14922: // 'ancestor-or-self' '#' - case 14923: // 'and' '#' - case 14926: // 'array' '#' - case 14927: // 'as' '#' - case 14928: // 'ascending' '#' - case 14929: // 'at' '#' - case 14930: // 'attribute' '#' - case 14931: // 'base-uri' '#' - case 14932: // 'before' '#' - case 14933: // 'boundary-space' '#' - case 14934: // 'break' '#' - case 14936: // 'case' '#' - case 14937: // 'cast' '#' - case 14938: // 'castable' '#' - case 14939: // 'catch' '#' - case 14941: // 'child' '#' - case 14942: // 'collation' '#' - case 14944: // 'comment' '#' - case 14945: // 'constraint' '#' - case 14946: // 'construction' '#' - case 14949: // 'context' '#' - case 14950: // 'continue' '#' - case 14951: // 'copy' '#' - case 14952: // 'copy-namespaces' '#' - case 14953: // 'count' '#' - case 14954: // 'decimal-format' '#' - case 14956: // 'declare' '#' - case 14957: // 'default' '#' - case 14958: // 'delete' '#' - case 14959: // 'descendant' '#' - case 14960: // 'descendant-or-self' '#' - case 14961: // 'descending' '#' - case 14966: // 'div' '#' - case 14967: // 'document' '#' - case 14969: // 'element' '#' - case 14970: // 'else' '#' - case 14971: // 'empty' '#' - case 14973: // 'encoding' '#' - case 14974: // 'end' '#' - case 14976: // 'eq' '#' - case 14977: // 'every' '#' - case 14979: // 'except' '#' - case 14980: // 'exit' '#' - case 14981: // 'external' '#' - case 14982: // 'first' '#' - case 14983: // 'following' '#' - case 14984: // 'following-sibling' '#' - case 14985: // 'for' '#' - case 14989: // 'ft-option' '#' - case 14994: // 'ge' '#' - case 14996: // 'group' '#' - case 14998: // 'gt' '#' - case 14999: // 'idiv' '#' - case 15001: // 'import' '#' - case 15002: // 'in' '#' - case 15003: // 'index' '#' - case 15007: // 'insert' '#' - case 15008: // 'instance' '#' - case 15009: // 'integrity' '#' - case 15010: // 'intersect' '#' - case 15011: // 'into' '#' - case 15012: // 'is' '#' - case 15015: // 'json-item' '#' - case 15018: // 'last' '#' - case 15019: // 'lax' '#' - case 15020: // 'le' '#' - case 15022: // 'let' '#' - case 15024: // 'loop' '#' - case 15026: // 'lt' '#' - case 15028: // 'mod' '#' - case 15029: // 'modify' '#' - case 15030: // 'module' '#' - case 15032: // 'namespace' '#' - case 15034: // 'ne' '#' - case 15040: // 'nodes' '#' - case 15042: // 'object' '#' - case 15046: // 'only' '#' - case 15047: // 'option' '#' - case 15048: // 'or' '#' - case 15049: // 'order' '#' - case 15050: // 'ordered' '#' - case 15051: // 'ordering' '#' - case 15054: // 'parent' '#' - case 15060: // 'preceding' '#' - case 15061: // 'preceding-sibling' '#' - case 15064: // 'processing-instruction' '#' - case 15066: // 'rename' '#' - case 15067: // 'replace' '#' - case 15068: // 'return' '#' - case 15069: // 'returning' '#' - case 15070: // 'revalidation' '#' - case 15072: // 'satisfies' '#' - case 15073: // 'schema' '#' - case 15076: // 'score' '#' - case 15077: // 'self' '#' - case 15082: // 'sliding' '#' - case 15083: // 'some' '#' - case 15084: // 'stable' '#' - case 15085: // 'start' '#' - case 15088: // 'strict' '#' - case 15092: // 'text' '#' - case 15096: // 'to' '#' - case 15097: // 'treat' '#' - case 15098: // 'try' '#' - case 15099: // 'tumbling' '#' - case 15100: // 'type' '#' - case 15102: // 'union' '#' - case 15104: // 'unordered' '#' - case 15105: // 'updating' '#' - case 15108: // 'validate' '#' - case 15109: // 'value' '#' - case 15110: // 'variable' '#' - case 15111: // 'version' '#' - case 15114: // 'where' '#' - case 15115: // 'while' '#' - case 15118: // 'with' '#' - case 15122: // 'xquery' '#' - try_FunctionItemExpr(); - break; - case -10: - try_BlockExpr(); - break; - case -11: - try_ObjectConstructor(); - break; - case 68: // '[' - try_ArrayConstructor(); - break; - case 278: // '{|' - try_JSONSimpleObjectUnion(); - break; - case -14: - break; - default: - try_Constructor(); - } - } - - function parse_JSONSimpleObjectUnion() - { - eventHandler.startNonterminal("JSONSimpleObjectUnion", e0); - shift(278); // '{|' - lookahead1W(272); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - if (l1 != 281) // '|}' - { - whitespace(); - parse_Expr(); - } - shift(281); // '|}' - eventHandler.endNonterminal("JSONSimpleObjectUnion", e0); - } - - function try_JSONSimpleObjectUnion() - { - shiftT(278); // '{|' - lookahead1W(272); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - if (l1 != 281) // '|}' - { - try_Expr(); - } - shiftT(281); // '|}' - } - - function parse_ObjectConstructor() - { - eventHandler.startNonterminal("ObjectConstructor", e0); - shift(276); // '{' - lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - if (l1 != 282) // '}' - { - whitespace(); - parse_PairConstructor(); - for (;;) - { - if (l1 != 41) // ',' - { - break; - } - shift(41); // ',' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_PairConstructor(); - } - } - shift(282); // '}' - eventHandler.endNonterminal("ObjectConstructor", e0); - } - - function try_ObjectConstructor() - { - shiftT(276); // '{' - lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - if (l1 != 282) // '}' - { - try_PairConstructor(); - for (;;) - { - if (l1 != 41) // ',' - { - break; - } - shiftT(41); // ',' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_PairConstructor(); - } - } - shiftT(282); // '}' - } - - function parse_PairConstructor() - { - eventHandler.startNonterminal("PairConstructor", e0); - parse_ExprSingle(); - shift(49); // ':' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_ExprSingle(); - eventHandler.endNonterminal("PairConstructor", e0); - } - - function try_PairConstructor() - { - try_ExprSingle(); - shiftT(49); // ':' - lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_ExprSingle(); - } - - function parse_ArrayConstructor() - { - eventHandler.startNonterminal("ArrayConstructor", e0); - shift(68); // '[' - lookahead1W(271); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - if (l1 != 69) // ']' - { - whitespace(); - parse_Expr(); - } - shift(69); // ']' - eventHandler.endNonterminal("ArrayConstructor", e0); - } - - function try_ArrayConstructor() - { - shiftT(68); // '[' - lookahead1W(271); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - if (l1 != 69) // ']' - { - try_Expr(); - } - shiftT(69); // ']' - } - - function parse_BlockExpr() - { - eventHandler.startNonterminal("BlockExpr", e0); - shift(276); // '{' - lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_StatementsAndOptionalExpr(); - shift(282); // '}' - eventHandler.endNonterminal("BlockExpr", e0); - } - - function try_BlockExpr() - { - shiftT(276); // '{' - lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - try_StatementsAndOptionalExpr(); - shiftT(282); // '}' - } - - function parse_FunctionDecl() - { - eventHandler.startNonterminal("FunctionDecl", e0); - shift(145); // 'function' - lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_EQName(); - lookahead1W(22); // S^WS | '(' | '(:' - shift(34); // '(' - lookahead1W(94); // S^WS | '$' | '(:' | ')' - if (l1 == 31) // '$' - { - whitespace(); - parse_ParamList(); - } - shift(37); // ')' - lookahead1W(148); // S^WS | '(:' | 'as' | 'external' | '{' - if (l1 == 79) // 'as' - { - shift(79); // 'as' - lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' | - whitespace(); - parse_SequenceType(); - } - lookahead1W(118); // S^WS | '(:' | 'external' | '{' - switch (l1) - { - case 276: // '{' - shift(276); // '{' - lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | - whitespace(); - parse_StatementsAndOptionalExpr(); - shift(282); // '}' - break; - default: - shift(133); // 'external' - } - eventHandler.endNonterminal("FunctionDecl", e0); - } - - var lk, b0, e0; - var l1, b1, e1; - var l2, b2, e2; - var bx, ex, sx, lx, tx; - var eventHandler; - var memo; - - function memoize(i, e, v) - { - memo[(e << 4) + i] = v; - } - - function memoized(i, e) - { - var v = memo[(e << 4) + i]; - return typeof v != "undefined" ? v : 0; - } - - function error(b, e, s, l, t) - { - if (e > ex) - { - bx = b; - ex = e; - sx = s; - lx = l; - tx = t; - } - throw new self.ParseException(bx, ex, sx, lx, tx); - } - - function shift(t) - { - if (l1 == t) - { - whitespace(); - eventHandler.terminal(XQueryParser.TOKEN[l1], b1, e1 > size ? size : e1); - b0 = b1; e0 = e1; l1 = l2; if (l1 != 0) { - b1 = b2; e1 = e2; l2 = 0; } - } - else - { - error(b1, e1, 0, l1, t); - } - } - - function shiftT(t) - { - if (l1 == t) - { - b0 = b1; e0 = e1; l1 = l2; if (l1 != 0) { - b1 = b2; e1 = e2; l2 = 0; } - } - else - { - error(b1, e1, 0, l1, t); - } - } - - function skip(code) - { - var b0W = b0; var e0W = e0; var l1W = l1; - var b1W = b1; var e1W = e1; - - l1 = code; b1 = begin; e1 = end; - l2 = 0; - - try_Whitespace(); - - b0 = b0W; e0 = e0W; l1 = l1W; if (l1 != 0) { - b1 = b1W; e1 = e1W; } - } - - function whitespace() - { - if (e0 != b1) - { - b0 = e0; - e0 = b1; - eventHandler.whitespace(b0, e0); - } - } - - function matchW(set) - { - var code; - for (;;) - { - code = match(set); - if (code != 22) // S^WS - { - if (code != 36) // '(:' - { - break; - } - skip(code); - } - } - return code; - } - - function lookahead1W(set) - { - if (l1 == 0) - { - l1 = matchW(set); - b1 = begin; - e1 = end; - } - } - - function lookahead2W(set) - { - if (l2 == 0) - { - l2 = matchW(set); - b2 = begin; - e2 = end; - } - lk = (l2 << 9) | l1; - } - - function lookahead1(set) - { - if (l1 == 0) - { - l1 = match(set); - b1 = begin; - e1 = end; - } - } - - function lookahead2(set) - { - if (l2 == 0) - { - l2 = match(set); - b2 = begin; - e2 = end; - } - lk = (l2 << 9) | l1; - } - - var input; - var size; - var begin; - var end; - - function match(tokenSetId) - { - var nonbmp = false; - begin = end; - var current = end; - var result = XQueryParser.INITIAL[tokenSetId]; - var state = 0; - - for (var code = result & 4095; code != 0; ) - { - var charclass; - var c0 = current < size ? input.charCodeAt(current) : 0; - ++current; - if (c0 < 0x80) - { - charclass = XQueryParser.MAP0[c0]; - } - else if (c0 < 0xd800) - { - var c1 = c0 >> 4; - charclass = XQueryParser.MAP1[(c0 & 15) + XQueryParser.MAP1[(c1 & 31) + XQueryParser.MAP1[c1 >> 5]]]; - } - else - { - if (c0 < 0xdc00) - { - var c1 = current < size ? input.charCodeAt(current) : 0; - if (c1 >= 0xdc00 && c1 < 0xe000) - { - ++current; - c0 = ((c0 & 0x3ff) << 10) + (c1 & 0x3ff) + 0x10000; - nonbmp = true; - } - } - var lo = 0, hi = 5; - for (var m = 3; ; m = (hi + lo) >> 1) - { - if (XQueryParser.MAP2[m] > c0) hi = m - 1; - else if (XQueryParser.MAP2[6 + m] < c0) lo = m + 1; - else {charclass = XQueryParser.MAP2[12 + m]; break;} - if (lo > hi) {charclass = 0; break;} - } - } - - state = code; - var i0 = (charclass << 12) + code - 1; - code = XQueryParser.TRANSITION[(i0 & 15) + XQueryParser.TRANSITION[i0 >> 4]]; - - if (code > 4095) - { - result = code; - code &= 4095; - end = current; - } - } - - result >>= 12; - if (result == 0) - { - end = current - 1; - var c1 = end < size ? input.charCodeAt(end) : 0; - if (c1 >= 0xdc00 && c1 < 0xe000) --end; - return error(begin, end, state, -1, -1); - } - - if (nonbmp) - { - for (var i = result >> 9; i > 0; --i) - { - --end; - var c1 = end < size ? input.charCodeAt(end) : 0; - if (c1 >= 0xdc00 && c1 < 0xe000) --end; - } - } - else - { - end -= result >> 9; - } - - return (result & 511) - 1; - } -} - -XQueryParser.getTokenSet = function(tokenSetId) -{ - var set = []; - var s = tokenSetId < 0 ? - tokenSetId : INITIAL[tokenSetId] & 4095; - for (var i = 0; i < 284; i += 32) - { - var j = i; - var i0 = (i >> 5) * 3684 + s - 1; - var i1 = i0 >> 2; - var i2 = i1 >> 2; - var f = XQueryParser.EXPECTED[(i0 & 3) + XQueryParser.EXPECTED[(i1 & 3) + XQueryParser.EXPECTED[(i2 & 7) + XQueryParser.EXPECTED[i2 >> 3]]]]; - for ( ; f != 0; f >>>= 1, ++j) - { - if ((f & 1) != 0) - { - set.push(XQueryParser.TOKEN[j]); - } - } - } - return set; -}; - -XQueryParser.MAP0 = -[ 70, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 26, 30, 30, 30, 30, 30, 31, 32, 33, 30, 30, 34, 30, 30, 35, 30, 30, 30, 36, 30, 30, 37, 38, 39, 38, 30, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 38, 38 -]; - -XQueryParser.MAP1 = -[ 108, 124, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 156, 181, 181, 181, 181, 181, 214, 215, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 247, 261, 277, 293, 309, 355, 371, 387, 423, 423, 423, 415, 339, 331, 339, 331, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 440, 440, 440, 440, 440, 440, 440, 324, 339, 339, 339, 339, 339, 339, 339, 339, 401, 423, 423, 424, 422, 423, 423, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 338, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 423, 70, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 26, 30, 30, 30, 30, 30, 31, 32, 33, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 38, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 34, 30, 30, 35, 30, 30, 30, 36, 30, 30, 37, 38, 39, 38, 30, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 30, 30, 38, 38, 38, 38, 38, 38, 38, 69, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69 -]; - -XQueryParser.MAP2 = -[ 57344, 63744, 64976, 65008, 65536, 983040, 63743, 64975, 65007, 65533, 983039, 1114111, 38, 30, 38, 30, 30, 38 -]; - -XQueryParser.INITIAL = -[ 1, 12290, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 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, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284 -]; - -XQueryParser.TRANSITION = -[ 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22007, 18176, 18196, 18196, 18196, 18203, 18196, 18196, 18196, 18196, 18230, 18196, 18196, 18196, 18196, 18219, 18196, 18180, 18246, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 18411, 20907, 20920, 20932, 20944, 22539, 18416, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 37625, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 21008, 21032, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21632, 21055, 23546, 23546, 23546, 21178, 23546, 23546, 23916, 42362, 21241, 23546, 23546, 23546, 23546, 19298, 47203, 21077, 21110, 23546, 23546, 23546, 35799, 23546, 23546, 21194, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 21229, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21358, 21323, 23546, 23546, 23546, 26152, 23546, 23546, 27593, 23546, 21369, 29482, 21257, 21282, 21273, 21304, 21317, 21346, 20967, 23546, 23546, 23546, 28947, 23546, 23546, 21385, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 20711, 21423, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 21446, 26048, 18745, 18766, 18771, 20561, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23540, 23546, 23546, 23546, 25880, 23545, 23546, 31245, 23546, 21468, 23534, 21504, 23546, 21511, 23546, 21527, 21539, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 21567, 23546, 23546, 23546, 31874, 23546, 23546, 21586, 23546, 23546, 21608, 21620, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 35211, 23546, 23546, 23546, 23546, 23546, 23546, 23424, 21648, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 21681, 18544, 18567, 18590, 50977, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21736, 21705, 23546, 23546, 23546, 44539, 23546, 23546, 24265, 25689, 25607, 23546, 23546, 23546, 23546, 26450, 47502, 21724, 21752, 23546, 23546, 23546, 35799, 23546, 23546, 21783, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 20237, 21819, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21551, 21857, 21913, 21913, 21913, 21864, 21908, 21913, 21918, 21967, 21842, 21949, 21880, 21961, 21896, 21934, 21983, 21995, 20967, 23546, 23546, 23546, 26225, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 22023, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 28636, 23546, 23546, 23546, 25912, 50946, 23546, 50080, 50952, 21369, 28635, 23546, 22054, 22060, 22076, 22111, 22121, 22137, 23546, 23546, 23546, 30755, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 22183, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 27655, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 51066, 39748, 22869, 22242, 22228, 22245, 22261, 22277, 22288, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 20285, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 18648, 40763, 24585, 22304, 22324, 22304, 22338, 24585, 22308, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 22361, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 22386, 23546, 23546, 23546, 25841, 18403, 23546, 19576, 22382, 44281, 22402, 22429, 22434, 22434, 22450, 22385, 22413, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22473, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 25653, 22498, 22518, 22498, 22532, 25653, 22502, 22555, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27132, 23546, 42897, 23546, 44844, 38626, 22584, 22361, 37471, 23546, 23546, 23546, 23546, 22587, 47563, 46856, 47563, 47563, 22603, 35356, 22824, 22824, 34828, 22804, 22621, 22804, 22804, 33187, 36943, 23546, 23546, 23546, 23546, 23546, 26071, 23546, 22641, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 43701, 32739, 23546, 23546, 23546, 23546, 23546, 29474, 22702, 23546, 33124, 44563, 47563, 47563, 47563, 47564, 22719, 35350, 22824, 22764, 22824, 22767, 35689, 22783, 22804, 22803, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 27587, 23546, 23546, 47562, 46826, 47563, 47563, 27195, 22821, 42846, 22824, 22824, 22824, 30376, 22804, 22841, 22804, 22804, 29883, 33199, 23546, 23546, 21430, 23546, 49502, 48973, 47563, 47563, 36153, 45209, 22824, 22824, 39816, 27834, 22804, 22804, 43796, 30403, 39964, 23546, 23546, 22861, 23546, 47560, 22885, 47563, 23113, 22903, 22824, 33078, 22920, 22804, 38116, 23546, 23546, 22937, 29174, 22980, 47563, 34384, 42527, 22825, 23019, 22804, 31964, 47447, 46606, 23083, 36624, 23105, 32340, 30673, 23131, 36549, 23164, 40907, 43074, 23200, 23229, 23275, 36645, 36686, 33550, 48975, 23107, 30672, 23141, 39417, 23313, 23334, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 24855, 21369, 23546, 23546, 23546, 23546, 23546, 20980, 20992, 23383, 23546, 23546, 23546, 35799, 23546, 23546, 23420, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 23440, 27132, 23546, 23546, 23546, 44844, 23546, 23546, 18368, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 22603, 22824, 22824, 22824, 34828, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 26071, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23485, 23546, 23546, 23546, 26606, 23546, 23546, 23546, 23546, 21369, 28080, 23505, 23528, 23563, 23575, 28081, 23512, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 30821, 23546, 37478, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23598, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23184, 21369, 23546, 23546, 23546, 23546, 23546, 22653, 22665, 23615, 23546, 23546, 23546, 35799, 23546, 23546, 23644, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 23664, 27132, 23546, 23546, 23546, 44844, 23546, 23546, 23688, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 22603, 22824, 22824, 22824, 34828, 22804, 22804, 22804, 22804, 39677, 48779, 23733, 23546, 23546, 23546, 23546, 34921, 23753, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 23777, 48792, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 41753, 22821, 22824, 22824, 22824, 22824, 44122, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 34866, 22821, 22824, 22824, 22824, 22824, 23826, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 39721, 23546, 23546, 23546, 30797, 25982, 23546, 23546, 23849, 21369, 20313, 44188, 23887, 23893, 23909, 23546, 49114, 23932, 23546, 23546, 23546, 36603, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 24187, 24465, 24820, 25200, 24258, 18282, 18849, 18305, 23964, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 23993, 24116, 24017, 24046, 24001, 24088, 25090, 24132, 24812, 24103, 24159, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 24182, 25436, 24884, 24206, 24190, 24890, 24819, 24363, 24227, 24819, 24414, 24143, 25214, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 24243, 24030, 25425, 24281, 24706, 24308, 24337, 24350, 24389, 24405, 24517, 24423, 25208, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 24439, 19364, 24455, 25063, 24489, 24505, 24533, 25266, 24373, 24545, 24561, 24577, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 19809, 24679, 24601, 25048, 19406, 24473, 24617, 25251, 25017, 24736, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 24633, 24673, 24695, 24722, 24779, 24801, 24836, 23977, 20842, 20016, 18679, 20827, 20042, 24871, 24906, 24935, 24951, 25006, 25411, 25295, 20159, 20175, 20206, 25033, 24292, 25079, 25281, 25106, 20376, 20392, 19394, 24919, 24657, 20462, 19676, 24211, 24785, 32258, 19353, 24647, 24966, 20473, 24060, 25136, 20616, 25172, 25188, 25236, 24072, 25311, 25362, 25396, 25452, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 21328, 23546, 23546, 23546, 25841, 25477, 23546, 23546, 25472, 32915, 25493, 25501, 25501, 25501, 25517, 21330, 25540, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 25581, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20499, 25597, 18792, 18808, 18830, 23628, 18814, 25623, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 21016, 25645, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 25669, 25705, 25721, 19477, 25754, 19498, 25737, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 18708, 21452, 19692, 19708, 20143, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 50535, 23259, 25770, 25770, 25770, 25779, 21123, 21135, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 25220, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 25802, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21147, 20888, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 22959, 25825, 25825, 25825, 25834, 20891, 22964, 25857, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 27140, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 25873, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25552, 25561, 23546, 23546, 23546, 26852, 23546, 23546, 23546, 23546, 21369, 33245, 25896, 25896, 25896, 25905, 36950, 33250, 25928, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 22366, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 25964, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 25998, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 26099, 23546, 23546, 23546, 23546, 25841, 21661, 23546, 23546, 21094, 43925, 23546, 23546, 23546, 21665, 26069, 21092, 26087, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 31389, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 26115, 26145, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 23546, 43987, 26168, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 50621, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 26285, 23546, 23546, 47562, 47563, 47563, 47563, 29369, 22821, 22824, 22824, 22824, 22824, 28821, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 26302, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 50621, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 29369, 22821, 22824, 22824, 22824, 22824, 28821, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 50621, 26321, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 29369, 22821, 22824, 22824, 22824, 22824, 28821, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 50621, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 19867, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 29369, 22821, 22824, 22824, 22824, 22824, 28821, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 26341, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 26341, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 50621, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 29369, 22821, 22824, 22824, 22824, 22824, 28821, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 23049, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26364, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 19293, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 31312, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 37937, 26399, 26410, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 26426, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 26445, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 41698, 26466, 26486, 26508, 26520, 41701, 26470, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 38227, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 26543, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 23546, 23546, 23424, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 28554, 23546, 26577, 26583, 26599, 47449, 44239, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 26622, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 26638, 20392, 51127, 20418, 50802, 26654, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 27306, 23546, 23546, 23546, 26527, 26683, 26714, 28322, 26699, 26731, 50814, 50823, 26775, 26789, 26801, 26817, 26829, 26204, 26845, 23599, 23546, 25326, 21171, 35898, 34903, 26868, 26909, 26948, 33311, 26979, 26959, 26995, 27011, 45967, 27047, 27063, 27101, 27117, 34536, 27156, 23546, 23546, 44844, 41240, 34846, 23546, 42415, 27173, 27664, 23546, 42356, 28101, 47563, 47563, 47563, 27192, 27418, 22824, 22824, 42533, 43762, 22804, 22804, 22804, 27211, 27231, 36943, 23546, 44839, 40944, 23546, 27267, 27287, 46640, 23546, 27304, 35519, 43402, 27322, 27344, 47563, 47563, 27380, 27403, 27436, 31453, 22824, 33011, 27464, 27493, 27533, 27556, 22804, 38069, 35418, 30315, 27573, 26241, 27609, 23546, 44532, 27629, 39107, 50620, 23546, 45009, 27646, 31107, 27698, 47563, 27746, 27765, 23297, 27785, 27825, 36368, 22824, 27859, 48139, 23833, 27991, 44504, 49256, 22804, 43572, 23672, 27877, 42988, 25683, 23546, 27893, 27913, 46094, 23546, 21213, 44018, 47563, 30489, 32462, 27941, 34820, 22824, 45399, 49012, 28821, 27978, 22804, 22804, 28014, 28034, 49064, 28072, 35792, 28097, 51046, 28117, 50856, 22994, 28137, 47563, 41728, 28206, 28229, 22824, 41433, 28267, 28290, 22804, 34572, 28320, 28338, 23546, 23546, 39715, 47560, 28358, 45550, 23113, 28379, 35308, 33078, 28399, 36714, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 41649, 28419, 28455, 40472, 38341, 28471, 38828, 40452, 28791, 24756, 33030, 27540, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 28526, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 34078, 28545, 23546, 28652, 28658, 28674, 28690, 28701, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 26963, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22605, 35842, 45303, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 46230, 50621, 28718, 23546, 28717, 23546, 48975, 47563, 47563, 47563, 27769, 28735, 22823, 22824, 22824, 22824, 49361, 49439, 22804, 22804, 22804, 22804, 28781, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 18289, 23546, 23546, 44779, 49528, 23546, 36898, 47563, 47563, 47563, 40417, 28807, 22824, 22824, 22824, 50340, 31197, 28844, 22804, 22804, 22804, 28863, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 21205, 28900, 28924, 28940, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 28963, 23546, 23546, 26527, 23546, 28992, 23546, 29010, 36977, 29029, 29038, 29054, 29069, 29081, 29097, 29109, 26204, 23546, 23546, 33645, 49739, 23546, 28529, 23546, 23546, 31365, 23546, 23546, 23546, 35995, 23546, 29125, 31167, 22824, 29149, 40337, 48749, 32108, 23546, 29172, 23546, 44844, 29190, 42384, 23546, 31347, 50774, 29209, 23546, 25948, 29214, 29230, 29291, 47563, 47563, 29309, 29325, 22824, 22824, 45608, 49036, 29349, 22804, 22804, 39677, 36943, 30220, 23546, 23546, 47099, 23546, 22095, 50621, 37205, 27682, 23546, 23546, 48975, 28152, 40051, 47563, 29366, 37135, 45217, 46920, 46953, 36665, 22824, 49439, 49901, 29385, 29404, 34563, 22804, 29885, 40883, 26241, 23546, 23546, 47600, 23546, 23546, 29423, 23546, 29445, 23546, 48976, 47563, 47563, 47563, 44406, 47564, 22821, 22824, 22824, 49328, 42575, 22767, 35849, 22804, 22804, 39288, 28274, 50448, 23672, 29464, 23546, 23546, 23546, 29498, 42828, 23546, 23546, 47562, 47563, 47563, 46820, 29369, 22821, 22824, 22824, 37856, 22824, 28821, 22804, 22804, 30184, 22804, 29883, 33199, 23546, 23546, 29517, 23546, 47519, 29538, 47563, 46768, 47563, 41728, 22824, 49353, 22824, 41433, 22804, 41641, 22804, 27843, 29565, 23546, 23546, 23546, 29581, 33988, 49629, 29610, 50265, 49148, 29627, 30732, 37573, 29644, 31970, 23546, 23546, 28626, 22586, 47563, 47563, 29661, 22824, 47375, 22804, 22804, 29679, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 45087, 23089, 29701, 47077, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 27251, 29717, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 21570, 23546, 23546, 26527, 23546, 29745, 24166, 23546, 32508, 29764, 29773, 29789, 29803, 29812, 29828, 29839, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 34673, 34671, 23546, 38486, 38493, 29855, 28213, 35842, 29875, 43066, 27800, 23546, 40629, 29901, 44844, 23546, 29926, 30774, 23546, 23546, 41541, 20026, 29946, 29989, 29293, 38320, 30005, 40270, 30031, 42116, 30052, 30082, 30100, 49972, 39453, 30135, 41942, 39677, 36943, 23546, 23546, 23546, 42078, 23546, 30162, 50621, 23546, 23546, 23546, 39564, 48975, 47563, 47563, 47563, 48721, 37135, 22823, 22824, 22824, 22824, 42777, 49439, 22804, 22804, 22804, 22804, 30182, 30146, 30200, 30236, 23546, 23546, 23546, 30252, 30271, 50620, 23546, 23546, 45468, 23469, 31420, 34156, 47563, 47563, 45201, 30292, 30331, 30348, 22824, 22824, 30365, 29156, 29407, 22804, 22804, 22804, 30399, 23672, 23807, 23546, 23546, 23546, 23546, 45523, 28572, 23546, 33872, 47563, 47563, 30419, 29369, 30438, 22824, 22824, 48645, 22824, 31904, 22804, 22804, 50360, 22804, 30539, 33199, 49920, 23546, 30462, 23546, 50724, 48973, 36270, 47563, 30480, 41728, 35391, 22824, 30505, 41433, 50493, 22804, 30530, 30403, 47447, 49732, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23251, 23546, 22586, 47563, 47563, 30555, 22824, 36108, 22804, 22804, 30575, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 30597, 46609, 47561, 23111, 30673, 39296, 30622, 30648, 30668, 30689, 19013, 30707, 30727, 30748, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23547, 30771, 23546, 26527, 25156, 30790, 23546, 30813, 24321, 30837, 30846, 30862, 30876, 30888, 30904, 30915, 26204, 22703, 30931, 26561, 35799, 30978, 26921, 26341, 27925, 30994, 31013, 31032, 31061, 31045, 31097, 31131, 31147, 31183, 31227, 31261, 31277, 39237, 39476, 31293, 33748, 31328, 22212, 31363, 31381, 41158, 23546, 23546, 40033, 23546, 22587, 32449, 31405, 47817, 28510, 31441, 31475, 46890, 31498, 30304, 31538, 22625, 36744, 47681, 39677, 36943, 23698, 29973, 31554, 29930, 31590, 23708, 31634, 39997, 31661, 48812, 31689, 31711, 31727, 31763, 31798, 31814, 29245, 31850, 40093, 31890, 34721, 31940, 35662, 31956, 31986, 27076, 32035, 32066, 32093, 32133, 26241, 50755, 23546, 43683, 23546, 32169, 19239, 32192, 32249, 22951, 24750, 43255, 32274, 47563, 32292, 45560, 22821, 32317, 22824, 42593, 48588, 50230, 35849, 32356, 22804, 45665, 32384, 32405, 32421, 23807, 25150, 32478, 32497, 47176, 23546, 32524, 45835, 36145, 40407, 31425, 32550, 44054, 32586, 34739, 22824, 32631, 32657, 30066, 33080, 32683, 47042, 40501, 29883, 33199, 23546, 45717, 33237, 23546, 23546, 32701, 31115, 42955, 32563, 41728, 45894, 41614, 32608, 41433, 33712, 42499, 35727, 30403, 47447, 28590, 32719, 48060, 32755, 32790, 42232, 33671, 32806, 37745, 39609, 32837, 40736, 33730, 32892, 32931, 32953, 19435, 22586, 32974, 48106, 28046, 33009, 33027, 33047, 48381, 35461, 47447, 40617, 22585, 47563, 50257, 22824, 33074, 36473, 36549, 33096, 40786, 36807, 32667, 39296, 33119, 43227, 48451, 49953, 33140, 24763, 23318, 45645, 33156, 33172, 33217, 47559, 33030, 30691, 33266, 33282, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 33306, 23546, 26527, 33327, 33345, 25456, 24849, 33370, 33400, 23546, 33386, 33428, 33437, 33453, 33464, 26204, 23546, 23546, 33480, 35799, 23546, 23546, 23546, 23546, 27288, 23546, 23546, 34477, 23546, 34484, 31605, 33499, 33519, 43660, 33545, 33568, 27800, 23546, 33621, 23546, 44844, 33621, 23546, 23546, 30997, 23546, 33640, 34051, 23546, 22587, 33661, 47563, 47563, 47563, 33687, 22824, 22824, 22824, 43762, 33703, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 50621, 23546, 23546, 23546, 33746, 48975, 47563, 47563, 47563, 43863, 37135, 22823, 22824, 22824, 22824, 34733, 49439, 22804, 22804, 22804, 22804, 33764, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 20258, 23546, 48976, 47563, 47563, 46759, 47563, 47564, 22821, 22824, 22824, 37850, 22824, 22767, 35849, 22804, 22804, 33781, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 23546, 43159, 23546, 47562, 47563, 47563, 31773, 29369, 22821, 22824, 22824, 49239, 22824, 28821, 22804, 22804, 22804, 33801, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 33820, 23546, 23546, 22586, 44762, 47563, 23109, 33840, 22825, 34299, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 23335, 32233, 42307, 22729, 33859, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 32176, 23546, 23546, 41552, 33893, 33902, 33918, 33924, 33940, 33956, 33967, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 37894, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 28765, 41920, 23546, 23546, 44844, 23546, 23546, 23546, 39585, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 43177, 23546, 23546, 45738, 48975, 47563, 47563, 47563, 47563, 37135, 41960, 22824, 22824, 22824, 22824, 47410, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 20340, 23546, 23178, 20358, 23546, 23546, 20360, 33983, 47563, 47563, 34004, 47563, 47564, 22821, 22824, 36824, 22824, 22824, 22767, 35849, 22804, 33785, 22804, 22804, 29879, 34024, 23546, 23546, 23546, 34050, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 32147, 47539, 23546, 48973, 47563, 47563, 39206, 45209, 22824, 22824, 43898, 27834, 22804, 22804, 34943, 30403, 47447, 34067, 47158, 34094, 23546, 34121, 32984, 34141, 34177, 43533, 34196, 34244, 36447, 34263, 31970, 28608, 23546, 34315, 34336, 34355, 34372, 28875, 33605, 34412, 34436, 34454, 31964, 47447, 46606, 43054, 32993, 34501, 34521, 30673, 34552, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 43326, 34588, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 41690, 23546, 26286, 34628, 23546, 23546, 23546, 34692, 23546, 34693, 23546, 23546, 34656, 34689, 40521, 22887, 37164, 34396, 43815, 34709, 34755, 23546, 23546, 29501, 44844, 26383, 30255, 23546, 23546, 41921, 23546, 23546, 23546, 22587, 47563, 47563, 32276, 47563, 27418, 22824, 22824, 35655, 43762, 22804, 22804, 35850, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 34780, 43953, 48975, 47563, 47563, 47563, 47563, 29859, 22823, 22824, 22824, 22824, 22824, 30446, 22804, 22804, 22804, 22804, 22804, 34799, 33201, 23546, 34844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 42714, 48976, 34862, 47563, 47563, 47563, 47564, 34882, 22824, 22824, 22824, 22824, 22767, 30383, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 34898, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 49594, 27195, 22821, 22824, 22824, 22824, 49007, 30376, 22804, 22804, 22804, 28251, 29883, 33199, 23546, 23546, 45156, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 28617, 23546, 48860, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 48020, 34919, 46606, 50168, 47563, 35289, 22824, 34937, 22804, 34959, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 26217, 23546, 26527, 28994, 29429, 32937, 21397, 21407, 19607, 19616, 34984, 34999, 35011, 35027, 35038, 26204, 23546, 23546, 23546, 21159, 35548, 23546, 23546, 29013, 35054, 32876, 23546, 35263, 35074, 35112, 39498, 35166, 47961, 27448, 49402, 46199, 35202, 23546, 23546, 23546, 38910, 23546, 47123, 35227, 23546, 23546, 23546, 35244, 44990, 22587, 44754, 35279, 47563, 35324, 35372, 48187, 22824, 29333, 35407, 49176, 35434, 22804, 35477, 39677, 36943, 23546, 35515, 50019, 41319, 42187, 35535, 23546, 19253, 43384, 35575, 35592, 35612, 35186, 47563, 42920, 37391, 20600, 22823, 35386, 22824, 40181, 35635, 35678, 29350, 22804, 33765, 35713, 35750, 48433, 33201, 23546, 23546, 23546, 23546, 35766, 20349, 35815, 44388, 23546, 23546, 40380, 47253, 47563, 47563, 41209, 36250, 35833, 43893, 22824, 22824, 48653, 43541, 43789, 35866, 22804, 22804, 31917, 36853, 33195, 23546, 19730, 35885, 35914, 32534, 35930, 35957, 45488, 36011, 28363, 36030, 36050, 36074, 36103, 39870, 50408, 42260, 32597, 45635, 22804, 36124, 36169, 36204, 27085, 31863, 36220, 46659, 44955, 21826, 38142, 32958, 36266, 47872, 36286, 36321, 36366, 36384, 36409, 36435, 36471, 36489, 36514, 36540, 36572, 23546, 23546, 18340, 36595, 30632, 36619, 36640, 39370, 36661, 36681, 36702, 36740, 36760, 31970, 23546, 36781, 18841, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 34034, 46606, 22585, 31741, 36801, 36823, 36840, 38424, 36549, 46609, 36869, 23111, 30673, 39296, 36886, 35338, 36933, 36966, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 42313, 47646, 36993, 39426, 42307, 22729, 23448, 37021, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 39988, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 50028, 21708, 39996, 40225, 24990, 37071, 37082, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 31016, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 27420, 22824, 43762, 22804, 22804, 48012, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 25524, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 37098, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 37115, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 37134, 47563, 47563, 47563, 47564, 37151, 22824, 22824, 22824, 22824, 22767, 28828, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 41164, 23546, 26527, 23546, 34764, 23546, 19155, 37185, 37221, 37234, 37250, 37256, 37272, 37288, 37299, 26204, 23546, 37315, 23546, 35799, 23546, 43426, 26746, 23546, 23546, 37335, 23546, 32153, 42194, 37334, 37351, 37380, 37407, 37443, 40833, 37430, 32821, 37459, 23546, 23546, 34612, 23546, 23546, 40581, 34220, 23546, 41122, 29193, 49795, 34228, 47262, 37494, 29549, 41774, 37514, 42784, 22904, 45886, 37530, 38036, 37570, 36188, 37589, 23034, 37618, 28342, 23546, 23546, 23546, 23546, 50126, 23546, 23546, 23546, 23546, 23546, 48975, 28498, 44484, 47563, 28434, 44023, 37641, 37671, 39810, 30349, 22824, 39853, 47704, 29645, 22804, 49383, 22804, 37657, 33201, 23546, 23546, 50909, 37693, 23546, 32019, 38379, 23546, 23546, 23546, 48976, 47563, 47563, 46474, 32220, 37710, 22821, 22824, 22824, 49321, 37734, 37761, 35849, 22804, 22804, 37788, 37809, 29879, 33195, 23546, 37872, 23546, 23546, 37889, 23546, 23546, 23546, 47562, 27357, 47563, 47563, 27195, 22821, 40293, 22824, 22824, 22824, 30376, 34247, 22804, 22804, 22804, 29883, 33199, 37910, 31075, 23546, 37928, 47744, 48973, 37953, 47563, 47563, 37979, 38003, 22824, 22824, 38027, 38061, 22804, 22804, 38085, 47447, 23404, 23546, 28599, 23546, 47560, 31782, 47563, 23113, 38011, 22824, 33078, 33721, 22804, 31970, 23546, 21592, 23546, 22586, 47563, 50097, 23109, 22824, 40810, 22804, 22804, 38110, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 33290, 45056, 38132, 38158, 38179, 33552, 39426, 27505, 38215, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23648, 23546, 26527, 23546, 26305, 23546, 23546, 29594, 20530, 20539, 38250, 38264, 38273, 38289, 38300, 26364, 23546, 23948, 23546, 35799, 23546, 34320, 23546, 23546, 23546, 23948, 23546, 35554, 36579, 23947, 35559, 38316, 33588, 36393, 38336, 43066, 27800, 23546, 23546, 38357, 44844, 23546, 39344, 42555, 23546, 39071, 23546, 23546, 38375, 41192, 48530, 47563, 47812, 38395, 28750, 22824, 42121, 31482, 43762, 38449, 22804, 38419, 38440, 32050, 38473, 38509, 46688, 34783, 23546, 23546, 23546, 23546, 23546, 38530, 23546, 23546, 48975, 47883, 38550, 42949, 47563, 37135, 22823, 38568, 30084, 22824, 22824, 49439, 42031, 34293, 41837, 22804, 22804, 29885, 33201, 23546, 38929, 23546, 38602, 23546, 44369, 37873, 23791, 38621, 23546, 48976, 27031, 38642, 47563, 38659, 47564, 38683, 47916, 22824, 22824, 38702, 33843, 35849, 39277, 22804, 33804, 38724, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 36556, 23546, 23546, 23546, 23546, 47560, 38744, 47563, 30559, 22824, 22824, 46066, 22804, 22804, 31970, 23546, 23546, 49685, 22586, 47563, 47563, 23109, 47427, 22825, 22804, 35452, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 38761, 47561, 38782, 38802, 43621, 23464, 38824, 38844, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 38045, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23810, 23546, 46101, 23546, 29522, 38860, 33103, 38895, 38945, 38984, 38970, 38989, 38954, 39005, 39016, 26204, 23546, 24981, 39032, 39052, 39135, 26183, 26715, 27157, 23546, 39087, 39123, 35972, 23871, 39151, 32436, 39187, 39222, 39262, 39312, 39360, 27800, 27271, 23546, 23546, 40856, 29748, 35256, 26269, 47340, 39386, 28121, 33483, 41086, 39406, 48539, 39200, 45029, 47563, 29260, 30036, 22824, 47369, 43762, 41883, 39448, 22787, 22804, 32852, 39469, 27673, 33624, 23546, 39492, 23546, 23546, 30166, 23546, 19760, 23546, 25974, 48975, 39514, 47563, 47563, 47563, 37135, 37987, 39541, 30332, 22824, 22824, 49439, 34278, 22804, 48403, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 49277, 23546, 23546, 39561, 44662, 39580, 20000, 47563, 47563, 38745, 47563, 41583, 39601, 22824, 22824, 42751, 22824, 39625, 36344, 22804, 22804, 49650, 22804, 39663, 33195, 39390, 39701, 21803, 40964, 23546, 28563, 39737, 39764, 42864, 39780, 30015, 27711, 27195, 22821, 39796, 39832, 37838, 39869, 30376, 37543, 39886, 39910, 39936, 47724, 39958, 49087, 33227, 48840, 39980, 40013, 20680, 50204, 40049, 40067, 40083, 45419, 22824, 40109, 40125, 36765, 22804, 40151, 40167, 47447, 40217, 23546, 23546, 19121, 40241, 48114, 40263, 48445, 44596, 40286, 40309, 42808, 40330, 30581, 40353, 23546, 23546, 40374, 28485, 40396, 27517, 40433, 40468, 40722, 40488, 31964, 30114, 48477, 40517, 36058, 24761, 45115, 30673, 40537, 36549, 40555, 19020, 29663, 30673, 40603, 40652, 40668, 40708, 40752, 40779, 40802, 40826, 40849, 24756, 33030, 33551, 47559, 33030, 33552, 40872, 40899, 22729, 23448, 40923, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 40939, 26527, 23546, 35150, 40960, 23546, 26932, 40980, 40989, 41005, 41019, 41028, 41044, 41055, 26204, 41071, 27176, 35142, 41110, 22748, 41145, 23546, 41180, 29961, 41225, 35127, 41274, 41299, 41335, 41350, 41366, 41401, 41487, 41458, 41474, 41503, 23546, 18442, 27630, 46235, 23546, 41314, 19147, 41528, 40358, 23546, 23546, 45375, 22587, 47563, 36909, 41568, 47891, 27418, 38686, 27953, 41607, 41630, 22804, 23213, 41665, 46983, 39677, 36943, 23546, 45937, 23546, 37118, 23546, 39337, 41681, 33824, 35058, 38605, 23546, 41717, 41752, 28167, 41769, 47563, 43475, 41790, 42050, 41800, 22824, 22824, 41816, 41853, 50302, 41874, 22804, 49204, 29885, 47656, 41907, 23546, 38879, 36785, 23546, 23546, 23546, 23546, 23546, 39036, 48976, 47563, 46791, 34008, 47563, 47564, 22821, 22824, 44589, 46895, 22824, 22767, 35849, 22804, 41937, 38457, 22804, 29879, 33195, 23546, 23546, 49550, 23546, 45766, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 32301, 41958, 22824, 22824, 22824, 46046, 28243, 22804, 22804, 22804, 22804, 41977, 33199, 20951, 42005, 23546, 23546, 23546, 44350, 47563, 31827, 47563, 41591, 22824, 49433, 22824, 28884, 22804, 42026, 22804, 30403, 31211, 23546, 23546, 23546, 23546, 27328, 40247, 47563, 27241, 38708, 22824, 42285, 31924, 22804, 29685, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 22739, 46606, 49667, 46712, 38403, 42047, 44103, 22804, 44463, 42066, 42221, 42103, 42137, 42175, 42210, 42248, 42276, 42301, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 35697, 39426, 36136, 22729, 23448, 42329, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 26377, 26527, 23546, 23546, 42378, 33354, 42400, 20758, 23546, 26429, 42436, 42448, 42464, 42475, 26204, 23546, 23546, 25120, 35799, 23546, 23546, 23546, 31573, 31305, 23546, 23546, 31567, 25118, 23546, 48973, 37963, 23115, 42491, 47011, 42515, 27800, 23546, 42549, 23546, 44844, 23546, 38766, 18352, 23546, 39064, 23546, 23546, 22159, 22587, 48548, 38163, 45793, 48521, 47316, 42571, 42591, 47404, 42609, 44147, 39942, 22845, 35499, 47057, 42343, 42636, 23546, 42657, 23546, 42010, 42641, 26759, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 36917, 47563, 37135, 22823, 22824, 22824, 42693, 22824, 49439, 22804, 22804, 28847, 22804, 22804, 29885, 45066, 44270, 23546, 42713, 23546, 23546, 26553, 42677, 42730, 31574, 23546, 48976, 47563, 48931, 47563, 47563, 47564, 42748, 22824, 42767, 22824, 22824, 34180, 35849, 22804, 42800, 22804, 22804, 29879, 33195, 23546, 44983, 23546, 23546, 23546, 23546, 42824, 23546, 47562, 47563, 36034, 47563, 27749, 22821, 22824, 22824, 42844, 22824, 48373, 22804, 22804, 38192, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 18259, 23546, 23546, 42862, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 39325, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 48281, 42880, 42913, 28181, 33529, 39296, 42936, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 38514, 23546, 23546, 23546, 44073, 44076, 50916, 44069, 36233, 42971, 33598, 40201, 40539, 43066, 29275, 42987, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 43004, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 43023, 22824, 22824, 22824, 22824, 43497, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 30422, 47563, 23109, 38579, 22825, 32685, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 22195, 38234, 23546, 23546, 22088, 23546, 31645, 43040, 31695, 43090, 43103, 43112, 43128, 43139, 26204, 23546, 31341, 32732, 35799, 43366, 43155, 43175, 36087, 40692, 50768, 31673, 43193, 32904, 31522, 31081, 43243, 43271, 43287, 43315, 43342, 40683, 23546, 23546, 23546, 45381, 43358, 40568, 43382, 43400, 43418, 23546, 23546, 30119, 43208, 47563, 43442, 27364, 43462, 43491, 28908, 22824, 43513, 43557, 22804, 43588, 41858, 43607, 43637, 43676, 23546, 23546, 23546, 18266, 35576, 23546, 23546, 43699, 43717, 43736, 20331, 32703, 47563, 41378, 47563, 46720, 41989, 43754, 29628, 22824, 22824, 43651, 43778, 43812, 46171, 22804, 44212, 43831, 43879, 33201, 23546, 23546, 45346, 23546, 43914, 43941, 23546, 27809, 23863, 43976, 44003, 47563, 48620, 44039, 35181, 49990, 44092, 22824, 45449, 39545, 44119, 42697, 44138, 22804, 44163, 27998, 44211, 35734, 33195, 39171, 23546, 23546, 23067, 44228, 32012, 23546, 44255, 36870, 46433, 23003, 47563, 27195, 22821, 44297, 46134, 22824, 22824, 30376, 39647, 22804, 44322, 22804, 41442, 44340, 23546, 44366, 44385, 23546, 23546, 34339, 44404, 47563, 47563, 44422, 22824, 22824, 22824, 44438, 22804, 22804, 22804, 44454, 47447, 48298, 23546, 23546, 23546, 44479, 47563, 47563, 46130, 22824, 22824, 44500, 22804, 22804, 44520, 23546, 40027, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 38094, 49704, 44555, 44579, 44612, 44650, 23464, 24759, 33031, 33550, 44685, 30652, 34420, 36724, 24756, 33030, 33551, 47559, 33030, 45310, 44716, 44744, 32641, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 25786, 26527, 44778, 28976, 18999, 44795, 44824, 44860, 44808, 44885, 44899, 44911, 44927, 44938, 26204, 44954, 40587, 23546, 44971, 23546, 23546, 43960, 23546, 50132, 23546, 45006, 35089, 26325, 35096, 32207, 45025, 45045, 44306, 45082, 45103, 27800, 35987, 37200, 44669, 44844, 34640, 23546, 23546, 23546, 23546, 45137, 45172, 23546, 19324, 45188, 43446, 47563, 47563, 45233, 45249, 45268, 22824, 43762, 45291, 40314, 22804, 22804, 39677, 36943, 37912, 23546, 23546, 45326, 45362, 23546, 23546, 23546, 23546, 23546, 37055, 48975, 48512, 31834, 47563, 47563, 46028, 22823, 45397, 45415, 22824, 22824, 36333, 38728, 44324, 22804, 22804, 22804, 45435, 33201, 23546, 23546, 26251, 43720, 23546, 45465, 26758, 45484, 45504, 23546, 45539, 47563, 47563, 47285, 43856, 45576, 45600, 22824, 22824, 47994, 48169, 45624, 45661, 22804, 22804, 42152, 45681, 29879, 45697, 45713, 45733, 23546, 25942, 23546, 23546, 30214, 45754, 47562, 47563, 27730, 45789, 27195, 22821, 22824, 47619, 47969, 22824, 30376, 22804, 22804, 45809, 22804, 29883, 33199, 23546, 21039, 23546, 49467, 37049, 48973, 47563, 45851, 48716, 45584, 47934, 22824, 45868, 48003, 35869, 22804, 45910, 30403, 47447, 23546, 48332, 18869, 22345, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 32000, 21288, 23546, 45931, 45953, 47563, 37498, 23109, 22824, 40444, 22804, 34438, 36455, 45997, 44634, 19558, 46021, 50382, 46044, 28056, 22804, 34468, 46609, 35619, 30711, 46062, 46082, 23464, 24759, 33031, 33550, 19538, 36296, 49945, 23141, 46117, 38586, 45823, 48503, 46150, 46187, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23737, 26527, 23546, 23546, 34968, 23546, 46215, 26881, 26893, 46251, 46267, 46279, 46295, 46306, 26204, 46322, 23241, 25565, 35799, 25341, 42889, 46340, 22204, 44869, 46352, 46368, 46377, 46393, 46349, 46420, 46455, 46490, 46547, 46518, 46534, 32867, 46005, 19766, 34600, 44844, 46563, 23546, 26188, 46580, 41258, 46596, 46625, 46675, 46736, 46784, 46807, 46842, 38552, 46877, 45877, 46911, 46944, 36419, 46977, 46999, 47027, 27557, 39677, 37035, 47093, 47115, 35228, 23546, 47139, 47174, 23546, 47766, 23546, 49770, 47192, 20591, 47219, 47244, 47278, 38643, 47301, 41736, 47356, 47391, 47426, 31459, 49439, 36524, 39920, 40135, 22804, 35492, 33058, 47443, 23546, 20251, 43007, 37694, 47465, 46324, 47491, 47518, 23546, 47535, 47555, 39525, 47841, 47563, 34125, 47580, 47616, 47635, 39844, 22824, 37169, 48362, 35849, 47672, 47697, 22804, 41891, 47720, 33195, 23058, 47740, 23546, 45516, 47760, 23546, 47782, 18627, 47798, 50186, 47833, 47857, 27195, 47907, 47932, 47950, 47985, 48036, 39636, 46165, 37602, 50472, 50517, 37554, 27477, 48056, 18311, 23546, 35780, 48076, 48095, 44700, 47563, 47563, 48130, 48155, 37677, 22824, 48203, 48236, 49183, 22804, 48272, 47447, 18372, 48297, 48314, 48330, 41202, 45981, 33877, 34811, 48348, 48040, 48397, 48419, 37793, 31970, 48467, 23546, 23546, 48493, 46466, 31618, 34505, 49612, 47069, 35443, 43299, 48564, 28304, 47475, 19993, 48611, 37364, 48636, 48669, 43591, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 44177, 29729, 48685, 36498, 48701, 45275, 48737, 39426, 42307, 22729, 39685, 48765, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 48828, 23546, 23546, 48856, 23546, 35941, 30944, 30953, 48876, 30953, 30962, 48892, 48903, 26204, 23546, 23546, 23546, 40636, 23546, 26348, 23546, 23546, 23546, 23546, 26345, 23546, 38923, 23546, 48973, 48919, 48178, 48947, 38808, 37005, 31513, 38873, 23546, 23546, 44844, 23546, 23546, 27897, 48963, 23546, 23546, 23546, 23546, 48971, 46750, 47563, 47563, 34356, 48992, 22824, 22824, 22824, 36305, 49028, 22804, 22804, 22804, 49052, 44728, 49080, 23546, 49103, 45341, 23546, 23546, 42732, 48802, 47595, 38359, 35596, 48975, 47563, 49130, 41385, 43221, 47228, 22823, 48595, 46928, 41415, 49146, 49164, 22804, 49199, 49220, 45915, 29388, 37824, 33201, 23546, 25346, 23546, 26261, 23546, 23546, 23546, 49474, 23546, 23546, 48976, 33503, 47563, 47563, 47563, 47564, 49236, 37414, 22824, 22824, 22824, 22767, 49255, 36180, 22804, 22804, 22804, 29879, 33195, 49272, 23546, 49293, 23546, 23546, 23546, 23546, 28581, 36243, 47563, 47563, 47563, 27195, 49311, 22824, 22824, 22824, 22824, 37772, 22804, 22804, 22804, 22804, 29883, 46502, 23546, 23546, 50321, 46564, 23546, 30276, 23289, 47563, 47563, 37718, 49344, 22824, 22824, 30514, 49377, 22804, 22804, 42620, 47447, 39101, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 46439, 24761, 43524, 30673, 49399, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 49418, 45121, 44624, 47559, 33030, 33552, 39426, 32368, 49455, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 49490, 49547, 33412, 49525, 23546, 34105, 23546, 33409, 49544, 42420, 41283, 49566, 49577, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 49593, 35299, 27962, 22805, 43066, 27800, 23546, 33329, 27613, 44844, 23546, 23546, 23546, 23546, 23546, 32481, 23546, 23546, 22587, 32570, 47563, 46861, 47563, 27418, 49610, 22824, 32331, 43762, 42159, 22804, 27215, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 37318, 23546, 23546, 23546, 20322, 23546, 48975, 47563, 47563, 49628, 47563, 37135, 22823, 22824, 32615, 22824, 22824, 49439, 22804, 22804, 49645, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 49666, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 49683, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 49701, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 49720, 23546, 50953, 23546, 25809, 49755, 49786, 23546, 49811, 49825, 49837, 49853, 49864, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 27387, 22824, 49893, 38199, 49880, 34211, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 42672, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 49917, 23546, 23546, 23546, 22167, 47563, 47563, 47563, 47563, 47564, 49936, 22824, 22824, 22824, 22824, 22767, 49969, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 45149, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 49988, 47563, 50006, 22821, 22824, 48578, 22824, 41424, 30376, 22804, 39894, 22804, 32389, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 26445, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 41512, 50052, 50063, 26204, 23546, 23546, 23546, 35799, 50079, 30464, 23546, 23546, 23546, 23546, 32774, 23546, 41129, 32770, 46701, 50096, 40191, 28190, 22805, 43066, 27800, 23546, 23546, 23546, 50113, 28719, 34485, 45773, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 29611, 47563, 27026, 27418, 22824, 35645, 28383, 43762, 22804, 22921, 22804, 48250, 39677, 50148, 50164, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 41250, 23546, 23546, 23546, 48976, 47563, 47563, 50184, 47563, 45852, 22821, 22824, 38786, 22824, 22824, 45252, 35849, 22804, 48256, 22804, 22804, 29879, 33195, 48079, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 50202, 47563, 47563, 27195, 22821, 50220, 22824, 22824, 22824, 30376, 48220, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 21798, 23546, 23546, 35799, 23546, 23546, 46652, 23546, 23546, 23546, 23546, 46656, 23546, 23546, 50246, 28439, 22824, 50294, 36350, 50281, 47331, 23546, 29448, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 35817, 22587, 47563, 47563, 47563, 27723, 27418, 22824, 22824, 27861, 43762, 22804, 22804, 22804, 48212, 39677, 36943, 23546, 50318, 23546, 23546, 23546, 23546, 23546, 23546, 37099, 23546, 23546, 48975, 38667, 47563, 36014, 47563, 37135, 22823, 50337, 22824, 46961, 22824, 49439, 28018, 22804, 22804, 50356, 22804, 29885, 33201, 23546, 43738, 23546, 23546, 23546, 23546, 23546, 38534, 23546, 23546, 48976, 47563, 50376, 47563, 47563, 47564, 50398, 41961, 50424, 22824, 22824, 22767, 50443, 28403, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 21488, 23546, 47562, 47563, 31747, 47563, 34161, 22821, 22824, 43024, 22824, 22824, 50464, 22804, 22804, 50488, 22804, 43844, 33199, 23546, 23546, 18921, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 31241, 23546, 23546, 39165, 23546, 29133, 47563, 47563, 33578, 22824, 22824, 50509, 22804, 22804, 31970, 23546, 49295, 23546, 22586, 47563, 31161, 23109, 50427, 22825, 22804, 41830, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 21483, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 46404, 21767, 21765, 32117, 22038, 50563, 21058, 21061, 50533, 22036, 50551, 50579, 50591, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 50607, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50637, 19916, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 50655, 18544, 18567, 18590, 19934, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 22150, 23546, 21369, 20766, 50679, 50692, 50708, 50717, 49509, 50740, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23761, 23546, 23546, 23758, 25629, 19208, 50639, 19926, 50639, 50790, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 42087, 23546, 23546, 23546, 23546, 22568, 29910, 50839, 50872, 50878, 50849, 23148, 50894, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 50932, 23546, 23546, 22686, 23546, 23546, 23546, 22682, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 50969, 18544, 18567, 18590, 21689, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 23546, 23546, 23489, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27132, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 22603, 22824, 22824, 22824, 34828, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22457, 23546, 23546, 22482, 50993, 50998, 50998, 51019, 22480, 51014, 51035, 23546, 23546, 23546, 23546, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 51062, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 50655, 18544, 18567, 18590, 19934, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 51082, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 51098, 20392, 51127, 20418, 50802, 51114, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 94503, 94503, 90406, 90406, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 1, 12290, 3, 0, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 362, 94503, 90406, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 0, 94503, 90406, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 69632, 73728, 94503, 94503, 94503, 94503, 94503, 65536, 94503, 0, 2183168, 0, 0, 0, 90406, 94503, 296, 297, 0, 2134016, 300, 301, 0, 0, 0, 0, 0, 0, 2985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1631, 0, 0, 0, 0, 0, 1637, 0, 0, 2424832, 2433024, 0, 0, 2457600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2904064, 2908160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2751, 0, 0, 0, 0, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 362, 362, 0, 0, 0, 0, 0, 0, 2997, 0, 0, 0, 0, 3001, 0, 0, 0, 0, 0, 0, 1186, 0, 0, 0, 1191, 0, 0, 0, 0, 1107, 0, 0, 0, 2138112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2978, 0, 0, 0, 2424832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2625536, 0, 0, 0, 0, 0, 172032, 0, 172032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 1, 12290, 3, 0, 2699264, 2715648, 0, 0, 2772992, 2805760, 2830336, 0, 2863104, 2920448, 0, 0, 0, 0, 0, 0, 0, 1114, 0, 0, 0, 0, 1118, 0, 0, 1121, 0, 2805760, 2920448, 0, 0, 0, 0, 0, 2920448, 0, 0, 0, 0, 0, 0, 0, 2732032, 0, 2179072, 2179072, 2179072, 2424832, 2433024, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2625536, 2805760, 2179072, 2830336, 2179072, 2179072, 2863104, 2179072, 2179072, 2179072, 2920448, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2801664, 2813952, 2179072, 2838528, 2179072, 2179072, 2179072, 2179072, 2179072, 0, 914, 2125824, 2125824, 2125824, 2125824, 2424832, 2433024, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2625536, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2625536, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2699264, 2125824, 2715648, 2125824, 2723840, 2125824, 2732032, 2772992, 2125824, 2125824, 2125824, 2723840, 2125824, 2732032, 2772992, 2125824, 2125824, 2125824, 2805760, 2125824, 2830336, 2125824, 2125824, 2863104, 2125824, 2125824, 2125824, 2125824, 2920448, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2920448, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3117056, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3207168, 2125824, 2125824, 2179072, 2125824, 2125824, 2125824, 2125824, 2457600, 2125824, 2125824, 2125824, 2125824, 2183168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2375680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167936, 0, 0, 0, 0, 0, 0, 2408448, 0, 0, 2584576, 0, 0, 0, 0, 2838528, 0, 0, 2838528, 0, 0, 0, 0, 0, 2469888, 2506752, 2756608, 0, 0, 2580480, 0, 0, 0, 2396160, 2400256, 2412544, 0, 0, 2838528, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2408448, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3223552, 914, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2445312, 2125824, 0, 2125824, 2125824, 2125824, 2408448, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 2502656, 0, 0, 3010560, 2125824, 2125824, 2125824, 2125824, 2125824, 2662400, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2801664, 2813952, 2125824, 2838528, 2125824, 2801664, 2813952, 2125824, 2838528, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3125248, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2461696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2600960, 0, 2674688, 0, 2768896, 2777088, 2781184, 0, 2822144, 0, 0, 2883584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3055616, 0, 0, 0, 3080192, 3100672, 3104768, 0, 0, 0, 0, 3186688, 0, 0, 0, 0, 0, 0, 0, 3182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2732032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3133440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3003, 3004, 0, 2719744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3014656, 3207168, 0, 2691072, 0, 0, 0, 0, 0, 2818048, 2846720, 0, 2916352, 0, 0, 3002368, 0, 0, 3022848, 0, 0, 0, 0, 0, 2871296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2766, 0, 0, 0, 0, 0, 3215360, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2494464, 2179072, 2179072, 2514944, 2179072, 2179072, 2461696, 2465792, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2523136, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2699264, 2179072, 2715648, 2179072, 2723840, 2179072, 2732032, 2772992, 2179072, 2179072, 3100672, 2179072, 2179072, 3133440, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3207168, 2179072, 0, 0, 0, 0, 391, 392, 0, 393, 0, 0, 0, 0, 0, 393, 0, 0, 0, 0, 0, 3504, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3399, 540, 540, 0, 0, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2461696, 2465792, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2523136, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2600960, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2641920, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2719744, 2125824, 2125824, 2125824, 2125824, 2125824, 2768896, 2777088, 2768896, 2777088, 2125824, 2797568, 2822144, 2125824, 2125824, 2125824, 2883584, 2125824, 2912256, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3133440, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3207168, 2125824, 0, 0, 0, 0, 0, 0, 3011, 0, 0, 0, 0, 0, 0, 3018, 0, 0, 0, 0, 2605056, 0, 0, 0, 0, 2887680, 0, 2924544, 0, 0, 0, 0, 0, 0, 0, 1135, 0, 0, 0, 0, 0, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3162112, 3170304, 0, 0, 3219456, 3035136, 0, 0, 0, 0, 0, 3072000, 2650112, 2179072, 2179072, 2179072, 2707456, 2179072, 2736128, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2887680, 2179072, 2179072, 2543616, 2547712, 2179072, 2179072, 2596864, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2584576, 0, 0, 2809856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3088384, 0, 0, 0, 0, 0, 1670, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 0, 0, 0, 0, 1680, 1681, 0, 1683, 0, 0, 0, 0, 0, 0, 0, 540, 561, 540, 561, 540, 540, 561, 540, 585, 0, 0, 2576384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2420736, 0, 0, 0, 0, 429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, 3121152, 3141632, 0, 0, 0, 2924544, 0, 2682880, 0, 0, 0, 0, 0, 0, 0, 1242, 1272, 1273, 0, 1242, 0, 540, 540, 540, 3112960, 2387968, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2453504, 2179072, 2473984, 2482176, 2179072, 2179072, 2179072, 2179072, 2179072, 3010560, 2179072, 2179072, 2126737, 2126737, 2503569, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2532241, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2605969, 2126737, 2924544, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3035136, 2179072, 2179072, 3072000, 2179072, 2179072, 2179072, 3137536, 2126737, 2126737, 2499473, 2126737, 2126737, 2126737, 2556817, 2565009, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3224465, 0, 0, 2126810, 2126810, 2126810, 2126810, 2126810, 2446298, 2126810, 3121152, 2179072, 2179072, 3141632, 2179072, 2179072, 2179072, 3170304, 2179072, 2179072, 3190784, 3194880, 2179072, 0, 0, 0, 0, 0, 0, 3181, 0, 0, 0, 3184, 3185, 3186, 0, 0, 3189, 3194880, 2125824, 0, 0, 0, 0, 0, 0, 2387968, 2125824, 2125824, 2420736, 2125824, 2125824, 2125824, 2125824, 2125824, 2453504, 2125824, 2473984, 2482176, 2125824, 2125824, 2125824, 2605056, 2125824, 2629632, 2125824, 2125824, 2650112, 2125824, 2125824, 2125824, 2707456, 2125824, 2736128, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3035136, 2125824, 2125824, 3072000, 2125824, 2125824, 3121152, 2125824, 2125824, 3141632, 2125824, 2125824, 2125824, 3170304, 2125824, 2125824, 3190784, 2125824, 3170304, 2125824, 2125824, 3190784, 3194880, 2125824, 2125824, 2179072, 2125824, 2125824, 2125824, 2179072, 2179072, 3112960, 3219456, 2125824, 2125824, 3112960, 3219456, 2125824, 2125824, 3112960, 3219456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3507, 540, 540, 540, 540, 540, 540, 0, 3145728, 0, 3203072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3314, 0, 540, 0, 3067904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172032, 0, 0, 0, 0, 2895872, 0, 0, 0, 2445312, 0, 2842624, 0, 0, 0, 2637824, 0, 0, 0, 0, 432, 0, 0, 0, 329, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 0, 0, 0, 2621440, 0, 3182592, 2899968, 0, 2961408, 0, 0, 2179072, 2179072, 2179072, 2179072, 2179072, 2592768, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2445312, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2551808, 2179072, 2179072, 2179072, 2179072, 2179072, 3117056, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2126737, 2126737, 2126737, 2126737, 2637824, 2125824, 2125824, 2125824, 2125824, 2727936, 2752512, 2125824, 2125824, 2125824, 2125824, 2842624, 2846720, 2125824, 2895872, 2916352, 2125824, 2125824, 2945024, 2125824, 2125824, 2994176, 2125824, 3002368, 2125824, 2125824, 3022848, 2125824, 3067904, 3084288, 3096576, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2442, 2443, 0, 0, 2446, 0, 0, 0, 0, 0, 2928640, 0, 0, 0, 3059712, 0, 2543616, 2666496, 0, 2633728, 0, 0, 0, 0, 0, 1697, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1116, 0, 0, 0, 0, 0, 2494464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3211264, 2179072, 2928640, 2179072, 2179072, 2179072, 2998272, 2179072, 2179072, 2179072, 2179072, 3059712, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3223552, 0, 0, 2126737, 2126737, 2126737, 2126737, 2126737, 2446225, 2126737, 2179072, 3178496, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2494464, 2125824, 2125824, 2514944, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2179072, 2125824, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 2510848, 2514944, 0, 0, 2547712, 2596864, 0, 0, 0, 0, 0, 1670, 0, 0, 0, 0, 0, 0, 0, 0, 2113, 0, 2125824, 2543616, 2547712, 2125824, 2125824, 2596864, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 2125824, 2125824, 2125824, 2408448, 2125824, 2928640, 2125824, 2125824, 2125824, 2998272, 2125824, 2125824, 2125824, 2125824, 3059712, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 2125824, 2126811, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 2125824, 2125824, 2125824, 2125824, 2424832, 2125824, 3178496, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2494464, 2125824, 2125824, 2514944, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3223552, 0, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2445312, 2125824, 2125824, 3178496, 2125824, 2179072, 2125824, 2125824, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2441216, 0, 0, 0, 0, 0, 0, 3311, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 2165, 540, 540, 540, 540, 0, 0, 0, 2740224, 0, 0, 0, 0, 0, 2793472, 0, 0, 0, 0, 0, 0, 0, 1244, 0, 0, 0, 0, 1247, 0, 1194, 0, 2646016, 2179072, 2179072, 2695168, 2756608, 2179072, 2179072, 2179072, 2932736, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3039232, 2179072, 3063808, 2179072, 2179072, 2179072, 2179072, 3129344, 2179072, 2179072, 3153920, 3166208, 3174400, 2396160, 2400256, 2125824, 2125824, 2441216, 2125824, 2469888, 2125824, 2125824, 2125824, 2519040, 2125824, 2125824, 2125824, 2125824, 2588672, 2125824, 2519040, 2125824, 2125824, 2125824, 2125824, 2588672, 2125824, 2613248, 2646016, 2125824, 2125824, 2695168, 2756608, 2125824, 2125824, 2125824, 2125824, 2932736, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2932736, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3129344, 2125824, 2125824, 3153920, 3166208, 3174400, 2396160, 2125824, 2125824, 3129344, 2125824, 2125824, 3153920, 3166208, 3174400, 2125824, 2506752, 2506752, 2506752, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3223552, 987, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2445312, 2125824, 0, 3043328, 0, 3149824, 2936832, 0, 2760704, 3176, 0, 0, 0, 0, 2953216, 0, 0, 2826240, 3158016, 2437120, 0, 2785280, 0, 0, 0, 2428928, 0, 3018752, 2764800, 2572288, 0, 0, 3051520, 2179072, 2179072, 2637824, 2179072, 2179072, 2179072, 2179072, 2727936, 2752512, 2179072, 2179072, 2179072, 2842624, 2846720, 2179072, 2916352, 2428928, 2437120, 2179072, 2486272, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2654208, 2678784, 2760704, 2764800, 2854912, 2969600, 2179072, 3006464, 2179072, 3018752, 2179072, 2179072, 2179072, 3149824, 2125824, 2428928, 2437120, 2125824, 2486272, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, 0, 2043, 2044, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2140, 0, 0, 0, 0, 0, 0, 2125824, 3018752, 2125824, 2125824, 2125824, 3149824, 2125824, 2428928, 2437120, 2125824, 2486272, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 24576, 987, 2125824, 2125824, 2125824, 2125824, 2424832, 2125824, 3149824, 2125824, 2179072, 3051520, 2125824, 3051520, 2125824, 3051520, 0, 2490368, 2498560, 0, 0, 0, 0, 0, 0, 304, 0, 204800, 0, 0, 0, 0, 0, 0, 0, 0, 1713, 0, 0, 0, 0, 0, 0, 0, 0, 1727, 0, 0, 0, 0, 0, 0, 0, 0, 2068, 0, 0, 0, 0, 0, 0, 0, 0, 2095, 0, 0, 0, 0, 0, 0, 0, 0, 2107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2875392, 0, 0, 0, 3176, 0, 0, 2834432, 0, 3227648, 2568192, 0, 0, 0, 0, 2564096, 0, 2940928, 2179072, 2179072, 2498560, 2179072, 2179072, 2179072, 2555904, 2564096, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3223552, 0, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2445312, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3137536, 2125824, 2125824, 2498560, 2125824, 2125824, 2125824, 2555904, 2564096, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3223552, 2125824, 2179072, 2416640, 2125824, 2125824, 2179072, 2179072, 2125824, 2125824, 0, 2486272, 0, 0, 0, 0, 0, 2678784, 2854912, 3006464, 0, 3108864, 3198976, 0, 0, 2748416, 2879488, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2179072, 2179072, 2592768, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2126737, 2125824, 2125824, 2125824, 2125824, 3010560, 2125824, 2125824, 2125824, 2125824, 2502656, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 296, 0, 0, 0, 296, 0, 297, 0, 0, 0, 2125824, 2125824, 2125824, 3010560, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 2592768, 0, 0, 0, 0, 433, 0, 0, 0, 453, 469, 469, 469, 469, 469, 469, 469, 469, 469, 479, 469, 469, 469, 469, 469, 469, 2125824, 2125824, 2125824, 2125824, 2592768, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 1918, 2125824, 2125824, 2125824, 2408448, 2125824, 2592768, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2449408, 0, 2535424, 3031040, 0, 0, 0, 0, 0, 1734, 0, 1736, 1710, 540, 540, 540, 540, 540, 540, 540, 540, 1816, 1818, 540, 540, 540, 540, 540, 1360, 0, 2859008, 0, 0, 2179072, 2449408, 2179072, 2535424, 2179072, 2609152, 2179072, 2859008, 2179072, 2179072, 2179072, 3031040, 2125824, 2449408, 2125824, 2535424, 2125824, 2609152, 2125824, 2859008, 2125824, 2125824, 2125824, 3031040, 2125824, 2449408, 2125824, 2535424, 2125824, 2609152, 2125824, 2859008, 2125824, 2125824, 2125824, 3031040, 2125824, 2527232, 0, 0, 0, 0, 0, 2179072, 2125824, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2804, 540, 540, 540, 540, 2527232, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2527232, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2527232, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 1080, 1084, 0, 0, 1088, 2125824, 2125824, 2125824, 2125824, 3092480, 0, 0, 0, 0, 3026944, 2404352, 2179072, 2179072, 2179072, 2179072, 3026944, 2404352, 2125824, 2125824, 2125824, 2125824, 3026944, 2404352, 2125824, 2125824, 2125824, 2125824, 3026944, 2539520, 0, 2949120, 0, 0, 0, 0, 434, 0, 0, 446, 0, 0, 0, 0, 0, 0, 0, 0, 457, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 2179072, 2658304, 2973696, 2179072, 2125824, 2658304, 2973696, 2125824, 2125824, 2658304, 2973696, 2125824, 2711552, 0, 2560000, 2179072, 2179072, 2945024, 2179072, 2179072, 2994176, 2179072, 3002368, 2179072, 2179072, 3022848, 2179072, 3067904, 3084288, 3096576, 2179072, 2179072, 2600960, 2179072, 2179072, 2179072, 2179072, 2641920, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2719744, 2179072, 2179072, 2441216, 2179072, 2469888, 2179072, 2179072, 2179072, 2519040, 2179072, 2179072, 2179072, 2179072, 2588672, 2179072, 2613248, 2703360, 0, 0, 0, 0, 2977792, 0, 0, 3047424, 3129344, 0, 2981888, 2396160, 0, 3153920, 2560000, 2125824, 2560000, 2125824, 0, 2179072, 2125824, 2125824, 0, 2179072, 2125824, 2125824, 0, 2179072, 2125824, 2125824, 2125824, 2457600, 2179072, 2179072, 2179072, 2179072, 2457600, 2125824, 2125824, 2125824, 2985984, 2985984, 2985984, 2985984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249856, 0, 0, 0, 0, 0, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 458, 458, 111050, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 458, 111050, 111050, 111050, 111050, 111050, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2738, 0, 0, 0, 0, 0, 0, 2183168, 0, 0, 0, 0, 0, 296, 297, 0, 2134016, 300, 301, 0, 0, 0, 0, 0, 0, 184723, 184931, 184931, 184931, 0, 184931, 184931, 184931, 184931, 184931, 0, 0, 0, 0, 0, 184931, 0, 184931, 1, 12290, 3, 78112, 1059, 0, 0, 2179072, 2125824, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 296, 0, 297, 0, 2125824, 1059, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2750, 0, 0, 0, 0, 2755, 0, 300, 118784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 0, 300, 300, 300, 300, 0, 0, 0, 0, 0, 300, 0, 300, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266240, 0, 0, 0, 0, 2183168, 0, 0, 0, 0, 0, 33403, 297, 0, 2134016, 49791, 301, 0, 0, 0, 0, 0, 0, 225889, 225889, 225889, 225889, 225740, 225889, 225889, 225889, 225889, 225889, 225740, 225740, 225740, 225740, 225740, 225906, 225740, 225906, 1, 12290, 3, 0, 0, 0, 0, 249856, 0, 0, 0, 249856, 0, 0, 0, 0, 0, 0, 697, 698, 0, 362, 362, 362, 0, 0, 0, 0, 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 296, 0, 0, 0, 0, 0, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 57344, 0, 0, 0, 0, 0, 0, 0, 3506, 0, 540, 540, 540, 540, 540, 540, 540, 2530, 540, 540, 540, 540, 540, 540, 540, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 296, 0, 0, 0, 300, 0, 0, 0, 300, 119195, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 0, 0, 0, 0, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 0, 0, 122880, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3166, 3167, 0, 0, 0, 0, 0, 122880, 0, 122880, 122880, 122880, 0, 0, 0, 0, 0, 122880, 0, 122880, 0, 0, 0, 0, 0, 0, 0, 0, 122880, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122880, 122880, 122880, 122880, 122880, 0, 122880, 0, 2105629, 12290, 3, 0, 0, 291, 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 0, 746, 0, 0, 0, 0, 0, 0, 328, 0, 0, 0, 0, 0, 0, 0, 328, 0, 0, 69632, 73728, 0, 416, 416, 0, 0, 65536, 416, 1092, 0, 2424832, 2433024, 0, 0, 2457600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2765, 0, 0, 0, 0, 0, 1824, 2125824, 2125824, 2125824, 2408448, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2551808, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 131072, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2507, 0, 0, 0, 0, 0, 131072, 0, 0, 131072, 131072, 0, 0, 0, 0, 0, 0, 131072, 0, 131072, 0, 131072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131072, 0, 131072, 131072, 131072, 131072, 0, 131072, 131072, 131072, 131072, 131072, 0, 0, 0, 0, 0, 131072, 0, 131072, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, 135168, 135168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 321, 0, 0, 0, 135168, 0, 0, 135168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3174, 0, 0, 0, 0, 0, 0, 0, 135168, 135168, 135168, 135168, 135168, 135168, 135168, 0, 135168, 135168, 135168, 135168, 135168, 0, 0, 0, 0, 0, 135168, 0, 135168, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118784, 296, 0, 2183168, 0, 0, 0, 0, 0, 636, 637, 0, 2134016, 640, 641, 0, 0, 0, 0, 0, 0, 266240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266240, 0, 0, 0, 1361, 2125824, 2125824, 2125824, 2125824, 2424832, 2433024, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 986, 2125824, 2125824, 2125824, 2125824, 2424832, 0, 301, 139264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, 331, 301, 301, 301, 301, 0, 0, 0, 0, 0, 301, 0, 301, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139264, 297, 0, 2183168, 0, 0, 0, 0, 0, 296, 33406, 0, 2134016, 300, 49794, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61440, 0, 0, 0, 0, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2455, 0, 0, 0, 0, 0, 301, 2424832, 2433024, 0, 0, 2457600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2779, 0, 0, 0, 0, 0, 298, 298, 143728, 298, 298, 298, 143728, 69632, 73728, 298, 298, 143658, 298, 298, 65536, 298, 298, 0, 0, 298, 298, 143658, 298, 298, 298, 298, 298, 298, 298, 298, 298, 363, 298, 0, 143658, 298, 298, 298, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 298, 298, 298, 298, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 298, 298, 298, 143658, 368, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 143658, 298, 298, 143658, 298, 298, 143658, 143658, 143658, 143658, 143658, 143658, 298, 0, 298, 0, 298, 298, 298, 143658, 298, 298, 298, 298, 298, 298, 298, 298, 298, 143658, 298, 143658, 143658, 143658, 143658, 298, 298, 143658, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 143728, 298, 298, 298, 298, 298, 298, 298, 143658, 143658, 143658, 143658, 143658, 143658, 143728, 143658, 143728, 143728, 143728, 143728, 143728, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 90406, 90406, 90406, 90406, 0, 94503, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 2200252, 2200252, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 0, 0, 0, 0, 155648, 155648, 0, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 0, 0, 0, 0, 155648, 0, 0, 0, 0, 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1663, 0, 0, 0, 0, 0, 0, 0, 0, 155648, 0, 0, 155648, 0, 0, 0, 0, 0, 0, 0, 155648, 0, 0, 0, 155648, 155648, 0, 155648, 155648, 0, 12290, 3, 0, 0, 2183168, 126976, 0, 0, 0, 0, 296, 297, 0, 2134016, 300, 301, 0, 0, 0, 0, 0, 0, 1146880, 0, 1146880, 0, 0, 0, 0, 0, 0, 0, 1107, 0, 0, 0, 0, 0, 0, 0, 0, 540, 2163, 540, 540, 540, 540, 540, 540, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 0, 0, 345, 346, 347, 0, 0, 0, 0, 0, 0, 0, 757, 0, 0, 0, 0, 0, 0, 0, 0, 1156, 0, 0, 0, 0, 0, 0, 0, 159744, 159744, 159744, 0, 0, 159744, 0, 0, 0, 0, 0, 0, 0, 0, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 163840, 159744, 159744, 159744, 163840, 159744, 159744, 159744, 159744, 159744, 0, 0, 0, 0, 0, 0, 0, 0, 25160, 0, 0, 159744, 0, 0, 0, 0, 25160, 25160, 25160, 159744, 25160, 25160, 25160, 25160, 25160, 159744, 159744, 159744, 159744, 25160, 159744, 25160, 1, 12290, 3, 0, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 1, 12290, 3, 0, 167936, 167936, 167936, 0, 0, 167936, 0, 0, 0, 0, 0, 0, 0, 0, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3015, 0, 0, 0, 0, 0, 0, 0, 0, 2138112, 1183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262144, 0, 0, 0, 0, 172032, 172032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172032, 0, 0, 0, 0, 0, 0, 172032, 172032, 0, 172032, 0, 0, 172032, 0, 172032, 0, 172032, 0, 0, 0, 0, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 1, 12290, 3, 0, 172032, 0, 172032, 172032, 0, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106496, 0, 0, 0, 0, 0, 1, 286, 3, 0, 0, 0, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106496, 0, 106496, 0, 0, 0, 0, 106496, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 1, 0, 3, 78112, 176128, 176128, 176128, 0, 0, 176128, 0, 0, 0, 0, 0, 0, 0, 0, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111050, 0, 0, 0, 0, 0, 78112, 290, 0, 634, 0, 0, 0, 296, 297, 0, 2134016, 300, 301, 0, 0, 0, 0, 0, 0, 1159168, 414, 414, 0, 0, 0, 0, 0, 414, 0, 1164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 0, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 959, 561, 585, 585, 585, 1490, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1498, 585, 585, 0, 0, 229376, 0, 0, 0, 0, 0, 0, 0, 0, 1686, 0, 0, 0, 0, 0, 0, 404, 404, 404, 404, 0, 404, 404, 404, 404, 404, 0, 0, 0, 0, 0, 404, 0, 404, 1, 12290, 3, 78112, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1155072, 0, 0, 0, 0, 0, 0, 0, 2131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 658, 0, 0, 0, 561, 561, 561, 561, 561, 561, 2250, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 0, 0, 0, 0, 0, 0, 3295, 0, 0, 0, 0, 0, 0, 0, 712, 0, 0, 0, 716, 0, 0, 719, 0, 561, 561, 2287, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, 585, 585, 585, 2347, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1514, 585, 585, 2372, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 2671, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1515, 585, 585, 0, 0, 0, 2994, 0, 0, 0, 2998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 540, 3035, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 910, 540, 3075, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1417, 3116, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1501, 0, 0, 3178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3187, 0, 0, 0, 0, 0, 2046, 0, 2149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 1, 12290, 3, 0, 540, 540, 540, 3203, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3211, 540, 540, 540, 540, 540, 2813, 540, 540, 2817, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2555, 540, 540, 540, 540, 540, 540, 3255, 585, 585, 585, 3258, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3266, 585, 561, 0, 1287, 585, 1467, 1376, 540, 540, 1339, 540, 540, 561, 561, 1430, 561, 0, 585, 585, 585, 585, 585, 288, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 2427, 0, 0, 0, 0, 0, 0, 0, 0, 2465, 0, 0, 2468, 0, 0, 0, 0, 0, 0, 0, 0, 3309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 3508, 540, 3509, 540, 540, 540, 3326, 3327, 540, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 961, 561, 585, 585, 585, 3361, 585, 585, 585, 585, 3362, 3363, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1159168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 3387, 0, 0, 0, 0, 0, 2092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 404, 0, 0, 0, 0, 0, 561, 3416, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 3425, 585, 585, 585, 585, 585, 585, 1492, 585, 585, 585, 585, 585, 585, 585, 1499, 585, 585, 585, 585, 3431, 585, 585, 585, 585, 3435, 540, 561, 585, 0, 0, 0, 0, 0, 0, 665, 0, 0, 668, 0, 0, 0, 0, 0, 0, 0, 3172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 3450, 540, 540, 540, 540, 540, 2814, 540, 2816, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2233, 540, 540, 540, 540, 540, 0, 561, 561, 561, 3573, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 3538, 585, 585, 3585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 3627, 561, 561, 585, 585, 0, 540, 561, 585, 0, 540, 561, 585, 0, 540, 561, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2662400, 0, 2813952, 78112, 290, 0, 0, 0, 0, 0, 296, 297, 0, 2134016, 300, 301, 0, 0, 0, 0, 0, 0, 2473984, 2478080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2134756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12290, 3, 0, 0, 0, 188416, 540, 585, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 585, 585, 585, 585, 0, 0, 540, 540, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 2169, 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12290, 3, 78112, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 0, 192971, 0, 1, 12290, 3, 0, 192971, 192971, 192971, 0, 0, 192971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 322, 0, 0, 0, 0, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 0, 192971, 192971, 192971, 192971, 192971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2801664, 0, 0, 0, 0, 2142208, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 674, 78112, 290, 0, 0, 0, 0, 0, 296, 297, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 2797568, 0, 0, 0, 0, 0, 0, 0, 2850816, 2867200, 0, 0, 740, 404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 335, 0, 0, 0, 0, 0, 740, 540, 585, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 585, 585, 585, 585, 2029, 0, 2031, 0, 0, 0, 0, 740, 1184, 0, 0, 0, 0, 1188, 0, 0, 0, 0, 0, 0, 0, 1583, 0, 1585, 0, 0, 0, 0, 0, 0, 0, 1661, 1662, 0, 0, 0, 0, 0, 0, 0, 0, 2727936, 0, 0, 0, 3084288, 0, 0, 0, 0, 0, 0, 1577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 352, 353, 354, 0, 0, 0, 1188, 1670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1150976, 0, 0, 0, 0, 0, 0, 561, 561, 585, 585, 585, 585, 1559, 2029, 0, 0, 0, 0, 1565, 2031, 0, 0, 0, 0, 0, 2120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2130, 2033, 0, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 337, 338, 561, 561, 2323, 2648, 0, 0, 0, 0, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2339, 585, 585, 2342, 0, 304, 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 0, 0, 0, 0, 0, 2136, 0, 2138, 0, 0, 0, 0, 0, 0, 0, 0, 791, 817, 0, 817, 812, 0, 0, 0, 0, 0, 0, 204800, 204800, 0, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 205104, 204800, 204800, 205103, 205104, 204800, 205103, 205103, 204800, 204800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 2183801, 0, 0, 0, 0, 0, 296, 297, 151552, 2134016, 300, 301, 0, 212992, 0, 0, 0, 0, 662, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 0, 2200253, 0, 0, 0, 0, 0, 0, 2932736, 2965504, 0, 0, 3076096, 0, 0, 2695168, 3174400, 2646016, 0, 914, 2126737, 2126737, 2126737, 2126737, 2425745, 2433937, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 0, 0, 987, 2126810, 2126810, 2126810, 2126810, 2425818, 2724753, 2126737, 2732945, 2773905, 2126737, 2126737, 2126737, 2806673, 2126737, 2831249, 2126737, 2126737, 2864017, 2126737, 2126737, 2126737, 2126737, 2126737, 2524049, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2601873, 2126737, 2126737, 2921361, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3117969, 2126737, 2126737, 2126737, 2126737, 2593681, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126810, 2126810, 2126810, 2126810, 3093393, 0, 0, 0, 0, 3026944, 2404352, 2179072, 2179072, 2179072, 2179072, 3026944, 2434010, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2626522, 2126810, 2126737, 0, 2179072, 2126810, 2126810, 2126737, 2457600, 2179072, 2179072, 2179072, 2179072, 2458513, 2126737, 2126737, 2126737, 2126737, 2126737, 2626449, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2700177, 2126737, 2716561, 2126737, 2806746, 2126810, 2831322, 2126810, 2126810, 2864090, 2126810, 2126810, 2126810, 2126810, 2921434, 2126810, 2126810, 2126810, 2126810, 2126810, 2126737, 2179072, 2126810, 2126810, 2126737, 2179072, 2179072, 2179072, 2179072, 2126737, 2126737, 2126737, 2458586, 2126810, 2126810, 2126810, 2126810, 2183168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 321, 395, 0, 0, 0, 321, 0, 0, 2126737, 2126737, 2126737, 2409361, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3126161, 2126737, 2126737, 2126737, 2802577, 2814865, 2126737, 2839441, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126810, 2126810, 2126810, 2126810, 2126810, 2663386, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2802650, 2814938, 2126810, 2839514, 0, 0, 0, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2462609, 2466705, 2126737, 0, 2126810, 2126810, 2126810, 2126810, 2126810, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, 0, 0, 2769809, 2778001, 2126737, 2798481, 2823057, 2126737, 2126737, 2126737, 2884497, 2126737, 2913169, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2655121, 2679697, 2761617, 2765713, 2786193, 2855825, 2970513, 2126737, 3007377, 2126737, 3134353, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3208081, 2126737, 0, 0, 0, 0, 0, 325, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2462682, 2466778, 2126810, 2126810, 2126810, 2524122, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2601946, 2126810, 2126810, 2126810, 2585562, 2126810, 2126810, 2126810, 2126810, 2126810, 2618330, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2888666, 2126810, 2126810, 2925530, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2642906, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2720730, 2126810, 2126810, 2126810, 2126810, 2126810, 2769882, 2778074, 2126810, 2798554, 2823130, 2126810, 2126810, 2126810, 2884570, 2126810, 2913242, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 3126234, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 3208154, 2126810, 2126737, 2179072, 2126810, 2126810, 2126737, 0, 0, 0, 2388881, 2126737, 2126737, 2421649, 2126737, 2126737, 2126737, 2126737, 2126737, 2454417, 2126737, 2474897, 2483089, 2630545, 2126737, 2126737, 2651025, 2126737, 2126737, 2126737, 2708369, 2126737, 2737041, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 985, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2552794, 2126810, 2126810, 2126810, 2126810, 2126810, 2126737, 2126737, 3072913, 2126737, 2126737, 3122065, 2126737, 2126737, 3142545, 2126737, 2126737, 2126737, 3171217, 2126737, 2126737, 3191697, 3195793, 2126737, 0, 0, 0, 0, 0, 0, 2388954, 2126810, 2126810, 2421722, 2126810, 2126810, 2126810, 2126810, 2126810, 3040218, 2126810, 3064794, 2126810, 2126810, 2126810, 2126810, 3101658, 2126810, 2126810, 3134426, 2126810, 2454490, 2126810, 2474970, 2483162, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2532314, 2126810, 2126810, 2126810, 2126810, 3036122, 2126810, 2126810, 3072986, 2126810, 2126810, 3122138, 2126810, 2126810, 3142618, 2126810, 2126810, 2126810, 3171290, 2126810, 2126810, 3191770, 3195866, 2126810, 2126737, 2179072, 2126810, 2126810, 2126737, 2179072, 2179072, 3112960, 3219456, 2126737, 2126737, 3113873, 3220369, 2126810, 2126810, 3113946, 3220442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 2638737, 2126737, 2126737, 2126737, 2126737, 2728849, 2753425, 2126737, 2126737, 2126737, 2126737, 2843537, 2847633, 2126737, 2896785, 2917265, 2638810, 2126810, 2126810, 2126810, 2126810, 2728922, 2753498, 2126810, 2126810, 2126810, 2126810, 2843610, 2847706, 2126810, 2896858, 2917338, 2179072, 3178496, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2495377, 2126737, 2126737, 2515857, 2126737, 2126737, 2126737, 2126737, 3011473, 2126737, 2126737, 2126810, 2126810, 2503642, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 3138522, 2126737, 2940928, 2941841, 2941914, 0, 0, 0, 0, 2126737, 2544529, 2548625, 2126737, 2126737, 2597777, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2552721, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2929553, 2126737, 2126737, 2126737, 2999185, 2126737, 2126737, 2126737, 2126737, 3060625, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3040145, 2126737, 3064721, 2126737, 2126737, 2126737, 2126737, 3101585, 2126737, 2126737, 3179409, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2495450, 2126810, 2126810, 2515930, 2126810, 2126810, 0, 0, 0, 0, 0, 0, 2510848, 2514944, 0, 0, 2547712, 2596864, 0, 0, 0, 0, 0, 2160, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 3525, 561, 2126810, 2544602, 2548698, 2126810, 2126810, 2597850, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126737, 0, 2502656, 0, 0, 3010560, 2126810, 2929626, 2126810, 2126810, 2126810, 2999258, 2126810, 2126810, 2126810, 2126810, 3060698, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 3118042, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126737, 2126810, 3179482, 2126737, 2179072, 2126810, 2126737, 2179072, 2179072, 2126737, 2126737, 2126810, 2126810, 2441216, 0, 0, 0, 0, 0, 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 0, 3129344, 2179072, 2179072, 3153920, 3166208, 3174400, 2397073, 2401169, 2126737, 2126737, 2442129, 2126737, 2470801, 2126737, 2126737, 2126737, 2126737, 2126737, 2663313, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 0, 0, 2126810, 2126810, 2126810, 2409434, 2519953, 2126737, 2126737, 2126737, 2126737, 2589585, 2126737, 2614161, 2646929, 2126737, 2126737, 2696081, 2757521, 2126737, 2126737, 2126737, 2126737, 2126737, 3138449, 2126810, 2126810, 2499546, 2126810, 2126810, 2126810, 2556890, 2565082, 2126810, 2126810, 2126737, 2933649, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3130257, 2126737, 2126737, 3154833, 3167121, 3175313, 2397146, 2401242, 2126810, 2126810, 2442202, 2126810, 2470874, 2126810, 2126810, 2126810, 2520026, 2126810, 2126810, 2126810, 2126810, 2589658, 2126810, 2126810, 2126810, 3011546, 2126810, 2126810, 2126737, 0, 0, 0, 0, 0, 0, 0, 2592768, 0, 0, 0, 0, 663, 0, 0, 666, 667, 0, 0, 0, 0, 0, 0, 0, 540, 571, 540, 571, 540, 540, 571, 540, 595, 2614234, 2647002, 2126810, 2126810, 2696154, 2757594, 2126810, 2126810, 2126810, 2126810, 2933722, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 3224538, 2126737, 2179072, 2417626, 2126810, 2126737, 2179072, 2179072, 2126737, 2126737, 2854912, 2969600, 2179072, 3006464, 2179072, 3018752, 2179072, 2179072, 2179072, 3149824, 2126737, 2429841, 2438033, 2126737, 2487185, 2126737, 2126737, 2945937, 2126737, 2126737, 2995089, 2126737, 3003281, 2126737, 2126737, 3023761, 2126737, 3068817, 3085201, 3097489, 2126737, 2126737, 2888593, 2126737, 2126737, 2925457, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3036049, 2126737, 3019665, 2126737, 2126737, 2126737, 3150737, 2126810, 2429914, 2438106, 2126810, 2487258, 2126810, 2126810, 2126810, 2126810, 2126810, 2700250, 2126810, 2716634, 2126810, 2724826, 2126810, 2733018, 2773978, 2126810, 2126810, 2126810, 2126810, 3150810, 2126737, 2179072, 3051520, 2126737, 3052433, 2126810, 3052506, 0, 2490368, 2498560, 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2126810, 2593754, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126737, 2449408, 0, 2535424, 3031040, 0, 0, 0, 0, 0, 2439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 369, 0, 0, 370, 0, 0, 2126737, 2450321, 2126737, 2536337, 2126737, 2610065, 2126737, 2859921, 2126737, 2126737, 2126737, 3031953, 2126810, 2450394, 2126810, 2536410, 2126810, 2610138, 2126810, 2859994, 2126810, 2126810, 2126810, 3032026, 2126737, 2527232, 0, 0, 0, 0, 0, 2179072, 2126810, 2126810, 2126737, 2179072, 2179072, 2179072, 2179072, 2179072, 2126737, 2126737, 2126737, 2126737, 2126810, 2126810, 2126810, 2126810, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 237568, 0, 0, 0, 0, 2527232, 2179072, 2179072, 2179072, 2179072, 2179072, 2126737, 2528145, 2126737, 2126737, 2126737, 2126737, 2126737, 2126810, 2528218, 2126810, 2126810, 2946010, 2126810, 2126810, 2995162, 2126810, 3003354, 2126810, 2126810, 3023834, 2126810, 3068890, 3085274, 3097562, 2126810, 2126810, 2126810, 2606042, 2126810, 2630618, 2126810, 2126810, 2651098, 2126810, 2126810, 2126810, 2708442, 2126810, 2737114, 2126810, 2126810, 2126810, 2655194, 2679770, 2761690, 2765786, 2786266, 2855898, 2970586, 2126810, 3007450, 2126810, 3019738, 2126810, 2126810, 0, 2486272, 0, 0, 0, 0, 0, 2678784, 2854912, 3006464, 0, 3108864, 3198976, 0, 2405265, 2126737, 2126737, 2126737, 2126737, 3027857, 2405338, 2126810, 2126810, 2126810, 2126810, 3027930, 2539520, 0, 2949120, 0, 0, 0, 0, 695, 0, 0, 0, 0, 362, 362, 362, 0, 0, 704, 0, 0, 0, 0, 709, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2049, 0, 0, 0, 0, 2179072, 2658304, 2973696, 2179072, 2126737, 2659217, 2974609, 2126737, 2126810, 2659290, 2974682, 2126810, 2711552, 0, 2560000, 2179072, 2179072, 3125248, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2560913, 2126737, 2560986, 2126810, 0, 2179072, 2126737, 2126810, 0, 2179072, 2126737, 2126810, 0, 2179072, 2126737, 2126810, 2126810, 3130330, 2126810, 2126810, 3154906, 3167194, 3175386, 2126737, 2506752, 2507738, 2507665, 2179072, 2179072, 2126737, 2126737, 2126737, 2642833, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2720657, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2585489, 2126737, 2126737, 2126737, 2126737, 2126737, 2618257, 2126737, 2985984, 2985984, 2986897, 2986970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 397, 0, 0, 0, 0, 221184, 221184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221184, 221184, 0, 0, 221184, 221184, 221184, 0, 0, 0, 0, 0, 0, 221184, 0, 0, 0, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 1, 12290, 3, 0, 0, 0, 0, 0, 253952, 0, 0, 0, 253952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 687, 688, 0, 0, 0, 0, 0, 98304, 0, 0, 0, 53248, 0, 0, 0, 0, 0, 2662400, 0, 2813952, 297, 0, 300, 0, 0, 0, 300, 0, 301, 0, 0, 0, 301, 0, 0, 0, 301, 69632, 139679, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 3133440, 0, 98304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2179072, 2179072, 300, 0, 301, 0, 0, 0, 2473984, 2478080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 3121152, 2179072, 2179072, 3141632, 2179072, 2179072, 2179072, 3170304, 2179072, 2179072, 3190784, 3194880, 2179072, 914, 0, 0, 0, 0, 0, 2451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, 301, 0, 0, 0, 0, 0, 914, 0, 2387968, 2125824, 2125824, 2420736, 2125824, 2125824, 2125824, 2125824, 2125824, 2453504, 2125824, 2473984, 2482176, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2531328, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2605056, 2125824, 3194880, 2125824, 987, 0, 0, 0, 987, 0, 2387968, 2125824, 2125824, 2420736, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2887680, 2125824, 2125824, 2924544, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3035136, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 0, 0, 0, 0, 0, 0, 0, 0, 0, 348, 349, 350, 0, 0, 0, 0, 2125824, 237568, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 358, 0, 0, 0, 0, 0, 358, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 0, 0, 0, 2183168, 0, 0, 0, 0, 0, 296, 297, 0, 2134016, 300, 301, 0, 0, 217088, 2125824, 241664, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 131072, 131072, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 155648, 0, 0, 2183168, 0, 0, 270336, 0, 0, 296, 297, 0, 2134016, 300, 301, 200704, 0, 0, 0, 0, 0, 2462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1261, 0, 0, 0, 0, 0, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 180224, 0, 0, 0, 0, 0, 0, 0, 1726, 0, 0, 0, 0, 0, 0, 0, 0, 304, 304, 304, 0, 0, 0, 0, 0, 0, 2748416, 2879488, 0, 20480, 0, 0, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2179072, 2768896, 2777088, 2797568, 2822144, 2179072, 2179072, 2179072, 2883584, 2912256, 2179072, 2179072, 2179072, 2179072, 2179072, 2617344, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2662400, 2179072, 2179072, 2179072, 2179072, 2179072, 3010560, 2179072, 2179072, 2125824, 2125824, 2502656, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2584576, 2125824, 2125824, 2125824, 2125824, 2125824, 2617344, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 266240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2142208, 0, 0, 0, 266240, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12290, 2113823, 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 293, 0, 0, 245760, 0, 0, 2179072, 2125824, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3039232, 2125824, 3063808, 2125824, 2125824, 2125824, 2125824, 3100672, 2125824, 2125824, 3133440, 2125824, 245760, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 122880, 122880, 0, 0, 274432, 274432, 274432, 274432, 0, 0, 0, 0, 0, 274432, 0, 274432, 1, 12290, 3, 0, 0, 0, 0, 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1192, 0, 1195, 0, 0, 78112, 290, 0, 0, 0, 0, 0, 296, 297, 0, 0, 300, 301, 0, 0, 0, 0, 0, 328, 329, 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2200252, 2200252, 2200252, 0, 0, 0, 0, 0, 0, 0, 2033, 0, 0, 0, 0, 0, 2035, 0, 0, 0, 0, 0, 0, 0, 2055, 0, 2056, 0, 0, 0, 0, 0, 0, 0, 2067, 0, 0, 0, 0, 0, 0, 0, 0, 1187, 0, 0, 0, 0, 0, 0, 1104, 2483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690, 0, 0, 2993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 383, 335, 0, 0, 0, 0, 1679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 694, 0, 0, 0, 0, 0, 0, 741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 730, 0, 0, 0, 0, 0, 0, 78456, 290, 0, 0, 0, 0, 0, 296, 297, 0, 0, 300, 301, 0, 0, 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1158, 0, 0, 0, 0, 0, 562, 562, 562, 562, 562, 562, 562, 586, 586, 586, 540, 586, 586, 586, 586, 586, 562, 562, 540, 562, 586, 562, 586, 1, 12290, 3, 78112, 0, 0, 2771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 514, 521, 521, 1, 12290, 3, 78113, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, 0, 0, 0, 0, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 1, 12290, 3, 0, 282624, 282624, 282624, 0, 0, 282624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3178496, 2670592, 0, 2744320, 0, 0, 0, 0, 0, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 0, 282624, 282624, 282624, 282624, 282624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 290, 0, 0, 0, 0, 3176, 0, 0, 2740224, 0, 0, 0, 0, 0, 2793472, 0, 0, 0, 0, 0, 0, 0, 2094, 0, 0, 0, 0, 0, 0, 0, 0, 683, 684, 685, 0, 0, 0, 689, 0, 0, 0, 0, 286720, 286720, 0, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 302, 0, 0, 0, 0, 0, 3043328, 0, 3149824, 2936832, 0, 2760704, 3301, 0, 0, 0, 0, 2953216, 0, 0, 2826240, 2875392, 0, 0, 0, 3381, 0, 0, 2834432, 0, 3227648, 2568192, 0, 0, 0, 0, 2564096, 0, 2748416, 2879488, 0, 3381, 0, 0, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2531328, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2605056, 2179072, 2629632, 2179072, 2179072, 0, 0, 0, 306, 0, 0, 0, 0, 0, 305, 0, 305, 306, 0, 305, 305, 0, 0, 0, 305, 305, 306, 306, 0, 0, 0, 0, 0, 0, 305, 405, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 750, 0, 0, 0, 306, 410, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 742, 0, 0, 0, 0, 742, 0, 748, 0, 0, 0, 0, 0, 0, 1192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 462, 462, 462, 488, 488, 462, 488, 488, 488, 488, 488, 488, 488, 513, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 533, 488, 488, 488, 488, 488, 541, 563, 541, 563, 541, 541, 563, 541, 587, 563, 563, 563, 563, 563, 563, 563, 587, 587, 587, 541, 613, 613, 613, 613, 613, 587, 563, 563, 541, 563, 587, 563, 587, 1, 12290, 3, 78112, 0, 0, 645, 0, 0, 648, 649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 253952, 0, 0, 0, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 762, 0, 0, 0, 0, 0, 353, 0, 351, 0, 472, 472, 472, 472, 472, 472, 472, 477, 472, 472, 472, 472, 472, 472, 472, 472, 472, 477, 472, 0, 768, 0, 0, 772, 0, 0, 0, 0, 0, 0, 781, 0, 0, 0, 0, 0, 0, 727, 0, 0, 0, 731, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 343, 342, 65536, 341, 0, 788, 0, 0, 0, 0, 792, 0, 0, 0, 0, 0, 0, 0, 796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 782, 0, 0, 0, 0, 736, 0, 796, 0, 0, 0, 0, 648, 0, 0, 0, 0, 0, 0, 820, 0, 0, 648, 0, 0, 0, 0, 0, 837, 792, 0, 0, 0, 0, 0, 841, 842, 792, 792, 0, 0, 0, 0, 792, 736, 792, 0, 540, 540, 851, 855, 540, 540, 540, 540, 1345, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2181, 540, 540, 540, 540, 561, 561, 561, 921, 925, 561, 561, 561, 561, 561, 561, 951, 561, 956, 561, 963, 561, 966, 561, 561, 980, 561, 561, 0, 585, 585, 585, 994, 998, 585, 585, 585, 585, 585, 585, 1963, 1964, 1966, 585, 585, 585, 585, 585, 585, 585, 561, 2713, 585, 2715, 2716, 540, 540, 540, 540, 585, 585, 585, 1024, 585, 1029, 585, 1036, 585, 1039, 585, 585, 1053, 585, 585, 966, 0, 0, 0, 855, 585, 998, 925, 851, 1065, 894, 540, 540, 921, 1070, 966, 561, 0, 585, 585, 585, 585, 585, 78112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114688, 0, 241664, 258048, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 766, 0, 0, 1214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 672, 673, 0, 540, 540, 1342, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 0, 0, 585, 585, 585, 1524, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1517, 585, 585, 585, 1433, 0, 540, 585, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 3070, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 0, 0, 0, 3662, 0, 0, 0, 1641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1103, 1104, 1105, 1106, 1654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 785, 0, 1693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 305, 306, 0, 1732, 0, 0, 1733, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 3030, 540, 540, 540, 540, 540, 540, 540, 1745, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1758, 540, 540, 540, 540, 540, 540, 2540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1329, 540, 540, 540, 540, 540, 540, 540, 540, 1795, 540, 540, 1798, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 900, 540, 540, 540, 540, 540, 540, 1810, 540, 540, 540, 540, 540, 1815, 540, 540, 540, 540, 540, 540, 540, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1416, 561, 1825, 561, 561, 561, 561, 1831, 561, 561, 561, 561, 561, 1837, 561, 561, 561, 561, 561, 983, 561, 0, 585, 585, 585, 585, 585, 1002, 585, 1010, 561, 1892, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1904, 561, 561, 561, 561, 585, 585, 585, 585, 0, 0, 0, 2726, 0, 0, 2729, 2730, 561, 561, 1909, 561, 561, 561, 561, 561, 561, 561, 26027, 1919, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 540, 3649, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 3231, 3232, 561, 1925, 585, 585, 585, 585, 585, 1931, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 3596, 1944, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1540, 561, 561, 2025, 585, 585, 585, 0, 2029, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 0, 2487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122880, 0, 0, 0, 0, 0, 0, 0, 2041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1132, 0, 0, 0, 2075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1135, 0, 2145, 0, 0, 0, 2143, 0, 0, 2150, 0, 0, 0, 0, 0, 0, 0, 0, 159744, 0, 0, 0, 0, 0, 0, 0, 0, 1234, 0, 0, 0, 0, 0, 0, 0, 0, 1584, 0, 0, 0, 0, 0, 0, 0, 0, 1700, 0, 0, 0, 0, 1705, 0, 0, 540, 540, 2171, 540, 540, 2174, 540, 540, 540, 540, 540, 540, 2182, 540, 540, 540, 540, 540, 540, 2568, 540, 540, 540, 540, 2572, 540, 540, 540, 540, 540, 540, 1347, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2556, 540, 540, 540, 540, 540, 540, 540, 2201, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 0, 2242, 540, 540, 540, 2214, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1805, 540, 540, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2254, 561, 0, 585, 585, 585, 585, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 2123, 0, 2125, 2126, 0, 0, 0, 0, 561, 2257, 561, 561, 561, 561, 561, 561, 2265, 561, 561, 561, 561, 561, 561, 561, 0, 0, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 2952, 561, 2954, 561, 2299, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1438, 561, 2033, 0, 2035, 0, 0, 2426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2434, 0, 0, 0, 2475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1193, 0, 0, 0, 0, 2484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2493, 0, 0, 0, 0, 0, 0, 756, 0, 0, 0, 0, 0, 0, 763, 0, 0, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 2592, 561, 561, 561, 561, 561, 1408, 561, 561, 1412, 561, 561, 561, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 1008, 585, 2656, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2664, 585, 585, 585, 585, 585, 585, 2350, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2379, 585, 585, 585, 585, 585, 585, 585, 585, 2699, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1940, 585, 585, 2708, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 540, 540, 561, 561, 561, 3229, 561, 561, 561, 561, 561, 561, 585, 585, 585, 3352, 585, 585, 585, 3355, 585, 585, 2731, 0, 0, 0, 0, 0, 0, 2736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 0, 0, 0, 2759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1234, 540, 540, 540, 0, 0, 0, 2788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1238, 0, 0, 0, 540, 540, 540, 2826, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2833, 540, 540, 540, 540, 1748, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1760, 540, 540, 540, 540, 1765, 540, 540, 540, 540, 540, 540, 540, 540, 1772, 540, 540, 540, 540, 561, 3406, 561, 561, 3408, 561, 561, 561, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 1009, 585, 561, 561, 561, 2860, 561, 561, 2864, 561, 561, 561, 561, 561, 561, 561, 561, 561, 944, 561, 561, 561, 561, 561, 561, 561, 2873, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2881, 561, 561, 0, 0, 0, 2649, 0, 1920, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2703, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2908, 585, 585, 2912, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2393, 2394, 585, 585, 585, 585, 585, 2921, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2929, 585, 585, 0, 0, 0, 3292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3297, 2955, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 306, 305, 0, 0, 0, 2970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1588, 1589, 0, 0, 540, 540, 540, 540, 3036, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2546, 540, 540, 540, 561, 561, 561, 3076, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1436, 561, 561, 561, 585, 585, 585, 3117, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2356, 585, 2358, 0, 0, 0, 0, 3176, 3442, 0, 3444, 0, 0, 0, 0, 0, 540, 3451, 540, 540, 540, 540, 1796, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 905, 540, 540, 540, 540, 3453, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 561, 3466, 561, 3468, 0, 0, 3501, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 3510, 540, 540, 540, 540, 540, 3204, 3205, 540, 540, 540, 540, 3209, 3210, 540, 540, 540, 540, 540, 1749, 1750, 540, 540, 540, 540, 1757, 540, 540, 540, 540, 540, 540, 1346, 540, 540, 540, 540, 540, 540, 1356, 540, 540, 307, 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 734, 0, 0, 0, 0, 418, 0, 0, 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, 0, 0, 286720, 0, 0, 0, 0, 0, 0, 0, 0, 2490, 0, 0, 0, 0, 0, 0, 0, 0, 2504, 0, 0, 0, 0, 0, 0, 0, 0, 2517, 0, 0, 0, 0, 0, 0, 0, 0, 2975, 0, 0, 0, 0, 0, 0, 0, 0, 2999, 0, 0, 0, 0, 0, 0, 0, 0, 3164, 0, 0, 0, 0, 0, 0, 0, 0, 3173, 0, 0, 0, 0, 0, 0, 0, 0, 3183, 0, 0, 0, 0, 0, 0, 0, 0, 155648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, 449, 418, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 532, 449, 532, 532, 532, 449, 532, 532, 532, 532, 449, 542, 564, 542, 564, 542, 542, 564, 542, 588, 564, 564, 564, 564, 564, 564, 564, 588, 588, 588, 542, 588, 588, 588, 588, 588, 564, 564, 616, 621, 588, 621, 627, 1, 12290, 3, 78112, 0, 1677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1163, 540, 540, 540, 1811, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1377, 561, 0, 585, 585, 585, 585, 585, 78112, 1079, 0, 0, 1082, 1086, 0, 0, 1090, 585, 585, 585, 1993, 585, 585, 585, 585, 585, 1999, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 3551, 0, 3553, 0, 0, 0, 0, 0, 561, 561, 561, 561, 561, 2589, 561, 561, 561, 561, 2593, 561, 561, 0, 2648, 0, 0, 0, 0, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2338, 585, 585, 585, 585, 585, 585, 585, 2657, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1971, 585, 585, 585, 2709, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 540, 540, 561, 561, 3228, 561, 561, 561, 561, 561, 561, 561, 0, 0, 585, 2900, 585, 585, 585, 585, 585, 540, 3514, 540, 3516, 540, 540, 3518, 540, 561, 561, 561, 561, 561, 561, 561, 561, 1396, 1398, 561, 561, 561, 561, 561, 561, 3527, 561, 3529, 561, 561, 3531, 561, 585, 585, 585, 585, 585, 585, 585, 585, 3540, 585, 3542, 585, 585, 3544, 585, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 362, 0, 0, 0, 147456, 0, 0, 0, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, 0, 0, 373, 0, 0, 0, 0, 365, 0, 382, 0, 348, 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 328, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 764, 0, 0, 420, 428, 419, 428, 0, 310, 428, 441, 450, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 484, 489, 489, 500, 489, 489, 489, 489, 489, 489, 489, 489, 515, 515, 528, 528, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 515, 529, 529, 529, 529, 529, 543, 565, 543, 565, 543, 543, 565, 543, 589, 565, 565, 565, 565, 565, 565, 565, 589, 589, 589, 612, 589, 589, 589, 589, 589, 614, 615, 615, 612, 615, 614, 615, 614, 1, 12290, 3, 78112, 0, 702, 0, 0, 0, 0, 0, 702, 0, 0, 0, 540, 540, 540, 540, 540, 3028, 540, 540, 540, 540, 540, 540, 540, 561, 967, 561, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 585, 585, 2337, 585, 585, 585, 585, 2341, 585, 0, 1108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 3200, 0, 1150, 1108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1102, 0, 0, 0, 1228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 0, 0, 540, 540, 1276, 1278, 540, 540, 540, 540, 540, 540, 540, 540, 1292, 540, 1297, 540, 540, 1301, 540, 540, 540, 540, 1812, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1823, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1378, 561, 0, 585, 585, 585, 585, 585, 78112, 1079, 0, 0, 1083, 1087, 0, 0, 1091, 540, 1304, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1302, 540, 1360, 914, 561, 561, 1364, 561, 1367, 561, 561, 561, 561, 561, 561, 561, 561, 1381, 561, 1386, 561, 561, 1390, 561, 561, 1393, 561, 561, 561, 561, 561, 561, 561, 561, 1431, 561, 561, 1435, 561, 561, 561, 561, 1484, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1942, 540, 1793, 1794, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 2584, 0, 585, 585, 1946, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2005, 585, 585, 585, 1959, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2357, 585, 2102, 0, 0, 0, 0, 1670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 328, 379, 381, 0, 0, 0, 0, 0, 2133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 2033, 0, 2035, 0, 0, 0, 0, 0, 0, 2428, 0, 0, 0, 0, 0, 0, 0, 2122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122880, 0, 122880, 122880, 122880, 122880, 122880, 0, 0, 2474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1133, 0, 0, 0, 0, 0, 0, 2760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 380, 0, 0, 0, 384, 0, 0, 2799, 0, 0, 0, 0, 0, 0, 0, 2803, 540, 540, 540, 540, 540, 540, 540, 1326, 540, 540, 540, 540, 540, 540, 540, 1339, 585, 2956, 0, 0, 0, 0, 0, 2962, 0, 0, 0, 0, 0, 0, 0, 2966, 0, 0, 0, 3008, 0, 0, 0, 0, 0, 0, 0, 0, 3017, 0, 0, 0, 0, 0, 383, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 3048, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1320, 3089, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1858, 3130, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1957, 540, 3225, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3414, 585, 585, 585, 3281, 585, 585, 585, 585, 561, 540, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 3157, 3513, 540, 540, 540, 540, 540, 540, 540, 561, 3521, 561, 3522, 561, 561, 561, 3526, 540, 540, 540, 3664, 561, 561, 561, 3666, 585, 585, 585, 3668, 0, 0, 540, 540, 540, 3560, 540, 540, 540, 540, 540, 540, 540, 540, 3568, 561, 321, 321, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1161, 0, 0, 0, 0, 371, 0, 430, 436, 0, 442, 451, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 490, 490, 501, 490, 490, 490, 490, 490, 490, 490, 490, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 544, 566, 544, 566, 544, 544, 566, 544, 590, 566, 566, 566, 566, 566, 566, 566, 590, 590, 590, 544, 590, 590, 590, 590, 590, 566, 566, 544, 566, 590, 566, 590, 1, 12290, 3, 78112, 540, 540, 540, 874, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1822, 540, 1360, 585, 1017, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 561, 561, 1122, 0, 1124, 1125, 0, 0, 0, 1127, 1128, 0, 0, 0, 0, 0, 0, 0, 0, 1159168, 0, 1159168, 0, 0, 0, 0, 1159168, 0, 0, 1166, 1167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1634, 0, 0, 0, 1113, 0, 1253, 0, 0, 0, 0, 0, 1128, 0, 0, 0, 0, 0, 1236, 0, 0, 0, 0, 773, 774, 0, 0, 778, 779, 0, 675, 0, 0, 0, 0, 0, 0, 1598, 0, 0, 0, 0, 0, 0, 0, 0, 1605, 0, 0, 1268, 1127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 1277, 540, 540, 540, 1323, 540, 540, 1325, 540, 540, 1328, 540, 540, 540, 540, 540, 540, 540, 540, 2554, 540, 540, 540, 540, 540, 540, 2560, 1360, 914, 561, 561, 1365, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1400, 561, 561, 561, 561, 561, 561, 1404, 561, 561, 561, 561, 561, 561, 561, 1413, 561, 561, 1415, 561, 561, 0, 2648, 0, 0, 0, 0, 585, 585, 585, 585, 585, 585, 585, 2655, 561, 1419, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1874, 561, 561, 561, 1443, 561, 561, 561, 561, 561, 26027, 1360, 987, 585, 585, 1456, 585, 585, 0, 0, 3291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1262, 0, 0, 0, 1266, 585, 585, 585, 1504, 585, 585, 1506, 585, 585, 585, 1510, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 2020, 561, 561, 0, 0, 0, 1657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1675, 0, 0, 0, 585, 1991, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2695, 561, 2024, 585, 585, 585, 2028, 0, 2029, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 0, 2502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1586, 1587, 0, 0, 0, 0, 0, 0, 0, 2033, 0, 0, 0, 0, 0, 2035, 0, 0, 0, 0, 0, 2038, 0, 0, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1177, 0, 0, 0, 0, 0, 0, 2091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 2807, 540, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 2252, 561, 561, 561, 561, 561, 1447, 561, 561, 26027, 1360, 987, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 2017, 540, 540, 540, 2021, 561, 2256, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1875, 2272, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1890, 561, 561, 561, 2314, 561, 2316, 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, 0, 0, 0, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2340, 585, 585, 585, 2399, 585, 2401, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 561, 561, 540, 540, 2564, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3212, 540, 0, 0, 0, 561, 561, 561, 561, 2588, 561, 561, 561, 561, 561, 561, 561, 561, 1916, 561, 26027, 0, 585, 585, 585, 585, 0, 2757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 735, 0, 2834, 540, 540, 540, 540, 540, 540, 540, 2840, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2571, 540, 540, 540, 540, 540, 540, 2882, 561, 561, 561, 561, 561, 561, 561, 2888, 561, 561, 561, 561, 561, 561, 561, 0, 0, 585, 585, 585, 2902, 585, 585, 585, 2930, 585, 585, 585, 585, 585, 585, 585, 2936, 585, 585, 585, 585, 585, 585, 585, 561, 540, 2714, 585, 561, 540, 540, 540, 540, 540, 540, 3226, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3074, 585, 585, 585, 585, 3282, 585, 585, 585, 561, 540, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 3156, 0, 585, 585, 3369, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 0, 0, 0, 0, 2617344, 0, 0, 0, 0, 0, 2789376, 0, 0, 0, 0, 0, 3176, 0, 0, 0, 3445, 0, 0, 0, 0, 540, 540, 540, 540, 3027, 540, 540, 540, 540, 3031, 540, 540, 540, 540, 540, 540, 3456, 540, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 3524, 561, 561, 561, 561, 3471, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3486, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 3626, 540, 540, 540, 3515, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3413, 561, 561, 3528, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3113, 585, 585, 585, 3541, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 208896, 0, 0, 0, 0, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1194, 1196, 0, 0, 0, 0, 322, 370, 325, 369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 364, 0, 0, 0, 0, 0, 0, 322, 0, 0, 369, 369, 399, 0, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 233472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, 0, 0, 0, 322, 452, 465, 465, 465, 465, 465, 465, 465, 478, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 491, 491, 465, 491, 491, 506, 508, 491, 491, 506, 491, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 534, 517, 517, 517, 517, 517, 545, 567, 545, 567, 545, 545, 567, 545, 591, 567, 567, 567, 567, 567, 567, 567, 591, 591, 591, 545, 591, 591, 591, 591, 591, 567, 567, 545, 567, 591, 567, 591, 1, 12290, 3, 78112, 659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 670, 671, 0, 0, 0, 0, 0, 439, 0, 0, 0, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 557, 580, 557, 580, 557, 557, 580, 557, 604, 0, 0, 707, 708, 0, 0, 0, 0, 0, 714, 0, 0, 0, 718, 0, 720, 0, 769, 770, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1209, 0, 0, 787, 0, 789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1224, 0, 0, 0, 801, 0, 806, 0, 809, 0, 0, 0, 0, 806, 809, 0, 0, 0, 809, 0, 707, 0, 0, 826, 0, 0, 0, 0, 0, 826, 826, 829, 809, 806, 0, 0, 0, 0, 0, 0, 0, 789, 0, 801, 0, 818, 0, 0, 0, 0, 0, 2745, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 811, 540, 540, 854, 540, 540, 0, 0, 0, 789, 0, 0, 0, 0, 0, 838, 0, 0, 0, 0, 0, 0, 0, 2142, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2819, 540, 540, 540, 540, 540, 0, 0, 0, 787, 0, 0, 0, 838, 818, 838, 0, 540, 540, 852, 540, 858, 540, 540, 871, 540, 881, 540, 886, 540, 540, 893, 896, 901, 540, 909, 540, 540, 540, 540, 540, 3215, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 895, 540, 540, 540, 540, 540, 561, 561, 561, 922, 561, 928, 561, 561, 941, 561, 561, 952, 561, 957, 561, 561, 0, 2648, 0, 0, 0, 0, 585, 585, 585, 585, 585, 2653, 585, 585, 0, 0, 2959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2965, 0, 965, 968, 973, 561, 981, 561, 561, 0, 585, 585, 585, 995, 585, 1001, 585, 585, 0, 2958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131072, 131072, 0, 0, 1014, 585, 585, 1025, 585, 1030, 585, 585, 1038, 1041, 1046, 585, 1054, 585, 585, 968, 0, 0, 0, 540, 585, 585, 561, 852, 540, 1066, 901, 540, 922, 561, 1071, 973, 0, 0, 0, 1110, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1205, 0, 0, 0, 0, 0, 0, 0, 1137, 1138, 0, 0, 0, 0, 1142, 0, 0, 0, 362, 362, 0, 0, 0, 0, 0, 664, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1206, 0, 0, 0, 0, 0, 0, 1165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 1182, 741, 0, 0, 0, 1134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245760, 0, 0, 0, 0, 0, 0, 1303, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1318, 540, 540, 540, 540, 2173, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2558, 540, 540, 540, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1372, 561, 561, 561, 561, 561, 1850, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1902, 1903, 561, 561, 561, 561, 561, 561, 1387, 561, 561, 561, 1392, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1432, 561, 561, 561, 561, 561, 1439, 561, 561, 561, 1421, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1437, 561, 0, 585, 585, 585, 1049, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 836, 0, 0, 0, 0, 0, 0, 811, 0, 585, 585, 585, 585, 1463, 585, 585, 585, 585, 585, 585, 1478, 585, 585, 585, 1483, 0, 0, 1608, 1609, 1610, 0, 1612, 1613, 0, 0, 0, 0, 1618, 0, 0, 0, 0, 0, 679, 751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2144, 0, 0, 1640, 0, 0, 1643, 0, 1645, 0, 0, 0, 0, 0, 1651, 1652, 0, 0, 0, 0, 785, 0, 0, 0, 0, 0, 0, 540, 846, 540, 540, 540, 540, 540, 540, 3216, 540, 540, 540, 540, 540, 3221, 540, 3223, 540, 0, 1668, 0, 0, 1670, 0, 0, 0, 0, 1672, 1673, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 347, 345, 65536, 0, 1692, 0, 0, 0, 0, 0, 1698, 1699, 0, 1701, 1702, 1703, 0, 0, 0, 0, 0, 0, 810, 811, 0, 0, 0, 0, 811, 0, 0, 0, 1719, 0, 0, 0, 1723, 1724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 346, 0, 0, 0, 0, 0, 0, 0, 1715, 0, 0, 0, 1735, 1585, 1585, 1737, 540, 1739, 540, 1740, 540, 1742, 540, 540, 540, 1746, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1759, 540, 540, 540, 540, 540, 3318, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2557, 540, 540, 540, 540, 540, 540, 1763, 540, 540, 540, 540, 1767, 540, 1769, 540, 540, 540, 540, 540, 540, 540, 540, 2570, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3041, 540, 540, 540, 540, 540, 540, 540, 540, 1777, 1778, 1780, 540, 540, 540, 540, 540, 540, 1787, 1788, 540, 540, 1791, 1792, 540, 540, 540, 540, 540, 540, 540, 1800, 540, 540, 540, 1804, 540, 540, 540, 540, 540, 540, 2829, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1770, 540, 540, 540, 540, 540, 0, 1828, 561, 1830, 561, 561, 1832, 561, 1834, 561, 561, 561, 1838, 561, 561, 561, 561, 585, 585, 585, 585, 0, 0, 2725, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 135168, 135168, 0, 0, 65536, 135168, 1859, 561, 1861, 561, 561, 561, 561, 561, 561, 561, 561, 1869, 1870, 1872, 561, 561, 0, 2648, 0, 0, 0, 0, 585, 585, 585, 585, 2652, 585, 585, 585, 585, 585, 585, 2390, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3124, 585, 585, 585, 585, 585, 561, 561, 561, 1894, 561, 561, 561, 1898, 561, 561, 561, 561, 561, 561, 561, 1906, 585, 1926, 585, 1928, 585, 585, 585, 1932, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 585, 1945, 585, 585, 585, 585, 1949, 585, 585, 585, 585, 1953, 585, 1955, 585, 585, 561, 3146, 3147, 3148, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 0, 0, 2488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2096, 0, 0, 0, 0, 0, 0, 1974, 1975, 1976, 585, 585, 1979, 1980, 585, 585, 585, 585, 585, 585, 585, 1988, 585, 561, 0, 1288, 585, 1468, 1377, 540, 540, 540, 1549, 540, 561, 561, 561, 1553, 585, 585, 1992, 585, 585, 585, 585, 585, 585, 585, 2000, 585, 585, 585, 585, 585, 561, 561, 540, 561, 585, 561, 585, 1, 12290, 3, 78112, 585, 585, 585, 585, 2011, 561, 540, 2014, 585, 561, 1792, 540, 2019, 540, 1886, 561, 0, 585, 585, 1040, 585, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 1134592, 0, 0, 0, 0, 2023, 561, 1980, 585, 2027, 585, 0, 2029, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 0, 2761, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 661, 0, 0, 0, 0, 0, 0, 2089, 0, 0, 0, 0, 2093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2119, 0, 2121, 0, 0, 0, 0, 0, 0, 0, 2129, 0, 0, 0, 0, 786, 0, 805, 0, 0, 0, 0, 540, 849, 540, 540, 540, 540, 540, 2216, 540, 540, 540, 540, 540, 540, 2221, 540, 540, 540, 540, 540, 540, 3633, 561, 561, 561, 561, 561, 561, 3639, 585, 585, 0, 0, 0, 2134, 0, 0, 0, 0, 2139, 0, 0, 0, 0, 0, 0, 0, 0, 2990080, 2179072, 2179072, 2502656, 2179072, 2179072, 2179072, 2179072, 540, 2187, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1337, 540, 2211, 2212, 540, 540, 540, 540, 540, 540, 2219, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2582, 540, 540, 540, 0, 0, 0, 561, 561, 2258, 561, 2260, 561, 561, 561, 561, 561, 561, 2268, 561, 2270, 561, 561, 561, 561, 1426, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3343, 561, 561, 561, 561, 3344, 3345, 561, 561, 2343, 585, 2345, 585, 585, 585, 585, 585, 585, 2353, 585, 2355, 585, 585, 585, 585, 561, 0, 0, 0, 3648, 0, 540, 540, 540, 540, 3652, 540, 585, 585, 585, 585, 2389, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2705, 585, 585, 585, 585, 585, 585, 585, 2402, 585, 585, 2405, 2406, 585, 585, 561, 2177, 585, 2345, 2260, 540, 2414, 540, 540, 561, 2418, 561, 561, 585, 2422, 585, 585, 2029, 0, 2031, 0, 0, 0, 0, 795, 663, 844, 0, 0, 0, 0, 540, 848, 540, 540, 540, 540, 540, 1283, 540, 540, 540, 540, 540, 540, 1298, 540, 540, 540, 540, 540, 540, 2580, 540, 540, 540, 540, 540, 540, 0, 2584, 0, 0, 0, 2450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1239, 0, 0, 0, 2459, 0, 0, 0, 0, 0, 2464, 0, 2466, 2467, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 371, 0, 65536, 0, 0, 2498, 0, 0, 0, 0, 0, 0, 0, 2505, 0, 0, 0, 0, 0, 0, 0, 2479, 0, 0, 0, 2481, 0, 0, 0, 0, 2561, 540, 540, 540, 2566, 540, 540, 540, 540, 540, 540, 540, 2573, 540, 540, 540, 540, 540, 540, 2838, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1296, 540, 540, 540, 540, 540, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 2591, 561, 561, 561, 561, 561, 561, 2640, 561, 561, 561, 2643, 561, 561, 561, 561, 561, 561, 2886, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1867, 561, 561, 561, 561, 561, 561, 2621, 561, 561, 561, 561, 2625, 561, 561, 561, 2630, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 0, 3661, 0, 0, 561, 2637, 561, 561, 561, 561, 561, 561, 561, 2642, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3427, 585, 2669, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3267, 2797, 2798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 1741, 540, 0, 0, 2982, 2983, 0, 2984, 0, 2986, 0, 0, 0, 0, 2988, 0, 0, 0, 0, 0, 680, 681, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2047, 0, 0, 0, 0, 0, 0, 0, 0, 3007, 0, 0, 2988, 0, 0, 3013, 3014, 0, 3016, 0, 0, 3019, 0, 0, 0, 0, 800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 800, 0, 0, 0, 0, 3022, 540, 540, 540, 540, 540, 540, 3029, 540, 540, 540, 540, 540, 3033, 3062, 540, 561, 561, 561, 561, 561, 561, 3069, 561, 561, 561, 561, 561, 3073, 561, 0, 585, 585, 1042, 585, 585, 288, 1079, 0, 0, 1082, 1086, 0, 0, 1090, 3103, 561, 585, 585, 585, 585, 585, 585, 3110, 585, 585, 585, 585, 585, 3114, 585, 561, 0, 1543, 585, 1545, 1546, 540, 540, 1548, 540, 540, 561, 561, 1552, 561, 0, 585, 585, 1044, 585, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 794, 0, 0, 0, 0, 0, 0, 0, 798, 3144, 585, 561, 540, 585, 561, 540, 3150, 561, 3152, 585, 3154, 0, 0, 0, 0, 0, 0, 825, 0, 819, 0, 664, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 221184, 0, 0, 0, 0, 65536, 0, 0, 0, 3160, 0, 0, 3163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 2806, 540, 540, 540, 3202, 540, 540, 540, 540, 540, 540, 540, 3207, 540, 540, 540, 540, 540, 540, 540, 540, 3040, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3322, 540, 540, 540, 540, 540, 540, 561, 3234, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1889, 561, 3245, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 585, 3257, 585, 585, 585, 585, 585, 585, 585, 3262, 585, 585, 585, 585, 585, 561, 2013, 585, 2015, 2016, 540, 2018, 540, 540, 561, 2022, 561, 561, 561, 3349, 561, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2667, 0, 3378, 3379, 0, 3176, 0, 3383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 0, 0, 0, 0, 0, 384, 0, 0, 0, 3441, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 2167, 540, 540, 0, 0, 0, 0, 3503, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 3512, 0, 0, 3557, 3558, 3559, 540, 540, 540, 3562, 540, 3564, 540, 540, 540, 540, 3569, 3570, 3571, 561, 561, 561, 3574, 561, 3576, 561, 561, 561, 561, 3581, 3582, 3583, 585, 561, 1203, 540, 585, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 585, 585, 585, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 585, 585, 3586, 585, 3588, 585, 585, 585, 585, 3593, 0, 0, 0, 0, 0, 0, 0, 2747, 2748, 2749, 0, 0, 0, 0, 0, 0, 0, 2763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 1, 12290, 0, 0, 540, 3628, 540, 540, 540, 3632, 561, 561, 3634, 561, 561, 561, 3638, 585, 585, 3640, 585, 585, 585, 3644, 561, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 3563, 540, 3565, 540, 540, 540, 561, 0, 0, 0, 326, 327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 674, 0, 0, 0, 0, 0, 366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1120, 0, 0, 0, 0, 366, 0, 0, 0, 374, 376, 0, 0, 0, 0, 0, 0, 0, 344, 0, 402, 0, 0, 0, 0, 0, 402, 0, 0, 409, 0, 0, 0, 409, 69632, 73728, 0, 366, 366, 0, 421, 65536, 366, 0, 0, 366, 421, 498, 502, 498, 498, 507, 498, 498, 498, 507, 498, 421, 421, 327, 421, 0, 0, 421, 0, 421, 0, 0, 0, 0, 0, 0, 0, 372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 546, 568, 546, 568, 546, 546, 568, 546, 592, 568, 568, 568, 568, 568, 568, 568, 592, 592, 592, 546, 592, 592, 592, 592, 592, 568, 568, 546, 568, 592, 568, 592, 1, 12290, 3, 78112, 0, 0, 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1248, 0, 0, 540, 540, 540, 875, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2183, 540, 540, 561, 561, 915, 561, 561, 561, 561, 561, 561, 945, 561, 561, 561, 561, 561, 561, 585, 3421, 585, 585, 3423, 585, 585, 585, 585, 585, 585, 1018, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 540, 0, 0, 0, 540, 988, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 3068, 561, 561, 561, 561, 561, 561, 561, 561, 932, 561, 561, 946, 561, 561, 561, 561, 561, 561, 934, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3240, 561, 561, 561, 561, 561, 561, 0, 0, 1109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1604, 0, 0, 0, 0, 1229, 0, 1109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 540, 540, 540, 1281, 540, 540, 540, 540, 540, 1293, 540, 540, 540, 540, 540, 540, 540, 540, 3054, 3056, 540, 540, 540, 3059, 540, 3061, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 1370, 561, 561, 561, 561, 561, 1382, 585, 585, 1461, 585, 585, 585, 585, 585, 1473, 585, 585, 585, 585, 585, 585, 585, 585, 2914, 585, 585, 585, 585, 585, 585, 585, 585, 3122, 585, 585, 585, 585, 585, 585, 585, 585, 3136, 3138, 585, 585, 585, 3141, 585, 3143, 0, 1720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1134, 0, 1990, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1972, 585, 585, 585, 2373, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2370, 585, 585, 585, 585, 2698, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2383, 585, 0, 0, 0, 3161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1688, 0, 0, 0, 561, 561, 3235, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 0, 2325, 0, 3663, 540, 540, 540, 3665, 561, 561, 561, 3667, 585, 585, 585, 0, 0, 540, 540, 540, 2526, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3058, 540, 540, 540, 422, 422, 0, 422, 431, 0, 422, 0, 422, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 492, 492, 466, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 547, 569, 547, 569, 547, 547, 569, 547, 593, 569, 569, 569, 569, 569, 569, 569, 593, 593, 593, 547, 593, 593, 593, 593, 593, 569, 569, 547, 569, 593, 569, 593, 1, 12290, 3, 78112, 0, 0, 0, 0, 2159, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3032, 540, 540, 540, 540, 540, 2202, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2208, 540, 540, 2413, 540, 540, 540, 2417, 561, 561, 561, 2421, 585, 585, 585, 0, 0, 0, 0, 3293, 0, 0, 0, 0, 0, 3296, 0, 0, 0, 2458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1250, 2967, 0, 0, 0, 2971, 0, 0, 0, 0, 0, 2977, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 418, 0, 65536, 0, 0, 2992, 0, 0, 2995, 0, 0, 0, 0, 0, 3000, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 367, 367, 0, 0, 65536, 367, 0, 0, 0, 3023, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2222, 540, 540, 540, 540, 3049, 540, 540, 540, 540, 540, 540, 540, 540, 3057, 540, 540, 3060, 540, 540, 540, 540, 2189, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2583, 0, 0, 0, 540, 540, 3063, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 0, 2326, 0, 561, 561, 3090, 561, 561, 561, 561, 561, 561, 561, 561, 3098, 561, 561, 3101, 561, 0, 585, 585, 1045, 585, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 1102, 1101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 1275, 540, 561, 561, 3104, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2666, 585, 585, 585, 3131, 585, 585, 585, 585, 585, 585, 585, 585, 3139, 585, 585, 3142, 585, 585, 585, 585, 585, 1930, 585, 585, 585, 585, 585, 585, 585, 585, 1941, 585, 585, 585, 585, 585, 1948, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3263, 585, 585, 585, 585, 0, 0, 0, 0, 3179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 0, 0, 0, 0, 0, 0, 3192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 2808, 3201, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1359, 540, 3213, 540, 540, 540, 540, 540, 540, 540, 3218, 540, 3220, 540, 540, 540, 540, 540, 540, 561, 3227, 561, 561, 561, 3230, 561, 561, 561, 561, 561, 982, 561, 0, 585, 585, 585, 585, 999, 585, 585, 585, 561, 561, 3246, 561, 3248, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 3537, 585, 585, 585, 585, 3256, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3278, 585, 585, 3268, 585, 585, 585, 585, 585, 585, 585, 585, 3274, 585, 3276, 585, 585, 561, 3370, 540, 3371, 561, 3372, 585, 0, 0, 0, 0, 0, 0, 0, 785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1179, 540, 540, 3328, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3233, 561, 561, 561, 561, 3340, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3346, 561, 0, 994, 1075, 1039, 585, 585, 78112, 1079, 0, 0, 1081, 1085, 0, 0, 1089, 3358, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3364, 585, 585, 585, 585, 585, 585, 585, 1981, 1982, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 2951, 540, 2953, 561, 561, 561, 3654, 3655, 561, 561, 585, 585, 3658, 3659, 585, 585, 0, 0, 0, 0, 0, 0, 1126, 0, 0, 0, 1130, 1131, 0, 0, 0, 0, 0, 0, 1141, 0, 1143, 0, 0, 362, 362, 0, 0, 0, 691, 0, 0, 0, 0, 696, 0, 0, 0, 362, 362, 362, 0, 0, 0, 0, 0, 0, 1154, 0, 0, 0, 0, 0, 1160, 0, 1162, 0, 758, 0, 0, 0, 0, 0, 0, 758, 0, 0, 0, 0, 0, 758, 758, 0, 0, 0, 0, 803, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 856, 585, 999, 926, 540, 540, 540, 540, 910, 561, 561, 561, 561, 561, 1880, 1881, 1882, 561, 561, 1885, 1886, 561, 561, 561, 561, 561, 1896, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2603, 561, 2605, 561, 561, 561, 982, 0, 585, 585, 585, 585, 1055, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 375, 0, 378, 0, 0, 0, 378, 0, 0, 0, 0, 1709, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1619, 0, 0, 585, 585, 585, 2010, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 561, 561, 561, 3066, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2600, 561, 561, 561, 561, 561, 561, 561, 561, 0, 0, 987, 585, 585, 585, 585, 585, 0, 2039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1178, 0, 540, 540, 540, 2172, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2238, 2584, 0, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2255, 0, 0, 0, 0, 2461, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 747, 0, 0, 0, 0, 3288, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1184, 1184, 561, 561, 561, 561, 3350, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2939, 585, 585, 585, 585, 3368, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 0, 0, 0, 394, 0, 0, 0, 0, 0, 394, 0, 0, 467, 467, 485, 493, 493, 485, 493, 493, 493, 493, 493, 493, 493, 493, 518, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 535, 526, 526, 526, 526, 526, 548, 570, 548, 570, 548, 548, 570, 548, 594, 570, 570, 570, 570, 570, 570, 570, 594, 594, 594, 548, 594, 594, 594, 594, 594, 570, 570, 548, 570, 594, 570, 594, 1, 12290, 3, 78112, 767, 0, 0, 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1704, 0, 0, 0, 821, 0, 0, 0, 798, 0, 0, 821, 0, 0, 0, 0, 0, 821, 821, 0, 0, 0, 0, 805, 0, 0, 786, 0, 0, 0, 0, 805, 0, 0, 0, 0, 0, 0, 0, 805, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 839, 794, 0, 0, 839, 0, 0, 0, 0, 808, 0, 0, 692, 0, 0, 672, 0, 692, 0, 813, 675, 676, 0, 0, 0, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 340, 0, 0, 0, 0, 0, 0, 0, 540, 867, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 911, 540, 540, 540, 540, 2215, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1756, 540, 540, 540, 540, 983, 0, 585, 585, 585, 1077, 1056, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 412, 412, 0, 0, 0, 0, 0, 412, 0, 1180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1621, 0, 0, 1241, 0, 0, 0, 0, 0, 0, 0, 0, 1246, 0, 0, 0, 0, 0, 0, 1170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 816, 0, 0, 0, 0, 0, 0, 540, 1305, 540, 540, 540, 540, 540, 540, 540, 1313, 540, 540, 540, 540, 540, 540, 540, 540, 3332, 540, 561, 561, 561, 561, 561, 561, 935, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3094, 561, 3096, 561, 561, 561, 561, 561, 561, 1340, 540, 540, 1344, 540, 540, 540, 540, 540, 1350, 540, 540, 540, 1357, 540, 540, 540, 540, 540, 3458, 540, 3460, 3461, 540, 3463, 540, 561, 561, 561, 561, 561, 2262, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1399, 561, 561, 561, 561, 561, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1375, 561, 561, 561, 561, 1848, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2868, 561, 561, 561, 561, 561, 1441, 561, 561, 561, 1448, 561, 561, 26027, 1360, 987, 585, 585, 585, 585, 585, 585, 585, 1998, 585, 585, 585, 585, 585, 2003, 585, 585, 1485, 585, 585, 585, 585, 585, 585, 585, 1493, 585, 585, 585, 585, 585, 585, 585, 585, 3261, 585, 585, 585, 585, 585, 585, 585, 585, 3272, 585, 585, 585, 585, 585, 585, 585, 585, 3283, 540, 585, 561, 540, 540, 561, 561, 585, 1522, 585, 585, 1526, 585, 585, 585, 585, 585, 1532, 585, 585, 585, 1539, 585, 585, 585, 585, 585, 1996, 1997, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1531, 585, 585, 585, 585, 585, 585, 0, 0, 0, 1595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1716, 0, 0, 0, 0, 0, 1656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1665, 0, 0, 0, 0, 0, 710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 662, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 1708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1653, 0, 0, 0, 1722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1729, 0, 0, 0, 0, 0, 0, 1706, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3398, 540, 3400, 540, 561, 561, 1893, 561, 561, 561, 561, 561, 561, 1901, 561, 561, 561, 561, 561, 561, 1410, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1428, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1917, 26027, 0, 1922, 585, 1924, 585, 561, 561, 561, 1910, 1912, 561, 561, 561, 561, 561, 26027, 0, 585, 585, 585, 585, 585, 585, 2335, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 3622, 0, 3624, 0, 0, 540, 585, 585, 585, 585, 1978, 585, 585, 585, 585, 585, 585, 585, 585, 1987, 585, 585, 585, 585, 585, 585, 2934, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2407, 561, 540, 585, 585, 561, 585, 585, 585, 585, 1995, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2004, 2006, 0, 0, 0, 2078, 0, 0, 0, 2081, 0, 0, 0, 0, 0, 2087, 0, 0, 0, 0, 0, 2774, 0, 0, 0, 2778, 0, 2780, 0, 0, 0, 0, 0, 0, 2746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 362, 0, 0, 0, 0, 0, 2103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1265, 0, 0, 0, 0, 561, 561, 561, 561, 561, 2249, 561, 561, 561, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1519, 585, 585, 2346, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2919, 585, 2448, 0, 0, 0, 0, 0, 0, 0, 0, 2453, 0, 0, 2456, 0, 0, 0, 0, 0, 726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 736, 0, 0, 0, 2460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2471, 0, 0, 0, 2485, 2486, 0, 0, 2489, 0, 0, 2492, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 417, 417, 0, 0, 65536, 417, 0, 0, 2499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2510, 0, 0, 0, 0, 815, 0, 812, 795, 0, 0, 817, 0, 667, 0, 791, 0, 0, 0, 0, 1096, 0, 0, 1098, 0, 0, 0, 0, 0, 0, 0, 0, 827, 0, 0, 0, 0, 0, 0, 0, 0, 540, 2524, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1789, 540, 540, 540, 540, 540, 2551, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2559, 540, 540, 2562, 540, 540, 540, 540, 540, 540, 2569, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3323, 540, 540, 540, 540, 540, 540, 2576, 540, 540, 540, 2579, 540, 540, 540, 540, 540, 540, 540, 0, 0, 0, 0, 0, 755, 0, 0, 0, 0, 0, 0, 0, 0, 765, 0, 0, 0, 0, 561, 2586, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3254, 561, 561, 561, 585, 585, 585, 585, 585, 2672, 585, 585, 585, 585, 585, 585, 2677, 585, 585, 585, 585, 561, 0, 3646, 0, 0, 0, 540, 540, 540, 540, 540, 540, 2529, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2842, 540, 540, 540, 540, 540, 585, 585, 585, 2683, 585, 585, 585, 585, 585, 585, 2690, 585, 585, 585, 585, 585, 585, 585, 2351, 585, 585, 585, 585, 585, 585, 585, 585, 1508, 585, 585, 585, 585, 585, 585, 585, 585, 2697, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2704, 585, 585, 585, 2707, 0, 0, 0, 0, 2735, 0, 0, 0, 0, 0, 0, 0, 2739, 0, 0, 0, 0, 0, 799, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 2528, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2234, 540, 540, 540, 540, 0, 540, 540, 540, 2811, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2821, 540, 540, 540, 540, 540, 2836, 540, 540, 540, 2839, 540, 2841, 540, 540, 540, 540, 540, 540, 540, 540, 3520, 561, 561, 561, 561, 561, 561, 561, 1450, 26027, 1360, 987, 585, 585, 585, 585, 585, 2845, 540, 540, 540, 540, 540, 540, 0, 0, 561, 561, 2853, 561, 561, 561, 561, 561, 1913, 561, 561, 561, 561, 26027, 0, 585, 585, 585, 585, 2333, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1050, 585, 585, 585, 585, 561, 561, 2858, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2284, 561, 561, 561, 2874, 2875, 561, 561, 561, 561, 2878, 561, 561, 561, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 1005, 585, 561, 561, 561, 2884, 561, 561, 561, 2887, 561, 2889, 561, 561, 561, 561, 561, 561, 1449, 561, 26027, 1360, 987, 1453, 585, 585, 585, 585, 2893, 561, 561, 561, 561, 561, 561, 0, 0, 585, 585, 2901, 585, 585, 585, 585, 585, 585, 585, 3121, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 561, 540, 3285, 561, 3287, 585, 2906, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3367, 585, 585, 2922, 2923, 585, 585, 585, 585, 2926, 585, 585, 585, 585, 585, 585, 585, 585, 3592, 561, 0, 0, 0, 0, 3595, 0, 585, 585, 585, 2932, 585, 585, 585, 2935, 585, 2937, 585, 585, 585, 585, 585, 585, 585, 1933, 585, 585, 585, 585, 1939, 585, 585, 585, 2941, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 0, 0, 0, 0, 2963, 0, 0, 0, 0, 0, 585, 585, 2957, 0, 0, 2960, 2961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 662, 0, 662, 0, 0, 0, 0, 0, 0, 0, 0, 3009, 0, 0, 3012, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2200253, 151552, 2200253, 0, 0, 0, 151552, 540, 540, 540, 540, 3037, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3325, 540, 540, 540, 540, 540, 540, 540, 3051, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3465, 561, 561, 561, 561, 561, 561, 3077, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1887, 1888, 561, 561, 561, 561, 561, 561, 3092, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3480, 585, 585, 585, 585, 561, 561, 585, 585, 585, 585, 3108, 585, 585, 585, 585, 3112, 585, 585, 585, 585, 585, 585, 585, 3135, 585, 3137, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 3552, 0, 0, 0, 585, 585, 585, 3118, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1512, 585, 585, 585, 585, 585, 585, 585, 3133, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2917, 585, 585, 2920, 0, 0, 3168, 3169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2071, 0, 0, 0, 540, 540, 540, 540, 3329, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3412, 561, 561, 3336, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2285, 3347, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 3354, 585, 585, 585, 585, 585, 585, 2404, 585, 585, 585, 585, 561, 2178, 585, 2346, 2261, 3389, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2534, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 3447, 3448, 0, 540, 540, 540, 540, 2527, 540, 540, 540, 540, 2531, 540, 540, 540, 540, 540, 540, 540, 1312, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1784, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 3473, 561, 3475, 3476, 561, 3478, 561, 585, 585, 585, 585, 585, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254413, 0, 0, 0, 0, 0, 585, 585, 585, 3488, 585, 3490, 3491, 585, 3493, 585, 3495, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 313, 314, 314, 419, 420, 65536, 427, 585, 585, 3617, 585, 3618, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 540, 585, 585, 561, 540, 540, 540, 904, 540, 561, 561, 561, 976, 561, 561, 585, 585, 3673, 3674, 3675, 3676, 0, 540, 561, 585, 0, 540, 561, 585, 585, 585, 585, 585, 1079, 0, 0, 1563, 0, 0, 0, 1569, 0, 0, 0, 0, 0, 2789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1591, 0, 0, 0, 0, 0, 571, 571, 571, 571, 571, 571, 571, 595, 595, 595, 540, 595, 595, 595, 595, 595, 571, 571, 540, 571, 595, 571, 595, 1, 12290, 3, 78112, 737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1707, 0, 0, 2040, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1635, 0, 0, 2170, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1360, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2253, 561, 561, 561, 561, 926, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2307, 561, 561, 561, 2310, 400, 0, 0, 0, 0, 378, 0, 69632, 73728, 0, 0, 0, 0, 423, 65536, 0, 0, 0, 0, 1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1687, 0, 1689, 0, 0, 423, 423, 0, 423, 0, 437, 423, 0, 423, 468, 468, 468, 475, 468, 468, 468, 468, 468, 468, 468, 468, 475, 468, 468, 468, 468, 468, 468, 468, 468, 482, 468, 494, 494, 468, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 537, 549, 572, 549, 572, 549, 549, 572, 549, 596, 572, 572, 572, 572, 572, 572, 572, 596, 596, 596, 549, 596, 596, 596, 596, 596, 572, 572, 549, 572, 596, 572, 596, 1, 12290, 3, 78112, 0, 660, 661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1666, 0, 0, 830, 0, 0, 0, 661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 729, 0, 742, 661, 0, 0, 0, 0, 0, 540, 847, 540, 540, 540, 540, 540, 540, 3330, 540, 540, 540, 561, 561, 561, 561, 561, 3335, 861, 540, 540, 540, 540, 540, 540, 540, 540, 540, 897, 540, 540, 540, 540, 540, 540, 540, 1799, 540, 540, 540, 540, 540, 540, 1807, 540, 561, 561, 916, 561, 561, 561, 931, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2266, 561, 561, 561, 561, 561, 561, 0, 0, 0, 540, 989, 585, 561, 540, 540, 897, 540, 540, 561, 561, 969, 561, 561, 561, 561, 561, 0, 585, 585, 989, 585, 585, 585, 1004, 585, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1101, 1102, 0, 0, 0, 0, 0, 0, 1203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196608, 0, 0, 0, 0, 0, 540, 540, 540, 1308, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3222, 540, 540, 1360, 914, 561, 1363, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1376, 1383, 561, 561, 561, 1444, 561, 561, 561, 561, 26027, 1360, 987, 585, 1454, 585, 585, 585, 585, 585, 585, 2659, 585, 585, 2662, 2663, 585, 585, 585, 585, 585, 585, 585, 2712, 540, 585, 585, 561, 540, 540, 540, 540, 585, 585, 1488, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3128, 585, 1521, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1535, 585, 585, 585, 585, 585, 585, 2673, 585, 585, 585, 2676, 585, 585, 2678, 585, 2679, 561, 585, 585, 1521, 585, 585, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 759, 0, 0, 0, 0, 0, 0, 1826, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1841, 1842, 585, 585, 2009, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 561, 561, 561, 561, 1849, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2880, 561, 561, 561, 561, 561, 2063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2074, 540, 540, 2226, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 0, 561, 561, 561, 2854, 561, 561, 561, 561, 561, 561, 2301, 561, 561, 561, 561, 561, 561, 2306, 561, 561, 561, 561, 561, 561, 3079, 561, 561, 561, 561, 561, 3085, 561, 561, 3088, 2311, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, 0, 0, 0, 585, 585, 585, 585, 585, 585, 2654, 585, 585, 585, 585, 585, 2374, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3140, 585, 585, 585, 585, 2386, 585, 585, 585, 585, 585, 585, 2391, 585, 585, 585, 585, 585, 2396, 585, 585, 585, 585, 585, 2012, 540, 585, 585, 561, 540, 540, 540, 540, 561, 561, 561, 561, 2624, 561, 561, 561, 561, 561, 561, 2632, 561, 561, 561, 561, 561, 2288, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2631, 561, 561, 561, 561, 561, 2435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2114, 0, 0, 0, 0, 2476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 748, 0, 0, 0, 0, 0, 2732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1590, 1591, 0, 0, 0, 2772, 0, 0, 0, 0, 2777, 0, 0, 0, 0, 0, 0, 0, 540, 562, 540, 562, 540, 540, 562, 540, 586, 540, 540, 2810, 540, 540, 540, 540, 540, 540, 2818, 540, 540, 540, 540, 540, 540, 540, 889, 540, 540, 540, 540, 907, 540, 540, 540, 540, 540, 540, 540, 2849, 540, 540, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1836, 561, 561, 561, 561, 561, 2857, 561, 561, 561, 561, 561, 561, 2865, 561, 561, 561, 561, 561, 561, 561, 561, 3081, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2897, 561, 561, 0, 0, 585, 585, 585, 585, 585, 585, 585, 1467, 1474, 585, 585, 585, 585, 585, 585, 585, 585, 3621, 0, 0, 0, 0, 0, 0, 540, 2905, 585, 585, 585, 585, 585, 585, 2913, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1983, 585, 585, 1986, 585, 585, 585, 585, 585, 585, 585, 2945, 585, 585, 561, 540, 585, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 0, 3376, 0, 585, 3280, 585, 585, 585, 585, 585, 585, 561, 540, 585, 561, 540, 540, 561, 561, 585, 585, 0, 3155, 0, 0, 585, 585, 585, 3587, 585, 3589, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 0, 2791, 0, 0, 0, 2793, 0, 0, 0, 0, 0, 0, 0, 0, 3600, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1314, 540, 540, 540, 540, 3607, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3614, 585, 585, 585, 585, 585, 585, 2686, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1045, 585, 585, 585, 585, 585, 972, 561, 3653, 561, 561, 561, 561, 585, 3657, 585, 585, 585, 585, 0, 0, 0, 0, 0, 0, 1204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 290, 0, 0, 0, 345, 469, 469, 469, 453, 453, 469, 453, 453, 453, 453, 453, 453, 453, 453, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 550, 573, 550, 573, 550, 550, 573, 550, 597, 573, 573, 573, 573, 573, 573, 573, 597, 597, 597, 550, 597, 597, 597, 597, 597, 573, 573, 550, 573, 597, 573, 597, 1, 12290, 3, 78112, 862, 540, 540, 876, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1315, 540, 540, 540, 585, 1019, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 3498, 0, 0, 1123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1607, 0, 0, 0, 0, 1254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2111, 0, 0, 0, 540, 1341, 540, 540, 540, 540, 540, 1348, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3333, 561, 561, 561, 561, 561, 585, 585, 585, 585, 1505, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3365, 585, 585, 585, 585, 585, 1523, 585, 585, 585, 585, 585, 1530, 585, 585, 585, 585, 585, 585, 585, 1468, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2378, 585, 585, 585, 585, 585, 585, 561, 585, 585, 585, 1557, 585, 1079, 0, 1561, 0, 0, 0, 1567, 0, 0, 0, 0, 0, 803, 0, 0, 0, 0, 0, 0, 0, 803, 0, 0, 0, 0, 540, 540, 540, 540, 540, 1573, 0, 0, 0, 1579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, 1695, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2127, 0, 0, 0, 540, 1762, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1358, 540, 1843, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1854, 561, 561, 561, 561, 561, 561, 3239, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3578, 561, 561, 585, 585, 585, 585, 0, 2064, 2065, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1717, 0, 0, 0, 0, 0, 0, 2135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1159, 0, 0, 0, 0, 2186, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1808, 540, 540, 2213, 540, 540, 540, 540, 2218, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1754, 540, 540, 540, 540, 540, 540, 2240, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1401, 561, 561, 2298, 561, 561, 561, 561, 2303, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3083, 561, 561, 561, 561, 561, 585, 585, 585, 2388, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1938, 585, 585, 585, 3034, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2210, 0, 0, 0, 3380, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1175, 0, 0, 0, 0, 540, 540, 3404, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2282, 561, 561, 561, 561, 561, 561, 561, 3419, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1049, 585, 585, 585, 585, 561, 540, 3454, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 3523, 561, 561, 561, 3469, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 3484, 385, 387, 337, 0, 0, 0, 0, 0, 0, 336, 0, 0, 337, 0, 0, 0, 0, 0, 1097, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2057, 0, 0, 0, 0, 0, 0, 0, 0, 384, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 1139, 1140, 0, 0, 0, 0, 0, 362, 362, 0, 0, 0, 0, 0, 703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2048, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 438, 0, 444, 0, 470, 470, 470, 470, 470, 470, 470, 551, 574, 551, 574, 551, 551, 574, 551, 598, 480, 470, 470, 470, 499, 476, 499, 499, 499, 499, 499, 499, 499, 499, 470, 470, 476, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 480, 470, 481, 480, 470, 470, 470, 470, 574, 574, 574, 574, 574, 574, 574, 598, 598, 598, 551, 598, 598, 598, 598, 598, 574, 574, 551, 574, 598, 574, 598, 1, 12290, 3, 78112, 0, 0, 0, 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2153, 0, 0, 0, 0, 0, 693, 0, 0, 0, 0, 0, 0, 362, 362, 362, 0, 0, 0, 0, 0, 0, 1217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1220, 0, 0, 1223, 0, 0, 0, 0, 0, 0, 663, 0, 791, 0, 0, 0, 0, 0, 0, 0, 795, 0, 0, 0, 0, 0, 2972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2097, 0, 2099, 0, 0, 0, 0, 0, 804, 0, 0, 0, 0, 0, 812, 0, 0, 0, 0, 706, 0, 0, 0, 0, 0, 0, 0, 0, 715, 0, 717, 0, 0, 0, 831, 0, 0, 0, 663, 834, 0, 791, 0, 0, 0, 0, 0, 840, 0, 0, 0, 0, 0, 2996, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2429, 2430, 0, 0, 0, 0, 863, 540, 540, 877, 540, 540, 540, 888, 540, 540, 540, 540, 906, 540, 540, 540, 540, 540, 1311, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2843, 540, 540, 540, 540, 561, 561, 917, 561, 561, 561, 933, 561, 561, 947, 561, 561, 561, 561, 960, 561, 0, 995, 585, 1076, 1046, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 2686976, 2736128, 0, 0, 2531328, 2707456, 0, 3190784, 561, 561, 561, 978, 561, 561, 561, 0, 585, 585, 990, 585, 585, 585, 1006, 585, 585, 585, 585, 585, 2349, 585, 585, 585, 585, 2354, 585, 585, 585, 585, 585, 585, 585, 2377, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 561, 585, 0, 0, 0, 0, 585, 1020, 585, 585, 585, 585, 1033, 585, 585, 585, 585, 1051, 585, 585, 585, 561, 540, 585, 561, 3149, 540, 3151, 561, 3153, 585, 0, 0, 0, 0, 0, 0, 1660, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 990, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 3067, 561, 561, 561, 561, 3071, 561, 561, 561, 561, 0, 0, 0, 1215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2431, 0, 2433, 0, 1238, 0, 0, 0, 0, 1270, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 3561, 540, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 540, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1491, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1495, 585, 585, 585, 585, 561, 585, 585, 1556, 585, 585, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1100, 0, 0, 0, 0, 0, 0, 1622, 0, 0, 1625, 0, 1627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 839, 540, 540, 540, 540, 859, 540, 1744, 540, 540, 540, 540, 540, 540, 540, 540, 1755, 540, 540, 540, 540, 540, 540, 540, 2176, 540, 540, 2180, 540, 540, 540, 2184, 540, 561, 561, 561, 1847, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2294, 561, 561, 561, 0, 0, 2117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1730, 0, 0, 0, 0, 0, 0, 2148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1207, 0, 0, 0, 0, 0, 0, 0, 561, 561, 561, 561, 2248, 561, 561, 561, 561, 561, 561, 561, 561, 3095, 3097, 561, 561, 561, 3100, 561, 3102, 561, 561, 2313, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, 0, 0, 0, 585, 585, 2651, 585, 585, 585, 585, 585, 585, 585, 2660, 585, 585, 585, 585, 585, 2665, 585, 585, 2398, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 2410, 585, 561, 0, 540, 585, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 585, 585, 585, 585, 0, 3669, 540, 3670, 0, 2436, 0, 0, 0, 0, 0, 0, 2441, 0, 0, 0, 2444, 2445, 0, 0, 0, 0, 0, 3010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 304, 0, 0, 0, 0, 2497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2506, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 163840, 0, 0, 0, 0, 65536, 0, 2512, 0, 0, 0, 0, 2515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2523, 540, 2536, 2537, 540, 540, 540, 540, 540, 2542, 540, 2544, 540, 540, 540, 540, 2548, 561, 2595, 561, 561, 2598, 2599, 561, 561, 561, 561, 561, 2604, 561, 2606, 561, 561, 561, 561, 1863, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2890, 561, 561, 561, 561, 561, 561, 561, 2610, 561, 561, 561, 561, 561, 561, 561, 561, 2616, 561, 561, 561, 561, 561, 2276, 561, 561, 2279, 561, 561, 561, 561, 561, 561, 561, 1915, 561, 561, 26027, 1920, 585, 585, 585, 585, 2636, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2608, 2668, 585, 2670, 585, 585, 585, 585, 2674, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2675, 585, 585, 585, 585, 585, 585, 2680, 585, 585, 585, 585, 585, 585, 585, 585, 2688, 585, 585, 585, 585, 585, 585, 585, 1950, 585, 585, 585, 585, 1954, 585, 585, 585, 2696, 585, 585, 585, 585, 2700, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1494, 585, 585, 585, 585, 585, 561, 2720, 561, 561, 585, 2722, 585, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2964, 0, 0, 0, 0, 2770, 0, 0, 0, 2773, 0, 0, 2776, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1691, 0, 2786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2795, 0, 0, 0, 0, 0, 3171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1245, 0, 0, 0, 0, 0, 540, 2825, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1773, 540, 540, 2835, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2844, 540, 540, 2847, 540, 540, 2850, 540, 0, 0, 2851, 561, 561, 561, 561, 561, 561, 1851, 561, 561, 561, 561, 1855, 561, 561, 561, 561, 561, 2883, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2892, 561, 561, 2895, 561, 561, 2898, 561, 0, 0, 2899, 585, 585, 585, 585, 585, 585, 585, 1965, 585, 585, 585, 1970, 585, 585, 585, 585, 585, 2931, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2940, 585, 585, 2943, 585, 585, 2946, 585, 561, 2948, 585, 2949, 2950, 540, 540, 561, 561, 561, 561, 1878, 561, 561, 561, 561, 1884, 561, 561, 561, 561, 561, 561, 936, 561, 561, 561, 561, 561, 561, 561, 561, 561, 984, 0, 585, 585, 585, 585, 585, 585, 1007, 585, 0, 2968, 2969, 0, 0, 0, 0, 2974, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, 331, 331, 0, 0, 0, 0, 3020, 0, 0, 540, 540, 3025, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3043, 540, 540, 540, 540, 540, 540, 540, 3050, 540, 540, 3052, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1352, 540, 540, 540, 540, 540, 561, 561, 561, 3091, 561, 561, 3093, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2602, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 3106, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1496, 585, 585, 585, 1500, 585, 585, 585, 3132, 585, 585, 3134, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1040, 585, 585, 585, 585, 585, 967, 3158, 0, 0, 0, 3162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1222, 0, 0, 1225, 0, 3190, 0, 0, 3193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 2166, 540, 540, 540, 540, 540, 3214, 540, 540, 540, 540, 540, 540, 540, 3219, 540, 540, 540, 540, 540, 540, 540, 2541, 540, 2543, 540, 540, 540, 540, 540, 540, 540, 540, 2581, 540, 540, 540, 540, 0, 2584, 0, 561, 561, 561, 3236, 3237, 561, 561, 561, 561, 561, 3241, 561, 561, 561, 561, 561, 561, 3250, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 3536, 585, 585, 585, 585, 561, 561, 561, 3247, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 585, 3481, 585, 3483, 585, 585, 585, 585, 3269, 585, 585, 585, 585, 585, 585, 585, 585, 3275, 585, 585, 585, 585, 585, 585, 2701, 585, 585, 585, 585, 585, 585, 585, 2706, 585, 0, 0, 3308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 856, 540, 585, 3359, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1057, 561, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 3386, 0, 0, 0, 0, 0, 1169, 0, 1171, 0, 0, 0, 0, 1176, 0, 0, 0, 0, 0, 1185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 669, 0, 0, 0, 0, 0, 585, 3429, 585, 585, 585, 585, 585, 585, 561, 540, 561, 585, 0, 3437, 0, 0, 0, 0, 0, 3300, 0, 3176, 3302, 0, 0, 3305, 0, 0, 0, 0, 0, 0, 1113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 362, 0, 703, 0, 0, 3440, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 3452, 540, 540, 540, 540, 3457, 540, 540, 540, 540, 3462, 540, 540, 561, 561, 3467, 561, 0, 997, 1037, 585, 1048, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 776, 0, 0, 0, 0, 0, 783, 0, 0, 561, 561, 561, 3472, 561, 561, 561, 561, 3477, 561, 561, 585, 585, 3482, 585, 585, 585, 585, 585, 585, 3259, 3260, 585, 585, 585, 585, 3264, 3265, 585, 585, 585, 585, 585, 585, 3120, 585, 585, 585, 585, 585, 3126, 585, 585, 3129, 585, 585, 3487, 585, 585, 585, 585, 3492, 585, 585, 561, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 167936, 0, 0, 0, 0, 65536, 0, 3499, 0, 0, 0, 0, 0, 3505, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3397, 540, 540, 540, 540, 540, 540, 540, 540, 3517, 540, 540, 3519, 561, 561, 561, 561, 561, 561, 561, 561, 3252, 561, 561, 561, 561, 561, 561, 585, 561, 561, 561, 3530, 561, 561, 3532, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1042, 585, 585, 585, 585, 585, 969, 585, 585, 3543, 585, 585, 3545, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1144, 0, 362, 362, 0, 1147, 0, 540, 540, 3629, 3630, 540, 540, 561, 561, 561, 3635, 3636, 561, 561, 585, 585, 585, 585, 0, 2029, 0, 0, 0, 0, 0, 2031, 0, 0, 3641, 3642, 585, 585, 561, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 3395, 540, 540, 540, 540, 540, 540, 3401, 561, 561, 585, 585, 0, 540, 561, 585, 0, 540, 561, 585, 3681, 3682, 3683, 3684, 339, 340, 341, 342, 343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1617, 0, 0, 0, 0, 0, 0, 0, 388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2469, 0, 2470, 0, 342, 342, 343, 342, 0, 341, 342, 445, 454, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 486, 495, 495, 503, 495, 505, 495, 495, 505, 505, 495, 505, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 552, 575, 552, 575, 552, 552, 575, 552, 599, 575, 575, 575, 575, 575, 575, 575, 599, 599, 599, 552, 599, 599, 599, 599, 599, 575, 575, 552, 575, 599, 575, 599, 1, 12290, 3, 78112, 0, 0, 0, 646, 0, 0, 0, 0, 651, 652, 653, 654, 655, 656, 657, 0, 0, 0, 0, 1144, 0, 0, 1259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2957312, 0, 0, 0, 0, 0, 0, 0, 692, 0, 0, 0, 0, 0, 0, 699, 362, 362, 362, 0, 0, 0, 0, 0, 0, 1232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 735, 0, 800, 0, 0, 0, 0, 721, 0, 723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 733, 0, 0, 0, 0, 0, 1202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 333, 334, 0, 0, 0, 0, 0, 646, 752, 753, 754, 0, 0, 0, 0, 0, 760, 761, 0, 0, 0, 0, 0, 0, 1271, 0, 0, 0, 0, 0, 0, 540, 540, 540, 3026, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2220, 540, 540, 540, 540, 540, 0, 761, 0, 0, 790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 797, 0, 0, 0, 0, 1152, 0, 0, 0, 0, 1157, 0, 0, 0, 0, 0, 0, 0, 2106, 0, 0, 0, 0, 0, 0, 0, 0, 1219, 0, 0, 0, 0, 0, 0, 0, 723, 0, 692, 814, 0, 0, 0, 0, 761, 0, 0, 0, 0, 0, 0, 0, 558, 581, 558, 581, 558, 558, 581, 558, 605, 0, 754, 823, 824, 0, 0, 0, 0, 0, 0, 754, 0, 0, 828, 699, 0, 0, 0, 0, 1168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1633, 0, 0, 0, 0, 0, 0, 833, 0, 0, 0, 835, 0, 0, 0, 692, 699, 0, 0, 692, 833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 692, 540, 540, 853, 857, 860, 540, 868, 540, 540, 882, 884, 887, 540, 540, 540, 898, 902, 540, 540, 540, 540, 540, 540, 1766, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1786, 540, 540, 540, 540, 540, 561, 561, 561, 923, 927, 930, 561, 938, 561, 561, 561, 953, 955, 958, 561, 561, 561, 561, 1879, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2641, 561, 561, 561, 561, 561, 561, 561, 561, 2648, 0, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 2717, 540, 540, 540, 585, 585, 585, 1026, 1028, 1031, 585, 585, 585, 1043, 1047, 585, 585, 585, 585, 970, 0, 0, 0, 1060, 585, 1062, 1063, 853, 540, 898, 902, 1068, 923, 561, 970, 974, 561, 561, 561, 561, 0, 585, 585, 585, 996, 1000, 1003, 585, 1011, 1073, 0, 996, 585, 1043, 1047, 1078, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 560, 583, 560, 583, 560, 560, 583, 560, 607, 0, 0, 1199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1208, 0, 0, 0, 0, 0, 1231, 0, 0, 0, 0, 1236, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 422, 65536, 0, 540, 1322, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1331, 540, 540, 1338, 540, 540, 540, 540, 2228, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 0, 561, 2852, 561, 561, 561, 561, 561, 561, 561, 561, 1422, 561, 561, 1429, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2879, 561, 561, 561, 561, 561, 561, 561, 1442, 561, 561, 561, 561, 561, 561, 26027, 1360, 987, 585, 585, 585, 585, 585, 585, 585, 2925, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 561, 585, 3436, 0, 3438, 0, 585, 1503, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1513, 585, 585, 1520, 1667, 0, 1669, 0, 0, 0, 1671, 0, 748, 0, 0, 0, 0, 0, 0, 0, 650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 0, 0, 1602, 0, 0, 0, 0, 0, 0, 540, 1738, 540, 540, 540, 540, 540, 540, 540, 2584, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1839, 561, 561, 561, 1743, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2238, 540, 1776, 540, 540, 1781, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1353, 540, 540, 540, 540, 0, 561, 1829, 561, 561, 561, 561, 561, 561, 1835, 561, 561, 561, 561, 561, 561, 1864, 561, 561, 561, 1868, 561, 561, 1873, 561, 561, 1907, 561, 561, 561, 561, 561, 561, 561, 561, 561, 26027, 0, 585, 1923, 585, 585, 585, 585, 585, 585, 3270, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1968, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1929, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1511, 585, 585, 585, 585, 585, 1958, 585, 585, 585, 1962, 585, 585, 1967, 585, 585, 585, 585, 585, 585, 585, 1469, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2392, 585, 585, 585, 2395, 585, 585, 0, 1086, 0, 0, 0, 2034, 0, 1090, 0, 0, 0, 2036, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1226, 585, 585, 585, 585, 2362, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1534, 585, 585, 585, 585, 2585, 0, 1826, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2271, 585, 585, 585, 2710, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 540, 540, 1814, 540, 540, 540, 540, 1820, 540, 540, 540, 1360, 0, 0, 0, 0, 2744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1649, 0, 0, 0, 0, 585, 585, 585, 585, 2924, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1937, 585, 585, 585, 585, 561, 561, 3338, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1857, 561, 561, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 3385, 0, 0, 0, 0, 0, 0, 1628, 1629, 1630, 0, 0, 0, 0, 0, 0, 0, 0, 1159168, 362, 0, 0, 0, 0, 0, 0, 3402, 540, 540, 540, 561, 561, 561, 3407, 561, 561, 561, 561, 3411, 561, 561, 561, 561, 1391, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1414, 561, 561, 561, 561, 561, 561, 3417, 561, 561, 561, 585, 585, 585, 3422, 585, 585, 585, 585, 3426, 585, 585, 585, 585, 585, 2375, 2376, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1476, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3432, 585, 585, 585, 561, 540, 561, 585, 0, 0, 0, 0, 0, 0, 1644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 661, 0, 661, 0, 0, 0, 0, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 3446, 0, 0, 0, 540, 540, 540, 3392, 540, 540, 540, 540, 3396, 540, 540, 540, 540, 540, 540, 540, 3039, 540, 540, 540, 540, 540, 3045, 540, 540, 540, 540, 3455, 540, 540, 540, 3459, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 2626, 561, 561, 561, 561, 561, 561, 2633, 561, 561, 561, 561, 3470, 561, 561, 561, 3474, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 585, 3111, 585, 585, 585, 585, 585, 585, 3485, 585, 585, 585, 3489, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 3603, 540, 3604, 540, 540, 540, 561, 561, 585, 585, 0, 540, 561, 585, 3677, 3678, 3679, 3680, 0, 540, 561, 585, 585, 585, 585, 585, 1079, 0, 1562, 0, 0, 0, 1568, 0, 0, 0, 0, 0, 1256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 300, 0, 0, 0, 0, 386, 0, 0, 0, 390, 386, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1174, 0, 0, 0, 0, 0, 0, 0, 0, 402, 0, 344, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 1201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 357, 0, 0, 0, 0, 521, 521, 521, 521, 0, 0, 0, 0, 0, 0, 0, 0, 521, 521, 521, 521, 521, 521, 521, 553, 576, 553, 576, 553, 553, 576, 553, 600, 576, 576, 576, 576, 576, 576, 576, 600, 600, 600, 553, 600, 600, 600, 600, 600, 576, 576, 617, 622, 600, 622, 628, 1, 12290, 3, 78112, 561, 561, 561, 979, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2927, 585, 585, 585, 585, 585, 585, 0, 0, 0, 540, 1061, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 3238, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1433, 561, 561, 561, 561, 561, 1107, 0, 0, 0, 0, 1112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1190, 0, 0, 0, 0, 0, 561, 561, 561, 1389, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2308, 2309, 561, 561, 561, 1403, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2296, 2297, 1440, 561, 561, 561, 561, 561, 561, 561, 26027, 1360, 987, 585, 585, 585, 585, 585, 585, 585, 2947, 540, 585, 585, 561, 540, 540, 561, 561, 1574, 0, 0, 0, 1580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1664, 0, 0, 0, 0, 1606, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1620, 0, 0, 0, 0, 1216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2110, 0, 0, 0, 0, 561, 561, 561, 1877, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2322, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2155, 0, 2116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1676, 0, 2241, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2295, 561, 561, 561, 561, 2274, 561, 561, 561, 561, 2278, 561, 2280, 561, 561, 561, 561, 561, 561, 1897, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1397, 561, 561, 561, 561, 561, 561, 2359, 585, 585, 585, 585, 2363, 585, 2365, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3123, 585, 3125, 585, 585, 585, 585, 0, 0, 0, 2500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2494, 2495, 0, 0, 561, 2622, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2607, 561, 0, 3021, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2533, 540, 0, 0, 0, 0, 3176, 3382, 0, 0, 3384, 0, 0, 0, 0, 0, 0, 0, 728, 0, 0, 0, 0, 0, 0, 0, 0, 1115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 3391, 540, 540, 3393, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1785, 540, 540, 540, 1790, 540, 0, 0, 0, 0, 3176, 0, 3443, 0, 0, 0, 0, 0, 3449, 540, 540, 540, 540, 540, 1782, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2832, 540, 540, 540, 540, 864, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 912, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2447, 0, 0, 1624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2060, 0, 0, 1827, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2620, 345, 345, 347, 345, 0, 0, 345, 0, 345, 0, 0, 0, 0, 346, 0, 0, 0, 0, 0, 3310, 0, 0, 3312, 0, 0, 0, 0, 0, 0, 540, 585, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 3410, 561, 561, 561, 561, 561, 0, 0, 0, 345, 345, 347, 345, 345, 345, 345, 345, 345, 512, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 554, 577, 554, 577, 554, 554, 577, 554, 601, 577, 577, 577, 577, 577, 577, 577, 601, 601, 601, 554, 601, 601, 601, 601, 601, 577, 577, 554, 577, 601, 577, 601, 1, 12290, 3, 78112, 0, 722, 0, 724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2508, 0, 0, 0, 0, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1690, 0, 0, 0, 811, 0, 0, 810, 0, 0, 0, 0, 0, 755, 0, 0, 819, 0, 0, 0, 0, 1269, 0, 0, 0, 0, 0, 0, 0, 1181, 540, 540, 540, 540, 540, 1797, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3464, 561, 561, 561, 561, 540, 540, 872, 540, 540, 540, 540, 890, 892, 540, 540, 903, 540, 540, 540, 540, 540, 540, 2175, 540, 2177, 540, 540, 540, 540, 540, 540, 2185, 561, 561, 918, 924, 561, 561, 561, 561, 942, 561, 561, 561, 561, 561, 962, 964, 561, 561, 975, 561, 561, 561, 561, 0, 585, 585, 991, 997, 585, 585, 585, 585, 585, 585, 585, 3271, 585, 585, 585, 585, 585, 585, 3277, 585, 1015, 585, 585, 585, 585, 585, 1035, 1037, 585, 585, 1048, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 540, 540, 3650, 3651, 540, 540, 0, 0, 0, 540, 991, 585, 561, 854, 892, 540, 903, 540, 924, 964, 561, 975, 0, 0, 0, 1151, 0, 1153, 0, 1155, 0, 0, 0, 0, 0, 0, 0, 0, 713, 0, 0, 0, 0, 0, 0, 0, 0, 1181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1706, 0, 0, 1198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1731, 0, 1212, 1213, 0, 0, 0, 0, 0, 1218, 0, 0, 0, 0, 0, 0, 0, 0, 729, 0, 0, 0, 0, 0, 0, 0, 540, 540, 1307, 1309, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1316, 540, 540, 1319, 540, 540, 1343, 540, 540, 540, 540, 540, 540, 540, 540, 1354, 1355, 540, 540, 540, 540, 540, 1813, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1360, 1360, 914, 561, 561, 561, 1366, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 26027, 1921, 585, 585, 585, 585, 561, 561, 1420, 561, 561, 561, 561, 561, 561, 561, 1434, 561, 561, 561, 561, 561, 561, 3342, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3080, 561, 561, 561, 561, 561, 561, 561, 561, 2319, 561, 561, 561, 561, 0, 0, 0, 561, 561, 561, 1445, 1446, 561, 561, 561, 26027, 1360, 987, 585, 585, 585, 1457, 585, 585, 585, 585, 585, 2403, 585, 585, 585, 585, 585, 561, 2409, 585, 2411, 2412, 585, 1487, 1489, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3366, 585, 585, 585, 585, 1525, 585, 585, 585, 585, 585, 585, 585, 585, 1536, 1537, 585, 585, 585, 585, 585, 585, 3434, 585, 561, 540, 561, 585, 0, 0, 0, 3439, 585, 1542, 0, 540, 585, 585, 561, 540, 1547, 540, 540, 1550, 561, 1551, 561, 561, 561, 561, 1895, 561, 561, 561, 1900, 561, 561, 561, 561, 561, 561, 561, 0, 585, 585, 988, 585, 585, 585, 585, 585, 1554, 585, 1555, 585, 585, 1558, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2069, 0, 0, 0, 0, 2073, 0, 0, 1678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2037, 0, 0, 0, 1694, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2072, 0, 0, 0, 1637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 561, 561, 561, 561, 561, 561, 1833, 561, 561, 561, 561, 561, 561, 561, 561, 26027, 1360, 987, 585, 585, 585, 585, 585, 561, 1908, 561, 561, 561, 561, 1914, 561, 561, 561, 26027, 0, 585, 585, 585, 585, 585, 2334, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2938, 585, 585, 585, 585, 585, 585, 585, 1927, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1055, 585, 561, 585, 585, 585, 1994, 585, 585, 585, 585, 585, 585, 585, 585, 2002, 585, 585, 585, 585, 585, 585, 2711, 561, 540, 585, 585, 561, 540, 540, 540, 540, 540, 540, 2217, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1802, 540, 540, 540, 540, 540, 585, 2008, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 561, 561, 561, 561, 2261, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2891, 561, 561, 561, 561, 0, 2076, 0, 0, 0, 0, 0, 0, 0, 0, 2084, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 266240, 0, 0, 0, 0, 65536, 0, 2088, 0, 0, 2090, 0, 0, 0, 0, 0, 0, 0, 2098, 0, 0, 0, 0, 0, 0, 1725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 643, 0, 0, 0, 0, 0, 0, 0, 0, 2146, 0, 0, 0, 2146, 0, 0, 2151, 2152, 0, 0, 0, 0, 0, 0, 0, 274432, 274432, 274432, 0, 274432, 274432, 274432, 274432, 274432, 2156, 0, 0, 0, 0, 0, 0, 0, 2162, 540, 540, 540, 540, 540, 2168, 540, 540, 540, 540, 2538, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1821, 540, 540, 1360, 540, 2200, 540, 2203, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2209, 540, 540, 540, 540, 2578, 540, 540, 540, 540, 540, 540, 540, 540, 0, 2584, 0, 0, 0, 0, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 799, 0, 0, 0, 0, 0, 0, 0, 0, 2244, 561, 561, 561, 561, 561, 561, 2251, 561, 561, 561, 561, 561, 561, 3351, 585, 585, 585, 585, 585, 585, 585, 3356, 585, 561, 561, 2300, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2323, 0, 0, 0, 2329, 585, 585, 585, 585, 585, 585, 2336, 585, 585, 585, 585, 585, 585, 585, 1470, 585, 585, 585, 585, 1480, 585, 585, 585, 585, 585, 2360, 585, 585, 585, 585, 585, 585, 2366, 585, 2368, 585, 2371, 585, 585, 585, 585, 585, 585, 3546, 0, 0, 3549, 3550, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2912256, 0, 3207168, 2465792, 0, 0, 2385, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1989, 2472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2480, 0, 0, 0, 0, 0, 0, 0, 286720, 286720, 0, 286720, 286720, 1, 12290, 3, 0, 0, 0, 0, 0, 2514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2522, 0, 0, 0, 0, 1575, 0, 0, 0, 0, 0, 1581, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 172032, 0, 0, 0, 0, 65536, 0, 561, 561, 2596, 561, 561, 561, 561, 561, 2601, 561, 561, 561, 561, 561, 561, 561, 0, 585, 585, 992, 585, 585, 585, 585, 585, 585, 2681, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1956, 585, 2719, 561, 561, 561, 2721, 585, 585, 585, 2723, 2724, 0, 0, 0, 0, 0, 0, 0, 2801, 0, 0, 0, 540, 2805, 540, 540, 540, 2742, 0, 2743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2100, 0, 0, 0, 0, 2758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2128, 0, 0, 540, 2809, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2223, 2224, 540, 2846, 540, 540, 540, 540, 540, 0, 0, 561, 561, 561, 561, 2855, 561, 2856, 561, 2894, 561, 561, 561, 561, 561, 0, 0, 585, 585, 585, 585, 2903, 585, 2904, 585, 2942, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 3374, 0, 0, 3377, 0, 0, 0, 540, 3024, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1771, 540, 540, 540, 540, 561, 561, 585, 3105, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2369, 585, 585, 585, 585, 585, 3145, 540, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 0, 0, 2066, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 297, 0, 0, 0, 0, 0, 0, 0, 3390, 540, 540, 540, 540, 3394, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2179, 540, 540, 540, 540, 540, 540, 540, 3403, 540, 540, 3405, 561, 561, 561, 561, 3409, 561, 561, 561, 561, 561, 561, 2277, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3082, 561, 3084, 561, 561, 561, 561, 561, 561, 561, 3418, 561, 561, 3420, 585, 585, 585, 585, 3424, 585, 585, 585, 585, 585, 585, 585, 3591, 585, 561, 0, 0, 0, 0, 0, 0, 0, 3176, 0, 3303, 0, 0, 0, 0, 3307, 0, 585, 585, 585, 585, 585, 3433, 585, 585, 561, 540, 561, 585, 0, 0, 0, 0, 0, 0, 2137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1129, 0, 0, 0, 0, 0, 0, 0, 3500, 0, 3502, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 3511, 540, 540, 540, 540, 2812, 540, 2815, 540, 540, 540, 540, 2820, 540, 540, 540, 2823, 540, 540, 540, 540, 3631, 540, 561, 561, 561, 561, 561, 3637, 561, 585, 585, 585, 585, 585, 1079, 0, 0, 0, 1564, 0, 0, 0, 1570, 0, 585, 585, 3643, 585, 561, 3645, 0, 3647, 0, 0, 540, 540, 540, 540, 540, 540, 540, 1286, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3208, 540, 540, 540, 540, 540, 365, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2496, 398, 0, 0, 0, 0, 0, 365, 373, 401, 0, 0, 0, 0, 0, 365, 0, 0, 393, 0, 0, 0, 0, 348, 0, 0, 365, 0, 393, 0, 406, 408, 0, 0, 365, 373, 0, 69632, 73728, 0, 0, 0, 0, 424, 65536, 0, 0, 0, 0, 1596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 0, 0, 0, 424, 424, 0, 424, 0, 408, 424, 447, 455, 0, 0, 0, 0, 0, 0, 0, 777, 0, 0, 0, 0, 0, 0, 0, 644, 0, 406, 0, 496, 496, 0, 496, 496, 496, 496, 496, 496, 496, 496, 522, 522, 522, 522, 455, 455, 455, 530, 455, 531, 455, 455, 522, 536, 522, 522, 522, 522, 538, 555, 578, 555, 578, 555, 555, 578, 555, 602, 578, 578, 578, 608, 608, 608, 578, 602, 602, 602, 555, 602, 602, 602, 602, 602, 578, 578, 618, 623, 602, 623, 629, 1, 12290, 3, 78112, 643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2769, 0, 0, 0, 694, 0, 0, 0, 0, 0, 362, 362, 362, 0, 0, 0, 0, 0, 0, 2440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1260, 0, 0, 0, 0, 0, 0, 0, 0, 805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2142, 2143, 0, 540, 540, 540, 878, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1332, 540, 540, 540, 561, 561, 919, 561, 561, 561, 561, 561, 561, 948, 950, 561, 561, 561, 561, 561, 561, 3575, 561, 3577, 561, 561, 561, 585, 585, 585, 585, 0, 0, 1563, 0, 0, 0, 0, 0, 1569, 0, 585, 1021, 1023, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 3496, 0, 3497, 0, 0, 0, 0, 0, 540, 992, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 3341, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3579, 561, 585, 585, 585, 585, 0, 0, 0, 1098, 1230, 0, 0, 0, 0, 0, 0, 1237, 0, 0, 0, 0, 0, 0, 2452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1242, 1251, 540, 540, 1280, 540, 540, 540, 1284, 540, 540, 1295, 540, 540, 1299, 540, 540, 540, 540, 540, 2229, 540, 2231, 540, 540, 540, 540, 540, 540, 540, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1840, 561, 561, 1360, 914, 561, 561, 561, 561, 561, 561, 1369, 561, 561, 561, 1373, 561, 561, 1384, 561, 561, 1388, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2324, 0, 0, 561, 561, 1405, 561, 561, 561, 1409, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3612, 3613, 561, 585, 585, 585, 585, 585, 1460, 585, 585, 585, 1464, 585, 585, 1475, 585, 585, 1479, 585, 585, 585, 585, 585, 585, 1032, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 3625, 0, 540, 0, 1623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1636, 0, 0, 0, 0, 1626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2058, 2059, 0, 2061, 2062, 1638, 0, 0, 0, 1642, 0, 0, 0, 1646, 0, 0, 0, 1650, 0, 0, 0, 0, 0, 1257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1145, 362, 362, 0, 0, 1148, 561, 1844, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2635, 561, 561, 561, 561, 1862, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2869, 561, 561, 2872, 2007, 585, 585, 585, 585, 561, 1752, 585, 1938, 1844, 540, 540, 540, 540, 561, 561, 561, 561, 2275, 561, 561, 561, 561, 561, 561, 2281, 561, 2283, 561, 2286, 0, 0, 2056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2154, 0, 0, 0, 0, 0, 2118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2520, 0, 0, 0, 0, 2132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2141, 0, 0, 0, 0, 0, 0, 2463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2158, 0, 0, 2161, 0, 540, 540, 2164, 540, 540, 540, 540, 540, 540, 540, 3053, 540, 3055, 540, 540, 540, 540, 540, 540, 540, 540, 2232, 540, 540, 2235, 2236, 540, 540, 0, 540, 540, 540, 2227, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 2242, 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, 561, 561, 2246, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 26027, 1360, 987, 585, 585, 1455, 585, 1458, 561, 2312, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, 0, 0, 0, 585, 2650, 585, 585, 585, 585, 585, 585, 561, 3547, 3548, 0, 0, 0, 0, 0, 0, 3554, 0, 585, 585, 2331, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2381, 2382, 585, 585, 585, 585, 2387, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2397, 540, 540, 2415, 2416, 561, 561, 2419, 2420, 585, 585, 2423, 2424, 0, 1563, 0, 1569, 0, 1575, 0, 1581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2752, 0, 0, 0, 0, 0, 0, 0, 2438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1728, 0, 0, 0, 0, 0, 2513, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2519, 0, 0, 0, 0, 0, 0, 2478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1189, 0, 0, 0, 0, 0, 0, 540, 540, 540, 2565, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1333, 540, 540, 540, 585, 585, 2682, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2693, 585, 585, 585, 585, 585, 585, 3590, 585, 585, 561, 0, 3594, 0, 0, 0, 0, 0, 0, 2516, 2466, 0, 0, 0, 0, 0, 2521, 0, 0, 2824, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2239, 561, 561, 561, 561, 2885, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1395, 561, 561, 561, 561, 561, 561, 561, 561, 1430, 561, 561, 561, 561, 561, 561, 561, 561, 2866, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 2933, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1985, 585, 585, 585, 585, 0, 3177, 0, 0, 0, 3180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1601, 1602, 0, 0, 0, 0, 0, 0, 0, 0, 3194, 0, 0, 0, 0, 0, 0, 3197, 0, 3199, 540, 540, 540, 540, 880, 540, 885, 540, 891, 540, 894, 540, 540, 908, 540, 540, 540, 540, 540, 3038, 540, 540, 540, 540, 540, 540, 540, 540, 3046, 540, 585, 3289, 3290, 0, 0, 0, 0, 3294, 0, 0, 0, 0, 0, 0, 0, 0, 1099, 0, 0, 0, 0, 0, 0, 0, 540, 540, 3316, 540, 540, 540, 3319, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1819, 540, 540, 540, 540, 1360, 561, 3337, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2646, 561, 3415, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3115, 3428, 585, 3430, 585, 585, 585, 585, 585, 561, 540, 561, 585, 0, 0, 0, 0, 0, 0, 2503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 336, 290, 0, 0, 0, 0, 3555, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3566, 540, 540, 561, 3064, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2617, 561, 561, 561, 561, 561, 3608, 561, 3609, 561, 561, 561, 561, 561, 561, 561, 585, 585, 3615, 585, 585, 585, 585, 585, 2658, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1952, 585, 585, 585, 585, 585, 3616, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 540, 585, 585, 561, 540, 540, 540, 1067, 911, 561, 561, 561, 1072, 407, 353, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 1658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 1146, 0, 0, 472, 483, 472, 0, 0, 472, 0, 0, 0, 0, 0, 0, 0, 0, 523, 523, 527, 527, 527, 527, 472, 472, 472, 472, 472, 477, 472, 472, 527, 523, 527, 527, 527, 527, 539, 556, 579, 556, 579, 556, 556, 579, 556, 603, 579, 579, 579, 579, 579, 579, 579, 603, 603, 603, 556, 603, 603, 603, 603, 603, 579, 579, 619, 624, 603, 624, 630, 1, 12290, 3, 78112, 0, 644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2101, 0, 738, 0, 0, 0, 644, 738, 0, 744, 745, 644, 0, 0, 0, 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 802, 0, 807, 0, 0, 0, 0, 0, 0, 807, 0, 0, 0, 0, 0, 644, 0, 0, 0, 802, 0, 807, 0, 793, 0, 822, 0, 0, 0, 665, 0, 0, 0, 0, 822, 0, 0, 0, 0, 0, 0, 0, 1134592, 0, 362, 0, 0, 0, 1134592, 0, 0, 0, 793, 793, 0, 644, 0, 0, 793, 807, 845, 0, 540, 850, 540, 540, 540, 540, 540, 2539, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3324, 540, 540, 540, 540, 540, 869, 873, 879, 883, 540, 540, 540, 540, 540, 899, 540, 540, 540, 540, 540, 540, 540, 3206, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2205, 540, 540, 540, 540, 540, 540, 561, 561, 920, 561, 561, 561, 561, 939, 943, 949, 561, 954, 561, 561, 561, 561, 585, 585, 585, 585, 0, 0, 0, 0, 0, 2728, 0, 0, 1016, 1022, 585, 1027, 585, 585, 585, 585, 585, 1044, 585, 585, 585, 585, 585, 1058, 0, 0, 0, 540, 993, 585, 561, 540, 540, 899, 540, 540, 561, 561, 971, 561, 561, 561, 561, 561, 0, 585, 585, 993, 585, 585, 585, 585, 1012, 1149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2784, 0, 0, 0, 1200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1211, 1227, 0, 0, 1099, 0, 0, 0, 1233, 0, 1235, 0, 0, 0, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1249, 0, 0, 0, 0, 1670, 0, 0, 0, 0, 0, 0, 1674, 0, 0, 0, 0, 0, 0, 743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2753, 2754, 0, 1252, 1200, 0, 1233, 1255, 0, 1258, 0, 0, 0, 0, 0, 1130, 0, 0, 0, 0, 0, 1597, 0, 0, 0, 1600, 0, 0, 1603, 0, 0, 0, 0, 0, 843, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 3320, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1801, 540, 540, 540, 1806, 540, 540, 0, 1267, 0, 0, 0, 0, 0, 1267, 0, 0, 1149, 1267, 0, 1274, 540, 540, 540, 540, 1282, 540, 540, 540, 1291, 540, 540, 540, 540, 540, 540, 540, 540, 2204, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2830, 540, 540, 540, 540, 540, 540, 540, 1279, 540, 540, 540, 540, 1285, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2194, 540, 540, 540, 540, 540, 540, 1306, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1317, 540, 540, 540, 540, 540, 2567, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2545, 540, 540, 540, 540, 1321, 540, 540, 540, 540, 540, 540, 540, 1327, 540, 540, 540, 1334, 1336, 540, 540, 540, 540, 1310, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1335, 540, 540, 540, 1360, 914, 1362, 561, 561, 561, 561, 1368, 561, 561, 561, 561, 1374, 561, 561, 561, 561, 1407, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2293, 561, 561, 561, 561, 561, 561, 1406, 561, 561, 561, 561, 1411, 561, 561, 561, 561, 561, 561, 561, 561, 1852, 561, 561, 561, 561, 561, 561, 561, 561, 1866, 561, 561, 561, 561, 561, 561, 561, 1418, 561, 561, 561, 1425, 1427, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1865, 561, 561, 561, 561, 561, 561, 561, 561, 1883, 561, 561, 561, 561, 561, 561, 561, 1459, 585, 585, 585, 585, 1465, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1533, 585, 585, 585, 585, 585, 1486, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1497, 585, 585, 585, 585, 585, 585, 1034, 585, 585, 585, 585, 1052, 585, 585, 585, 561, 1502, 585, 585, 585, 585, 585, 585, 585, 585, 1509, 585, 585, 585, 1516, 1518, 585, 585, 585, 585, 585, 2685, 585, 585, 585, 585, 2689, 585, 585, 585, 2694, 585, 561, 0, 1290, 1544, 1470, 1379, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 3249, 561, 3251, 561, 561, 561, 561, 561, 561, 561, 585, 3534, 585, 3535, 585, 585, 585, 3539, 585, 0, 1575, 0, 0, 0, 1581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1632, 0, 0, 0, 0, 0, 1592, 1593, 0, 0, 0, 0, 0, 1599, 0, 0, 0, 0, 0, 0, 0, 0, 1172, 0, 0, 0, 0, 0, 0, 0, 0, 1639, 0, 0, 0, 0, 0, 0, 0, 1647, 1648, 0, 0, 0, 0, 0, 0, 0, 2387968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2987, 0, 0, 0, 0, 0, 2990, 0, 1655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2482, 0, 0, 0, 1721, 0, 0, 0, 0, 0, 0, 0, 1718, 0, 0, 0, 0, 0, 0, 300, 300, 300, 300, 0, 300, 300, 300, 300, 300, 540, 540, 540, 1747, 540, 540, 540, 540, 1753, 540, 540, 540, 540, 540, 540, 540, 540, 1817, 540, 540, 540, 540, 540, 540, 1360, 540, 540, 540, 1764, 540, 540, 540, 540, 1768, 540, 540, 540, 540, 540, 540, 540, 540, 2178, 540, 540, 540, 540, 540, 540, 540, 540, 1287, 1294, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1779, 540, 540, 1783, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2206, 2207, 540, 540, 540, 540, 1809, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1379, 561, 0, 1074, 585, 585, 1050, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 1106, 0, 0, 0, 0, 0, 0, 1210, 0, 561, 1845, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1856, 561, 561, 561, 561, 1423, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3253, 561, 561, 561, 561, 585, 561, 1860, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1871, 561, 561, 561, 561, 1424, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 26027, 1920, 585, 585, 585, 585, 1876, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3244, 561, 561, 585, 2026, 585, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 286720, 0, 0, 0, 0, 2079, 2080, 0, 0, 2082, 2083, 0, 0, 0, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 3306, 0, 0, 0, 0, 0, 0, 2105, 0, 0, 0, 0, 2108, 2109, 0, 0, 0, 0, 0, 0, 301, 301, 301, 301, 0, 301, 301, 301, 301, 301, 2115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2796, 0, 0, 0, 2147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2781, 0, 0, 0, 0, 0, 2157, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 540, 2225, 540, 540, 540, 540, 2230, 540, 540, 540, 540, 540, 540, 540, 540, 0, 0, 0, 0, 1696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2070, 0, 0, 0, 0, 0, 2242, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2618, 561, 561, 561, 561, 561, 2259, 561, 561, 2263, 561, 561, 561, 2267, 561, 561, 561, 561, 561, 561, 3610, 561, 3611, 561, 561, 561, 585, 585, 585, 585, 0, 0, 0, 2030, 0, 1082, 0, 0, 0, 2032, 585, 2344, 585, 585, 2348, 585, 585, 585, 2352, 585, 585, 585, 585, 585, 585, 585, 1528, 585, 585, 585, 585, 585, 585, 1538, 585, 585, 585, 585, 2361, 585, 585, 2364, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1935, 1936, 585, 585, 585, 585, 1943, 585, 585, 2400, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 2718, 540, 540, 0, 0, 0, 2437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2794, 0, 0, 0, 0, 2473, 0, 0, 0, 2477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2511, 0, 540, 540, 2525, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2532, 540, 540, 540, 540, 1324, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1330, 540, 540, 540, 540, 540, 540, 2550, 540, 540, 2552, 540, 2553, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2193, 540, 540, 2196, 540, 540, 540, 540, 2563, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2574, 540, 540, 540, 540, 2827, 2828, 540, 540, 540, 540, 2831, 540, 540, 540, 540, 540, 540, 540, 1751, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1351, 540, 540, 540, 540, 540, 540, 0, 0, 0, 561, 561, 2587, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2264, 561, 561, 561, 561, 2269, 561, 561, 561, 2594, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2871, 561, 561, 2609, 561, 561, 561, 2612, 561, 561, 2614, 561, 2615, 561, 561, 561, 561, 561, 929, 561, 937, 561, 561, 561, 561, 561, 561, 561, 561, 2629, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2623, 561, 561, 2627, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2290, 2291, 561, 561, 561, 561, 561, 561, 561, 0, 2327, 585, 585, 585, 585, 585, 585, 585, 1507, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 561, 3284, 540, 3286, 561, 561, 561, 561, 2638, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3099, 561, 561, 561, 0, 0, 2733, 2734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3002, 0, 0, 0, 2785, 0, 2787, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2432, 0, 0, 0, 0, 0, 0, 2800, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 3217, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3042, 540, 3044, 540, 540, 540, 540, 540, 540, 2848, 540, 540, 540, 0, 0, 561, 561, 561, 561, 561, 561, 561, 2318, 561, 561, 561, 561, 561, 0, 0, 0, 561, 561, 2859, 561, 2862, 561, 561, 561, 561, 2867, 561, 561, 561, 2870, 561, 561, 561, 561, 2302, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 940, 561, 561, 561, 561, 561, 561, 561, 561, 1394, 561, 561, 561, 561, 561, 561, 561, 1402, 561, 561, 561, 2896, 561, 561, 561, 0, 0, 585, 585, 585, 585, 585, 585, 585, 1529, 585, 585, 585, 585, 585, 585, 585, 585, 2661, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2907, 585, 2910, 585, 585, 585, 585, 2915, 585, 585, 585, 2918, 585, 585, 585, 585, 585, 1527, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2367, 585, 585, 585, 585, 585, 585, 585, 585, 2944, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 561, 561, 585, 585, 3373, 0, 0, 0, 3375, 0, 0, 2980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2979, 2991, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3005, 0, 3006, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2989, 0, 561, 561, 561, 561, 3078, 561, 561, 561, 561, 561, 561, 561, 561, 3086, 561, 561, 561, 561, 2315, 561, 561, 561, 561, 561, 561, 561, 561, 0, 0, 2327, 0, 0, 0, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3273, 585, 585, 585, 585, 585, 585, 561, 561, 585, 585, 585, 3107, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1969, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3119, 585, 585, 585, 585, 585, 585, 585, 585, 3127, 585, 585, 585, 585, 585, 1901, 540, 585, 585, 561, 540, 540, 540, 540, 561, 561, 3065, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3479, 585, 585, 585, 585, 585, 0, 3159, 0, 0, 0, 0, 0, 0, 0, 3165, 0, 0, 0, 0, 0, 0, 0, 3176, 0, 0, 3304, 0, 0, 0, 0, 0, 0, 3191, 0, 0, 0, 0, 0, 0, 3195, 3196, 0, 0, 0, 0, 540, 540, 3601, 540, 3602, 540, 540, 540, 540, 540, 540, 540, 540, 1752, 540, 540, 540, 540, 540, 540, 540, 540, 1349, 540, 540, 540, 540, 540, 540, 540, 540, 1288, 540, 540, 540, 540, 540, 540, 540, 540, 1289, 540, 540, 540, 540, 540, 540, 540, 540, 1290, 540, 540, 540, 540, 1300, 540, 540, 3279, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 561, 540, 540, 561, 561, 561, 561, 2611, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2304, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1853, 561, 561, 561, 561, 561, 561, 540, 540, 540, 540, 3317, 540, 540, 540, 3321, 540, 540, 540, 540, 540, 540, 540, 540, 2192, 540, 540, 540, 540, 540, 540, 2198, 561, 561, 561, 3339, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2628, 561, 561, 561, 561, 561, 561, 561, 561, 2305, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3348, 561, 561, 561, 585, 585, 585, 585, 585, 3353, 585, 585, 585, 3357, 561, 561, 3572, 561, 561, 561, 561, 561, 561, 561, 561, 3580, 585, 585, 585, 3584, 3597, 0, 3598, 3599, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3605, 3606, 540, 540, 540, 540, 2837, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1803, 540, 540, 540, 540, 585, 585, 585, 585, 585, 3619, 3620, 585, 561, 0, 0, 3623, 0, 0, 0, 540, 585, 585, 561, 540, 540, 895, 540, 540, 561, 561, 967, 561, 561, 3671, 585, 3672, 0, 540, 561, 585, 0, 540, 561, 585, 0, 540, 561, 585, 585, 585, 585, 585, 1079, 1559, 0, 0, 0, 1565, 0, 0, 0, 1571, 2033, 0, 0, 0, 0, 1577, 2035, 0, 0, 0, 0, 0, 0, 0, 1682, 0, 1684, 0, 0, 0, 0, 0, 0, 0, 1712, 0, 0, 1715, 0, 0, 0, 0, 0, 355, 356, 0, 0, 0, 0, 0, 0, 0, 362, 0, 290, 0, 0, 0, 0, 0, 0, 2762, 0, 0, 0, 0, 0, 0, 0, 2768, 0, 0, 0, 0, 389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3198, 0, 540, 540, 473, 473, 487, 0, 0, 487, 356, 356, 356, 509, 356, 356, 356, 356, 473, 473, 580, 580, 580, 580, 580, 580, 580, 604, 604, 604, 557, 604, 604, 604, 604, 604, 580, 580, 557, 580, 604, 580, 604, 1, 12290, 3, 78112, 540, 870, 540, 540, 540, 540, 540, 540, 540, 540, 540, 904, 540, 540, 540, 540, 540, 540, 2191, 540, 540, 540, 540, 2195, 540, 2197, 540, 540, 561, 561, 976, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 585, 1013, 1197, 0, 0, 0, 0, 0, 0, 0, 1197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 1371, 561, 561, 561, 1380, 561, 561, 561, 561, 2639, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2644, 561, 561, 561, 561, 585, 585, 585, 1462, 585, 585, 585, 1471, 585, 585, 585, 585, 585, 585, 585, 585, 1472, 585, 1477, 585, 585, 1481, 585, 585, 1541, 561, 0, 1291, 585, 1471, 1380, 540, 540, 540, 540, 540, 561, 561, 561, 561, 585, 585, 585, 585, 0, 0, 0, 0, 2727, 0, 0, 0, 0, 0, 1576, 0, 0, 0, 1582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2737, 0, 0, 0, 0, 0, 2741, 0, 1607, 0, 0, 0, 0, 0, 0, 0, 1615, 1616, 0, 0, 0, 0, 0, 0, 303, 204800, 204800, 0, 205103, 204800, 1, 12290, 3, 0, 1761, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1774, 1891, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3087, 561, 561, 561, 561, 1911, 561, 561, 561, 561, 561, 561, 26027, 0, 585, 585, 585, 585, 585, 585, 1466, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2928, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1947, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2001, 585, 585, 585, 585, 585, 585, 585, 1960, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1973, 0, 0, 2243, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2634, 561, 561, 2328, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2384, 0, 0, 0, 0, 2425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2085, 2086, 0, 0, 0, 0, 2449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3175, 0, 0, 0, 0, 561, 561, 561, 561, 561, 561, 2590, 561, 561, 561, 561, 561, 561, 2289, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2292, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2861, 561, 2863, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2877, 561, 561, 561, 561, 561, 561, 561, 561, 1899, 561, 561, 561, 561, 561, 1905, 561, 585, 585, 585, 2909, 585, 2911, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1984, 585, 585, 585, 585, 585, 585, 585, 3360, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1056, 585, 561, 0, 3556, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3567, 540, 561, 561, 561, 561, 2876, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 26027, 0, 585, 585, 585, 585, 561, 561, 561, 561, 3656, 561, 585, 585, 585, 585, 3660, 585, 0, 0, 0, 0, 0, 0, 2775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2124, 0, 0, 0, 0, 0, 0, 0, 0, 357, 0, 0, 0, 0, 0, 0, 362, 0, 290, 0, 0, 0, 0, 0, 0, 2790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1147354, 0, 0, 0, 0, 0, 0, 0, 357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2509, 0, 0, 357, 0, 367, 0, 0, 367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2457, 0, 0, 581, 581, 581, 581, 581, 581, 581, 605, 605, 605, 558, 605, 605, 605, 605, 605, 581, 581, 558, 581, 605, 581, 605, 1, 12290, 3, 78112, 865, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2575, 1385, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3243, 561, 1775, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3047, 585, 585, 585, 585, 1961, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2380, 585, 585, 585, 585, 2756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3315, 0, 2981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3188, 0, 3298, 0, 3299, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3388, 0, 0, 0, 0, 358, 359, 360, 361, 0, 0, 362, 0, 290, 0, 0, 0, 0, 0, 0, 2973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 362, 702, 0, 0, 0, 0, 359, 0, 358, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 425, 65536, 0, 0, 0, 0, 1710, 1711, 0, 0, 0, 1714, 0, 0, 0, 0, 0, 1718, 425, 425, 0, 425, 0, 359, 425, 0, 456, 0, 0, 0, 0, 0, 0, 0, 1102, 0, 0, 0, 0, 1263, 1264, 0, 0, 0, 0, 0, 497, 497, 0, 504, 504, 504, 504, 510, 511, 504, 504, 524, 524, 524, 524, 456, 456, 456, 456, 456, 456, 456, 456, 524, 524, 524, 524, 524, 524, 524, 559, 582, 559, 582, 559, 559, 582, 559, 606, 582, 582, 582, 582, 582, 582, 582, 606, 606, 606, 559, 606, 606, 606, 606, 606, 582, 582, 620, 625, 606, 625, 631, 1, 12290, 3, 78112, 0, 0, 0, 540, 585, 585, 561, 540, 540, 900, 540, 540, 561, 561, 972, 561, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 585, 585, 1934, 585, 585, 585, 585, 585, 585, 585, 0, 0, 2104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2740, 0, 0, 0, 0, 0, 561, 2245, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3533, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3494, 561, 0, 0, 0, 0, 0, 0, 585, 2330, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1482, 585, 585, 540, 2549, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2237, 0, 540, 540, 2577, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 0, 0, 0, 0, 1611, 0, 0, 1614, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2891776, 0, 0, 0, 0, 0, 2392064, 583, 583, 583, 583, 583, 583, 583, 607, 607, 607, 560, 607, 607, 607, 607, 607, 583, 583, 560, 583, 607, 583, 607, 1, 12290, 3, 78112, 705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155648, 866, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3224, 1136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 0, 0, 0, 0, 0, 1659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 780, 0, 0, 0, 0, 786, 561, 585, 585, 585, 585, 585, 1079, 1560, 0, 0, 0, 1566, 0, 0, 0, 1572, 0, 0, 0, 1578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3313, 0, 0, 540, 2199, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2547, 540, 2535, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2822, 540, 561, 561, 561, 2597, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2317, 561, 561, 2320, 2321, 561, 561, 0, 0, 0, 0, 0, 0, 647, 0, 0, 0, 0, 0, 0, 743, 540, 540, 540, 540, 540, 540, 540, 3331, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3072, 561, 561, 561, 0, 0, 0, 540, 585, 585, 561, 1064, 540, 540, 905, 540, 1069, 561, 561, 977, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 585, 585, 1951, 585, 585, 585, 585, 585, 585, 585, 0, 0, 1594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2767, 0, 0, 561, 561, 1846, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2645, 561, 561, 585, 585, 585, 1977, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2692, 585, 585, 585, 540, 540, 540, 2188, 540, 2190, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 3334, 561, 561, 0, 0, 0, 561, 561, 561, 2247, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2613, 561, 561, 561, 561, 561, 561, 561, 2619, 561, 561, 2273, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3242, 561, 561, 0, 585, 585, 585, 2332, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2408, 540, 585, 585, 561, 561, 2647, 0, 0, 0, 0, 0, 0, 585, 585, 585, 585, 585, 585, 585, 585, 2687, 585, 585, 2691, 585, 585, 585, 585, 585, 585, 585, 585, 2684, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2916, 585, 585, 585, 585, 561, 561, 585, 585, 585, 585, 585, 3109, 585, 585, 585, 585, 585, 585, 585, 585, 2702, 585, 585, 585, 585, 585, 585, 585, 0, 1134592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225706, 0, 0, 1134592, 0, 0, 0, 1134592, 1134592, 0, 0, 1134592, 0, 0, 1134592, 0, 1134592, 0, 0, 0, 1134592, 1135005, 1135005, 0, 0, 0, 0, 0, 1135005, 0, 1134592, 1134592, 0, 0, 0, 0, 1135202, 1135202, 1135202, 1135202, 1134592, 1135202, 1135202, 1135202, 1135202, 1135202, 0, 1134592, 1134592, 1134592, 1134592, 1135202, 1134592, 1135202, 1, 12290, 3, 0, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 0, 0, 1138688, 0, 0, 0, 0, 0, 1670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2125824, 2126738, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 2125824, 2125824, 2125824, 2125824, 2424832, 2433024, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 987, 2125824, 2125824, 2125824, 2125824, 2424832, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 457, 457, 1147354, 457, 457, 457, 457, 457, 457, 457, 457, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2792, 0, 0, 0, 0, 0, 0, 457, 0, 0, 0, 1147354, 1147354, 1147354, 1147405, 1147405, 1147354, 1147405, 1147405, 1, 12290, 3, 0, 0, 0, 0, 2042, 0, 0, 2045, 2046, 0, 0, 0, 2050, 0, 0, 0, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1221, 0, 0, 0, 0, 0, 0, 1142784, 0, 2179072, 2125824, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3137536, 2125824, 2940928, 2940928, 2940928, 0, 0, 0, 0, 0, 0, 305, 440, 448, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 1159168, 0, 0, 1159168, 0, 1159168, 1159168, 0, 1159168, 0, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2802, 0, 540, 540, 540, 540, 540, 1159168, 1159168, 0, 1159168, 1159168, 0, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 0, 1159168, 1159168, 0, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1, 12290, 3, 0, 0, 0, 0, 2053, 0, 2054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 799, 0, 799, 0, 0, 0, 0, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1163264, 0, 0, 0, 0, 0, 155648, 155648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 358, 0, 913, 2125824, 2125824, 2125824, 2125824, 2424832, 2433024, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 1452, 2125824, 2125824, 2125824, 2125824, 2424832, 106496, 0, 106496, 106496, 0, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 0, 0, 106496, 0, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2183168, 0, 0, 0, 0, 0, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2782, 2783, 0, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163840, 0, 0, 0, 0, 3043328, 0, 3149824, 2936832, 0, 2760704, 0, 0, 0, 0, 0, 2953216, 0, 0, 2826240, 2875392, 0, 0, 0, 0, 0, 0, 2834432, 0, 3227648, 2568192, 0, 0, 0, 0, 2564096, 0, 2748416, 2879488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 3137536, 2125824, 2125824, 2498560, 2125824, 2125824, 2125824, 2555904, 2564096, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2654208, 2678784, 2760704, 2764800, 2785280, 2854912, 2969600, 2125824, 3006464, 2125824, 3018752, 2125824, 2125824 -]; - -XQueryParser.EXPECTED = -[ 260, 268, 276, 283, 296, 304, 881, 312, 318, 331, 366, 339, 350, 361, 369, 342, 288, 886, 1555, 1545, 377, 384, 1551, 392, 400, 415, 423, 431, 439, 447, 455, 463, 486, 553, 490, 500, 500, 499, 498, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 353, 1871, 509, 517, 525, 1149, 688, 533, 1759, 407, 548, 949, 561, 323, 569, 1480, 1303, 866, 577, 1034, 592, 596, 1439, 1444, 604, 1857, 628, 636, 644, 1919, 1049, 652, 673, 660, 668, 681, 696, 995, 710, 718, 731, 1324, 739, 761, 1116, 776, 784, 792, 1170, 1200, 1204, 807, 843, 851, 859, 894, 902, 910, 723, 918, 926, 934, 942, 753, 957, 1568, 965, 980, 611, 988, 1738, 1003, 1011, 616, 1185, 1827, 871, 1539, 1029, 1042, 1418, 584, 1424, 972, 1057, 1065, 1073, 1598, 1087, 1095, 1103, 1111, 1134, 1142, 768, 478, 1163, 1289, 620, 1155, 1178, 876, 1620, 1643, 1193, 702, 1812, 799, 1789, 1212, 1753, 1218, 1226, 1234, 1242, 500, 1250, 1258, 828, 1266, 1274, 1282, 1297, 1850, 1311, 1319, 1332, 1079, 540, 1345, 1017, 1337, 1359, 1021, 1367, 1375, 1390, 1398, 1403, 1411, 1432, 1452, 1460, 1468, 1476, 1488, 1496, 1382, 1516, 1524, 1532, 1563, 1576, 746, 1584, 1592, 1502, 1606, 1614, 814, 1628, 1636, 469, 821, 1661, 1665, 1673, 1678, 1686, 1694, 1702, 1710, 1718, 501, 1726, 1734, 1746, 1767, 1775, 1783, 1351, 1126, 1797, 1805, 1121, 835, 1820, 474, 1835, 1843, 1865, 1508, 1879, 1649, 1653, 1887, 1892, 1900, 1908, 1916, 500, 500, 1927, 1975, 1928, 1939, 1939, 1939, 1934, 1938, 1939, 1930, 1943, 1950, 1946, 1954, 1958, 1961, 1964, 1968, 1972, 1979, 2007, 2007, 2007, 3094, 2007, 1983, 3521, 2007, 2812, 2007, 2007, 2007, 2007, 2779, 2007, 2007, 2132, 2007, 4152, 3820, 3824, 1987, 2098, 1994, 2000, 2006, 2007, 2007, 3996, 2007, 2007, 2012, 4079, 3820, 3824, 3824, 3824, 3824, 2019, 2097, 2097, 2026, 2170, 2032, 2007, 2007, 2007, 2007, 2919, 2007, 2428, 3887, 2007, 3734, 2038, 2089, 2007, 2007, 2007, 3390, 3824, 3824, 2045, 2097, 2097, 2097, 2097, 2097, 2099, 1996, 2067, 2059, 2063, 2003, 2007, 2007, 2007, 2007, 2007, 2259, 3005, 2007, 3049, 2007, 2007, 2007, 3818, 3820, 3820, 3820, 3820, 2133, 3824, 3824, 3824, 3824, 3824, 2055, 3820, 2139, 3824, 3824, 3824, 3827, 2097, 2097, 2022, 2072, 2007, 2007, 4080, 2007, 2162, 2077, 2007, 2007, 2779, 3400, 3820, 3820, 2053, 3824, 3825, 2097, 2097, 2084, 2072, 2088, 4151, 2385, 2007, 2007, 2007, 2007, 3112, 2752, 3820, 2052, 3824, 2095, 2097, 2104, 2778, 2050, 3823, 2095, 2115, 2129, 3821, 3826, 1989, 3390, 3822, 3827, 1990, 2137, 2141, 2149, 3819, 2141, 2159, 2167, 2048, 2174, 2028, 2181, 2184, 2188, 2192, 2202, 2202, 2193, 2197, 2201, 2203, 2207, 2211, 2215, 2219, 2222, 2226, 2230, 2234, 2238, 2732, 2242, 2007, 2007, 2737, 2247, 2007, 2007, 2007, 3028, 4134, 2007, 2007, 2007, 3213, 2007, 2007, 2007, 2007, 2702, 3310, 2007, 3694, 2243, 2007, 4531, 2253, 2007, 2007, 2007, 2007, 2007, 4488, 2007, 2007, 2007, 4489, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 4297, 2280, 2282, 2286, 2289, 2293, 2297, 2301, 2662, 2386, 2007, 2007, 2007, 2007, 2387, 2307, 2314, 2318, 4376, 4208, 2325, 2681, 3075, 3584, 2645, 2353, 2359, 2620, 2007, 2007, 2381, 2363, 2007, 2007, 3675, 2007, 3534, 4411, 3291, 4070, 3348, 2391, 2007, 2395, 2399, 2007, 2007, 2007, 2007, 3092, 3298, 2007, 2007, 2402, 2007, 2007, 2007, 3382, 2007, 2007, 2418, 3423, 2432, 2007, 2007, 2007, 2007, 2797, 2433, 2797, 2457, 2007, 2007, 2007, 2007, 2463, 2007, 2007, 3716, 3131, 2917, 2007, 2007, 3777, 4457, 4344, 2470, 2007, 2007, 2007, 2477, 2007, 2007, 2007, 2484, 2007, 2107, 3702, 2007, 3700, 2493, 2007, 2111, 2007, 2007, 3723, 3037, 2007, 2007, 2007, 2090, 3072, 2007, 2007, 2007, 2007, 2261, 3346, 2007, 2007, 2500, 2007, 2505, 4255, 4115, 4254, 2007, 4238, 2510, 4117, 3651, 3491, 2511, 4118, 4239, 4255, 3650, 4117, 2516, 4116, 4117, 3593, 3670, 3596, 2528, 2531, 2535, 2538, 2542, 2007, 3509, 2620, 4365, 4173, 2562, 2566, 2570, 2007, 2674, 2672, 3782, 2574, 2007, 3457, 2579, 2007, 2501, 2007, 4424, 3255, 2555, 2588, 4214, 4424, 4450, 2584, 2592, 2599, 3102, 4176, 2007, 2007, 3778, 2008, 2342, 4482, 2348, 4126, 4353, 2007, 2007, 2007, 2721, 2607, 2007, 2007, 2007, 3379, 2007, 2007, 2007, 3480, 2619, 2007, 4362, 2007, 4150, 4231, 2625, 4223, 2632, 2636, 2007, 4444, 2654, 2007, 2007, 2007, 2007, 3897, 2007, 2007, 4225, 2675, 2642, 2007, 2007, 2007, 2007, 4443, 2653, 4024, 2007, 4424, 4341, 2118, 4304, 2679, 2007, 2007, 3794, 2734, 2268, 4056, 2403, 2007, 2007, 3896, 2007, 2655, 2910, 4541, 3011, 2685, 2775, 2007, 2007, 2007, 3576, 2686, 2007, 2007, 4010, 3290, 2007, 2007, 3151, 3295, 3238, 2007, 2697, 2007, 3451, 2403, 4245, 2586, 4285, 2701, 3577, 2715, 2007, 2007, 2007, 3620, 2706, 2007, 2007, 2007, 2007, 2713, 2775, 2007, 2007, 4082, 3399, 2007, 2007, 4082, 3399, 2741, 2769, 2855, 2774, 2007, 3410, 2751, 2007, 2007, 4104, 2007, 2007, 2007, 2007, 2506, 4140, 4109, 4114, 3788, 2803, 4147, 2007, 2007, 4385, 3699, 2007, 3534, 4411, 2007, 2041, 4469, 4448, 2007, 2007, 2007, 2709, 3410, 2751, 2702, 2784, 3450, 4048, 2121, 2770, 3436, 2007, 3434, 3438, 2007, 2791, 2007, 2795, 2801, 2328, 2810, 2787, 2452, 2816, 2453, 2007, 2443, 2450, 2424, 2465, 2007, 2007, 2007, 2007, 3098, 2007, 2007, 2007, 2007, 3372, 2007, 2007, 2007, 2007, 3389, 3820, 3820, 3820, 2163, 3824, 3824, 3824, 3824, 4039, 2821, 2787, 2832, 2786, 3985, 2838, 2843, 4030, 3312, 2839, 2844, 4031, 4431, 2848, 2834, 2852, 2859, 2860, 2177, 2864, 3301, 4460, 4463, 2871, 4547, 2875, 2879, 2883, 2886, 2890, 2894, 2897, 2899, 2900, 2007, 2007, 2904, 2007, 3808, 2910, 4541, 3081, 2914, 2007, 2007, 2924, 2928, 2937, 2944, 2952, 2961, 2968, 3274, 2970, 2007, 2473, 2408, 2007, 2007, 2007, 2007, 2414, 3024, 2007, 2495, 2976, 2980, 4495, 4081, 2986, 2999, 2007, 2007, 2007, 2007, 2007, 3335, 2007, 2489, 2007, 3285, 2007, 3286, 2007, 3109, 2656, 3009, 3015, 3021, 3139, 2007, 4251, 2344, 3032, 2007, 2007, 2007, 2007, 3722, 3036, 2007, 2612, 2007, 2007, 3782, 2574, 2007, 3508, 4541, 3046, 3053, 2702, 3058, 2007, 2007, 3062, 3067, 2007, 2007, 2007, 2007, 3063, 2007, 2007, 2007, 3691, 2007, 2007, 2007, 2007, 2338, 3741, 2007, 2007, 3119, 2007, 2007, 2007, 3125, 2007, 2007, 2007, 2550, 4047, 2007, 2007, 2920, 3125, 2007, 2007, 3428, 4501, 2355, 3026, 2007, 2615, 2654, 4143, 3807, 3464, 2520, 2524, 3111, 2918, 2007, 3114, 3109, 3780, 3113, 3150, 3110, 3781, 3147, 4236, 3779, 2920, 3137, 2919, 2920, 3489, 4183, 3144, 3155, 2155, 2007, 2007, 2007, 4522, 3741, 2007, 3667, 2007, 3121, 3163, 3167, 3171, 3175, 3179, 3183, 3187, 3191, 2007, 2007, 2817, 3354, 2007, 2765, 3195, 3974, 3201, 3218, 4237, 3222, 3226, 3236, 4136, 3242, 3713, 3038, 3248, 3246, 2007, 2007, 2007, 2575, 2690, 2007, 2007, 2007, 2007, 4428, 2007, 2007, 2007, 2249, 4402, 4409, 2007, 2007, 3231, 3253, 2007, 2765, 3195, 3974, 3259, 3475, 4398, 3265, 3269, 3278, 2007, 2007, 3282, 2007, 2647, 2638, 3815, 3004, 2336, 2007, 2007, 2007, 3352, 2007, 2765, 3195, 2780, 3316, 2068, 3260, 3320, 3417, 3327, 3333, 2007, 2719, 3457, 2007, 2725, 2730, 2741, 4471, 3360, 3364, 3407, 2007, 2007, 2007, 3368, 2007, 2736, 3608, 3079, 3085, 3140, 2702, 4437, 3054, 3399, 2007, 2007, 2007, 4081, 3398, 2007, 2745, 2007, 2007, 3576, 2749, 2007, 2007, 2719, 2756, 2763, 3971, 3448, 2007, 2007, 3455, 2007, 2007, 3455, 2007, 2255, 2007, 3975, 3472, 3484, 2007, 3497, 2971, 3449, 2972, 2007, 3503, 3273, 4555, 4530, 4554, 3513, 4094, 4553, 3271, 4553, 4095, 4554, 3272, 4093, 4528, 3271, 3515, 4528, 4529, 2007, 4379, 2620, 3519, 2007, 3525, 4151, 3529, 3538, 3542, 3546, 3550, 3554, 3558, 3562, 3566, 2828, 3729, 2918, 2410, 4192, 3571, 3230, 4556, 3575, 3581, 3356, 3619, 3590, 2007, 2007, 4378, 3676, 2007, 3534, 4488, 2007, 2948, 3600, 2007, 2867, 3355, 2007, 2007, 2007, 2007, 3339, 4185, 3612, 2007, 2007, 2580, 3618, 2007, 2007, 2549, 2551, 2386, 2007, 2007, 3132, 3630, 2007, 2007, 2608, 3641, 2007, 3647, 4412, 2007, 3655, 3866, 3249, 3663, 2007, 2007, 2007, 2660, 2007, 2007, 2666, 2007, 4405, 2007, 2007, 2007, 2007, 2337, 3687, 2007, 2594, 3230, 4081, 3698, 2007, 2805, 3682, 2007, 2007, 2007, 3686, 2007, 2007, 2824, 2007, 2007, 2007, 2007, 2826, 4487, 2995, 2957, 2349, 3606, 2007, 2007, 3706, 2007, 4081, 3710, 2007, 2595, 2007, 3720, 4485, 2946, 3727, 3068, 3733, 2007, 3738, 2620, 2007, 2940, 2777, 3753, 3945, 3949, 3954, 3868, 2007, 3747, 2620, 2007, 2007, 3747, 2620, 3751, 2378, 2034, 3757, 3764, 3636, 2007, 4288, 2007, 2007, 4288, 3428, 3769, 2466, 2015, 3765, 3773, 2007, 3786, 2007, 3127, 2007, 2954, 2007, 2007, 3775, 2007, 2007, 3775, 2007, 2007, 2956, 2007, 2548, 2459, 2007, 3792, 3751, 3798, 3760, 3637, 2602, 2007, 3149, 4508, 2110, 2488, 2007, 3701, 2494, 2007, 2007, 4046, 2007, 3780, 2603, 2007, 3802, 3806, 3812, 3837, 4356, 3836, 3831, 2331, 3835, 3677, 3841, 2332, 3836, 3678, 4221, 3854, 3848, 4359, 3847, 3845, 3852, 3877, 3863, 3874, 3881, 3884, 2007, 2007, 2007, 2007, 2480, 2437, 2007, 2007, 2964, 2776, 2007, 3893, 3901, 3905, 3909, 3913, 3917, 3921, 3925, 3929, 3933, 3937, 2007, 2007, 2982, 4068, 4074, 4253, 2007, 2007, 3212, 4493, 2007, 2007, 2007, 2248, 3959, 3964, 3968, 4202, 3979, 3983, 3989, 3950, 2007, 4000, 4007, 4014, 2007, 2007, 2963, 2421, 3753, 4019, 4023, 2040, 3626, 4028, 4035, 2007, 3229, 3106, 3743, 3026, 2726, 2007, 2007, 2007, 4080, 2007, 4152, 3820, 3820, 2054, 3824, 3824, 2096, 2097, 2097, 2097, 2097, 2100, 2143, 4043, 2007, 2007, 3205, 3209, 2007, 2007, 2007, 2990, 2994, 2007, 2007, 2248, 3207, 2007, 2007, 2007, 3197, 4052, 2310, 4253, 4060, 2669, 2007, 4114, 2007, 2007, 2007, 2628, 3210, 2007, 2007, 2007, 2506, 4064, 2007, 2007, 3232, 3254, 3975, 2007, 4119, 3159, 2962, 4078, 3753, 4086, 2404, 2007, 4090, 2620, 4114, 2007, 2007, 2007, 4099, 2620, 2007, 2007, 3376, 2007, 2007, 2007, 2007, 2933, 4100, 4108, 4113, 2007, 2439, 4123, 3603, 4423, 2007, 3870, 3133, 2007, 2007, 2007, 4130, 2007, 3386, 2068, 4158, 3394, 3506, 2007, 2007, 2007, 4526, 2007, 2007, 2007, 4526, 2007, 3992, 2370, 4535, 4156, 2920, 2007, 2007, 4162, 2007, 2007, 2007, 4162, 2558, 2007, 4166, 4170, 2007, 4180, 2007, 2007, 4189, 2007, 2007, 4196, 4200, 4206, 4212, 3859, 4218, 2007, 2693, 2007, 2007, 4229, 2007, 3586, 2152, 2145, 4235, 3487, 2007, 4243, 3642, 2775, 3643, 4249, 4440, 2806, 3659, 4259, 4264, 3657, 3857, 3940, 2080, 3658, 3858, 3941, 4274, 3939, 3857, 4278, 3856, 3857, 4282, 3017, 4292, 4293, 4270, 2321, 4301, 4003, 4311, 4315, 4319, 4323, 4327, 4330, 4334, 4338, 2007, 2007, 2007, 2007, 2621, 3230, 3492, 3042, 4267, 3478, 2931, 3955, 4350, 4514, 4396, 3306, 3462, 3468, 3444, 2007, 4516, 2007, 2007, 2446, 2007, 2007, 2007, 2759, 2375, 3002, 4369, 4307, 2007, 4015, 2007, 2546, 2544, 4373, 4383, 2007, 2007, 2007, 4389, 3478, 2931, 2068, 3670, 3532, 4437, 2007, 4393, 2007, 2007, 3427, 3432, 2303, 3443, 3422, 2007, 2007, 4416, 4081, 2007, 2091, 3671, 3422, 3203, 4420, 2007, 2007, 2007, 2007, 2007, 3342, 2007, 3388, 3404, 3414, 3421, 2007, 2254, 3381, 3994, 2931, 4346, 4454, 4260, 3567, 3304, 2007, 3439, 3100, 2007, 2007, 2007, 2007, 3089, 2007, 4467, 2007, 2007, 2007, 2007, 2007, 3214, 2124, 2007, 2007, 4475, 2365, 3889, 3499, 2007, 3616, 2007, 2007, 2007, 2337, 3624, 2007, 2906, 2007, 3329, 3633, 2007, 2499, 3960, 4434, 2007, 2007, 2007, 2007, 4479, 2007, 2007, 3493, 2265, 2007, 2272, 3323, 2276, 4499, 2125, 2007, 4505, 2367, 4512, 2007, 4520, 2512, 2007, 2007, 3211, 4539, 2007, 3211, 4539, 2073, 4037, 4454, 2007, 2007, 2007, 4545, 2007, 2649, 2007, 2007, 4551, 3115, 4157, 3422, 2007, 2369, 2007, 2370, 2007, 2371, 3261, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 3458, 2007, 2007, 2080, 4576, 4599, 4601, 4601, 4596, 4590, 4601, 4601, 5213, 4588, 4600, 4601, 4601, 4601, 4601, 4601, 4601, 4605, 4601, 4601, 4624, 4632, 4592, 4611, 4609, 4615, 4626, 4639, 4641, 4646, 4628, 4651, 4653, 4653, 4647, 4635, 4657, 4642, 4661, 4665, 4669, 4673, 4676, 4680, 4682, 4686, 4690, 4560, 6008, 4569, 4572, 6007, 4694, 4697, 4751, 6953, 4752, 5681, 6931, 4707, 6326, 4735, 4735, 4712, 4752, 4752, 5273, 4792, 6322, 4707, 4735, 5096, 4719, 4736, 5094, 5098, 4748, 4748, 4750, 4752, 4752, 4752, 4752, 4564, 5125, 5113, 4729, 5190, 6233, 4752, 5981, 4707, 4707, 4734, 4735, 4711, 4791, 6324, 5279, 4792, 6322, 4707, 4735, 6320, 4748, 4749, 4752, 4752, 4582, 6339, 6230, 4730, 5190, 4752, 4752, 4752, 6892, 4707, 4707, 6327, 4735, 4714, 6320, 6322, 6322, 6322, 6324, 4707, 4707, 4707, 4710, 4735, 4793, 4788, 6324, 4709, 4765, 5096, 5096, 4748, 4752, 4752, 4752, 4758, 4721, 4752, 4752, 4752, 4777, 4792, 4788, 4709, 4752, 4561, 4752, 5750, 4735, 4735, 4794, 6324, 4752, 5743, 4752, 4752, 4752, 4757, 4752, 4707, 4709, 4735, 4735, 4735, 4735, 4711, 4791, 6322, 4792, 5276, 4722, 4752, 4563, 5399, 6420, 4752, 6238, 5201, 5242, 4735, 4735, 4785, 4752, 4563, 5663, 4752, 4563, 6254, 5386, 5386, 5386, 4752, 4752, 4752, 5746, 4752, 6321, 6322, 6322, 6322, 6323, 6320, 6322, 6322, 6323, 4707, 4707, 4707, 4735, 4752, 4752, 4584, 5193, 4735, 4735, 4713, 4752, 4563, 6913, 6240, 6240, 6240, 6929, 4735, 4735, 4714, 5739, 6322, 6322, 6322, 6325, 6322, 6324, 4707, 4710, 4740, 5096, 5097, 4707, 4709, 4735, 4752, 4698, 4752, 6653, 4709, 5467, 5467, 5467, 4752, 5513, 5517, 5483, 4804, 4818, 4798, 4802, 4844, 4844, 4844, 4808, 4815, 4812, 4828, 4832, 4842, 4844, 4844, 4844, 4844, 4845, 4838, 4926, 4844, 4852, 4850, 4913, 4853, 4857, 4861, 4865, 4835, 4869, 4872, 4879, 4876, 4881, 4883, 4887, 4889, 4891, 4893, 4900, 4900, 4897, 4907, 4910, 4923, 4846, 4916, 4919, 4930, 4933, 4935, 4939, 4903, 4943, 4752, 4752, 4752, 4948, 4715, 4752, 4752, 4752, 4977, 6877, 4954, 4752, 4752, 4752, 4978, 6115, 4759, 4759, 4752, 4752, 4753, 6060, 5603, 6128, 4975, 4752, 4714, 4752, 6620, 4752, 6554, 6723, 6126, 4984, 5424, 5283, 4988, 4992, 4993, 4993, 4993, 4997, 5000, 5002, 5006, 5009, 5013, 5017, 5017, 5019, 5023, 5024, 5028, 5030, 5034, 5038, 5037, 5042, 5046, 4752, 4752, 4760, 5740, 4752, 5065, 4752, 5423, 4752, 4725, 4724, 4723, 4565, 5750, 4752, 5657, 4752, 5671, 5072, 4752, 4743, 4752, 5390, 5082, 4752, 6010, 4752, 4751, 5572, 6253, 5505, 4752, 5971, 6389, 5056, 4752, 4752, 4752, 5074, 5535, 6350, 4752, 4752, 6930, 5401, 4752, 5494, 4752, 4752, 4752, 5125, 4752, 6136, 6009, 4752, 5110, 6936, 6567, 5134, 5141, 5150, 5143, 5152, 4752, 4752, 4754, 4752, 4752, 4752, 4755, 4752, 4752, 4752, 4752, 6233, 6232, 4752, 4752, 6347, 4752, 4752, 6356, 5137, 5161, 5250, 4752, 4752, 4752, 5060, 6584, 5222, 5223, 5186, 4752, 6234, 5190, 6523, 5174, 5165, 5171, 5181, 4752, 4752, 4752, 5190, 4752, 5143, 5180, 4752, 4752, 4756, 6223, 4752, 6358, 5781, 5171, 4752, 6600, 5055, 5251, 4752, 5745, 4752, 4752, 6357, 5166, 4752, 5700, 4752, 6585, 5199, 5167, 5205, 5153, 4752, 5211, 5207, 4752, 4752, 4757, 5714, 4752, 5698, 4752, 5191, 5136, 5142, 5151, 5221, 6420, 4752, 4752, 4757, 5946, 5568, 5167, 6098, 6009, 4752, 5973, 4752, 5175, 5166, 6097, 5153, 4752, 4752, 4583, 6238, 5201, 5241, 4752, 4752, 6357, 5780, 6547, 5167, 5243, 4752, 4752, 6357, 5781, 4960, 4752, 6600, 5250, 5242, 4752, 4752, 4752, 5291, 5782, 5243, 4752, 4752, 4752, 5293, 6836, 6078, 4752, 4752, 4752, 5346, 5256, 4752, 4752, 4752, 5355, 4752, 6927, 4752, 4752, 4752, 5377, 5972, 4752, 4752, 6928, 5301, 5305, 5306, 5306, 5307, 5306, 5306, 5311, 5314, 5316, 5318, 5320, 5320, 5320, 5320, 5321, 5325, 5325, 5325, 5327, 5325, 5325, 5331, 5331, 4752, 4752, 4761, 6855, 4752, 4752, 4960, 4752, 4752, 4752, 5217, 4752, 6405, 5353, 5571, 4752, 6913, 6240, 5376, 5259, 4752, 5068, 5397, 4752, 5067, 5385, 5396, 4752, 6696, 6700, 5406, 4752, 4752, 4752, 5471, 5263, 4752, 4752, 4752, 5531, 6256, 5416, 4752, 5572, 4752, 5665, 4752, 5365, 4752, 5664, 4752, 4752, 4961, 4961, 4961, 5670, 4752, 6018, 4752, 4752, 6375, 6009, 4752, 6535, 4752, 4752, 4752, 5581, 5083, 5429, 6534, 4752, 4752, 6428, 6383, 5341, 6009, 4752, 4752, 4752, 5187, 5417, 4752, 5573, 4753, 5358, 6639, 6644, 6017, 4752, 6260, 6601, 4752, 6413, 4752, 4752, 4968, 5118, 5439, 5444, 5449, 4752, 4752, 6578, 5109, 4752, 4752, 4753, 6958, 5445, 5153, 4752, 4752, 4752, 5387, 6259, 6593, 5458, 4752, 4752, 5050, 5054, 5721, 5336, 5342, 4752, 4752, 6591, 4752, 4752, 6698, 4752, 4752, 4752, 5434, 5465, 6603, 4752, 4752, 5080, 4752, 6569, 5473, 5477, 5445, 6429, 5475, 5869, 5481, 4752, 4752, 6717, 6721, 4752, 5720, 5335, 5491, 6602, 4752, 4752, 4752, 5747, 5525, 5477, 5500, 4752, 4752, 6740, 6908, 6569, 5524, 5476, 5499, 6429, 4752, 4752, 6712, 4752, 4752, 5084, 5430, 6860, 4752, 4752, 4752, 5748, 5187, 4752, 4752, 5223, 4752, 5745, 6422, 4752, 4752, 4752, 6219, 4752, 5571, 4752, 5665, 6571, 5548, 5869, 5516, 5812, 5477, 5871, 4752, 4752, 4752, 5750, 5720, 5335, 5504, 4752, 4752, 6868, 5157, 4752, 6861, 4752, 4752, 5111, 6426, 5386, 5748, 5510, 4752, 4752, 5870, 6429, 4752, 4752, 4752, 5746, 4752, 4752, 4752, 4760, 5529, 4752, 4752, 5560, 5567, 4752, 4752, 4757, 5546, 5554, 6429, 4752, 6713, 4752, 4752, 5191, 5176, 5559, 5113, 4752, 4752, 5192, 4752, 4752, 4752, 6727, 4752, 6319, 4752, 4752, 5228, 4752, 5568, 4752, 4752, 4752, 5811, 5225, 6277, 5386, 4752, 4752, 6874, 6878, 4752, 4752, 6206, 4752, 5720, 5814, 5569, 4752, 5687, 5691, 5225, 6255, 6934, 5689, 5570, 5570, 4752, 5944, 5690, 4752, 5689, 5570, 4752, 5688, 4752, 6238, 5563, 4752, 4753, 5522, 5548, 5687, 5577, 4752, 5687, 5577, 6238, 5401, 6651, 4752, 4753, 6054, 6070, 5386, 6364, 5586, 6009, 6256, 5600, 4752, 6419, 5378, 5602, 5607, 5620, 5611, 5619, 5614, 5615, 5615, 5615, 5615, 5624, 5631, 5628, 5635, 5637, 5637, 5637, 5642, 5638, 5646, 5646, 5646, 5646, 4752, 4752, 6449, 4752, 4752, 5247, 5251, 6259, 4778, 5412, 6009, 4752, 5705, 4752, 6945, 4752, 4752, 4752, 6239, 4752, 4752, 5678, 4752, 4752, 5650, 4752, 5656, 5652, 4752, 4756, 4752, 4752, 6103, 4752, 5661, 5669, 5675, 4752, 4757, 5847, 5927, 4752, 5685, 4752, 6232, 4752, 5377, 6310, 4752, 4752, 5695, 4752, 4752, 5289, 5389, 4752, 4752, 5957, 6439, 4752, 4752, 4752, 5845, 5211, 5251, 4752, 6437, 6441, 4752, 4752, 4752, 5860, 4581, 5709, 4752, 4752, 5227, 4752, 5718, 4752, 4752, 5356, 6055, 5761, 5726, 5732, 5738, 4752, 5759, 5763, 5728, 5734, 4752, 4752, 4752, 5980, 5762, 5727, 5733, 4752, 4758, 4752, 4752, 6124, 5052, 5056, 4779, 6862, 4752, 4752, 5380, 5228, 4752, 5767, 6936, 4752, 6937, 6934, 5378, 4752, 5228, 5704, 4752, 4752, 6947, 4752, 4752, 5356, 5549, 5774, 5786, 6683, 5251, 5787, 6684, 4752, 4752, 4752, 5990, 6258, 4778, 5412, 6009, 4752, 6557, 5986, 4752, 4775, 4752, 5744, 6946, 4752, 4752, 4752, 6094, 6233, 4752, 4752, 5791, 4752, 5805, 6900, 6682, 6686, 6686, 4752, 4752, 4752, 6117, 5774, 6902, 6684, 4752, 4950, 5088, 5102, 5411, 6870, 4752, 4752, 5380, 6635, 5768, 6937, 5802, 4744, 5810, 6902, 6685, 4752, 4959, 4752, 4752, 4702, 4752, 4752, 5809, 6901, 5818, 4752, 4752, 5421, 4954, 4752, 5798, 4780, 6870, 5972, 4752, 4752, 4752, 6241, 4752, 4752, 4752, 5188, 6000, 5824, 5251, 4752, 4752, 5842, 5822, 5828, 4752, 4752, 5453, 5153, 5281, 4752, 4752, 4752, 6238, 6233, 6238, 4752, 4752, 5971, 5570, 4752, 4752, 6241, 5972, 4752, 6241, 4752, 4752, 6238, 4752, 4752, 4752, 5230, 6239, 4752, 6241, 5973, 5838, 5237, 4752, 6254, 6635, 5226, 5851, 6443, 5858, 5866, 5875, 5879, 5884, 5886, 5880, 5890, 5893, 5896, 5899, 5901, 5903, 5907, 5907, 5913, 5907, 5907, 5909, 5920, 5921, 5917, 5917, 5919, 5917, 5917, 5918, 5917, 5931, 5265, 4752, 4752, 5460, 5360, 4757, 4752, 6931, 4752, 4752, 4752, 5461, 5361, 6613, 5542, 4752, 4752, 4752, 6896, 5776, 6882, 4752, 4752, 5742, 5936, 5195, 4752, 6225, 5942, 6564, 5950, 5953, 5961, 4752, 4961, 4752, 4752, 4752, 6000, 6367, 5966, 6419, 4752, 4752, 5487, 4752, 6294, 4752, 6293, 5985, 4752, 5990, 5994, 4752, 4752, 4752, 6298, 6367, 5927, 4752, 4752, 4752, 6243, 4759, 6930, 4752, 4752, 5741, 4752, 4752, 6938, 6005, 6421, 6050, 6014, 4752, 4752, 5505, 4752, 4752, 4752, 6437, 4752, 6209, 5755, 5755, 6022, 6026, 6110, 4752, 4962, 4961, 4752, 4752, 6111, 4752, 4752, 4752, 6317, 6031, 6026, 6110, 4752, 4966, 4752, 5225, 5398, 4752, 5400, 4752, 4752, 4752, 6254, 4752, 6366, 5926, 4752, 4752, 5561, 5225, 5266, 4752, 4752, 5224, 6352, 4752, 6628, 4752, 4972, 5386, 5066, 6048, 5970, 4752, 4752, 5573, 5398, 4752, 6208, 4752, 4752, 5596, 4752, 6059, 5779, 6064, 4752, 4977, 4821, 6882, 6069, 6065, 4752, 4752, 5699, 4752, 4752, 6001, 5925, 5251, 4752, 4752, 4752, 6247, 4752, 5739, 4752, 6353, 4752, 6629, 4752, 5973, 4752, 6569, 6074, 6089, 6569, 6084, 6088, 5251, 6082, 6086, 6090, 4752, 4979, 4579, 4752, 4752, 4752, 6422, 4752, 6423, 6722, 4752, 4752, 4752, 6321, 6322, 5389, 6627, 4752, 5971, 4980, 4580, 4752, 4752, 4752, 6320, 4757, 4752, 5740, 4752, 5075, 5968, 4752, 4977, 5523, 6665, 6354, 6627, 4752, 5972, 4752, 4752, 6036, 4753, 6937, 4752, 4752, 4752, 6418, 6252, 4752, 4752, 4752, 6423, 6860, 6869, 4752, 4752, 5720, 5813, 5555, 4752, 4752, 4752, 5809, 6354, 6627, 4752, 4753, 6937, 4978, 4581, 4752, 4752, 4752, 6429, 4752, 4979, 4581, 4752, 4752, 5722, 5337, 5263, 4752, 6861, 6870, 4752, 5287, 5297, 4758, 4752, 5742, 6353, 6860, 6869, 4758, 5740, 5390, 5998, 6234, 4752, 4752, 4752, 6102, 4752, 5386, 6234, 5505, 6935, 4755, 6239, 4752, 5971, 4752, 4752, 4752, 5386, 4754, 5720, 4581, 4752, 4752, 5741, 6936, 4752, 6863, 5739, 4752, 5076, 4752, 4752, 5720, 5335, 5341, 4752, 6869, 4752, 6313, 4752, 6311, 4752, 6608, 4752, 4752, 5745, 4752, 6259, 4752, 4618, 6121, 6232, 6230, 6230, 5741, 6935, 4752, 4752, 6201, 5189, 4752, 6134, 6132, 6140, 6144, 6151, 6145, 6145, 6150, 6146, 6155, 6159, 6163, 6167, 6169, 6174, 6176, 6169, 6169, 6170, 6186, 6187, 6180, 6180, 6185, 6180, 6180, 6181, 6191, 4752, 4752, 4752, 6545, 6229, 6841, 5573, 5061, 6250, 4752, 4752, 4752, 6569, 5524, 4752, 6247, 6251, 4752, 5107, 4752, 4752, 4753, 6719, 6266, 6265, 6267, 4752, 5110, 4752, 5111, 4752, 5113, 5111, 4752, 5956, 4752, 5192, 4752, 6621, 5747, 6333, 4752, 4752, 5797, 5191, 6271, 6276, 5252, 4961, 4752, 6281, 6287, 6251, 4752, 4752, 4752, 6570, 6286, 6291, 4752, 4752, 5751, 4752, 5833, 5832, 5831, 4752, 5110, 6077, 4752, 4752, 6362, 4752, 4752, 4770, 4752, 4752, 4752, 6717, 5589, 4752, 6202, 5190, 4752, 5110, 6929, 4752, 4752, 6307, 4752, 4752, 6934, 4752, 4752, 4752, 6934, 4759, 6304, 5573, 4961, 5831, 5831, 5831, 4752, 5112, 4752, 4752, 5742, 5580, 4769, 6009, 4752, 4752, 6387, 4752, 5126, 4752, 6331, 4961, 4753, 5534, 5538, 5542, 4752, 6282, 5536, 5540, 4752, 5112, 6427, 5932, 5582, 4771, 4752, 4752, 4752, 6546, 5782, 5243, 4752, 5579, 5536, 5540, 5862, 5538, 5542, 4752, 5114, 5993, 4752, 4961, 4752, 5797, 4768, 5153, 4752, 4752, 5804, 6899, 5787, 6318, 4752, 4752, 5957, 4752, 6213, 6334, 4752, 4752, 4752, 6731, 4752, 6234, 6343, 5539, 6009, 4752, 4752, 5769, 4752, 4752, 5938, 6343, 5539, 4752, 6425, 4961, 4752, 5193, 4752, 4752, 6231, 4752, 5377, 5401, 4752, 6254, 6318, 4752, 4752, 6255, 4752, 6425, 4752, 4752, 5409, 6311, 4961, 4752, 4752, 5823, 4752, 4752, 4752, 6240, 4752, 4752, 4752, 5103, 5454, 6009, 4752, 4752, 5844, 5146, 5452, 6377, 4752, 4752, 5846, 5145, 6860, 6009, 4752, 5190, 6375, 6009, 6422, 6424, 4752, 6868, 4752, 4752, 4752, 5388, 5380, 6254, 6362, 4752, 5124, 5122, 4752, 4752, 6322, 6322, 6322, 6322, 4707, 4707, 4707, 4707, 4708, 4735, 4735, 6381, 4752, 6009, 5377, 6389, 4752, 4752, 6885, 6009, 4752, 4752, 6868, 5377, 6253, 6887, 4752, 4752, 6887, 4752, 4752, 6886, 4752, 6403, 5971, 6255, 4752, 4752, 5853, 4752, 4752, 4752, 6936, 6255, 6886, 5971, 6255, 5191, 4752, 4752, 5752, 4752, 4756, 6589, 6886, 6401, 6885, 6885, 4752, 6886, 5377, 6885, 6394, 6394, 4703, 4703, 4703, 4752, 5185, 4752, 4752, 4757, 5110, 4960, 5744, 6398, 4752, 5187, 6451, 4752, 4752, 6409, 4752, 6411, 5750, 6215, 6417, 5744, 6435, 6217, 4752, 5189, 6447, 6457, 6461, 6462, 6466, 6486, 6469, 6484, 6472, 6478, 6475, 6480, 6498, 6492, 6490, 6496, 6496, 6500, 6506, 6506, 6507, 6504, 6506, 6506, 6506, 6511, 6514, 4752, 4752, 5854, 4752, 4752, 4752, 6619, 4824, 5749, 6417, 6518, 4752, 4752, 4752, 6756, 5187, 4752, 4752, 4752, 6834, 6431, 4752, 4752, 4752, 6836, 5834, 6009, 6522, 6527, 6869, 4752, 6430, 4752, 5188, 4752, 5223, 4752, 4752, 4752, 6253, 4752, 6540, 6551, 6561, 5402, 6575, 4752, 4752, 5945, 4752, 4752, 6755, 6009, 4752, 5188, 5194, 4752, 4752, 4752, 6252, 6255, 4752, 6756, 5962, 4752, 5222, 5392, 5390, 4752, 6849, 6848, 4752, 5231, 6032, 6027, 6850, 4752, 4752, 4752, 6854, 6619, 4824, 5749, 6582, 5518, 4752, 4752, 4752, 6861, 4753, 6634, 4752, 4752, 5945, 5691, 4752, 4752, 6589, 4752, 4753, 4752, 4757, 5561, 4752, 6597, 4752, 6607, 4752, 5235, 4752, 4752, 4752, 5225, 6612, 5541, 4752, 6617, 5229, 6351, 5401, 6625, 4752, 5753, 4752, 6633, 5359, 6640, 6645, 6009, 4944, 5540, 4752, 4752, 5955, 4752, 6649, 6238, 5686, 5686, 5144, 4752, 5744, 4752, 4752, 4752, 4753, 4980, 6619, 4824, 6272, 6654, 5754, 4753, 4752, 6311, 4752, 4752, 6312, 4752, 4752, 5355, 5359, 5550, 6658, 6009, 5357, 6678, 4944, 5541, 4752, 5571, 4752, 6597, 6597, 6597, 6597, 4752, 4752, 4752, 6928, 4752, 4752, 5110, 6426, 4752, 5746, 6423, 4752, 5266, 4752, 4564, 4752, 6662, 5550, 6671, 6670, 6009, 4752, 4752, 5977, 4752, 6664, 6669, 5153, 4752, 5270, 6423, 5505, 4823, 5748, 5401, 5189, 4752, 4752, 4752, 5739, 6322, 5752, 4753, 4752, 4752, 5741, 5390, 4752, 6675, 6690, 6429, 6694, 4752, 4752, 5193, 6234, 4824, 5750, 4752, 5369, 4752, 4955, 4752, 4752, 5385, 5753, 4756, 4752, 6239, 4752, 6240, 4752, 5349, 4758, 4752, 6705, 6429, 4752, 5372, 4758, 5592, 4752, 6705, 6429, 5572, 6238, 6913, 4752, 4752, 6009, 4752, 4752, 5712, 4752, 4752, 6010, 6536, 4714, 6709, 4752, 4752, 6016, 4752, 4756, 4752, 6240, 4752, 5379, 6255, 4752, 5388, 4752, 6257, 6419, 5074, 6720, 4752, 4752, 6042, 4752, 5749, 4752, 4752, 4752, 6929, 4752, 4752, 5971, 6717, 6429, 4752, 4752, 6042, 5417, 6914, 6241, 4752, 5747, 6233, 4752, 4752, 4752, 6926, 4752, 6729, 4752, 4752, 4752, 6933, 6727, 4563, 4752, 5747, 6741, 5389, 5192, 5222, 4752, 5986, 4561, 5748, 4752, 6936, 6934, 4562, 5749, 6934, 5853, 4563, 6935, 4752, 5387, 5748, 4752, 4752, 6735, 6371, 4563, 6936, 6934, 4752, 4752, 6739, 6680, 6421, 4744, 6300, 6231, 5091, 4752, 5389, 5748, 4752, 4752, 6701, 4581, 6039, 6745, 6748, 4620, 6733, 6752, 6760, 6768, 6762, 6764, 6771, 6775, 6779, 6782, 6784, 6788, 6790, 6794, 6797, 6801, 6804, 6809, 6808, 6813, 6815, 6819, 6817, 6823, 6827, 6830, 4752, 5391, 5223, 5222, 6421, 4752, 4752, 4759, 5112, 4760, 4752, 5113, 4752, 5428, 6533, 4752, 4752, 6388, 4752, 4752, 6393, 4752, 4752, 6428, 4752, 4752, 6428, 6260, 6840, 5381, 4752, 6845, 4584, 4752, 6043, 4752, 5495, 4752, 4752, 4753, 6197, 4769, 6859, 6044, 4752, 4752, 6195, 5582, 4752, 6739, 6907, 5191, 4752, 6867, 6915, 4752, 5506, 5505, 4752, 5973, 4752, 4563, 4752, 5386, 4752, 5533, 5537, 5541, 5389, 5388, 4752, 4752, 6232, 4752, 4752, 5747, 6741, 6355, 6235, 4752, 6543, 6238, 5400, 4752, 5188, 4752, 4752, 6891, 5777, 5700, 4752, 5562, 6253, 4752, 4752, 6912, 4752, 4752, 6932, 4752, 4752, 6935, 4752, 4753, 5435, 5440, 5445, 5388, 5388, 4752, 4752, 6242, 6042, 4752, 5739, 6934, 4752, 5571, 4752, 5398, 4752, 4751, 5401, 5401, 5399, 5793, 4753, 6898, 5778, 4563, 4752, 5388, 5749, 6601, 5747, 6906, 5192, 6236, 4752, 6897, 5777, 4563, 4752, 5130, 4752, 4752, 6338, 4752, 4752, 6231, 4752, 4752, 6920, 4752, 4752, 4752, 6261, 4752, 5775, 6919, 4752, 5386, 6258, 4781, 5595, 5193, 6237, 4752, 5571, 4752, 5399, 4760, 4752, 5740, 6935, 4752, 4752, 6107, 4752, 4752, 6924, 4752, 4752, 6281, 5535, 6896, 6942, 4752, 4752, 6311, 4752, 4752, 4752, 6530, 4759, 4752, 5740, 6935, 6951, 4752, 4752, 4752, 6311, 5770, 4977, 6959, 4752, 4752, 6312, 5113, 4752, 6957, 4752, 4752, 6313, 4752, 4752, 4752, 6453, 2, 4, 8, 262144, 0, 0, 0, 0x80000000, 1073741824, 0, 0, 1075838976, 2097152, 2097152, 268435456, 4194432, 4194560, 4196352, 270532608, 2097152, 4194304, 50331648, 0, 0, 0, 4194304, 0, 0, 541065216, 541065216, -2143289344, -2143289344, 4194304, 4194304, 4196352, -2143289344, 4194304, 4194432, 37748736, 541065216, -2143289344, 4194304, 4194304, 4194304, 4194304, 4194304, 4194304, 4198144, 4196352, 8540160, 4194304, 4194304, 4194304, 4196352, 276901888, 4194304, 4194304, 8425488, 4194304, 1, 0, 1024, 137363456, 66, 37748736, 742391808, 239075328, -1405091840, 775946240, 775946240, 775946240, 171966464, 742391808, 742391808, 742391808, 775946240, -1371537408, 775946240, 775946240, -1405091840, -1371537408, 775946240, 775946240, 775946240, 775946240, 4718592, -1371537408, 775946240, -1371537408, 775946240, -1371537408, 171966464, 775946240, 171966464, 171966464, 171966464, 171966464, 239075328, 171966464, 775946240, 239075328, 64, 4718592, 2097216, 4720640, 541589504, 4194368, 541589504, 4194400, 4194368, 541065280, 4194368, 4194368, -2143289280, 4194368, -2143285440, -2143285408, -2143285408, 776470528, -2143285408, -2109730976, -2143285408, -2143285408, -2143285408, -2109730976, -2143285408, 775946336, 775946304, 775946304, 776470528, 775946304, -1908404384, 775946304, -1908404384, 0, 2097152, 4194304, 128, 0, 256, 2048, 0, 0, 16777216, 16777216, 16777216, 16777216, 64, 64, 64, 64, 96, 96, 96, 64, 0, 0, 0, 24, 64, 0, 96, 96, 0, 0, 0, 288, 8388608, 0, 0, 8388608, 4096, 4096, 4096, 32, 96, 96, 96, 96, 262144, 96, 96, 1048576, 128, 0, 1048576, 0, 0, 2048, 2048, 2048, 2048, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 96, 96, 128, 128, 2048, 524288, 268435456, 536870912, 1073741824, 0, 0, 8388608, 4096, 0, 64, 0, 2048, 524288, 536870912, 0, 64, 524288, 64, 96, 64, 524288, 524288, 96, 96, 64, 524288, 96, 64, 80, 528, 524304, 1048592, 2097168, 268435472, 16, 16, 2, 536936448, 16, 262160, 16, 536936448, 16, 17, 17, 20, 16, 48, 16, 16, 20, 48, 64, 128, 1024, 134217728, 0, 0, 24, 560, 48, 2097680, 3145744, 1048592, 1048592, 2097168, 16, 1049104, 16, 16, 20, 560, 2097168, 2097168, 16, 16, 16, 16, 20, 16, 2097552, 3146256, 16, 16, 16, 28, 0, 2, 2098064, 17, 21, 16, 16, 163577856, 17, 528, 528, 16, 528, 2228784, -161430188, -161429680, -161430188, -161430188, -161430188, -161429680, -161430188, -161429676, -160905388, -161429676, -161430188, -161429676, -161429676, -161429676, -161429676, -161429675, -161349072, -161349072, -161429675, -161349072, -161349072, -161349072, -161349072, -161347728, -161347728, -161347728, -161347728, -161298576, -160299088, -161298576, -161298572, -161298572, -161298572, -161298572, -18860267, -160774284, -18729163, -160774288, -160299084, -161298572, -160774284, -161298572, -161298572, 16, 16, 28, 16, 16, 112, 21, 53, 146804757, 146812949, 0, 16, 0, 48, 3146256, 2097680, 1048592, 146862101, 146863389, -161429676, 146863389, 146863421, 146863389, 146863389, 146863389, 146863421, -161429740, -161429676, -160905388, -161298572, 0, 65536, 524288, 1048576, 33554432, 0, 159383552, 0, 0, 0, 1157627904, -1073741824, 0, 0, 0, 300, 142606336, 0, 8192, 0, 0, 0, 384, 0, 243269632, 0, 0, 0, 1862270976, 1, 32768, 131328, 131072, 16777216, 0, 0, 1, 2, 4, 128, 2097152, 0, 1073741825, 0x80000000, 0x80000000, 8, 16777216, 1073774592, 278528, 1226014816, 100665360, 100665360, 100665360, 100665360, 100665360, 100665360, -2046818288, 1091799136, -2044196848, 1091799136, 1091799136, 1091799136, 1091799136, 1091799136, 1091803360, 1091799136, 1091799136, 1158908000, 1158908001, 1192462432, 1192462448, 1192462448, 1192462448, 1192462448, 1200851056, 1091799393, 1200851056, 1200851056, 1192462448, 1870630720, 1870647104, 1870630720, 1870647104, 1870630720, 1870647104, 1870647104, 1870647104, 1870647104, 1870647104, 1870647120, 1870647124, 1870647124, 1870647124, 1870630736, 1870655316, 1870655316, 1870655316, 1870655317, 1870655348, 1870647120, 1870647120, 1870647120, 1879019376, 1879035760, 1870647124, 1879035760, 1879035764, 32768, 131072, 524288, 2097152, 8388608, 16777216, 134217728, 268435456, 1073741824, 0x80000000, 131328, 0, 0, 0, 832, 0, 164096, 0, 0, 0, 520, 4333568, 1048576, 1224736768, 0, 0, 1, 4, 0, 0, 235712, 0, 1090519040, 0, 0, 0, 999, 259072, 1191182336, 0, 0, 9437184, 0, 0, 1048576, 0, 128, 128, 128, 128, 2048, 2048, 231744, 0, 0, 0, 1007, 495424, 7864320, 1862270976, 0, 0, 0, 1024, 0, 0, 0, 63, 520000, 1862270976, 1862270976, 16252928, 0, 0, 16252928, 0, 0, 0, 1536, 0x80000000, 64, 98304, 1048576, 150994944, 0, 64, 256, 3584, 16384, 98304, 393216, 98304, 393216, 524288, 1048576, 2097152, 4194304, 0x80000000, 0, 0, 2097152, 4194304, 251658240, 536870912, 1073741824, 0, 0, 8192, 1073741824, 1073741824, 8388608, 2097152, 16777216, 134217728, 268435456, 2048, 65536, 262144, 524288, 1048576, 2097152, 1048576, 2097152, 4194304, 117440512, 64, 256, 1536, 16384, 65536, 117440512, 134217728, 536870912, 1073741824, 0, 0, 100663296, 0, 0, 0, 4096, 0, 0, 0, 64, 0, 0, 128, -2113929216, 64, 256, 1536, 65536, 262144, 524288, 4194304, 16777216, 100663296, 134217728, 536870912, 1073741824, 1048576, 2097152, 4194304, 16777216, 4194432, 3145728, 524288, 2097152, 134217728, 268435456, 65536, 1048576, 0, 0, 0, 2048, 0, 0, 134217728, 0, 0, 0, 15, 16, 524288, 2097152, 1073741824, 0x80000000, 0x80000000, 0, 1048576, 2097152, 67108864, 1073741824, 0, 0, 0, 0, 2097152, 1073741824, 0x80000000, 0, 0, 0, 768, 0, 2097152, 0x80000000, 0, -872415232, 0, -872415232, 67108864, 134217728, 1073741824, 0, 0x80000000, 0, 0, 0, 8192, 4096, 0, 0, 1536, 524288, 64, 64, 96, 64, 0, 524288, 0, 1073741824, 2621440, 1073741824, 9476, 512, 0, 32, 384, 8192, 0, 0, 1, 8, 512, 512, 9476, 134218240, 1050624, 262144, 512, 50331649, 1275208192, 4194312, 4194312, 4194312, 4194312, 541065224, 4194312, 4194312, 4194344, -869654016, 4203820, -869654016, -869654016, -869654016, -869654016, 1279402504, 1279402504, 1279402504, 1279402504, 2143549415, 2143549415, 2143549415, 2143549415, 2143549415, 2143549423, 2143549415, 2143549423, 2143549423, 2143549423, 2143549423, 16, 32, 256, 1024, 8192, 33554432, 8192, 33554432, 67108864, 134217728, 0, 0, 536870912, 9216, 0, 0, 1792, 0x80000000, 0, 1050624, 0, 0, 1, 14, 16, 32, 1024, 2048, 77824, 524288, 0, 512, 139264, 1275068416, 512, 2760704, -872415232, 0, 0, 1856, 0x80000000, 4203520, 0, 0, 0, 32768, 0, 0, 0, 58624, 520, 0, 0, 0, 131072, 0, 0, 0, 512, 0, 1048576, 0, 1275068416, 0, 0, 0, 65536, 0, 0, 0, 12561, 0, 1007, 1007, 0, 0, 2048, 524288, 0, 536870912, 0, 512, 0, 2048, 1048576, 0, 0, 40, 0, 2621440, 0, 0, 0x80000000, 999, 259072, 4194304, 25165824, 100663296, 402653184, 1, 102, 384, 512, 5120, 5120, 8192, 16384, 229376, 4194304, 4194304, 25165824, 33554432, 67108864, 402653184, 402653184, 536870912, 1073741824, 0, 0, 2048, 3145728, 16777216, 536870912, 110, 110, 0, 0, 1, 30, 32, 0, 40, 0, 524288, 64, 96, 1, 6, 96, 384, 512, 1024, 4096, 8192, 16384, 229376, 67108864, 402653184, 536870912, 0, 2, 16, 104, 0, 104, 104, 8192, 33554432, 134217728, 0, 0, 2048, 100663296, 0, 229376, 25165824, 33554432, 402653184, 536870912, 8192, 33554432, 0, 0, 0, 17408, 0, 524288, 2097152, 0, 0, 2048, 268435456, 536870912, 0, 0, 268435456, 49152, 2, 4, 32, 64, 256, 512, 1024, 8, 8, 0, 0, 1, 64, 128, 3584, 16384, 3145728, 16777216, 67108864, 134217728, 805306368, 1073741824, 0, 0, 4, 64, 256, 1024, 4096, 8192, 65536, 524288, 98304, 131072, 25165824, 268435456, 536870912, 0, 2, 4, 256, 1024, 0, 2048, 0, 98304, 131072, 16777216, 268435456, 0, 0, 0, 262144, 0, 0, 65536, 268435456, 0, 0, 1, 128, 512, 2048, 524288, 2048, 524288, 67108864, 536870912, 0, 262144, 0, 0, 2432, 0, 0, 4096, 8192, 0, 32, 4100, 67108864, 0, 32768, 0, 32768, 0, 0, 134348800, 134348800, 1049088, 1049088, 8192, 1049088, 12845065, 12845065, 12845065, 12845065, 270532608, 0, 1049088, 0, 134348800, 12845065, 12845065, 147193865, 5505537, 5591557, 5587465, 5587457, 5587457, 147202057, 5587457, 5587457, 5591557, 5587457, 13894153, 13894153, 13894153, 13894153, -1881791493, 13894153, 81003049, 13894153, 13894153, -1881791493, -1881791493, -1881791493, -1881791493, 0, 9, 0, 0, 1, 5505024, 142606336, 0, 0, 0, 278528, 0, 82432, 0, 0, 1, 16777216, 0, 0, 0, 139264, 0, 0, 0, 229440, 0, 5, 86528, 9, 4456448, 8388608, 0, 0, 8192, 8392704, 9, 8388608, 0, 0, 256, 1024, 65536, 16777216, 268435456, 0, 0, 41, 75497472, 0, 0, 16384, 262144, 0, 0, 0, 512, 1048576, 0, 0, 262144, 4194304, 8388608, 0, 0, 16384, 4194304, 0x80000000, 0, 0, 81920, 0, 0, 2, 4, 16, 32, 8192, 131072, 262144, 1048576, 4194304, 8388608, 4194304, 8388608, 16777216, 33554432, -1946157056, 0, -1946157056, 0, 0, 0, 524288, 0, 0, 0, 16, 0, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 13, 0, 1, 2, 56, 64, 896, 8192, 131072, 0, 0, 33554432, 1024, 0, 4, 0, 8, 16, 32, 64, 128, 1024, 2048, 16384, 65536, 262144, 524288, 2097152, 384, 512, 8192, 131072, 1048576, 0, 16384, 65536, 0, 65536, 0, 0, 131072, 0, 32, 0, 32768, 134217728, 0, 0, 2, 8, 16, 0, 2, 8, 32, 64, 256, 1024, 98304, 131072, 1048576, 33554432, 134217728, 0x80000000, 8, 32, 384, 8192, 131072, 33554432, 131072, 33554432, 0x80000000, 0, 0, 24576, 0, 0, 0, 50331648, 0, 8396800, 4194304, 134217728, 2048, 134217728, 0, 0, 2, 16384, 32768, 1048576, 2097152, 0, 8396800, 0, 0, 4, 8, 0, 0, 16384, 0, 2, 4, 128, 3584, 16384, 16384, 16384, 16777216, 16384, 229376, 25165824, 33554432, 268435456, 536870912, 524288, 268567040, 16384, -2113929088, 2113544, 68423701, 68423701, 68423701, 68423701, 68489237, 68423701, 68423701, 68423701, 85200917, 68423701, 68489237, 72618005, 68423701, 68423701, -2079059883, 68423701, -2079059883, 68425749, 68423703, 69488664, 85200919, 69488664, 69488664, 69488664, 69488664, 70537244, 70537245, 70537245, 70537245, 70537245, 70537245, 70539293, -2022351809, -2076946339, 70537245, -2076946339, -2076946339, -2022351681, -2022351681, -2022351681, -2022351681, -2022351809, -2022351681, -2022351809, -2022351681, 32768, 65536, 4194304, 16777216, 0x80000000, 0, 0, 0, 8388608, 134217728, 1073741824, 131584, 268435456, 0, 0, 4, 128, 1048576, 67108864, 0, 0, 4, 256, 1024, 98304, 0, 0, 5242880, -2080374784, 268288, 0, 0, 4, 16777216, 0, 0, 23, 0, 0, 0, 867391, 24, 282624, 0, 0, 6, 0, 0, 0, 2097152, 0, 0, 0, 28, 3145728, 0, 0, 32768, 65536, 0, 284672, 0, 0, 0, 1048576, 0, 63, 128, 351232, 7340032, -2030043136, 0, 0, 131072, 268435456, 0, 0, 8, 32, 64, 16, 4096, 262144, 1048576, 1073741824, 0, 0, 0, -2046820352, 0, 20480, 0, 0, 8, 4194304, 0, 0, 15, 16, 32, 3072, 20480, 65536, 262144, 7340032, 50331648, 16, 32, 128, 3072, 20480, 0, 1, 4, 1048576, 4096, 1048576, 512, 0, 0, 0, 150528, 0, 0, 0, 5242880, 0, 7, 0, 14, 32, 1024, 2048, 12288, 1, 14, 32, 128, 1024, 7340032, 50331648, 0x80000000, 0, 0, 2048, 16384, 65536, 7340032, 50331648, 8, 32, 1024, 65536, 262144, 2097152, 1073741824, 0, 1, 6, 8, 32, 128, 1024, 65536, 2097152, 4194304, 50331648, 0x80000000, 0, 1, 2, 4, 2097152, 4194304, 67108864, 134217728, 536870912, 0, 32768, 4194304, 16777216, 0, 1, 2, 4, 50331648, 67108864, 0x80000000, 0, 0, 128, 50331648, 0, 0, 8, 33554432, 4096, 4194304, 268435456, 0, 0, 32768, 131072, 131072, 0, 32768, 32768, 268435968, 268435968, 1073743872, 268435968, 0, 128, 6144, 0, 229376, 128, 268435968, 16777220, 268436032, 256, 256, 256, 256, 257, 256, 256, 536871168, 256, 256, 256, 256, 384, -1879046336, -1879046334, 1073744256, -1879046334, -1879046326, -1879046334, -1879046334, -1879046326, -1879046326, -1845491902, -1878784182, 268444480, 268444480, 268444480, 268444480, 2100318145, 268436288, 268436288, 268436288, 268436288, 268436289, 268436288, 2100318149, 2100318149, 2100318149, 2100318149, 2100326337, 2100318149, 2100318149, 2100318145, 2100318149, 2100318145, 2100318149, 2100326341, 2100318149, 2100326341, 2100326341, 0, 1, 16, 32, 128, 512, 0, 4194304, 1, 1024, 0, 0, 229376, 0, 0, 12, 3145728, 0, 0, 576, 0, 0, 16, 8192, 0, 0, 16, 262144, 0, 384, 0, 0, 21, 266240, 1864, 0, 0, 0, 8388608, 0, 0, 0, 128, 0, 0, 0, 256, 0, 0, 0, 260, 512, 0, 1, 4036, 19939328, 2080374784, 0, 0, 0, 16777216, 0, 0, 0, 32, 0, 0, 0, 40, 67108864, 0, 19947520, 0, 0, 0, 19947520, 2304, 0, 8, 0, 512, 301989888, 0, 0, 262144, 16777216, 0, 1, 4, 64, 128, 64, 128, 3840, 16384, 19922944, 19922944, 2080374784, 0, 0, 29, 0, 0, 1536, 0x80000000, 0, 0, 32, 1, 8, 0, 33554432, 0, 0, 32768, 196608, 0, 0, 0, 33554432, 0, 0, 32768, 65536, 131072, 0, 0, 524288, 524288, 524288, 524288, 64, 64, 64, 32, 96, 8, 0, 33554432, 262144, 8192, 0, 0, 4194304, 1024, 0, 4096, 0, 1024, 2048, 16384, 3145728, 2048, 524288, 536870912, 1073741824, 8, 0, 0, 512, 131072, 0, 0, 64, 256, 1536, 2048, 33554432, 8192, 0, 0, 32, 64, 256, 32768, 65536, 16777216, 134217728, 536870912, 1073741824, 0, 3145728, 16777216, 536870912, 1073741824, 0, 0, 8192, 8192, 8192, 9216, 33554432, 0, 2097152, 16777216, 1073741824, 0, 0, 32768, 0, 16777216, 0, 16777216, 64, 0, 2, 0, 0, 32768, 16777216, 0, 0, 32, 512, 128, 131072, 0, 134218752, 0, 0, 44, 0, 66048, 0, 0, 0, 67108864, 0, 0, 0, 8192, 0, 8192, 0, 536870912, 0, 0, 0, 12289, 0, 268500992, 4243456, 0, 0, 59, 140224, 5505024, -1887436800, 0, 0, 2, 2, 4096, 4096, 0, 4096, 8192, 67108864, 0, 0, 1, 4032, 0, 4243456, 4096, 1048588, 12289, 1124073472, 1124073472, 1124073472, 1124073472, 1124073472, 1124073488, 1124073472, 1124073472, 1124073474, 1124073472, 1124073472, 1392574464, 1124073472, 12289, 1073754113, 12289, 12289, 1124073472, 12289, 12289, 1098920193, 1098920193, 1124073488, 1124073472, 1258292224, 1124073472, 1124073472, 1124073472, 1124085761, 1258304513, 1124085761, 1124085761, 1124085761, 1124085777, 1132474625, 1098920209, 1132474625, 1132474625, 1132474625, 1132474625, 1400975617, 2132360255, 2132622399, 2132622399, 2132360255, 2132360255, 2132360255, 2132360255, 2132622399, 2132360255, 2132360255, 2132360255, 2140749119, 2132360255, 2140749119, 2140749119, 0, 65536, 268435456, 49152, 184549376, 0, 0, 0, 83886080, 0, 0, 318767104, 0, 0, 32768, 100663296, 402653184, 1610612736, 0, 0, 0, 231488, 0, 12545, 25165824, 0, 0, 49152, 0, 0, 256, 1536, 65536, 0, 0, 58720256, 0, 0, 131072, 32768, 0, 0, 134217728, 0, 12305, 13313, 0, 0, 331776, 83886080, 117440512, 0, 0, 1, 6, 32, 64, 0, 78081, 327155712, 0, 0, 511808, 7864320, 512, 65536, 0, 0, 64, 65536, 1048576, 0, 0, 33554432, 1073741824, 0, 0, 110, 0, 0, 256, 8388608, 0, 0, 524288, 2097152, 0x80000000, 0, 0, 77824, 0, 0, 0, 268435456, 524288, 1048576, 16777216, 100663296, 134217728, 0, 339968, 0, 0, 128, 131072, 1024, 134217728, 0, 268435456, 0, 0, 128, 33554432, 0, 0, 1, 12288, 0, 0, 0, 134217728, 2048, 12288, 65536, 524288, 1048576, 1048576, 33554432, 67108864, 134217728, 805306368, 0, 327680, 0, 0, 256, 65536, 0, 0, 268435456, 1048576, 33554432, 134217728, 805306368, 1, 14, 16, 1024, 4096, 8192, 229376, 65536, 524288, 33554432, 134217728, 536870912, 1073741824, 0, 1, 14, 1024, 2048, 4096, 8192, 131072, 1048576, 8388608, 33554432, 134217728, 0x80000000, 0, 0, 4096, 65536, 524288, 134217728, 16384, 4194304, 0, 0, 999, 29619200, 2113929216, 0, 0, 0, 148480, 1, 12, 1024, 134217728, 0, 128, 134217728, 8, 0, 8, 8, 8, 0, 1, 4, 8, 134217728, 536870912, 0, 0, 1073741824, 32768, 0, 4, 8, 536870912, 0, 0, 1024, 1024, 0, 1024, 2048, 3145728, 0, 8, 32, 512, 4096, 8192, 0, 0, 68157440, 137363456, 0, 66, 66, 524288, 4100, 1024, 0, 0, 605247, 1058013184, 1073741824, 100680704, 25165824, 92274688, 25165824, 25165824, 92274688, 92274688, 25165952, 25165824, 25165824, 26214400, 92274688, 25165824, 92274688, 93323264, 92274688, 92274688, 92274688, 92274688, 92274720, 93323264, 25165890, 100721664, 25165890, 100721928, 100721928, 100787464, 100853000, 100721928, 100721928, 125977600, 125977600, 125977600, 125977600, 125846528, 125846528, 126895104, 125846528, 125846528, 125846528, 125846560, 125977600, 127026176, 125977600, 125977600, 127026176, 127026176, 281843, 1330419, 281843, 1330419, 281843, 281843, 1330419, 1330419, 281843, 281843, 5524723, 5524723, 5524723, 5524723, 93605107, 5524723, 39079155, 72633587, 72633587, 5524723, 92556531, 93605107, 93605107, 127290611, 97799411, 127290611, 131484915, 2097152, 134217728, 0, 0, 1024, 65536, 58368, 0, 0, 0, 301989888, 8, 124160, 189696, 0, 0, 605503, 1066401792, 0, 0, 3, 240, 19456, 262144, 0, 150528, 0, 0, 0, 536870912, 0, 1073741824, 0, 57344, 0, 0, 0, 1073741824, 0, 0, 0, 1, 2, 112, 128, 3072, 16384, 262144, 2048, 16384, 262144, 0, 0, 2097152, 16777216, 0, 0, 0, 1, 2, 48, 64, 0, 1, 2, 16, 32, 64, 384, 8192, 131072, 1048576, 32, 4096, 8192, 131072, 0, 0, 32768, 0, 256, 0, 256, 0, 65536, 1024, 2048, 262144, 0, 0, 32768, 256, 0, 0, 1024, 2097152, 0, 0, 0, 16384, 0, 0, 0, 4, 0, 0, 0, 5, 64, 128, 262144, 0, 0, 2097152, 268435456, 0, 0, 64, 128, 0, 0, 1536, 1792, 1, 2, 16, 64, 0, 0 -]; - -XQueryParser.TOKEN = -[ - "(0)", - "PragmaContents", - "DirCommentContents", - "DirPIContents", - "CDataSection", - "Wildcard", - "EQName", - "URILiteral", - "IntegerLiteral", - "DecimalLiteral", - "DoubleLiteral", - "StringLiteral", - "PredefinedEntityRef", - "'\"\"'", - "EscapeApos", - "ElementContentChar", - "QuotAttrContentChar", - "AposAttrContentChar", - "PITarget", - "NCName", - "QName", - "S", - "S", - "CharRef", - "CommentContents", - "EOF", - "'!'", - "'!='", - "'\"'", - "'#'", - "'#)'", - "'$'", - "'%'", - "''''", - "'('", - "'(#'", - "'(:'", - "')'", - "'*'", - "'*'", - "'+'", - "','", - "'-'", - "'-->'", - "'.'", - "'..'", - "'/'", - "'//'", - "'/>'", - "':'", - "':)'", - "'::'", - "':='", - "';'", - "'<'", - "'<!--'", - "'</'", - "'<<'", - "'<='", - "'<?'", - "'='", - "'>'", - "'>='", - "'>>'", - "'?'", - "'?>'", - "'@'", - "'NaN'", - "'['", - "']'", - "'after'", - "'all'", - "'allowing'", - "'ancestor'", - "'ancestor-or-self'", - "'and'", - "'any'", - "'append'", - "'array'", - "'as'", - "'ascending'", - "'at'", - "'attribute'", - "'base-uri'", - "'before'", - "'boundary-space'", - "'break'", - "'by'", - "'case'", - "'cast'", - "'castable'", - "'catch'", - "'check'", - "'child'", - "'collation'", - "'collection'", - "'comment'", - "'constraint'", - "'construction'", - "'contains'", - "'content'", - "'context'", - "'continue'", - "'copy'", - "'copy-namespaces'", - "'count'", - "'decimal-format'", - "'decimal-separator'", - "'declare'", - "'default'", - "'delete'", - "'descendant'", - "'descendant-or-self'", - "'descending'", - "'diacritics'", - "'different'", - "'digit'", - "'distance'", - "'div'", - "'document'", - "'document-node'", - "'element'", - "'else'", - "'empty'", - "'empty-sequence'", - "'encoding'", - "'end'", - "'entire'", - "'eq'", - "'every'", - "'exactly'", - "'except'", - "'exit'", - "'external'", - "'first'", - "'following'", - "'following-sibling'", - "'for'", - "'foreach'", - "'foreign'", - "'from'", - "'ft-option'", - "'ftand'", - "'ftnot'", - "'ftor'", - "'function'", - "'ge'", - "'greatest'", - "'group'", - "'grouping-separator'", - "'gt'", - "'idiv'", - "'if'", - "'import'", - "'in'", - "'index'", - "'infinity'", - "'inherit'", - "'insensitive'", - "'insert'", - "'instance'", - "'integrity'", - "'intersect'", - "'into'", - "'is'", - "'item'", - "'json'", - "'json-item'", - "'key'", - "'language'", - "'last'", - "'lax'", - "'le'", - "'least'", - "'let'", - "'levels'", - "'loop'", - "'lowercase'", - "'lt'", - "'minus-sign'", - "'mod'", - "'modify'", - "'module'", - "'most'", - "'namespace'", - "'namespace-node'", - "'ne'", - "'next'", - "'no'", - "'no-inherit'", - "'no-preserve'", - "'node'", - "'nodes'", - "'not'", - "'object'", - "'occurs'", - "'of'", - "'on'", - "'only'", - "'option'", - "'or'", - "'order'", - "'ordered'", - "'ordering'", - "'paragraph'", - "'paragraphs'", - "'parent'", - "'pattern-separator'", - "'per-mille'", - "'percent'", - "'phrase'", - "'position'", - "'preceding'", - "'preceding-sibling'", - "'preserve'", - "'previous'", - "'processing-instruction'", - "'relationship'", - "'rename'", - "'replace'", - "'return'", - "'returning'", - "'revalidation'", - "'same'", - "'satisfies'", - "'schema'", - "'schema-attribute'", - "'schema-element'", - "'score'", - "'self'", - "'sensitive'", - "'sentence'", - "'sentences'", - "'skip'", - "'sliding'", - "'some'", - "'stable'", - "'start'", - "'stemming'", - "'stop'", - "'strict'", - "'strip'", - "'structured-item'", - "'switch'", - "'text'", - "'then'", - "'thesaurus'", - "'times'", - "'to'", - "'treat'", - "'try'", - "'tumbling'", - "'type'", - "'typeswitch'", - "'union'", - "'unique'", - "'unordered'", - "'updating'", - "'uppercase'", - "'using'", - "'validate'", - "'value'", - "'variable'", - "'version'", - "'weight'", - "'when'", - "'where'", - "'while'", - "'wildcards'", - "'window'", - "'with'", - "'without'", - "'word'", - "'words'", - "'xquery'", - "'zero-digit'", - "'{'", - "'{{'", - "'{|'", - "'|'", - "'||'", - "'|}'", - "'}'", - "'}}'" -]; - }); - -ace.define('ace/mode/xquery/visitors/SemanticHighlighter', ['require', 'exports', 'module' ], function(require, exports, module) { - - var SemanticHighlighter = exports.SemanticHighlighter = function(ast) { - - this.tokens = {}; - - this.getTokens = function() { - this.visit(ast); - return this.tokens; - }; - - this.EQName = this.NCName = function(node) - { - var row = node.pos.sl; - this.tokens[row] = this.tokens[row] === undefined ? [] : this.tokens[row]; - node.pos.type = "support.function"; - this.tokens[row].push(node.pos); - return true; - }; - - this.visit = function(node) { - var name = node.name; - var skip = false; - - if (typeof this[name] === "function") skip = this[name](node) === true ? true : false; - - if (!skip) { - this.visitChildren(node); - } - }; - - this.visitChildren = function(node, handler) { - for (var i = 0; i < node.children.length; i++) { - var child = node.children[i]; - if (handler !== undefined && typeof handler[child.name] === "function") { - handler[child.name](child); - } - else { - this.visit(child); - } - } - }; - - }; - -}); |