From 0b0323b3f81f2bfb3ee7271a9794d4317f3dad6e Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Fri, 20 Jan 2017 23:13:41 -0800 Subject: [PATCH 01/13] Revert aee27fbff03870c5479c6c33e6b1f1a32219420c --- lib/coffee-script/coffee-script.js | 97 +++++++++++++++++++++++++++++- src/coffee-script.coffee | 80 ++++++++++++++++++++++++ test/error_messages.coffee | 11 ++++ 3 files changed, 187 insertions(+), 1 deletion(-) diff --git a/lib/coffee-script/coffee-script.js b/lib/coffee-script/coffee-script.js index 9da512ebe6..891300a00e 100644 --- a/lib/coffee-script/coffee-script.js +++ b/lib/coffee-script/coffee-script.js @@ -1,6 +1,6 @@ // Generated by CoffeeScript 1.12.2 (function() { - var Lexer, SourceMap, base64encode, compile, ext, fn1, fs, helpers, i, len, lexer, packageJson, parser, path, ref, vm, withPrettyErrors, + var Lexer, SourceMap, base64encode, compile, ext, fn1, formatSourcePosition, fs, getSourceMap, helpers, i, len, lexer, packageJson, parser, path, ref, sourceMaps, vm, withPrettyErrors, hasProp = {}.hasOwnProperty; fs = require('fs'); @@ -321,4 +321,99 @@ return helpers.throwSyntaxError("unexpected " + errorText, errorLoc); }; + formatSourcePosition = function(frame, getSourceMapping) { + var as, column, fileLocation, fileName, functionName, isConstructor, isMethodCall, line, methodName, source, tp, typeName; + fileName = void 0; + fileLocation = ''; + if (frame.isNative()) { + fileLocation = "native"; + } else { + if (frame.isEval()) { + fileName = frame.getScriptNameOrSourceURL(); + if (!fileName) { + fileLocation = (frame.getEvalOrigin()) + ", "; + } + } else { + fileName = frame.getFileName(); + } + fileName || (fileName = ""); + line = frame.getLineNumber(); + column = frame.getColumnNumber(); + source = getSourceMapping(fileName, line, column); + fileLocation = source ? fileName + ":" + source[0] + ":" + source[1] : fileName + ":" + line + ":" + column; + } + functionName = frame.getFunctionName(); + isConstructor = frame.isConstructor(); + isMethodCall = !(frame.isToplevel() || isConstructor); + if (isMethodCall) { + methodName = frame.getMethodName(); + typeName = frame.getTypeName(); + if (functionName) { + tp = as = ''; + if (typeName && functionName.indexOf(typeName)) { + tp = typeName + "."; + } + if (methodName && functionName.indexOf("." + methodName) !== functionName.length - methodName.length - 1) { + as = " [as " + methodName + "]"; + } + return "" + tp + functionName + as + " (" + fileLocation + ")"; + } else { + return typeName + "." + (methodName || '') + " (" + fileLocation + ")"; + } + } else if (isConstructor) { + return "new " + (functionName || '') + " (" + fileLocation + ")"; + } else if (functionName) { + return functionName + " (" + fileLocation + ")"; + } else { + return fileLocation; + } + }; + + sourceMaps = {}; + + getSourceMap = function(filename) { + var answer, j, len1, ref1; + if (sourceMaps[filename]) { + return sourceMaps[filename]; + } + ref1 = exports.FILE_EXTENSIONS; + for (j = 0, len1 = ref1.length; j < len1; j++) { + ext = ref1[j]; + if (helpers.ends(filename, ext)) { + answer = exports._compileFile(filename, true); + return sourceMaps[filename] = answer.sourceMap; + } + } + return null; + }; + + Error.prepareStackTrace = function(err, stack) { + var frame, frames, getSourceMapping; + getSourceMapping = function(filename, line, column) { + var answer, sourceMap; + sourceMap = getSourceMap(filename); + if (sourceMap) { + answer = sourceMap.sourceLocation([line - 1, column - 1]); + } + if (answer) { + return [answer[0] + 1, answer[1] + 1]; + } else { + return null; + } + }; + frames = (function() { + var j, len1, results; + results = []; + for (j = 0, len1 = stack.length; j < len1; j++) { + frame = stack[j]; + if (frame.getFunction() === exports.run) { + break; + } + results.push(" at " + (formatSourcePosition(frame, getSourceMapping))); + } + return results; + })(); + return (err.toString()) + "\n" + (frames.join('\n')) + "\n"; + }; + }).call(this); diff --git a/src/coffee-script.coffee b/src/coffee-script.coffee index 90ff12a858..dc7f68ee90 100644 --- a/src/coffee-script.coffee +++ b/src/coffee-script.coffee @@ -283,3 +283,83 @@ parser.yy.parseError = (message, {token}) -> # from the lexer. helpers.throwSyntaxError "unexpected #{errorText}", errorLoc +# Based on http://v8.googlecode.com/svn/branches/bleeding_edge/src/messages.js +# Modified to handle sourceMap +formatSourcePosition = (frame, getSourceMapping) -> + fileName = undefined + fileLocation = '' + + if frame.isNative() + fileLocation = "native" + else + if frame.isEval() + fileName = frame.getScriptNameOrSourceURL() + fileLocation = "#{frame.getEvalOrigin()}, " unless fileName + else + fileName = frame.getFileName() + + fileName or= "" + + line = frame.getLineNumber() + column = frame.getColumnNumber() + + # Check for a sourceMap position + source = getSourceMapping fileName, line, column + fileLocation = + if source + "#{fileName}:#{source[0]}:#{source[1]}" + else + "#{fileName}:#{line}:#{column}" + + functionName = frame.getFunctionName() + isConstructor = frame.isConstructor() + isMethodCall = not (frame.isToplevel() or isConstructor) + + if isMethodCall + methodName = frame.getMethodName() + typeName = frame.getTypeName() + + if functionName + tp = as = '' + if typeName and functionName.indexOf typeName + tp = "#{typeName}." + if methodName and functionName.indexOf(".#{methodName}") isnt functionName.length - methodName.length - 1 + as = " [as #{methodName}]" + + "#{tp}#{functionName}#{as} (#{fileLocation})" + else + "#{typeName}.#{methodName or ''} (#{fileLocation})" + else if isConstructor + "new #{functionName or ''} (#{fileLocation})" + else if functionName + "#{functionName} (#{fileLocation})" + else + fileLocation + +# Map of filenames -> sourceMap object. +sourceMaps = {} + +# Generates the source map for a coffee file and stores it in the local cache variable. +getSourceMap = (filename) -> + return sourceMaps[filename] if sourceMaps[filename] + for ext in exports.FILE_EXTENSIONS + if helpers.ends filename, ext + answer = exports._compileFile filename, true + return sourceMaps[filename] = answer.sourceMap + return null + +# Based on [michaelficarra/CoffeeScriptRedux](http://goo.gl/ZTx1p) +# NodeJS / V8 have no support for transforming positions in stack traces using +# sourceMap, so we must monkey-patch Error to display CoffeeScript source +# positions. +Error.prepareStackTrace = (err, stack) -> + getSourceMapping = (filename, line, column) -> + sourceMap = getSourceMap filename + answer = sourceMap.sourceLocation [line - 1, column - 1] if sourceMap + if answer then [answer[0] + 1, answer[1] + 1] else null + + frames = for frame in stack + break if frame.getFunction() is exports.run + " at #{formatSourcePosition frame, getSourceMapping}" + + "#{err.toString()}\n#{frames.join '\n'}\n" diff --git a/test/error_messages.coffee b/test/error_messages.coffee index d2ca09cbc1..f25346354d 100644 --- a/test/error_messages.coffee +++ b/test/error_messages.coffee @@ -57,6 +57,17 @@ if require? fs = require 'fs' path = require 'path' + test "patchStackTrace line patching", -> + err = new Error 'error' + ok err.stack.match /test[\/\\]error_messages\.coffee:\d+:\d+\b/ + + test "patchStackTrace stack prelude consistent with V8", -> + err = new Error + ok err.stack.match /^Error\n/ # Notice no colon when no message. + + err = new Error 'error' + ok err.stack.match /^Error: error\n/ + test "#2849: compilation error in a require()d file", -> # Create a temporary file to require(). ok not fs.existsSync 'test/syntax-error.coffee' From c70541b79e7a5e1e50fa41cdc562a19c93bf1e49 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Fri, 20 Jan 2017 23:54:32 -0800 Subject: [PATCH 02/13] =?UTF-8?q?Patch=20Jison=E2=80=99s=20output=20so=20t?= =?UTF-8?q?hat=20it=20requires=20`fs`=20only=20if=20we=E2=80=99re=20truly?= =?UTF-8?q?=20in=20a=20CommonJS/Node=20environment,=20not=20a=20browser=20?= =?UTF-8?q?environment=20that=20may=20happen=20to=20have=20globals=20named?= =?UTF-8?q?=20`require`=20and=20`exports`=20(as=20would=20be=20the=20case?= =?UTF-8?q?=20if=20require.js=20is=20being=20used).=20Fixes=20#4391.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cakefile | 10 ++++++++-- lib/coffee-script/parser.js | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Cakefile b/Cakefile index be3f9cd324..b84d16a6a8 100644 --- a/Cakefile +++ b/Cakefile @@ -85,8 +85,14 @@ task 'build:full', 'rebuild the source twice, and run the tests', -> task 'build:parser', 'rebuild the Jison parser (run build first)', -> helpers.extend global, require 'util' require 'jison' - parser = require('./lib/coffee-script/grammar').parser - fs.writeFileSync 'lib/coffee-script/parser.js', parser.generate() + parser = require('./lib/coffee-script/grammar').parser.generate() + # Patch Jison’s output, until https://github.com/zaach/jison/pull/339 is accepted, + # to ensure that the CommonJS output is only generated in a true CommonJS + # environment and not a browser that happens to have `require` and `exports` + # defined as global variables (such as via require.js). + # CommonJS/Node.js detection method via http://stackoverflow.com/a/31090240/223225. + parser = parser.replace "if (typeof require !== 'undefined' && typeof exports !== 'undefined')", "if (typeof require !== 'undefined' && typeof exports !== 'undefined' && new Function('try{return this===global;}catch(e){return false;}')())" + fs.writeFileSync 'lib/coffee-script/parser.js', parser task 'build:browser', 'rebuild the merged script for inclusion in the browser', -> diff --git a/lib/coffee-script/parser.js b/lib/coffee-script/parser.js index b9c17614d7..f9eaa6bd1c 100755 --- a/lib/coffee-script/parser.js +++ b/lib/coffee-script/parser.js @@ -864,7 +864,7 @@ return new Parser; })(); -if (typeof require !== 'undefined' && typeof exports !== 'undefined') { +if (typeof require !== 'undefined' && typeof exports !== 'undefined' && new Function('try{return this===global;}catch(e){return false;}')()) { exports.parser = parser; exports.Parser = parser.Parser; exports.parse = function () { return parser.parse.apply(parser, arguments); }; From e2ac4b920944e48b711c10c826b8cbf4fe7fbfb3 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Sat, 21 Jan 2017 00:29:57 -0800 Subject: [PATCH 03/13] Temporary fix for exceptions getting thrown when trying to generate a stack trace for a file that has been deleted since compilation; fixes #3890, but not well. A better solution would not try to recompile the file when trying to retrieve its stack trace. --- lib/coffee-script/coffee-script.js | 19 ++++++++++++------- src/coffee-script.coffee | 10 ++++++++-- test/error_messages.coffee | 18 ++++++++++++++++++ 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/lib/coffee-script/coffee-script.js b/lib/coffee-script/coffee-script.js index 891300a00e..4c6fb1c56e 100644 --- a/lib/coffee-script/coffee-script.js +++ b/lib/coffee-script/coffee-script.js @@ -46,8 +46,8 @@ } try { return fn.call(this, code, options); - } catch (error) { - err = error; + } catch (error1) { + err = error1; if (typeof code !== 'string') { throw err; } @@ -268,8 +268,8 @@ sourceFiles: [filename], literate: helpers.isLiterate(filename) }); - } catch (error) { - err = error; + } catch (error1) { + err = error1; throw helpers.updateSyntaxError(err, stripped, filename); } return answer; @@ -372,7 +372,7 @@ sourceMaps = {}; getSourceMap = function(filename) { - var answer, j, len1, ref1; + var answer, error, j, len1, ref1; if (sourceMaps[filename]) { return sourceMaps[filename]; } @@ -380,8 +380,13 @@ for (j = 0, len1 = ref1.length; j < len1; j++) { ext = ref1[j]; if (helpers.ends(filename, ext)) { - answer = exports._compileFile(filename, true); - return sourceMaps[filename] = answer.sourceMap; + try { + answer = exports._compileFile(filename, true); + return sourceMaps[filename] = answer.sourceMap; + } catch (error1) { + error = error1; + return null; + } } } return null; diff --git a/src/coffee-script.coffee b/src/coffee-script.coffee index dc7f68ee90..105d625e8d 100644 --- a/src/coffee-script.coffee +++ b/src/coffee-script.coffee @@ -344,8 +344,14 @@ getSourceMap = (filename) -> return sourceMaps[filename] if sourceMaps[filename] for ext in exports.FILE_EXTENSIONS if helpers.ends filename, ext - answer = exports._compileFile filename, true - return sourceMaps[filename] = answer.sourceMap + try + # `exports._compileFile` will try to open a file on disk. + answer = exports._compileFile filename, true + return sourceMaps[filename] = answer.sourceMap + catch error + # If it can’t, for example because the original file has since disappeared, + # just return null rather than throwing an exception. + return null return null # Based on [michaelficarra/CoffeeScriptRedux](http://goo.gl/ZTx1p) diff --git a/test/error_messages.coffee b/test/error_messages.coffee index f25346354d..5047dae930 100644 --- a/test/error_messages.coffee +++ b/test/error_messages.coffee @@ -54,6 +54,7 @@ test "compiler error formatting with mixed tab and space", -> if require? + os = require 'os' fs = require 'fs' path = require 'path' @@ -85,6 +86,23 @@ if require? finally fs.unlinkSync 'test/syntax-error.coffee' + test "#3890 Error.prepareStackTrace doesn't throw an error if a compiled file is deleted", -> + # Adapted from https://github.com/atom/coffee-cash/blob/master/spec/coffee-cash-spec.coffee + filePath = path.join os.tmpdir(), 'file.coffee' + fs.writeFileSync filePath, "module.exports = -> throw new Error('hello world')" + throwsAnError = require(filePath) + fs.unlinkSync filePath + + caughtError = null + try + throwsAnError() + catch error + caughtError = error + + eq caughtError.message, 'hello world' + doesNotThrow(-> caughtError.stack) + ok caughtError.stack.toString().indexOf(filePath) isnt -1 + test "#1096: unexpected generated tokens", -> # Implicit ends From 96a8776dce8f5b3c37305725c54b0cf01c4efc86 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Sat, 21 Jan 2017 01:11:41 -0800 Subject: [PATCH 04/13] Save the test REPL history in the system temp folder, not in the CoffeeScript project folder --- test/repl.coffee | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/repl.coffee b/test/repl.coffee index 910ad069f4..4f0d870094 100644 --- a/test/repl.coffee +++ b/test/repl.coffee @@ -1,6 +1,8 @@ return if global.testingBrowser +os = require 'os' fs = require 'fs' +path = require 'path' # REPL # ---- @@ -28,7 +30,7 @@ class MockOutputStream extends Stream @written[@written.length - 1 + fromEnd].replace /\r?\n$/, '' # Create a dummy history file -historyFile = '.coffee_history_test' +historyFile = path.join os.tmpdir(), '.coffee_history_test' fs.writeFileSync historyFile, '1 + 2\n' testRepl = (desc, fn) -> From 86e7d56e66c1a8bc645512af1d8541ef5e4e930c Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Sat, 21 Jan 2017 01:24:08 -0800 Subject: [PATCH 05/13] Rewrite `getSourceMap` to never read a file from disk, and therefore not throw IO-related exceptions; source maps are either retrieved from memory, or the related source code is retrieved from memory to generate a new source map. Fixes #3890 the proper way. --- lib/coffee-script/coffee-script.js | 53 ++++++++++++++++-------------- src/coffee-script.coffee | 38 ++++++++++++--------- 2 files changed, 51 insertions(+), 40 deletions(-) diff --git a/lib/coffee-script/coffee-script.js b/lib/coffee-script/coffee-script.js index 4c6fb1c56e..02fa1bae76 100644 --- a/lib/coffee-script/coffee-script.js +++ b/lib/coffee-script/coffee-script.js @@ -1,6 +1,6 @@ // Generated by CoffeeScript 1.12.2 (function() { - var Lexer, SourceMap, base64encode, compile, ext, fn1, formatSourcePosition, fs, getSourceMap, helpers, i, len, lexer, packageJson, parser, path, ref, sourceMaps, vm, withPrettyErrors, + var Lexer, SourceMap, base64encode, compile, compileCode, compiledFiles, ext, fn1, formatSourcePosition, fs, getSourceMap, helpers, i, len, lexer, packageJson, parser, path, ref, sourceMaps, vm, withPrettyErrors, hasProp = {}.hasOwnProperty; fs = require('fs'); @@ -46,8 +46,8 @@ } try { return fn.call(this, code, options); - } catch (error1) { - err = error1; + } catch (error) { + err = error; if (typeof code !== 'string') { throw err; } @@ -250,8 +250,10 @@ } } + compiledFiles = {}; + exports._compileFile = function(filename, sourceMap, inlineMap) { - var answer, err, raw, stripped; + var raw, stripped; if (sourceMap == null) { sourceMap = false; } @@ -260,17 +262,29 @@ } raw = fs.readFileSync(filename, 'utf8'); stripped = raw.charCodeAt(0) === 0xFEFF ? raw.substring(1) : raw; + compiledFiles[filename] = stripped; + return compileCode(stripped, filename, sourceMap, inlineMap); + }; + + compileCode = function(code, filename, sourceMap, inlineMap) { + var answer, err; + if (sourceMap == null) { + sourceMap = false; + } + if (inlineMap == null) { + inlineMap = false; + } try { - answer = compile(stripped, { + answer = compile(code, { filename: filename, sourceMap: sourceMap, inlineMap: inlineMap, sourceFiles: [filename], literate: helpers.isLiterate(filename) }); - } catch (error1) { - err = error1; - throw helpers.updateSyntaxError(err, stripped, filename); + } catch (error) { + err = error; + throw helpers.updateSyntaxError(err, code, filename); } return answer; }; @@ -372,24 +386,15 @@ sourceMaps = {}; getSourceMap = function(filename) { - var answer, error, j, len1, ref1; - if (sourceMaps[filename]) { + var answer; + if (sourceMaps[filename] != null) { return sourceMaps[filename]; + } else if (compiledFiles[filename] != null) { + answer = compileCode(compiledFiles[filename], filename, true, false); + return sourceMaps[filename] = answer.sourceMap; + } else { + return null; } - ref1 = exports.FILE_EXTENSIONS; - for (j = 0, len1 = ref1.length; j < len1; j++) { - ext = ref1[j]; - if (helpers.ends(filename, ext)) { - try { - answer = exports._compileFile(filename, true); - return sourceMaps[filename] = answer.sourceMap; - } catch (error1) { - error = error1; - return null; - } - } - } - return null; }; Error.prepareStackTrace = function(err, stack) { diff --git a/src/coffee-script.coffee b/src/coffee-script.coffee index 105d625e8d..afba6eb7c7 100644 --- a/src/coffee-script.coffee +++ b/src/coffee-script.coffee @@ -216,12 +216,24 @@ if require.extensions Use CoffeeScript.register() or require the coffee-script/register module to require #{ext} files. """ +# For each compiled file, save its source in memory in case we need to recompile it later. +# We might need to recompile if the first compilation didn’t create a source map (faster) +# but something went wrong and we need a stack trace. Assuming that most of the time, code +# isn’t throwing exceptions, it’s probably more efficient to compile twice only when we +# need a stack trace, rather than always generating a source map even when it’s not likely +# to be used. +compiledFiles = {} + exports._compileFile = (filename, sourceMap = no, inlineMap = no) -> raw = fs.readFileSync filename, 'utf8' + # Strip the Unicode byte order mark, if this file begins with one. stripped = if raw.charCodeAt(0) is 0xFEFF then raw.substring 1 else raw + compiledFiles[filename] = stripped + compileCode stripped, filename, sourceMap, inlineMap +compileCode = (code, filename, sourceMap = no, inlineMap = no) -> try - answer = compile stripped, { + answer = compile code, { filename, sourceMap, inlineMap sourceFiles: [filename] literate: helpers.isLiterate filename @@ -230,7 +242,7 @@ exports._compileFile = (filename, sourceMap = no, inlineMap = no) -> # As the filename and code of a dynamically loaded file will be different # from the original file compiled with CoffeeScript.run, add that # information to error so it can be pretty-printed later. - throw helpers.updateSyntaxError err, stripped, filename + throw helpers.updateSyntaxError err, code, filename answer @@ -336,23 +348,17 @@ formatSourcePosition = (frame, getSourceMapping) -> else fileLocation -# Map of filenames -> sourceMap object. +# Map of filenames: sourceMap objects. sourceMaps = {} - # Generates the source map for a coffee file and stores it in the local cache variable. getSourceMap = (filename) -> - return sourceMaps[filename] if sourceMaps[filename] - for ext in exports.FILE_EXTENSIONS - if helpers.ends filename, ext - try - # `exports._compileFile` will try to open a file on disk. - answer = exports._compileFile filename, true - return sourceMaps[filename] = answer.sourceMap - catch error - # If it can’t, for example because the original file has since disappeared, - # just return null rather than throwing an exception. - return null - return null + if sourceMaps[filename]? + sourceMaps[filename] + else if compiledFiles[filename]? + answer = compileCode compiledFiles[filename], filename, yes, no + sourceMaps[filename] = answer.sourceMap + else + null # Based on [michaelficarra/CoffeeScriptRedux](http://goo.gl/ZTx1p) # NodeJS / V8 have no support for transforming positions in stack traces using From c83410b5eb7a60d01119a49d8d624e59b0350280 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Sat, 21 Jan 2017 01:40:47 -0800 Subject: [PATCH 06/13] Add test to verify that stack traces reference the correct line number. Closes #4418. --- test/error_messages.coffee | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/test/error_messages.coffee b/test/error_messages.coffee index 5047dae930..fc35539ddb 100644 --- a/test/error_messages.coffee +++ b/test/error_messages.coffee @@ -88,7 +88,7 @@ if require? test "#3890 Error.prepareStackTrace doesn't throw an error if a compiled file is deleted", -> # Adapted from https://github.com/atom/coffee-cash/blob/master/spec/coffee-cash-spec.coffee - filePath = path.join os.tmpdir(), 'file.coffee' + filePath = path.join os.tmpdir(), 'PrepareStackTraceTestFile.coffee' fs.writeFileSync filePath, "module.exports = -> throw new Error('hello world')" throwsAnError = require(filePath) fs.unlinkSync filePath @@ -103,6 +103,23 @@ if require? doesNotThrow(-> caughtError.stack) ok caughtError.stack.toString().indexOf(filePath) isnt -1 + test "#4418 stack traces reference the correct line number", -> + filePath = path.join os.tmpdir(), 'StackTraceLineNumberTestFile.coffee' + fileContents = "module.exports = ->\n" + fileContents += " line = #{i}\n" for i in [2..1337] + fileContents += " throw new Error('hello world')" + fs.writeFileSync filePath, fileContents + throwsAnError = require(filePath) + fs.unlinkSync filePath + + caughtError = null + try + throwsAnError() + catch error + caughtError = error + + ok "#{caughtError.stack.toString().indexOf(filePath)}:1339" isnt -1 + test "#1096: unexpected generated tokens", -> # Implicit ends From 51097cd897f866f28198e179fe7214231b1c3d71 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Sat, 21 Jan 2017 02:24:07 -0800 Subject: [PATCH 07/13] Get the parser working in the browser compiler again; rather than detecting a CommonJS environment generally, just check for `fs` before trying to use it --- Cakefile | 11 ++++++----- lib/coffee-script/parser.js | 7 +++++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Cakefile b/Cakefile index b84d16a6a8..f9bc2eeea9 100644 --- a/Cakefile +++ b/Cakefile @@ -87,11 +87,12 @@ task 'build:parser', 'rebuild the Jison parser (run build first)', -> require 'jison' parser = require('./lib/coffee-script/grammar').parser.generate() # Patch Jison’s output, until https://github.com/zaach/jison/pull/339 is accepted, - # to ensure that the CommonJS output is only generated in a true CommonJS - # environment and not a browser that happens to have `require` and `exports` - # defined as global variables (such as via require.js). - # CommonJS/Node.js detection method via http://stackoverflow.com/a/31090240/223225. - parser = parser.replace "if (typeof require !== 'undefined' && typeof exports !== 'undefined')", "if (typeof require !== 'undefined' && typeof exports !== 'undefined' && new Function('try{return this===global;}catch(e){return false;}')())" + # to ensure that require('fs') is only called where it exists. + parser = parser.replace "var source = require('fs')", """ + var source = null; + var fs = require('fs'); + if (typeof fs !== 'undefined' && fs !== null) + source = fs""" fs.writeFileSync 'lib/coffee-script/parser.js', parser diff --git a/lib/coffee-script/parser.js b/lib/coffee-script/parser.js index f9eaa6bd1c..887b592d55 100755 --- a/lib/coffee-script/parser.js +++ b/lib/coffee-script/parser.js @@ -864,7 +864,7 @@ return new Parser; })(); -if (typeof require !== 'undefined' && typeof exports !== 'undefined' && new Function('try{return this===global;}catch(e){return false;}')()) { +if (typeof require !== 'undefined' && typeof exports !== 'undefined') { exports.parser = parser; exports.Parser = parser.Parser; exports.parse = function () { return parser.parse.apply(parser, arguments); }; @@ -873,7 +873,10 @@ exports.main = function commonjsMain(args) { console.log('Usage: '+args[0]+' FILE'); process.exit(1); } - var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8"); + var source = null; + var fs = require('fs'); + if (typeof fs !== 'undefined' && fs !== null) + source = fs.readFileSync(require('path').normalize(args[1]), "utf8"); return exports.parser.parse(source); }; if (typeof module !== 'undefined' && require.main === module) { From 316a9f3bc5384cc1b390eafffbcebb8f947202a1 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Sat, 21 Jan 2017 11:17:10 -0800 Subject: [PATCH 08/13] =?UTF-8?q?Follow=20Node=E2=80=99s=20standard=20of?= =?UTF-8?q?=204-space=20indentation=20of=20stack=20trace=20data?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/coffee-script.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coffee-script.coffee b/src/coffee-script.coffee index afba6eb7c7..81c4caed34 100644 --- a/src/coffee-script.coffee +++ b/src/coffee-script.coffee @@ -372,6 +372,6 @@ Error.prepareStackTrace = (err, stack) -> frames = for frame in stack break if frame.getFunction() is exports.run - " at #{formatSourcePosition frame, getSourceMapping}" + " at #{formatSourcePosition frame, getSourceMapping}" "#{err.toString()}\n#{frames.join '\n'}\n" From 14876e4d39ec11cf9bd4911b5940b7b614746b4a Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Sat, 21 Jan 2017 22:55:22 -0800 Subject: [PATCH 09/13] Better .gitignore --- .gitignore | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 3749e736d4..085a712329 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,10 @@ raw presentation test.coffee +test*.coffee test.litcoffee -parser.output +test*.litcoffee test/*.js +parser.output /node_modules -npm-debug.log +npm-debug.log* From 23e9fc729ec121004d28113034fe7ae5809c2722 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Sun, 22 Jan 2017 02:34:19 -0800 Subject: [PATCH 10/13] Fix caching of compiled code and source maps; add more tests to verify correct line numbers in stack traces --- lib/coffee-script/coffee-script.js | 68 ++++++++++++------------- src/coffee-script.coffee | 79 ++++++++++++++++-------------- test/error_messages.coffee | 49 ++++++++++++------ 3 files changed, 106 insertions(+), 90 deletions(-) diff --git a/lib/coffee-script/coffee-script.js b/lib/coffee-script/coffee-script.js index 02fa1bae76..c361fb980c 100644 --- a/lib/coffee-script/coffee-script.js +++ b/lib/coffee-script/coffee-script.js @@ -1,6 +1,6 @@ // Generated by CoffeeScript 1.12.2 (function() { - var Lexer, SourceMap, base64encode, compile, compileCode, compiledFiles, ext, fn1, formatSourcePosition, fs, getSourceMap, helpers, i, len, lexer, packageJson, parser, path, ref, sourceMaps, vm, withPrettyErrors, + var Lexer, SourceMap, base64encode, compile, ext, fn1, formatSourcePosition, fs, getSourceMap, helpers, i, len, lexer, packageJson, parser, path, ref, sourceMaps, sources, vm, withPrettyErrors, hasProp = {}.hasOwnProperty; fs = require('fs'); @@ -56,11 +56,17 @@ }; }; + sources = {}; + + sourceMaps = {}; + exports.compile = compile = withPrettyErrors(function(code, options) { - var currentColumn, currentLine, encoded, extend, fragment, fragments, generateSourceMap, header, i, j, js, len, len1, map, merge, newLines, ref, ref1, sourceMapDataURI, sourceURL, token, tokens, v3SourceMap; + var currentColumn, currentLine, encoded, extend, filename, fragment, fragments, generateSourceMap, header, i, j, js, len, len1, map, merge, newLines, ref, ref1, sourceMapDataURI, sourceURL, token, tokens, v3SourceMap; merge = helpers.merge, extend = helpers.extend; options = extend({}, options); - generateSourceMap = options.sourceMap || options.inlineMap; + generateSourceMap = options.sourceMap || options.inlineMap || (options.filename == null); + filename = options.filename || '.'; + sources[filename] = code; if (generateSourceMap) { map = new SourceMap; } @@ -119,6 +125,7 @@ } if (generateSourceMap) { v3SourceMap = map.generate(options, code); + sourceMaps[filename] = map; } if (options.inlineMap) { encoded = base64encode(JSON.stringify(v3SourceMap)); @@ -157,7 +164,7 @@ mainModule = require.main; mainModule.filename = process.argv[1] = options.filename ? fs.realpathSync(options.filename) : '.'; mainModule.moduleCache && (mainModule.moduleCache = {}); - dir = options.filename ? path.dirname(fs.realpathSync(options.filename)) : fs.realpathSync('.'); + dir = options.filename != null ? path.dirname(fs.realpathSync(options.filename)) : fs.realpathSync('.'); mainModule.paths = require('module')._nodeModulePaths(dir); if (!helpers.isCoffee(mainModule.filename) || require.extensions) { answer = compile(code, options); @@ -250,10 +257,8 @@ } } - compiledFiles = {}; - exports._compileFile = function(filename, sourceMap, inlineMap) { - var raw, stripped; + var answer, err, raw, stripped; if (sourceMap == null) { sourceMap = false; } @@ -262,20 +267,8 @@ } raw = fs.readFileSync(filename, 'utf8'); stripped = raw.charCodeAt(0) === 0xFEFF ? raw.substring(1) : raw; - compiledFiles[filename] = stripped; - return compileCode(stripped, filename, sourceMap, inlineMap); - }; - - compileCode = function(code, filename, sourceMap, inlineMap) { - var answer, err; - if (sourceMap == null) { - sourceMap = false; - } - if (inlineMap == null) { - inlineMap = false; - } try { - answer = compile(code, { + answer = compile(stripped, { filename: filename, sourceMap: sourceMap, inlineMap: inlineMap, @@ -284,7 +277,7 @@ }); } catch (error) { err = error; - throw helpers.updateSyntaxError(err, code, filename); + throw helpers.updateSyntaxError(err, stripped, filename); } return answer; }; @@ -336,25 +329,25 @@ }; formatSourcePosition = function(frame, getSourceMapping) { - var as, column, fileLocation, fileName, functionName, isConstructor, isMethodCall, line, methodName, source, tp, typeName; - fileName = void 0; + var as, column, fileLocation, filename, functionName, isConstructor, isMethodCall, line, methodName, source, tp, typeName; + filename = void 0; fileLocation = ''; if (frame.isNative()) { fileLocation = "native"; } else { if (frame.isEval()) { - fileName = frame.getScriptNameOrSourceURL(); - if (!fileName) { + filename = frame.getScriptNameOrSourceURL(); + if (!filename) { fileLocation = (frame.getEvalOrigin()) + ", "; } } else { - fileName = frame.getFileName(); + filename = frame.getFileName(); } - fileName || (fileName = ""); + filename || (filename = ""); line = frame.getLineNumber(); column = frame.getColumnNumber(); - source = getSourceMapping(fileName, line, column); - fileLocation = source ? fileName + ":" + source[0] + ":" + source[1] : fileName + ":" + line + ":" + column; + source = getSourceMapping(filename, line, column); + fileLocation = source ? filename + ":" + source[0] + ":" + source[1] : filename + ":" + line + ":" + column; } functionName = frame.getFunctionName(); isConstructor = frame.isConstructor(); @@ -383,15 +376,16 @@ } }; - sourceMaps = {}; - getSourceMap = function(filename) { var answer; if (sourceMaps[filename] != null) { return sourceMaps[filename]; - } else if (compiledFiles[filename] != null) { - answer = compileCode(compiledFiles[filename], filename, true, false); - return sourceMaps[filename] = answer.sourceMap; + } else if (sources[filename] != null) { + answer = compile(sources[filename], { + filename: filename, + sourceMap: true + }); + return answer.sourceMap; } else { return null; } @@ -402,10 +396,10 @@ getSourceMapping = function(filename, line, column) { var answer, sourceMap; sourceMap = getSourceMap(filename); - if (sourceMap) { + if (sourceMap != null) { answer = sourceMap.sourceLocation([line - 1, column - 1]); } - if (answer) { + if (answer != null) { return [answer[0] + 1, answer[1] + 1]; } else { return null; @@ -419,7 +413,7 @@ if (frame.getFunction() === exports.run) { break; } - results.push(" at " + (formatSourcePosition(frame, getSourceMapping))); + results.push(" at " + (formatSourcePosition(frame, getSourceMapping))); } return results; })(); diff --git a/src/coffee-script.coffee b/src/coffee-script.coffee index 81c4caed34..8ee3f6fe5d 100644 --- a/src/coffee-script.coffee +++ b/src/coffee-script.coffee @@ -46,22 +46,38 @@ withPrettyErrors = (fn) -> throw err if typeof code isnt 'string' # Support `CoffeeScript.nodes(tokens)`. throw helpers.updateSyntaxError err, code, options.filename +# For each compiled file, save its source in memory in case we need to +# recompile it later. We might need to recompile if the first compilation +# didn’t create a source map (faster) but something went wrong and we need +# a stack trace. Assuming that most of the time, code isn’t throwing +# exceptions, it’s probably more efficient to compile twice only when we +# need a stack trace, rather than always generating a source map even when +# it’s not likely to be used. Save in form of `filename`: `(source)` +sources = {} +# Also save source maps if generated, in form of `filename`: `(source map)`. +sourceMaps = {} + # Compile CoffeeScript code to JavaScript, using the Coffee/Jison compiler. # -# If `options.sourceMap` is specified, then `options.filename` must also be specified. All -# options that can be passed to `SourceMap#generate` may also be passed here. +# If `options.sourceMap` is specified, then `options.filename` must also be +# specified. All options that can be passed to `SourceMap#generate` may also +# be passed here. # # This returns a javascript string, unless `options.sourceMap` is passed, # in which case this returns a `{js, v3SourceMap, sourceMap}` -# object, where sourceMap is a sourcemap.coffee#SourceMap object, handy for doing programatic -# lookups. +# object, where sourceMap is a sourcemap.coffee#SourceMap object, handy for +# doing programmatic lookups. exports.compile = compile = withPrettyErrors (code, options) -> {merge, extend} = helpers options = extend {}, options - generateSourceMap = options.sourceMap or options.inlineMap + # Always generate a source map if no filename is passed in, since without a + # a filename we have no way to retrieve this source later in the event that + # we need to recompile it to get a source map for `prepareStackTrace`. + generateSourceMap = options.sourceMap or options.inlineMap or not options.filename? + filename = options.filename or '.' - if generateSourceMap - map = new SourceMap + sources[filename] = code + map = new SourceMap if generateSourceMap tokens = lexer.tokenize code, options @@ -110,6 +126,7 @@ exports.compile = compile = withPrettyErrors (code, options) -> if generateSourceMap v3SourceMap = map.generate(options, code) + sourceMaps[filename] = map if options.inlineMap encoded = base64encode JSON.stringify v3SourceMap @@ -152,7 +169,7 @@ exports.run = (code, options = {}) -> mainModule.moduleCache and= {} # Assign paths for node_modules loading - dir = if options.filename + dir = if options.filename? path.dirname fs.realpathSync options.filename else fs.realpathSync '.' @@ -216,24 +233,13 @@ if require.extensions Use CoffeeScript.register() or require the coffee-script/register module to require #{ext} files. """ -# For each compiled file, save its source in memory in case we need to recompile it later. -# We might need to recompile if the first compilation didn’t create a source map (faster) -# but something went wrong and we need a stack trace. Assuming that most of the time, code -# isn’t throwing exceptions, it’s probably more efficient to compile twice only when we -# need a stack trace, rather than always generating a source map even when it’s not likely -# to be used. -compiledFiles = {} - exports._compileFile = (filename, sourceMap = no, inlineMap = no) -> raw = fs.readFileSync filename, 'utf8' # Strip the Unicode byte order mark, if this file begins with one. stripped = if raw.charCodeAt(0) is 0xFEFF then raw.substring 1 else raw - compiledFiles[filename] = stripped - compileCode stripped, filename, sourceMap, inlineMap -compileCode = (code, filename, sourceMap = no, inlineMap = no) -> try - answer = compile code, { + answer = compile stripped, { filename, sourceMap, inlineMap sourceFiles: [filename] literate: helpers.isLiterate filename @@ -242,7 +248,7 @@ compileCode = (code, filename, sourceMap = no, inlineMap = no) -> # As the filename and code of a dynamically loaded file will be different # from the original file compiled with CoffeeScript.run, add that # information to error so it can be pretty-printed later. - throw helpers.updateSyntaxError err, code, filename + throw helpers.updateSyntaxError err, stripped, filename answer @@ -298,30 +304,30 @@ parser.yy.parseError = (message, {token}) -> # Based on http://v8.googlecode.com/svn/branches/bleeding_edge/src/messages.js # Modified to handle sourceMap formatSourcePosition = (frame, getSourceMapping) -> - fileName = undefined + filename = undefined fileLocation = '' if frame.isNative() fileLocation = "native" else if frame.isEval() - fileName = frame.getScriptNameOrSourceURL() - fileLocation = "#{frame.getEvalOrigin()}, " unless fileName + filename = frame.getScriptNameOrSourceURL() + fileLocation = "#{frame.getEvalOrigin()}, " unless filename else - fileName = frame.getFileName() + filename = frame.getFileName() - fileName or= "" + filename or= "" line = frame.getLineNumber() column = frame.getColumnNumber() # Check for a sourceMap position - source = getSourceMapping fileName, line, column + source = getSourceMapping filename, line, column fileLocation = if source - "#{fileName}:#{source[0]}:#{source[1]}" + "#{filename}:#{source[0]}:#{source[1]}" else - "#{fileName}:#{line}:#{column}" + "#{filename}:#{line}:#{column}" functionName = frame.getFunctionName() isConstructor = frame.isConstructor() @@ -348,15 +354,14 @@ formatSourcePosition = (frame, getSourceMapping) -> else fileLocation -# Map of filenames: sourceMap objects. -sourceMaps = {} -# Generates the source map for a coffee file and stores it in the local cache variable. getSourceMap = (filename) -> if sourceMaps[filename]? sourceMaps[filename] - else if compiledFiles[filename]? - answer = compileCode compiledFiles[filename], filename, yes, no - sourceMaps[filename] = answer.sourceMap + else if sources[filename]? + answer = compile sources[filename], + filename: filename + sourceMap: yes + answer.sourceMap else null @@ -367,8 +372,8 @@ getSourceMap = (filename) -> Error.prepareStackTrace = (err, stack) -> getSourceMapping = (filename, line, column) -> sourceMap = getSourceMap filename - answer = sourceMap.sourceLocation [line - 1, column - 1] if sourceMap - if answer then [answer[0] + 1, answer[1] + 1] else null + answer = sourceMap.sourceLocation [line - 1, column - 1] if sourceMap? + if answer? then [answer[0] + 1, answer[1] + 1] else null frames = for frame in stack break if frame.getFunction() is exports.run diff --git a/test/error_messages.coffee b/test/error_messages.coffee index 74de1e8cbe..2123f2abd1 100644 --- a/test/error_messages.coffee +++ b/test/error_messages.coffee @@ -90,35 +90,52 @@ if require? # Adapted from https://github.com/atom/coffee-cash/blob/master/spec/coffee-cash-spec.coffee filePath = path.join os.tmpdir(), 'PrepareStackTraceTestFile.coffee' fs.writeFileSync filePath, "module.exports = -> throw new Error('hello world')" - throwsAnError = require(filePath) + throwsAnError = require filePath fs.unlinkSync filePath - caughtError = null try throwsAnError() catch error - caughtError = error - eq caughtError.message, 'hello world' - doesNotThrow(-> caughtError.stack) - ok caughtError.stack.toString().indexOf(filePath) isnt -1 + eq error.message, 'hello world' + doesNotThrow(-> error.stack) + notEqual error.stack.toString().indexOf(filePath), -1 - test "#4418 stack traces reference the correct line number", -> + test "#4418 stack traces for compiled files reference the correct line number", -> filePath = path.join os.tmpdir(), 'StackTraceLineNumberTestFile.coffee' - fileContents = "module.exports = ->\n" - fileContents += " line = #{i}\n" for i in [2..1337] - fileContents += " throw new Error('hello world')" + fileContents = """ + testCompiledFileStackTraceLineNumber = -> + # `a` on the next line is undefined and should throw a ReferenceError + console.log a if true + + do testCompiledFileStackTraceLineNumber + """ fs.writeFileSync filePath, fileContents - throwsAnError = require(filePath) - fs.unlinkSync filePath - caughtError = null try - throwsAnError() + require filePath catch error - caughtError = error + fs.unlinkSync filePath + + # Make sure the line number reported is line 3 (the original Coffee source) + # and not line 6 (the generated JavaScript). + eq /StackTraceLineNumberTestFile.coffee:(\d)/.exec(error.stack.toString())[1], '3' + + +test "#4418 stack traces for compiled strings reference the correct line number", -> + try + CoffeeScript.run """ + testCompiledStringStackTraceLineNumber = -> + # `a` on the next line is undefined and should throw a ReferenceError + console.log a if true + + do testCompiledStringStackTraceLineNumber + """ + catch error - ok "#{caughtError.stack.toString().indexOf(filePath)}:1339" isnt -1 + # Make sure the line number reported is line 3 (the original Coffee source) + # and not line 6 (the generated JavaScript). + eq /at testCompiledStringStackTraceLineNumber \(\.:(\d)/.exec(error.stack.toString())[1], '3' test "#1096: unexpected generated tokens", -> From 6f03c8a234e3a946ab469aeb58f4e3a4883ab6dd Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Sun, 22 Jan 2017 02:52:55 -0800 Subject: [PATCH 11/13] Better fallback value for the parser source --- Cakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cakefile b/Cakefile index f9bc2eeea9..61d46227b1 100644 --- a/Cakefile +++ b/Cakefile @@ -89,7 +89,7 @@ task 'build:parser', 'rebuild the Jison parser (run build first)', -> # Patch Jison’s output, until https://github.com/zaach/jison/pull/339 is accepted, # to ensure that require('fs') is only called where it exists. parser = parser.replace "var source = require('fs')", """ - var source = null; + var source = ''; var fs = require('fs'); if (typeof fs !== 'undefined' && fs !== null) source = fs""" From 27c283304ffd6875bff6998c1cd4d2fb9aacf6ca Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Sun, 22 Jan 2017 04:13:01 -0800 Subject: [PATCH 12/13] Fix the stack traces and tests when running in a browser --- lib/coffee-script/coffee-script.js | 6 ++++-- src/coffee-script.coffee | 13 +++++++++---- test/error_messages.coffee | 2 +- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/lib/coffee-script/coffee-script.js b/lib/coffee-script/coffee-script.js index c361fb980c..76914cdecd 100644 --- a/lib/coffee-script/coffee-script.js +++ b/lib/coffee-script/coffee-script.js @@ -65,7 +65,7 @@ merge = helpers.merge, extend = helpers.extend; options = extend({}, options); generateSourceMap = options.sourceMap || options.inlineMap || (options.filename == null); - filename = options.filename || '.'; + filename = options.filename || ''; sources[filename] = code; if (generateSourceMap) { map = new SourceMap; @@ -162,7 +162,7 @@ options = {}; } mainModule = require.main; - mainModule.filename = process.argv[1] = options.filename ? fs.realpathSync(options.filename) : '.'; + mainModule.filename = process.argv[1] = options.filename ? fs.realpathSync(options.filename) : ''; mainModule.moduleCache && (mainModule.moduleCache = {}); dir = options.filename != null ? path.dirname(fs.realpathSync(options.filename)) : fs.realpathSync('.'); mainModule.paths = require('module')._nodeModulePaths(dir); @@ -380,6 +380,8 @@ var answer; if (sourceMaps[filename] != null) { return sourceMaps[filename]; + } else if (sourceMaps[''] != null) { + return sourceMaps['']; } else if (sources[filename] != null) { answer = compile(sources[filename], { filename: filename, diff --git a/src/coffee-script.coffee b/src/coffee-script.coffee index 8ee3f6fe5d..b293624428 100644 --- a/src/coffee-script.coffee +++ b/src/coffee-script.coffee @@ -74,7 +74,7 @@ exports.compile = compile = withPrettyErrors (code, options) -> # a filename we have no way to retrieve this source later in the event that # we need to recompile it to get a source map for `prepareStackTrace`. generateSourceMap = options.sourceMap or options.inlineMap or not options.filename? - filename = options.filename or '.' + filename = options.filename or '' sources[filename] = code map = new SourceMap if generateSourceMap @@ -87,7 +87,7 @@ exports.compile = compile = withPrettyErrors (code, options) -> token[1] for token in tokens when token[0] is 'IDENTIFIER' ) - # Check for import or export; if found, force bare mode + # Check for import or export; if found, force bare mode. unless options.bare? and options.bare is yes for token in tokens if token[0] in ['IMPORT', 'EXPORT'] @@ -102,7 +102,7 @@ exports.compile = compile = withPrettyErrors (code, options) -> currentColumn = 0 js = "" for fragment in fragments - # Update the sourcemap with data from each fragment + # Update the sourcemap with data from each fragment. if generateSourceMap # Do not include empty, whitespace, or semicolon-only fragments. if fragment.locationData and not /^[;\s]*$/.test fragment.code @@ -163,7 +163,7 @@ exports.run = (code, options = {}) -> # Set the filename. mainModule.filename = process.argv[1] = - if options.filename then fs.realpathSync(options.filename) else '.' + if options.filename then fs.realpathSync(options.filename) else '' # Clear the module cache. mainModule.moduleCache and= {} @@ -357,6 +357,11 @@ formatSourcePosition = (frame, getSourceMapping) -> getSourceMap = (filename) -> if sourceMaps[filename]? sourceMaps[filename] + # CoffeeScript compiled in a browser may get compiled with `options.filename` + # of ``, but the browser may request the stack trace with the + # filename of the script file. + else if sourceMaps['']? + sourceMaps[''] else if sources[filename]? answer = compile sources[filename], filename: filename diff --git a/test/error_messages.coffee b/test/error_messages.coffee index 2123f2abd1..f7f4a928cd 100644 --- a/test/error_messages.coffee +++ b/test/error_messages.coffee @@ -135,7 +135,7 @@ test "#4418 stack traces for compiled strings reference the correct line number" # Make sure the line number reported is line 3 (the original Coffee source) # and not line 6 (the generated JavaScript). - eq /at testCompiledStringStackTraceLineNumber \(\.:(\d)/.exec(error.stack.toString())[1], '3' + eq /at testCompiledStringStackTraceLineNumber.*:(\d):/.exec(error.stack.toString())[1], '3' test "#1096: unexpected generated tokens", -> From f6a238411f6fc9d9bf72093d3aba516d333daf00 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Sun, 22 Jan 2017 04:24:14 -0800 Subject: [PATCH 13/13] =?UTF-8?q?Update=20the=20browser=20compiler=20so=20?= =?UTF-8?q?that=20@murrayju=20doesn=E2=80=99t=20have=20any=20extra=20work?= =?UTF-8?q?=20to=20do=20to=20test=20this=20branch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/v1/browser-compiler/coffee-script.js | 690 +++++++++++----------- docs/v1/test.html | 88 ++- 2 files changed, 431 insertions(+), 347 deletions(-) diff --git a/docs/v1/browser-compiler/coffee-script.js b/docs/v1/browser-compiler/coffee-script.js index ed37848fa7..207635622a 100644 --- a/docs/v1/browser-compiler/coffee-script.js +++ b/docs/v1/browser-compiler/coffee-script.js @@ -5,83 +5,83 @@ * Copyright 2011, Jeremy Ashkenas * Released under the MIT License */ -var $jscomp={scope:{},checkStringArgs:function(t,ya,qa){if(null==t)throw new TypeError("The 'this' value for String.prototype."+qa+" must not be null or undefined");if(ya instanceof RegExp)throw new TypeError("First argument to String.prototype."+qa+" must not be a regular expression");return t+""}}; -$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(t,ya,qa){if(qa.get||qa.set)throw new TypeError("ES3 does not support getters and setters.");t!=Array.prototype&&t!=Object.prototype&&(t[ya]=qa.value)};$jscomp.getGlobal=function(t){return"undefined"!=typeof window&&window===t?t:"undefined"!=typeof global&&null!=global?global:t};$jscomp.global=$jscomp.getGlobal(this); -$jscomp.polyfill=function(t,ya,qa,g){if(ya){qa=$jscomp.global;t=t.split(".");for(g=0;gt||1342177279>>=1)qa+=qa;return g}},"es6-impl","es3");$jscomp.findInternal=function(t,ya,qa){t instanceof String&&(t=String(t));for(var g=t.length,va=0;va>>=1,a+=a;return f};g.compact=function(a){var f,c,g,D;D=[];f=0;for(g=a.length;fu||1342177279>>=1)qa+=qa;return g}},"es6-impl","es3");$jscomp.findInternal=function(u,ya,qa){u instanceof String&&(u=String(u));for(var g=u.length,ua=0;ua>>=1,a+=a;return f};g.compact=function(a){var f,c,g,q;q=[];f=0;for(g=a.length;fk)return g.call(this,n,f-1);(L=n[0],0<=u.call(c,L))?k+=1:(I=n[0],0<=u.call(a,I))&&--k;f+=1}return f-1};h.prototype.removeLeadingNewlines=function(){var a,c,f,k,h;k=this.tokens;a=c=0;for(f=k.length;cg;f=0<=g?++k:--k){for(;"HERECOMMENT"===this.tag(c+f+a);)a+=2;if(null!=h[f]&&("string"===typeof h[f]&&(h[f]=[h[f]]),n=this.tag(c+f+a),0>u.call(h[f],n)))return-1}return c+f+a-1};h.prototype.looksObjectish=function(f){var h;if(-1u.call(h,z))&&((n=this.tag(f),0>u.call(c,n))||this.tokens[f].generated)&&(l=this.tag(f),0>u.call(F,l)));)(k=this.tag(f),0<=u.call(a,k))&&g.push(this.tag(f)),(L=this.tag(f),0<=u.call(c, -L))&&g.length&&g.pop(),--f;return m=this.tag(f),0<=u.call(h,m)};h.prototype.addImplicitBracesAndParens=function(){var h,g;h=[];g=null;return this.scanTokens(function(l,k,z){var L,n,r,D,I,M,w,G,B,A,x,C,y,E,t,H,N,J;J=l[0];A=(x=0u.call(a,c):return g[1]; -case "@"!==this.tag(k-2):return k-2;default:return k-1}}.call(this);"HERECOMMENT"===this.tag(n-2);)n-=2;this.insideForDeclaration="FOR"===B;M=0===n||(E=this.tag(n-1),0<=u.call(F,E))||z[n-1].newLine;if(t()&&(w=t(),E=w[0],x=w[1],("{"===E||"INDENT"===E&&"{"===this.tag(x-1))&&(M||","===this.tag(n-1)||"{"===this.tag(n-1))))return r(1);G(n,!!M);return r(2)}w()&&0<=u.call(F,J)&&(t()[2].sameLine=!1);G="OUTDENT"===A||x.newLine;if(0<=u.call(f,J)||0<=u.call(xa,J)&&G)for(;D();)if(G=t(),E=G[0],x=G[1],E=G[2],G= -E.sameLine,M=E.startsLine,I()&&","!==A)L();else if(w()&&!this.insideForDeclaration&&G&&"TERMINATOR"!==J&&":"!==A)n();else if(!w()||"TERMINATOR"!==J||","===A||M&&this.looksObjectish(k+1))break;else{if("HERECOMMENT"===B)return r(1);n()}if(!(","!==J||this.looksObjectish(k+1)||!w()||this.insideForDeclaration||"TERMINATOR"===B&&this.looksObjectish(k+2)))for(B="OUTDENT"===B?1:0;w();)n(k+B);return r(1)})};h.prototype.addLocationDataToGeneratedTokens=function(){return this.scanTokens(function(a,c,f){var h, -g,u;if(a[2]||!a.generated&&!a.explicit)return 1;"{"===a[0]&&(h=null!=(u=f[c+1])?u[2]:void 0)?(g=h.first_line,h=h.first_column):(h=null!=(g=f[c-1])?g[2]:void 0)?(g=h.last_line,h=h.last_column):g=h=0;a[2]={first_line:g,first_column:h,last_line:g,last_column:h};return 1})};h.prototype.fixOutdentLocationData=function(){return this.scanTokens(function(a,c,f){if(!("OUTDENT"===a[0]||a.generated&&"CALL_END"===a[0]||a.generated&&"}"===a[0]))return 1;c=f[c-1][2];a[2]={first_line:c.last_line,first_column:c.last_column, -last_line:c.last_line,last_column:c.last_column};return 1})};h.prototype.normalizeLines=function(){var a,c,f,h,g;g=f=h=null;c=function(a,c){var f,h,k,n;return";"!==a[1]&&(f=a[0],0<=u.call(x,f))&&!("TERMINATOR"===a[0]&&(h=this.tag(c+1),0<=u.call(D,h)))&&!("ELSE"===a[0]&&"THEN"!==g)&&!!("CATCH"!==(k=a[0])&&"FINALLY"!==k||"-\x3e"!==g&&"\x3d\x3e"!==g)||(n=a[0],0<=u.call(xa,n))&&this.tokens[c-1].newLine};a=function(a,c){return this.tokens.splice(","===this.tag(c-1)?c-1:c,0,h)};return this.scanTokens(function(k, -n,l){var z,m,p;k=k[0];if("TERMINATOR"===k){if("ELSE"===this.tag(n+1)&&"OUTDENT"!==this.tag(n-1))return l.splice.apply(l,[n,1].concat(w.call(this.indentation()))),1;if(z=this.tag(n+1),0<=u.call(D,z))return l.splice(n,1),0}if("CATCH"===k)for(z=m=1;2>=m;z=++m)if("OUTDENT"===(p=this.tag(n+z))||"TERMINATOR"===p||"FINALLY"===p)return l.splice.apply(l,[n+z,0].concat(w.call(this.indentation()))),2+z;0<=u.call(y,k)&&"INDENT"!==this.tag(n+1)&&("ELSE"!==k||"IF"!==this.tag(n+1))&&(g=k,p=this.indentation(l[n]), -f=p[0],h=p[1],"THEN"===g&&(f.fromThen=!0),l.splice(n+1,0,f),this.detectEnd(n+2,c,a),"THEN"===k&&l.splice(n,1));return 1})};h.prototype.tagPostfixConditionals=function(){var a,c,f;f=null;c=function(a,c){a=a[0];c=this.tokens[c-1][0];return"TERMINATOR"===a||"INDENT"===a&&0>u.call(y,c)};a=function(a,c){if("INDENT"!==a[0]||a.generated&&!a.fromThen)return f[0]="POST_"+f[0]};return this.scanTokens(function(h,g){if("IF"!==h[0])return 1;f=h;this.detectEnd(g+1,c,a);return 1})};h.prototype.indentation=function(a){var c, -f;c=["INDENT",2];f=["OUTDENT",2];a?(c.generated=f.generated=!0,c.origin=f.origin=a):c.explicit=f.explicit=!0;return[c,f]};h.prototype.generate=v;h.prototype.tag=function(a){var c;return null!=(c=this.tokens[a])?c[0]:void 0};return h}();t=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"],["STRING_START","STRING_END"],["REGEX_START","REGEX_END"]];g.INVERSES=H={};c=[];a=[];E=0;for(l=t.length;Ethis.indent){if(a)return this.indebt=f-this.indent,this.suppressNewlines(),c.length;if(!this.tokens.length)return this.baseIndent= -this.indent=f,c.length;a=f-this.indent+this.outdebt;this.token("INDENT",a,c.length-f,f);this.indents.push(a);this.ends.push({tag:"OUTDENT"});this.outdebt=this.indebt=0;this.indent=f}else fk&&(n=this.token("+","+"),n[2]={first_line:m[2].first_line,first_column:m[2].first_column,last_line:m[2].first_line, -last_column:m[2].first_column});(r=this.tokens).push.apply(r,w)}if(D)return a=a[a.length-1],D.origin=["STRING",null,{first_line:D[2].first_line,first_column:D[2].first_column,last_line:a[2].last_line,last_column:a[2].last_column}],D=this.token("STRING_END",")"),D[2]={first_line:a[2].last_line,first_column:a[2].last_column,last_line:a[2].last_line,last_column:a[2].last_column}};g.prototype.pair=function(a){var c;c=this.ends;c=c[c.length-1];return a!==(c=null!=c?c.tag:void 0)?("OUTDENT"!==c&&this.error("unmatched "+ -a),c=this.indents,c=c[c.length-1],this.outdentToken(c,!0),this.pair(a)):this.ends.pop()};g.prototype.getLineAndColumnFromChunk=function(a){var c,f;if(0===a)return[this.chunkLine,this.chunkColumn];f=a>=this.chunk.length?this.chunk:this.chunk.slice(0,+(a-1)+1||9E9);a=fa(f,"\n");c=this.chunkColumn;0 -ea.call(ma.call(z).concat(ma.call(Ca)),a):return"keyword '"+c+"' can't be assigned";case 0>ea.call(Z,a):return"'"+c+"' can't be assigned";case 0>ea.call(X,a):return"reserved word '"+c+"' can't be assigned";default:return!1}};g.isUnassignable=la;ia=function(a){var c;return"IDENTIFIER"===a[0]?("from"===a[1]&&(a[1][0]="IDENTIFIER",!0),!0):"FOR"===a[0]?!1:"{"===(c=a[1])||"["===c||","===c||":"===c?!1:!0};z="true false null this new delete typeof in instanceof return throw break continue debugger yield if else switch for while do try catch finally class extends super import export default".split(" "); -Ca="undefined Infinity NaN then unless until loop of by when".split(" ");c={and:"\x26\x26",or:"||",is:"\x3d\x3d",isnt:"!\x3d",not:"!",yes:"true",no:"false",on:"true",off:"false"};a=function(){var a;a=[];for(oa in c)a.push(oa);return a}();Ca=Ca.concat(a);X="case function var void with const let enum native implements interface package private protected public static".split(" ");Z=["arguments","eval"];g.JS_FORBIDDEN=z.concat(X).concat(Z);va=65279;l=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+)([^\n\S]*:(?!:))?/; -V=/^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i;U=/^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/;da=/^[^\n\S]+/;f=/^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/;D=/^[-=]>/;n=/^(?:\n[^\n\S]*)+/;L=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/;N=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/;ca=/^(?:'''|"""|'|")/;J=/^(?:[^\\']|\\[\s\S])*/;W=/^(?:[^\\"#]|\\[\s\S]|\#(?!\{))*/;y=/^(?:[^\\']|\\[\s\S]|'(?!''))*/;F=/^(?:[^\\"#]|\\[\s\S]|"(?!"")|\#(?!\{))*/;aa= -/((?:\\\\)+)|\\[^\S\n]*\n\s*/g;Y=/\s*\n\s*/g;x=/\n+([^\n\S]*)(?=\S)/g;ba=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/;S=/^\w*/;ka=/^(?!.*(.).*\1)[imgy]*$/;v=/^(?:[^\\\/#]|\\[\s\S]|\/(?!\/\/)|\#(?!\{))*/;E=/((?:\\\\)+)|\\(\s)|\s+(?:#.*)?/g;B=/^(\/|\/{3}\s*)(\*)/;Q=/^\/=?\s/;H=/\*\//;M=/^\s*(?:,|\??\.(?![.\d])|::)/;w=/((?:^|[^\\])(?:\\\\)*)\\(?:(0[0-7]|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u(?![\da-fA-F]{4}).{0,4}))/;I=/^[^\n\S]*\n/;R=/\n[^\n\S]*$/;qa=/\s+$/;m="-\x3d +\x3d /\x3d *\x3d %\x3d ||\x3d \x26\x26\x3d ?\x3d \x3c\x3c\x3d \x3e\x3e\x3d \x3e\x3e\x3e\x3d \x26\x3d ^\x3d |\x3d **\x3d //\x3d %%\x3d".split(" "); -ya=["NEW","TYPEOF","DELETE","DO"];Wa=["!","~"];O=["\x3c\x3c","\x3e\x3e","\x3e\x3e\x3e"];p="\x3d\x3d !\x3d \x3c \x3e \x3c\x3d \x3e\x3d".split(" ");P=["*","/","%","//","%%"];A=["IN","OF","INSTANCEOF"];xa="IDENTIFIER PROPERTY ) ] ? @ THIS SUPER".split(" ");u=xa.concat("NUMBER INFINITY NAN STRING STRING_END REGEX REGEX_END BOOL NULL UNDEFINED } ::".split(" "));r=u.concat(["++","--"]);k=["INDENT","OUTDENT","TERMINATOR"];h=[")","}","]"]}).call(this);return g}();t["./parser"]=function(){var g={},va={exports:g}, -xa=function(){function g(){this.yy={}}var a=function(a,q,pa,b){pa=pa||{};for(b=a.length;b--;pa[a[b]]=q);return pa},c=[1,22],t=[1,25],f=[1,83],p=[1,79],m=[1,84],H=[1,85],F=[1,81],x=[1,82],y=[1,56],v=[1,58],E=[1,59],N=[1,60],l=[1,61],h=[1,62],u=[1,49],w=[1,50],G=[1,32],L=[1,68],z=[1,69],I=[1,78],k=[1,47],M=[1,51],P=[1,52],n=[1,67],r=[1,65],V=[1,66],U=[1,64],Q=[1,42],ba=[1,48],S=[1,63],B=[1,73],A=[1,74],X=[1,75],C=[1,76],O=[1,46],Y=[1,72],Z=[1,34],W=[1,35],aa=[1,36],J=[1,37],ca=[1,38],R=[1,39],xa=[1, -86],va=[1,6,32,42,131],qa=[1,101],ka=[1,89],da=[1,88],fa=[1,87],ha=[1,90],ia=[1,91],la=[1,92],oa=[1,93],K=[1,94],ja=[1,95],ra=[1,96],ea=[1,97],ma=[1,98],sa=[1,99],T=[1,100],ya=[1,104],ta=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Ia=[2,165],Sa=[1,110],Ga=[1,111],Ta=[1,112],Fa=[1,113],Oa=[1,115],Pa=[1,116],La=[1,109],za=[1,6,32,42,131,133,135,139,156],na=[2,27],ga=[1,123],Ha=[1,121],Aa=[1,6,31,32,40,41,42,65,70,73,82, -83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Xa=[2,94],b=[1,6,31,32,42,46,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],q=[2,73],pa=[1,128],e=[1,133],d=[1,134],wa=[1,136],Ma=[1,6,31,32,40,41,42,55,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173, -174],ua=[2,91],Gb=[1,6,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],ab=[2,63],Hb=[1,166],bb=[1,178],Va=[1,180],Ib=[1,175],Na=[1,182],ub=[1,184],Ja=[1,6,31,32,40,41,42,55,65,70,73,82,83,84,85,87,89,90,94,96,113,114,115,120,122,131,133,134,135,139,140,156,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],Jb=[2,110],Kb=[1,6,31,32,40,41,42,58,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135, -139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Lb=[1,6,31,32,40,41,42,46,58,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Mb=[40,41,114],Nb=[1,241],vb=[1,240],Ka=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156],Ea=[2,71],Ob=[1,250],Ua=[6,31,32,65,70],hb=[6,31,32,55,65,70,73],cb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,164,166,167, -168,169,170,171,172,173,174],Pb=[40,41,82,83,84,85,87,90,113,114],ib=[1,269],db=[2,62],jb=[1,279],Ya=[1,281],wb=[1,286],eb=[1,288],Qb=[2,186],xb=[1,6,31,32,40,41,42,55,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,146,147,148,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],kb=[1,297],Qa=[6,31,32,70,115,120],Rb=[1,6,31,32,40,41,42,55,58,65,70,73,82,83,84,85,87,89,90,94,96,113,114,115,120,122,131,133,134,135,139,140,146,147,148,156,159,160,161,162,163,164, -165,166,167,168,169,170,171,172,173,174,175],Sb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,140,156],Za=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,134,140,156],lb=[146,147,148],mb=[70,146,147,148],nb=[6,31,94],Tb=[1,311],Ba=[6,31,32,70,94],Ub=[6,31,32,58,70,94],yb=[6,31,32,55,58,70,94],Vb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,166,167,168,169,170,171,172,173,174],Wb=[12,28,34,38,40,41,44,45,48,49,50,51,52,53,61,62,63,67,68,89,92,95,97,105,112,117,118,119,125, -129,130,133,135,137,139,149,155,157,158,159,160,161,162],Xb=[2,175],Ra=[6,31,32],fb=[2,72],Yb=[1,323],Zb=[1,324],$b=[1,6,31,32,42,65,70,73,89,94,115,120,122,127,128,131,133,134,135,139,140,151,153,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],ob=[32,151,153],ac=[1,6,32,42,65,70,73,89,94,115,120,122,131,134,140,156],pb=[1,350],zb=[1,356],Ab=[1,6,32,42,131,156],gb=[2,86],qb=[1,366],rb=[1,367],bc=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,151,156,159,160,163,164, -165,166,167,168,169,170,171,172,173,174],Bb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,135,139,140,156],cc=[1,380],dc=[1,381],Cb=[6,31,32,94],ec=[6,31,32,70],Db=[1,6,31,32,42,65,70,73,89,94,115,120,122,127,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],fc=[31,70],sb=[1,407],tb=[1,408],Eb=[1,414],Fb=[1,415],gc={trace:function(){},yy:{},symbols_:{error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,YieldReturn:9,Return:10,Comment:11,STATEMENT:12, +c,g){a.toString===Ca&&(a.code||(a.code=c),a.filename||(a.filename=g),a.stack=a.toString());return a};Ca=function(){var a,g,l,q,G,F,x,v,M,u;if(!this.code||!this.location)return Error.prototype.toString.call(this);a=this.location;F=a.first_line;G=a.first_column;l=a.last_line;x=a.last_column;null==l&&(l=F);null==x&&(x=G);q=this.filename||"[stdin]";a=this.code.split("\n")[F];l=F===l?x+1:a.length;x=a.slice(0,G).replace(/[^\s]/g," ")+c("^",l-G);"undefined"!==typeof process&&null!==process&&(g=(null!=(v= +process.stdout)?v.isTTY:void 0)&&!(null!=(M=process.env)&&M.NODE_DISABLE_COLORS));if(null!=(u=this.colorful)?u:g)g=function(a){return"\u001b[1;31m"+a+"\u001b[0m"},a=a.slice(0,G)+g(a.slice(G,l))+a.slice(l),x=g(x);return q+":"+(F+1)+":"+(G+1)+": error: "+this.message+"\n"+a+"\n"+x};g.nameWhitespaceCharacter=function(a){switch(a){case " ":return"space";case "\n":return"newline";case "\r":return"carriage return";case "\t":return"tab";default:return a}}}).call(this);return g}();u["./rewriter"]=function(){var g= +{};(function(){var u,xa,q,a,c,Ca,f,D,l,w,G,F,x,v,M,N,J,r,E=[].indexOf||function(a){for(var c=0,f=this.length;ch)return p.call(this,g,m-1);(t=g[0],0<=E.call(c,t))?h+=1:(k=g[0],0<=E.call(a,k))&&--h;m+=1}return m-1};k.prototype.removeLeadingNewlines=function(){var a,c,f,h,y;h=this.tokens;a=c=0;for(f=h.length;ck;f=0<=k?++h:--h){for(;"HERECOMMENT"===this.tag(c+f+a);)a+=2;if(null!=g[f]&&("string"===typeof g[f]&&(g[f]=[g[f]]),A=this.tag(c+f+a),0>E.call(g[f],A)))return-1}return c+f+a-1};k.prototype.looksObjectish=function(f){var m;if(-1E.call(g,t))&&((A=this.tag(f),0>E.call(c,A))||this.tokens[f].generated)&&(H=this.tag(f),0>E.call(G,H)));)(h=this.tag(f),0<=E.call(a,h))&&m.push(this.tag(f)),(k=this.tag(f),0<=E.call(c, +k))&&m.length&&m.pop(),--f;return l=this.tag(f),0<=E.call(g,l)};k.prototype.addImplicitBracesAndParens=function(){var m,g;m=[];g=null;return this.scanTokens(function(k,h,t){var p,A,y,q,r,I,w,x,z,B,u,C,M,F,J,N,O,K;K=k[0];B=(u=0E.call(a,c):return g[1]; +case "@"!==this.tag(h-2):return h-2;default:return h-1}}.call(this);"HERECOMMENT"===this.tag(A-2);)A-=2;this.insideForDeclaration="FOR"===z;I=0===A||(F=this.tag(A-1),0<=E.call(G,F))||t[A-1].newLine;if(J()&&(w=J(),F=w[0],u=w[1],("{"===F||"INDENT"===F&&"{"===this.tag(u-1))&&(I||","===this.tag(A-1)||"{"===this.tag(A-1))))return y(1);x(A,!!I);return y(2)}w()&&0<=E.call(G,K)&&(J()[2].sameLine=!1);x="OUTDENT"===B||u.newLine;if(0<=E.call(f,K)||0<=E.call(xa,K)&&x)for(;q();)if(x=J(),F=x[0],u=x[1],F=x[2],x= +F.sameLine,I=F.startsLine,r()&&","!==B)p();else if(w()&&!this.insideForDeclaration&&x&&"TERMINATOR"!==K&&":"!==B)A();else if(!w()||"TERMINATOR"!==K||","===B||I&&this.looksObjectish(h+1))break;else{if("HERECOMMENT"===z)return y(1);A()}if(!(","!==K||this.looksObjectish(h+1)||!w()||this.insideForDeclaration||"TERMINATOR"===z&&this.looksObjectish(h+2)))for(z="OUTDENT"===z?1:0;w();)A(h+z);return y(1)})};k.prototype.addLocationDataToGeneratedTokens=function(){return this.scanTokens(function(a,c,f){var h, +m,g;if(a[2]||!a.generated&&!a.explicit)return 1;"{"===a[0]&&(h=null!=(g=f[c+1])?g[2]:void 0)?(m=h.first_line,h=h.first_column):(h=null!=(m=f[c-1])?m[2]:void 0)?(m=h.last_line,h=h.last_column):m=h=0;a[2]={first_line:m,first_column:h,last_line:m,last_column:h};return 1})};k.prototype.fixOutdentLocationData=function(){return this.scanTokens(function(a,c,f){if(!("OUTDENT"===a[0]||a.generated&&"CALL_END"===a[0]||a.generated&&"}"===a[0]))return 1;c=f[c-1][2];a[2]={first_line:c.last_line,first_column:c.last_column, +last_line:c.last_line,last_column:c.last_column};return 1})};k.prototype.normalizeLines=function(){var a,c,f,h,g;g=f=h=null;c=function(a,c){var f,h,m,k;return";"!==a[1]&&(f=a[0],0<=E.call(F,f))&&!("TERMINATOR"===a[0]&&(h=this.tag(c+1),0<=E.call(q,h)))&&!("ELSE"===a[0]&&"THEN"!==g)&&!!("CATCH"!==(m=a[0])&&"FINALLY"!==m||"-\x3e"!==g&&"\x3d\x3e"!==g)||(k=a[0],0<=E.call(xa,k))&&this.tokens[c-1].newLine};a=function(a,c){return this.tokens.splice(","===this.tag(c-1)?c-1:c,0,h)};return this.scanTokens(function(m, +k,t){var p,y,l;m=m[0];if("TERMINATOR"===m){if("ELSE"===this.tag(k+1)&&"OUTDENT"!==this.tag(k-1))return t.splice.apply(t,[k,1].concat(O.call(this.indentation()))),1;if(p=this.tag(k+1),0<=E.call(q,p))return t.splice(k,1),0}if("CATCH"===m)for(p=y=1;2>=y;p=++y)if("OUTDENT"===(l=this.tag(k+p))||"TERMINATOR"===l||"FINALLY"===l)return t.splice.apply(t,[k+p,0].concat(O.call(this.indentation()))),2+p;0<=E.call(x,m)&&"INDENT"!==this.tag(k+1)&&("ELSE"!==m||"IF"!==this.tag(k+1))&&(g=m,l=this.indentation(t[k]), +f=l[0],h=l[1],"THEN"===g&&(f.fromThen=!0),t.splice(k+1,0,f),this.detectEnd(k+2,c,a),"THEN"===m&&t.splice(k,1));return 1})};k.prototype.tagPostfixConditionals=function(){var a,c,f;f=null;c=function(a,c){a=a[0];c=this.tokens[c-1][0];return"TERMINATOR"===a||"INDENT"===a&&0>E.call(x,c)};a=function(a,c){if("INDENT"!==a[0]||a.generated&&!a.fromThen)return f[0]="POST_"+f[0]};return this.scanTokens(function(h,m){if("IF"!==h[0])return 1;f=h;this.detectEnd(m+1,c,a);return 1})};k.prototype.indentation=function(a){var c, +f;c=["INDENT",2];f=["OUTDENT",2];a?(c.generated=f.generated=!0,c.origin=f.origin=a):c.explicit=f.explicit=!0;return[c,f]};k.prototype.generate=v;k.prototype.tag=function(a){var c;return null!=(c=this.tokens[a])?c[0]:void 0};return k}();u=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"],["STRING_START","STRING_END"],["REGEX_START","REGEX_END"]];g.INVERSES=w={};c=[];a=[];M=0;for(J=u.length;Mthis.indent){if(a)return this.indebt=f-this.indent,this.suppressNewlines(),c.length;if(!this.tokens.length)return this.baseIndent= +this.indent=f,c.length;a=f-this.indent+this.outdebt;this.token("INDENT",a,c.length-f,f);this.indents.push(a);this.ends.push({tag:"OUTDENT"});this.outdebt=this.indebt=0;this.indent=f}else fk&&(m=this.token("+","+"),m[2]={first_line:l[2].first_line,first_column:l[2].first_column,last_line:l[2].first_line, +last_column:l[2].first_column});(y=this.tokens).push.apply(y,A)}if(r)return a=a[a.length-1],r.origin=["STRING",null,{first_line:r[2].first_line,first_column:r[2].first_column,last_line:a[2].last_line,last_column:a[2].last_column}],r=this.token("STRING_END",")"),r[2]={first_line:a[2].last_line,first_column:a[2].last_column,last_line:a[2].last_line,last_column:a[2].last_column}};g.prototype.pair=function(a){var c;c=this.ends;c=c[c.length-1];return a!==(c=null!=c?c.tag:void 0)?("OUTDENT"!==c&&this.error("unmatched "+ +a),c=this.indents,c=c[c.length-1],this.outdentToken(c,!0),this.pair(a)):this.ends.pop()};g.prototype.getLineAndColumnFromChunk=function(a){var c,f;if(0===a)return[this.chunkLine,this.chunkColumn];f=a>=this.chunk.length?this.chunk:this.chunk.slice(0,+(a-1)+1||9E9);a=ea(f,"\n");c=this.chunkColumn;0 +da.call(ma.call(t).concat(ma.call(Ca)),a):return"keyword '"+c+"' can't be assigned";case 0>da.call(Y,a):return"'"+c+"' can't be assigned";case 0>da.call(W,a):return"reserved word '"+c+"' can't be assigned";default:return!1}};g.isUnassignable=la;ha=function(a){var c;return"IDENTIFIER"===a[0]?("from"===a[1]&&(a[1][0]="IDENTIFIER",!0),!0):"FOR"===a[0]?!1:"{"===(c=a[1])||"["===c||","===c||":"===c?!1:!0};t="true false null this new delete typeof in instanceof return throw break continue debugger yield if else switch for while do try catch finally class extends super import export default".split(" "); +Ca="undefined Infinity NaN then unless until loop of by when".split(" ");c={and:"\x26\x26",or:"||",is:"\x3d\x3d",isnt:"!\x3d",not:"!",yes:"true",no:"false",on:"true",off:"false"};a=function(){var a;a=[];for(pa in c)a.push(pa);return a}();Ca=Ca.concat(a);W="case function var void with const let enum native implements interface package private protected public static".split(" ");Y=["arguments","eval"];g.JS_FORBIDDEN=t.concat(W).concat(Y);ua=65279;J=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+)([^\n\S]*:(?!:))?/; +U=/^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i;T=/^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/;ca=/^[^\n\S]+/;f=/^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/;q=/^[-=]>/;A=/^(?:\n[^\n\S]*)+/;m=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/;N=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/;ba=/^(?:'''|"""|'|")/;K=/^(?:[^\\']|\\[\s\S])*/;V=/^(?:[^\\"#]|\\[\s\S]|\#(?!\{))*/;x=/^(?:[^\\']|\\[\s\S]|'(?!''))*/;G=/^(?:[^\\"#]|\\[\s\S]|"(?!"")|\#(?!\{))*/;Z=/((?:\\\\)+)|\\[^\S\n]*\n\s*/g; +X=/\s*\n\s*/g;F=/\n+([^\n\S]*)(?=\S)/g;aa=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/;S=/^\w*/;ka=/^(?!.*(.).*\1)[imgy]*$/;v=/^(?:[^\\\/#]|\\[\s\S]|\/(?!\/\/)|\#(?!\{))*/;M=/((?:\\\\)+)|\\(\s)|\s+(?:#.*)?/g;z=/^(\/|\/{3}\s*)(\*)/;I=/^\/=?\s/;w=/\*\//;y=/^\s*(?:,|\??\.(?![.\d])|::)/;O=/((?:^|[^\\])(?:\\\\)*)\\(?:(0[0-7]|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u(?![\da-fA-F]{4}).{0,4}))/;p=/^[^\n\S]*\n/;R=/\n[^\n\S]*$/;qa=/\s+$/;l="-\x3d +\x3d /\x3d *\x3d %\x3d ||\x3d \x26\x26\x3d ?\x3d \x3c\x3c\x3d \x3e\x3e\x3d \x3e\x3e\x3e\x3d \x26\x3d ^\x3d |\x3d **\x3d //\x3d %%\x3d".split(" "); +ya=["NEW","TYPEOF","DELETE","DO"];Xa=["!","~"];Q=["\x3c\x3c","\x3e\x3e","\x3e\x3e\x3e"];D="\x3d\x3d !\x3d \x3c \x3e \x3c\x3d \x3e\x3d".split(" ");P=["*","/","%","//","%%"];B=["IN","OF","INSTANCEOF"];xa="IDENTIFIER PROPERTY ) ] ? @ THIS SUPER".split(" ");E=xa.concat("NUMBER INFINITY NAN STRING STRING_END REGEX REGEX_END BOOL NULL UNDEFINED } ::".split(" "));H=E.concat(["++","--"]);h=["INDENT","OUTDENT","TERMINATOR"];r=[")","}","]"]}).call(this);return g}();u["./parser"]=function(){var g={},ua={exports:g}, +xa=function(){function g(){this.yy={}}var a=function(a,n,na,b){na=na||{};for(b=a.length;b--;na[a[b]]=n);return na},c=[1,22],u=[1,25],f=[1,83],D=[1,79],l=[1,84],w=[1,85],G=[1,81],F=[1,82],x=[1,56],v=[1,58],M=[1,59],N=[1,60],J=[1,61],r=[1,62],E=[1,49],O=[1,50],k=[1,32],m=[1,68],t=[1,69],p=[1,78],h=[1,47],y=[1,51],P=[1,52],A=[1,67],H=[1,65],U=[1,66],T=[1,64],I=[1,42],aa=[1,48],S=[1,63],z=[1,73],B=[1,74],W=[1,75],C=[1,76],Q=[1,46],X=[1,72],Y=[1,34],V=[1,35],Z=[1,36],K=[1,37],ba=[1,38],R=[1,39],xa=[1, +86],ua=[1,6,32,42,131],qa=[1,101],ka=[1,89],ca=[1,88],ea=[1,87],ga=[1,90],ha=[1,91],la=[1,92],pa=[1,93],L=[1,94],ja=[1,95],ra=[1,96],da=[1,97],ma=[1,98],sa=[1,99],ia=[1,100],ya=[1,104],ta=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Ja=[2,165],Ta=[1,110],Ga=[1,111],Ua=[1,112],Fa=[1,113],Pa=[1,115],Qa=[1,116],Na=[1,109],za=[1,6,32,42,131,133,135,139,156],oa=[2,27],fa=[1,123],Ha=[1,121],Aa=[1,6,31,32,40,41,42,65,70,73, +82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Ia=[2,94],b=[1,6,31,32,42,46,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],n=[2,73],na=[1,128],e=[1,133],d=[1,134],va=[1,136],Ka=[1,6,31,32,40,41,42,55,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172, +173,174],wa=[2,91],Gb=[1,6,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],ab=[2,63],Hb=[1,166],bb=[1,178],Wa=[1,180],Ib=[1,175],Oa=[1,182],ub=[1,184],La=[1,6,31,32,40,41,42,55,65,70,73,82,83,84,85,87,89,90,94,96,113,114,115,120,122,131,133,134,135,139,140,156,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],Jb=[2,110],Kb=[1,6,31,32,40,41,42,58,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134, +135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Lb=[1,6,31,32,40,41,42,46,58,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Mb=[40,41,114],Nb=[1,241],vb=[1,240],Ma=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156],Ea=[2,71],Ob=[1,250],Va=[6,31,32,65,70],hb=[6,31,32,55,65,70,73],cb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,164,166, +167,168,169,170,171,172,173,174],Pb=[40,41,82,83,84,85,87,90,113,114],ib=[1,269],db=[2,62],jb=[1,279],Ya=[1,281],wb=[1,286],eb=[1,288],Qb=[2,186],xb=[1,6,31,32,40,41,42,55,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,146,147,148,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],kb=[1,297],Ra=[6,31,32,70,115,120],Rb=[1,6,31,32,40,41,42,55,58,65,70,73,82,83,84,85,87,89,90,94,96,113,114,115,120,122,131,133,134,135,139,140,146,147,148,156,159,160,161,162,163, +164,165,166,167,168,169,170,171,172,173,174,175],Sb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,140,156],Za=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,134,140,156],lb=[146,147,148],mb=[70,146,147,148],nb=[6,31,94],Tb=[1,311],Ba=[6,31,32,70,94],Ub=[6,31,32,58,70,94],yb=[6,31,32,55,58,70,94],Vb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,166,167,168,169,170,171,172,173,174],Wb=[12,28,34,38,40,41,44,45,48,49,50,51,52,53,61,62,63,67,68,89,92,95,97,105,112,117,118,119, +125,129,130,133,135,137,139,149,155,157,158,159,160,161,162],Xb=[2,175],Sa=[6,31,32],fb=[2,72],Yb=[1,323],Zb=[1,324],$b=[1,6,31,32,42,65,70,73,89,94,115,120,122,127,128,131,133,134,135,139,140,151,153,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],ob=[32,151,153],ac=[1,6,32,42,65,70,73,89,94,115,120,122,131,134,140,156],pb=[1,350],zb=[1,356],Ab=[1,6,32,42,131,156],gb=[2,86],qb=[1,366],rb=[1,367],bc=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,151,156,159,160,163, +164,165,166,167,168,169,170,171,172,173,174],Bb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,135,139,140,156],cc=[1,380],dc=[1,381],Cb=[6,31,32,94],ec=[6,31,32,70],Db=[1,6,31,32,42,65,70,73,89,94,115,120,122,127,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],fc=[31,70],sb=[1,407],tb=[1,408],Eb=[1,414],Fb=[1,415],gc={trace:function(){},yy:{},symbols_:{error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,YieldReturn:9,Return:10,Comment:11,STATEMENT:12, Import:13,Export:14,Value:15,Invocation:16,Code:17,Operation:18,Assign:19,If:20,Try:21,While:22,For:23,Switch:24,Class:25,Throw:26,Yield:27,YIELD:28,FROM:29,Block:30,INDENT:31,OUTDENT:32,Identifier:33,IDENTIFIER:34,Property:35,PROPERTY:36,AlphaNumeric:37,NUMBER:38,String:39,STRING:40,STRING_START:41,STRING_END:42,Regex:43,REGEX:44,REGEX_START:45,REGEX_END:46,Literal:47,JS:48,UNDEFINED:49,NULL:50,BOOL:51,INFINITY:52,NAN:53,Assignable:54,"\x3d":55,AssignObj:56,ObjAssignable:57,":":58,SimpleObjAssignable:59, ThisProperty:60,RETURN:61,HERECOMMENT:62,PARAM_START:63,ParamList:64,PARAM_END:65,FuncGlyph:66,"-\x3e":67,"\x3d\x3e":68,OptComma:69,",":70,Param:71,ParamVar:72,"...":73,Array:74,Object:75,Splat:76,SimpleAssignable:77,Accessor:78,Parenthetical:79,Range:80,This:81,".":82,"?.":83,"::":84,"?::":85,Index:86,INDEX_START:87,IndexValue:88,INDEX_END:89,INDEX_SOAK:90,Slice:91,"{":92,AssignList:93,"}":94,CLASS:95,EXTENDS:96,IMPORT:97,ImportDefaultSpecifier:98,ImportNamespaceSpecifier:99,ImportSpecifierList:100, ImportSpecifier:101,AS:102,DEFAULT:103,IMPORT_ALL:104,EXPORT:105,ExportSpecifierList:106,EXPORT_ALL:107,ExportSpecifier:108,OptFuncExist:109,Arguments:110,Super:111,SUPER:112,FUNC_EXIST:113,CALL_START:114,CALL_END:115,ArgList:116,THIS:117,"@":118,"[":119,"]":120,RangeDots:121,"..":122,Arg:123,SimpleArgs:124,TRY:125,Catch:126,FINALLY:127,CATCH:128,THROW:129,"(":130,")":131,WhileSource:132,WHILE:133,WHEN:134,UNTIL:135,Loop:136,LOOP:137,ForBody:138,FOR:139,BY:140,ForStart:141,ForSource:142,ForVariables:143, @@ -91,7 +91,7 @@ OWN:144,ForValue:145,FORIN:146,FOROF:147,FORFROM:148,SWITCH:149,Whens:150,ELSE:1 productions_:[0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[5,1],[8,1],[8,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[27,1],[27,2],[27,3],[30,2],[30,3],[33,1],[35,1],[37,1],[37,1],[39,1],[39,3],[43,1],[43,3],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[19,3],[19,4],[19,5],[56,1],[56,3],[56,5],[56,3],[56,5],[56,1],[59,1],[59,1],[59,1],[57,1],[57,1],[10,2],[10,1],[9,3],[9,2],[11,1],[17,5],[17,2],[66,1],[66,1],[69,0],[69,1],[64,0],[64, 1],[64,3],[64,4],[64,6],[71,1],[71,2],[71,3],[71,1],[72,1],[72,1],[72,1],[72,1],[76,2],[77,1],[77,2],[77,2],[77,1],[54,1],[54,1],[54,1],[15,1],[15,1],[15,1],[15,1],[15,1],[78,2],[78,2],[78,2],[78,2],[78,1],[78,1],[86,3],[86,2],[88,1],[88,1],[75,4],[93,0],[93,1],[93,3],[93,4],[93,6],[25,1],[25,2],[25,3],[25,4],[25,2],[25,3],[25,4],[25,5],[13,2],[13,4],[13,4],[13,5],[13,7],[13,6],[13,9],[100,1],[100,3],[100,4],[100,4],[100,6],[101,1],[101,3],[101,1],[101,3],[98,1],[99,3],[14,3],[14,5],[14,2],[14,4], [14,5],[14,6],[14,3],[14,4],[14,7],[106,1],[106,3],[106,4],[106,4],[106,6],[108,1],[108,3],[108,3],[108,1],[16,3],[16,3],[16,3],[16,1],[111,1],[111,2],[109,0],[109,1],[110,2],[110,4],[81,1],[81,1],[60,2],[74,2],[74,4],[121,1],[121,1],[80,5],[91,3],[91,2],[91,2],[91,1],[116,1],[116,3],[116,4],[116,4],[116,6],[123,1],[123,1],[123,1],[124,1],[124,3],[21,2],[21,3],[21,4],[21,5],[126,3],[126,3],[126,2],[26,2],[79,3],[79,5],[132,2],[132,4],[132,2],[132,4],[22,2],[22,2],[22,2],[22,1],[136,2],[136,2],[23, -2],[23,2],[23,2],[138,2],[138,4],[138,2],[141,2],[141,3],[145,1],[145,1],[145,1],[145,1],[143,1],[143,3],[142,2],[142,2],[142,4],[142,4],[142,4],[142,6],[142,6],[142,2],[142,4],[24,5],[24,7],[24,4],[24,6],[150,1],[150,2],[152,3],[152,4],[154,3],[154,5],[20,1],[20,3],[20,3],[20,3],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,5],[18,4],[18,3]],performAction:function(a,q,pa,b,c,e,d){a= +2],[23,2],[23,2],[138,2],[138,4],[138,2],[141,2],[141,3],[145,1],[145,1],[145,1],[145,1],[143,1],[143,3],[142,2],[142,2],[142,4],[142,4],[142,4],[142,6],[142,6],[142,2],[142,4],[24,5],[24,7],[24,4],[24,6],[150,1],[150,2],[152,3],[152,4],[154,3],[154,5],[20,1],[20,3],[20,3],[20,3],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,5],[18,4],[18,3]],performAction:function(a,n,na,b,c,e,d){a= e.length-1;switch(c){case 1:return this.$=b.addLocationDataFn(d[a],d[a])(new b.Block);case 2:return this.$=e[a];case 3:this.$=b.addLocationDataFn(d[a],d[a])(b.Block.wrap([e[a]]));break;case 4:this.$=b.addLocationDataFn(d[a-2],d[a])(e[a-2].push(e[a]));break;case 5:this.$=e[a-1];break;case 6:case 7:case 8:case 9:case 10:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 35:case 40:case 42:case 56:case 57:case 58:case 59:case 60:case 61:case 71:case 72:case 82:case 83:case 84:case 85:case 90:case 91:case 94:case 98:case 104:case 162:case 186:case 187:case 189:case 219:case 220:case 238:case 244:this.$= e[a];break;case 11:this.$=b.addLocationDataFn(d[a],d[a])(new b.StatementLiteral(e[a]));break;case 27:this.$=b.addLocationDataFn(d[a],d[a])(new b.Op(e[a],new b.Value(new b.Literal(""))));break;case 28:case 248:case 249:this.$=b.addLocationDataFn(d[a-1],d[a])(new b.Op(e[a-1],e[a]));break;case 29:this.$=b.addLocationDataFn(d[a-2],d[a])(new b.Op(e[a-2].concat(e[a-1]),e[a]));break;case 30:this.$=b.addLocationDataFn(d[a-1],d[a])(new b.Block);break;case 31:case 105:this.$=b.addLocationDataFn(d[a-2],d[a])(e[a- 1]);break;case 32:this.$=b.addLocationDataFn(d[a],d[a])(new b.IdentifierLiteral(e[a]));break;case 33:this.$=b.addLocationDataFn(d[a],d[a])(new b.PropertyName(e[a]));break;case 34:this.$=b.addLocationDataFn(d[a],d[a])(new b.NumberLiteral(e[a]));break;case 36:this.$=b.addLocationDataFn(d[a],d[a])(new b.StringLiteral(e[a]));break;case 37:this.$=b.addLocationDataFn(d[a-2],d[a])(new b.StringWithInterpolations(e[a-1]));break;case 38:this.$=b.addLocationDataFn(d[a],d[a])(new b.RegexLiteral(e[a]));break; @@ -125,272 +125,274 @@ break;case 232:this.$=b.addLocationDataFn(d[a-1],d[a])({source:e[a],from:!0});br 2],d[a])(e[a-2].addElse(e[a]));break;case 246:case 247:this.$=b.addLocationDataFn(d[a-2],d[a])(new b.If(e[a],b.addLocationDataFn(d[a-2])(b.Block.wrap([e[a-2]])),{type:e[a-1],statement:!0}));break;case 250:this.$=b.addLocationDataFn(d[a-1],d[a])(new b.Op("-",e[a]));break;case 251:this.$=b.addLocationDataFn(d[a-1],d[a])(new b.Op("+",e[a]));break;case 252:this.$=b.addLocationDataFn(d[a-1],d[a])(new b.Op("--",e[a]));break;case 253:this.$=b.addLocationDataFn(d[a-1],d[a])(new b.Op("++",e[a]));break;case 254:this.$= b.addLocationDataFn(d[a-1],d[a])(new b.Op("--",e[a-1],null,!0));break;case 255:this.$=b.addLocationDataFn(d[a-1],d[a])(new b.Op("++",e[a-1],null,!0));break;case 256:this.$=b.addLocationDataFn(d[a-1],d[a])(new b.Existence(e[a-1]));break;case 257:this.$=b.addLocationDataFn(d[a-2],d[a])(new b.Op("+",e[a-2],e[a]));break;case 258:this.$=b.addLocationDataFn(d[a-2],d[a])(new b.Op("-",e[a-2],e[a]));break;case 259:case 260:case 261:case 262:case 263:case 264:case 265:case 266:case 267:case 268:this.$=b.addLocationDataFn(d[a- 2],d[a])(new b.Op(e[a-1],e[a-2],e[a]));break;case 269:d=b.addLocationDataFn(d[a-2],d[a]);e="!"===e[a-1].charAt(0)?(new b.Op(e[a-1].slice(1),e[a-2],e[a])).invert():new b.Op(e[a-1],e[a-2],e[a]);this.$=d(e);break;case 270:this.$=b.addLocationDataFn(d[a-2],d[a])(new b.Assign(e[a-2],e[a],e[a-1]));break;case 271:this.$=b.addLocationDataFn(d[a-4],d[a])(new b.Assign(e[a-4],e[a-1],e[a-3]));break;case 272:this.$=b.addLocationDataFn(d[a-3],d[a])(new b.Assign(e[a-3],e[a],e[a-2]));break;case 273:this.$=b.addLocationDataFn(d[a- -2],d[a])(new b.Extends(e[a-2],e[a]))}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:6,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:t,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z, -158:W,159:aa,160:J,161:ca,162:R},{1:[3]},{1:[2,2],6:xa},a(va,[2,3]),a(va,[2,6],{141:77,132:102,138:103,133:B,135:A,139:C,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(va,[2,7],{141:77,132:105,138:106,133:B,135:A,139:C,156:ya}),a(va,[2,8]),a(ta,[2,14],{109:107,78:108,86:114,40:Ia,41:Ia,114:Ia,82:Sa,83:Ga,84:Ta,85:Fa,87:Oa,90:Pa,113:La}),a(ta,[2,15],{86:114,109:117,78:118,82:Sa,83:Ga,84:Ta,85:Fa,87:Oa,90:Pa,113:La,114:Ia}),a(ta,[2,16]),a(ta, -[2,17]),a(ta,[2,18]),a(ta,[2,19]),a(ta,[2,20]),a(ta,[2,21]),a(ta,[2,22]),a(ta,[2,23]),a(ta,[2,24]),a(ta,[2,25]),a(ta,[2,26]),a(za,[2,9]),a(za,[2,10]),a(za,[2,11]),a(za,[2,12]),a(za,[2,13]),a([1,6,32,42,131,133,135,139,156,163,164,165,166,167,168,169,170,171,172,173,174],na,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,7:120, -8:122,12:c,28:ga,29:Ha,34:f,38:p,40:m,41:H,44:F,45:x,48:y,49:v,50:E,51:N,52:l,53:h,61:[1,119],62:w,63:G,67:L,68:z,92:I,95:k,97:M,105:P,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,137:X,149:O,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R}),a(Aa,Xa,{55:[1,124]}),a(Aa,[2,95]),a(Aa,[2,96]),a(Aa,[2,97]),a(Aa,[2,98]),a(b,[2,162]),a([6,31,65,70],q,{64:125,71:126,72:127,33:129,60:130,74:131,75:132,34:f,73:pa,92:I,118:e,119:d}),{30:135,31:wa},{7:137,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11, -20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:138,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16, -25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:139,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70, -34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:140,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H, -43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{15:142,16:143,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:144,60:71,74:53,75:54,77:141,79:28,80:29,81:30,92:I,111:31,112:n,117:r,118:V,119:U, -130:S},{15:142,16:143,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:144,60:71,74:53,75:54,77:145,79:28,80:29,81:30,92:I,111:31,112:n,117:r,118:V,119:U,130:S},a(Ma,ua,{96:[1,149],161:[1,146],162:[1,147],175:[1,148]}),a(ta,[2,244],{151:[1,150]}),{30:151,31:wa},{30:152,31:wa},a(ta,[2,208]),{30:153,31:wa},{7:154,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,31:[1,155],33:70,34:f,37:55, -38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Gb,[2,115],{47:27,79:28,80:29,81:30,111:31,74:53,75:54,37:55,43:57,33:70,60:71,39:80,15:142,16:143,54:144,30:156,77:158,31:wa,34:f,38:p,40:m,41:H,44:F,45:x,48:y,49:v, -50:E,51:N,52:l,53:h,92:I,96:[1,157],112:n,117:r,118:V,119:U,130:S}),{7:159,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y, -157:Z,158:W,159:aa,160:J,161:ca,162:R},a(za,ab,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,8:122,7:160,12:c,28:ga,34:f,38:p,40:m,41:H,44:F,45:x,48:y,49:v,50:E,51:N,52:l,53:h,61:u,62:w,63:G,67:L,68:z,92:I,95:k,97:M,105:P,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,137:X,149:O,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R}), -a([1,6,31,32,42,70,94,131,133,135,139,156],[2,66]),{33:165,34:f,39:161,40:m,41:H,92:[1,164],98:162,99:163,104:Hb},{25:168,33:169,34:f,92:[1,167],95:k,103:[1,170],107:[1,171]},a(Ma,[2,92]),a(Ma,[2,93]),a(Aa,[2,40]),a(Aa,[2,41]),a(Aa,[2,42]),a(Aa,[2,43]),a(Aa,[2,44]),a(Aa,[2,45]),a(Aa,[2,46]),a(Aa,[2,47]),{4:172,5:3,7:4,8:5,9:6,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:t,31:[1,173],33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x, -47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:174,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,31:bb,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N, -52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,73:Va,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,116:176,117:r,118:V,119:U,120:Ib,123:177,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Aa,[2,169]),a(Aa,[2,170],{35:181,36:Na}),a([1,6,31,32,42,46,65,70,73,82,83,84,85,87,89,90,94,113,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174], -[2,163],{110:183,114:ub}),{31:[2,69]},{31:[2,70]},a(Ja,[2,87]),a(Ja,[2,90]),{7:185,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41, -155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:186,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J, -161:ca,162:R},{7:187,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:189,8:122,10:20, -11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,30:188,31:wa,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{33:194,34:f,60:195,74:196,75:197, -80:190,92:I,118:e,119:U,143:191,144:[1,192],145:193},{142:198,146:[1,199],147:[1,200],148:[1,201]},a([6,31,70,94],Jb,{39:80,93:202,56:203,57:204,59:205,11:206,37:207,33:208,35:209,60:210,34:f,36:Na,38:p,40:m,41:H,62:w,118:e}),a(Kb,[2,34]),a(Kb,[2,35]),a(Aa,[2,38]),{15:142,16:211,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:144,60:71,74:53,75:54,77:212,79:28,80:29,81:30,92:I,111:31,112:n,117:r,118:V,119:U,130:S},a([1,6,29,31,32,40,41,42,55,58,65,70,73, -82,83,84,85,87,89,90,94,96,102,113,114,115,120,122,131,133,134,135,139,140,146,147,148,156,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],[2,32]),a(Lb,[2,36]),{4:213,5:3,7:4,8:5,9:6,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:t,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P, -111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(va,[2,5],{7:4,8:5,9:6,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,5:214,12:c,28:t,34:f,38:p,40:m,41:H,44:F,45:x,48:y,49:v,50:E,51:N,52:l,53:h,61:u,62:w,63:G,67:L, -68:z,92:I,95:k,97:M,105:P,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,133:B,135:A,137:X,139:C,149:O,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R}),a(ta,[2,256]),{7:215,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U, -125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:216,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B, -135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:217,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C, -141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:218,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z, -158:W,159:aa,160:J,161:ca,162:R},{7:219,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R}, -{7:220,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:221,8:122,10:20,11:21,12:c, -13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:222,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10, -19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:223,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15, -24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:224,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga, -33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:225,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80, -40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:226,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27, -48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:227,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h, -54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:228,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33, -67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(ta,[2,207]),a(ta,[2,212]),{7:229,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33, -67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(ta,[2,206]),a(ta,[2,211]),{39:230,40:m,41:H,110:231,114:ub},a(Ja,[2,88]),a(Mb,[2,166]),{35:232,36:Na},{35:233,36:Na},a(Ja,[2,103],{35:234,36:Na}),{35:235,36:Na},a(Ja,[2,104]),{7:237,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16, -25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,73:Nb,74:53,75:54,77:40,79:28,80:29,81:30,88:236,91:238,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,121:239,122:vb,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{86:242,87:Oa,90:Pa},{110:243,114:ub},a(Ja,[2,89]),a(va,[2,65],{15:7,16:8,17:9,18:10,19:11,20:12, -21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,8:122,7:244,12:c,28:ga,34:f,38:p,40:m,41:H,44:F,45:x,48:y,49:v,50:E,51:N,52:l,53:h,61:u,62:w,63:G,67:L,68:z,92:I,95:k,97:M,105:P,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,133:ab,135:ab,139:ab,156:ab,137:X,149:O,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R}),a(Ka,[2,28],{141:77,132:102,138:103,159:ka,160:da,163:fa, -164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{7:245,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41, -155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{132:105,133:B,135:A,138:106,139:C,141:77,156:ya},a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,163,164,165,166,167,168,169,170,171,172,173,174],na,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,7:120,8:122,12:c,28:ga,29:Ha,34:f,38:p,40:m,41:H,44:F,45:x, -48:y,49:v,50:E,51:N,52:l,53:h,61:u,62:w,63:G,67:L,68:z,92:I,95:k,97:M,105:P,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,137:X,149:O,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R}),{6:[1,247],7:246,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,31:[1,248],33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M, -105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a([6,31],Ea,{69:251,65:[1,249],70:Ob}),a(Ua,[2,74]),a(Ua,[2,78],{55:[1,253],73:[1,252]}),a(Ua,[2,81]),a(hb,[2,82]),a(hb,[2,83]),a(hb,[2,84]),a(hb,[2,85]),{35:181,36:Na},{7:254,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,31:bb,33:70,34:f,37:55,38:p,39:80,40:m,41:H, -43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,73:Va,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,116:176,117:r,118:V,119:U,120:Ib,123:177,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(ta,[2,68]),{4:256,5:3,7:4,8:5,9:6,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:t,32:[1,255], -33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,164,165,166,167,168,169,170,171,172,173,174],[2,248],{141:77,132:102,138:103, -163:fa}),a(cb,[2,249],{141:77,132:102,138:103,163:fa,165:ia}),a(cb,[2,250],{141:77,132:102,138:103,163:fa,165:ia}),a(cb,[2,251],{141:77,132:102,138:103,163:fa,165:ia}),a(ta,[2,252],{40:ua,41:ua,82:ua,83:ua,84:ua,85:ua,87:ua,90:ua,113:ua,114:ua}),a(Mb,Ia,{109:107,78:108,86:114,82:Sa,83:Ga,84:Ta,85:Fa,87:Oa,90:Pa,113:La}),{78:118,82:Sa,83:Ga,84:Ta,85:Fa,86:114,87:Oa,90:Pa,109:117,113:La,114:Ia},a(Pb,Xa),a(ta,[2,253],{40:ua,41:ua,82:ua,83:ua,84:ua,85:ua,87:ua,90:ua,113:ua,114:ua}),a(ta,[2,254]),a(ta, -[2,255]),{6:[1,259],7:257,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,31:[1,258],33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R}, -{7:260,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{30:261,31:wa,155:[1,262]},a(ta, -[2,191],{126:263,127:[1,264],128:[1,265]}),a(ta,[2,205]),a(ta,[2,213]),{31:[1,266],132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},{150:267,152:268,153:ib},a(ta,[2,116]),{7:270,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w, -63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Gb,[2,119],{30:271,31:wa,40:ua,41:ua,82:ua,83:ua,84:ua,85:ua,87:ua,90:ua,113:ua,114:ua,96:[1,272]}),a(Ka,[2,198],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(za,db,{141:77,132:102,138:103, -159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(za,[2,123]),{29:[1,273],70:[1,274]},{29:[1,275]},{31:jb,33:280,34:f,94:[1,276],100:277,101:278,103:Ya},a([29,70],[2,139]),{102:[1,282]},{31:wb,33:287,34:f,94:[1,283],103:eb,106:284,108:285},a(za,[2,143]),{55:[1,289]},{7:290,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y, -49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{29:[1,291]},{6:xa,131:[1,292]},{4:293,5:3,7:4,8:5,9:6,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:t,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x, -47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a([6,31,70,120],Qb,{141:77,132:102,138:103,121:294,73:[1,295],122:vb,133:B,135:A,139:C,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(xb,[2,172]), -a([6,31,120],Ea,{69:296,70:kb}),a(Qa,[2,181]),{7:254,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,31:bb,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,73:Va,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,116:298,117:r,118:V,119:U,123:177,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O, -154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Qa,[2,187]),a(Qa,[2,188]),a(Rb,[2,171]),a(Rb,[2,33]),a(b,[2,164]),{7:254,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,31:bb,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,73:Va,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,115:[1,299],116:300,117:r,118:V,119:U, -123:177,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{30:301,31:wa,132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},a(Sb,[2,201],{141:77,132:102,138:103,133:B,134:[1,302],135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Sb,[2,203],{141:77,132:102,138:103,133:B, -134:[1,303],135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(ta,[2,209]),a(Za,[2,210],{141:77,132:102,138:103,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],[2,214],{140:[1,304]}),a(lb,[2,217]),{33:194,34:f,60:195,74:196,75:197,92:I,118:e,119:d, -143:305,145:193},a(lb,[2,223],{70:[1,306]}),a(mb,[2,219]),a(mb,[2,220]),a(mb,[2,221]),a(mb,[2,222]),a(ta,[2,216]),{7:307,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44, -137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:308,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O, -154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:309,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa, -160:J,161:ca,162:R},a(nb,Ea,{69:310,70:Tb}),a(Ba,[2,111]),a(Ba,[2,51],{58:[1,312]}),a(Ub,[2,60],{55:[1,313]}),a(Ba,[2,56]),a(Ub,[2,61]),a(yb,[2,57]),a(yb,[2,58]),a(yb,[2,59]),{46:[1,314],78:118,82:Sa,83:Ga,84:Ta,85:Fa,86:114,87:Oa,90:Pa,109:117,113:La,114:Ia},a(Pb,ua),{6:xa,42:[1,315]},a(va,[2,4]),a(Vb,[2,257],{141:77,132:102,138:103,163:fa,164:ha,165:ia}),a(Vb,[2,258],{141:77,132:102,138:103,163:fa,164:ha,165:ia}),a(cb,[2,259],{141:77,132:102,138:103,163:fa,165:ia}),a(cb,[2,260],{141:77,132:102, -138:103,163:fa,165:ia}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,166,167,168,169,170,171,172,173,174],[2,261],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,167,168,169,170,171,172,173],[2,262],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,174:T}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,168,169,170,171,172,173],[2,263],{141:77,132:102, -138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,174:T}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,169,170,171,172,173],[2,264],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,174:T}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,170,171,172,173],[2,265],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,174:T}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135, -139,140,156,171,172,173],[2,266],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,174:T}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,172,173],[2,267],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,174:T}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,173],[2,268],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra, -171:ea,172:ma,174:T}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,167,168,169,170,171,172,173,174],[2,269],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la}),a(Za,[2,247],{141:77,132:102,138:103,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Za,[2,246],{141:77,132:102,138:103,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}), -a(b,[2,159]),a(b,[2,160]),a(Ja,[2,99]),a(Ja,[2,100]),a(Ja,[2,101]),a(Ja,[2,102]),{89:[1,316]},{73:Nb,89:[2,107],121:317,122:vb,132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},{89:[2,108]},{7:318,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26, -60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,89:[2,180],92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Wb,[2,174]),a(Wb,Xb),a(Ja,[2,106]),a(b,[2,161]),a(va,[2,64],{141:77,132:102,138:103,133:db,135:db,139:db,156:db,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Ka,[2,29],{141:77,132:102, -138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Ka,[2,48],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{7:319,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53, -75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:320,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30, -92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{66:321,67:L,68:z},a(Ra,fb,{72:127,33:129,60:130,74:131,75:132,71:322,34:f,73:pa,92:I,118:e,119:d}),{6:Yb,31:Zb},a(Ua,[2,79]),{7:325,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E, -51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Qa,Qb,{141:77,132:102,138:103,73:[1,326],133:B,135:A,139:C,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a($b,[2,30]),{6:xa,32:[1,327]},a(Ka,[2,270],{141:77,132:102, -138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{7:328,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X, -138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:329,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41, -155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Ka,[2,273],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(ta,[2,245]),{7:330,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M, -105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(ta,[2,192],{127:[1,331]}),{30:332,31:wa},{30:335,31:wa,33:333,34:f,75:334,92:I},{150:336,152:268,153:ib},{32:[1,337],151:[1,338],152:339,153:ib},a(ob,[2,238]),{7:341,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x, -47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,124:340,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(ac,[2,117],{141:77,132:102,138:103,30:342,31:wa,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(ta,[2,120]),{7:343,8:122,10:20, -11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{39:344,40:m,41:H},{92:[1,346],99:345,104:Hb},{39:347, -40:m,41:H},{29:[1,348]},a(nb,Ea,{69:349,70:pb}),a(Ba,[2,130]),{31:jb,33:280,34:f,100:351,101:278,103:Ya},a(Ba,[2,135],{102:[1,352]}),a(Ba,[2,137],{102:[1,353]}),{33:354,34:f},a(za,[2,141]),a(nb,Ea,{69:355,70:zb}),a(Ba,[2,150]),{31:wb,33:287,34:f,103:eb,106:357,108:285},a(Ba,[2,155],{102:[1,358]}),a(Ba,[2,158]),{6:[1,360],7:359,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,31:[1,361],33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F, -45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Ab,[2,147],{141:77,132:102,138:103,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{39:362,40:m,41:H},a(Aa,[2,199]),{6:xa,32:[1,363]}, -{7:364,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a([12,28,34,38,40,41,44,45,48, -49,50,51,52,53,61,62,63,67,68,92,95,97,105,112,117,118,119,125,129,130,133,135,137,139,149,155,157,158,159,160,161,162],Xb,{6:gb,31:gb,70:gb,120:gb}),{6:qb,31:rb,120:[1,365]},a([6,31,32,115,120],fb,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,8:122,76:179,7:254,123:368,12:c,28:ga,34:f,38:p,40:m,41:H,44:F,45:x,48:y,49:v, -50:E,51:N,52:l,53:h,61:u,62:w,63:G,67:L,68:z,73:Va,92:I,95:k,97:M,105:P,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,133:B,135:A,137:X,139:C,149:O,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R}),a(Ra,Ea,{69:369,70:kb}),a(b,[2,167]),a([6,31,115],Ea,{69:370,70:kb}),a(bc,[2,242]),{7:371,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u, -62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:372,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53, -75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:373,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30, -92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(lb,[2,218]),{33:194,34:f,60:195,74:196,75:197,92:I,118:e,119:d,145:374},a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,135,139,156],[2,225],{141:77,132:102,138:103,134:[1,375],140:[1,376],159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Bb,[2,226],{141:77,132:102, -138:103,134:[1,377],159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Bb,[2,232],{141:77,132:102,138:103,134:[1,378],159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{6:cc,31:dc,94:[1,379]},a(Cb,fb,{39:80,57:204,59:205,11:206,37:207,33:208,35:209,60:210,56:382,34:f,36:Na,38:p,40:m,41:H,62:w,118:e}),{7:383,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17, -26:18,27:19,28:ga,31:[1,384],33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:385,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga, -31:[1,386],33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Aa,[2,39]),a(Lb,[2,37]),a(Ja,[2,105]),{7:387,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17, -26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,89:[2,178],92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{89:[2,179],132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja, -170:ra,171:ea,172:ma,173:sa,174:T},a(Ka,[2,49],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{32:[1,388],132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},{30:389,31:wa},a(Ua,[2,75]),{33:129,34:f,60:130,71:390,72:127,73:pa,74:131,75:132,92:I,118:e,119:d},a(ec,q,{71:126,72:127,33:129,60:130,74:131,75:132,64:391,34:f,73:pa,92:I,118:e, -119:d}),a(Ua,[2,80],{141:77,132:102,138:103,133:B,135:A,139:C,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Qa,gb),a($b,[2,31]),{32:[1,392],132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},a(Ka,[2,272],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{30:393,31:wa,132:102, -133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},{30:394,31:wa},a(ta,[2,193]),{30:395,31:wa},{30:396,31:wa},a(Db,[2,197]),{32:[1,397],151:[1,398],152:339,153:ib},a(ta,[2,236]),{30:399,31:wa},a(ob,[2,239]),{30:400,31:wa,70:[1,401]},a(fc,[2,189],{141:77,132:102,138:103,133:B,135:A,139:C,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(ta,[2,118]),a(ac,[2, -121],{141:77,132:102,138:103,30:402,31:wa,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(za,[2,124]),{29:[1,403]},{31:jb,33:280,34:f,100:404,101:278,103:Ya},a(za,[2,125]),{39:405,40:m,41:H},{6:sb,31:tb,94:[1,406]},a(Cb,fb,{33:280,101:409,34:f,103:Ya}),a(Ra,Ea,{69:410,70:pb}),{33:411,34:f},{33:412,34:f},{29:[2,140]},{6:Eb,31:Fb,94:[1,413]},a(Cb,fb,{33:287,108:416,34:f,103:eb}),a(Ra,Ea,{69:417,70:zb}),{33:418,34:f,103:[1,419]},a(Ab, -[2,144],{141:77,132:102,138:103,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{7:420,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba, -130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:421,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44, -137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(za,[2,148]),{131:[1,422]},{120:[1,423],132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},a(xb,[2,173]),{7:254,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26, -60:71,61:u,62:w,63:G,66:33,67:L,68:z,73:Va,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,123:424,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:254,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,31:bb,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71, -61:u,62:w,63:G,66:33,67:L,68:z,73:Va,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,116:425,117:r,118:V,119:U,123:177,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Qa,[2,182]),{6:qb,31:rb,32:[1,426]},{6:qb,31:rb,115:[1,427]},a(Za,[2,202],{141:77,132:102,138:103,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Za,[2, -204],{141:77,132:102,138:103,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Za,[2,215],{141:77,132:102,138:103,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(lb,[2,224]),{7:428,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v, -50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:429,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71, -61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:430,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z, -74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:431,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29, -81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(xb,[2,109]),{11:206,33:208,34:f,35:209,36:Na,37:207,38:p,39:80,40:m,41:H,56:432,57:204,59:205,60:210,62:w,118:e},a(ec,Jb,{39:80,56:203,57:204,59:205,11:206,37:207,33:208,35:209,60:210,93:433,34:f,36:Na,38:p,40:m,41:H,62:w,118:e}),a(Ba,[2,112]),a(Ba,[2,52],{141:77,132:102,138:103,133:B,135:A,139:C,156:qa,159:ka, -160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{7:434,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77, -149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},a(Ba,[2,54],{141:77,132:102,138:103,133:B,135:A,139:C,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{7:435,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29, -81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{89:[2,177],132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},a(ta,[2,50]),a(ta,[2,67]),a(Ua,[2,76]),a(Ra,Ea,{69:436,70:Ob}),a(ta,[2,271]),a(bc,[2,243]),a(ta,[2,194]),a(Db,[2,195]),a(Db,[2,196]),a(ta,[2,234]),{30:437,31:wa}, -{32:[1,438]},a(ob,[2,240],{6:[1,439]}),{7:440,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca, -162:R},a(ta,[2,122]),{39:441,40:m,41:H},a(nb,Ea,{69:442,70:pb}),a(za,[2,126]),{29:[1,443]},{33:280,34:f,101:444,103:Ya},{31:jb,33:280,34:f,100:445,101:278,103:Ya},a(Ba,[2,131]),{6:sb,31:tb,32:[1,446]},a(Ba,[2,136]),a(Ba,[2,138]),a(za,[2,142],{29:[1,447]}),{33:287,34:f,103:eb,108:448},{31:wb,33:287,34:f,103:eb,106:449,108:285},a(Ba,[2,151]),{6:Eb,31:Fb,32:[1,450]},a(Ba,[2,156]),a(Ba,[2,157]),a(Ab,[2,145],{141:77,132:102,138:103,133:B,135:A,139:C,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K, -169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),{32:[1,451],132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},a(Aa,[2,200]),a(Aa,[2,176]),a(Qa,[2,183]),a(Ra,Ea,{69:452,70:kb}),a(Qa,[2,184]),a(b,[2,168]),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,156],[2,227],{141:77,132:102,138:103,140:[1,453],159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}), -a(Bb,[2,229],{141:77,132:102,138:103,134:[1,454],159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Ka,[2,228],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Ka,[2,233],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Ba,[2,113]),a(Ra,Ea,{69:455,70:Tb}),{32:[1,456],132:102,133:B,135:A,138:103,139:C, -141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},{32:[1,457],132:102,133:B,135:A,138:103,139:C,141:77,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T},{6:Yb,31:Zb,32:[1,458]},{32:[1,459]},a(ta,[2,237]),a(ob,[2,241]),a(fc,[2,190],{141:77,132:102,138:103,133:B,135:A,139:C,156:qa,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(za,[2, -128]),{6:sb,31:tb,94:[1,460]},{39:461,40:m,41:H},a(Ba,[2,132]),a(Ra,Ea,{69:462,70:pb}),a(Ba,[2,133]),{39:463,40:m,41:H},a(Ba,[2,152]),a(Ra,Ea,{69:464,70:zb}),a(Ba,[2,153]),a(za,[2,146]),{6:qb,31:rb,32:[1,465]},{7:466,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30, -92:I,95:k,97:M,105:P,111:31,112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{7:467,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ga,33:70,34:f,37:55,38:p,39:80,40:m,41:H,43:57,44:F,45:x,47:27,48:y,49:v,50:E,51:N,52:l,53:h,54:26,60:71,61:u,62:w,63:G,66:33,67:L,68:z,74:53,75:54,77:40,79:28,80:29,81:30,92:I,95:k,97:M,105:P,111:31, -112:n,117:r,118:V,119:U,125:Q,129:ba,130:S,132:43,133:B,135:A,136:44,137:X,138:45,139:C,141:77,149:O,154:41,155:Y,157:Z,158:W,159:aa,160:J,161:ca,162:R},{6:cc,31:dc,32:[1,468]},a(Ba,[2,53]),a(Ba,[2,55]),a(Ua,[2,77]),a(ta,[2,235]),{29:[1,469]},a(za,[2,127]),{6:sb,31:tb,32:[1,470]},a(za,[2,149]),{6:Eb,31:Fb,32:[1,471]},a(Qa,[2,185]),a(Ka,[2,230],{141:77,132:102,138:103,159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Ka,[2,231],{141:77,132:102,138:103, -159:ka,160:da,163:fa,164:ha,165:ia,166:la,167:oa,168:K,169:ja,170:ra,171:ea,172:ma,173:sa,174:T}),a(Ba,[2,114]),{39:472,40:m,41:H},a(Ba,[2,134]),a(Ba,[2,154]),a(za,[2,129])],defaultActions:{68:[2,69],69:[2,70],238:[2,108],354:[2,140]},parseError:function(a,b){if(b.recoverable)this.trace(a);else{var d=function(a,b){this.message=a;this.hash=b};d.prototype=Error;throw new d(a,b);}},parse:function(a){var b=[0],d=[null],e=[],q=this.table,pa="",c=0,f=0,g=0,h=e.slice.call(arguments,1),wa=Object.create(this.lexer), -Ma={},k;for(k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(Ma[k]=this.yy[k]);wa.setInput(a,Ma);Ma.lexer=wa;Ma.parser=this;"undefined"==typeof wa.yylloc&&(wa.yylloc={});k=wa.yylloc;e.push(k);var n=wa.options&&wa.options.ranges;this.parseError="function"===typeof Ma.parseError?Ma.parseError:Object.getPrototypeOf(this).parseError;for(var l,Xa,m,u,D={},r,ua;;){m=b[b.length-1];if(this.defaultActions[m])u=this.defaultActions[m];else{if(null===l||"undefined"==typeof l)l=wa.lex()||1,"number"!== -typeof l&&(l=this.symbols_[l]||l);u=q[m]&&q[m][l]}if("undefined"===typeof u||!u.length||!u[0]){var w;ua=[];for(r in q[m])this.terminals_[r]&&2=k?this.wrapInBraces(q):q};b.prototype.compileRoot=function(a){var b,e,d,q,c;a.indent=a.bare?"":da;a.level=n;this.spaced=!0;a.scope=new J(null,this,null,null!=(d=a.referencedVars)? -d:[]);c=a.locals||[];d=0;for(e=c.length;d=M?this.wrapInBraces(b):b};return b}(S);g.StringLiteral=$a=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(r);g.RegexLiteral=Z=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(r);g.PassthroughLiteral=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(r);g.IdentifierLiteral= -h=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);b.prototype.isAssignable=ja;return b}(r);g.PropertyName=O=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);b.prototype.isAssignable=ja;return b}(r);g.StatementLiteral=ya=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);b.prototype.isStatement=ja;b.prototype.makeReturn=fa;b.prototype.jumps=function(a){if("break"===this.value&&!(null!=a&&a.loop|| -null!=a&&a.block)||"continue"===this.value&&(null==a||!a.loop))return this};b.prototype.compileNode=function(a){return[this.makeCode(""+this.tab+this.value+";")]};return b}(r);g.ThisLiteral=ha=function(a){function b(){b.__super__.constructor.call(this,"this")}na(b,a);b.prototype.compileNode=function(a){var b;a=null!=(b=a.scope.method)&&b.bound?a.scope.method.context:this.value;return[this.makeCode(a)]};return b}(r);g.UndefinedLiteral=oa=function(a){function b(){b.__super__.constructor.call(this,"undefined")} -na(b,a);b.prototype.compileNode=function(a){return[this.makeCode(a.level>=z?"(void 0)":"void 0")]};return b}(r);g.NullLiteral=ba=function(a){function b(){b.__super__.constructor.call(this,"null")}na(b,a);return b}(r);g.BooleanLiteral=Ca=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}na(b,a);return b}(r);g.Return=W=function(a){function b(a){this.expression=a}na(b,a);b.prototype.children=["expression"];b.prototype.isStatement=ja;b.prototype.makeReturn=fa;b.prototype.jumps= -fa;b.prototype.compileToFragments=function(a,pa){var e,d;e=null!=(d=this.expression)?d.makeReturn():void 0;return!e||e instanceof b?b.__super__.compileToFragments.call(this,a,pa):e.compileToFragments(a,pa)};b.prototype.compileNode=function(a){var b;b=[];b.push(this.makeCode(this.tab+("return"+(this.expression?" ":""))));this.expression&&(b=b.concat(this.expression.compileToFragments(a,P)));b.push(this.makeCode(";"));return b};return b}(a);g.YieldReturn=ra=function(a){function b(){return b.__super__.constructor.apply(this, -arguments)}na(b,a);b.prototype.compileNode=function(a){null==a.scope.parent&&this.error("yield can only occur inside functions");return b.__super__.compileNode.apply(this,arguments)};return b}(W);g.Value=K=function(a){function b(a,pa,e){if(!pa&&a instanceof b)return a;this.base=a;this.properties=pa||[];e&&(this[e]=!0);return this}na(b,a);b.prototype.children=["base","properties"];b.prototype.add=function(a){this.properties=this.properties.concat(a);return this};b.prototype.hasProperties=function(){return!!this.properties.length}; -b.prototype.bareLiteral=function(a){return!this.properties.length&&this.base instanceof a};b.prototype.isArray=function(){return this.bareLiteral(qa)};b.prototype.isRange=function(){return this.bareLiteral(Y)};b.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()};b.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()};b.prototype.isNumber=function(){return this.bareLiteral(S)};b.prototype.isString=function(){return this.bareLiteral($a)}; -b.prototype.isRegex=function(){return this.bareLiteral(Z)};b.prototype.isUndefined=function(){return this.bareLiteral(oa)};b.prototype.isNull=function(){return this.bareLiteral(ba)};b.prototype.isBoolean=function(){return this.bareLiteral(Ca)};b.prototype.isAtomic=function(){var a,b,e,d;d=this.properties.concat(this.base);a=0;for(b=d.length;athis.properties.length&&!this.base.isComplex()&&(null==d||!d.isComplex()))return[this,this];q=new b(this.base,this.properties.slice(0, --1));q.isComplex()&&(e=new h(a.scope.freeVariable("base")),q=new b(new C(new D(e,q))));if(!d)return[q,e];d.isComplex()&&(c=new h(a.scope.freeVariable("name")),d=new G(new D(c,d.index)),c=new G(c));return[q.add(d),new b(e||q.base,[c||d])]};b.prototype.compileNode=function(a){var b,e,d,q,c;this.base.front=this.front;c=this.properties;b=this.base.compileToFragments(a,c.length?z:null);c.length&&aa.test(Da(b))&&b.push(this.makeCode("."));e=0;for(d=c.length;e=Math.abs(this.fromNum-this.toNum))return b=function(){h=[];for(var a=f=this.fromNum,b=this.toNum;f<=b?a<=b:a>=b;f<=b?a++:a--)h.push(a);return h}.apply(this),this.exclusive&&b.pop(),[this.makeCode("["+b.join(", ")+"]")];c=this.tab+da;d=a.scope.freeVariable("i",{single:!0});g=a.scope.freeVariable("results");q="\n"+c+g+" \x3d [];";e?(a.index=d,e=Da(this.compileNode(a))):(k=d+" \x3d "+this.fromC+(this.toC!==this.toVar? -", "+this.toC:""),e=this.fromVar+" \x3c\x3d "+this.toVar,e="var "+k+"; "+e+" ? "+d+" \x3c"+this.equals+" "+this.toVar+" : "+d+" \x3e"+this.equals+" "+this.toVar+"; "+e+" ? "+d+"++ : "+d+"--");d="{ "+g+".push("+d+"); }\n"+c+"return "+g+";\n"+a.indent;a=function(a){return null!=a?a.contains(Ia):void 0};if(a(this.from)||a(this.to))b=", arguments";return[this.makeCode("(function() {"+q+"\n"+c+"for ("+e+")"+d+"}).apply(this"+(null!=b?b:"")+")")]};return b}(a);g.Slice=ca=function(a){function b(a){this.range= -a;b.__super__.constructor.call(this)}na(b,a);b.prototype.children=["range"];b.prototype.compileNode=function(a){var b,e,d,c,q;b=this.range;c=b.to;d=(b=b.from)&&b.compileToFragments(a,P)||[this.makeCode("0")];c&&(b=c.compileToFragments(a,P),e=Da(b),this.range.exclusive||-1!==+e)&&(q=", "+(this.range.exclusive?e:c.isNumber()?""+(+e+1):(b=c.compileToFragments(a,z),"+"+Da(b)+" + 1 || 9e9")));return[this.makeCode(".slice("+Da(d)+(q||"")+")")]};return b}(a);g.Obj=B=function(a){function b(a,b){this.generated= -null!=b?b:!1;this.objects=this.properties=a||[]}na(b,a);b.prototype.children=["properties"];b.prototype.compileNode=function(a){var b,e,d,c,q,f,g,k,l,u,m,r,w;w=this.properties;if(this.generated)for(e=0,b=w.length;e=M?this.wrapInBraces(e):e;p=z[0];1===t&&p instanceof y&&p.error("Destructuring assignment has no target");q=this.variable.isObject();if(D&&1===t&&!(p instanceof R))return d=null,p instanceof b&&"object"===p.context?(e=p,f=e.variable,g=f.base,p=e.value,p instanceof b&&(d=p.value,p=p.variable)):(p instanceof b&&(d=p.value,p=p.variable),g=q?p["this"]?p.properties[0].name:new O(p.unwrap().value):new S(0)),c=g.unwrap()instanceof O,u=new K(u),u.properties.push(new (c?va:G)(g)),(w=Ga(p.unwrap().value))&& -p.error(w),d&&(u=new A("?",u,d)),(new b(p,u,null,{param:this.param})).compileToFragments(a,n);v=u.compileToFragments(a,k);x=Da(v);e=[];f=!1;u.unwrap()instanceof h&&!this.variable.assigns(x)||(e.push([this.makeCode((d=a.scope.freeVariable("ref"))+" \x3d ")].concat(Aa.call(v))),v=[this.makeCode(d)],x=d);d=u=0;for(m=z.length;un?this.wrapInBraces(b):b};return b}(a);g.Code=m=function(a){function b(a,b,e){this.params=a||[];this.body=b||new c;this.bound="boundfunc"===e;this.isGenerator=!!this.body.contains(function(a){return a instanceof A&&a.isYield()||a instanceof ra})}na(b,a);b.prototype.children=["params","body"]; -b.prototype.isStatement=function(){return!!this.ctor};b.prototype.jumps=Q;b.prototype.makeScope=function(a){return new J(a,this.body,this)};b.prototype.compileNode=function(a){var g,e,d,q,k,n,l,m,p,w,t,x,G;this.bound&&null!=(e=a.scope.method)&&e.bound&&(this.context=a.scope.method.context);if(this.bound&&!this.context)return this.context="_this",e=new b([new X(new h(this.context))],new c([this])),e=new f(e,[new ha]),e.updateLocationDataIfMissing(this.locationData),e.compileNode(a);a.scope=ma(a,"classScope")|| -this.makeScope(a.scope);a.scope.shared=ma(a,"sharedScope");a.indent+=da;delete a.bare;delete a.isExistentialEquals;e=[];g=[];m=this.params;q=0;for(n=m.length;q=z?this.wrapInBraces(g):g};b.prototype.eachParamName=function(a){var b,e,d,c,f;c=this.params;f=[];b=0;for(e=c.length;b=c.length)return[];if(1===c.length)return d=c[0],c=d.compileToFragments(a,k),e?c:[].concat(d.makeCode(za("slice",a)+".call("),c,d.makeCode(")"));e=c.slice(q);g=h=0;for(l=e.length;h=h?this.wrapInBraces(n):n};b.prototype.compileRoot=function(a){var b,e,d,n,c;a.indent=a.bare?"":ca;a.level=A;this.spaced= +!0;a.scope=new K(null,this,null,null!=(d=a.referencedVars)?d:[]);c=a.locals||[];d=0;for(e=c.length;d=y?this.wrapInBraces(b):b};return b}(S);g.StringLiteral=$a=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}oa(b,a);return b}(H);g.RegexLiteral=Y=function(a){function b(){return b.__super__.constructor.apply(this,arguments)} +oa(b,a);return b}(H);g.PassthroughLiteral=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}oa(b,a);return b}(H);g.IdentifierLiteral=r=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}oa(b,a);b.prototype.isAssignable=ja;return b}(H);g.PropertyName=Q=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}oa(b,a);b.prototype.isAssignable=ja;return b}(H);g.StatementLiteral=ya=function(a){function b(){return b.__super__.constructor.apply(this, +arguments)}oa(b,a);b.prototype.isStatement=ja;b.prototype.makeReturn=ea;b.prototype.jumps=function(a){if("break"===this.value&&!(null!=a&&a.loop||null!=a&&a.block)||"continue"===this.value&&(null==a||!a.loop))return this};b.prototype.compileNode=function(a){return[this.makeCode(""+this.tab+this.value+";")]};return b}(H);g.ThisLiteral=ga=function(a){function b(){b.__super__.constructor.call(this,"this")}oa(b,a);b.prototype.compileNode=function(a){var b;a=null!=(b=a.scope.method)&&b.bound?a.scope.method.context: +this.value;return[this.makeCode(a)]};return b}(H);g.UndefinedLiteral=pa=function(a){function b(){b.__super__.constructor.call(this,"undefined")}oa(b,a);b.prototype.compileNode=function(a){return[this.makeCode(a.level>=t?"(void 0)":"void 0")]};return b}(H);g.NullLiteral=aa=function(a){function b(){b.__super__.constructor.call(this,"null")}oa(b,a);return b}(H);g.BooleanLiteral=Ca=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}oa(b,a);return b}(H);g.Return=V=function(a){function b(a){this.expression= +a}oa(b,a);b.prototype.children=["expression"];b.prototype.isStatement=ja;b.prototype.makeReturn=ea;b.prototype.jumps=ea;b.prototype.compileToFragments=function(a,na){var e,d;e=null!=(d=this.expression)?d.makeReturn():void 0;return!e||e instanceof b?b.__super__.compileToFragments.call(this,a,na):e.compileToFragments(a,na)};b.prototype.compileNode=function(a){var b;b=[];b.push(this.makeCode(this.tab+("return"+(this.expression?" ":""))));this.expression&&(b=b.concat(this.expression.compileToFragments(a, +P)));b.push(this.makeCode(";"));return b};return b}(a);g.YieldReturn=ra=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}oa(b,a);b.prototype.compileNode=function(a){null==a.scope.parent&&this.error("yield can only occur inside functions");return b.__super__.compileNode.apply(this,arguments)};return b}(V);g.Value=L=function(a){function b(a,na,e){if(!na&&a instanceof b)return a;this.base=a;this.properties=na||[];e&&(this[e]=!0);return this}oa(b,a);b.prototype.children=["base", +"properties"];b.prototype.add=function(a){this.properties=this.properties.concat(a);return this};b.prototype.hasProperties=function(){return!!this.properties.length};b.prototype.bareLiteral=function(a){return!this.properties.length&&this.base instanceof a};b.prototype.isArray=function(){return this.bareLiteral(qa)};b.prototype.isRange=function(){return this.bareLiteral(X)};b.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()};b.prototype.isAssignable=function(){return this.hasProperties()|| +this.base.isAssignable()};b.prototype.isNumber=function(){return this.bareLiteral(S)};b.prototype.isString=function(){return this.bareLiteral($a)};b.prototype.isRegex=function(){return this.bareLiteral(Y)};b.prototype.isUndefined=function(){return this.bareLiteral(pa)};b.prototype.isNull=function(){return this.bareLiteral(aa)};b.prototype.isBoolean=function(){return this.bareLiteral(Ca)};b.prototype.isAtomic=function(){var a,b,e,d;d=this.properties.concat(this.base);a=0;for(b=d.length;athis.properties.length&&!this.base.isComplex()&&(null==d||!d.isComplex()))return[this,this];n=new b(this.base,this.properties.slice(0,-1));n.isComplex()&&(e=new r(a.scope.freeVariable("base")),n=new b(new C(new q(e,n))));if(!d)return[n,e];d.isComplex()&&(c=new r(a.scope.freeVariable("name")),d=new k(new q(c,d.index)),c=new k(c));return[n.add(d),new b(e||n.base,[c||d])]};b.prototype.compileNode=function(a){var b,e,d,n,c;this.base.front=this.front;c=this.properties; +b=this.base.compileToFragments(a,c.length?t:null);c.length&&Z.test(Da(b))&&b.push(this.makeCode("."));e=0;for(d=c.length;e=Math.abs(this.fromNum-this.toNum))return b=function(){h=[];for(var a=f=this.fromNum,b=this.toNum;f<=b?a<=b:a>=b;f<=b?a++:a--)h.push(a);return h}.apply(this),this.exclusive&&b.pop(),[this.makeCode("["+b.join(", ")+"]")];c=this.tab+ca;d=a.scope.freeVariable("i",{single:!0});g=a.scope.freeVariable("results");n="\n"+ +c+g+" \x3d [];";e?(a.index=d,e=Da(this.compileNode(a))):(k=d+" \x3d "+this.fromC+(this.toC!==this.toVar?", "+this.toC:""),e=this.fromVar+" \x3c\x3d "+this.toVar,e="var "+k+"; "+e+" ? "+d+" \x3c"+this.equals+" "+this.toVar+" : "+d+" \x3e"+this.equals+" "+this.toVar+"; "+e+" ? "+d+"++ : "+d+"--");d="{ "+g+".push("+d+"); }\n"+c+"return "+g+";\n"+a.indent;a=function(a){return null!=a?a.contains(Ja):void 0};if(a(this.from)||a(this.to))b=", arguments";return[this.makeCode("(function() {"+n+"\n"+c+"for ("+ +e+")"+d+"}).apply(this"+(null!=b?b:"")+")")]};return b}(a);g.Slice=ba=function(a){function b(a){this.range=a;b.__super__.constructor.call(this)}oa(b,a);b.prototype.children=["range"];b.prototype.compileNode=function(a){var b,e,d,c,n;b=this.range;c=b.to;d=(b=b.from)&&b.compileToFragments(a,P)||[this.makeCode("0")];c&&(b=c.compileToFragments(a,P),e=Da(b),this.range.exclusive||-1!==+e)&&(n=", "+(this.range.exclusive?e:c.isNumber()?""+(+e+1):(b=c.compileToFragments(a,t),"+"+Da(b)+" + 1 || 9e9")));return[this.makeCode(".slice("+ +Da(d)+(n||"")+")")]};return b}(a);g.Obj=z=function(a){function b(a,b){this.generated=null!=b?b:!1;this.objects=this.properties=a||[]}oa(b,a);b.prototype.children=["properties"];b.prototype.compileNode=function(a){var b,e,d,c,n,f,g,h,k,m,t,l,p;p=this.properties;if(this.generated)for(e=0,b=p.length;e=y?this.wrapInBraces(e):e;q=v[0];1===u&&q instanceof x&&q.error("Destructuring assignment has no target");g=this.variable.isObject();if(w&&1===u&&!(q instanceof R))return d=null,q instanceof b&&"object"===q.context?(e=q,f=e.variable,n=f.base,q=e.value,q instanceof b&&(d=q.value,q=q.variable)):(q instanceof b&&(d=q.value,q=q.variable),n=g?q["this"]?q.properties[0].name:new Q(q.unwrap().value):new S(0)),c=n.unwrap()instanceof Q,l=new L(l),l.properties.push(new (c?ua:k)(n)),(p=Ga(q.unwrap().value))&& +q.error(p),d&&(l=new B("?",l,d)),(new b(q,l,null,{param:this.param})).compileToFragments(a,A);C=l.compileToFragments(a,h);z=Da(C);e=[];f=!1;l.unwrap()instanceof r&&!this.variable.assigns(z)||(e.push([this.makeCode((d=a.scope.freeVariable("ref"))+" \x3d ")].concat(Aa.call(C))),C=[this.makeCode(d)],z=d);d=l=0;for(t=v.length;lA?this.wrapInBraces(b):b};return b}(a);g.Code=l=function(a){function b(a,b,e){this.params=a||[];this.body=b||new c;this.bound="boundfunc"===e;this.isGenerator=!!this.body.contains(function(a){return a instanceof B&&a.isYield()||a instanceof ra})}oa(b,a);b.prototype.children=["params","body"]; +b.prototype.isStatement=function(){return!!this.ctor};b.prototype.jumps=I;b.prototype.makeScope=function(a){return new K(a,this.body,this)};b.prototype.compileNode=function(a){var n,e,d,g,h,k,m,l,p,y,A,u,v;this.bound&&null!=(e=a.scope.method)&&e.bound&&(this.context=a.scope.method.context);if(this.bound&&!this.context)return this.context="_this",e=new b([new W(new r(this.context))],new c([this])),e=new f(e,[new ga]),e.updateLocationDataIfMissing(this.locationData),e.compileNode(a);a.scope=ma(a,"classScope")|| +this.makeScope(a.scope);a.scope.shared=ma(a,"sharedScope");a.indent+=ca;delete a.bare;delete a.isExistentialEquals;e=[];n=[];l=this.params;g=0;for(k=l.length;g=t?this.wrapInBraces(n):n};b.prototype.eachParamName=function(a){var b,e,d,c,f;c=this.params;f=[];b=0;for(e=c.length;b=c.length)return[];if(1===c.length)return d=c[0],c=d.compileToFragments(a,h),e?c:[].concat(d.makeCode(za("slice",a)+".call("),c,d.makeCode(")"));e=c.slice(n);g=k=0;for(m=e.length;k=z)return(new C(this)).compileToFragments(a);c="+"===d||"-"===d;("new"===d||"typeof"===d||"delete"===d||c&&this.first instanceof b&&this.first.operator=== -d)&&e.push([this.makeCode(" ")]);if(c&&this.first instanceof b||"new"===d&&this.first.isStatement(a))this.first=new C(this.first);e.push(this.first.compileToFragments(a,M));this.flip&&e.reverse();return this.joinFragmentArrays(e,"")};b.prototype.compileYield=function(a){var b,e,c;e=[];b=this.operator;null==a.scope.parent&&this.error("yield can only occur inside functions");0<=Ha.call(Object.keys(this.first),"expression")&&!(this.first instanceof ia)?null!=this.first.expression&&e.push(this.first.expression.compileToFragments(a, -M)):(a.level>=P&&e.push([this.makeCode("(")]),e.push([this.makeCode(b)]),""!==(null!=(c=this.first.base)?c.value:void 0)&&e.push([this.makeCode(" ")]),e.push(this.first.compileToFragments(a,M)),a.level>=P&&e.push([this.makeCode(")")]));return this.joinFragmentArrays(e,"")};b.prototype.compilePower=function(a){var b;b=new K(new h("Math"),[new va(new O("pow"))]);return(new f(b,[this.first,this.second])).compileToFragments(a)};b.prototype.compileFloorDivision=function(a){var d,e;e=new K(new h("Math"), -[new va(new O("floor"))]);d=new b("/",this.first,this.second);return(new f(e,[d])).compileToFragments(a)};b.prototype.compileModulo=function(a){var b;b=new K(new r(za("modulo",a)));return(new f(b,[this.first,this.second])).compileToFragments(a)};b.prototype.toString=function(a){return b.__super__.toString.call(this,a,this.constructor.name+" "+this.operator)};return b}(a);g.In=w=function(a){function b(a,b){this.object=a;this.array=b}na(b,a);b.prototype.children=["object","array"];b.prototype.invert= -U;b.prototype.compileNode=function(a){var b,e,d,c,f;if(this.array instanceof K&&this.array.isArray()&&this.array.base.objects.length){f=this.array.base.objects;e=0;for(d=f.length;e=t)return(new C(this)).compileToFragments(a);c="+"===d||"-"===d;("new"===d||"typeof"===d||"delete"===d||c&&this.first instanceof b&&this.first.operator=== +d)&&e.push([this.makeCode(" ")]);if(c&&this.first instanceof b||"new"===d&&this.first.isStatement(a))this.first=new C(this.first);e.push(this.first.compileToFragments(a,y));this.flip&&e.reverse();return this.joinFragmentArrays(e,"")};b.prototype.compileYield=function(a){var b,e,c;e=[];b=this.operator;null==a.scope.parent&&this.error("yield can only occur inside functions");0<=Ha.call(Object.keys(this.first),"expression")&&!(this.first instanceof ha)?null!=this.first.expression&&e.push(this.first.expression.compileToFragments(a, +y)):(a.level>=P&&e.push([this.makeCode("(")]),e.push([this.makeCode(b)]),""!==(null!=(c=this.first.base)?c.value:void 0)&&e.push([this.makeCode(" ")]),e.push(this.first.compileToFragments(a,y)),a.level>=P&&e.push([this.makeCode(")")]));return this.joinFragmentArrays(e,"")};b.prototype.compilePower=function(a){var b;b=new L(new r("Math"),[new ua(new Q("pow"))]);return(new f(b,[this.first,this.second])).compileToFragments(a)};b.prototype.compileFloorDivision=function(a){var d,e;e=new L(new r("Math"), +[new ua(new Q("floor"))]);d=this.second.isComplex()?new C(this.second):this.second;d=new b("/",this.first,d);return(new f(e,[d])).compileToFragments(a)};b.prototype.compileModulo=function(a){var b;b=new L(new H(za("modulo",a)));return(new f(b,[this.first,this.second])).compileToFragments(a)};b.prototype.toString=function(a){return b.__super__.toString.call(this,a,this.constructor.name+" "+this.operator)};return b}(a);g.In=O=function(a){function b(a,b){this.object=a;this.array=b}oa(b,a);b.prototype.children= +["object","array"];b.prototype.invert=T;b.prototype.compileNode=function(a){var b,e,d,c,f;if(this.array instanceof L&&this.array.isArray()&&this.array.base.objects.length){f=this.array.base.objects;e=0;for(d=f.length;eL,this.step&&null!=L&&m||(e=d.freeVariable("len")),f=""+ -G+t+" \x3d 0, "+e+" \x3d "+y+".length",g=""+G+t+" \x3d "+y+".length - 1",e=t+" \x3c "+e,d=t+" \x3e\x3d 0",this.step?(null!=L?m&&(e=d,f=g):(e=B+" \x3e 0 ? "+e+" : "+d,f="("+B+" \x3e 0 ? ("+f+") : "+g+")"),t=t+" +\x3d "+B):t=""+(z!==t?"++"+t:t+"++"),f=[this.makeCode(f+"; "+e+"; "+G+t)]));this.returns&&(A=""+this.tab+l+" \x3d [];\n",E="\n"+this.tab+"return "+l+";",b.makeReturn(l));this.guard&&(1=I?this.wrapInBraces(b):b};b.prototype.unfoldSoak=function(){return this.soak&&this};return b}(a);la={extend:function(a){return"function(child, parent) { for (var key in parent) { if ("+za("hasProp",a)+".call(parent, key)) child[key] \x3d parent[key]; } function ctor() { this.constructor \x3d child; } ctor.prototype \x3d parent.prototype; child.prototype \x3d new ctor(); child.__super__ \x3d 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 \x3d 0, l \x3d this.length; i \x3c l; i++) { if (i in this \x26\x26 this[i] \x3d\x3d\x3d item) return i; } return -1; }"},modulo:function(){return"function(a, b) { return (+a % (b \x3d +b) + b) % b; }"},hasProp:function(){return"{}.hasOwnProperty"},slice:function(){return"[].slice"}};n=1;P=2;k=3;I=4;M=5;z=6;da=" ";aa=/^[+-]?\d+$/;za= -function(a,b){var c,f;f=b.scope.root;if(a in f.utilities)return f.utilities[a];c=f.freeVariable(a);f.assign(c,la[a](b));return f.utilities[a]=c};Oa=function(a,b){a=a.replace(/\n/g,"$\x26"+b);return a.replace(/\s+$/,"")};Ia=function(a){return a instanceof h&&"arguments"===a.value};Sa=function(a){return a instanceof ha||a instanceof m&&a.bound||a instanceof ka};ta=function(a){return a.isComplex()||("function"===typeof a.isAssignable?a.isAssignable():void 0)};La=function(a,b,c){if(a=b[c].unfoldSoak(a))return b[c]= -a.body,a.body=new K(b),a}}).call(this);return g}();t["./sourcemap"]=function(){var g={};(function(){var t;t=function(){function g(g){this.line=g;this.columns=[]}g.prototype.add=function(g,a,c){var t;t=a[0];a=a[1];null==c&&(c={});if(!this.columns[g]||!c.noReplace)return this.columns[g]={line:this.line,column:g,sourceLine:t,sourceColumn:a}};g.prototype.sourceLocation=function(g){for(var a;!((a=this.columns[g])||0>=g);)g--;return a&&[a.sourceLine,a.sourceColumn]};return g}();g=function(){function g(){this.lines= -[]}g.prototype.add=function(g,a,c){var D,f;null==c&&(c={});f=a[0];a=a[1];return((D=this.lines)[f]||(D[f]=new t(f))).add(a,g,c)};g.prototype.sourceLocation=function(g){var a,c;a=g[0];for(g=g[1];!((c=this.lines[a])||0>=a);)a--;return c&&c.sourceLocation(g)};g.prototype.generate=function(g,a){var c,t,f,p,m,D,F,x,y,v,E,N,l;null==g&&(g={});null==a&&(a=null);m=D=p=l=0;v=!1;c="";E=this.lines;f=t=0;for(F=E.length;tg?1:0);c||!a;)g=c&31,(c>>=5)&&(g|=32),a+=this.encodeBase64(g);return a};g.prototype.encodeBase64= -function(g){var a;if(!(a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[g]))throw Error("Cannot Base64 encode value: "+g);return a};return g}()}).call(this);return g}();t["./coffee-script"]=function(){var g={};(function(){var qa,xa,D,a,c,Ca,f,p,m,H,F,x,y,v,E,N={}.hasOwnProperty;f=t("fs");E=t("vm");y=t("path");qa=t("./lexer").Lexer;x=t("./parser").parser;p=t("./helpers");xa=t("./sourcemap");c=t("../../package.json");g.VERSION=c.version;g.FILE_EXTENSIONS=[".coffee",".litcoffee", -".coffee.md"];g.helpers=p;D=function(a){switch(!1){case "function"!==typeof Buffer:return(new Buffer(a)).toString("base64");case "function"!==typeof btoa:return btoa(encodeURIComponent(a).replace(/%([0-9A-F]{2})/g,function(a,c){return String.fromCharCode("0x"+c)}));default:throw Error("Unable to base64 encode inline sourcemap.");}};c=function(a){return function(c,f){null==f&&(f={});try{return a.call(this,c,f)}catch(w){if("string"!==typeof c)throw w;throw p.updateSyntaxError(w,c,f.filename);}}};g.compile= -a=c(function(a,c){var f,g,h,l,m,t,k,v,y,n,r,E;h=p.extend;c=h({},c);(h=c.sourceMap||c.inlineMap)&&(y=new xa);g=F.tokenize(a,c);l=c;v=[];m=0;for(t=g.length;mx,this.step&&null!=x&&m||(e=d.freeVariable("len")),f=""+v+p+" \x3d 0, "+e+" \x3d "+I+".length",g=""+v+p+" \x3d "+I+".length - 1",e=p+" \x3c "+e,d=p+" \x3e\x3d 0",this.step?(null!=x?m&&(e=d,f=g):(e=D+" \x3e 0 ? "+e+" : "+d,f="("+D+" \x3e 0 ? ("+f+") : "+g+")"),p=p+" +\x3d "+D):p=""+(y!==p?"++"+p:p+"++"),f=[this.makeCode(f+"; "+e+"; "+v+p)]));this.returns&&(w=""+this.tab+n+" \x3d [];\n",B="\n"+this.tab+"return "+n+";",b.makeReturn(n)); +this.guard&&(1=p?this.wrapInBraces(b):b};b.prototype.unfoldSoak=function(){return this.soak&&this};return b}(a);la={extend:function(a){return"function(child, parent) { for (var key in parent) { if ("+za("hasProp",a)+".call(parent, key)) child[key] \x3d parent[key]; } function ctor() { this.constructor \x3d child; } ctor.prototype \x3d parent.prototype; child.prototype \x3d new ctor(); child.__super__ \x3d 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 \x3d 0, l \x3d this.length; i \x3c l; i++) { if (i in this \x26\x26 this[i] \x3d\x3d\x3d item) return i; } return -1; }"},modulo:function(){return"function(a, b) { return (+a % (b \x3d +b) + b) % b; }"},hasProp:function(){return"{}.hasOwnProperty"},slice:function(){return"[].slice"}};A=1;P=2;h=3;p=4;y=5;t=6;ca=" ";Z=/^[+-]?\d+$/;za= +function(a,b){var c,f;f=b.scope.root;if(a in f.utilities)return f.utilities[a];c=f.freeVariable(a);f.assign(c,la[a](b));return f.utilities[a]=c};Pa=function(a,b){a=a.replace(/\n/g,"$\x26"+b);return a.replace(/\s+$/,"")};Ja=function(a){return a instanceof r&&"arguments"===a.value};Ta=function(a){return a instanceof ga||a instanceof l&&a.bound||a instanceof ka};ta=function(a){return a.isComplex()||("function"===typeof a.isAssignable?a.isAssignable():void 0)};Na=function(a,b,c){if(a=b[c].unfoldSoak(a))return b[c]= +a.body,a.body=new L(b),a}}).call(this);return g}();u["./sourcemap"]=function(){var g={};(function(){var u;u=function(){function g(g){this.line=g;this.columns=[]}g.prototype.add=function(g,a,c){var q;q=a[0];a=a[1];null==c&&(c={});if(!this.columns[g]||!c.noReplace)return this.columns[g]={line:this.line,column:g,sourceLine:q,sourceColumn:a}};g.prototype.sourceLocation=function(g){for(var a;!((a=this.columns[g])||0>=g);)g--;return a&&[a.sourceLine,a.sourceColumn]};return g}();g=function(){function g(){this.lines= +[]}g.prototype.add=function(g,a,c){var q,f;null==c&&(c={});f=a[0];a=a[1];return((q=this.lines)[f]||(q[f]=new u(f))).add(a,g,c)};g.prototype.sourceLocation=function(g){var a,c;a=g[0];for(g=g[1];!((c=this.lines[a])||0>=a);)a--;return c&&c.sourceLocation(g)};g.prototype.generate=function(g,a){var c,q,f,u,l,w,G,F,x,v,M,N,J;null==g&&(g={});null==a&&(a=null);l=w=u=J=0;v=!1;c="";M=this.lines;f=q=0;for(G=M.length;qg?1:0);c||!a;)g=c&31,(c>>=5)&&(g|=32),a+=this.encodeBase64(g);return a};g.prototype.encodeBase64= +function(g){var a;if(!(a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[g]))throw Error("Cannot Base64 encode value: "+g);return a};return g}()}).call(this);return g}();u["./coffee-script"]=function(){var g={};(function(){var qa,xa,q,a,c,Ca,f,D,l,w,G,F,x,v,M,N,J,r,E,O={}.hasOwnProperty;D=u("fs");E=u("vm");M=u("path");qa=u("./lexer").Lexer;v=u("./parser").parser;w=u("./helpers");xa=u("./sourcemap");c=u("../../package.json");g.VERSION=c.version;g.FILE_EXTENSIONS=[".coffee",".litcoffee", +".coffee.md"];g.helpers=w;q=function(a){switch(!1){case "function"!==typeof Buffer:return(new Buffer(a)).toString("base64");case "function"!==typeof btoa:return btoa(encodeURIComponent(a).replace(/%([0-9A-F]{2})/g,function(a,c){return String.fromCharCode("0x"+c)}));default:throw Error("Unable to base64 encode inline sourcemap.");}};c=function(a){return function(c,f){null==f&&(f={});try{return a.call(this,c,f)}catch(p){if("string"!==typeof c)throw p;throw w.updateSyntaxError(p,c,f.filename);}}};r= +{};J={};g.compile=a=c(function(a,c){var f,g,h,k,m,l,u,D,E,I,F,G,z;h=w.extend;c=h({},c);l=c.sourceMap||c.inlineMap||null==c.filename;h=c.filename||"\x3canonymous\x3e";r[h]=a;l&&(I=new xa);g=x.tokenize(a,c);k=c;E=[];m=0;for(u=g.length;mCoffeeScript Test Suite obj.method() eq obj.item, 3 +test "#4411: Allow @values as loop indices", -> + obj = + index: null + get: -> @index + method: -> + @get() for _, @index in [1, 2, 3] + eq obj.index, null + arrayEq obj.method(), [0, 1, 2] + eq obj.index, 3 + test "#2525, #1187, #1208, #1758, looping over an array forwards", -> list = [0, 1, 2, 3, 4] @@ -3470,9 +3480,21 @@

CoffeeScript Test Suite

if require? + os = require 'os' fs = require 'fs' path = require 'path' + test "patchStackTrace line patching", -> + err = new Error 'error' + ok err.stack.match /test[\/\\]error_messages\.coffee:\d+:\d+\b/ + + test "patchStackTrace stack prelude consistent with V8", -> + err = new Error + ok err.stack.match /^Error\n/ # Notice no colon when no message. + + err = new Error 'error' + ok err.stack.match /^Error: error\n/ + test "#2849: compilation error in a require()d file", -> # Create a temporary file to require(). ok not fs.existsSync 'test/syntax-error.coffee' @@ -3490,6 +3512,57 @@

CoffeeScript Test Suite

finally fs.unlinkSync 'test/syntax-error.coffee' + test "#3890 Error.prepareStackTrace doesn't throw an error if a compiled file is deleted", -> + # Adapted from https://github.com/atom/coffee-cash/blob/master/spec/coffee-cash-spec.coffee + filePath = path.join os.tmpdir(), 'PrepareStackTraceTestFile.coffee' + fs.writeFileSync filePath, "module.exports = -> throw new Error('hello world')" + throwsAnError = require filePath + fs.unlinkSync filePath + + try + throwsAnError() + catch error + + eq error.message, 'hello world' + doesNotThrow(-> error.stack) + notEqual error.stack.toString().indexOf(filePath), -1 + + test "#4418 stack traces for compiled files reference the correct line number", -> + filePath = path.join os.tmpdir(), 'StackTraceLineNumberTestFile.coffee' + fileContents = """ + testCompiledFileStackTraceLineNumber = -> + # `a` on the next line is undefined and should throw a ReferenceError + console.log a if true + + do testCompiledFileStackTraceLineNumber + """ + fs.writeFileSync filePath, fileContents + + try + require filePath + catch error + fs.unlinkSync filePath + + # Make sure the line number reported is line 3 (the original Coffee source) + # and not line 6 (the generated JavaScript). + eq /StackTraceLineNumberTestFile.coffee:(\d)/.exec(error.stack.toString())[1], '3' + + +test "#4418 stack traces for compiled strings reference the correct line number", -> + try + CoffeeScript.run """ + testCompiledStringStackTraceLineNumber = -> + # `a` on the next line is undefined and should throw a ReferenceError + console.log a if true + + do testCompiledStringStackTraceLineNumber + """ + catch error + + # Make sure the line number reported is line 3 (the original Coffee source) + # and not line 6 (the generated JavaScript). + eq /at testCompiledStringStackTraceLineNumber.*:(\d):/.exec(error.stack.toString())[1], '3' + test "#1096: unexpected generated tokens", -> # Implicit ends @@ -3844,7 +3917,7 @@

CoffeeScript Test Suite

assertErrorFormat ''' ///a \\u002 0 space/// ''', ''' - [stdin]:1:6: error: invalid escape sequence \\u002 + [stdin]:1:6: error: invalid escape sequence \\u002 \n\ ///a \\u002 0 space/// ^\^^^^^ ''' @@ -4596,6 +4669,13 @@

CoffeeScript Test Suite

^ ''' +test "can't use pattern matches for loop indices", -> + assertErrorFormat 'a for b, {c} in d', ''' + [stdin]:1:10: error: index cannot be a pattern matching expression + a for b, {c} in d + ^^^ + ''' +