diff --git a/documentation/coffee/block_comment.coffee b/documentation/coffee/block_comment.coffee index ed949f10..6b56a182 100644 --- a/documentation/coffee/block_comment.coffee +++ b/documentation/coffee/block_comment.coffee @@ -1,5 +1,5 @@ ### -CoffeeScript Compiler v0.9.6 +CoffeeScript Compiler v1.0.0 Released under the MIT License ### diff --git a/documentation/coffee/parallel_assignment.coffee b/documentation/coffee/parallel_assignment.coffee index b300e443..2b3fd348 100644 --- a/documentation/coffee/parallel_assignment.coffee +++ b/documentation/coffee/parallel_assignment.coffee @@ -3,3 +3,4 @@ theSwitch = 0 [theBait, theSwitch] = [theSwitch, theBait] + diff --git a/documentation/css/docs.css b/documentation/css/docs.css index f859d753..b84c9575 100644 --- a/documentation/css/docs.css +++ b/documentation/css/docs.css @@ -64,6 +64,7 @@ code, pre, tt, textarea { word-wrap: break-word; } tt { + display: inline-block; background: #fff; border: 1px solid #dedede; padding: 0px 0.2em; @@ -86,9 +87,10 @@ code, pre, tt, textarea { div.code { position: relative; background: #fff; - -webkit-box-shadow: 0px 0px 5px rgba(0,0,0,0.3); - -moz-box-shadow: 0px 0px 5px rgba(0,0,0,0.3); - box-shadow: 0px 0px 5px rgba(0,0,0,0.3); + border: 1px solid #d8d8d8; + -webkit-box-shadow: 0px 0px 4px rgba(0,0,0,0.23); + -moz-box-shadow: 0px 0px 4px rgba(0,0,0,0.23); + box-shadow: 0px 0px 4px rgba(0,0,0,0.23); zoom: 1; } div.code .minibutton { @@ -313,20 +315,23 @@ div.code { width: 47%; right: 50%; float: left; } - #repl_source { - padding-left: 5px; - width: 100%; - height: 100%; - border: 0; - overflow-y: auto; - resize: none; - } - #repl_results { - text-transform: none; - overflow-y: auto; - left: 50%; - border-left-color: #555; + #repl_source { + padding-left: 5px; + width: 100%; + height: 100%; + border: 0; + overflow-y: auto; + resize: none; + } + #repl_results_wrap { + white-space: pre; } + #repl_results { + text-transform: none; + overflow-y: auto; + left: 50%; + border-left-color: #555; + } /*----------------------------- Mini Buttons ---------------------------------*/ .minibutton { diff --git a/documentation/docs/coffee-script.html b/documentation/docs/coffee-script.html index 76c512b3..b694722c 100644 --- a/documentation/docs/coffee-script.html +++ b/documentation/docs/coffee-script.html @@ -12,7 +12,7 @@ execute all scripts present in text/coffeescript tags.

content = compile fs.readFileSync filename, 'utf8' module._compile content, filename else if require.registerExtension - require.registerExtension '.coffee', (content) -> compile content

The current CoffeeScript version number.

exports.VERSION = '0.9.6'

Words that cannot be used as identifiers in CoffeeScript code

exports.RESERVED = RESERVED

Expose helpers for testing.

exports.helpers = require './helpers'

Compile a string of CoffeeScript code to JavaScript, using the Coffee/Jison + require.registerExtension '.coffee', (content) -> compile content

The current CoffeeScript version number.

exports.VERSION = '1.0.0'

Words that cannot be used as identifiers in CoffeeScript code

exports.RESERVED = RESERVED

Expose helpers for testing.

exports.helpers = require './helpers'

Compile a string of CoffeeScript code to JavaScript, using the Coffee/Jison compiler.

exports.compile = compile = (code, options = {}) ->
   try
     (parser.parse lexer.tokenize code).compile options
diff --git a/documentation/docs/command.html b/documentation/docs/command.html
index b0dddb0a..e5feb940 100644
--- a/documentation/docs/command.html
+++ b/documentation/docs/command.html
@@ -18,6 +18,7 @@ interactive REPL.

['-c', '--compile', 'compile to JavaScript and save as .js files'] ['-i', '--interactive', 'run an interactive CoffeeScript REPL'] ['-o', '--output [DIR]', 'set the directory for compiled JavaScript'] + ['-j', '--join', 'concatenate the scripts before compiling'] ['-w', '--watch', 'watch scripts for changes, and recompile'] ['-p', '--print', 'print the compiled JavaScript to stdout'] ['-l', '--lint', 'pipe the compiled JavaScript through JSLint'] @@ -27,33 +28,27 @@ interactive REPL.

['-b', '--bare', 'compile without the top-level function wrapper'] ['-t', '--tokens', 'print the tokens that the lexer produces'] ['-n', '--nodes', 'print the parse tree that Jison produces'] + [ '--nodejs [ARGS]', 'pass options through to the "node" binary'] ['-v', '--version', 'display CoffeeScript version'] ['-h', '--help', 'display this help message'] -]

Switches that are still supported, but will cause a warning message.

DEPRECATED_SWITCHES = [
-  ['--no-wrap',               'compile without the top-level function wrapper']
-]
-
-ALL_SWITCHES = SWITCHES.concat DEPRECATED_SWITCHES

Top-level objects shared by all the functions.

opts         = {}
+]

Top-level objects shared by all the functions.

opts         = {}
 sources      = []
-optionParser = null

Run coffee by parsing passed options and determining what action to take. +contents = [] +optionParser = null

Run coffee by parsing passed options and determining what action to take. Many flags cause us to divert before compiling anything. Flags passed after -- will be passed verbatim to your script as arguments in process.argv

exports.run = ->
   parseOptions()
-  return usage()                              if opts.help
-  return version()                            if opts.version
-  return require './repl'                     if opts.interactive
-  return compileStdio()                       if opts.stdio
-  return compileScript null, sources[0]       if opts.eval
-  return require './repl'                     unless sources.length
-  separator = sources.indexOf '--'
-  flags = []
-  if separator >= 0
-    flags = sources.splice separator + 1
-    sources.pop()
+  return forkNode()                      if opts.nodejs
+  return usage()                         if opts.help
+  return version()                       if opts.version
+  return require './repl'                if opts.interactive
+  return compileStdio()                  if opts.stdio
+  return compileScript null, sources[0]  if opts.eval
+  return require './repl'                unless sources.length
   if opts.run
-    flags = sources.splice(1).concat flags
-  process.ARGV = process.argv = process.argv.slice(0, 2).concat flags
-  compileScripts()

Asynchronously read in each CoffeeScript in a list of source files and + opts.literals = sources.splice(1).concat opts.literals + process.ARGV = process.argv = process.argv.slice(0, 2).concat opts.literals + compileScripts()

Asynchronously read in each CoffeeScript in a list of source files and compile them. If a directory is passed, recursively compile all '.coffee' extension source files in it and all subdirectories.

compileScripts = ->
   for source in sources
@@ -67,9 +62,14 @@ compile them. If a directory is passed, recursively compile all
               for file in files
                 compile path.join(source, file)
           else if topLevel or path.extname(source) is '.coffee'
-            fs.readFile source, (err, code) -> compileScript(source, code.toString(), base)
-            watch source, base if opts.watch
-    compile source, true

Compile a single source script, containing the given code, according to the + fs.readFile source, (err, code) -> + if opts.join + contents[sources.indexOf source] = code.toString() + compileJoin() if helpers.compact(contents).length is sources.length + else + compileScript(source, code.toString(), base) + watch source, base if opts.watch and not opts.join + compile source, true

Compile a single source script, containing the given code, according to the requested options. If evaluating the script directly sets __filename, __dirname and module.filename to be correct relative to the script's path.

compileScript = (file, input, base) ->
   o = opts
@@ -93,14 +93,17 @@ requested options. If evaluating the script directly sets __filenamereturn if CoffeeScript.listeners('failure').length
     return printLine err.message if o.watch
     printWarn err.stack
-    process.exit 1

Attach the appropriate listeners to compile scripts incoming over stdin, + process.exit 1

Attach the appropriate listeners to compile scripts incoming over stdin, and write them back to stdout.

compileStdio = ->
   code = ''
   stdin = process.openStdin()
   stdin.on 'data', (buffer) ->
     code += buffer.toString() if buffer
   stdin.on 'end', ->
-    compileScript null, code

Watch a source CoffeeScript file using fs.watchFile, recompiling it every + compileScript null, code

After all of the source files are done being read, concatenate and compile +them together.

compileJoin = ->
+  code = contents.join '\n'
+  compileScript "concatenation", code, "concatenation"

Watch a source CoffeeScript file using fs.watchFile, recompiling it every time the file is updated. May be used in combination with other options, such as --lint or --print.

watch = (source, base) ->
   fs.watchFile source, {persistent: true, interval: 500}, (curr, prev) ->
@@ -112,7 +115,7 @@ are written out in cwd as .js files with the same name
 directory can be customized with --output.

writeJs = (source, js, base) ->
   filename  = path.basename(source, path.extname(source)) + '.js'
   srcDir    = path.dirname source
-  baseDir   = srcDir.substring base.length
+  baseDir   = if base is '.' then srcDir else srcDir.substring base.length
   dir       = if opts.output then path.join opts.output, baseDir else srcDir
   jsPath    = path.join dir, filename
   compile   = ->
@@ -135,17 +138,23 @@ any errors or warnings that arise.

"[#{tag} #{value}]" printLine strings.join(' ')

Use the OptionParser module to extract all options from process.argv that are specified in SWITCHES.

parseOptions = ->
-  optionParser  = new optparse.OptionParser ALL_SWITCHES, BANNER
+  optionParser  = new optparse.OptionParser SWITCHES, BANNER
   o = opts      = optionParser.parse process.argv.slice 2
   o.compile     or=  !!o.output
   o.run         = not (o.compile or o.print or o.lint)
   o.print       = !!  (o.print or (o.eval or o.stdio and o.compile))
-  sources       = o.arguments
-  if opts['no-wrap']
-    printWarn '--no-wrap is deprecated; please use --bare instead.'

The compile-time options to pass to the CoffeeScript compiler.

compileOptions = (fileName) -> {fileName, bare: opts.bare or opts['no-wrap']}

Print the --help usage message and exit. Deprecated switches are not + sources = o.arguments

The compile-time options to pass to the CoffeeScript compiler.

compileOptions = (fileName) -> {fileName, bare: opts.bare}

Start up a new Node.js instance with the arguments in --nodejs passed to +the node binary, preserving the other options.

forkNode = ->
+  nodeArgs = opts.nodejs.split /\s+/
+  args     = process.argv[1..]
+  args.splice args.indexOf('--nodejs'), 2
+  spawn process.execPath, nodeArgs.concat(args),
+    cwd:        process.cwd()
+    env:        process.env
+    customFds:  [0, 1, 2]

Print the --help usage message and exit. Deprecated switches are not shown.

usage = ->
   printLine (new optparse.OptionParser SWITCHES, BANNER).help()
-  process.exit 0

Print the --version message and exit.

version = ->
+  process.exit 0

Print the --version message and exit.

version = ->
   printLine "CoffeeScript version #{CoffeeScript.VERSION}"
   process.exit 0
 
diff --git a/documentation/docs/grammar.html b/documentation/docs/grammar.html
index 261d0d4d..09c70add 100644
--- a/documentation/docs/grammar.html
+++ b/documentation/docs/grammar.html
@@ -69,8 +69,8 @@ them somewhat circular.

]

An indented block of expressions. Note that the Rewriter will convert some postfix forms into blocks for us, by adjusting the token stream.

  Block: [
-    o 'INDENT Body OUTDENT',                    -> $2
     o 'INDENT OUTDENT',                         -> new Expressions
+    o 'INDENT Body OUTDENT',                    -> $2
   ]

A literal identifier, a variable name or property.

  Identifier: [
     o 'IDENTIFIER',                             -> new Literal $1
   ]

Alphanumerics are separated from the other Literal matchers because @@ -185,10 +185,8 @@ and optional references to the superclass.

]

Ordinary function invocation, or a chained series of calls.

  Invocation: [
     o 'Value OptFuncExist Arguments',           -> new Call $1, $3, $2
     o 'Invocation OptFuncExist Arguments',      -> new Call $1, $3, $2
-    o 'SUPER',                                  ->
-      new Call 'super', [new Splat new Literal 'arguments']
-    o 'SUPER Arguments',                        ->
-      new Call 'super', $2
+    o 'SUPER',                                  -> new Call 'super', [new Splat new Literal 'arguments']
+    o 'SUPER Arguments',                        -> new Call 'super', $2
   ]

An optional existence check on a function.

  OptFuncExist: [
     o '',                                       -> no
     o 'FUNC_EXIST',                             -> yes
@@ -262,14 +260,14 @@ or postfix, with a single expression. There is no do..while.

]

Array, object, and range comprehensions, at the most generic level. Comprehensions can either be normal, with a block of expressions to execute, or postfix, with a single expression.

  For: [
-    o 'Statement  ForBody',                     -> new For $1, $2, $2.vars[0], $2.vars[1]
-    o 'Expression ForBody',                     -> new For $1, $2, $2.vars[0], $2.vars[1]
-    o 'ForBody    Block',                       -> new For $2, $1, $1.vars[0], $1.vars[1]
+    o 'Statement  ForBody',                     -> new For $1, $2
+    o 'Expression ForBody',                     -> new For $1, $2
+    o 'ForBody    Block',                       -> new For $2, $1
   ]
 
   ForBody: [
-    o 'FOR Range',                              -> source: new Value($2), vars: []
-    o 'ForStart ForSource',                     -> $2.own = $1.own; $2.vars = $1; $2
+    o 'FOR Range',                              -> source: new Value($2)
+    o 'ForStart ForSource',                     -> $2.own = $1.own; $2.name = $1[0]; $2.index = $1[1]; $2
   ]
 
   ForStart: [
@@ -313,17 +311,14 @@ in fixed-size increments.

]

The most basic form of if is a condition and an action. The following if-related rules are broken up along these lines in order to avoid ambiguity.

  IfBlock: [
-    o 'IF Expression Block',                    -> new If $2, $3
-    o 'UNLESS Expression Block',                -> new If $2, $3, invert: true
-    o 'IfBlock ELSE IF Expression Block',       -> $1.addElse new If $4, $5
+    o 'IF Expression Block',                    -> new If $2, $3, type: $1
+    o 'IfBlock ELSE IF Expression Block',       -> $1.addElse new If $4, $5, type: $3
     o 'IfBlock ELSE Block',                     -> $1.addElse $3
   ]

The full complement of if expressions, including postfix one-liner if and unless.

  If: [
     o 'IfBlock'
-    o 'Statement  POST_IF Expression',          -> new If $3, Expressions.wrap([$1]), statement: true
-    o 'Expression POST_IF Expression',          -> new If $3, Expressions.wrap([$1]), statement: true
-    o 'Statement  POST_UNLESS Expression',      -> new If $3, Expressions.wrap([$1]), statement: true, invert: true
-    o 'Expression POST_UNLESS Expression',      -> new If $3, Expressions.wrap([$1]), statement: true, invert: true
+    o 'Statement  POST_IF Expression',          -> new If $3, Expressions.wrap([$1]), type: $2, statement: true
+    o 'Expression POST_IF Expression',          -> new If $3, Expressions.wrap([$1]), type: $2, statement: true
   ]

Arithmetic and logical operators, working on one or more operands. Here they are grouped by order of precedence. The actual precedence rules are defined at the bottom of the page. It would be shorter if we could @@ -381,8 +376,8 @@ down. Following these rules is what makes 2 + 3 * 4 parse as:

['nonassoc', 'INDENT', 'OUTDENT'] ['right', '=', ':', 'COMPOUND_ASSIGN', 'RETURN', 'THROW', 'EXTENDS'] ['right', 'FORIN', 'FOROF', 'BY', 'WHEN'] - ['right', 'IF', 'UNLESS', 'ELSE', 'FOR', 'WHILE', 'UNTIL', 'LOOP', 'SUPER', 'CLASS'] - ['right', 'POST_IF', 'POST_UNLESS'] + ['right', 'IF', 'ELSE', 'FOR', 'DO', 'WHILE', 'UNTIL', 'LOOP', 'SUPER', 'CLASS'] + ['right', 'POST_IF'] ]

Wrapping Up

Finally, now what we have our grammar and our operators, we can create our Jison.Parser. We do this by processing all of our rules, recording all terminals (every symbol which does not appear as the name of a rule above) diff --git a/documentation/docs/helpers.html b/documentation/docs/helpers.html index 7d3fd988..ab32df89 100644 --- a/documentation/docs/helpers.html +++ b/documentation/docs/helpers.html @@ -4,9 +4,10 @@ arrays, count characters, that sort of thing.

literal is string.substr start, literal.length

Peek at the end of a given string to see if it matches a sequence.

exports.ends = (string, literal, back) ->
   len = literal.length
   literal is string.substr string.length - len - (back or 0), len

Trim out all falsy values from an array.

exports.compact = (array) ->
-  item for item in array when item

Count the number of occurrences of a character in a string.

exports.count = (string, letter) ->
+  item for item in array when item

Count the number of occurrences of a string in a string.

exports.count = (string, substr) ->
   num = pos = 0
-  num++ while pos = 1 + string.indexOf letter, pos
+  return 1/0 unless substr.length
+  num++ while pos = 1 + string.indexOf substr, pos
   num

Merge objects, returning a fresh copy with attributes from both sides. Used every time Base#compile is called, to allow properties in the options hash to propagate down the tree without polluting other branches.

exports.merge = (options, overrides) ->
diff --git a/documentation/docs/lexer.html b/documentation/docs/lexer.html
index 6013e87a..2321da18 100644
--- a/documentation/docs/lexer.html
+++ b/documentation/docs/lexer.html
@@ -67,12 +67,14 @@ though is means === otherwise.

tag = 'LEADING_WHEN' else if tag is 'FOR' @seenFor = yes + else if tag is 'UNLESS' + tag = 'IF' else if tag in UNARY tag = 'UNARY' else if tag in RELATION if tag isnt 'INSTANCEOF' and @seenFor - @seenFor = no tag = 'FOR' + tag + @seenFor = no else tag = 'RELATION' if @value() is '!' @@ -111,7 +113,7 @@ are balanced within the string's contents, and within nested interpolations.

return 0 unless match = SIMPLESTR.exec @chunk @token 'STRING', (string = match[0]).replace MULTILINER, '\\\n' when '"' - return 0 unless string = @balancedString @chunk, [['"', '"'], ['#{', '}']] + return 0 unless string = @balancedString @chunk, '"' if 0 < string.indexOf '#{', 1 @interpolateString string.slice 1, -1 else @@ -306,22 +308,27 @@ like "function" or "default".

throw SyntaxError "Reserved word \"#{@value()}\" on line #{@line + 1} can't be assigned"

Matches a balanced group such as a single or double-quoted string. Pass in a series of delimiters, all of which must be nested correctly within the contents of the string. This method allows us to have strings within -interpolations within strings, ad infinitum.

  balancedString: (str, delimited, options = {}) ->
-    stack = [delimited[0]]
+interpolations within strings, ad infinitum.

  balancedString: (str, end) ->
+    stack = [end]
     for i in [1...str.length]
-      switch str.charAt i
+      switch letter = str.charAt i
         when '\\'
           i++
           continue
-        when stack[stack.length - 1][1]
+        when end
           stack.pop()
-          return str.slice 0, i + 1 unless stack.length
+          unless stack.length
+            return str.slice 0, i + 1
+          end = stack[stack.length - 1]
           continue
-      for pair in delimited when (open = pair[0]) is str.substr i, open.length
-        stack.push pair
-        i += open.length - 1
-        break
-    throw new Error "unterminated #{ stack.pop()[0] } on line #{ @line + 1 }"

Expand variables and expressions inside double-quoted strings using + if end is '}' and letter in ['"', "'"] + stack.push end = letter + else if end is '}' and letter is '{' + stack.push end = '}' + else if end is '"' and prev is '#' and letter is '{' + stack.push end = '}' + prev = letter + throw new Error "missing #{ stack.pop() }, starting on line #{ @line + 1 }"

Expand variables and expressions inside double-quoted strings using Ruby-like notation for substitution of arbitrary expressions.

"Hello #{name.capitalize()}."
@@ -339,7 +346,7 @@ token stream.

i += 1 continue unless letter is '#' and str.charAt(i+1) is '{' and - (expr = @balancedString str.slice(i+1), [['{', '}']]) + (expr = @balancedString str.slice(i + 1), '}') continue tokens.push ['NEOSTRING', str.slice(pi, i)] if pi < i inner = expr.slice(1, -1) @@ -382,7 +389,7 @@ token stream.

'true', 'false', 'null', 'this' 'new', 'delete', 'typeof', 'in', 'instanceof' 'return', 'throw', 'break', 'continue', 'debugger' - 'if', 'else', 'switch', 'for', 'while', 'try', 'catch', 'finally' + 'if', 'else', 'switch', 'for', 'while', 'do', 'try', 'catch', 'finally' 'class', 'extends', 'super' ]

CoffeeScript-only keywords.

COFFEE_KEYWORDS = ['undefined', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when']
 COFFEE_KEYWORDS.push op for op of COFFEE_ALIASES =
@@ -397,9 +404,9 @@ token stream.

off : 'false'

The list of keywords that are reserved by JavaScript, but not used, or are used by CoffeeScript internally. We throw an error when these are encountered, to avoid having a JavaScript error at runtime.

RESERVED = [
-  'case', 'default', 'function', 'var', 'void', 'with', 'do'
+  'case', 'default', 'function', 'var', 'void', 'with'
   'const', 'let', 'enum', 'export', 'import', 'native'
-  '__hasProp', '__extends', '__slice'
+  '__hasProp', '__extends', '__slice', '__bind', '__indexOf'
 ]

The superset of both JavaScript keywords and reserved words, none of which may be used as identifiers or properties.

JS_FORBIDDEN = JS_KEYWORDS.concat RESERVED
 
@@ -427,7 +434,7 @@ be used as identifiers or properties.

WHITESPACE = /^[^\n\S]+/ -COMMENT = /^###([^#][\s\S]*?)(?:###[^\n\S]*\n|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/ +COMMENT = /^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/ CODE = /^[-=]>/ @@ -467,7 +474,7 @@ be used as identifiers or properties.

delete | typeof | instanceof ) $ ///

Compound assignment tokens.

COMPOUND_ASSIGN = [
   '-=', '+=', '/=', '*=', '%=', '||=', '&&=', '?=', '<<=', '>>=', '>>>=', '&=', '^=', '|='
-]

Unary tokens.

UNARY   = ['!', '~', 'NEW', 'TYPEOF', 'DELETE']

Logical tokens.

LOGIC   = ['&&', '||', '&', '|', '^']

Bit-shifting tokens.

SHIFT   = ['<<', '>>', '>>>']

Comparison tokens.

COMPARE = ['==', '!=', '<', '>', '<=', '>=']

Mathematical tokens.

MATH    = ['*', '/', '%']

Relational tokens that are negatable with not prefix.

RELATION = ['IN', 'OF', 'INSTANCEOF']

Boolean tokens.

BOOL = ['TRUE', 'FALSE', 'NULL', 'UNDEFINED']

Tokens which a regular expression will never immediately follow, but which +]

Unary tokens.

UNARY   = ['!', '~', 'NEW', 'TYPEOF', 'DELETE', 'DO']

Logical tokens.

LOGIC   = ['&&', '||', '&', '|', '^']

Bit-shifting tokens.

SHIFT   = ['<<', '>>', '>>>']

Comparison tokens.

COMPARE = ['==', '!=', '<', '>', '<=', '>=']

Mathematical tokens.

MATH    = ['*', '/', '%']

Relational tokens that are negatable with not prefix.

RELATION = ['IN', 'OF', 'INSTANCEOF']

Boolean tokens.

BOOL = ['TRUE', 'FALSE', 'NULL', 'UNDEFINED']

Tokens which a regular expression will never immediately follow, but which a division operator might.

See: http://www.mozilla.org/js/language/js20-2002-04/rationale/syntax.html#regular-expressions

diff --git a/documentation/docs/nodes.html b/documentation/docs/nodes.html index efed2923..064354c0 100644 --- a/documentation/docs/nodes.html +++ b/documentation/docs/nodes.html @@ -24,14 +24,14 @@ return results).

o.level = lvl if lvl node = @unfoldSoak(o) or this node.tab = o.indent - if o.level is LEVEL_TOP or node.isPureStatement() or not node.isStatement(o) + if o.level is LEVEL_TOP or not node.isStatement(o) node.compileNode o else node.compileClosure o

Statements converted into expressions via closure-wrapping share a scope object with their parent closure, to preserve the expected lexical scope.

  compileClosure: (o) ->
-    if @containsPureStatement()
-      throw SyntaxError 'cannot include a pure statement in an expression.'
-    o.sharedScope = o.scope
+    if @jumps()
+      throw SyntaxError 'cannot use a pure statement in an expression.'
+    o.sharedScope = yes
     Closure.wrap(this).compileNode o

If the code generation wishes to use the result of a complex expression in multiple places, ensure that the expression is only ever evaluated once, by assigning it to a temporary variable. Pass a level to precompile.

  cache: (o, level, reused) ->
@@ -58,9 +58,10 @@ scope boundaries.

contains = yes return no contains

Is this node of a certain type, or does it contain the type?

  containsType: (type) ->
-    this instanceof type or @contains (node) -> node instanceof type

Convenience for the most common use of contains. Does the node contain -a pure statement?

  containsPureStatement: ->
-    @isPureStatement() or @contains (node) -> node.isPureStatement()

toString representation of the node, for inspecting the parse tree. + this instanceof type or @contains (node) -> node instanceof type

Pull out the last non-comment node of a node list.

  lastNonComment: (list) ->
+    i = list.length
+    return list[i] while i-- when list[i] not instanceof Comment
+    null

toString representation of the node, for inspecting the parse tree. This is what coffee --nodes prints out.

  toString: (idt = '', name = @constructor.name) ->
     tree = '\n' + idt + name
     tree += '?' if @soak
@@ -87,7 +88,7 @@ This is what coffee --nodes prints out.

will override these with custom logic, if needed.

  children: []
 
   isStatement     : NO
-  isPureStatement : NO
+  jumps           : NO
   isComplex       : YES
   isChainable     : NO
   isAssignable    : NO
@@ -110,9 +111,13 @@ it back out.

< not @expressions.length isStatement: (o) -> - for exp in @expressions when exp.isPureStatement() or exp.isStatement o + for exp in @expressions when exp.isStatement o return yes - no

An Expressions node does not return its entire body, rather it + no + + jumps: (o) -> + for exp in @expressions + return exp if exp.jumps o

An Expressions node does not return its entire body, rather it ensures that the final expression is returned.

  makeReturn: ->
     len = @expressions.length
     while len--
@@ -153,7 +158,7 @@ declarations of all inner variables pushed up to the top.

for exp, i in @expressions exp = exp.unwrap() break unless exp instanceof Comment or exp instanceof Literal - o.level = LEVEL_TOP + o = merge(o, level: LEVEL_TOP) if i rest = @expressions.splice i, @expressions.length code = @compileNode o @@ -174,39 +179,44 @@ JavaScript without translation, such as: strings, numbers, constructor: (@value) -> makeReturn: -> - if @isPureStatement() then this else new Return this

Break and continue must be treated as pure statements -- they lose their -meaning when wrapped in a closure.

  isPureStatement: ->
-    @value in ['break', 'continue', 'debugger']
+    if @isStatement() then this else new Return this
 
   isAssignable: ->
     IDENTIFIER.test @value
 
+  isStatement: ->
+    @value in ['break', 'continue', 'debugger']
+
   isComplex: NO
 
   assigns: (name) ->
     name is @value
 
-  compile: ->
-    if @value.reserved then "\"#{@value}\"" else @value
+  jumps: (o) ->
+    return no unless @isStatement()
+    if not (o and (o.loop or o.block and (@value isnt 'continue'))) then this else no
+
+  compileNode: (o) ->
+    code = if @value.reserved then "\"#{@value}\"" else @value
+    if @isStatement() then "#{@tab}#{code};" else code
 
   toString: ->
-    ' "' + @value + '"'

Return

A return is a pureStatement -- wrapping it in a closure wouldn't + ' "' + @value + '"'

Return

A return is a pureStatement -- wrapping it in a closure wouldn't make sense.

exports.Return = class Return extends Base
   constructor: (@expression) ->
 
   children: ['expression']
 
   isStatement:     YES
-  isPureStatement: YES
   makeReturn:      THIS
+  jumps:           THIS
 
   compile: (o, level) ->
     expr = @expression?.makeReturn()
     if expr and expr not instanceof Return then expr.compile o, level else super o, level
 
   compileNode: (o) ->
-    o.level = LEVEL_PAREN
-    @tab + "return#{ if @expression then ' ' + @expression.compile o else '' };"

Value

A value, variable or literal or parenthesized, indexed or dotted into, + @tab + "return#{ if @expression then ' ' + @expression.compile(o, LEVEL_PAREN) else '' };"

Value

A value, variable or literal or parenthesized, indexed or dotted into, or vanilla.

exports.Value = class Value extends Base
   constructor: (base, props, tag) ->
     return base if not props and base instanceof Value
@@ -215,12 +225,12 @@ or vanilla.

@[tag] = true if tag return this - children: ['base', 'properties']

Add a property access to the list.

  push: (prop) ->
+  children: ['base', 'properties']

Add a property access to the list.

  push: (prop) ->
     @properties.push prop
     this
 
   hasProperties: ->
-    !!@properties.length

Some boolean checks for the benefit of other nodes.

  isArray        : -> not @properties.length and @base instanceof Arr
+    !!@properties.length

Some boolean checks for the benefit of other nodes.

  isArray        : -> not @properties.length and @base instanceof Arr
   isComplex      : -> @hasProperties() or @base.isComplex()
   isAssignable   : -> @hasProperties() or @base.isAssignable()
   isSimpleNumber : -> @base instanceof Literal and SIMPLENUM.test @base.value
@@ -231,6 +241,7 @@ or vanilla.

isStatement : (o) -> not @properties.length and @base.isStatement o assigns : (name) -> not @properties.length and @base.assigns name + jumps : (o) -> not @properties.length and @base.jumps o isObject: (onlyGenerated) -> return no if @properties.length @@ -240,9 +251,9 @@ or vanilla.

last(@properties) instanceof Slice makeReturn: -> - if @properties.length then super() else @base.makeReturn()

The value can be unwrapped as its inner node, if there are no attached + if @properties.length then super() else @base.makeReturn()

The value can be unwrapped as its inner node, if there are no attached properties.

  unwrap: ->
-    if @properties.length then this else @base

A reference has base part (this value) and name part. + if @properties.length then this else @base

A reference has base part (this value) and name part. We cache them separately for compiling complex expressions. a()[b()] ?= c -> (_base = a())[_name = b()] ? _base[_name] = c

  cacheReference: (o) ->
     name = last @properties
@@ -257,7 +268,7 @@ We cache them separately for compiling complex expressions.
       nref = new Literal o.scope.freeVariable 'name'
       name = new Index new Assign nref, name.index
       nref = new Index nref
-    [base.push(name), new Value(bref or base.base, [nref or name])]

We compile a value to JavaScript by compiling and joining each property. + [base.push(name), new Value(bref or base.base, [nref or name])]

We compile a value to JavaScript by compiling and joining each property. Things get much more interesting if the chain of properties has soak operators ?. interspersed. Then we have to take care not to accidentally evaluate anything twice when building the soak chain.

  compileNode: (o) ->
@@ -266,7 +277,7 @@ evaluate anything twice when building the soak chain.

code = @base.compile o, if props.length then LEVEL_ACCESS else null code = "(#{code})" if props[0] instanceof Access and @isSimpleNumber() code += prop.compile o for prop in props - code

Unfold a soak into an If: a?.b -> a.b if a?

  unfoldSoak: (o) ->
+    code

Unfold a soak into an If: a?.b -> a.b if a?

  unfoldSoak: (o) ->
     if ifn = @base.unfoldSoak o
       Array::push.apply ifn.body.properties, @properties
       return ifn
@@ -279,31 +290,30 @@ evaluate anything twice when building the soak chain.

fst = new Parens new Assign ref, fst snd.base = ref return new If new Existence(fst), snd, soak: on - null

Comment

CoffeeScript passes through block comments as JavaScript block comments + null

Comment

CoffeeScript passes through block comments as JavaScript block comments at the same position.

exports.Comment = class Comment extends Base
   constructor: (@comment) ->
 
-  isPureStatement: YES
   isStatement:     YES
   makeReturn:      THIS
 
   compileNode: (o, level) ->
     code = '/*' + multident(@comment, @tab) + '*/'
     code = o.indent + code if (level or o.level) is LEVEL_TOP
-    code

Call

Node for a function invocation. Takes care of converting super() calls into + code

Call

Node for a function invocation. Takes care of converting super() calls into calls against the prototype's function of the same name.

exports.Call = class Call extends Base
   constructor: (variable, @args = [], @soak) ->
     @isNew    = false
     @isSuper  = variable is 'super'
     @variable = if @isSuper then null else variable
 
-  children: ['variable', 'args']

Tag this invocation as creating a new instance.

  newInstance: ->
+  children: ['variable', 'args']

Tag this invocation as creating a new instance.

  newInstance: ->
     base = @variable.base or @variable
     if base instanceof Call
       base.newInstance()
     else
       @isNew = true
-    this

Grab the reference to the superclass's implementation of the current + this

Grab the reference to the superclass's implementation of the current method.

  superReference: (o) ->
     {method} = o.scope
     throw SyntaxError 'cannot call super outside of a function.' unless method
@@ -312,7 +322,7 @@ method.

if method.klass "#{method.klass}.__super__.#{name}" else - "#{name}.__super__.constructor"

Soaked chained invocations unfold into if/else ternary structures.

  unfoldSoak: (o) ->
+      "#{name}.__super__.constructor"

Soaked chained invocations unfold into if/else ternary structures.

  unfoldSoak: (o) ->
     if @soak
       if @variable
         return ifn if ifn = unfoldSoak o, this, 'variable'
@@ -341,7 +351,7 @@ method.

else call.variable.base = ifn ifn = unfoldSoak o, call, 'variable' - ifn

Compile a vanilla function call.

  compileNode: (o) ->
+    ifn

Compile a vanilla function call.

  compileNode: (o) ->
     @variable?.front = @front
     if code = Splat.compileSplattedArray o, @args, true
       return @compileSplat o, code
@@ -349,9 +359,9 @@ method.

if @isSuper @superReference(o) + ".call(this#{ args and ', ' + args })" else - (if @isNew then 'new ' else '') + @variable.compile(o, LEVEL_ACCESS) + "(#{args})"

super() is converted into a call against the superclass's implementation + (if @isNew then 'new ' else '') + @variable.compile(o, LEVEL_ACCESS) + "(#{args})"

super() is converted into a call against the superclass's implementation of the current function.

  compileSuper: (args, o) ->
-    "#{@superReference(o)}.call(this#{ if args.length then ', ' else '' }#{args})"

If you call a function with a splat, it's converted into a JavaScript + "#{@superReference(o)}.call(this#{ if args.length then ', ' else '' }#{args})"

If you call a function with a splat, it's converted into a JavaScript .apply() call to allow an array of arguments to be passed. If it's a constructor, then things get real tricky. We have to inject an inner constructor in order to be able to pass the varargs.

  compileSplat: (o, splatArgs) ->
@@ -360,8 +370,10 @@ inner constructor in order to be able to pass the varargs.

idt = @tab + TAB return """ (function(func, args, ctor) { - -#DIVIDER + #{idt}ctor.prototype = func.prototype; + #{idt}var child = new ctor, result = func.apply(child, args); + #{idt}return typeof result === "object" ? result : child; + #{@tab}})(#{ @variable.compile o, LEVEL_LIST }, #{splatArgs}, function() {}) """ base = new Value @variable if (name = base.properties.pop()) and base.isComplex() @@ -374,18 +386,17 @@ inner constructor in order to be able to pass the varargs.

fun += name.compile o else ref = 'null' - "#{fun}.apply(#{ref}, #{splatArgs})"

{idt}ctor.prototype = func.prototype; -{idt}var child = new ctor, result = func.apply(child, args); -{idt}return typeof result === "object" ? result : child; -{@tab}})(#{ @variable.compile o, LEVEL_LIST }, #{splatArgs}, function() {})

Extends

exports.Extends = class Extends extends Base
+    "#{fun}.apply(#{ref}, #{splatArgs})"

Extends

Node to extend an object's prototype with an ancestor object. +After goog.inherits from the +Closure Library.

exports.Extends = class Extends extends Base
   constructor: (@child, @parent) ->
 
-  children: ['child', 'parent']

Node to extend an object's prototype with an ancestor object. -After goog.inherits from the -Closure Library.

  compile: (o) ->
+  children: ['child', 'parent']

Hooks one constructor into another's prototype chain.

  compile: (o) ->
     utility 'hasProp'
-    new Call(new Value(new Literal utility 'extends'), [@child, @parent]).compile o

Hooks one constructor into another's prototype chain.

Access

exports.Access = class Access extends Base
+    new Call(new Value(new Literal utility 'extends'), [@child, @parent]).compile o

Access

A . access into a property of a value, or the :: shorthand for +an access into the object's prototype.

exports.Access = class Access extends Base
   constructor: (@name, tag) ->
+    @name.asKey = yes
     @proto = if tag is 'proto' then '.prototype' else ''
     @soak  = tag is 'soak'
 
@@ -395,8 +406,7 @@ After goog.inherits from the
     name = @name.compile o
     @proto + if IS_STRING.test name then "[#{name}]" else ".#{name}"
 
-  isComplex: NO

A . access into a property of a value, or the :: shorthand for -an access into the object's prototype.

Index

exports.Index = class Index extends Base
+  isComplex: NO

Index

A [ ... ] indexed access into an array or object.

exports.Index = class Index extends Base
   constructor: (@index) ->
 
   children: ['index']
@@ -405,23 +415,24 @@ an access into the object's prototype.

(if @proto then '.prototype' else '') + "[#{ @index.compile o, LEVEL_PAREN }]" isComplex: -> - @index.isComplex()

A [ ... ] indexed access into an array or object.

Range

exports.Range = class Range extends Base
+    @index.isComplex()

Range

A range literal. Ranges can be used to extract portions (slices) of arrays, +to specify a range for comprehensions, or as a value, to be expanded into the +corresponding array of integers at runtime.

exports.Range = class Range extends Base
 
   children: ['from', 'to']
 
   constructor: (@from, @to, tag) ->
     @exclusive = tag is 'exclusive'
-    @equals = if @exclusive then '' else '='

A range literal. Ranges can be used to extract portions (slices) of arrays, -to specify a range for comprehensions, or as a value, to be expanded into the -corresponding array of integers at runtime.

  compileVariables: (o) ->
+    @equals = if @exclusive then '' else '='

Compiles the range's source variables -- where it starts and where it ends. +But only if they need to be cached to avoid double evaluation.

  compileVariables: (o) ->
     o = merge(o, top: true)
     [@from, @fromVar] =  @from.cache o, LEVEL_LIST
     [@to, @toVar] =      @to.cache o, LEVEL_LIST
     [@fromNum, @toNum] = [@fromVar.match(SIMPLENUM), @toVar.match(SIMPLENUM)]
     parts = []
     parts.push @from if @from isnt @fromVar
-    parts.push @to if @to isnt @toVar

Compiles the range's source variables -- where it starts and where it ends. -But only if they need to be cached to avoid double evaluation.

  compileNode: (o) ->
+    parts.push @to if @to isnt @toVar

When compiled normally, the range returns the contents of the for loop +needed to iterate over the values in the range. Used by comprehensions.

  compileNode: (o) ->
     @compileVariables o
     return    @compileArray(o)  unless o.index
     return    @compileSimple(o) if @fromNum and @toNum
@@ -432,8 +443,7 @@ But only if they need to be cached to avoid double evaluation.

< compare = "#{intro} <#{@equals} #{@toVar} : #{idx} >#{@equals} #{@toVar})" stepPart = if step then step.compile(o) else '1' incr = if step then "#{idx} += #{stepPart}" else "#{intro} += #{stepPart} : #{idx} -= #{stepPart})" - "#{vars}; #{compare}; #{incr}"

When compiled normally, the range returns the contents of the for loop -needed to iterate over the values in the range. Used by comprehensions.

  compileSimple: (o) ->
+    "#{vars}; #{compare}; #{incr}"

Compile a simple range comprehension, with integers.

  compileSimple: (o) ->
     [from, to] = [+@fromNum, +@toNum]
     idx        = del o, 'index'
     step       = del o, 'step'
@@ -441,7 +451,7 @@ needed to iterate over the values in the range. Used by comprehensions.

if from <= to "#{idx} = #{from}; #{idx} <#{@equals} #{to}; #{step or "#{idx}++"}" else - "#{idx} = #{from}; #{idx} >#{@equals} #{to}; #{step or "#{idx}--"}"

Compile a simple range comprehension, with integers.

  compileArray: (o) ->
+      "#{idx} = #{from}; #{idx} >#{@equals} #{to}; #{step or "#{idx}--"}"

When used as a value, expand the range into the equivalent array.

  compileArray: (o) ->
     if @fromNum and @toNum and Math.abs(@fromNum - @toNum) <= 20
       range = [+@fromNum..+@toNum]
       range.pop() if @exclusive
@@ -458,21 +468,27 @@ needed to iterate over the values in the range. Used by comprehensions.

clause = "#{@fromVar} <= #{@toVar} ?" body = "var #{vars}; #{clause} #{i} <#{@equals} #{@toVar} : #{i} >#{@equals} #{@toVar}; #{clause} #{i} += 1 : #{i} -= 1" post = "{ #{result}.push(#{i}); }\n#{idt}return #{result};\n#{o.indent}" - "(function() {#{pre}\n#{idt}for (#{body})#{post}}).call(this)"

When used as a value, expand the range into the equivalent array.

Slice

exports.Slice = class Slice extends Base
+    "(function() {#{pre}\n#{idt}for (#{body})#{post}}).call(this)"

Slice

An array slice literal. Unlike JavaScript's Array#slice, the second parameter +specifies the index of the end of the slice, just as the first parameter +is the index of the beginning.

exports.Slice = class Slice extends Base
 
   children: ['range']
 
   constructor: (@range) ->
-    super()
-
-  compileNode: (o) ->
-    from  =  if @range.from then @range.from.compile(o) else '0'
-    to    =  if @range.to then @range.to.compile(o) else ''
-    to    += if not to or @range.exclusive then '' else ' + 1'
-    to    =  ', ' + to if to
-    ".slice(#{from}#{to})"

An array slice literal. Unlike JavaScript's Array#slice, the second parameter -specifies the index of the end of the slice, just as the first parameter -is the index of the beginning.

Obj

exports.Obj = class Obj extends Base
+    super()

We have to be careful when trying to slice through the end of the array, +9e9 is used because not all implementations respect undefined or 1/0. +9e9 should be safe because 9e9 > 2**32, the max array length.

  compileNode: (o) ->
+    {to, from} = @range
+    fromStr    = from and from.compile(o, LEVEL_PAREN) or '0'
+    compiled   = to and to.compile o, LEVEL_PAREN
+    if to and not (not @range.exclusive and +compiled is -1)
+      toStr = ', ' + if @range.exclusive
+        compiled
+      else if SIMPLENUM.test compiled
+        (+compiled + 1).toString()
+      else
+        "(#{compiled} + 1) || 9e9"
+    ".slice(#{ fromStr }#{ toStr or '' })"

Obj

An object literal, nothing fancy.

exports.Obj = class Obj extends Base
   constructor: (props, @generated = false) ->
     @objects = @properties = props or []
 
@@ -482,8 +498,7 @@ is the index of the beginning.

props = @properties return (if @front then '({})' else '{}') unless props.length idt = o.indent += TAB - nonComments = (prop for prop in @properties when prop not instanceof Comment) - lastNoncom = last nonComments + lastNoncom = @lastNonComment @properties props = for prop, i in props join = if i is props.length - 1 '' @@ -494,8 +509,10 @@ is the index of the beginning.

indent = if prop instanceof Comment then '' else idt if prop instanceof Value and prop.this prop = new Assign prop.properties[0].name, prop, 'object' - else if prop not instanceof Assign and prop not instanceof Comment - prop = new Assign prop, prop, 'object' + if prop not instanceof Comment + if prop not instanceof Assign + prop = new Assign prop, prop, 'object' + (prop.variable.base or prop.variable).asKey = yes indent + prop.compile(o, LEVEL_TOP) + join props = props.join '' obj = "{#{ props and '\n' + props + '\n' + @tab }}" @@ -503,7 +520,7 @@ is the index of the beginning.

assigns: (name) -> for prop in @properties when prop.assigns name then return yes - no

An object literal, nothing fancy.

Arr

exports.Arr = class Arr extends Base
+    no

Arr

An array literal.

exports.Arr = class Arr extends Base
   constructor: (objs) ->
     @objects = objs or []
 
@@ -521,31 +538,34 @@ is the index of the beginning.

assigns: (name) -> for obj in @objects when obj.assigns name then return yes - no

An array literal.

Class

exports.Class = class Class extends Base
+    no

Class

The CoffeeScript class definition. +Initialize a Class with its name, an optional superclass, and a +list of prototype property assignments.

exports.Class = class Class extends Base
   constructor: (@variable, @parent, @body = new Expressions) ->
     @boundFuncs = []
+    @body.classBody = yes
 
-  children: ['variable', 'parent', 'body']

The CoffeeScript class definition. -Initialize a Class with its name, an optional superclass, and a -list of prototype property assignments.

  determineName: ->
+  children: ['variable', 'parent', 'body']

Figure out the appropriate name for the constructor function of this class.

  determineName: ->
     return null unless @variable
     decl = if tail = last @variable.properties
       tail instanceof Access and tail.name.value
     else
       @variable.base.value
-    decl and= IDENTIFIER.test(decl) and decl

Figure out the appropriate name for the constructor function of this class.

  setContext: (name) ->
+    decl and= IDENTIFIER.test(decl) and decl

For all this-references and bound functions in the class definition, +this is the Class being constructed.

  setContext: (name) ->
     @body.traverseChildren false, (node) ->
+      return false if node.classBody
       if node instanceof Literal and node.value is 'this'
         node.value    = name
       else if node instanceof Code
         node.klass    = name
-        node.context  = name if node.bound

For all this-references and bound functions in the class definition, -this is the Class being constructed.

  addBoundFunctions: (o) ->
+        node.context  = name if node.bound

Ensure that all functions bound to the instance are proxied in the +constructor.

  addBoundFunctions: (o) ->
     if @boundFuncs.length
       for bvar in @boundFuncs
         bname = bvar.compile o
-        @ctor.body.unshift new Literal "this.#{bname} = #{utility 'bind'}(this.#{bname}, this);"

Ensure that all functions bound to the instance are proxied in the -constructor.

  addProperties: (node, name) ->
+        @ctor.body.unshift new Literal "this.#{bname} = #{utility 'bind'}(this.#{bname}, this);"

Merge the properties from a top-level object as prototypal properties +on the class.

  addProperties: (node, name) ->
     props = node.base.properties.slice 0
     while assign = props.shift()
       if assign instanceof Assign
@@ -567,23 +587,24 @@ constructor.

< if func instanceof Code and func.bound @boundFuncs.push base func.bound = no - assign

Merge the properties from a top-level object as prototypal properties -on the class.

  walkBody: (name) ->
+      assign

Walk the body of the class, looking for prototype properties to be converted.

  walkBody: (name) ->
     @traverseChildren false, (child) =>
       return false if child instanceof Class
       if child instanceof Expressions
         for node, i in exps = child.expressions
           if node instanceof Value and node.isObject(true)
             exps[i] = @addProperties node, name
-        child.expressions = exps = flatten exps

Walk the body of the class, looking for prototype properties to be converted.

  ensureConstructor: (name) ->
+        child.expressions = exps = flatten exps

Make sure that a constructor is defined for the class, and properly +configured.

  ensureConstructor: (name) ->
     if not @ctor
       @ctor = new Code
       @ctor.body.push new Call 'super', [new Splat new Literal 'arguments'] if @parent
       @body.expressions.unshift @ctor
     @ctor.ctor     = @ctor.name = name
     @ctor.klass    = null
-    @ctor.noReturn = yes

Make sure that a constructor is defined for the class, and properly -configured.

  compileNode: (o) ->
+    @ctor.noReturn = yes

Instead of generating the JavaScript string directly, we build up the +equivalent syntax tree and compile that, in pieces. You can see the +constructor, property assignments, and inheritance getting built out below.

  compileNode: (o) ->
     decl  = @determineName()
     name  = decl or @name or '_Class'
     lname = new Literal name
@@ -595,14 +616,12 @@ configured.

@body.expressions.push lname @addBoundFunctions o - klass = new Parens new Call(new Code [], @body), true + klass = new Parens Closure.wrap(@body), true klass = new Assign @variable, klass if @variable - klass.compile o

Instead of generating the JavaScript string directly, we build up the -equivalent syntax tree and compile that, in pieces. You can see the -constructor, property assignments, and inheritance getting built out below.

Assign

exports.Assign = class Assign extends Base
+    klass.compile o

Assign

The Assign is used to assign a local variable to value, or to set the +property of an object -- including within object literals.

exports.Assign = class Assign extends Base
   constructor: (@variable, @value, @context, options) ->
-    @param = options and options.param

The Assign is used to assign a local variable to value, or to set the -property of an object -- including within object literals.

  METHOD_DEF: /^(?:(\S+)\.prototype\.|\S+?)?\b([$A-Za-z_][$\w]*)$/
+    @param = options and options.param

Matchers for detecting class/method names

  METHOD_DEF: /^(?:(\S+)\.prototype\.|\S+?)?\b([$A-Za-z_][$\w]*)$/
 
   children: ['variable', 'value']
 
@@ -610,7 +629,10 @@ property of an object -- including within object literals.

@[if @context is 'object' then 'value' else 'variable'].assigns name unfoldSoak: (o) -> - unfoldSoak o, this, 'variable'

Matchers for detecting class/method names

  compileNode: (o) ->
+    unfoldSoak o, this, 'variable'

Compile an assignment, delegating to compilePatternMatch or +compileSplice if appropriate. Keep track of the name of the base object +we've been assigned to, for correct internal references. If the variable +has not been seen yet within the current scope, declare it.

  compileNode: (o) ->
     if isValue = @variable instanceof Value
       return @compilePatternMatch o if @variable.isArray() or @variable.isObject()
       return @compileSplice       o if @variable.isSplice()
@@ -629,19 +651,16 @@ property of an object -- including within object literals.

else o.scope.find name val = name + " #{ @context or '=' } " + val - if o.level <= LEVEL_LIST then val else "(#{val})"

Compile an assignment, delegating to compilePatternMatch or -compileSplice if appropriate. Keep track of the name of the base object -we've been assigned to, for correct internal references. If the variable -has not been seen yet within the current scope, declare it.

  compilePatternMatch: (o) ->
+    if o.level <= LEVEL_LIST then val else "(#{val})"

Brief implementation of recursive pattern matching, when assigning array or +object literals to a value. Peeks at their properties to assign inner names. +See the ECMAScript Harmony Wiki +for details.

  compilePatternMatch: (o) ->
     top       = o.level is LEVEL_TOP
     {value}   = this
     {objects} = @variable.base
     return value.compile o unless olen = objects.length
     isObject = @variable.isObject()
-    if top and olen is 1 and (obj = objects[0]) not instanceof Splat

Brief implementation of recursive pattern matching, when assigning array or -object literals to a value. Peeks at their properties to assign inner names. -See the ECMAScript Harmony Wiki -for details.

      if obj instanceof Assign
+    if top and olen is 1 and (obj = objects[0]) not instanceof Splat

Unroll simplest cases: {v} = x -> v = x.v

      if obj instanceof Assign
         {variable: {base: idx}, value: obj} = obj
       else
         if obj.base instanceof Parens
@@ -661,10 +680,10 @@ for details.

< if not IDENTIFIER.test(vvar) or @variable.assigns(vvar) assigns.push "#{ ref = o.scope.freeVariable 'ref' } = #{vvar}" vvar = ref - for obj, i in objects

Unroll simplest cases: {v} = x -> v = x.v

      idx = i
+    for obj, i in objects

A regular array pattern-match.

      idx = i
       if isObject
-        if obj instanceof Assign

A regular array pattern-match.

          {variable: {base: idx}, value: obj} = obj
-        else

A regular object pattern-match.

          if obj.base instanceof Parens
+        if obj instanceof Assign

A regular object pattern-match.

          {variable: {base: idx}, value: obj} = obj
+        else

A shorthand {a, b, @c} = val pattern-match.

          if obj.base instanceof Parens
             [obj, idx] = new Value(obj.unwrapAll()).cacheReference o
           else
             idx = if obj.this then obj.properties[0].name else obj
@@ -691,26 +710,29 @@ for details.

< assigns.push new Assign(obj, val, null, param: @param).compile o, LEVEL_TOP assigns.push vvar unless top code = assigns.join ', ' - if o.level < LEVEL_LIST then code else "(#{code})"

A shorthand {a, b, @c} = val pattern-match.

  compileConditional: (o) ->
-    [left, rite] = @variable.cacheReference o
-    new Op(@context.slice(0, -1), left, new Assign(rite, @value, '=')).compile o

When compiling a conditional assignment, take care to ensure that the + if o.level < LEVEL_LIST then code else "(#{code})"

When compiling a conditional assignment, take care to ensure that the operands are only evaluated once, even though we have to reference them -more than once.

  compileSplice: (o) ->
-    {range} = @variable.properties.pop()
-    name    = @variable.compile o
-    excl    = range.exclusive
-    from    = if range.from then range.from.compile(o) else '0'
-    to      = "#{name}.length" unless range.to
-    unless to
-      if range.from and range.from.isSimpleNumber() and range.to.isSimpleNumber()
-        to = +range.to.compile(o) - +from
-        to += 1 unless excl
+more than once.

  compileConditional: (o) ->
+    [left, rite] = @variable.cacheReference o
+    new Op(@context.slice(0, -1), left, new Assign(rite, @value, '=')).compile o

Compile the assignment from an array splice literal, using JavaScript's +Array#splice method.

  compileSplice: (o) ->
+    {range: {from, to, exclusive}} = @variable.properties.pop()
+    name = @variable.compile o
+    [fromDecl, fromRef] = from?.cache(o, LEVEL_OP) or ['0', '0']
+    if to
+      if from?.isSimpleNumber() and to.isSimpleNumber()
+        to = +to.compile(o) - +fromRef
+        to += 1 unless exclusive
       else
-        to = range.to.compile(o) + ' - ' + from
-        to += ' + 1' unless excl
-    val = @value.compile(o)
-    "[].splice.apply(#{name}, [#{from}, #{to}].concat(#{val}))"

Compile the assignment from an array splice literal, using JavaScript's -Array#splice method.

Code

exports.Code = class Code extends Base
+        to = to.compile(o) + ' - ' + fromRef
+        to += ' + 1' unless exclusive
+    else
+      to = "9e9"
+    [valDef, valRef] = @value.cache o, LEVEL_LIST
+    code = "[].splice.apply(#{name}, [#{fromDecl}, #{to}].concat(#{valDef})), #{valRef}"
+    if o.level > LEVEL_TOP then "(#{code})" else code

Code

A function definition. This is the only node that creates a new Scope. +When for the purposes of walking the contents of a function body, the Code +has no children -- they're within the inner scope.

exports.Code = class Code extends Base
   constructor: (params, body, tag) ->
     @params  = params or []
     @body    = body or new Expressions
@@ -719,12 +741,15 @@ more than once.

children: ['params', 'body'] - isStatement: -> !!@ctor

A function definition. This is the only node that creates a new Scope. -When for the purposes of walking the contents of a function body, the Code -has no children -- they're within the inner scope.

  compileNode: (o) ->
-    sharedScope     = del o, 'sharedScope'
-    o.scope         = sharedScope or new Scope o.scope, @body, this
-    o.scope.shared  = yes if sharedScope
+  isStatement: -> !!@ctor
+
+  jumps: NO

Compilation creates a new scope unless explicitly asked to share with the +outer scope. Handles splat parameters in the parameter list by peeking at +the JavaScript arguments objects. If the function is bound with the => +arrow, generates a wrapper that saves the current value of this through +a closure.

  compileNode: (o) ->
+    o.scope         = new Scope o.scope, @body, this
+    o.scope.shared  = del o, 'sharedScope'
     o.indent        += TAB
     delete o.bare
     delete o.globals
@@ -759,13 +784,11 @@ has no children -- they're within the inner scope.

code += '}' return @tab + code if @ctor return utility('bind') + "(#{code}, #{@context})" if @bound - if @front then "(#{code})" else code

Compilation creates a new scope unless explicitly asked to share with the -outer scope. Handles splat parameters in the parameter list by peeking at -the JavaScript arguments objects. If the function is bound with the => -arrow, generates a wrapper that saves the current value of this through -a closure.

  traverseChildren: (crossScope, func) ->
-    super(crossScope, func) if crossScope

Short-circuit traverseChildren method to prevent it from crossing scope boundaries -unless crossScope is true.

Param

exports.Param = class Param extends Base
+    if @front or (o.level >= LEVEL_ACCESS) then "(#{code})" else code

Short-circuit traverseChildren method to prevent it from crossing scope boundaries +unless crossScope is true.

  traverseChildren: (crossScope, func) ->
+    super(crossScope, func) if crossScope

Param

A parameter in a function definition. Beyond a typical Javascript parameter, +these parameters can also attach themselves to the context of the function, +as well as be a splat, gathering up a group of parameters into an array.

exports.Param = class Param extends Base
   constructor: (@name, @value, @splat) ->
 
   children: ['name', 'value']
@@ -786,9 +809,8 @@ unless crossScope is true.

@reference = node isComplex: -> - @name.isComplex()

A parameter in a function definition. Beyond a typical Javascript parameter, -these parameters can also attach themselves to the context of the function, -as well as be a splat, gathering up a group of parameters into an array.

Splat

exports.Splat = class Splat extends Base
+    @name.isComplex()

Splat

A splat, either as a parameter to a function, an argument to a call, +or as part of a destructuring assignment.

exports.Splat = class Splat extends Base
 
   children: ['name']
 
@@ -801,8 +823,8 @@ as well as be a splat, gathering up a group of parameters into an array.

@name.assigns name compile: (o) -> - if @index? then @compileParam o else @name.compile o

A splat, either as a parameter to a function, an argument to a call, -or as part of a destructuring assignment.

  @compileSplattedArray: (o, list, apply) ->
+    if @index? then @compileParam o else @name.compile o

Utility function that converts arbitrary number of elements, mixed with +splats, to a proper array.

  @compileSplattedArray: (o, list, apply) ->
     index = -1
     continue while (node = list[++index]) and node not instanceof Splat
     return '' if index >= list.length
@@ -818,8 +840,9 @@ or as part of a destructuring assignment.

else "[#{code}]" return args[0] + ".concat(#{ args.slice(1).join ', ' })" if index is 0 base = (node.compile o, LEVEL_LIST for node in list.slice 0, index) - "[#{ base.join ', ' }].concat(#{ args.join ', ' })"

Utility function that converts arbitrary number of elements, mixed with -splats, to a proper array.

While

exports.While = class While extends Base
+    "[#{ base.join ', ' }].concat(#{ args.join ', ' })"

While

A while loop, the only sort of low-level loop exposed by CoffeeScript. From +it, all other loops can be manufactured. Useful in cases where you need more +flexibility or more speed than a comprehension can provide.

exports.While = class While extends Base
   constructor: (condition, options) ->
     @condition = if options?.invert then condition.invert() else condition
     @guard     = options?.guard
@@ -835,15 +858,14 @@ splats, to a proper array.

addBody: (@body) -> this - containsPureStatement: -> + jumps: -> {expressions} = @body - i = expressions.length - return true if expressions[--i]?.containsPureStatement() - ret = (node) -> node instanceof Return - return true while i-- when expressions[i].contains ret - false

A while loop, the only sort of low-level loop exposed by CoffeeScript. From -it, all other loops can be manufactured. Useful in cases where you need more -flexibility or more speed than a comprehension can provide.

  compileNode: (o) ->
+    return no unless expressions.length
+    for node in expressions
+      return node if node.jumps loop: yes
+    no

The main difference from a JavaScript while is that the CoffeeScript +while can be used as a part of a larger expression -- while loops may +return an array containing the computed result of each iteration.

  compileNode: (o) ->
     o.indent += TAB
     set      = ''
     {body}   = this
@@ -858,13 +880,12 @@ flexibility or more speed than a comprehension can provide.

body = "\n#{ body.compile o, LEVEL_TOP }\n#{@tab}" code = set + @tab + "while (#{ @condition.compile o, LEVEL_PAREN }) {#{body}}" if @returns - o.indent = @tab - code += '\n' + new Return(new Literal rvar).compile o - code

The main difference from a JavaScript while is that the CoffeeScript -while can be used as a part of a larger expression -- while loops may -return an array containing the computed result of each iteration.

Op

exports.Op = class Op extends Base
+      code += "\n#{@tab}return #{rvar};"
+    code

Op

Simple Arithmetic and logical operations. Performs some conversion from +CoffeeScript operations into their JavaScript equivalents.

exports.Op = class Op extends Base
   constructor: (op, first, second, flip) ->
     return new In first, second if op is 'in'
+    return new Call first, first.params or [] if op is 'do'
     if op is 'new'
       return first.newInstance() if first instanceof Call
       first = new Parens first   if first instanceof Code and first.bound
@@ -872,18 +893,20 @@ return an array containing the computed result of each iteration.

@first = first @second = second @flip = !!flip - return this

Simple Arithmetic and logical operations. Performs some conversion from -CoffeeScript operations into their JavaScript equivalents.

  CONVERSIONS =
+    return this

The map of conversions from CoffeeScript to JavaScript symbols.

  CONVERSIONS =
     '==': '==='
     '!=': '!=='
-    'of': 'in'

The map of conversions from CoffeeScript to JavaScript symbols.

  INVERSIONS =
+    'of': 'in'

The map of invertible operators.

  INVERSIONS =
     '!==': '==='
     '===': '!=='
 
   children: ['first', 'second']
 
+  isSimpleNumber: NO
+
   isUnary: ->
-    not @second

The map of invertible operators.

  isChainable: ->
+    not @second

Am I capable of +Python-style comparison chaining?

  isChainable: ->
     @operator in ['<', '>', '>=', '<=', '===', '!==']
 
   invert: ->
@@ -923,8 +946,12 @@ CoffeeScript operations into their JavaScript equivalents.

@first.front = @front code = @first.compile(o, LEVEL_OP) + ' ' + @operator + ' ' + @second.compile(o, LEVEL_OP) - if o.level <= LEVEL_OP then code else "(#{code})"

Am I capable of -Python-style comparison chaining?

  compileChain: (o) ->
+    if o.level <= LEVEL_OP then code else "(#{code})"

Mimic Python's chained comparisons when multiple comparison operators are +used sequentially. For example:

+ +
bin/coffee -e 'console.log 50 < 65 > 10'
+true
+
  compileChain: (o) ->
     [@first.second, shared] = @first.second.cache o
     fst = @first.compile o, LEVEL_OP
     code = "#{fst} #{if @invert then '&&' else '||'} #{ shared.compile o } #{@operator} #{ @second.compile o, LEVEL_OP }"
@@ -937,12 +964,7 @@ CoffeeScript operations into their JavaScript equivalents.

else fst = @first ref = fst.compile o - new Existence(fst).compile(o) + " ? #{ref} : #{ @second.compile o, LEVEL_LIST }"

Mimic Python's chained comparisons when multiple comparison operators are -used sequentially. For example:

- -
bin/coffee -e 'console.log 50 < 65 > 10'
-true
-
  compileUnary: (o) ->
+    new Existence(fst).compile(o) + " ? #{ref} : #{ @second.compile o, LEVEL_LIST }"

Compile a unary Op.

  compileUnary: (o) ->
     parts = [op = @operator]
     parts.push ' ' if op in ['new', 'typeof', 'delete'] or
                       op in ['+', '-'] and @first instanceof Op and @first.operator is op
@@ -951,7 +973,7 @@ true
     parts.join ''
 
   toString: (idt) ->
-    super idt, @constructor.name + ' ' + @operator

Compile a unary Op.

exports.In = class In extends Base
+    super idt, @constructor.name + ' ' + @operator

In

exports.In = class In extends Base
   constructor: (@object, @array) ->
 
   children: ['object', 'array']
@@ -981,17 +1003,20 @@ true
     if o.level < LEVEL_LIST then code else "(#{code})"
 
   toString: (idt) ->
-    super idt, @constructor.name + if @negated then '!' else ''

In

Try

exports.Try = class Try extends Base
+    super idt, @constructor.name + if @negated then '!' else ''

Try

A classic try/catch/finally block.

exports.Try = class Try extends Base
   constructor: (@attempt, @error, @recovery, @ensure) ->
 
   children: ['attempt', 'recovery', 'ensure']
 
   isStatement: YES
 
+  jumps: (o) -> @attempt.jumps(o) or @recovery?.jumps(o)
+
   makeReturn: ->
     @attempt  = @attempt .makeReturn() if @attempt
     @recovery = @recovery.makeReturn() if @recovery
-    this

A classic try/catch/finally block.

  compileNode: (o) ->
+    this

Compilation is more or less as you would expect -- the finally clause +is optional, the catch is not.

  compileNode: (o) ->
     o.indent  += TAB
     errorPart = if @error then " (#{ @error.compile o }) " else ' '
     catchPart = if @recovery
@@ -999,20 +1024,21 @@ true
     else unless @ensure or @recovery
       ' catch (_e) {}'
     """
-
-#DIVIDER
-    """ + if @ensure then " finally {\n#{ @ensure.compile o, LEVEL_TOP }\n#{@tab}}" else ''

Compilation is more or less as you would expect -- the finally clause -is optional, the catch is not.

{@tab}try { -{ @attempt.compile o, LEVEL_TOP } -{@tab}}#{ catchPart or '' }

exports.Throw = class Throw extends Base
+    #{@tab}try {
+    #{ @attempt.compile o, LEVEL_TOP }
+    #{@tab}}#{ catchPart or '' }
+    """ + if @ensure then " finally {\n#{ @ensure.compile o, LEVEL_TOP }\n#{@tab}}" else ''

Throw

Simple node to throw an exception.

exports.Throw = class Throw extends Base
   constructor: (@expression) ->
 
   children: ['expression']
 
-  isStatement: YES

Throw

  makeReturn: THIS
+  isStatement: YES
+  jumps:       NO

A Throw is already a return, of sorts...

  makeReturn: THIS
 
   compileNode: (o) ->
-    @tab + "throw #{ @expression.compile o };"

Simple node to throw an exception.

A Throw is already a return, of sorts...

exports.Existence = class Existence extends Base
+    @tab + "throw #{ @expression.compile o };"

Existence

Checks a variable for existence -- not null and not undefined. This is +similar to .nil? in Ruby, and avoids having to consult a JavaScript truth +table.

exports.Existence = class Existence extends Base
   constructor: (@expression) ->
 
   children: ['expression']
@@ -1029,9 +1055,11 @@ is optional, the catch is not.

else sym = if @negated then '==' else '!=' "#{code} #{sym} null" - if o.level <= LEVEL_COND then code else "(#{code})"

Existence

Checks a variable for existence -- not null and not undefined. This is -similar to .nil? in Ruby, and avoids having to consult a JavaScript truth -table.

exports.Parens = class Parens extends Base
+    if o.level <= LEVEL_COND then code else "(#{code})"

Parens

An extra set of parentheses, specified explicitly in the source. At one time +we tried to clean up the results by detecting and removing redundant +parentheses, but no longer -- you can put in as many as you please.

+ +

Parentheses are a good way to force any statement to become an expression.

exports.Parens = class Parens extends Base
   constructor: (@body) ->
 
   children: ['body']
@@ -1045,15 +1073,18 @@ table.

if expr instanceof Value and expr.isAtomic() expr.front = @front return expr.compile o - bare = o.level < LEVEL_OP and (expr instanceof Op or expr instanceof Call) code = expr.compile o, LEVEL_PAREN - if bare then code else "(#{code})"

Parens

An extra set of parentheses, specified explicitly in the source. At one time -we tried to clean up the results by detecting and removing redundant -parentheses, but no longer -- you can put in as many as you please.

+ bare = o.level < LEVEL_OP and (expr instanceof Op or expr instanceof Call or + (expr instanceof For and expr.returns)) + if bare then code else "(#{code})"

For

CoffeeScript's replacement for the for loop is our array and object +comprehensions, that compile into for loops here. They also act as an +expression, able to return the result of each filtered iteration.

-

Parentheses are a good way to force any statement to become an expression.

exports.For = class For extends Base
-  constructor: (body, source, @name, @index) ->
-    {@source, @guard, @step} = source
+

Unlike Python array comprehensions, they can be multi-line, and you can pass +the current index of the loop as a second parameter. Unlike Ruby blocks, +you can map and filter in a single pass.

exports.For = class For extends Base
+  constructor: (body, source) ->
+    {@source, @guard, @step, @name, @index} = source
     @body    = Expressions.wrap [body]
     @own     = !!source.own
     @object  = !!source.object
@@ -1069,22 +1100,26 @@ parentheses, but no longer -- you can put in as many as you please.

isStatement: YES + jumps: While::jumps + makeReturn: -> @returns = yes - this - - containsPureStatement: While::containsPureStatement

For

  compileNode: (o) ->
+    this

Welcome to the hairiest method in all of CoffeeScript. Handles the inner +loop, filtering, stepping, and result saving for array, object, and range +comprehensions. Some of the generated code can be shared in common, and +some cannot.

  compileNode: (o) ->
     body          = Expressions.wrap [@body]
-    hasCode       = body.contains (node) -> node instanceof Code
-    hasPure       = last(body.expressions)?.containsPureStatement()
+    lastJumps     = last(body.expressions)?.jumps()
+    @returns      = no if lastJumps and lastJumps instanceof Return
     source        = if @range then @source.base else @source
     scope         = o.scope
     name          = @name  and @name.compile o, LEVEL_LIST
     index         = @index and @index.compile o, LEVEL_LIST
     scope.find(name,  immediate: yes) if name and not @pattern
     scope.find(index, immediate: yes) if index
-    rvar          = scope.freeVariable 'results' if @returns and not hasPure
+    rvar          = scope.freeVariable 'results' if @returns
     ivar          = (if @range then name else index) or scope.freeVariable 'i'
+    name          = ivar if @pattern
     varPart       = ''
     guardPart     = ''
     defPart       = ''
@@ -1096,35 +1131,32 @@ parentheses, but no longer -- you can put in as many as you please.

if (name or @own) and not IDENTIFIER.test svar defPart = "#{@tab}#{ref = scope.freeVariable 'ref'} = #{svar};\n" svar = ref - namePart = if @pattern - new Assign(@name, new Literal "#{svar}[#{ivar}]").compile o, LEVEL_TOP - else if name - "#{name} = #{svar}[#{ivar}]" + if name and not @pattern + namePart = "#{name} = #{svar}[#{ivar}]" unless @object lvar = scope.freeVariable 'len' stepPart = if @step then "#{ivar} += #{ @step.compile(o, LEVEL_OP) }" else "#{ivar}++" forPart = "#{ivar} = 0, #{lvar} = #{svar}.length; #{ivar} < #{lvar}; #{stepPart}" - if @returns and not hasPure + if @returns resultPart = "#{@tab}#{rvar} = [];\n" - returnResult = '\n' + (new Return(new Literal(rvar)).compile o, LEVEL_PAREN) + returnResult = "\n#{@tab}return #{rvar};" body = Push.wrap rvar, body if @guard body = Expressions.wrap [new If @guard, body] - if hasCode - body = Closure.wrap(body, yes, not @returns) + if @pattern + body.expressions.unshift new Assign @name, new Literal "#{svar}[#{ivar}]" + defPart += @pluckDirectCall o, body varPart = "\n#{idt1}#{namePart};" if namePart if @object forPart = "#{ivar} in #{svar}" guardPart = "\n#{idt1}if (!#{utility('hasProp')}.call(#{svar}, #{ivar})) continue;" if @own - defPart += @pluckDirectCall o, body, name, index unless @pattern body = body.compile merge(o, indent: idt1), LEVEL_TOP body = '\n' + body + '\n' if body """ - -#DIVIDER + #{defPart}#{resultPart or ''}#{@tab}for (#{forPart}) {#{guardPart}#{varPart}#{body}#{@tab}}#{returnResult or ''} """ - pluckDirectCall: (o, body, name, index) -> + pluckDirectCall: (o, body) -> defs = '' for expr, idx in body.expressions expr = expr.unwrapAll() @@ -1138,32 +1170,23 @@ parentheses, but no longer -- you can put in as many as you please.

fn = val.base?.unwrapAll() or val ref = new Literal o.scope.freeVariable 'fn' base = new Value ref - args = compact [name, index] - args.reverse() if @object - for arg, i in args - fn.params.push new Param args[i] = new Literal arg if val.base [val.base, base] = [base, val] args.unshift new Literal 'this' - body.expressions[idx] = new Call base, args - o.sharedScope = o.scope + body.expressions[idx] = new Call base, expr.args defs += @tab + new Assign(ref, fn).compile(o, LEVEL_TOP) + ';\n' - defs

CoffeeScript's replacement for the for loop is our array and object -comprehensions, that compile into for loops here. They also act as an -expression, able to return the result of each filtered iteration.

- -

Unlike Python array comprehensions, they can be multi-line, and you can pass -the current index of the loop as a second parameter. Unlike Ruby blocks, -you can map and filter in a single pass.

Welcome to the hairiest method in all of CoffeeScript. Handles the inner -loop, filtering, stepping, and result saving for array, object, and range -comprehensions. Some of the generated code can be shared in common, and -some cannot.

exports.Switch = class Switch extends Base
+    defs

Switch

A JavaScript switch statement. Converts into a returnable expression on-demand.

exports.Switch = class Switch extends Base
   constructor: (@subject, @cases, @otherwise) ->
 
   children: ['subject', 'cases', 'otherwise']
 
   isStatement: YES
 
+  jumps: (o = {block: yes}) ->
+    for [conds, block] in @cases
+      return block if block.jumps o
+    @otherwise?.jumps o
+
   makeReturn: ->
     pair[1].makeReturn() for pair in @cases
     @otherwise?.makeReturn()
@@ -1179,13 +1202,18 @@ some cannot.

< code += idt1 + "case #{ cond.compile o, LEVEL_PAREN }:\n" code += body + '\n' if body = block.compile o, LEVEL_TOP break if i is @cases.length - 1 and not @otherwise - for expr in block.expressions by -1 when expr not instanceof Comment - code += idt2 + 'break;\n' unless expr instanceof Return - break - code += idt1 + "default:\n#{ @otherwise.compile o, LEVEL_TOP }\n" if @otherwise - code + @tab + '}'

{defPart}#{resultPart or ''}#{@tab}for (#{forPart}) {#{guardPart}#{varPart}#{body}#{@tab}}#{returnResult or ''}

Switch

exports.If = class If extends Base
+      expr = @lastNonComment block.expressions
+      jumper = expr.jumps()
+      if not expr or not jumper or (jumper instanceof Literal and jumper.value is 'debugger')
+        code += idt2 + 'break;\n'
+    code += idt1 + "default:\n#{ @otherwise.compile o, LEVEL_TOP }\n" if @otherwise and @otherwise.expressions.length
+    code +  @tab + '}'

If

If/else statements. Acts as an expression by pushing down requested returns +to the last line of each clause.

+ +

Single-expression Ifs are compiled into conditional operators if possible, +because ternaries are already proper expressions, and don't need conversion.

exports.If = class If extends Base
   constructor: (condition, @body, options = {}) ->
-    @condition = if options.invert then condition.invert() else condition
+    @condition = if options.type is 'unless' then condition.invert() else condition
     @elseBody  = null
     @isChain   = false
     {@soak}    = options
@@ -1193,16 +1221,19 @@ some cannot.

< children: ['condition', 'body', 'elseBody'] bodyNode: -> @body?.unwrap() - elseBodyNode: -> @elseBody?.unwrap()

A JavaScript switch statement. Converts into a returnable expression on-demand.

  addElse: (elseBody) ->
+  elseBodyNode: -> @elseBody?.unwrap()

Rewrite a chain of Ifs to add a default case as the final else.

  addElse: (elseBody) ->
     if @isChain
       @elseBodyNode().addElse elseBody
     else
       @isChain  = elseBody instanceof If
       @elseBody = @ensureExpressions elseBody
-    this

If

  isStatement: (o) ->
+    this

The If only compiles into a statement if either of its bodies needs +to be a statement. Otherwise a conditional operator is safe.

  isStatement: (o) ->
     o?.level is LEVEL_TOP or
       @bodyNode().isStatement(o) or @elseBodyNode()?.isStatement(o)
 
+  jumps: (o) -> @body.jumps(o) or @elseBody?.jumps(o)
+
   compileNode: (o) ->
     if @isStatement o then @compileStatement o else @compileExpression o
 
@@ -1212,11 +1243,8 @@ some cannot.

< this ensureExpressions: (node) -> - if node instanceof Expressions then node else new Expressions [node]

If/else statements. Acts as an expression by pushing down requested returns -to the last line of each clause.

- -

Single-expression Ifs are compiled into conditional operators if possible, -because ternaries are already proper expressions, and don't need conversion.

  compileStatement: (o) ->
+    if node instanceof Expressions then node else new Expressions [node]

Compile the If as a regular if-else statement. Flattened chains +force inner else bodies into statement form.

  compileStatement: (o) ->
     child    = del o, 'chainChild'
     cond     = @condition.compile o, LEVEL_PAREN
     o.indent += TAB
@@ -1230,7 +1258,7 @@ because ternaries are already proper expressions, and don't need conversion.

o.chainChild = yes @elseBody.unwrap().compile o, LEVEL_TOP else - "{\n#{ @elseBody.compile o, LEVEL_TOP }\n#{@tab}}"

Rewrite a chain of Ifs to add a default case as the final else.

  compileExpression: (o) ->
+      "{\n#{ @elseBody.compile o, LEVEL_TOP }\n#{@tab}}"

Compile the If as a conditional operator.

  compileExpression: (o) ->
     cond = @condition.compile o, LEVEL_COND
     body = @bodyNode().compile o, LEVEL_LIST
     alt  = if @elseBodyNode() then @elseBodyNode().compile(o, LEVEL_LIST) else 'void 0'
@@ -1238,17 +1266,17 @@ because ternaries are already proper expressions, and don't need conversion.

if o.level >= LEVEL_COND then "(#{code})" else code unfoldSoak: -> - @soak and this

The If only compiles into a statement if either of its bodies needs -to be a statement. Otherwise a conditional operator is safe.

Compile the If as a regular if-else statement. Flattened chains -force inner else bodies into statement form.

Compile the If as a conditional operator.

Push =
-  wrap: (name, exps) ->
-    return exps if exps.isEmpty() or last(exps.expressions).containsPureStatement()
-    exps.push new Call new Value(new Literal(name), [new Access new Literal 'push']), [exps.pop()]

Faux-Nodes

+ @soak and this

Faux-Nodes

Faux-nodes are never created by the grammar, but are used during code -generation to generate other combinations of nodes.

Push

Closure =

The Push creates the tree for array.push(value), -which is helpful for recording the result arrays from comprehensions.

  wrap: (expressions, statement, noReturn) ->
-    return expressions if expressions.containsPureStatement()
+generation to generate other combinations of nodes.

Push

The Push creates the tree for array.push(value), +which is helpful for recording the result arrays from comprehensions.

Push =
+  wrap: (name, exps) ->
+    return exps if exps.isEmpty() or last(exps.expressions).jumps()
+    exps.push new Call new Value(new Literal(name), [new Access new Literal 'push']), [exps.pop()]

Closure

A faux-node used to wrap an expressions body in a closure.

Closure =

Wrap the expressions body, unless it contains a pure statement, +in which case, no dice. If the body mentions this or arguments, +then make sure that the closure wrapper preserves the original values.

  wrap: (expressions, statement, noReturn) ->
+    return expressions if expressions.jumps()
     func = new Code [], Expressions.wrap [expressions]
     args = []
     if (mentionsArgs = expressions.contains @literalArgs) or
@@ -1261,15 +1289,16 @@ which is helpful for recording the result arrays from comprehensions.

call = new Call func, args if statement then Expressions.wrap [call] else call - literalArgs: (node) -> node instanceof Literal and node.value is 'arguments' - literalThis: (node) -> node instanceof Literal and node.value is 'this' or - node instanceof Code and node.bound

Closure

unfoldSoak = (o, parent, name) ->
+  literalArgs: (node) ->
+    node instanceof Literal and node.value is 'arguments' and not node.asKey
+  literalThis: (node) ->
+    (node instanceof Literal and node.value is 'this' and not node.asKey) or
+      (node instanceof Code and node.bound)

Unfold a node's child if soak, then tuck the node under created If

unfoldSoak = (o, parent, name) ->
   return unless ifn = parent[name].unfoldSoak o
   parent[name] = ifn.body
   ifn.body = new Value parent
-  ifn

A faux-node used to wrap an expressions body in a closure.

UTILITIES =

Wrap the expressions body, unless it contains a pure statement, -in which case, no dice. If the body mentions this or arguments, -then make sure that the closure wrapper preserves the original values.

  extends: '''
+  ifn

Constants

UTILITIES =

Correctly set up a prototype chain for inheritance, including a reference +to the superclass for super() calls, and copies of any static properties.

  extends: '''
     function(child, parent) {
       for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }
       function ctor() { this.constructor = child; }
@@ -1278,28 +1307,27 @@ then make sure that the closure wrapper preserves the original values.

child.__super__ = parent.prototype; return child; } - '''

Unfold a node's child if soak, then tuck the node under created If

  bind: '''
+  '''

Create a function bound to the current value of "this".

  bind: '''
     function(fn, me){ return function(){ return fn.apply(me, arguments); }; }
-  '''

Constants

  indexOf: '''
+  '''

Discover if an item is in an array.

  indexOf: '''
     Array.prototype.indexOf || function(item) {
       for (var i = 0, l = this.length; i < l; i++) {
         if (this[i] === item) return i;
       }
       return -1;
     }
-  '''

Correctly set up a prototype chain for inheritance, including a reference -to the superclass for super() calls, and copies of any static properties.

  hasProp: 'Object.prototype.hasOwnProperty'
-  slice  : 'Array.prototype.slice'

Create a function bound to the current value of "this".

LEVEL_TOP    = 1  # ...;
+  '''

Shortcuts to speed up the lookup time for native functions.

  hasProp: 'Object.prototype.hasOwnProperty'
+  slice  : 'Array.prototype.slice'

Levels indicates a node's position in the AST. Useful for knowing if +parens are necessary or superfluous.

LEVEL_TOP    = 1  # ...;
 LEVEL_PAREN  = 2  # (...)
 LEVEL_LIST   = 3  # [...]
 LEVEL_COND   = 4  # ... ? x : y
 LEVEL_OP     = 5  # !...
-LEVEL_ACCESS = 6  # ...[0]

Discover if an item is in an array.

TAB = '  '

Shortcuts to speed up the lookup time for native functions.

TRAILING_WHITESPACE = /[ \t]+$/gm
+LEVEL_ACCESS = 6  # ...[0]

Tabs are two spaces for pretty printing.

TAB = '  '

Trim out all trailing whitespace, so that the generated code plays nice +with Git.

TRAILING_WHITESPACE = /[ \t]+$/gm
 
 IDENTIFIER = /^[$A-Za-z_][$\w]*$/
-SIMPLENUM  = /^[+-]?\d+$/

Levels indicates a node's position in the AST. Useful for knowing if -parens are necessary or superfluous.

IS_STRING = /^['"]/

Tabs are two spaces for pretty printing.

Trim out all trailing whitespace, so that the generated code plays nice -with Git.

utility = (name) ->
+SIMPLENUM  = /^[+-]?\d+$/

Is a literal value a string?

IS_STRING = /^['"]/

Utility Functions

Helper for ensuring that utility functions are assigned at the top level.

utility = (name) ->
   ref = "__#{name}"
   Scope.root.assign ref, UTILITIES[name]
   ref
@@ -1307,4 +1335,4 @@ with Git.

multident = (code, tab) -> code.replace /\n/g, '$&' + tab -

Is a literal value a string?

undefined

Utility Functions

undefined

Helper for ensuring that utility functions are assigned at the top level.

undefined
\ No newline at end of file + \ No newline at end of file diff --git a/documentation/docs/optparse.html b/documentation/docs/optparse.html index 855169dd..c48c5b83 100644 --- a/documentation/docs/optparse.html +++ b/documentation/docs/optparse.html @@ -14,12 +14,17 @@ option) list, and all subsequent arguments are left unparsed.

Along with an an optional banner for the usage help.

  constructor: (rules, @banner) ->
     @rules = buildRules rules

Parse the list of arguments, populating an options object with all of the specified options, and returning it. options.arguments will be an array -containing the remaining non-option arguments. This is a simpler API than -many option parsers that allow you to attach callback actions for every -flag. Instead, you're responsible for interpreting the options object.

  parse: (args) ->
-    options = arguments: []
+containing the remaining non-option arguments. options.literals will be
+an array of options that are meant to be passed through directly to the
+executing script. This is a simpler API than many option parsers that allow
+you to attach callback actions for every flag. Instead, you're responsible
+for interpreting the options object.

  parse: (args) ->
+    options = arguments: [], literals: []
     args    = normalizeArguments args
     for arg, i in args
+      if arg is '--'
+        options.literals = args[(i + 1)..]
+        break
       isOption = !!(arg.match(LONG_FLAG) or arg.match(SHORT_FLAG))
       matchedRule = no
       for rule in @rules
diff --git a/documentation/docs/rewriter.html b/documentation/docs/rewriter.html
index fe39f2ff..7336e644 100644
--- a/documentation/docs/rewriter.html
+++ b/documentation/docs/rewriter.html
@@ -106,22 +106,22 @@ deal with them.

@tokens.splice idx, 0, ['CALL_END', ')', token[2]] @scanTokens (token, i, tokens) -> tag = token[0] - noCall = yes if tag in ['CLASS', 'IF', 'UNLESS'] + noCall = yes if tag in ['CLASS', 'IF'] [prev, current, next] = tokens[i - 1 .. i + 1] callObject = not noCall and tag is 'INDENT' and next and next.generated and next[0] is '{' and prev and prev[0] in IMPLICIT_FUNC seenSingle = no - noCall = no if tag in LINEBREAKS + noCall = no if tag in LINEBREAKS token.call = yes if prev and not prev.spaced and tag is '?' return 1 unless callObject or prev?.spaced and (prev.call or prev[0] in IMPLICIT_FUNC) and (tag in IMPLICIT_CALL or not (token.spaced or token.newLine) and tag in IMPLICIT_UNSPACED_CALL) tokens.splice i, 0, ['CALL_START', '(', token[2]] - @detectEnd i + (if callObject then 2 else 1), (token, i) -> - return yes if not seenSingle and token.fromThen + @detectEnd i + 1, (token, i) -> [tag] = token - seenSingle = yes if tag in ['IF', 'ELSE', 'UNLESS', '->', '=>'] + return yes if not seenSingle and token.fromThen + seenSingle = yes if tag in ['IF', 'ELSE', '->', '=>'] return yes if tag in ['.', '?.', '::'] and @tag(i - 1) is 'OUTDENT' not token.generated and @tag(i - 1) isnt ',' and tag in IMPLICIT_END and (tag isnt 'INDENT' or @@ -163,7 +163,7 @@ but we need to make sure it's balanced.

  tagPostfixConditionals: ->
     condition = (token, i) -> token[0] in ['TERMINATOR', 'INDENT']
     @scanTokens (token, i) ->
-      return 1 unless token[0] in ['IF', 'UNLESS']
+      return 1 unless token[0] is 'IF'
       original = token
       @detectEnd i + 1, condition, (token, i) ->
         original[0] = 'POST_' + original[0] if token[0] isnt 'INDENT'
@@ -240,11 +240,11 @@ look things up from either end.

EXPRESSION_START.push INVERSES[rite] = left EXPRESSION_END .push INVERSES[left] = rite

Tokens that indicate the close of a clause of an expression.

EXPRESSION_CLOSE = ['CATCH', 'WHEN', 'ELSE', 'FINALLY'].concat EXPRESSION_END

Tokens that, if followed by an IMPLICIT_CALL, indicate a function invocation.

IMPLICIT_FUNC    = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@', 'THIS']

If preceded by an IMPLICIT_FUNC, indicates a function invocation.

IMPLICIT_CALL    = [
   'IDENTIFIER', 'NUMBER', 'STRING', 'JS', 'REGEX', 'NEW', 'PARAM_START', 'CLASS'
-  'IF', 'UNLESS', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'UNARY',
+  'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'UNARY', 'SUPER'
   '@', '->', '=>', '[', '(', '{', '--', '++'
 ]
 
-IMPLICIT_UNSPACED_CALL = ['+', '-']

Tokens indicating that the implicit call must enclose a block of expressions.

IMPLICIT_BLOCK   = ['->', '=>', '{', '[', ',']

Tokens that always mark the end of an implicit call for single-liners.

IMPLICIT_END     = ['POST_IF', 'POST_UNLESS', 'FOR', 'WHILE', 'UNTIL', 'WHEN', 'BY', 'LOOP', 'TERMINATOR', 'INDENT']

Single-line flavors of block expressions that have unclosed endings. +IMPLICIT_UNSPACED_CALL = ['+', '-']

Tokens indicating that the implicit call must enclose a block of expressions.

IMPLICIT_BLOCK   = ['->', '=>', '{', '[', ',']

Tokens that always mark the end of an implicit call for single-liners.

IMPLICIT_END     = ['POST_IF', 'FOR', 'WHILE', 'UNTIL', 'WHEN', 'BY', 'LOOP', 'TERMINATOR', 'INDENT']

Single-line flavors of block expressions that have unclosed endings. The grammar can't disambiguate them, so we insert the implicit indentation.

SINGLE_LINERS    = ['ELSE', '->', '=>', 'TRY', 'FINALLY', 'THEN']
 SINGLE_CLOSERS   = ['TERMINATOR', 'CATCH', 'FINALLY', 'ELSE', 'OUTDENT', 'LEADING_WHEN']

Tokens that end a line.

LINEBREAKS       = ['TERMINATOR', 'INDENT', 'OUTDENT']
 
diff --git a/documentation/docs/scope.html b/documentation/docs/scope.html
index ffeeb4c4..7d18518a 100644
--- a/documentation/docs/scope.html
+++ b/documentation/docs/scope.html
@@ -11,7 +11,8 @@ where it should declare its variables, and a reference to the function that
 it wraps.

  constructor:(@parent, @expressions, @method) ->
     @variables = [{name: 'arguments', type: 'arguments'}]
     @positions = {}
-    Scope.root = this unless @parent

Adds a new variable or overrides an existing one.

  add: (name, type) ->
+    Scope.root = this unless @parent

Adds a new variable or overrides an existing one.

  add: (name, type, immediate) ->
+    return @parent.add name, type, immediate if @shared and not immediate
     if typeof (pos = @positions[name]) is 'number'
       @variables[pos].type = type
     else
@@ -21,7 +22,7 @@ already exist.

@add name, 'var' no

Reserve a variable name as originating from a function parameter for this scope. No var required for internal references.

  parameter: (name) ->
-    return if @shared and @check name, yes
+    return if @shared and @parent.check name, yes
     @add name, 'param'

Just check to see if a variable has already been declared, without reserving, walks up to the root scope.

  check: (name, immediate) ->
     found = !!@type(name)
@@ -36,7 +37,7 @@ walks up to the root scope.

compiler-generated variable. _var, _var2, and so on...

  freeVariable: (type) ->
     index = 0
     index++ while @check((temp = @temporary type, index), true)
-    @add temp, 'var'
+    @add temp, 'var', yes
     temp

Ensure that an assignment is made at the top of this scope (or at the top-level scope, if requested).

  assign: (name, value) ->
     @add name, value: value, assigned: true
diff --git a/documentation/docs/underscore.html b/documentation/docs/underscore.html
index c3a4a4d4..56af0517 100644
--- a/documentation/docs/underscore.html
+++ b/documentation/docs/underscore.html
@@ -31,7 +31,7 @@ Handles objects implementing forEach, arrays, and raw objects.<
     else if _.isNumber obj.length
       iterator.call context, obj[i], i, obj for i in [0...obj.length]
     else
-      iterator.call context, val, key, obj  for key, val of obj
+      iterator.call context, val, key, obj  for own key, val of obj
   catch e
     throw e if e isnt breaker
   obj

Return the results of applying the iterator to each element. Use JavaScript @@ -86,8 +86,7 @@ JavaScript 1.6's some, if it exists.

result

Determine if a given value is included in the array or object, based on ===.

_.include = (obj, target) ->
   return _.indexOf(obj, target) isnt -1 if nativeIndexOf and obj.indexOf is nativeIndexOf
-  for key, val of obj
-    return true if val is target
+  return true for own key, val of obj when val is target
   false

Invoke a method with arguments on every item in a collection.

_.invoke = (obj, method) ->
   args = _.rest arguments, 2
   (if method then val[method] else val).apply(val, args) for val in obj

Convenience version of a common use case of map: fetching a property.

_.pluck = (obj, key) ->
@@ -225,10 +224,10 @@ The primary purpose of this method is to "tap into" a method chain, in order to
     return a.source     is b.source and
            a.global     is b.global and
            a.ignoreCase is b.ignoreCase and
-           a.multiline  is b.multiline

If a is not an object by this point, we can't handle it.

  return false if atype isnt 'object'

Check for different array lengths before comparing contents.

  return false if a.length and (a.length isnt b.length)

Nothing else worked, deep compare the contents.

  aKeys = _.keys(a); bKeys = _.keys(b)

Different object sizes?

  return false if aKeys.length isnt bKeys.length

Recursive comparison of contents.

  return false for all key, val of a when !(key of b) or !_.isEqual(val, b[key])
+           a.multiline  is b.multiline

If a is not an object by this point, we can't handle it.

  return false if atype isnt 'object'

Check for different array lengths before comparing contents.

  return false if a.length and (a.length isnt b.length)

Nothing else worked, deep compare the contents.

  aKeys = _.keys(a); bKeys = _.keys(b)

Different object sizes?

  return false if aKeys.length isnt bKeys.length

Recursive comparison of contents.

  return false for key, val of a when !(key of b) or !_.isEqual(val, b[key])
   true

Is a given array or object empty?

_.isEmpty = (obj) ->
   return obj.length is 0 if _.isArray(obj) or _.isString(obj)
-  return false for key of obj when hasOwnProperty.call(obj, key)
+  return false for own key of obj
   true

Is a given value a DOM element?

_.isElement   = (obj) -> obj and obj.nodeType is 1

Is a given value an array?

_.isArray     = nativeIsArray or (obj) -> !!(obj and obj.concat and obj.unshift and not obj.callee)

Is a given variable an arguments object?

_.isArguments = (obj) -> obj and obj.callee

Is the given value a function?

_.isFunction  = (obj) -> !!(obj and obj.constructor and obj.call and obj.apply)

Is the given value a string?

_.isString    = (obj) -> !!(obj is '' or (obj and obj.charCodeAt and obj.substr))

Is a given value a number?

_.isNumber    = (obj) -> (obj is +obj) or toString.call(obj) is '[object Number]'

Is a given value a boolean?

_.isBoolean   = (obj) -> obj is true or obj is false

Is a given value a Date?

_.isDate      = (obj) -> !!(obj and obj.getTimezoneOffset and obj.setUTCFullYear)

Is the given value a regular expression?

_.isRegExp    = (obj) -> !!(obj and obj.exec and (obj.ignoreCase or obj.ignoreCase is false))

Is the given value NaN -- this one is interesting. NaN != NaN, and isNaN(undefined) == true, so we make sure it's a number first.

_.isNaN       = (obj) -> _.isNumber(obj) and window.isNaN(obj)

Is a given value equal to null?

_.isNull      = (obj) -> obj is null

Is a given variable undefined?

_.isUndefined = (obj) -> typeof obj is 'undefined'

Utility Functions

Run Underscore.js in noConflict mode, returning the _ variable to its previous owner. Returns a reference to the Underscore object.

_.noConflict = ->
@@ -282,7 +281,7 @@ underscore functions. Wrapped objects may be chained.

wrapper.prototype[name] = -> args = _.toArray arguments unshift.call args, this._wrapped - result func.apply(_, args), this._chain

Add all of the Underscore functions to the wrapper object.

_.mixin _

Add all mutator Array functions to the wrapper.

_.each ['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], (name) ->
+    result func.apply(_, args), this._chain

Add all ofthe Underscore functions to the wrapper object.

_.mixin _

Add all mutator Array functions to the wrapper.

_.each ['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], (name) ->
   method = Array.prototype[name]
   wrapper.prototype[name] = ->
     method.apply(this._wrapped, arguments)
diff --git a/documentation/index.html.erb b/documentation/index.html.erb
index 8d2770fa..2d302f3c 100644
--- a/documentation/index.html.erb
+++ b/documentation/index.html.erb
@@ -82,7 +82,7 @@
           
-

+          
Run

@@ -131,7 +131,7 @@

Latest Version: - 0.9.6 + 1.0.0

@@ -474,22 +474,8 @@ Expressions

- Loops - The only low-level loop that CoffeeScript provides is the while loop. The - main difference from JavaScript is that the while loop can be used - as an expression, returning an array containing the result of each iteration - through the loop. -

- <%= code_for('while', 'lyrics.join("\n")') %> -

- For readability, the until keyword is equivalent to while not, - and the loop keyword is equivalent to while true. -

- -

- - Comprehensions - Hopefully, the majority of your loops can be implemented with comprehensions + Loops and Comprehensions + Most of the loops you'll write in CoffeeScript will be comprehensions over arrays, objects, and ranges. Comprehensions replace (and compile into) for loops, with optional guard clauses and the value of the current array index. Unlike for loops, array comprehensions are expressions, and can be returned @@ -529,11 +515,23 @@ Expressions check to avoid properties that may be interited from the prototype, use
for own key, value of object

+

+ The only low-level loop that CoffeeScript provides is the while loop. The + main difference from JavaScript is that the while loop can be used + as an expression, returning an array containing the result of each iteration + through the loop. +

+ <%= code_for('while', 'lyrics.join("\n")') %> +

+ For readability, the until keyword is equivalent to while not, + and the loop keyword is equivalent to while true. +

When using a JavaScript loop to generate functions, it's common to insert a closure wrapper in order to ensure that loop variables are closed over, and all the generated functions don't just share the final values. CoffeeScript - provides the do keyword, which immediately invokes a passed function. + provides the do keyword, which immediately invokes a passed function, + forwarding any arguments.

<%= code_for('do') %> @@ -980,7 +978,10 @@ Expressions
  • satyr's Coco - — a CoffeeScript dialect that aims to be more radical and practical. + — An avant-garde dialect of CoffeeScript that frequently pioneers + features and optimizations, some of which CoffeeScript later adopts. + Check out the list of additions + to the language.
  • yeungda's JCoffeeScript @@ -1088,6 +1089,20 @@ Expressions Change Log
  • +

    + 1.0.0 + Dec 24, 2010 + + CoffeeScript loops no longer try to preserve block scope when functions + are being generated within the loop body. Instead, you can use the + do keyword to create a convenient closure wrapper. + Added a --nodejs flag for passing through options directly + to the node executable. + Better behavior around the use of pure statements within expressions. + Fixed inclusive slicing through -1, for all browsers, and splicing + with arbitrary expressions as endpoints. +

    +

    0.9.6 Dec 6, 2010 @@ -1534,7 +1549,11 @@ Expressions window.compiledJS = '' try window.compiledJS = CoffeeScript.compile source, bare: on - $('#repl_results').text window.compiledJS + el = $('#repl_results')[0] + if el.innerText + el.innerText = window.compiledJS + else + $(el).text window.compiledJS $('#error').hide() catch error $('#error').text(error.message).show() diff --git a/documentation/js/block_comment.js b/documentation/js/block_comment.js index f21171aa..6e69d00c 100644 --- a/documentation/js/block_comment.js +++ b/documentation/js/block_comment.js @@ -1,4 +1,4 @@ /* -CoffeeScript Compiler v0.9.6 +CoffeeScript Compiler v1.0.0 Released under the MIT License */ \ No newline at end of file diff --git a/extras/coffee-script.js b/extras/coffee-script.js index d637559a..cd84e3ff 100644 --- a/extras/coffee-script.js +++ b/extras/coffee-script.js @@ -1,8 +1,8 @@ /** - * CoffeeScript Compiler v1.0.0-pre + * CoffeeScript Compiler v1.0.0 * http://coffeescript.org * * Copyright 2010, Jeremy Ashkenas * Released under the MIT License */ -this.CoffeeScript=function(){function require(a){return require[a]}require["./helpers"]=new function(){var a=this;(function(){var b,c;a.starts=function(a,b,c){return b===a.substr(c,b.length)},a.ends=function(a,b,c){var d;d=b.length;return b===a.substr(a.length-d-(c||0),d)},a.compact=function(a){var b,c,d,e;e=[];for(c=0,d=a.length;c=0)f+=1;else if(j=g[0],t.call(d,j)>=0)f-=1;a+=1}return a-1},a.prototype.removeLeadingNewlines=function(){var a,b,c,d;d=this.tokens;for(a=0,c=d.length;a=0)))return 1;d.splice(b,1);return 0})},a.prototype.closeOpenCalls=function(){var a,b;b=function(a,b){var c;return(c=a[0])===")"||c==="CALL_END"||a[0]==="OUTDENT"&&this.tag(b-1)===")"},a=function(a,b){return this.tokens[a[0]==="OUTDENT"?b-1:b][0]="CALL_END"};return this.scanTokens(function(c,d){c[0]==="CALL_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.closeOpenIndexes=function(){var a,b;b=function(a,b){var c;return(c=a[0])==="]"||c==="INDEX_END"},a=function(a,b){return a[0]="INDEX_END"};return this.scanTokens(function(c,d){c[0]==="INDEX_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.addImplicitBraces=function(){var a,b,c,f,g;c=[],f=null,g=0,b=function(a,b){var c,d,e,f,g,h;g=this.tokens.slice(b+1,b+3+1||9e9),c=g[0],f=g[1],e=g[2];if("HERECOMMENT"===(c!=null?c[0]:void 0))return false;d=a[0];return(d==="TERMINATOR"||d==="OUTDENT")&&!((f!=null?f[0]:void 0)===":"||(c!=null?c[0]:void 0)==="@"&&(e!=null?e[0]:void 0)===":")||d===","&&c&&((h=c[0])!=="IDENTIFIER"&&h!=="NUMBER"&&h!=="STRING"&&h!=="@"&&h!=="TERMINATOR"&&h!=="OUTDENT")},a=function(a,b){return this.tokens.splice(b,0,["}","}",a[2]])};return this.scanTokens(function(g,h,i){var j,k,l,m,n,o,p;if(o=l=g[0],t.call(e,o)>=0){c.push([l==="INDENT"&&this.tag(h-1)==="{"?"{":l,h]);return 1}if(t.call(d,l)>=0){f=c.pop();return 1}if(!(l===":"&&((j=this.tag(h-2))===":"||((p=c[c.length-1])!=null?p[0]:void 0)!=="{")))return 1;c.push(["{"]),k=j==="@"?h-2:h-1;while(this.tag(k-2)==="HERECOMMENT")k-=2;n=new String("{"),n.generated=true,m=["{",n,g[2]],m.generated=true,i.splice(k,0,m),this.detectEnd(h+2,b,a);return 2})},a.prototype.addImplicitParentheses=function(){var a,b,c;b=c=false,a=function(a,b){var c;c=a[0]==="OUTDENT"?b+1:b;return this.tokens.splice(c,0,["CALL_END",")",a[2]])};return this.scanTokens(function(d,e,k){var m,n,o,p,q,r,s,u,v;r=d[0];if(r==="CLASS"||r==="IF")b=true;r==="FOR"&&(c=true),s=k.slice(e-1,e+1+1||9e9),p=s[0],n=s[1],o=s[2],m=!b&&r==="INDENT"&&o&&o.generated&&o[0]==="{"&&p&&(u=p[0],t.call(i,u)>=0),q=false,t.call(l,r)>=0&&(b=c=false),p&&!p.spaced&&r==="?"&&(d.call=true);if(!(m||(p!=null?p.spaced:void 0)&&(p.call||(v=p[0],t.call(i,v)>=0))&&(t.call(g,r)>=0||!(d.spaced||d.newLine)&&t.call(j,r)>=0)&&!(c&&(r==="->"||r==="=>")&&o&&o[0]==="INDENT")))return 1;k.splice(e,0,["CALL_START","(",d[2]]),this.detectEnd(e+1,function(a,b){var d,e,g;r=a[0];if(c&&(r==="->"||r==="=>")&&((e=this.tokens[b+1])!=null?e[0]:void 0)==="INDENT")return true;if(!q&&a.fromThen)return true;if(r==="IF"||r==="ELSE"||r==="->"||r==="=>")q=true;if((r==="."||r==="?."||r==="::")&&this.tag(b-1)==="OUTDENT")return true;return!a.generated&&this.tag(b-1)!==","&&t.call(h,r)>=0&&(r!=="INDENT"||this.tag(b-2)!=="CLASS"&&(g=this.tag(b-1),t.call(f,g)<0)&&!((d=this.tokens[b+1])&&d.generated&&d[0]==="{"))},a),p[0]==="?"&&(p[0]="FUNC_EXIST");return 2})},a.prototype.addImplicitIndentation=function(){return this.scanTokens(function(a,b,c){var d,e,f,g,h,i,j,k;i=a[0];if(i==="TERMINATOR"&&this.tag(b+1)==="THEN"){c.splice(b,1);return 0}if(i==="ELSE"&&this.tag(b-1)!=="OUTDENT"){c.splice.apply(c,[b,0].concat(u.call(this.indentation(a))));return 2}if(i==="CATCH"&&((j=this.tag(b+2))==="OUTDENT"||j==="TERMINATOR"||j==="FINALLY")){c.splice.apply(c,[b+2,0].concat(u.call(this.indentation(a))));return 4}if(t.call(n,i)>=0&&this.tag(b+1)!=="INDENT"&&!(i==="ELSE"&&this.tag(b+1)==="IF")){h=i,k=this.indentation(a),f=k[0],g=k[1],h==="THEN"&&(f.fromThen=true),f.generated=g.generated=true,c.splice(b+1,0,f),e=function(a,b){var c;return a[1]!==";"&&(c=a[0],t.call(m,c)>=0)&&!(a[0]==="ELSE"&&(h!=="IF"&&h!=="THEN"))},d=function(a,b){return this.tokens.splice(this.tag(b-1)===","?b-1:b,0,g)},this.detectEnd(b+2,e,d),i==="THEN"&&c.splice(b,1);return 1}return 1})},a.prototype.tagPostfixConditionals=function(){var a;a=function(a,b){var c;return(c=a[0])==="TERMINATOR"||c==="INDENT"};return this.scanTokens(function(b,c){var d;if(b[0]!=="IF")return 1;d=b,this.detectEnd(c+1,a,function(a,b){if(a[0]!=="INDENT")return d[0]="POST_"+d[0]});return 1})},a.prototype.ensureBalance=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d={},f={},m=this.tokens;for(i=0,k=m.length;i0)throw Error("unclosed "+e+" on line "+(f[e]+1))}return this},a.prototype.rewriteClosingParens=function(){var a,b,c;c=[],a={};for(b in k)a[b]=0;return this.scanTokens(function(b,f,g){var h,i,j,l,m,n,o;if(o=m=b[0],t.call(e,o)>=0){c.push(b);return 1}if(t.call(d,m)<0)return 1;if(a[h=k[m]]>0){a[h]-=1,g.splice(f,1);return 0}i=c.pop(),j=i[0],l=k[j];if(m===l)return 1;a[j]+=1,n=[l,j==="INDENT"?i[1]:l],this.tag(f+2)===j?(g.splice(f+3,0,n),c.push(i)):g.splice(f,0,n);return 1})},a.prototype.indentation=function(a){return[["INDENT",2,a[2]],["OUTDENT",2,a[2]]]},a.prototype.tag=function(a){var b;return(b=this.tokens[a])!=null?b[0]:void 0};return a}(),b=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],k={},e=[],d=[];for(q=0,r=b.length;q","=>","[","(","{","--","++"],j=["+","-"],f=["->","=>","{","[",","],h=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","INDENT"],n=["ELSE","->","=>","TRY","FINALLY","THEN"],m=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],l=["TERMINATOR","INDENT","OUTDENT"]}).call(this)},require["./lexer"]=new function(){var a=this;(function(){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T;var U=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b=0||!b&&U.call(g,c)>=0)i=c.toUpperCase(),i==="WHEN"&&(k=this.tag(),U.call(t,k)>=0)?i="LEADING_WHEN":i==="FOR"?this.seenFor=true:i==="UNLESS"?i="IF":U.call(M,i)>=0?i="UNARY":U.call(G,i)>=0&&(i!=="INSTANCEOF"&&this.seenFor?(this.seenFor=false,i="FOR"+i):(i="RELATION",this.value()==="!"&&(this.tokens.pop(),c="!"+c)));U.call(r,c)>=0&&(b?(i="IDENTIFIER",c=new String(c),c.reserved=true):U.call(H,c)>=0&&this.identifierError(c)),b||(f.hasOwnProperty(c)&&(c=f[c]),i=function(){switch(c){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return i}}()),this.token(i,c),a&&this.token(":",":");return d.length},a.prototype.numberToken=function(){var a,b;if(!(a=D.exec(this.chunk)))return 0;b=a[0],this.token("NUMBER",b);return b.length},a.prototype.stringToken=function(){var a,b;switch(this.chunk.charAt(0)){case"'":if(!(a=K.exec(this.chunk)))return 0;this.token("STRING",(b=a[0]).replace(y,"\\\n"));break;case"\"":if(!(b=this.balancedString(this.chunk,"\"")))return 0;0=0))return 0;if(!(a=F.exec(this.chunk)))return 0;c=a[0],this.token("REGEX",c==="//"?"/(?:)/":c);return c.length},a.prototype.heregexToken=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,o;d=a[0],b=a[1],c=a[2];if(0>b.indexOf("#{")){e=b.replace(n,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(e||"(?:)")+"/"+c);return d.length}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),g=[],k=this.interpolateString(b,{regex:true});for(i=0,j=k.length;ithis.indent){if(d){this.indebt=f-this.indent,this.suppressNewlines();return b.length}a=f-this.indent+this.outdebt,this.token("INDENT",a),this.indents.push(a),this.outdebt=this.indebt=0}else this.indebt=0,this.outdentToken(this.indent-f,d);this.indent=f;return b.length},a.prototype.outdentToken=function(a,b,c){var d,e;while(a>0)e=this.indents.length-1,this.indents[e]===void 0?a=0:this.indents[e]===this.outdebt?(a-=this.outdebt,this.outdebt=0):this.indents[e]=0)&&this.assignmentError();if((h=b[1])==="||"||h==="&&"){b[0]="COMPOUND_ASSIGN",b[1]+="=";return f.length}}if(f===";")c="TERMINATOR";else if(U.call(x,f)>=0)c="MATH";else if(U.call(i,f)>=0)c="COMPARE";else if(U.call(j,f)>=0)c="COMPOUND_ASSIGN";else if(U.call(M,f)>=0)c="UNARY";else if(U.call(J,f)>=0)c="SHIFT";else if(U.call(v,f)>=0||f==="?"&&(b!=null?b.spaced:void 0))c="LOGIC";else if(b&&!b.spaced)if(f==="("&&(k=b[0],U.call(d,k)>=0))b[0]==="?"&&(b[0]="FUNC_EXIST"),c="CALL_START";else if(f==="["&&(l=b[0],U.call(p,l)>=0)){c="INDEX_START";switch(b[0]){case"?":b[0]="INDEX_SOAK";break;case"::":b[0]="INDEX_PROTO"}}this.token(c,f);return f.length},a.prototype.sanitizeHeredoc=function(a,b){var c,d,e,f,g;e=b.indent,d=b.herecomment;if(d&&0>a.indexOf("\n"))return a;if(!d)while(f=l.exec(a)){c=f[1];if(e===null||0<(g=c.length)&&gg;1<=g?c+=1:c-=1){switch(d=a.charAt(c)){case"\\":c++;continue;case b:f.pop();if(!f.length)return a.slice(0,c+1);b=f[f.length-1];continue}b==="}"&&(d==="\""||d==="'")?f.push(b=d):b==="}"&&d==="{"?f.push(b="}"):b==="\""&&e==="#"&&d==="{"&&f.push(b="}"),e=d}throw new Error("missing "+f.pop()+", starting on line "+(this.line+1))},a.prototype.interpolateString=function(b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;c==null&&(c={}),e=c.heredoc,l=c.regex,n=[],k=0,f=-1;while(i=b.charAt(f+=1)){if(i==="\\"){f+=1;continue}if(!(i==="#"&&b.charAt(f+1)==="{"&&(d=this.balancedString(b.slice(f+1),"}"))))continue;k1&&(j.unshift(["(","("]),j.push([")",")"])),n.push(["TOKENS",j])),f+=d.length,k=f+1}f>k&&k1)&&this.token("(","(");for(f=0,p=n.length;f|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,N=/^[^\n\S]+/,h=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,e=/^[-=]>/,z=/^(?:\n[^\n\S]*)+/,K=/^'[^\\']*(?:\\.[^\\']*)*'/,q=/^`[^\\`]*(?:\\.[^\\`]*)*`/,F=/^\/(?!\s)[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,m=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,n=/\s+(?:#.*)?/g,y=/\n/g,l=/\n+([^\n\S]*)/g,b=/^\s*@?([$A-Za-z_][$\w]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,u=/^\s*(?:,|\??\.(?!\.)|::)/,L=/\s+$/,C=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,j=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],M=["!","~","NEW","TYPEOF","DELETE"],v=["&&","||","&","|","^"],J=["<<",">>",">>>"],i=["==","!=","<",">","<=",">="],x=["*","/","%"],G=["IN","OF","INSTANCEOF"],c=["TRUE","FALSE","NULL","UNDEFINED"],A=["NUMBER","REGEX","BOOL","++","--","]"],B=A.concat(")","}","THIS","IDENTIFIER","STRING"),d=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],p=d.concat("NUMBER","BOOL"),t=["INDENT","OUTDENT","TERMINATOR"]}).call(this)},require["./parser"]=new function(){var a=this;var b=function(){var a={trace:function b(){},yy:{},symbols_:{error:2,Root:3,Body:4,Block:5,TERMINATOR:6,Line:7,Expression:8,Statement:9,Return:10,Throw:11,Comment:12,STATEMENT:13,Value:14,Invocation:15,Code:16,Operation:17,Assign:18,If:19,Try:20,While:21,For:22,Switch:23,Class:24,INDENT:25,OUTDENT:26,FullBlock:27,Identifier:28,IDENTIFIER:29,AlphaNumeric:30,NUMBER:31,STRING:32,Literal:33,JS:34,REGEX:35,BOOL:36,Assignable:37,"=":38,AssignObj:39,ObjAssignable:40,":":41,ThisProperty:42,RETURN:43,HERECOMMENT:44,PARAM_START:45,ParamList:46,PARAM_END:47,FuncGlyph:48,"->":49,"=>":50,OptComma:51,",":52,Param:53,ParamVar:54,"...":55,Array:56,Object:57,Splat:58,SimpleAssignable:59,Accessor:60,Parenthetical:61,Range:62,This:63,".":64,"?.":65,"::":66,Index:67,Slice:68,INDEX_START:69,INDEX_END:70,INDEX_SOAK:71,INDEX_PROTO:72,"{":73,AssignList:74,"}":75,CLASS:76,EXTENDS:77,OptFuncExist:78,Arguments:79,SUPER:80,FUNC_EXIST:81,CALL_START:82,CALL_END:83,ArgList:84,THIS:85,"@":86,"[":87,"]":88,RangeDots:89,"..":90,Arg:91,SimpleArgs:92,TRY:93,Catch:94,FINALLY:95,CATCH:96,THROW:97,"(":98,")":99,WhileSource:100,WHILE:101,WHEN:102,UNTIL:103,Loop:104,LOOP:105,ForBody:106,FOR:107,ForStart:108,ForSource:109,ForVariables:110,OWN:111,ForValue:112,FORIN:113,FOROF:114,BY:115,SWITCH:116,Whens:117,ELSE:118,When:119,LEADING_WHEN:120,IfBlock:121,IF:122,POST_IF:123,UNARY:124,"-":125,"+":126,"--":127,"++":128,"?":129,MATH:130,SHIFT:131,COMPARE:132,LOGIC:133,RELATION:134,COMPOUND_ASSIGN:135,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",13:"STATEMENT",25:"INDENT",26:"OUTDENT",29:"IDENTIFIER",31:"NUMBER",32:"STRING",34:"JS",35:"REGEX",36:"BOOL",38:"=",41:":",43:"RETURN",44:"HERECOMMENT",45:"PARAM_START",47:"PARAM_END",49:"->",50:"=>",52:",",55:"...",64:".",65:"?.",66:"::",69:"INDEX_START",70:"INDEX_END",71:"INDEX_SOAK",72:"INDEX_PROTO",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,1],[27,3],[28,1],[30,1],[30,1],[33,1],[33,1],[33,1],[33,1],[18,3],[18,5],[39,1],[39,3],[39,5],[39,1],[40,1],[40,1],[40,1],[10,2],[10,1],[12,1],[16,5],[16,2],[48,1],[48,1],[51,0],[51,1],[46,0],[46,1],[46,3],[53,1],[53,2],[53,3],[54,1],[54,1],[54,1],[54,1],[58,2],[59,1],[59,2],[59,2],[59,1],[37,1],[37,1],[37,1],[14,1],[14,1],[14,1],[14,1],[14,1],[60,2],[60,2],[60,2],[60,1],[60,1],[60,1],[67,3],[67,2],[67,2],[57,4],[74,0],[74,1],[74,3],[74,4],[74,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[78,0],[78,1],[79,2],[79,4],[63,1],[63,1],[42,2],[56,2],[56,4],[89,1],[89,1],[62,5],[68,5],[68,4],[68,4],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[20,2],[20,3],[20,4],[20,5],[94,3],[11,2],[61,3],[61,5],[100,2],[100,4],[100,2],[100,4],[21,2],[21,2],[21,2],[21,1],[104,2],[104,2],[22,2],[22,2],[22,2],[22,3],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[23,5],[23,7],[23,4],[23,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[121,3],[19,1],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],performAction:function c(a,b,c,d,e,f){var g=f.length-1;switch(e){case 1:return this.$=new d.Expressions;case 2:return this.$=f[g];case 3:return this.$=f[g-1];case 4:this.$=d.Expressions.wrap([f[g]]);break;case 5:this.$=f[g-2].push(f[g]);break;case 6:this.$=f[g-1];break;case 7:this.$=f[g];break;case 8:this.$=f[g];break;case 9:this.$=f[g];break;case 10:this.$=f[g];break;case 11:this.$=f[g];break;case 12:this.$=new d.Literal(f[g]);break;case 13:this.$=f[g];break;case 14:this.$=f[g];break;case 15:this.$=f[g];break;case 16:this.$=f[g];break;case 17:this.$=f[g];break;case 18:this.$=f[g];break;case 19:this.$=f[g];break;case 20:this.$=f[g];break;case 21:this.$=f[g];break;case 22:this.$=f[g];break;case 23:this.$=f[g];break;case 24:this.$=new d.Expressions;break;case 25:this.$=f[g];break;case 26:this.$=f[g-1];break;case 27:this.$=new d.Literal(f[g]);break;case 28:this.$=new d.Literal(f[g]);break;case 29:this.$=new d.Literal(f[g]);break;case 30:this.$=f[g];break;case 31:this.$=new d.Literal(f[g]);break;case 32:this.$=new d.Literal(f[g]);break;case 33:this.$=new d.Literal(f[g]==="undefined"?"void 0":f[g]);break;case 34:this.$=new d.Assign(f[g-2],f[g]);break;case 35:this.$=new d.Assign(f[g-4],f[g-1]);break;case 36:this.$=new d.Value(f[g]);break;case 37:this.$=new d.Assign(new d.Value(f[g-2]),f[g],"object");break;case 38:this.$=new d.Assign(new d.Value(f[g-4]),f[g-1],"object");break;case 39:this.$=f[g];break;case 40:this.$=f[g];break;case 41:this.$=f[g];break;case 42:this.$=f[g];break;case 43:this.$=new d.Return(f[g]);break;case 44:this.$=new d.Return;break;case 45:this.$=new d.Comment(f[g]);break;case 46:this.$=new d.Code(f[g-3],f[g],f[g-1]);break;case 47:this.$=new d.Code([],f[g],f[g-1]);break;case 48:this.$="func";break;case 49:this.$="boundfunc";break;case 50:this.$=f[g];break;case 51:this.$=f[g];break;case 52:this.$=[];break;case 53:this.$=[f[g]];break;case 54:this.$=f[g-2].concat(f[g]);break;case 55:this.$=new d.Param(f[g]);break;case 56:this.$=new d.Param(f[g-1],null,true);break;case 57:this.$=new d.Param(f[g-2],f[g]);break;case 58:this.$=f[g];break;case 59:this.$=f[g];break;case 60:this.$=f[g];break;case 61:this.$=f[g];break;case 62:this.$=new d.Splat(f[g-1]);break;case 63:this.$=new d.Value(f[g]);break;case 64:this.$=f[g-1].push(f[g]);break;case 65:this.$=new d.Value(f[g-1],[f[g]]);break;case 66:this.$=f[g];break;case 67:this.$=f[g];break;case 68:this.$=new d.Value(f[g]);break;case 69:this.$=new d.Value(f[g]);break;case 70:this.$=f[g];break;case 71:this.$=new d.Value(f[g]);break;case 72:this.$=new d.Value(f[g]);break;case 73:this.$=new d.Value(f[g]);break;case 74:this.$=f[g];break;case 75:this.$=new d.Access(f[g]);break;case 76:this.$=new d.Access(f[g],"soak");break;case 77:this.$=new d.Access(f[g],"proto");break;case 78:this.$=new d.Access(new d.Literal("prototype"));break;case 79:this.$=f[g];break;case 80:this.$=new d.Slice(f[g]);break;case 81:this.$=new d.Index(f[g-1]);break;case 82:this.$=d.extend(f[g],{soak:true});break;case 83:this.$=d.extend(f[g],{proto:true});break;case 84:this.$=new d.Obj(f[g-2],f[g-3].generated);break;case 85:this.$=[];break;case 86:this.$=[f[g]];break;case 87:this.$=f[g-2].concat(f[g]);break;case 88:this.$=f[g-3].concat(f[g]);break;case 89:this.$=f[g-5].concat(f[g-2]);break;case 90:this.$=new d.Class;break;case 91:this.$=new d.Class(null,null,f[g]);break;case 92:this.$=new d.Class(null,f[g]);break;case 93:this.$=new d.Class(null,f[g-1],f[g]);break;case 94:this.$=new d.Class(f[g]);break;case 95:this.$=new d.Class(f[g-1],null,f[g]);break;case 96:this.$=new d.Class(f[g-2],f[g]);break;case 97:this.$=new d.Class(f[g-3],f[g-1],f[g]);break;case 98:this.$=new d.Call(f[g-2],f[g],f[g-1]);break;case 99:this.$=new d.Call(f[g-2],f[g],f[g-1]);break;case 100:this.$=new d.Call("super",[new d.Splat(new d.Literal("arguments"))]);break;case 101:this.$=new d.Call("super",f[g]);break;case 102:this.$=false;break;case 103:this.$=true;break;case 104:this.$=[];break;case 105:this.$=f[g-2];break;case 106:this.$=new d.Value(new d.Literal("this"));break;case 107:this.$=new d.Value(new d.Literal("this"));break;case 108:this.$=new d.Value(new d.Literal("this"),[new d.Access(f[g])],"this");break;case 109:this.$=new d.Arr([]);break;case 110:this.$=new d.Arr(f[g-2]);break;case 111:this.$="inclusive";break;case 112:this.$="exclusive";break;case 113:this.$=new d.Range(f[g-3],f[g-1],f[g-2]);break;case 114:this.$=new d.Range(f[g-3],f[g-1],f[g-2]);break;case 115:this.$=new d.Range(f[g-2],null,f[g-1]);break;case 116:this.$=new d.Range(null,f[g-1],f[g-2]);break;case 117:this.$=[f[g]];break;case 118:this.$=f[g-2].concat(f[g]);break;case 119:this.$=f[g-3].concat(f[g]);break;case 120:this.$=f[g-2];break;case 121:this.$=f[g-5].concat(f[g-2]);break;case 122:this.$=f[g];break;case 123:this.$=f[g];break;case 124:this.$=f[g];break;case 125:this.$=[].concat(f[g-2],f[g]);break;case 126:this.$=new d.Try(f[g]);break;case 127:this.$=new d.Try(f[g-1],f[g][0],f[g][1]);break;case 128:this.$=new d.Try(f[g-2],null,null,f[g]);break;case 129:this.$=new d.Try(f[g-3],f[g-2][0],f[g-2][1],f[g]);break;case 130:this.$=[f[g-1],f[g]];break;case 131:this.$=new d.Throw(f[g]);break;case 132:this.$=new d.Parens(f[g-1]);break;case 133:this.$=new d.Parens(f[g-2]);break;case 134:this.$=new d.While(f[g]);break;case 135:this.$=new d.While(f[g-2],{guard:f[g]});break;case 136:this.$=new d.While(f[g],{invert:true});break;case 137:this.$=new d.While(f[g-2],{invert:true,guard:f[g]});break;case 138:this.$=f[g-1].addBody(f[g]);break;case 139:this.$=f[g].addBody(d.Expressions.wrap([f[g-1]]));break;case 140:this.$=f[g].addBody(d.Expressions.wrap([f[g-1]]));break;case 141:this.$=f[g];break;case 142:this.$=(new d.While(new d.Literal("true"))).addBody(f[g]);break;case 143:this.$=(new d.While(new d.Literal("true"))).addBody(d.Expressions.wrap([f[g]]));break;case 144:this.$=new d.For(f[g-1],f[g]);break;case 145:this.$=new d.For(f[g-1],f[g]);break;case 146:this.$=new d.For(f[g],f[g-1]);break;case 147:this.$=function(){f[g-2].scoped=true;return new d.For(f[g],f[g-2])}();break;case 148:this.$={source:new d.Value(f[g])};break;case 149:this.$=function(){f[g].own=f[g-1].own,f[g].name=f[g-1][0],f[g].index=f[g-1][1];return f[g]}();break;case 150:this.$=f[g];break;case 151:this.$=function(){f[g].own=true;return f[g]}();break;case 152:this.$=f[g];break;case 153:this.$=new d.Value(f[g]);break;case 154:this.$=new d.Value(f[g]);break;case 155:this.$=[f[g]];break;case 156:this.$=[f[g-2],f[g]];break;case 157:this.$={source:f[g]};break;case 158:this.$={source:f[g],object:true};break;case 159:this.$={source:f[g-2],guard:f[g]};break;case 160:this.$={source:f[g-2],guard:f[g],object:true};break;case 161:this.$={source:f[g-2],step:f[g]};break;case 162:this.$={source:f[g-4],guard:f[g-2],step:f[g]};break;case 163:this.$={source:f[g-4],step:f[g-2],guard:f[g]};break;case 164:this.$=new d.Switch(f[g-3],f[g-1]);break;case 165:this.$=new d.Switch(f[g-5],f[g-3],f[g-1]);break;case 166:this.$=new d.Switch(null,f[g-1]);break;case 167:this.$=new d.Switch(null,f[g-3],f[g-1]);break;case 168:this.$=f[g];break;case 169:this.$=f[g-1].concat(f[g]);break;case 170:this.$=[[f[g-1],f[g]]];break;case 171:this.$=[[f[g-2],f[g-1]]];break;case 172:this.$=new d.If(f[g-1],f[g],{type:f[g-2]});break;case 173:this.$=f[g-4].addElse(new d.If(f[g-1],f[g],{type:f[g-2]}));break;case 174:this.$=f[g-2].addElse(f[g]);break;case 175:this.$=f[g];break;case 176:this.$=new d.If(f[g],d.Expressions.wrap([f[g-2]]),{type:f[g-1],statement:true});break;case 177:this.$=new d.If(f[g],d.Expressions.wrap([f[g-2]]),{type:f[g-1],statement:true});break;case 178:this.$=new d.Op(f[g-1],f[g]);break;case 179:this.$=new d.Op("-",f[g]);break;case 180:this.$=new d.Op("+",f[g]);break;case 181:this.$=new d.Op("--",f[g]);break;case 182:this.$=new d.Op("++",f[g]);break;case 183:this.$=new d.Op("--",f[g-1],null,true);break;case 184:this.$=new d.Op("++",f[g-1],null,true);break;case 185:this.$=new d.Existence(f[g-1]);break;case 186:this.$=new d.Op("+",f[g-2],f[g]);break;case 187:this.$=new d.Op("-",f[g-2],f[g]);break;case 188:this.$=new d.Op(f[g-1],f[g-2],f[g]);break;case 189:this.$=new d.Op(f[g-1],f[g-2],f[g]);break;case 190:this.$=new d.Op(f[g-1],f[g-2],f[g]);break;case 191:this.$=new d.Op(f[g-1],f[g-2],f[g]);break;case 192:this.$=function(){return f[g-1].charAt(0)==="!"?(new d.Op(f[g-1].slice(1),f[g-2],f[g])).invert():new d.Op(f[g-1],f[g-2],f[g])}();break;case 193:this.$=new d.Assign(f[g-2],f[g],f[g-1]);break;case 194:this.$=new d.Assign(f[g-4],f[g-1],f[g-3]);break;case 195:this.$=new d.Extends(f[g-2],f[g])}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:7,9:8,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,5],27:6,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{1:[3]},{1:[2,2],6:[1,72]},{6:[1,73]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:75,7:4,8:7,9:8,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[1,74],28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],47:[2,25],49:[2,25],50:[2,25],52:[2,25],55:[2,25],70:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:88,101:[1,63],103:[1,64],106:89,107:[1,66],108:67,123:[1,87]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],47:[2,13],49:[2,13],50:[2,13],52:[2,13],55:[2,13],60:91,64:[1,93],65:[1,94],66:[1,95],67:96,68:97,69:[1,98],70:[2,13],71:[1,99],72:[1,100],75:[2,13],78:90,81:[1,92],82:[2,102],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],47:[2,14],49:[2,14],50:[2,14],52:[2,14],55:[2,14],60:102,64:[1,93],65:[1,94],66:[1,95],67:96,68:97,69:[1,98],70:[2,14],71:[1,99],72:[1,100],75:[2,14],78:101,81:[1,92],82:[2,102],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],47:[2,15],49:[2,15],50:[2,15],52:[2,15],55:[2,15],70:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],47:[2,16],49:[2,16],50:[2,16],52:[2,16],55:[2,16],70:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],47:[2,17],49:[2,17],50:[2,17],52:[2,17],55:[2,17],70:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],47:[2,18],49:[2,18],50:[2,18],52:[2,18],55:[2,18],70:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],47:[2,19],49:[2,19],50:[2,19],52:[2,19],55:[2,19],70:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],47:[2,20],49:[2,20],50:[2,20],52:[2,20],55:[2,20],70:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],47:[2,21],49:[2,21],50:[2,21],52:[2,21],55:[2,21],70:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],47:[2,22],49:[2,22],50:[2,22],52:[2,22],55:[2,22],70:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],47:[2,23],49:[2,23],50:[2,23],52:[2,23],55:[2,23],70:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,12],6:[2,12],26:[2,12],99:[2,12],101:[2,12],103:[2,12],107:[2,12],123:[2,12]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],38:[1,103],47:[2,70],49:[2,70],50:[2,70],52:[2,70],55:[2,70],64:[2,70],65:[2,70],66:[2,70],69:[2,70],70:[2,70],71:[2,70],72:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],47:[2,71],49:[2,71],50:[2,71],52:[2,71],55:[2,71],64:[2,71],65:[2,71],66:[2,71],69:[2,71],70:[2,71],71:[2,71],72:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],47:[2,72],49:[2,72],50:[2,72],52:[2,72],55:[2,72],64:[2,72],65:[2,72],66:[2,72],69:[2,72],70:[2,72],71:[2,72],72:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],47:[2,73],49:[2,73],50:[2,73],52:[2,73],55:[2,73],64:[2,73],65:[2,73],66:[2,73],69:[2,73],70:[2,73],71:[2,73],72:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],47:[2,74],49:[2,74],50:[2,74],52:[2,74],55:[2,74],64:[2,74],65:[2,74],66:[2,74],69:[2,74],70:[2,74],71:[2,74],72:[2,74],75:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],47:[2,100],49:[2,100],50:[2,100],52:[2,100],55:[2,100],64:[2,100],65:[2,100],66:[2,100],69:[2,100],70:[2,100],71:[2,100],72:[2,100],75:[2,100],79:104,81:[2,100],82:[1,105],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{28:109,29:[1,71],42:110,46:106,47:[2,52],52:[2,52],53:107,54:108,56:111,57:112,73:[1,68],86:[1,113],87:[1,114]},{5:115,25:[1,5],27:6},{8:116,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:118,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:119,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{14:121,15:122,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:123,42:61,56:48,57:49,59:120,61:26,62:27,63:28,73:[1,68],80:[1,29],85:[1,56],86:[1,57],87:[1,55],98:[1,54]},{14:121,15:122,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:123,42:61,56:48,57:49,59:124,61:26,62:27,63:28,73:[1,68],80:[1,29],85:[1,56],86:[1,57],87:[1,55],98:[1,54]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],38:[2,67],47:[2,67],49:[2,67],50:[2,67],52:[2,67],55:[2,67],64:[2,67],65:[2,67],66:[2,67],69:[2,67],70:[2,67],71:[2,67],72:[2,67],75:[2,67],77:[1,128],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],127:[1,125],128:[1,126],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67],135:[1,127]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],47:[2,175],49:[2,175],50:[2,175],52:[2,175],55:[2,175],70:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],101:[2,175],102:[2,175],103:[2,175],107:[2,175],115:[2,175],118:[1,129],123:[2,175],125:[2,175],126:[2,175],129:[2,175],130:[2,175],131:[2,175],132:[2,175],133:[2,175],134:[2,175]},{5:130,25:[1,5],27:6},{5:131,25:[1,5],27:6},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],47:[2,141],49:[2,141],50:[2,141],52:[2,141],55:[2,141],70:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{5:132,25:[1,5],27:6,48:133,49:[1,58],50:[1,59]},{8:134,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,135],28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{1:[2,90],5:136,6:[2,90],14:121,15:122,25:[1,5],26:[2,90],27:6,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:123,42:61,47:[2,90],49:[2,90],50:[2,90],52:[2,90],55:[2,90],56:48,57:49,59:138,61:26,62:27,63:28,70:[2,90],73:[1,68],75:[2,90],77:[1,137],80:[1,29],83:[2,90],85:[1,56],86:[1,57],87:[1,55],88:[2,90],90:[2,90],98:[1,54],99:[2,90],101:[2,90],102:[2,90],103:[2,90],107:[2,90],115:[2,90],123:[2,90],125:[2,90],126:[2,90],129:[2,90],130:[2,90],131:[2,90],132:[2,90],133:[2,90],134:[2,90]},{1:[2,44],6:[2,44],8:139,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[2,44],28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],99:[2,44],100:40,101:[2,44],103:[2,44],104:41,105:[1,65],106:42,107:[2,44],108:67,116:[1,43],121:38,122:[1,62],123:[2,44],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:140,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],52:[2,45],75:[2,45],99:[2,45],101:[2,45],103:[2,45],107:[2,45],123:[2,45]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],38:[2,68],47:[2,68],49:[2,68],50:[2,68],52:[2,68],55:[2,68],64:[2,68],65:[2,68],66:[2,68],69:[2,68],70:[2,68],71:[2,68],72:[2,68],75:[2,68],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],38:[2,69],47:[2,69],49:[2,69],50:[2,69],52:[2,69],55:[2,69],64:[2,69],65:[2,69],66:[2,69],69:[2,69],70:[2,69],71:[2,69],72:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],47:[2,30],49:[2,30],50:[2,30],52:[2,30],55:[2,30],64:[2,30],65:[2,30],66:[2,30],69:[2,30],70:[2,30],71:[2,30],72:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],47:[2,31],49:[2,31],50:[2,31],52:[2,31],55:[2,31],64:[2,31],65:[2,31],66:[2,31],69:[2,31],70:[2,31],71:[2,31],72:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],47:[2,32],49:[2,32],50:[2,32],52:[2,32],55:[2,32],64:[2,32],65:[2,32],66:[2,32],69:[2,32],70:[2,32],71:[2,32],72:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],47:[2,33],49:[2,33],50:[2,33],52:[2,33],55:[2,33],64:[2,33],65:[2,33],66:[2,33],69:[2,33],70:[2,33],71:[2,33],72:[2,33],75:[2,33],81:[2,33],82:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],101:[2,33],102:[2,33],103:[2,33],107:[2,33],115:[2,33],123:[2,33],125:[2,33],126:[2,33],129:[2,33],130:[2,33],131:[2,33],132:[2,33],133:[2,33],134:[2,33]},{4:141,7:4,8:7,9:8,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,142],28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:143,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,147],28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,58:148,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],84:145,85:[1,56],86:[1,57],87:[1,55],88:[1,144],91:146,93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],47:[2,106],49:[2,106],50:[2,106],52:[2,106],55:[2,106],64:[2,106],65:[2,106],66:[2,106],69:[2,106],70:[2,106],71:[2,106],72:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],28:149,29:[1,71],47:[2,107],49:[2,107],50:[2,107],52:[2,107],55:[2,107],64:[2,107],65:[2,107],66:[2,107],69:[2,107],70:[2,107],71:[2,107],72:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{25:[2,48]},{25:[2,49]},{1:[2,63],6:[2,63],25:[2,63],26:[2,63],38:[2,63],47:[2,63],49:[2,63],50:[2,63],52:[2,63],55:[2,63],64:[2,63],65:[2,63],66:[2,63],69:[2,63],70:[2,63],71:[2,63],72:[2,63],75:[2,63],77:[2,63],81:[2,63],82:[2,63],83:[2,63],88:[2,63],90:[2,63],99:[2,63],101:[2,63],102:[2,63],103:[2,63],107:[2,63],115:[2,63],123:[2,63],125:[2,63],126:[2,63],127:[2,63],128:[2,63],129:[2,63],130:[2,63],131:[2,63],132:[2,63],133:[2,63],134:[2,63],135:[2,63]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],38:[2,66],47:[2,66],49:[2,66],50:[2,66],52:[2,66],55:[2,66],64:[2,66],65:[2,66],66:[2,66],69:[2,66],70:[2,66],71:[2,66],72:[2,66],75:[2,66],77:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[2,66],128:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[2,66]},{8:150,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:151,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:152,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{5:153,8:154,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,5],27:6,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{28:159,29:[1,71],56:160,57:161,62:155,73:[1,68],87:[1,55],110:156,111:[1,157],112:158},{109:162,113:[1,163],114:[1,164]},{6:[2,85],12:168,25:[2,85],28:169,29:[1,71],30:170,31:[1,69],32:[1,70],39:166,40:167,42:171,44:[1,47],52:[2,85],74:165,75:[2,85],86:[1,113]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],41:[2,28],47:[2,28],49:[2,28],50:[2,28],52:[2,28],55:[2,28],64:[2,28],65:[2,28],66:[2,28],69:[2,28],70:[2,28],71:[2,28],72:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],41:[2,29],47:[2,29],49:[2,29],50:[2,29],52:[2,29],55:[2,29],64:[2,29],65:[2,29],66:[2,29],69:[2,29],70:[2,29],71:[2,29],72:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],38:[2,27],41:[2,27],47:[2,27],49:[2,27],50:[2,27],52:[2,27],55:[2,27],64:[2,27],65:[2,27],66:[2,27],69:[2,27],70:[2,27],71:[2,27],72:[2,27],75:[2,27],77:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],113:[2,27],114:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],127:[2,27],128:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27],135:[2,27]},{1:[2,6],6:[2,6],7:172,8:7,9:8,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[2,6],28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],99:[2,6],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],47:[2,24],49:[2,24],50:[2,24],52:[2,24],55:[2,24],70:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,72],26:[1,173]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],47:[2,185],49:[2,185],50:[2,185],52:[2,185],55:[2,185],70:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],101:[2,185],102:[2,185],103:[2,185],107:[2,185],115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[2,185],130:[2,185],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{8:174,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:175,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:176,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:177,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:178,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:179,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:180,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:181,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],47:[2,140],49:[2,140],50:[2,140],52:[2,140],55:[2,140],70:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],47:[2,145],49:[2,145],50:[2,145],52:[2,145],55:[2,145],70:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],101:[2,145],102:[2,145],103:[2,145],107:[2,145],115:[2,145],123:[2,145],125:[2,145],126:[2,145],129:[2,145],130:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145]},{8:182,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],47:[2,139],49:[2,139],50:[2,139],52:[2,139],55:[2,139],70:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],101:[2,139],102:[2,139],103:[2,139],107:[2,139],115:[2,139],123:[2,139],125:[2,139],126:[2,139],129:[2,139],130:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],47:[2,144],49:[2,144],50:[2,144],52:[2,144],55:[2,144],70:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{79:183,82:[1,105]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],38:[2,64],47:[2,64],49:[2,64],50:[2,64],52:[2,64],55:[2,64],64:[2,64],65:[2,64],66:[2,64],69:[2,64],70:[2,64],71:[2,64],72:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{82:[2,103]},{28:184,29:[1,71]},{28:185,29:[1,71]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],28:186,29:[1,71],38:[2,78],47:[2,78],49:[2,78],50:[2,78],52:[2,78],55:[2,78],64:[2,78],65:[2,78],66:[2,78],69:[2,78],70:[2,78],71:[2,78],72:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],38:[2,79],47:[2,79],49:[2,79],50:[2,79],52:[2,79],55:[2,79],64:[2,79],65:[2,79],66:[2,79],69:[2,79],70:[2,79],71:[2,79],72:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],38:[2,80],47:[2,80],49:[2,80],50:[2,80],52:[2,80],55:[2,80],64:[2,80],65:[2,80],66:[2,80],69:[2,80],70:[2,80],71:[2,80],72:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{8:187,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],55:[1,190],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],89:188,90:[1,189],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{67:191,69:[1,192],71:[1,99],72:[1,100]},{67:193,69:[1,192],71:[1,99],72:[1,100]},{79:194,82:[1,105]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],38:[2,65],47:[2,65],49:[2,65],50:[2,65],52:[2,65],55:[2,65],64:[2,65],65:[2,65],66:[2,65],69:[2,65],70:[2,65],71:[2,65],72:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{8:195,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,196],28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],47:[2,101],49:[2,101],50:[2,101],52:[2,101],55:[2,101],64:[2,101],65:[2,101],66:[2,101],69:[2,101],70:[2,101],71:[2,101],72:[2,101],75:[2,101],81:[2,101],82:[2,101],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{8:199,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,147],28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,58:148,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],83:[1,197],84:198,85:[1,56],86:[1,57],87:[1,55],91:146,93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{47:[1,200],52:[1,201]},{47:[2,53],52:[2,53]},{38:[1,203],47:[2,55],52:[2,55],55:[1,202]},{38:[2,58],47:[2,58],52:[2,58],55:[2,58]},{38:[2,59],47:[2,59],52:[2,59],55:[2,59]},{38:[2,60],47:[2,60],52:[2,60],55:[2,60]},{38:[2,61],47:[2,61],52:[2,61],55:[2,61]},{28:149,29:[1,71]},{8:199,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,147],28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,58:148,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],84:145,85:[1,56],86:[1,57],87:[1,55],88:[1,144],91:146,93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{1:[2,47],6:[2,47],25:[2,47],26:[2,47],47:[2,47],49:[2,47],50:[2,47],52:[2,47],55:[2,47],70:[2,47],75:[2,47],83:[2,47],88:[2,47],90:[2,47],99:[2,47],101:[2,47],102:[2,47],103:[2,47],107:[2,47],115:[2,47],123:[2,47],125:[2,47],126:[2,47],129:[2,47],130:[2,47],131:[2,47],132:[2,47],133:[2,47],134:[2,47]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],47:[2,178],49:[2,178],50:[2,178],52:[2,178],55:[2,178],70:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:85,101:[2,178],102:[2,178],103:[2,178],106:86,107:[2,178],108:67,115:[2,178],123:[2,178],125:[2,178],126:[2,178],129:[1,76],130:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178]},{100:88,101:[1,63],103:[1,64],106:89,107:[1,66],108:67,123:[1,87]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],47:[2,179],49:[2,179],50:[2,179],52:[2,179],55:[2,179],70:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:85,101:[2,179],102:[2,179],103:[2,179],106:86,107:[2,179],108:67,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,76],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],47:[2,180],49:[2,180],50:[2,180],52:[2,180],55:[2,180],70:[2,180],75:[2,180],83:[2,180],88:[2,180],90:[2,180],99:[2,180],100:85,101:[2,180],102:[2,180],103:[2,180],106:86,107:[2,180],108:67,115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[1,76],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],47:[2,181],49:[2,181],50:[2,181],52:[2,181],55:[2,181],64:[2,67],65:[2,67],66:[2,67],69:[2,67],70:[2,181],71:[2,67],72:[2,67],75:[2,181],81:[2,67],82:[2,67],83:[2,181],88:[2,181],90:[2,181],99:[2,181],101:[2,181],102:[2,181],103:[2,181],107:[2,181],115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[2,181],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{60:91,64:[1,93],65:[1,94],66:[1,95],67:96,68:97,69:[1,98],71:[1,99],72:[1,100],78:90,81:[1,92],82:[2,102]},{60:102,64:[1,93],65:[1,94],66:[1,95],67:96,68:97,69:[1,98],71:[1,99],72:[1,100],78:101,81:[1,92],82:[2,102]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],47:[2,70],49:[2,70],50:[2,70],52:[2,70],55:[2,70],64:[2,70],65:[2,70],66:[2,70],69:[2,70],70:[2,70],71:[2,70],72:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],47:[2,182],49:[2,182],50:[2,182],52:[2,182],55:[2,182],64:[2,67],65:[2,67],66:[2,67],69:[2,67],70:[2,182],71:[2,67],72:[2,67],75:[2,182],81:[2,67],82:[2,67],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],47:[2,183],49:[2,183],50:[2,183],52:[2,183],55:[2,183],70:[2,183],75:[2,183],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],47:[2,184],49:[2,184],50:[2,184],52:[2,184],55:[2,184],70:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{8:204,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,205],28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:206,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{5:208,25:[1,5],27:6,122:[1,207]},{1:[2,126],6:[2,126],25:[2,126],26:[2,126],47:[2,126],49:[2,126],50:[2,126],52:[2,126],55:[2,126],70:[2,126],75:[2,126],83:[2,126],88:[2,126],90:[2,126],94:209,95:[1,210],96:[1,211],99:[2,126],101:[2,126],102:[2,126],103:[2,126],107:[2,126],115:[2,126],123:[2,126],125:[2,126],126:[2,126],129:[2,126],130:[2,126],131:[2,126],132:[2,126],133:[2,126],134:[2,126]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],47:[2,138],49:[2,138],50:[2,138],52:[2,138],55:[2,138],70:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],101:[2,138],102:[2,138],103:[2,138],107:[2,138],115:[2,138],123:[2,138],125:[2,138],126:[2,138],129:[2,138],130:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],47:[2,146],49:[2,146],50:[2,146],52:[2,146],55:[2,146],70:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{25:[1,213],27:212},{25:[1,214],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{117:215,119:216,120:[1,217]},{1:[2,91],6:[2,91],25:[2,91],26:[2,91],47:[2,91],49:[2,91],50:[2,91],52:[2,91],55:[2,91],70:[2,91],75:[2,91],83:[2,91],88:[2,91],90:[2,91],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{14:218,15:122,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:123,42:61,56:48,57:49,59:219,61:26,62:27,63:28,73:[1,68],80:[1,29],85:[1,56],86:[1,57],87:[1,55],98:[1,54]},{1:[2,94],5:220,6:[2,94],25:[1,5],26:[2,94],27:6,47:[2,94],49:[2,94],50:[2,94],52:[2,94],55:[2,94],64:[2,67],65:[2,67],66:[2,67],69:[2,67],70:[2,94],71:[2,67],72:[2,67],75:[2,94],77:[1,221],81:[2,67],82:[2,67],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,43],6:[2,43],26:[2,43],99:[2,43],100:85,101:[2,43],103:[2,43],106:86,107:[2,43],108:67,123:[2,43],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,131],6:[2,131],26:[2,131],99:[2,131],100:85,101:[2,131],103:[2,131],106:86,107:[2,131],108:67,123:[2,131],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{6:[1,72],99:[1,222]},{4:223,7:4,8:7,9:8,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{6:[2,122],25:[2,122],52:[2,122],55:[1,225],88:[2,122],89:224,90:[1,189],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],38:[2,109],47:[2,109],49:[2,109],50:[2,109],52:[2,109],55:[2,109],64:[2,109],65:[2,109],66:[2,109],69:[2,109],70:[2,109],71:[2,109],72:[2,109],75:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],113:[2,109],114:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109]},{6:[2,50],25:[2,50],51:226,52:[1,227],88:[2,50]},{6:[2,117],25:[2,117],26:[2,117],52:[2,117],83:[2,117],88:[2,117]},{8:199,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,147],28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,58:148,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],84:228,85:[1,56],86:[1,57],87:[1,55],91:146,93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{6:[2,123],25:[2,123],26:[2,123],52:[2,123],83:[2,123],88:[2,123]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],38:[2,108],41:[2,108],47:[2,108],49:[2,108],50:[2,108],52:[2,108],55:[2,108],64:[2,108],65:[2,108],66:[2,108],69:[2,108],70:[2,108],71:[2,108],72:[2,108],75:[2,108],77:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],127:[2,108],128:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108],135:[2,108]},{5:229,25:[1,5],27:6,100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],47:[2,134],49:[2,134],50:[2,134],52:[2,134],55:[2,134],70:[2,134],75:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],100:85,101:[1,63],102:[1,230],103:[1,64],106:86,107:[1,66],108:67,115:[2,134],123:[2,134],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],47:[2,136],49:[2,136],50:[2,136],52:[2,136],55:[2,136],70:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:85,101:[1,63],102:[1,231],103:[1,64],106:86,107:[1,66],108:67,115:[2,136],123:[2,136],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],47:[2,142],49:[2,142],50:[2,142],52:[2,142],55:[2,142],70:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],47:[2,143],49:[2,143],50:[2,143],52:[2,143],55:[2,143],70:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],100:85,101:[1,63],102:[2,143],103:[1,64],106:86,107:[1,66],108:67,115:[2,143],123:[2,143],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],47:[2,148],49:[2,148],50:[2,148],52:[2,148],55:[2,148],70:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{113:[2,150],114:[2,150]},{28:159,29:[1,71],56:160,57:161,73:[1,68],87:[1,114],110:232,112:158},{52:[1,233],113:[2,155],114:[2,155]},{52:[2,152],113:[2,152],114:[2,152]},{52:[2,153],113:[2,153],114:[2,153]},{52:[2,154],113:[2,154],114:[2,154]},{1:[2,149],6:[2,149],25:[2,149],26:[2,149],47:[2,149],49:[2,149],50:[2,149],52:[2,149],55:[2,149],70:[2,149],75:[2,149],83:[2,149],88:[2,149],90:[2,149],99:[2,149],101:[2,149],102:[2,149],103:[2,149],107:[2,149],115:[2,149],123:[2,149],125:[2,149],126:[2,149],129:[2,149],130:[2,149],131:[2,149],132:[2,149],133:[2,149],134:[2,149]},{8:234,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:235,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{6:[2,50],25:[2,50],51:236,52:[1,237],75:[2,50]},{6:[2,86],25:[2,86],26:[2,86],52:[2,86],75:[2,86]},{6:[2,36],25:[2,36],26:[2,36],41:[1,238],52:[2,36],75:[2,36]},{6:[2,39],25:[2,39],26:[2,39],52:[2,39],75:[2,39]},{6:[2,40],25:[2,40],26:[2,40],41:[2,40],52:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],41:[2,41],52:[2,41],75:[2,41]},{6:[2,42],25:[2,42],26:[2,42],41:[2,42],52:[2,42],75:[2,42]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],47:[2,26],49:[2,26],50:[2,26],52:[2,26],55:[2,26],70:[2,26],75:[2,26],83:[2,26],88:[2,26],90:[2,26],95:[2,26],96:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],115:[2,26],118:[2,26],120:[2,26],123:[2,26],125:[2,26],126:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],47:[2,186],49:[2,186],50:[2,186],52:[2,186],55:[2,186],70:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],100:85,101:[2,186],102:[2,186],103:[2,186],106:86,107:[2,186],108:67,115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[1,76],130:[1,79],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],47:[2,187],49:[2,187],50:[2,187],52:[2,187],55:[2,187],70:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:85,101:[2,187],102:[2,187],103:[2,187],106:86,107:[2,187],108:67,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,76],130:[1,79],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],47:[2,188],49:[2,188],50:[2,188],52:[2,188],55:[2,188],70:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:85,101:[2,188],102:[2,188],103:[2,188],106:86,107:[2,188],108:67,115:[2,188],123:[2,188],125:[2,188],126:[2,188],129:[1,76],130:[2,188],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],47:[2,189],49:[2,189],50:[2,189],52:[2,189],55:[2,189],70:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:85,101:[2,189],102:[2,189],103:[2,189],106:86,107:[2,189],108:67,115:[2,189],123:[2,189],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[2,189],132:[2,189],133:[2,189],134:[2,189]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],47:[2,190],49:[2,190],50:[2,190],52:[2,190],55:[2,190],70:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:85,101:[2,190],102:[2,190],103:[2,190],106:86,107:[2,190],108:67,115:[2,190],123:[2,190],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[2,190],133:[2,190],134:[1,83]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],47:[2,191],49:[2,191],50:[2,191],52:[2,191],55:[2,191],70:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:85,101:[2,191],102:[2,191],103:[2,191],106:86,107:[2,191],108:67,115:[2,191],123:[2,191],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[2,191],134:[1,83]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],47:[2,192],49:[2,192],50:[2,192],52:[2,192],55:[2,192],70:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:85,101:[2,192],102:[2,192],103:[2,192],106:86,107:[2,192],108:67,115:[2,192],123:[2,192],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[2,192],133:[2,192],134:[2,192]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],47:[2,177],49:[2,177],50:[2,177],52:[2,177],55:[2,177],70:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:85,101:[1,63],102:[2,177],103:[1,64],106:86,107:[1,66],108:67,115:[2,177],123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],47:[2,176],49:[2,176],50:[2,176],52:[2,176],55:[2,176],70:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],100:85,101:[1,63],102:[2,176],103:[1,64],106:86,107:[1,66],108:67,115:[2,176],123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],47:[2,98],49:[2,98],50:[2,98],52:[2,98],55:[2,98],64:[2,98],65:[2,98],66:[2,98],69:[2,98],70:[2,98],71:[2,98],72:[2,98],75:[2,98],81:[2,98],82:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],38:[2,75],47:[2,75],49:[2,75],50:[2,75],52:[2,75],55:[2,75],64:[2,75],65:[2,75],66:[2,75],69:[2,75],70:[2,75],71:[2,75],72:[2,75],75:[2,75],77:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],127:[2,75],128:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],38:[2,76],47:[2,76],49:[2,76],50:[2,76],52:[2,76],55:[2,76],64:[2,76],65:[2,76],66:[2,76],69:[2,76],70:[2,76],71:[2,76],72:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],38:[2,77],47:[2,77],49:[2,77],50:[2,77],52:[2,77],55:[2,77],64:[2,77],65:[2,77],66:[2,77],69:[2,77],70:[2,77],71:[2,77],72:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{55:[1,190],70:[1,239],89:240,90:[1,189],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{8:241,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{13:[2,111],29:[2,111],31:[2,111],32:[2,111],34:[2,111],35:[2,111],36:[2,111],43:[2,111],44:[2,111],45:[2,111],49:[2,111],50:[2,111],70:[2,111],73:[2,111],76:[2,111],80:[2,111],85:[2,111],86:[2,111],87:[2,111],93:[2,111],97:[2,111],98:[2,111],101:[2,111],103:[2,111],105:[2,111],107:[2,111],116:[2,111],122:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111],128:[2,111]},{13:[2,112],29:[2,112],31:[2,112],32:[2,112],34:[2,112],35:[2,112],36:[2,112],43:[2,112],44:[2,112],45:[2,112],49:[2,112],50:[2,112],70:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{1:[2,82],6:[2,82],25:[2,82],26:[2,82],38:[2,82],47:[2,82],49:[2,82],50:[2,82],52:[2,82],55:[2,82],64:[2,82],65:[2,82],66:[2,82],69:[2,82],70:[2,82],71:[2,82],72:[2,82],75:[2,82],77:[2,82],81:[2,82],82:[2,82],83:[2,82],88:[2,82],90:[2,82],99:[2,82],101:[2,82],102:[2,82],103:[2,82],107:[2,82],115:[2,82],123:[2,82],125:[2,82],126:[2,82],127:[2,82],128:[2,82],129:[2,82],130:[2,82],131:[2,82],132:[2,82],133:[2,82],134:[2,82],135:[2,82]},{8:242,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{1:[2,83],6:[2,83],25:[2,83],26:[2,83],38:[2,83],47:[2,83],49:[2,83],50:[2,83],52:[2,83],55:[2,83],64:[2,83],65:[2,83],66:[2,83],69:[2,83],70:[2,83],71:[2,83],72:[2,83],75:[2,83],77:[2,83],81:[2,83],82:[2,83],83:[2,83],88:[2,83],90:[2,83],99:[2,83],101:[2,83],102:[2,83],103:[2,83],107:[2,83],115:[2,83],123:[2,83],125:[2,83],126:[2,83],127:[2,83],128:[2,83],129:[2,83],130:[2,83],131:[2,83],132:[2,83],133:[2,83],134:[2,83],135:[2,83]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],47:[2,99],49:[2,99],50:[2,99],52:[2,99],55:[2,99],64:[2,99],65:[2,99],66:[2,99],69:[2,99],70:[2,99],71:[2,99],72:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],47:[2,34],49:[2,34],50:[2,34],52:[2,34],55:[2,34],70:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],100:85,101:[2,34],102:[2,34],103:[2,34],106:86,107:[2,34],108:67,115:[2,34],123:[2,34],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{8:243,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],47:[2,104],49:[2,104],50:[2,104],52:[2,104],55:[2,104],64:[2,104],65:[2,104],66:[2,104],69:[2,104],70:[2,104],71:[2,104],72:[2,104],75:[2,104],81:[2,104],82:[2,104],83:[2,104],88:[2,104],90:[2,104],99:[2,104],101:[2,104],102:[2,104],103:[2,104],107:[2,104],115:[2,104],123:[2,104],125:[2,104],126:[2,104],129:[2,104],130:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104]},{6:[2,50],25:[2,50],51:244,52:[1,227],83:[2,50]},{6:[2,122],25:[2,122],26:[2,122],52:[2,122],55:[1,245],83:[2,122],88:[2,122],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{48:246,49:[1,58],50:[1,59]},{28:109,29:[1,71],42:110,53:247,54:108,56:111,57:112,73:[1,68],86:[1,113],87:[1,114]},{47:[2,56],52:[2,56]},{8:248,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],47:[2,193],49:[2,193],50:[2,193],52:[2,193],55:[2,193],70:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],100:85,101:[2,193],102:[2,193],103:[2,193],106:86,107:[2,193],108:67,115:[2,193],123:[2,193],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{8:249,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{1:[2,195],6:[2,195],25:[2,195],26:[2,195],47:[2,195],49:[2,195],50:[2,195],52:[2,195],55:[2,195],70:[2,195],75:[2,195],83:[2,195],88:[2,195],90:[2,195],99:[2,195],100:85,101:[2,195],102:[2,195],103:[2,195],106:86,107:[2,195],108:67,115:[2,195],123:[2,195],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{8:250,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],47:[2,174],49:[2,174],50:[2,174],52:[2,174],55:[2,174],70:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],118:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{1:[2,127],6:[2,127],25:[2,127],26:[2,127],47:[2,127],49:[2,127],50:[2,127],52:[2,127],55:[2,127],70:[2,127],75:[2,127],83:[2,127],88:[2,127],90:[2,127],95:[1,251],99:[2,127],101:[2,127],102:[2,127],103:[2,127],107:[2,127],115:[2,127],123:[2,127],125:[2,127],126:[2,127],129:[2,127],130:[2,127],131:[2,127],132:[2,127],133:[2,127],134:[2,127]},{5:252,25:[1,5],27:6},{28:253,29:[1,71]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],47:[2,147],49:[2,147],50:[2,147],52:[2,147],55:[2,147],70:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{4:75,7:4,8:7,9:8,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{117:254,119:216,120:[1,217]},{26:[1,255],118:[1,256],119:257,120:[1,217]},{26:[2,168],118:[2,168],120:[2,168]},{8:259,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],92:258,93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{1:[2,92],5:260,6:[2,92],25:[1,5],26:[2,92],27:6,47:[2,92],49:[2,92],50:[2,92],52:[2,92],55:[2,92],60:91,64:[1,93],65:[1,94],66:[1,95],67:96,68:97,69:[1,98],70:[2,92],71:[1,99],72:[1,100],75:[2,92],78:90,81:[1,92],82:[2,102],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],47:[2,67],49:[2,67],50:[2,67],52:[2,67],55:[2,67],64:[2,67],65:[2,67],66:[2,67],69:[2,67],70:[2,67],71:[2,67],72:[2,67],75:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67]},{1:[2,95],6:[2,95],25:[2,95],26:[2,95],47:[2,95],49:[2,95],50:[2,95],52:[2,95],55:[2,95],70:[2,95],75:[2,95],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{14:261,15:122,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:123,42:61,56:48,57:49,59:219,61:26,62:27,63:28,73:[1,68],80:[1,29],85:[1,56],86:[1,57],87:[1,55],98:[1,54]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],47:[2,132],49:[2,132],50:[2,132],52:[2,132],55:[2,132],64:[2,132],65:[2,132],66:[2,132],69:[2,132],70:[2,132],71:[2,132],72:[2,132],75:[2,132],81:[2,132],82:[2,132],83:[2,132],88:[2,132],90:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{6:[1,72],26:[1,262]},{8:263,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{6:[2,62],13:[2,112],25:[2,62],29:[2,112],31:[2,112],32:[2,112],34:[2,112],35:[2,112],36:[2,112],43:[2,112],44:[2,112],45:[2,112],49:[2,112],50:[2,112],52:[2,62],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],88:[2,62],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{6:[1,265],25:[1,266],88:[1,264]},{6:[2,51],8:199,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[2,51],26:[2,51],28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,58:148,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],83:[2,51],85:[1,56],86:[1,57],87:[1,55],88:[2,51],91:267,93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{6:[2,50],25:[2,50],26:[2,50],51:268,52:[1,227]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],47:[2,172],49:[2,172],50:[2,172],52:[2,172],55:[2,172],70:[2,172],75:[2,172],83:[2,172],88:[2,172],90:[2,172],99:[2,172],101:[2,172],102:[2,172],103:[2,172],107:[2,172],115:[2,172],118:[2,172],123:[2,172],125:[2,172],126:[2,172],129:[2,172],130:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172]},{8:269,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:270,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{113:[2,151],114:[2,151]},{28:159,29:[1,71],56:160,57:161,73:[1,68],87:[1,114],112:271},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],47:[2,157],49:[2,157],50:[2,157],52:[2,157],55:[2,157],70:[2,157],75:[2,157],83:[2,157],88:[2,157],90:[2,157],99:[2,157],100:85,101:[2,157],102:[1,272],103:[2,157],106:86,107:[2,157],108:67,115:[1,273],123:[2,157],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],47:[2,158],49:[2,158],50:[2,158],52:[2,158],55:[2,158],70:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:85,101:[2,158],102:[1,274],103:[2,158],106:86,107:[2,158],108:67,115:[2,158],123:[2,158],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{6:[1,276],25:[1,277],75:[1,275]},{6:[2,51],12:168,25:[2,51],26:[2,51],28:169,29:[1,71],30:170,31:[1,69],32:[1,70],39:278,40:167,42:171,44:[1,47],75:[2,51],86:[1,113]},{8:279,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,280],28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],38:[2,81],47:[2,81],49:[2,81],50:[2,81],52:[2,81],55:[2,81],64:[2,81],65:[2,81],66:[2,81],69:[2,81],70:[2,81],71:[2,81],72:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{8:281,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,70:[1,282],73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{70:[1,283],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{70:[1,239],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{26:[1,284],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{6:[1,265],25:[1,266],83:[1,285]},{6:[2,62],25:[2,62],26:[2,62],52:[2,62],83:[2,62],88:[2,62]},{5:286,25:[1,5],27:6},{47:[2,54],52:[2,54]},{47:[2,57],52:[2,57],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{26:[1,287],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{5:288,25:[1,5],27:6,100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{5:289,25:[1,5],27:6},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],47:[2,128],49:[2,128],50:[2,128],52:[2,128],55:[2,128],70:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{5:290,25:[1,5],27:6},{26:[1,291],118:[1,292],119:257,120:[1,217]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],47:[2,166],49:[2,166],50:[2,166],52:[2,166],55:[2,166],70:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{5:293,25:[1,5],27:6},{26:[2,169],118:[2,169],120:[2,169]},{5:294,25:[1,5],27:6,52:[1,295]},{25:[2,124],52:[2,124],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,93],6:[2,93],25:[2,93],26:[2,93],47:[2,93],49:[2,93],50:[2,93],52:[2,93],55:[2,93],70:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],101:[2,93],102:[2,93],103:[2,93],107:[2,93],115:[2,93],123:[2,93],125:[2,93],126:[2,93],129:[2,93],130:[2,93],131:[2,93],132:[2,93],133:[2,93],134:[2,93]},{1:[2,96],5:296,6:[2,96],25:[1,5],26:[2,96],27:6,47:[2,96],49:[2,96],50:[2,96],52:[2,96],55:[2,96],60:91,64:[1,93],65:[1,94],66:[1,95],67:96,68:97,69:[1,98],70:[2,96],71:[1,99],72:[1,100],75:[2,96],78:90,81:[1,92],82:[2,102],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{99:[1,297]},{88:[1,298],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],38:[2,110],47:[2,110],49:[2,110],50:[2,110],52:[2,110],55:[2,110],64:[2,110],65:[2,110],66:[2,110],69:[2,110],70:[2,110],71:[2,110],72:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{8:199,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,58:148,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],91:299,93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:199,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,147],28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,58:148,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],84:300,85:[1,56],86:[1,57],87:[1,55],91:146,93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{6:[2,118],25:[2,118],26:[2,118],52:[2,118],83:[2,118],88:[2,118]},{6:[1,265],25:[1,266],26:[1,301]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],47:[2,135],49:[2,135],50:[2,135],52:[2,135],55:[2,135],70:[2,135],75:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],100:85,101:[1,63],102:[2,135],103:[1,64],106:86,107:[1,66],108:67,115:[2,135],123:[2,135],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],47:[2,137],49:[2,137],50:[2,137],52:[2,137],55:[2,137],70:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:85,101:[1,63],102:[2,137],103:[1,64],106:86,107:[1,66],108:67,115:[2,137],123:[2,137],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{113:[2,156],114:[2,156]},{8:302,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:303,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:304,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],38:[2,84],47:[2,84],49:[2,84],50:[2,84],52:[2,84],55:[2,84],64:[2,84],65:[2,84],66:[2,84],69:[2,84],70:[2,84],71:[2,84],72:[2,84],75:[2,84],81:[2,84],82:[2,84],83:[2,84],88:[2,84],90:[2,84],99:[2,84],101:[2,84],102:[2,84],103:[2,84],107:[2,84],113:[2,84],114:[2,84],115:[2,84],123:[2,84],125:[2,84],126:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84]},{12:168,28:169,29:[1,71],30:170,31:[1,69],32:[1,70],39:305,40:167,42:171,44:[1,47],86:[1,113]},{6:[2,85],12:168,25:[2,85],26:[2,85],28:169,29:[1,71],30:170,31:[1,69],32:[1,70],39:166,40:167,42:171,44:[1,47],52:[2,85],74:306,86:[1,113]},{6:[2,87],25:[2,87],26:[2,87],52:[2,87],75:[2,87]},{6:[2,37],25:[2,37],26:[2,37],52:[2,37],75:[2,37],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{8:307,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{70:[1,308],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,115],6:[2,115],25:[2,115],26:[2,115],38:[2,115],47:[2,115],49:[2,115],50:[2,115],52:[2,115],55:[2,115],64:[2,115],65:[2,115],66:[2,115],69:[2,115],70:[2,115],71:[2,115],72:[2,115],75:[2,115],77:[2,115],81:[2,115],82:[2,115],83:[2,115],88:[2,115],90:[2,115],99:[2,115],101:[2,115],102:[2,115],103:[2,115],107:[2,115],115:[2,115],123:[2,115],125:[2,115],126:[2,115],127:[2,115],128:[2,115],129:[2,115],130:[2,115],131:[2,115],132:[2,115],133:[2,115],134:[2,115],135:[2,115]},{1:[2,116],6:[2,116],25:[2,116],26:[2,116],38:[2,116],47:[2,116],49:[2,116],50:[2,116],52:[2,116],55:[2,116],64:[2,116],65:[2,116],66:[2,116],69:[2,116],70:[2,116],71:[2,116],72:[2,116],75:[2,116],77:[2,116],81:[2,116],82:[2,116],83:[2,116],88:[2,116],90:[2,116],99:[2,116],101:[2,116],102:[2,116],103:[2,116],107:[2,116],115:[2,116],123:[2,116],125:[2,116],126:[2,116],127:[2,116],128:[2,116],129:[2,116],130:[2,116],131:[2,116],132:[2,116],133:[2,116],134:[2,116],135:[2,116]},{1:[2,35],6:[2,35],25:[2,35],26:[2,35],47:[2,35],49:[2,35],50:[2,35],52:[2,35],55:[2,35],70:[2,35],75:[2,35],83:[2,35],88:[2,35],90:[2,35],99:[2,35],101:[2,35],102:[2,35],103:[2,35],107:[2,35],115:[2,35],123:[2,35],125:[2,35],126:[2,35],129:[2,35],130:[2,35],131:[2,35],132:[2,35],133:[2,35],134:[2,35]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],47:[2,105],49:[2,105],50:[2,105],52:[2,105],55:[2,105],64:[2,105],65:[2,105],66:[2,105],69:[2,105],70:[2,105],71:[2,105],72:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],47:[2,46],49:[2,46],50:[2,46],52:[2,46],55:[2,46],70:[2,46],75:[2,46],83:[2,46],88:[2,46],90:[2,46],99:[2,46],101:[2,46],102:[2,46],103:[2,46],107:[2,46],115:[2,46],123:[2,46],125:[2,46],126:[2,46],129:[2,46],130:[2,46],131:[2,46],132:[2,46],133:[2,46],134:[2,46]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],47:[2,194],49:[2,194],50:[2,194],52:[2,194],55:[2,194],70:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],101:[2,194],102:[2,194],103:[2,194],107:[2,194],115:[2,194],123:[2,194],125:[2,194],126:[2,194],129:[2,194],130:[2,194],131:[2,194],132:[2,194],133:[2,194],134:[2,194]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],47:[2,173],49:[2,173],50:[2,173],52:[2,173],55:[2,173],70:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[2,173],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],47:[2,129],49:[2,129],50:[2,129],52:[2,129],55:[2,129],70:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],47:[2,130],49:[2,130],50:[2,130],52:[2,130],55:[2,130],70:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],95:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],47:[2,164],49:[2,164],50:[2,164],52:[2,164],55:[2,164],70:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],101:[2,164],102:[2,164],103:[2,164],107:[2,164],115:[2,164],123:[2,164],125:[2,164],126:[2,164],129:[2,164],130:[2,164],131:[2,164],132:[2,164],133:[2,164],134:[2,164]},{5:309,25:[1,5],27:6},{26:[1,310]},{6:[1,311],26:[2,170],118:[2,170],120:[2,170]},{8:312,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],47:[2,97],49:[2,97],50:[2,97],52:[2,97],55:[2,97],70:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],101:[2,97],102:[2,97],103:[2,97],107:[2,97],115:[2,97],123:[2,97],125:[2,97],126:[2,97],129:[2,97],130:[2,97],131:[2,97],132:[2,97],133:[2,97],134:[2,97]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],47:[2,133],49:[2,133],50:[2,133],52:[2,133],55:[2,133],64:[2,133],65:[2,133],66:[2,133],69:[2,133],70:[2,133],71:[2,133],72:[2,133],75:[2,133],81:[2,133],82:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],101:[2,133],102:[2,133],103:[2,133],107:[2,133],115:[2,133],123:[2,133],125:[2,133],126:[2,133],129:[2,133],130:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],47:[2,113],49:[2,113],50:[2,113],52:[2,113],55:[2,113],64:[2,113],65:[2,113],66:[2,113],69:[2,113],70:[2,113],71:[2,113],72:[2,113],75:[2,113],81:[2,113],82:[2,113],83:[2,113],88:[2,113],90:[2,113],99:[2,113],101:[2,113],102:[2,113],103:[2,113],107:[2,113],115:[2,113],123:[2,113],125:[2,113],126:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113]},{6:[2,119],25:[2,119],26:[2,119],52:[2,119],83:[2,119],88:[2,119]},{6:[2,50],25:[2,50],26:[2,50],51:313,52:[1,227]},{6:[2,120],25:[2,120],26:[2,120],52:[2,120],83:[2,120],88:[2,120]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],47:[2,159],49:[2,159],50:[2,159],52:[2,159],55:[2,159],70:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:85,101:[2,159],102:[2,159],103:[2,159],106:86,107:[2,159],108:67,115:[1,314],123:[2,159],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],47:[2,161],49:[2,161],50:[2,161],52:[2,161],55:[2,161],70:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:85,101:[2,161],102:[1,315],103:[2,161],106:86,107:[2,161],108:67,115:[2,161],123:[2,161],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],47:[2,160],49:[2,160],50:[2,160],52:[2,160],55:[2,160],70:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:85,101:[2,160],102:[2,160],103:[2,160],106:86,107:[2,160],108:67,115:[2,160],123:[2,160],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{6:[2,88],25:[2,88],26:[2,88],52:[2,88],75:[2,88]},{6:[2,50],25:[2,50],26:[2,50],51:316,52:[1,237]},{26:[1,317],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,114],6:[2,114],25:[2,114],26:[2,114],38:[2,114],47:[2,114],49:[2,114],50:[2,114],52:[2,114],55:[2,114],64:[2,114],65:[2,114],66:[2,114],69:[2,114],70:[2,114],71:[2,114],72:[2,114],75:[2,114],77:[2,114],81:[2,114],82:[2,114],83:[2,114],88:[2,114],90:[2,114],99:[2,114],101:[2,114],102:[2,114],103:[2,114],107:[2,114],115:[2,114],123:[2,114],125:[2,114],126:[2,114],127:[2,114],128:[2,114],129:[2,114],130:[2,114],131:[2,114],132:[2,114],133:[2,114],134:[2,114],135:[2,114]},{26:[1,318]},{1:[2,167],6:[2,167],25:[2,167],26:[2,167],47:[2,167],49:[2,167],50:[2,167],52:[2,167],55:[2,167],70:[2,167],75:[2,167],83:[2,167],88:[2,167],90:[2,167],99:[2,167],101:[2,167],102:[2,167],103:[2,167],107:[2,167],115:[2,167],123:[2,167],125:[2,167],126:[2,167],129:[2,167],130:[2,167],131:[2,167],132:[2,167],133:[2,167],134:[2,167]},{26:[2,171],118:[2,171],120:[2,171]},{25:[2,125],52:[2,125],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{6:[1,265],25:[1,266],26:[1,319]},{8:320,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{8:321,9:117,10:20,11:21,12:22,13:[1,23],14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,28:60,29:[1,71],30:50,31:[1,69],32:[1,70],33:25,34:[1,51],35:[1,52],36:[1,53],37:24,42:61,43:[1,45],44:[1,47],45:[1,30],48:31,49:[1,58],50:[1,59],56:48,57:49,59:37,61:26,62:27,63:28,73:[1,68],76:[1,44],80:[1,29],85:[1,56],86:[1,57],87:[1,55],93:[1,39],97:[1,46],98:[1,54],100:40,101:[1,63],103:[1,64],104:41,105:[1,65],106:42,107:[1,66],108:67,116:[1,43],121:38,122:[1,62],124:[1,32],125:[1,33],126:[1,34],127:[1,35],128:[1,36]},{6:[1,276],25:[1,277],26:[1,322]},{6:[2,38],25:[2,38],26:[2,38],52:[2,38],75:[2,38]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],47:[2,165],49:[2,165],50:[2,165],52:[2,165],55:[2,165],70:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{6:[2,121],25:[2,121],26:[2,121],52:[2,121],83:[2,121],88:[2,121]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],47:[2,162],49:[2,162],50:[2,162],52:[2,162],55:[2,162],70:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:85,101:[2,162],102:[2,162],103:[2,162],106:86,107:[2,162],108:67,115:[2,162],123:[2,162],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],47:[2,163],49:[2,163],50:[2,163],52:[2,163],55:[2,163],70:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],100:85,101:[2,163],102:[2,163],103:[2,163],106:86,107:[2,163],108:67,115:[2,163],123:[2,163],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{6:[2,89],25:[2,89],26:[2,89],52:[2,89],75:[2,89]}],defaultActions:{58:[2,48],59:[2,49],73:[2,3],92:[2,103]},parseError:function d(a,b){throw new Error(a)},parse:function e(a){var b=this,c=[0],d=[null],e=this.table,f="",g=0,h=0,i=0,j=2,k=1;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.yy.parseError==="function"&&(this.parseError=this.yy.parseError);function l(a){c.length=c.length-2*a,d.length=d.length-a}function m(){var a;a=b.lexer.lex()||1,typeof a!=="number"&&(a=b.symbols_[a]||a);return a}var n,o,p,q,r,s,t={},u,v,w,x;while(true){p=c[c.length-1],this.defaultActions[p]?q=this.defaultActions[p]:(n==null&&(n=m()),q=e[p]&&e[p][n]);if(typeof q==="undefined"||!q.length||!q[0]){if(!i){x=[];for(u in e[p])this.terminals_[u]&&u>2&&x.push("'"+this.terminals_[u]+"'");var y="";this.lexer.showPosition?y="Parse error on line "+(g+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+x.join(", "):y="Parse error on line "+(g+1)+": Unexpected "+(n==1?"end of input":"'"+(this.terminals_[n]||n)+"'"),this.parseError(y,{text:this.lexer.match,token:this.terminals_[n]||n,line:this.lexer.yylineno,expected:x})}if(i==3){if(n==k)throw new Error(y||"Parsing halted.");h=this.lexer.yyleng,f=this.lexer.yytext,g=this.lexer.yylineno,n=m()}while(1){if(j.toString()in e[p])break;if(p==0)throw new Error(y||"Parsing halted.");l(1),p=c[c.length-1]}o=n,n=j,p=c[c.length-1],q=e[p]&&e[p][j],i=3}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+p+", token: "+n);switch(q[0]){case 1:c.push(n),d.push(this.lexer.yytext),c.push(q[1]),n=null,o?(n=o,o=null):(h=this.lexer.yyleng,f=this.lexer.yytext,g=this.lexer.yylineno,i>0&&i--);break;case 2:v=this.productions_[q[1]][1],t.$=d[d.length-v],s=this.performAction.call(t,f,h,g,this.yy,q[1],d);if(typeof s!=="undefined")return s;v&&(c=c.slice(0,-1*v*2),d=d.slice(0,-1*v)),c.push(this.productions_[q[1]][0]),d.push(t.$),w=e[c[c.length-2]][c[c.length-1]],c.push(w);break;case 3:return true}}return true}};return a}();typeof require!=="undefined"&&(a.parser=b,a.parse=function(){return b.parse.apply(b,arguments)},a.main=function c(b){if(!b[1])throw new Error("Usage: "+b[0]+" FILE");if(typeof process!=="undefined")var c=require("fs").readFileSync(require("path").join(process.cwd(),b[1]),"utf8");else{var d=require("file").path(require("file").cwd());var c=d.join(b[1]).read({charset:"utf-8"})}return a.parser.parse(c)},typeof module!=="undefined"&&require.main===module&&a.main(typeof process!=="undefined"?process.argv.slice(1):require("system").args))},require["./scope"]=new function(){var a=this;(function(){var b,c,d,e;e=require("./helpers"),c=e.extend,d=e.last,a.Scope=b=function(){a.root=null;function a(b,c,d){this.parent=b,this.expressions=c,this.method=d,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(a.root=this)}a.prototype.add=function(a,b,c){var d;if(this.shared&&!c)return this.parent.add(a,b,c);return typeof (d=this.positions[a])==="number"?this.variables[d].type=b:this.positions[a]=this.variables.push({name:a,type:b})-1},a.prototype.find=function(a,b){if(this.check(a,b))return true;this.add(a,"var");return false},a.prototype.parameter=function(a){if(!(this.shared&&this.parent.check(a,true)))return this.add(a,"param")},a.prototype.check=function(a,b){var c,d;c=!!this.type(a);if(c||b)return c;return!!((d=this.parent)!=null?d.check(a):void 0)},a.prototype.temporary=function(a,b){return a.length>1?"_"+a+(b>1?b:""):"_"+(b+parseInt(a,36)).toString(36).replace(/\d/g,"a")},a.prototype.type=function(a){var b,c,d,e;e=this.variables;for(c=0,d=e.length;c1&&a.level>=v?"("+b+")":b},a.prototype.compileRoot=function(a){var b;a.indent=this.tab=a.bare?"":O,a.scope=new K(null,this,null),a.level=y,b=this.compileWithDeclarations(a),b=b.replace(Q,"");return a.bare?b:"(function() {\n"+b+"\n}).call(this);\n"},a.prototype.compileWithDeclarations=function(a){var b,c,d,e,f,g,h,i;b=e="",i=this.expressions;for(d=0,h=i.length;d"+this.equals+" "+this.toVar+")",g=f?f.compile(a):"1",d=f?""+c+" += "+g:""+e+" += "+g+" : "+c+" -= "+g+")";return""+h+"; "+b+"; "+d},a.prototype.compileSimple=function(a){var b,c,d,e,f;f=[+this.fromNum,+this.toNum],b=f[0],e=f[1],c=Y(a,"index"),d=Y(a,"step"),d&&(d=""+c+" += "+d.compile(a));return b<=e?""+c+" = "+b+"; "+c+" <"+this.equals+" "+e+"; "+(d||""+c+"++"):""+c+" = "+b+"; "+c+" >"+this.equals+" "+e+"; "+(d||""+c+"--")},a.prototype.compileArray=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;if(this.fromNum&&this.toNum&&Math.abs(this.fromNum-this.toNum)<=20){h=function(){n=[];for(var a=l=+this.fromNum,b=+this.toNum;l<=b?a<=b:a>=b;l<=b?a+=1:a-=1)n.push(a);return n}.call(this),this.exclusive&&h.pop();return"["+h.join(", ")+"]"}e=this.tab+O,d=a.scope.freeVariable("i"),i=a.scope.freeVariable("results"),g="\n"+e+i+" = [];",this.fromNum&&this.toNum?(a.index=d,b=this.compileSimple(a)):(j=""+d+" = "+this.from+(this.to!==this.toVar?", "+this.to:""),c=""+this.fromVar+" <= "+this.toVar+" ?",b="var "+j+"; "+c+" "+d+" <"+this.equals+" "+this.toVar+" : "+d+" >"+this.equals+" "+this.toVar+"; "+c+" "+d+" += 1 : "+d+" -= 1"),f="{ "+i+".push("+d+"); }\n"+e+"return "+i+";\n"+a.indent;return"(function() {"+g+"\n"+e+"for ("+b+")"+f+"}).call(this)"};return a}(),a.Slice=L=function(){bi(a,e),a.prototype.children=["range"];function a(b){this.range=b,a.__super__.constructor.call(this)}a.prototype.compileNode=function(a){var b,c,d,e,f,g;g=this.range,e=g.to,c=g.from,d=c&&c.compile(a,x)||"0",b=e&&e.compile(a,x),e&&!(!this.range.exclusive&&+b===-1)&&(f=", "+(this.range.exclusive?b:J.test(b)?(+b+1).toString():"("+b+" + 1) || 9e9"));return".slice("+d+(f||"")+")"};return a}(),a.Obj=C=function(){bi(a,e);function a(a,b){this.generated=b!=null?b:false,this.objects=this.properties=a||[]}a.prototype.children=["properties"],a.prototype.compileNode=function(a){var b,c,e,f,g,h,i,k;k=this.properties;if(!k.length)return this.front?"({})":"{}";c=a.indent+=O,g=this.lastNonComment(this.properties),k=function(){var h,l;l=[];for(b=0,h=k.length;b=0?"[\n"+a.indent+b+"\n"+this.tab+"]":"["+b+"]"},a.prototype.assigns=function(a){var b,c,d,e;e=this.objects;for(c=0,d=e.length;c=c.length)return"";if(c.length===1){g=c[0].compile(b,v);if(d)return g;return""+bf("slice")+".call("+g+")"}e=c.slice(i);for(h=0,k=e.length;hy||this.returns)d=a.scope.freeVariable("results"),e=""+this.tab+d+" = [];\n",b&&(b=G.wrap(d,b));this.guard&&(b=l.wrap([new q(this.guard,b)])),b="\n"+b.compile(a,y)+"\n"+this.tab}c=e+this.tab+("while ("+this.condition.compile(a,x)+") {"+b+"}"),this.returns&&(c+="\n"+this.tab+"return "+d+";");return c};return a}(),a.Op=D=function(){var a,b;bi(c,e);function c(b,c,d,e){if(b==="in")return new r(c,d);if(b==="new"){if(c instanceof f)return c.newInstance();c instanceof i&&c.bound&&(c=new F(c))}this.operator=a[b]||b,this.first=c,this.second=d,this.flip=!!e;return this}a={"==":"===","!=":"!==",of:"in"},b={"!==":"===","===":"!=="},c.prototype.children=["first","second"],c.prototype.isSimpleNumber=B,c.prototype.isUnary=function(){return!this.second},c.prototype.isChainable=function(){var a;return(a=this.operator)==="<"||a===">"||a===">="||a==="<="||a==="==="||a==="!=="},c.prototype.invert=function(){var a,d,e,f,g;if(this.isChainable()&&this.first.isChainable()){a=true,d=this;while(d&&d.operator)a&&(a=d.operator in b),d=d.first;if(!a)return(new F(this)).invert();d=this;while(d&&d.operator)d.invert=!d.invert,d.operator=b[d.operator],d=d.first;return this}if(f=b[this.operator]){this.operator=f,this.first.unwrap()instanceof c&&this.first.invert();return this}return this.second?(new F(this)).invert():this.operator==="!"&&(e=this.first.unwrap())instanceof c&&((g=e.operator)==="!"||g==="in"||g==="instanceof")?e:new c("!",this)},c.prototype.unfoldSoak=function(a){var b;return((b=this.operator)==="++"||b==="--"||b==="delete")&&be(a,this,"first")},c.prototype.compileNode=function(a){var b;if(this.isUnary())return this.compileUnary(a);if(this.isChainable()&&this.first.isChainable())return this.compileChain(a);if(this.operator==="?")return this.compileExistence(a);this.first.front=this.front,b=this.first.compile(a,w)+" "+this.operator+" "+this.second.compile(a,w);return a.level<=w?b:"("+b+")"},c.prototype.compileChain=function(a){var b,c,d,e;e=this.first.second.cache(a),this.first.second=e[0],d=e[1],c=this.first.compile(a,w),b=""+c+" "+(this.invert?"&&":"||")+" "+d.compile(a)+" "+this.operator+" "+this.second.compile(a,w);return"("+b+")"},c.prototype.compileExistence=function(a){var b,c;this.first.isComplex()?(c=a.scope.freeVariable("ref"),b=new F(new d(new z(c),this.first))):(b=this.first,c=b.compile(a));return(new k(b)).compile(a)+(" ? "+c+" : "+this.second.compile(a,v))},c.prototype.compileUnary=function(a){var b,d;d=[b=this.operator],(b==="new"||b==="typeof"||b==="delete"||(b==="+"||b==="-")&&this.first instanceof c&&this.first.operator===b)&&d.push(" "),d.push(this.first.compile(a,w)),this.flip&&d.reverse();return d.join("")},c.prototype.toString=function(a){return c.__super__.toString.call(this,a,this.constructor.name+" "+this.operator)};return c}(),a.In=r=function(){bi(a,e);function a(a,b){this.object=a,this.array=b}a.prototype.children=["object","array"],a.prototype.invert=A,a.prototype.compileNode=function(a){return this.array instanceof U&&this.array.isArray()?this.compileOrTest(a):this.compileLoopTest(a)},a.prototype.compileOrTest=function(a){var b,c,d,e,f,g,h,i,j;i=this.object.cache(a,w),g=i[0],f=i[1],j=this.negated?[" !== "," && "]:[" === "," || "],b=j[0],c=j[1],h=function(){var c,h,i;h=this.array.base.objects,i=[];for(d=0,c=h.length;d= 0");if(d===c)return b;b=d+", "+b;return a.level=u?"("+d+")":d},a.prototype.unfoldSoak=function(){return this.soak&&this};return a}(),G={wrap:function(a,c){if(c.isEmpty()||ba(c.expressions).jumps())return c;return c.push(new f(new U(new z(a),[new b(new z("push"))]),[c.pop()]))}},h={wrap:function(a,c,d){var e,g,h,j,k;if(a.jumps())return a;h=new i([],l.wrap([a])),e=[];if((j=a.contains(this.literalArgs))||a.contains(this.literalThis))k=new z(j?"apply":"call"),e=[new z("this")],j&&e.push(new z("arguments")),h=new U(h,[new b(k)]);h.noReturn=d,g=new f(h,e);return c?l.wrap([g]):g},literalArgs:function(a){return a instanceof z&&a.value==="arguments"},literalThis:function(a){return a instanceof z&&a.value==="this"||a instanceof i&&a.bound}},be=function(a,b,c){var d;if(d=b[c].unfoldSoak(a)){b[c]=d.body,d.body=new U(b);return d}},T={"extends":"function(child, parent) {\n for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor;\n child.__super__ = parent.prototype;\n return child;\n}",bind:"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }",indexOf:"Array.prototype.indexOf || function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === item) return i;\n }\n return -1;\n}",hasProp:"Object.prototype.hasOwnProperty",slice:"Array.prototype.slice"},y=1,x=2,v=3,u=4,w=5,t=6,O=" ",Q=/[ \t]+$/gm,o=/^[$A-Za-z_][$\w]*$/,J=/^[+-]?\d+$/,p=/^['"]/,bf=function(a){var b;b="__"+a,K.root.assign(b,T[a]);return b},bc=function(a,b){return a.replace(/\n/g,"$&"+b)}}).call(this)},require["./coffee-script"]=new function(){var exports=this;(function(){var Lexer,RESERVED,compile,fs,lexer,parser,path,_ref;fs=require("fs"),path=require("path"),_ref=require("./lexer"),Lexer=_ref.Lexer,RESERVED=_ref.RESERVED,parser=require("./parser").parser,require.extensions?require.extensions[".coffee"]=function(a,b){var c;c=compile(fs.readFileSync(b,"utf8"));return a._compile(c,b)}:require.registerExtension&&require.registerExtension(".coffee",function(a){return compile(a)}),exports.VERSION="1.0.0-pre",exports.RESERVED=RESERVED,exports.helpers=require("./helpers"),exports.compile=compile=function(a,b){b==null&&(b={});try{return parser.parse(lexer.tokenize(a)).compile(b)}catch(c){b.fileName&&(c.message="In "+b.fileName+", "+c.message);throw c}},exports.tokens=function(a,b){return lexer.tokenize(a,b)},exports.nodes=function(a,b){return typeof a==="string"?parser.parse(lexer.tokenize(a,b)):parser.parse(a)},exports.run=function(a,b){var c;c=module;while(c.parent)c=c.parent;c.filename=fs.realpathSync(b.fileName||"."),c.moduleCache&&(c.moduleCache={});return path.extname(c.filename)!==".coffee"||require.extensions?c._compile(compile(a,b),c.filename):c._compile(a,c.filename)},exports.eval=function(code,options){var __dirname,__filename;__filename=options.fileName,__dirname=path.dirname(__filename);return eval(compile(code,options))},lexer=new Lexer,parser.lexer={lex:function(){var a,b;b=this.tokens[this.pos++]||[""],a=b[0],this.yytext=b[1],this.yylineno=b[2];return a},setInput:function(a){this.tokens=a;return this.pos=0},upcomingInput:function(){return""}},parser.yy=require("./nodes")}).call(this)},require["./browser"]=new function(){var exports=this;(function(){var CoffeeScript,runScripts;CoffeeScript=require("./coffee-script"),CoffeeScript.require=require,CoffeeScript.eval=function(code,options){return eval(CoffeeScript.compile(code,options))},CoffeeScript.run=function(a,b){b==null&&(b={}),b.bare=true;return Function(CoffeeScript.compile(a,b))()};typeof window=="undefined"||window===null||(CoffeeScript.load=function(a,b){var c;c=new(window.ActiveXObject||XMLHttpRequest)("Microsoft.XMLHTTP"),c.open("GET",a,true),"overrideMimeType"in c&&c.overrideMimeType("text/plain"),c.onreadystatechange=function(){if(c.readyState===4)return CoffeeScript.run(c.responseText,b)};return c.send(null)},runScripts=function(){var a,b,c,d;d=document.getElementsByTagName("script");for(b=0,c=d.length;b=0)f+=1;else if(j=g[0],t.call(d,j)>=0)f-=1;a+=1}return a-1},a.prototype.removeLeadingNewlines=function(){var a,b,c,d;d=this.tokens;for(a=0,c=d.length;a=0)))return 1;d.splice(b,1);return 0})},a.prototype.closeOpenCalls=function(){var a,b;b=function(a,b){var c;return(c=a[0])===")"||c==="CALL_END"||a[0]==="OUTDENT"&&this.tag(b-1)===")"},a=function(a,b){return this.tokens[a[0]==="OUTDENT"?b-1:b][0]="CALL_END"};return this.scanTokens(function(c,d){c[0]==="CALL_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.closeOpenIndexes=function(){var a,b;b=function(a,b){var c;return(c=a[0])==="]"||c==="INDEX_END"},a=function(a,b){return a[0]="INDEX_END"};return this.scanTokens(function(c,d){c[0]==="INDEX_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.addImplicitBraces=function(){var a,b,c,f,g;c=[],f=null,g=0,b=function(a,b){var c,d,e,f,g,h;g=this.tokens.slice(b+1,b+3+1||9e9),c=g[0],f=g[1],e=g[2];if("HERECOMMENT"===(c!=null?c[0]:void 0))return false;d=a[0];return(d==="TERMINATOR"||d==="OUTDENT")&&!((f!=null?f[0]:void 0)===":"||(c!=null?c[0]:void 0)==="@"&&(e!=null?e[0]:void 0)===":")||d===","&&c&&((h=c[0])!=="IDENTIFIER"&&h!=="NUMBER"&&h!=="STRING"&&h!=="@"&&h!=="TERMINATOR"&&h!=="OUTDENT")},a=function(a,b){return this.tokens.splice(b,0,["}","}",a[2]])};return this.scanTokens(function(g,h,i){var j,k,l,m,n,o,p;if(o=l=g[0],t.call(e,o)>=0){c.push([l==="INDENT"&&this.tag(h-1)==="{"?"{":l,h]);return 1}if(t.call(d,l)>=0){f=c.pop();return 1}if(!(l===":"&&((j=this.tag(h-2))===":"||((p=c[c.length-1])!=null?p[0]:void 0)!=="{")))return 1;c.push(["{"]),k=j==="@"?h-2:h-1;while(this.tag(k-2)==="HERECOMMENT")k-=2;n=new String("{"),n.generated=true,m=["{",n,g[2]],m.generated=true,i.splice(k,0,m),this.detectEnd(h+2,b,a);return 2})},a.prototype.addImplicitParentheses=function(){var a,b;b=false,a=function(a,b){var c;c=a[0]==="OUTDENT"?b+1:b;return this.tokens.splice(c,0,["CALL_END",")",a[2]])};return this.scanTokens(function(c,d,e){var k,m,n,o,p,q,r,s,u;q=c[0];if(q==="CLASS"||q==="IF")b=true;r=e.slice(d-1,d+1+1||9e9),o=r[0],m=r[1],n=r[2],k=!b&&q==="INDENT"&&n&&n.generated&&n[0]==="{"&&o&&(s=o[0],t.call(i,s)>=0),p=false,t.call(l,q)>=0&&(b=false),o&&!o.spaced&&q==="?"&&(c.call=true);if(!(k||(o!=null?o.spaced:void 0)&&(o.call||(u=o[0],t.call(i,u)>=0))&&(t.call(g,q)>=0||!(c.spaced||c.newLine)&&t.call(j,q)>=0)))return 1;e.splice(d,0,["CALL_START","(",c[2]]),this.detectEnd(d+1,function(a,b){var c,d;q=a[0];if(!p&&a.fromThen)return true;if(q==="IF"||q==="ELSE"||q==="->"||q==="=>")p=true;if((q==="."||q==="?."||q==="::")&&this.tag(b-1)==="OUTDENT")return true;return!a.generated&&this.tag(b-1)!==","&&t.call(h,q)>=0&&(q!=="INDENT"||this.tag(b-2)!=="CLASS"&&(d=this.tag(b-1),t.call(f,d)<0)&&!((c=this.tokens[b+1])&&c.generated&&c[0]==="{"))},a),o[0]==="?"&&(o[0]="FUNC_EXIST");return 2})},a.prototype.addImplicitIndentation=function(){return this.scanTokens(function(a,b,c){var d,e,f,g,h,i,j,k;i=a[0];if(i==="TERMINATOR"&&this.tag(b+1)==="THEN"){c.splice(b,1);return 0}if(i==="ELSE"&&this.tag(b-1)!=="OUTDENT"){c.splice.apply(c,[b,0].concat(u.call(this.indentation(a))));return 2}if(i==="CATCH"&&((j=this.tag(b+2))==="OUTDENT"||j==="TERMINATOR"||j==="FINALLY")){c.splice.apply(c,[b+2,0].concat(u.call(this.indentation(a))));return 4}if(t.call(n,i)>=0&&this.tag(b+1)!=="INDENT"&&!(i==="ELSE"&&this.tag(b+1)==="IF")){h=i,k=this.indentation(a),f=k[0],g=k[1],h==="THEN"&&(f.fromThen=true),f.generated=g.generated=true,c.splice(b+1,0,f),e=function(a,b){var c;return a[1]!==";"&&(c=a[0],t.call(m,c)>=0)&&!(a[0]==="ELSE"&&(h!=="IF"&&h!=="THEN"))},d=function(a,b){return this.tokens.splice(this.tag(b-1)===","?b-1:b,0,g)},this.detectEnd(b+2,e,d),i==="THEN"&&c.splice(b,1);return 1}return 1})},a.prototype.tagPostfixConditionals=function(){var a;a=function(a,b){var c;return(c=a[0])==="TERMINATOR"||c==="INDENT"};return this.scanTokens(function(b,c){var d;if(b[0]!=="IF")return 1;d=b,this.detectEnd(c+1,a,function(a,b){if(a[0]!=="INDENT")return d[0]="POST_"+d[0]});return 1})},a.prototype.ensureBalance=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d={},f={},m=this.tokens;for(i=0,k=m.length;i0)throw Error("unclosed "+e+" on line "+(f[e]+1))}return this},a.prototype.rewriteClosingParens=function(){var a,b,c;c=[],a={};for(b in k)a[b]=0;return this.scanTokens(function(b,f,g){var h,i,j,l,m,n,o;if(o=m=b[0],t.call(e,o)>=0){c.push(b);return 1}if(t.call(d,m)<0)return 1;if(a[h=k[m]]>0){a[h]-=1,g.splice(f,1);return 0}i=c.pop(),j=i[0],l=k[j];if(m===l)return 1;a[j]+=1,n=[l,j==="INDENT"?i[1]:l],this.tag(f+2)===j?(g.splice(f+3,0,n),c.push(i)):g.splice(f,0,n);return 1})},a.prototype.indentation=function(a){return[["INDENT",2,a[2]],["OUTDENT",2,a[2]]]},a.prototype.tag=function(a){var b;return(b=this.tokens[a])!=null?b[0]:void 0};return a}(),b=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],k={},e=[],d=[];for(q=0,r=b.length;q","=>","[","(","{","--","++"],j=["+","-"],f=["->","=>","{","[",","],h=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","INDENT"],n=["ELSE","->","=>","TRY","FINALLY","THEN"],m=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],l=["TERMINATOR","INDENT","OUTDENT"]}).call(this)},require["./lexer"]=new function(){var a=this;(function(){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T;var U=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b=0||!b&&U.call(g,c)>=0)i=c.toUpperCase(),i==="WHEN"&&(k=this.tag(),U.call(t,k)>=0)?i="LEADING_WHEN":i==="FOR"?this.seenFor=true:i==="UNLESS"?i="IF":U.call(M,i)>=0?i="UNARY":U.call(G,i)>=0&&(i!=="INSTANCEOF"&&this.seenFor?(i="FOR"+i,this.seenFor=false):(i="RELATION",this.value()==="!"&&(this.tokens.pop(),c="!"+c)));U.call(r,c)>=0&&(b?(i="IDENTIFIER",c=new String(c),c.reserved=true):U.call(H,c)>=0&&this.identifierError(c)),b||(f.hasOwnProperty(c)&&(c=f[c]),i=function(){switch(c){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return i}}()),this.token(i,c),a&&this.token(":",":");return d.length},a.prototype.numberToken=function(){var a,b;if(!(a=D.exec(this.chunk)))return 0;b=a[0],this.token("NUMBER",b);return b.length},a.prototype.stringToken=function(){var a,b;switch(this.chunk.charAt(0)){case"'":if(!(a=K.exec(this.chunk)))return 0;this.token("STRING",(b=a[0]).replace(y,"\\\n"));break;case"\"":if(!(b=this.balancedString(this.chunk,"\"")))return 0;0=0))return 0;if(!(a=F.exec(this.chunk)))return 0;c=a[0],this.token("REGEX",c==="//"?"/(?:)/":c);return c.length},a.prototype.heregexToken=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,o;d=a[0],b=a[1],c=a[2];if(0>b.indexOf("#{")){e=b.replace(n,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(e||"(?:)")+"/"+c);return d.length}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),g=[],k=this.interpolateString(b,{regex:true});for(i=0,j=k.length;ithis.indent){if(d){this.indebt=f-this.indent,this.suppressNewlines();return b.length}a=f-this.indent+this.outdebt,this.token("INDENT",a),this.indents.push(a),this.outdebt=this.indebt=0}else this.indebt=0,this.outdentToken(this.indent-f,d);this.indent=f;return b.length},a.prototype.outdentToken=function(a,b,c){var d,e;while(a>0)e=this.indents.length-1,this.indents[e]===void 0?a=0:this.indents[e]===this.outdebt?(a-=this.outdebt,this.outdebt=0):this.indents[e]=0)&&this.assignmentError();if((h=b[1])==="||"||h==="&&"){b[0]="COMPOUND_ASSIGN",b[1]+="=";return f.length}}if(f===";")c="TERMINATOR";else if(U.call(x,f)>=0)c="MATH";else if(U.call(i,f)>=0)c="COMPARE";else if(U.call(j,f)>=0)c="COMPOUND_ASSIGN";else if(U.call(M,f)>=0)c="UNARY";else if(U.call(J,f)>=0)c="SHIFT";else if(U.call(v,f)>=0||f==="?"&&(b!=null?b.spaced:void 0))c="LOGIC";else if(b&&!b.spaced)if(f==="("&&(k=b[0],U.call(d,k)>=0))b[0]==="?"&&(b[0]="FUNC_EXIST"),c="CALL_START";else if(f==="["&&(l=b[0],U.call(p,l)>=0)){c="INDEX_START";switch(b[0]){case"?":b[0]="INDEX_SOAK";break;case"::":b[0]="INDEX_PROTO"}}this.token(c,f);return f.length},a.prototype.sanitizeHeredoc=function(a,b){var c,d,e,f,g;e=b.indent,d=b.herecomment;if(d&&0>a.indexOf("\n"))return a;if(!d)while(f=l.exec(a)){c=f[1];if(e===null||0<(g=c.length)&&gg;1<=g?c+=1:c-=1){switch(d=a.charAt(c)){case"\\":c++;continue;case b:f.pop();if(!f.length)return a.slice(0,c+1);b=f[f.length-1];continue}b==="}"&&(d==="\""||d==="'")?f.push(b=d):b==="}"&&d==="{"?f.push(b="}"):b==="\""&&e==="#"&&d==="{"&&f.push(b="}"),e=d}throw new Error("missing "+f.pop()+", starting on line "+(this.line+1))},a.prototype.interpolateString=function(b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;c==null&&(c={}),e=c.heredoc,l=c.regex,n=[],k=0,f=-1;while(i=b.charAt(f+=1)){if(i==="\\"){f+=1;continue}if(!(i==="#"&&b.charAt(f+1)==="{"&&(d=this.balancedString(b.slice(f+1),"}"))))continue;k1&&(j.unshift(["(","("]),j.push([")",")"])),n.push(["TOKENS",j])),f+=d.length,k=f+1}f>k&&k1)&&this.token("(","(");for(f=0,p=n.length;f|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,N=/^[^\n\S]+/,h=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,e=/^[-=]>/,z=/^(?:\n[^\n\S]*)+/,K=/^'[^\\']*(?:\\.[^\\']*)*'/,q=/^`[^\\`]*(?:\\.[^\\`]*)*`/,F=/^\/(?!\s)[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,m=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,n=/\s+(?:#.*)?/g,y=/\n/g,l=/\n+([^\n\S]*)/g,b=/^\s*@?([$A-Za-z_][$\w]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,u=/^\s*(?:,|\??\.(?!\.)|::)/,L=/\s+$/,C=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,j=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],M=["!","~","NEW","TYPEOF","DELETE","DO"],v=["&&","||","&","|","^"],J=["<<",">>",">>>"],i=["==","!=","<",">","<=",">="],x=["*","/","%"],G=["IN","OF","INSTANCEOF"],c=["TRUE","FALSE","NULL","UNDEFINED"],A=["NUMBER","REGEX","BOOL","++","--","]"],B=A.concat(")","}","THIS","IDENTIFIER","STRING"),d=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],p=d.concat("NUMBER","BOOL"),t=["INDENT","OUTDENT","TERMINATOR"]}).call(this)},require["./parser"]=new function(){var a=this;var b=function(){var a={trace:function b(){},yy:{},symbols_:{error:2,Root:3,Body:4,Block:5,TERMINATOR:6,Line:7,Expression:8,Statement:9,Return:10,Throw:11,Comment:12,STATEMENT:13,Value:14,Invocation:15,Code:16,Operation:17,Assign:18,If:19,Try:20,While:21,For:22,Switch:23,Class:24,INDENT:25,OUTDENT:26,Identifier:27,IDENTIFIER:28,AlphaNumeric:29,NUMBER:30,STRING:31,Literal:32,JS:33,REGEX:34,BOOL:35,Assignable:36,"=":37,AssignObj:38,ObjAssignable:39,":":40,ThisProperty:41,RETURN:42,HERECOMMENT:43,PARAM_START:44,ParamList:45,PARAM_END:46,FuncGlyph:47,"->":48,"=>":49,OptComma:50,",":51,Param:52,ParamVar:53,"...":54,Array:55,Object:56,Splat:57,SimpleAssignable:58,Accessor:59,Parenthetical:60,Range:61,This:62,".":63,"?.":64,"::":65,Index:66,Slice:67,INDEX_START:68,INDEX_END:69,INDEX_SOAK:70,INDEX_PROTO:71,"{":72,AssignList:73,"}":74,CLASS:75,EXTENDS:76,OptFuncExist:77,Arguments:78,SUPER:79,FUNC_EXIST:80,CALL_START:81,CALL_END:82,ArgList:83,THIS:84,"@":85,"[":86,"]":87,RangeDots:88,"..":89,Arg:90,SimpleArgs:91,TRY:92,Catch:93,FINALLY:94,CATCH:95,THROW:96,"(":97,")":98,WhileSource:99,WHILE:100,WHEN:101,UNTIL:102,Loop:103,LOOP:104,ForBody:105,FOR:106,ForStart:107,ForSource:108,ForVariables:109,OWN:110,ForValue:111,FORIN:112,FOROF:113,BY:114,SWITCH:115,Whens:116,ELSE:117,When:118,LEADING_WHEN:119,IfBlock:120,IF:121,POST_IF:122,UNARY:123,"-":124,"+":125,"--":126,"++":127,"?":128,MATH:129,SHIFT:130,COMPARE:131,LOGIC:132,RELATION:133,COMPOUND_ASSIGN:134,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",13:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"BOOL",37:"=",40:":",42:"RETURN",43:"HERECOMMENT",44:"PARAM_START",46:"PARAM_END",48:"->",49:"=>",51:",",54:"...",63:".",64:"?.",65:"::",68:"INDEX_START",69:"INDEX_END",70:"INDEX_SOAK",71:"INDEX_PROTO",72:"{",74:"}",75:"CLASS",76:"EXTENDS",79:"SUPER",80:"FUNC_EXIST",81:"CALL_START",82:"CALL_END",84:"THIS",85:"@",86:"[",87:"]",89:"..",92:"TRY",94:"FINALLY",95:"CATCH",96:"THROW",97:"(",98:")",100:"WHILE",101:"WHEN",102:"UNTIL",104:"LOOP",106:"FOR",110:"OWN",112:"FORIN",113:"FOROF",114:"BY",115:"SWITCH",117:"ELSE",119:"LEADING_WHEN",121:"IF",122:"POST_IF",123:"UNARY",124:"-",125:"+",126:"--",127:"++",128:"?",129:"MATH",130:"SHIFT",131:"COMPARE",132:"LOGIC",133:"RELATION",134:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[18,3],[18,5],[38,1],[38,3],[38,5],[38,1],[39,1],[39,1],[39,1],[10,2],[10,1],[12,1],[16,5],[16,2],[47,1],[47,1],[50,0],[50,1],[45,0],[45,1],[45,3],[52,1],[52,2],[52,3],[53,1],[53,1],[53,1],[53,1],[57,2],[58,1],[58,2],[58,2],[58,1],[36,1],[36,1],[36,1],[14,1],[14,1],[14,1],[14,1],[14,1],[59,2],[59,2],[59,2],[59,1],[59,1],[59,1],[66,3],[66,2],[66,2],[56,4],[73,0],[73,1],[73,3],[73,4],[73,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[77,0],[77,1],[78,2],[78,4],[62,1],[62,1],[41,2],[55,2],[55,4],[88,1],[88,1],[61,5],[67,5],[67,4],[67,4],[83,1],[83,3],[83,4],[83,4],[83,6],[90,1],[90,1],[91,1],[91,3],[20,2],[20,3],[20,4],[20,5],[93,3],[11,2],[60,3],[60,5],[99,2],[99,4],[99,2],[99,4],[21,2],[21,2],[21,2],[21,1],[103,2],[103,2],[22,2],[22,2],[22,2],[105,2],[105,2],[107,2],[107,3],[111,1],[111,1],[111,1],[109,1],[109,3],[108,2],[108,2],[108,4],[108,4],[108,4],[108,6],[108,6],[23,5],[23,7],[23,4],[23,6],[116,1],[116,2],[118,3],[118,4],[120,3],[120,5],[120,3],[19,1],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],performAction:function c(a,b,c,d,e,f){var g=f.length-1;switch(e){case 1:return this.$=new d.Expressions;case 2:return this.$=f[g];case 3:return this.$=f[g-1];case 4:this.$=d.Expressions.wrap([f[g]]);break;case 5:this.$=f[g-2].push(f[g]);break;case 6:this.$=f[g-1];break;case 7:this.$=f[g];break;case 8:this.$=f[g];break;case 9:this.$=f[g];break;case 10:this.$=f[g];break;case 11:this.$=f[g];break;case 12:this.$=new d.Literal(f[g]);break;case 13:this.$=f[g];break;case 14:this.$=f[g];break;case 15:this.$=f[g];break;case 16:this.$=f[g];break;case 17:this.$=f[g];break;case 18:this.$=f[g];break;case 19:this.$=f[g];break;case 20:this.$=f[g];break;case 21:this.$=f[g];break;case 22:this.$=f[g];break;case 23:this.$=f[g];break;case 24:this.$=new d.Expressions;break;case 25:this.$=f[g-1];break;case 26:this.$=new d.Literal(f[g]);break;case 27:this.$=new d.Literal(f[g]);break;case 28:this.$=new d.Literal(f[g]);break;case 29:this.$=f[g];break;case 30:this.$=new d.Literal(f[g]);break;case 31:this.$=new d.Literal(f[g]);break;case 32:this.$=new d.Literal(f[g]==="undefined"?"void 0":f[g]);break;case 33:this.$=new d.Assign(f[g-2],f[g]);break;case 34:this.$=new d.Assign(f[g-4],f[g-1]);break;case 35:this.$=new d.Value(f[g]);break;case 36:this.$=new d.Assign(new d.Value(f[g-2]),f[g],"object");break;case 37:this.$=new d.Assign(new d.Value(f[g-4]),f[g-1],"object");break;case 38:this.$=f[g];break;case 39:this.$=f[g];break;case 40:this.$=f[g];break;case 41:this.$=f[g];break;case 42:this.$=new d.Return(f[g]);break;case 43:this.$=new d.Return;break;case 44:this.$=new d.Comment(f[g]);break;case 45:this.$=new d.Code(f[g-3],f[g],f[g-1]);break;case 46:this.$=new d.Code([],f[g],f[g-1]);break;case 47:this.$="func";break;case 48:this.$="boundfunc";break;case 49:this.$=f[g];break;case 50:this.$=f[g];break;case 51:this.$=[];break;case 52:this.$=[f[g]];break;case 53:this.$=f[g-2].concat(f[g]);break;case 54:this.$=new d.Param(f[g]);break;case 55:this.$=new d.Param(f[g-1],null,true);break;case 56:this.$=new d.Param(f[g-2],f[g]);break;case 57:this.$=f[g];break;case 58:this.$=f[g];break;case 59:this.$=f[g];break;case 60:this.$=f[g];break;case 61:this.$=new d.Splat(f[g-1]);break;case 62:this.$=new d.Value(f[g]);break;case 63:this.$=f[g-1].push(f[g]);break;case 64:this.$=new d.Value(f[g-1],[f[g]]);break;case 65:this.$=f[g];break;case 66:this.$=f[g];break;case 67:this.$=new d.Value(f[g]);break;case 68:this.$=new d.Value(f[g]);break;case 69:this.$=f[g];break;case 70:this.$=new d.Value(f[g]);break;case 71:this.$=new d.Value(f[g]);break;case 72:this.$=new d.Value(f[g]);break;case 73:this.$=f[g];break;case 74:this.$=new d.Access(f[g]);break;case 75:this.$=new d.Access(f[g],"soak");break;case 76:this.$=new d.Access(f[g],"proto");break;case 77:this.$=new d.Access(new d.Literal("prototype"));break;case 78:this.$=f[g];break;case 79:this.$=new d.Slice(f[g]);break;case 80:this.$=new d.Index(f[g-1]);break;case 81:this.$=d.extend(f[g],{soak:true});break;case 82:this.$=d.extend(f[g],{proto:true});break;case 83:this.$=new d.Obj(f[g-2],f[g-3].generated);break;case 84:this.$=[];break;case 85:this.$=[f[g]];break;case 86:this.$=f[g-2].concat(f[g]);break;case 87:this.$=f[g-3].concat(f[g]);break;case 88:this.$=f[g-5].concat(f[g-2]);break;case 89:this.$=new d.Class;break;case 90:this.$=new d.Class(null,null,f[g]);break;case 91:this.$=new d.Class(null,f[g]);break;case 92:this.$=new d.Class(null,f[g-1],f[g]);break;case 93:this.$=new d.Class(f[g]);break;case 94:this.$=new d.Class(f[g-1],null,f[g]);break;case 95:this.$=new d.Class(f[g-2],f[g]);break;case 96:this.$=new d.Class(f[g-3],f[g-1],f[g]);break;case 97:this.$=new d.Call(f[g-2],f[g],f[g-1]);break;case 98:this.$=new d.Call(f[g-2],f[g],f[g-1]);break;case 99:this.$=new d.Call("super",[new d.Splat(new d.Literal("arguments"))]);break;case 100:this.$=new d.Call("super",f[g]);break;case 101:this.$=false;break;case 102:this.$=true;break;case 103:this.$=[];break;case 104:this.$=f[g-2];break;case 105:this.$=new d.Value(new d.Literal("this"));break;case 106:this.$=new d.Value(new d.Literal("this"));break;case 107:this.$=new d.Value(new d.Literal("this"),[new d.Access(f[g])],"this");break;case 108:this.$=new d.Arr([]);break;case 109:this.$=new d.Arr(f[g-2]);break;case 110:this.$="inclusive";break;case 111:this.$="exclusive";break;case 112:this.$=new d.Range(f[g-3],f[g-1],f[g-2]);break;case 113:this.$=new d.Range(f[g-3],f[g-1],f[g-2]);break;case 114:this.$=new d.Range(f[g-2],null,f[g-1]);break;case 115:this.$=new d.Range(null,f[g-1],f[g-2]);break;case 116:this.$=[f[g]];break;case 117:this.$=f[g-2].concat(f[g]);break;case 118:this.$=f[g-3].concat(f[g]);break;case 119:this.$=f[g-2];break;case 120:this.$=f[g-5].concat(f[g-2]);break;case 121:this.$=f[g];break;case 122:this.$=f[g];break;case 123:this.$=f[g];break;case 124:this.$=[].concat(f[g-2],f[g]);break;case 125:this.$=new d.Try(f[g]);break;case 126:this.$=new d.Try(f[g-1],f[g][0],f[g][1]);break;case 127:this.$=new d.Try(f[g-2],null,null,f[g]);break;case 128:this.$=new d.Try(f[g-3],f[g-2][0],f[g-2][1],f[g]);break;case 129:this.$=[f[g-1],f[g]];break;case 130:this.$=new d.Throw(f[g]);break;case 131:this.$=new d.Parens(f[g-1]);break;case 132:this.$=new d.Parens(f[g-2]);break;case 133:this.$=new d.While(f[g]);break;case 134:this.$=new d.While(f[g-2],{guard:f[g]});break;case 135:this.$=new d.While(f[g],{invert:true});break;case 136:this.$=new d.While(f[g-2],{invert:true,guard:f[g]});break;case 137:this.$=f[g-1].addBody(f[g]);break;case 138:this.$=f[g].addBody(d.Expressions.wrap([f[g-1]]));break;case 139:this.$=f[g].addBody(d.Expressions.wrap([f[g-1]]));break;case 140:this.$=f[g];break;case 141:this.$=(new d.While(new d.Literal("true"))).addBody(f[g]);break;case 142:this.$=(new d.While(new d.Literal("true"))).addBody(d.Expressions.wrap([f[g]]));break;case 143:this.$=new d.For(f[g-1],f[g]);break;case 144:this.$=new d.For(f[g-1],f[g]);break;case 145:this.$=new d.For(f[g],f[g-1]);break;case 146:this.$={source:new d.Value(f[g])};break;case 147:this.$=function(){f[g].own=f[g-1].own,f[g].name=f[g-1][0],f[g].index=f[g-1][1];return f[g]}();break;case 148:this.$=f[g];break;case 149:this.$=function(){f[g].own=true;return f[g]}();break;case 150:this.$=f[g];break;case 151:this.$=new d.Value(f[g]);break;case 152:this.$=new d.Value(f[g]);break;case 153:this.$=[f[g]];break;case 154:this.$=[f[g-2],f[g]];break;case 155:this.$={source:f[g]};break;case 156:this.$={source:f[g],object:true};break;case 157:this.$={source:f[g-2],guard:f[g]};break;case 158:this.$={source:f[g-2],guard:f[g],object:true};break;case 159:this.$={source:f[g-2],step:f[g]};break;case 160:this.$={source:f[g-4],guard:f[g-2],step:f[g]};break;case 161:this.$={source:f[g-4],step:f[g-2],guard:f[g]};break;case 162:this.$=new d.Switch(f[g-3],f[g-1]);break;case 163:this.$=new d.Switch(f[g-5],f[g-3],f[g-1]);break;case 164:this.$=new d.Switch(null,f[g-1]);break;case 165:this.$=new d.Switch(null,f[g-3],f[g-1]);break;case 166:this.$=f[g];break;case 167:this.$=f[g-1].concat(f[g]);break;case 168:this.$=[[f[g-1],f[g]]];break;case 169:this.$=[[f[g-2],f[g-1]]];break;case 170:this.$=new d.If(f[g-1],f[g],{type:f[g-2]});break;case 171:this.$=f[g-4].addElse(new d.If(f[g-1],f[g],{type:f[g-2]}));break;case 172:this.$=f[g-2].addElse(f[g]);break;case 173:this.$=f[g];break;case 174:this.$=new d.If(f[g],d.Expressions.wrap([f[g-2]]),{type:f[g-1],statement:true});break;case 175:this.$=new d.If(f[g],d.Expressions.wrap([f[g-2]]),{type:f[g-1],statement:true});break;case 176:this.$=new d.Op(f[g-1],f[g]);break;case 177:this.$=new d.Op("-",f[g]);break;case 178:this.$=new d.Op("+",f[g]);break;case 179:this.$=new d.Op("--",f[g]);break;case 180:this.$=new d.Op("++",f[g]);break;case 181:this.$=new d.Op("--",f[g-1],null,true);break;case 182:this.$=new d.Op("++",f[g-1],null,true);break;case 183:this.$=new d.Existence(f[g-1]);break;case 184:this.$=new d.Op("+",f[g-2],f[g]);break;case 185:this.$=new d.Op("-",f[g-2],f[g]);break;case 186:this.$=new d.Op(f[g-1],f[g-2],f[g]);break;case 187:this.$=new d.Op(f[g-1],f[g-2],f[g]);break;case 188:this.$=new d.Op(f[g-1],f[g-2],f[g]);break;case 189:this.$=new d.Op(f[g-1],f[g-2],f[g]);break;case 190:this.$=function(){return f[g-1].charAt(0)==="!"?(new d.Op(f[g-1].slice(1),f[g-2],f[g])).invert():new d.Op(f[g-1],f[g-2],f[g])}();break;case 191:this.$=new d.Assign(f[g-2],f[g],f[g-1]);break;case 192:this.$=new d.Assign(f[g-4],f[g-1],f[g-3]);break;case 193:this.$=new d.Extends(f[g-2],f[g])}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{1:[3]},{1:[2,2],6:[1,71]},{6:[1,72]},{1:[2,4],6:[2,4],26:[2,4],98:[2,4]},{4:74,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[1,73],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{1:[2,7],6:[2,7],26:[2,7],98:[2,7],99:84,100:[1,62],102:[1,63],105:85,106:[1,65],107:66,122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{1:[2,8],6:[2,8],26:[2,8],98:[2,8],99:87,100:[1,62],102:[1,63],105:88,106:[1,65],107:66,122:[1,86]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],46:[2,13],51:[2,13],54:[2,13],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:96,68:[1,97],69:[2,13],70:[1,98],71:[1,99],74:[2,13],77:89,80:[1,91],81:[2,101],82:[2,13],87:[2,13],89:[2,13],98:[2,13],100:[2,13],101:[2,13],102:[2,13],106:[2,13],114:[2,13],122:[2,13],124:[2,13],125:[2,13],128:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],46:[2,14],51:[2,14],54:[2,14],59:101,63:[1,92],64:[1,93],65:[1,94],66:95,67:96,68:[1,97],69:[2,14],70:[1,98],71:[1,99],74:[2,14],77:100,80:[1,91],81:[2,101],82:[2,14],87:[2,14],89:[2,14],98:[2,14],100:[2,14],101:[2,14],102:[2,14],106:[2,14],114:[2,14],122:[2,14],124:[2,14],125:[2,14],128:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],46:[2,15],51:[2,15],54:[2,15],69:[2,15],74:[2,15],82:[2,15],87:[2,15],89:[2,15],98:[2,15],100:[2,15],101:[2,15],102:[2,15],106:[2,15],114:[2,15],122:[2,15],124:[2,15],125:[2,15],128:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],46:[2,16],51:[2,16],54:[2,16],69:[2,16],74:[2,16],82:[2,16],87:[2,16],89:[2,16],98:[2,16],100:[2,16],101:[2,16],102:[2,16],106:[2,16],114:[2,16],122:[2,16],124:[2,16],125:[2,16],128:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],46:[2,17],51:[2,17],54:[2,17],69:[2,17],74:[2,17],82:[2,17],87:[2,17],89:[2,17],98:[2,17],100:[2,17],101:[2,17],102:[2,17],106:[2,17],114:[2,17],122:[2,17],124:[2,17],125:[2,17],128:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],46:[2,18],51:[2,18],54:[2,18],69:[2,18],74:[2,18],82:[2,18],87:[2,18],89:[2,18],98:[2,18],100:[2,18],101:[2,18],102:[2,18],106:[2,18],114:[2,18],122:[2,18],124:[2,18],125:[2,18],128:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],46:[2,19],51:[2,19],54:[2,19],69:[2,19],74:[2,19],82:[2,19],87:[2,19],89:[2,19],98:[2,19],100:[2,19],101:[2,19],102:[2,19],106:[2,19],114:[2,19],122:[2,19],124:[2,19],125:[2,19],128:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],46:[2,20],51:[2,20],54:[2,20],69:[2,20],74:[2,20],82:[2,20],87:[2,20],89:[2,20],98:[2,20],100:[2,20],101:[2,20],102:[2,20],106:[2,20],114:[2,20],122:[2,20],124:[2,20],125:[2,20],128:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],46:[2,21],51:[2,21],54:[2,21],69:[2,21],74:[2,21],82:[2,21],87:[2,21],89:[2,21],98:[2,21],100:[2,21],101:[2,21],102:[2,21],106:[2,21],114:[2,21],122:[2,21],124:[2,21],125:[2,21],128:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],46:[2,22],51:[2,22],54:[2,22],69:[2,22],74:[2,22],82:[2,22],87:[2,22],89:[2,22],98:[2,22],100:[2,22],101:[2,22],102:[2,22],106:[2,22],114:[2,22],122:[2,22],124:[2,22],125:[2,22],128:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],46:[2,23],51:[2,23],54:[2,23],69:[2,23],74:[2,23],82:[2,23],87:[2,23],89:[2,23],98:[2,23],100:[2,23],101:[2,23],102:[2,23],106:[2,23],114:[2,23],122:[2,23],124:[2,23],125:[2,23],128:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23]},{1:[2,9],6:[2,9],26:[2,9],98:[2,9],100:[2,9],102:[2,9],106:[2,9],122:[2,9]},{1:[2,10],6:[2,10],26:[2,10],98:[2,10],100:[2,10],102:[2,10],106:[2,10],122:[2,10]},{1:[2,11],6:[2,11],26:[2,11],98:[2,11],100:[2,11],102:[2,11],106:[2,11],122:[2,11]},{1:[2,12],6:[2,12],26:[2,12],98:[2,12],100:[2,12],102:[2,12],106:[2,12],122:[2,12]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],37:[1,102],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],68:[2,69],69:[2,69],70:[2,69],71:[2,69],74:[2,69],80:[2,69],81:[2,69],82:[2,69],87:[2,69],89:[2,69],98:[2,69],100:[2,69],101:[2,69],102:[2,69],106:[2,69],114:[2,69],122:[2,69],124:[2,69],125:[2,69],128:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],46:[2,70],51:[2,70],54:[2,70],63:[2,70],64:[2,70],65:[2,70],68:[2,70],69:[2,70],70:[2,70],71:[2,70],74:[2,70],80:[2,70],81:[2,70],82:[2,70],87:[2,70],89:[2,70],98:[2,70],100:[2,70],101:[2,70],102:[2,70],106:[2,70],114:[2,70],122:[2,70],124:[2,70],125:[2,70],128:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],46:[2,71],51:[2,71],54:[2,71],63:[2,71],64:[2,71],65:[2,71],68:[2,71],69:[2,71],70:[2,71],71:[2,71],74:[2,71],80:[2,71],81:[2,71],82:[2,71],87:[2,71],89:[2,71],98:[2,71],100:[2,71],101:[2,71],102:[2,71],106:[2,71],114:[2,71],122:[2,71],124:[2,71],125:[2,71],128:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],46:[2,72],51:[2,72],54:[2,72],63:[2,72],64:[2,72],65:[2,72],68:[2,72],69:[2,72],70:[2,72],71:[2,72],74:[2,72],80:[2,72],81:[2,72],82:[2,72],87:[2,72],89:[2,72],98:[2,72],100:[2,72],101:[2,72],102:[2,72],106:[2,72],114:[2,72],122:[2,72],124:[2,72],125:[2,72],128:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],46:[2,73],51:[2,73],54:[2,73],63:[2,73],64:[2,73],65:[2,73],68:[2,73],69:[2,73],70:[2,73],71:[2,73],74:[2,73],80:[2,73],81:[2,73],82:[2,73],87:[2,73],89:[2,73],98:[2,73],100:[2,73],101:[2,73],102:[2,73],106:[2,73],114:[2,73],122:[2,73],124:[2,73],125:[2,73],128:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],46:[2,99],51:[2,99],54:[2,99],63:[2,99],64:[2,99],65:[2,99],68:[2,99],69:[2,99],70:[2,99],71:[2,99],74:[2,99],78:103,80:[2,99],81:[1,104],82:[2,99],87:[2,99],89:[2,99],98:[2,99],100:[2,99],101:[2,99],102:[2,99],106:[2,99],114:[2,99],122:[2,99],124:[2,99],125:[2,99],128:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99]},{27:108,28:[1,70],41:109,45:105,46:[2,51],51:[2,51],52:106,53:107,55:110,56:111,72:[1,67],85:[1,112],86:[1,113]},{5:114,25:[1,5]},{8:115,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:117,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:118,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{14:120,15:121,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:122,41:60,55:47,56:48,58:119,60:25,61:26,62:27,72:[1,67],79:[1,28],84:[1,55],85:[1,56],86:[1,54],97:[1,53]},{14:120,15:121,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:122,41:60,55:47,56:48,58:123,60:25,61:26,62:27,72:[1,67],79:[1,28],84:[1,55],85:[1,56],86:[1,54],97:[1,53]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],37:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],68:[2,66],69:[2,66],70:[2,66],71:[2,66],74:[2,66],76:[1,127],80:[2,66],81:[2,66],82:[2,66],87:[2,66],89:[2,66],98:[2,66],100:[2,66],101:[2,66],102:[2,66],106:[2,66],114:[2,66],122:[2,66],124:[2,66],125:[2,66],126:[1,124],127:[1,125],128:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[1,126]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],46:[2,173],51:[2,173],54:[2,173],69:[2,173],74:[2,173],82:[2,173],87:[2,173],89:[2,173],98:[2,173],100:[2,173],101:[2,173],102:[2,173],106:[2,173],114:[2,173],117:[1,128],122:[2,173],124:[2,173],125:[2,173],128:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173]},{5:129,25:[1,5]},{5:130,25:[1,5]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],46:[2,140],51:[2,140],54:[2,140],69:[2,140],74:[2,140],82:[2,140],87:[2,140],89:[2,140],98:[2,140],100:[2,140],101:[2,140],102:[2,140],106:[2,140],114:[2,140],122:[2,140],124:[2,140],125:[2,140],128:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140]},{5:131,25:[1,5]},{8:132,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,133],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{1:[2,89],5:134,6:[2,89],14:120,15:121,25:[1,5],26:[2,89],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:122,41:60,46:[2,89],51:[2,89],54:[2,89],55:47,56:48,58:136,60:25,61:26,62:27,69:[2,89],72:[1,67],74:[2,89],76:[1,135],79:[1,28],82:[2,89],84:[1,55],85:[1,56],86:[1,54],87:[2,89],89:[2,89],97:[1,53],98:[2,89],100:[2,89],101:[2,89],102:[2,89],106:[2,89],114:[2,89],122:[2,89],124:[2,89],125:[2,89],128:[2,89],129:[2,89],130:[2,89],131:[2,89],132:[2,89],133:[2,89]},{1:[2,43],6:[2,43],8:137,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,43],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],98:[2,43],99:39,100:[2,43],102:[2,43],103:40,104:[1,64],105:41,106:[2,43],107:66,115:[1,42],120:37,121:[1,61],122:[2,43],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:138,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{1:[2,44],6:[2,44],25:[2,44],26:[2,44],51:[2,44],74:[2,44],98:[2,44],100:[2,44],102:[2,44],106:[2,44],122:[2,44]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],37:[2,67],46:[2,67],51:[2,67],54:[2,67],63:[2,67],64:[2,67],65:[2,67],68:[2,67],69:[2,67],70:[2,67],71:[2,67],74:[2,67],80:[2,67],81:[2,67],82:[2,67],87:[2,67],89:[2,67],98:[2,67],100:[2,67],101:[2,67],102:[2,67],106:[2,67],114:[2,67],122:[2,67],124:[2,67],125:[2,67],128:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],37:[2,68],46:[2,68],51:[2,68],54:[2,68],63:[2,68],64:[2,68],65:[2,68],68:[2,68],69:[2,68],70:[2,68],71:[2,68],74:[2,68],80:[2,68],81:[2,68],82:[2,68],87:[2,68],89:[2,68],98:[2,68],100:[2,68],101:[2,68],102:[2,68],106:[2,68],114:[2,68],122:[2,68],124:[2,68],125:[2,68],128:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],46:[2,29],51:[2,29],54:[2,29],63:[2,29],64:[2,29],65:[2,29],68:[2,29],69:[2,29],70:[2,29],71:[2,29],74:[2,29],80:[2,29],81:[2,29],82:[2,29],87:[2,29],89:[2,29],98:[2,29],100:[2,29],101:[2,29],102:[2,29],106:[2,29],114:[2,29],122:[2,29],124:[2,29],125:[2,29],128:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],46:[2,30],51:[2,30],54:[2,30],63:[2,30],64:[2,30],65:[2,30],68:[2,30],69:[2,30],70:[2,30],71:[2,30],74:[2,30],80:[2,30],81:[2,30],82:[2,30],87:[2,30],89:[2,30],98:[2,30],100:[2,30],101:[2,30],102:[2,30],106:[2,30],114:[2,30],122:[2,30],124:[2,30],125:[2,30],128:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],46:[2,31],51:[2,31],54:[2,31],63:[2,31],64:[2,31],65:[2,31],68:[2,31],69:[2,31],70:[2,31],71:[2,31],74:[2,31],80:[2,31],81:[2,31],82:[2,31],87:[2,31],89:[2,31],98:[2,31],100:[2,31],101:[2,31],102:[2,31],106:[2,31],114:[2,31],122:[2,31],124:[2,31],125:[2,31],128:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],46:[2,32],51:[2,32],54:[2,32],63:[2,32],64:[2,32],65:[2,32],68:[2,32],69:[2,32],70:[2,32],71:[2,32],74:[2,32],80:[2,32],81:[2,32],82:[2,32],87:[2,32],89:[2,32],98:[2,32],100:[2,32],101:[2,32],102:[2,32],106:[2,32],114:[2,32],122:[2,32],124:[2,32],125:[2,32],128:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32]},{4:139,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,140],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:141,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,145],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:146,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],83:143,84:[1,55],85:[1,56],86:[1,54],87:[1,142],90:144,92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],46:[2,105],51:[2,105],54:[2,105],63:[2,105],64:[2,105],65:[2,105],68:[2,105],69:[2,105],70:[2,105],71:[2,105],74:[2,105],80:[2,105],81:[2,105],82:[2,105],87:[2,105],89:[2,105],98:[2,105],100:[2,105],101:[2,105],102:[2,105],106:[2,105],114:[2,105],122:[2,105],124:[2,105],125:[2,105],128:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],27:147,28:[1,70],46:[2,106],51:[2,106],54:[2,106],63:[2,106],64:[2,106],65:[2,106],68:[2,106],69:[2,106],70:[2,106],71:[2,106],74:[2,106],80:[2,106],81:[2,106],82:[2,106],87:[2,106],89:[2,106],98:[2,106],100:[2,106],101:[2,106],102:[2,106],106:[2,106],114:[2,106],122:[2,106],124:[2,106],125:[2,106],128:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106]},{25:[2,47]},{25:[2,48]},{1:[2,62],6:[2,62],25:[2,62],26:[2,62],37:[2,62],46:[2,62],51:[2,62],54:[2,62],63:[2,62],64:[2,62],65:[2,62],68:[2,62],69:[2,62],70:[2,62],71:[2,62],74:[2,62],76:[2,62],80:[2,62],81:[2,62],82:[2,62],87:[2,62],89:[2,62],98:[2,62],100:[2,62],101:[2,62],102:[2,62],106:[2,62],114:[2,62],122:[2,62],124:[2,62],125:[2,62],126:[2,62],127:[2,62],128:[2,62],129:[2,62],130:[2,62],131:[2,62],132:[2,62],133:[2,62],134:[2,62]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],37:[2,65],46:[2,65],51:[2,65],54:[2,65],63:[2,65],64:[2,65],65:[2,65],68:[2,65],69:[2,65],70:[2,65],71:[2,65],74:[2,65],76:[2,65],80:[2,65],81:[2,65],82:[2,65],87:[2,65],89:[2,65],98:[2,65],100:[2,65],101:[2,65],102:[2,65],106:[2,65],114:[2,65],122:[2,65],124:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65]},{8:148,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:149,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:150,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{5:151,8:152,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{27:157,28:[1,70],55:158,56:159,61:153,72:[1,67],86:[1,54],109:154,110:[1,155],111:156},{108:160,112:[1,161],113:[1,162]},{6:[2,84],12:166,25:[2,84],27:167,28:[1,70],29:168,30:[1,68],31:[1,69],38:164,39:165,41:169,43:[1,46],51:[2,84],73:163,74:[2,84],85:[1,112]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],40:[2,27],46:[2,27],51:[2,27],54:[2,27],63:[2,27],64:[2,27],65:[2,27],68:[2,27],69:[2,27],70:[2,27],71:[2,27],74:[2,27],80:[2,27],81:[2,27],82:[2,27],87:[2,27],89:[2,27],98:[2,27],100:[2,27],101:[2,27],102:[2,27],106:[2,27],114:[2,27],122:[2,27],124:[2,27],125:[2,27],128:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],40:[2,28],46:[2,28],51:[2,28],54:[2,28],63:[2,28],64:[2,28],65:[2,28],68:[2,28],69:[2,28],70:[2,28],71:[2,28],74:[2,28],80:[2,28],81:[2,28],82:[2,28],87:[2,28],89:[2,28],98:[2,28],100:[2,28],101:[2,28],102:[2,28],106:[2,28],114:[2,28],122:[2,28],124:[2,28],125:[2,28],128:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],37:[2,26],40:[2,26],46:[2,26],51:[2,26],54:[2,26],63:[2,26],64:[2,26],65:[2,26],68:[2,26],69:[2,26],70:[2,26],71:[2,26],74:[2,26],76:[2,26],80:[2,26],81:[2,26],82:[2,26],87:[2,26],89:[2,26],98:[2,26],100:[2,26],101:[2,26],102:[2,26],106:[2,26],112:[2,26],113:[2,26],114:[2,26],122:[2,26],124:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26]},{1:[2,6],6:[2,6],7:170,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,6],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],98:[2,6],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],46:[2,24],51:[2,24],54:[2,24],69:[2,24],74:[2,24],82:[2,24],87:[2,24],89:[2,24],94:[2,24],95:[2,24],98:[2,24],100:[2,24],101:[2,24],102:[2,24],106:[2,24],114:[2,24],117:[2,24],119:[2,24],122:[2,24],124:[2,24],125:[2,24],128:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24]},{6:[1,71],26:[1,171]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],46:[2,183],51:[2,183],54:[2,183],69:[2,183],74:[2,183],82:[2,183],87:[2,183],89:[2,183],98:[2,183],100:[2,183],101:[2,183],102:[2,183],106:[2,183],114:[2,183],122:[2,183],124:[2,183],125:[2,183],128:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183]},{8:172,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:173,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:174,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:175,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:176,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:177,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:178,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:179,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],46:[2,139],51:[2,139],54:[2,139],69:[2,139],74:[2,139],82:[2,139],87:[2,139],89:[2,139],98:[2,139],100:[2,139],101:[2,139],102:[2,139],106:[2,139],114:[2,139],122:[2,139],124:[2,139],125:[2,139],128:[2,139],129:[2,139],130:[2,139],131:[2,139],132:[2,139],133:[2,139]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],46:[2,144],51:[2,144],54:[2,144],69:[2,144],74:[2,144],82:[2,144],87:[2,144],89:[2,144],98:[2,144],100:[2,144],101:[2,144],102:[2,144],106:[2,144],114:[2,144],122:[2,144],124:[2,144],125:[2,144],128:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144]},{8:180,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],46:[2,138],51:[2,138],54:[2,138],69:[2,138],74:[2,138],82:[2,138],87:[2,138],89:[2,138],98:[2,138],100:[2,138],101:[2,138],102:[2,138],106:[2,138],114:[2,138],122:[2,138],124:[2,138],125:[2,138],128:[2,138],129:[2,138],130:[2,138],131:[2,138],132:[2,138],133:[2,138]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],46:[2,143],51:[2,143],54:[2,143],69:[2,143],74:[2,143],82:[2,143],87:[2,143],89:[2,143],98:[2,143],100:[2,143],101:[2,143],102:[2,143],106:[2,143],114:[2,143],122:[2,143],124:[2,143],125:[2,143],128:[2,143],129:[2,143],130:[2,143],131:[2,143],132:[2,143],133:[2,143]},{78:181,81:[1,104]},{1:[2,63],6:[2,63],25:[2,63],26:[2,63],37:[2,63],46:[2,63],51:[2,63],54:[2,63],63:[2,63],64:[2,63],65:[2,63],68:[2,63],69:[2,63],70:[2,63],71:[2,63],74:[2,63],76:[2,63],80:[2,63],81:[2,63],82:[2,63],87:[2,63],89:[2,63],98:[2,63],100:[2,63],101:[2,63],102:[2,63],106:[2,63],114:[2,63],122:[2,63],124:[2,63],125:[2,63],126:[2,63],127:[2,63],128:[2,63],129:[2,63],130:[2,63],131:[2,63],132:[2,63],133:[2,63],134:[2,63]},{81:[2,102]},{27:182,28:[1,70]},{27:183,28:[1,70]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],27:184,28:[1,70],37:[2,77],46:[2,77],51:[2,77],54:[2,77],63:[2,77],64:[2,77],65:[2,77],68:[2,77],69:[2,77],70:[2,77],71:[2,77],74:[2,77],76:[2,77],80:[2,77],81:[2,77],82:[2,77],87:[2,77],89:[2,77],98:[2,77],100:[2,77],101:[2,77],102:[2,77],106:[2,77],114:[2,77],122:[2,77],124:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],37:[2,78],46:[2,78],51:[2,78],54:[2,78],63:[2,78],64:[2,78],65:[2,78],68:[2,78],69:[2,78],70:[2,78],71:[2,78],74:[2,78],76:[2,78],80:[2,78],81:[2,78],82:[2,78],87:[2,78],89:[2,78],98:[2,78],100:[2,78],101:[2,78],102:[2,78],106:[2,78],114:[2,78],122:[2,78],124:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],37:[2,79],46:[2,79],51:[2,79],54:[2,79],63:[2,79],64:[2,79],65:[2,79],68:[2,79],69:[2,79],70:[2,79],71:[2,79],74:[2,79],76:[2,79],80:[2,79],81:[2,79],82:[2,79],87:[2,79],89:[2,79],98:[2,79],100:[2,79],101:[2,79],102:[2,79],106:[2,79],114:[2,79],122:[2,79],124:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79]},{8:185,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],54:[1,188],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],88:186,89:[1,187],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{66:189,68:[1,190],70:[1,98],71:[1,99]},{66:191,68:[1,190],70:[1,98],71:[1,99]},{78:192,81:[1,104]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],37:[2,64],46:[2,64],51:[2,64],54:[2,64],63:[2,64],64:[2,64],65:[2,64],68:[2,64],69:[2,64],70:[2,64],71:[2,64],74:[2,64],76:[2,64],80:[2,64],81:[2,64],82:[2,64],87:[2,64],89:[2,64],98:[2,64],100:[2,64],101:[2,64],102:[2,64],106:[2,64],114:[2,64],122:[2,64],124:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64]},{8:193,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,194],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],46:[2,100],51:[2,100],54:[2,100],63:[2,100],64:[2,100],65:[2,100],68:[2,100],69:[2,100],70:[2,100],71:[2,100],74:[2,100],80:[2,100],81:[2,100],82:[2,100],87:[2,100],89:[2,100],98:[2,100],100:[2,100],101:[2,100],102:[2,100],106:[2,100],114:[2,100],122:[2,100],124:[2,100],125:[2,100],128:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100]},{8:197,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,145],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:146,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],82:[1,195],83:196,84:[1,55],85:[1,56],86:[1,54],90:144,92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{46:[1,198],51:[1,199]},{46:[2,52],51:[2,52]},{37:[1,201],46:[2,54],51:[2,54],54:[1,200]},{37:[2,57],46:[2,57],51:[2,57],54:[2,57]},{37:[2,58],46:[2,58],51:[2,58],54:[2,58]},{37:[2,59],46:[2,59],51:[2,59],54:[2,59]},{37:[2,60],46:[2,60],51:[2,60],54:[2,60]},{27:147,28:[1,70]},{8:197,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,145],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:146,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],83:143,84:[1,55],85:[1,56],86:[1,54],87:[1,142],90:144,92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],46:[2,46],51:[2,46],54:[2,46],69:[2,46],74:[2,46],82:[2,46],87:[2,46],89:[2,46],98:[2,46],100:[2,46],101:[2,46],102:[2,46],106:[2,46],114:[2,46],122:[2,46],124:[2,46],125:[2,46],128:[2,46],129:[2,46],130:[2,46],131:[2,46],132:[2,46],133:[2,46]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],46:[2,176],51:[2,176],54:[2,176],69:[2,176],74:[2,176],82:[2,176],87:[2,176],89:[2,176],98:[2,176],99:84,100:[2,176],101:[2,176],102:[2,176],105:85,106:[2,176],107:66,114:[2,176],122:[2,176],124:[2,176],125:[2,176],128:[1,75],129:[2,176],130:[2,176],131:[2,176],132:[2,176],133:[2,176]},{99:87,100:[1,62],102:[1,63],105:88,106:[1,65],107:66,122:[1,86]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],46:[2,177],51:[2,177],54:[2,177],69:[2,177],74:[2,177],82:[2,177],87:[2,177],89:[2,177],98:[2,177],99:84,100:[2,177],101:[2,177],102:[2,177],105:85,106:[2,177],107:66,114:[2,177],122:[2,177],124:[2,177],125:[2,177],128:[1,75],129:[2,177],130:[2,177],131:[2,177],132:[2,177],133:[2,177]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],46:[2,178],51:[2,178],54:[2,178],69:[2,178],74:[2,178],82:[2,178],87:[2,178],89:[2,178],98:[2,178],99:84,100:[2,178],101:[2,178],102:[2,178],105:85,106:[2,178],107:66,114:[2,178],122:[2,178],124:[2,178],125:[2,178],128:[1,75],129:[2,178],130:[2,178],131:[2,178],132:[2,178],133:[2,178]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],46:[2,179],51:[2,179],54:[2,179],63:[2,66],64:[2,66],65:[2,66],68:[2,66],69:[2,179],70:[2,66],71:[2,66],74:[2,179],80:[2,66],81:[2,66],82:[2,179],87:[2,179],89:[2,179],98:[2,179],100:[2,179],101:[2,179],102:[2,179],106:[2,179],114:[2,179],122:[2,179],124:[2,179],125:[2,179],128:[2,179],129:[2,179],130:[2,179],131:[2,179],132:[2,179],133:[2,179]},{59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:96,68:[1,97],70:[1,98],71:[1,99],77:89,80:[1,91],81:[2,101]},{59:101,63:[1,92],64:[1,93],65:[1,94],66:95,67:96,68:[1,97],70:[1,98],71:[1,99],77:100,80:[1,91],81:[2,101]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],68:[2,69],69:[2,69],70:[2,69],71:[2,69],74:[2,69],80:[2,69],81:[2,69],82:[2,69],87:[2,69],89:[2,69],98:[2,69],100:[2,69],101:[2,69],102:[2,69],106:[2,69],114:[2,69],122:[2,69],124:[2,69],125:[2,69],128:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],46:[2,180],51:[2,180],54:[2,180],63:[2,66],64:[2,66],65:[2,66],68:[2,66],69:[2,180],70:[2,66],71:[2,66],74:[2,180],80:[2,66],81:[2,66],82:[2,180],87:[2,180],89:[2,180],98:[2,180],100:[2,180],101:[2,180],102:[2,180],106:[2,180],114:[2,180],122:[2,180],124:[2,180],125:[2,180],128:[2,180],129:[2,180],130:[2,180],131:[2,180],132:[2,180],133:[2,180]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],46:[2,181],51:[2,181],54:[2,181],69:[2,181],74:[2,181],82:[2,181],87:[2,181],89:[2,181],98:[2,181],100:[2,181],101:[2,181],102:[2,181],106:[2,181],114:[2,181],122:[2,181],124:[2,181],125:[2,181],128:[2,181],129:[2,181],130:[2,181],131:[2,181],132:[2,181],133:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],46:[2,182],51:[2,182],54:[2,182],69:[2,182],74:[2,182],82:[2,182],87:[2,182],89:[2,182],98:[2,182],100:[2,182],101:[2,182],102:[2,182],106:[2,182],114:[2,182],122:[2,182],124:[2,182],125:[2,182],128:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182]},{8:202,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,203],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:204,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{5:206,25:[1,5],121:[1,205]},{1:[2,125],6:[2,125],25:[2,125],26:[2,125],46:[2,125],51:[2,125],54:[2,125],69:[2,125],74:[2,125],82:[2,125],87:[2,125],89:[2,125],93:207,94:[1,208],95:[1,209],98:[2,125],100:[2,125],101:[2,125],102:[2,125],106:[2,125],114:[2,125],122:[2,125],124:[2,125],125:[2,125],128:[2,125],129:[2,125],130:[2,125],131:[2,125],132:[2,125],133:[2,125]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],46:[2,137],51:[2,137],54:[2,137],69:[2,137],74:[2,137],82:[2,137],87:[2,137],89:[2,137],98:[2,137],100:[2,137],101:[2,137],102:[2,137],106:[2,137],114:[2,137],122:[2,137],124:[2,137],125:[2,137],128:[2,137],129:[2,137],130:[2,137],131:[2,137],132:[2,137],133:[2,137]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],46:[2,145],51:[2,145],54:[2,145],69:[2,145],74:[2,145],82:[2,145],87:[2,145],89:[2,145],98:[2,145],100:[2,145],101:[2,145],102:[2,145],106:[2,145],114:[2,145],122:[2,145],124:[2,145],125:[2,145],128:[2,145],129:[2,145],130:[2,145],131:[2,145],132:[2,145],133:[2,145]},{25:[1,210],99:84,100:[1,62],102:[1,63],105:85,106:[1,65],107:66,122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{116:211,118:212,119:[1,213]},{1:[2,90],6:[2,90],25:[2,90],26:[2,90],46:[2,90],51:[2,90],54:[2,90],69:[2,90],74:[2,90],82:[2,90],87:[2,90],89:[2,90],98:[2,90],100:[2,90],101:[2,90],102:[2,90],106:[2,90],114:[2,90],122:[2,90],124:[2,90],125:[2,90],128:[2,90],129:[2,90],130:[2,90],131:[2,90],132:[2,90],133:[2,90]},{14:214,15:121,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:122,41:60,55:47,56:48,58:215,60:25,61:26,62:27,72:[1,67],79:[1,28],84:[1,55],85:[1,56],86:[1,54],97:[1,53]},{1:[2,93],5:216,6:[2,93],25:[1,5],26:[2,93],46:[2,93],51:[2,93],54:[2,93],63:[2,66],64:[2,66],65:[2,66],68:[2,66],69:[2,93],70:[2,66],71:[2,66],74:[2,93],76:[1,217],80:[2,66],81:[2,66],82:[2,93],87:[2,93],89:[2,93],98:[2,93],100:[2,93],101:[2,93],102:[2,93],106:[2,93],114:[2,93],122:[2,93],124:[2,93],125:[2,93],128:[2,93],129:[2,93],130:[2,93],131:[2,93],132:[2,93],133:[2,93]},{1:[2,42],6:[2,42],26:[2,42],98:[2,42],99:84,100:[2,42],102:[2,42],105:85,106:[2,42],107:66,122:[2,42],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{1:[2,130],6:[2,130],26:[2,130],98:[2,130],99:84,100:[2,130],102:[2,130],105:85,106:[2,130],107:66,122:[2,130],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{6:[1,71],98:[1,218]},{4:219,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{6:[2,121],25:[2,121],51:[2,121],54:[1,221],87:[2,121],88:220,89:[1,187],99:84,100:[1,62],102:[1,63],105:85,106:[1,65],107:66,122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],37:[2,108],46:[2,108],51:[2,108],54:[2,108],63:[2,108],64:[2,108],65:[2,108],68:[2,108],69:[2,108],70:[2,108],71:[2,108],74:[2,108],80:[2,108],81:[2,108],82:[2,108],87:[2,108],89:[2,108],98:[2,108],100:[2,108],101:[2,108],102:[2,108],106:[2,108],112:[2,108],113:[2,108],114:[2,108],122:[2,108],124:[2,108],125:[2,108],128:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108]},{6:[2,49],25:[2,49],50:222,51:[1,223],87:[2,49]},{6:[2,116],25:[2,116],26:[2,116],51:[2,116],82:[2,116],87:[2,116]},{8:197,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,145],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:146,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],83:224,84:[1,55],85:[1,56],86:[1,54],90:144,92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{6:[2,122],25:[2,122],26:[2,122],51:[2,122],82:[2,122],87:[2,122]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],37:[2,107],40:[2,107],46:[2,107],51:[2,107],54:[2,107],63:[2,107],64:[2,107],65:[2,107],68:[2,107],69:[2,107],70:[2,107],71:[2,107],74:[2,107],76:[2,107],80:[2,107],81:[2,107],82:[2,107],87:[2,107],89:[2,107],98:[2,107],100:[2,107],101:[2,107],102:[2,107],106:[2,107],114:[2,107],122:[2,107],124:[2,107],125:[2,107],126:[2,107],127:[2,107],128:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{5:225,25:[1,5],99:84,100:[1,62],102:[1,63],105:85,106:[1,65],107:66,122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],46:[2,133],51:[2,133],54:[2,133],69:[2,133],74:[2,133],82:[2,133],87:[2,133],89:[2,133],98:[2,133],99:84,100:[1,62],101:[1,226],102:[1,63],105:85,106:[1,65],107:66,114:[2,133],122:[2,133],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],46:[2,135],51:[2,135],54:[2,135],69:[2,135],74:[2,135],82:[2,135],87:[2,135],89:[2,135],98:[2,135],99:84,100:[1,62],101:[1,227],102:[1,63],105:85,106:[1,65],107:66,114:[2,135],122:[2,135],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],46:[2,141],51:[2,141],54:[2,141],69:[2,141],74:[2,141],82:[2,141],87:[2,141],89:[2,141],98:[2,141],100:[2,141],101:[2,141],102:[2,141],106:[2,141],114:[2,141],122:[2,141],124:[2,141],125:[2,141],128:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],46:[2,142],51:[2,142],54:[2,142],69:[2,142],74:[2,142],82:[2,142],87:[2,142],89:[2,142],98:[2,142],99:84,100:[1,62],101:[2,142],102:[1,63],105:85,106:[1,65],107:66,114:[2,142],122:[2,142],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],46:[2,146],51:[2,146],54:[2,146],69:[2,146],74:[2,146],82:[2,146],87:[2,146],89:[2,146],98:[2,146],100:[2,146],101:[2,146],102:[2,146],106:[2,146],114:[2,146],122:[2,146],124:[2,146],125:[2,146],128:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146]},{112:[2,148],113:[2,148]},{27:157,28:[1,70],55:158,56:159,72:[1,67],86:[1,113],109:228,111:156},{51:[1,229],112:[2,153],113:[2,153]},{51:[2,150],112:[2,150],113:[2,150]},{51:[2,151],112:[2,151],113:[2,151]},{51:[2,152],112:[2,152],113:[2,152]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],46:[2,147],51:[2,147],54:[2,147],69:[2,147],74:[2,147],82:[2,147],87:[2,147],89:[2,147],98:[2,147],100:[2,147],101:[2,147],102:[2,147],106:[2,147],114:[2,147],122:[2,147],124:[2,147],125:[2,147],128:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147]},{8:230,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:231,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{6:[2,49],25:[2,49],50:232,51:[1,233],74:[2,49]},{6:[2,85],25:[2,85],26:[2,85],51:[2,85],74:[2,85]},{6:[2,35],25:[2,35],26:[2,35],40:[1,234],51:[2,35],74:[2,35]},{6:[2,38],25:[2,38],26:[2,38],51:[2,38],74:[2,38]},{6:[2,39],25:[2,39],26:[2,39],40:[2,39],51:[2,39],74:[2,39]},{6:[2,40],25:[2,40],26:[2,40],40:[2,40],51:[2,40],74:[2,40]},{6:[2,41],25:[2,41],26:[2,41],40:[2,41],51:[2,41],74:[2,41]},{1:[2,5],6:[2,5],26:[2,5],98:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],46:[2,25],51:[2,25],54:[2,25],69:[2,25],74:[2,25],82:[2,25],87:[2,25],89:[2,25],94:[2,25],95:[2,25],98:[2,25],100:[2,25],101:[2,25],102:[2,25],106:[2,25],114:[2,25],117:[2,25],119:[2,25],122:[2,25],124:[2,25],125:[2,25],128:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],46:[2,184],51:[2,184],54:[2,184],69:[2,184],74:[2,184],82:[2,184],87:[2,184],89:[2,184],98:[2,184],99:84,100:[2,184],101:[2,184],102:[2,184],105:85,106:[2,184],107:66,114:[2,184],122:[2,184],124:[2,184],125:[2,184],128:[1,75],129:[1,78],130:[2,184],131:[2,184],132:[2,184],133:[2,184]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],46:[2,185],51:[2,185],54:[2,185],69:[2,185],74:[2,185],82:[2,185],87:[2,185],89:[2,185],98:[2,185],99:84,100:[2,185],101:[2,185],102:[2,185],105:85,106:[2,185],107:66,114:[2,185],122:[2,185],124:[2,185],125:[2,185],128:[1,75],129:[1,78],130:[2,185],131:[2,185],132:[2,185],133:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],46:[2,186],51:[2,186],54:[2,186],69:[2,186],74:[2,186],82:[2,186],87:[2,186],89:[2,186],98:[2,186],99:84,100:[2,186],101:[2,186],102:[2,186],105:85,106:[2,186],107:66,114:[2,186],122:[2,186],124:[2,186],125:[2,186],128:[1,75],129:[2,186],130:[2,186],131:[2,186],132:[2,186],133:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],46:[2,187],51:[2,187],54:[2,187],69:[2,187],74:[2,187],82:[2,187],87:[2,187],89:[2,187],98:[2,187],99:84,100:[2,187],101:[2,187],102:[2,187],105:85,106:[2,187],107:66,114:[2,187],122:[2,187],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[2,187],131:[2,187],132:[2,187],133:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],46:[2,188],51:[2,188],54:[2,188],69:[2,188],74:[2,188],82:[2,188],87:[2,188],89:[2,188],98:[2,188],99:84,100:[2,188],101:[2,188],102:[2,188],105:85,106:[2,188],107:66,114:[2,188],122:[2,188],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[2,188],132:[2,188],133:[1,82]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],46:[2,189],51:[2,189],54:[2,189],69:[2,189],74:[2,189],82:[2,189],87:[2,189],89:[2,189],98:[2,189],99:84,100:[2,189],101:[2,189],102:[2,189],105:85,106:[2,189],107:66,114:[2,189],122:[2,189],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[2,189],133:[1,82]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],46:[2,190],51:[2,190],54:[2,190],69:[2,190],74:[2,190],82:[2,190],87:[2,190],89:[2,190],98:[2,190],99:84,100:[2,190],101:[2,190],102:[2,190],105:85,106:[2,190],107:66,114:[2,190],122:[2,190],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[2,190],132:[2,190],133:[2,190]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],46:[2,175],51:[2,175],54:[2,175],69:[2,175],74:[2,175],82:[2,175],87:[2,175],89:[2,175],98:[2,175],99:84,100:[1,62],101:[2,175],102:[1,63],105:85,106:[1,65],107:66,114:[2,175],122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],46:[2,174],51:[2,174],54:[2,174],69:[2,174],74:[2,174],82:[2,174],87:[2,174],89:[2,174],98:[2,174],99:84,100:[1,62],101:[2,174],102:[1,63],105:85,106:[1,65],107:66,114:[2,174],122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],46:[2,97],51:[2,97],54:[2,97],63:[2,97],64:[2,97],65:[2,97],68:[2,97],69:[2,97],70:[2,97],71:[2,97],74:[2,97],80:[2,97],81:[2,97],82:[2,97],87:[2,97],89:[2,97],98:[2,97],100:[2,97],101:[2,97],102:[2,97],106:[2,97],114:[2,97],122:[2,97],124:[2,97],125:[2,97],128:[2,97],129:[2,97],130:[2,97],131:[2,97],132:[2,97],133:[2,97]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],37:[2,74],46:[2,74],51:[2,74],54:[2,74],63:[2,74],64:[2,74],65:[2,74],68:[2,74],69:[2,74],70:[2,74],71:[2,74],74:[2,74],76:[2,74],80:[2,74],81:[2,74],82:[2,74],87:[2,74],89:[2,74],98:[2,74],100:[2,74],101:[2,74],102:[2,74],106:[2,74],114:[2,74],122:[2,74],124:[2,74],125:[2,74],126:[2,74],127:[2,74],128:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],37:[2,75],46:[2,75],51:[2,75],54:[2,75],63:[2,75],64:[2,75],65:[2,75],68:[2,75],69:[2,75],70:[2,75],71:[2,75],74:[2,75],76:[2,75],80:[2,75],81:[2,75],82:[2,75],87:[2,75],89:[2,75],98:[2,75],100:[2,75],101:[2,75],102:[2,75],106:[2,75],114:[2,75],122:[2,75],124:[2,75],125:[2,75],126:[2,75],127:[2,75],128:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],37:[2,76],46:[2,76],51:[2,76],54:[2,76],63:[2,76],64:[2,76],65:[2,76],68:[2,76],69:[2,76],70:[2,76],71:[2,76],74:[2,76],76:[2,76],80:[2,76],81:[2,76],82:[2,76],87:[2,76],89:[2,76],98:[2,76],100:[2,76],101:[2,76],102:[2,76],106:[2,76],114:[2,76],122:[2,76],124:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76]},{54:[1,188],69:[1,235],88:236,89:[1,187],99:84,100:[1,62],102:[1,63],105:85,106:[1,65],107:66,122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{8:237,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{13:[2,110],28:[2,110],30:[2,110],31:[2,110],33:[2,110],34:[2,110],35:[2,110],42:[2,110],43:[2,110],44:[2,110],48:[2,110],49:[2,110],69:[2,110],72:[2,110],75:[2,110],79:[2,110],84:[2,110],85:[2,110],86:[2,110],92:[2,110],96:[2,110],97:[2,110],100:[2,110],102:[2,110],104:[2,110],106:[2,110],115:[2,110],121:[2,110],123:[2,110],124:[2,110],125:[2,110],126:[2,110],127:[2,110]},{13:[2,111],28:[2,111],30:[2,111],31:[2,111],33:[2,111],34:[2,111],35:[2,111],42:[2,111],43:[2,111],44:[2,111],48:[2,111],49:[2,111],69:[2,111],72:[2,111],75:[2,111],79:[2,111],84:[2,111],85:[2,111],86:[2,111],92:[2,111],96:[2,111],97:[2,111],100:[2,111],102:[2,111],104:[2,111],106:[2,111],115:[2,111],121:[2,111],123:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],37:[2,81],46:[2,81],51:[2,81],54:[2,81],63:[2,81],64:[2,81],65:[2,81],68:[2,81],69:[2,81],70:[2,81],71:[2,81],74:[2,81],76:[2,81],80:[2,81],81:[2,81],82:[2,81],87:[2,81],89:[2,81],98:[2,81],100:[2,81],101:[2,81],102:[2,81],106:[2,81],114:[2,81],122:[2,81],124:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81]},{8:238,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{1:[2,82],6:[2,82],25:[2,82],26:[2,82],37:[2,82],46:[2,82],51:[2,82],54:[2,82],63:[2,82],64:[2,82],65:[2,82],68:[2,82],69:[2,82],70:[2,82],71:[2,82],74:[2,82],76:[2,82],80:[2,82],81:[2,82],82:[2,82],87:[2,82],89:[2,82],98:[2,82],100:[2,82],101:[2,82],102:[2,82],106:[2,82],114:[2,82],122:[2,82],124:[2,82],125:[2,82],126:[2,82],127:[2,82],128:[2,82],129:[2,82],130:[2,82],131:[2,82],132:[2,82],133:[2,82],134:[2,82]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],46:[2,98],51:[2,98],54:[2,98],63:[2,98],64:[2,98],65:[2,98],68:[2,98],69:[2,98],70:[2,98],71:[2,98],74:[2,98],80:[2,98],81:[2,98],82:[2,98],87:[2,98],89:[2,98],98:[2,98],100:[2,98],101:[2,98],102:[2,98],106:[2,98],114:[2,98],122:[2,98],124:[2,98],125:[2,98],128:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],46:[2,33],51:[2,33],54:[2,33],69:[2,33],74:[2,33],82:[2,33],87:[2,33],89:[2,33],98:[2,33],99:84,100:[2,33],101:[2,33],102:[2,33],105:85,106:[2,33],107:66,114:[2,33],122:[2,33],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{8:239,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{1:[2,103],6:[2,103],25:[2,103],26:[2,103],46:[2,103],51:[2,103],54:[2,103],63:[2,103],64:[2,103],65:[2,103],68:[2,103],69:[2,103],70:[2,103],71:[2,103],74:[2,103],80:[2,103],81:[2,103],82:[2,103],87:[2,103],89:[2,103],98:[2,103],100:[2,103],101:[2,103],102:[2,103],106:[2,103],114:[2,103],122:[2,103],124:[2,103],125:[2,103],128:[2,103],129:[2,103],130:[2,103],131:[2,103],132:[2,103],133:[2,103]},{6:[2,49],25:[2,49],50:240,51:[1,223],82:[2,49]},{6:[2,121],25:[2,121],26:[2,121],51:[2,121],54:[1,241],82:[2,121],87:[2,121],99:84,100:[1,62],102:[1,63],105:85,106:[1,65],107:66,122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{47:242,48:[1,57],49:[1,58]},{27:108,28:[1,70],41:109,52:243,53:107,55:110,56:111,72:[1,67],85:[1,112],86:[1,113]},{46:[2,55],51:[2,55]},{8:244,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],46:[2,191],51:[2,191],54:[2,191],69:[2,191],74:[2,191],82:[2,191],87:[2,191],89:[2,191],98:[2,191],99:84,100:[2,191],101:[2,191],102:[2,191],105:85,106:[2,191],107:66,114:[2,191],122:[2,191],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{8:245,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],46:[2,193],51:[2,193],54:[2,193],69:[2,193],74:[2,193],82:[2,193],87:[2,193],89:[2,193],98:[2,193],99:84,100:[2,193],101:[2,193],102:[2,193],105:85,106:[2,193],107:66,114:[2,193],122:[2,193],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{8:246,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],46:[2,172],51:[2,172],54:[2,172],69:[2,172],74:[2,172],82:[2,172],87:[2,172],89:[2,172],98:[2,172],100:[2,172],101:[2,172],102:[2,172],106:[2,172],114:[2,172],117:[2,172],122:[2,172],124:[2,172],125:[2,172],128:[2,172],129:[2,172],130:[2,172],131:[2,172],132:[2,172],133:[2,172]},{1:[2,126],6:[2,126],25:[2,126],26:[2,126],46:[2,126],51:[2,126],54:[2,126],69:[2,126],74:[2,126],82:[2,126],87:[2,126],89:[2,126],94:[1,247],98:[2,126],100:[2,126],101:[2,126],102:[2,126],106:[2,126],114:[2,126],122:[2,126],124:[2,126],125:[2,126],128:[2,126],129:[2,126],130:[2,126],131:[2,126],132:[2,126],133:[2,126]},{5:248,25:[1,5]},{27:249,28:[1,70]},{116:250,118:212,119:[1,213]},{26:[1,251],117:[1,252],118:253,119:[1,213]},{26:[2,166],117:[2,166],119:[2,166]},{8:255,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],91:254,92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{1:[2,91],5:256,6:[2,91],25:[1,5],26:[2,91],46:[2,91],51:[2,91],54:[2,91],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:96,68:[1,97],69:[2,91],70:[1,98],71:[1,99],74:[2,91],77:89,80:[1,91],81:[2,101],82:[2,91],87:[2,91],89:[2,91],98:[2,91],100:[2,91],101:[2,91],102:[2,91],106:[2,91],114:[2,91],122:[2,91],124:[2,91],125:[2,91],128:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],68:[2,66],69:[2,66],70:[2,66],71:[2,66],74:[2,66],80:[2,66],81:[2,66],82:[2,66],87:[2,66],89:[2,66],98:[2,66],100:[2,66],101:[2,66],102:[2,66],106:[2,66],114:[2,66],122:[2,66],124:[2,66],125:[2,66],128:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66]},{1:[2,94],6:[2,94],25:[2,94],26:[2,94],46:[2,94],51:[2,94],54:[2,94],69:[2,94],74:[2,94],82:[2,94],87:[2,94],89:[2,94],98:[2,94],100:[2,94],101:[2,94],102:[2,94],106:[2,94],114:[2,94],122:[2,94],124:[2,94],125:[2,94],128:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94]},{14:257,15:121,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:122,41:60,55:47,56:48,58:215,60:25,61:26,62:27,72:[1,67],79:[1,28],84:[1,55],85:[1,56],86:[1,54],97:[1,53]},{1:[2,131],6:[2,131],25:[2,131],26:[2,131],46:[2,131],51:[2,131],54:[2,131],63:[2,131],64:[2,131],65:[2,131],68:[2,131],69:[2,131],70:[2,131],71:[2,131],74:[2,131],80:[2,131],81:[2,131],82:[2,131],87:[2,131],89:[2,131],98:[2,131],100:[2,131],101:[2,131],102:[2,131],106:[2,131],114:[2,131],122:[2,131],124:[2,131],125:[2,131],128:[2,131],129:[2,131],130:[2,131],131:[2,131],132:[2,131],133:[2,131]},{6:[1,71],26:[1,258]},{8:259,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{6:[2,61],13:[2,111],25:[2,61],28:[2,111],30:[2,111],31:[2,111],33:[2,111],34:[2,111],35:[2,111],42:[2,111],43:[2,111],44:[2,111],48:[2,111],49:[2,111],51:[2,61],72:[2,111],75:[2,111],79:[2,111],84:[2,111],85:[2,111],86:[2,111],87:[2,61],92:[2,111],96:[2,111],97:[2,111],100:[2,111],102:[2,111],104:[2,111],106:[2,111],115:[2,111],121:[2,111],123:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111]},{6:[1,261],25:[1,262],87:[1,260]},{6:[2,50],8:197,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[2,50],26:[2,50],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:146,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],82:[2,50],84:[1,55],85:[1,56],86:[1,54],87:[2,50],90:263,92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{6:[2,49],25:[2,49],26:[2,49],50:264,51:[1,223]},{1:[2,170],6:[2,170],25:[2,170],26:[2,170],46:[2,170],51:[2,170],54:[2,170],69:[2,170],74:[2,170],82:[2,170],87:[2,170],89:[2,170],98:[2,170],100:[2,170],101:[2,170],102:[2,170],106:[2,170],114:[2,170],117:[2,170],122:[2,170],124:[2,170],125:[2,170],128:[2,170],129:[2,170],130:[2,170],131:[2,170],132:[2,170],133:[2,170]},{8:265,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:266,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{112:[2,149],113:[2,149]},{27:157,28:[1,70],55:158,56:159,72:[1,67],86:[1,113],111:267},{1:[2,155],6:[2,155],25:[2,155],26:[2,155],46:[2,155],51:[2,155],54:[2,155],69:[2,155],74:[2,155],82:[2,155],87:[2,155],89:[2,155],98:[2,155],99:84,100:[2,155],101:[1,268],102:[2,155],105:85,106:[2,155],107:66,114:[1,269],122:[2,155],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],46:[2,156],51:[2,156],54:[2,156],69:[2,156],74:[2,156],82:[2,156],87:[2,156],89:[2,156],98:[2,156],99:84,100:[2,156],101:[1,270],102:[2,156],105:85,106:[2,156],107:66,114:[2,156],122:[2,156],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{6:[1,272],25:[1,273],74:[1,271]},{6:[2,50],12:166,25:[2,50],26:[2,50],27:167,28:[1,70],29:168,30:[1,68],31:[1,69],38:274,39:165,41:169,43:[1,46],74:[2,50],85:[1,112]},{8:275,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,276],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],37:[2,80],46:[2,80],51:[2,80],54:[2,80],63:[2,80],64:[2,80],65:[2,80],68:[2,80],69:[2,80],70:[2,80],71:[2,80],74:[2,80],76:[2,80],80:[2,80],81:[2,80],82:[2,80],87:[2,80],89:[2,80],98:[2,80],100:[2,80],101:[2,80],102:[2,80],106:[2,80],114:[2,80],122:[2,80],124:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80]},{8:277,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,69:[1,278],72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{69:[1,279],99:84,100:[1,62],102:[1,63],105:85,106:[1,65],107:66,122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{69:[1,235],99:84,100:[1,62],102:[1,63],105:85,106:[1,65],107:66,122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{26:[1,280],99:84,100:[1,62],102:[1,63],105:85,106:[1,65],107:66,122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{6:[1,261],25:[1,262],82:[1,281]},{6:[2,61],25:[2,61],26:[2,61],51:[2,61],82:[2,61],87:[2,61]},{5:282,25:[1,5]},{46:[2,53],51:[2,53]},{46:[2,56],51:[2,56],99:84,100:[1,62],102:[1,63],105:85,106:[1,65],107:66,122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{26:[1,283],99:84,100:[1,62],102:[1,63],105:85,106:[1,65],107:66,122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{5:284,25:[1,5],99:84,100:[1,62],102:[1,63],105:85,106:[1,65],107:66,122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{5:285,25:[1,5]},{1:[2,127],6:[2,127],25:[2,127],26:[2,127],46:[2,127],51:[2,127],54:[2,127],69:[2,127],74:[2,127],82:[2,127],87:[2,127],89:[2,127],98:[2,127],100:[2,127],101:[2,127],102:[2,127],106:[2,127],114:[2,127],122:[2,127],124:[2,127],125:[2,127],128:[2,127],129:[2,127],130:[2,127],131:[2,127],132:[2,127],133:[2,127]},{5:286,25:[1,5]},{26:[1,287],117:[1,288],118:253,119:[1,213]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],46:[2,164],51:[2,164],54:[2,164],69:[2,164],74:[2,164],82:[2,164],87:[2,164],89:[2,164],98:[2,164],100:[2,164],101:[2,164],102:[2,164],106:[2,164],114:[2,164],122:[2,164],124:[2,164],125:[2,164],128:[2,164],129:[2,164],130:[2,164],131:[2,164],132:[2,164],133:[2,164]},{5:289,25:[1,5]},{26:[2,167],117:[2,167],119:[2,167]},{5:290,25:[1,5],51:[1,291]},{25:[2,123],51:[2,123],99:84,100:[1,62],102:[1,63],105:85,106:[1,65],107:66,122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{1:[2,92],6:[2,92],25:[2,92],26:[2,92],46:[2,92],51:[2,92],54:[2,92],69:[2,92],74:[2,92],82:[2,92],87:[2,92],89:[2,92],98:[2,92],100:[2,92],101:[2,92],102:[2,92],106:[2,92],114:[2,92],122:[2,92],124:[2,92],125:[2,92],128:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92]},{1:[2,95],5:292,6:[2,95],25:[1,5],26:[2,95],46:[2,95],51:[2,95],54:[2,95],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:96,68:[1,97],69:[2,95],70:[1,98],71:[1,99],74:[2,95],77:89,80:[1,91],81:[2,101],82:[2,95],87:[2,95],89:[2,95],98:[2,95],100:[2,95],101:[2,95],102:[2,95],106:[2,95],114:[2,95],122:[2,95],124:[2,95],125:[2,95],128:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95]},{98:[1,293]},{87:[1,294],99:84,100:[1,62],102:[1,63],105:85,106:[1,65],107:66,122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],37:[2,109],46:[2,109],51:[2,109],54:[2,109],63:[2,109],64:[2,109],65:[2,109],68:[2,109],69:[2,109],70:[2,109],71:[2,109],74:[2,109],80:[2,109],81:[2,109],82:[2,109],87:[2,109],89:[2,109],98:[2,109],100:[2,109],101:[2,109],102:[2,109],106:[2,109],112:[2,109],113:[2,109],114:[2,109],122:[2,109],124:[2,109],125:[2,109],128:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109]},{8:197,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:146,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],90:295,92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:197,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,145],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:146,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],83:296,84:[1,55],85:[1,56],86:[1,54],90:144,92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{6:[2,117],25:[2,117],26:[2,117],51:[2,117],82:[2,117],87:[2,117]},{6:[1,261],25:[1,262],26:[1,297]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],46:[2,134],51:[2,134],54:[2,134],69:[2,134],74:[2,134],82:[2,134],87:[2,134],89:[2,134],98:[2,134],99:84,100:[1,62],101:[2,134],102:[1,63],105:85,106:[1,65],107:66,114:[2,134],122:[2,134],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],46:[2,136],51:[2,136],54:[2,136],69:[2,136],74:[2,136],82:[2,136],87:[2,136],89:[2,136],98:[2,136],99:84,100:[1,62],101:[2,136],102:[1,63],105:85,106:[1,65],107:66,114:[2,136],122:[2,136],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{112:[2,154],113:[2,154]},{8:298,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:299,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:300,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{1:[2,83],6:[2,83],25:[2,83],26:[2,83],37:[2,83],46:[2,83],51:[2,83],54:[2,83],63:[2,83],64:[2,83],65:[2,83],68:[2,83],69:[2,83],70:[2,83],71:[2,83],74:[2,83],80:[2,83],81:[2,83],82:[2,83],87:[2,83],89:[2,83],98:[2,83],100:[2,83],101:[2,83],102:[2,83],106:[2,83],112:[2,83],113:[2,83],114:[2,83],122:[2,83],124:[2,83],125:[2,83],128:[2,83],129:[2,83],130:[2,83],131:[2,83],132:[2,83],133:[2,83]},{12:166,27:167,28:[1,70],29:168,30:[1,68],31:[1,69],38:301,39:165,41:169,43:[1,46],85:[1,112]},{6:[2,84],12:166,25:[2,84],26:[2,84],27:167,28:[1,70],29:168,30:[1,68],31:[1,69],38:164,39:165,41:169,43:[1,46],51:[2,84],73:302,85:[1,112]},{6:[2,86],25:[2,86],26:[2,86],51:[2,86],74:[2,86]},{6:[2,36],25:[2,36],26:[2,36],51:[2,36],74:[2,36],99:84,100:[1,62],102:[1,63],105:85,106:[1,65],107:66,122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{8:303,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{69:[1,304],99:84,100:[1,62],102:[1,63],105:85,106:[1,65],107:66,122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{1:[2,114],6:[2,114],25:[2,114],26:[2,114],37:[2,114],46:[2,114],51:[2,114],54:[2,114],63:[2,114],64:[2,114],65:[2,114],68:[2,114],69:[2,114],70:[2,114],71:[2,114],74:[2,114],76:[2,114],80:[2,114],81:[2,114],82:[2,114],87:[2,114],89:[2,114],98:[2,114],100:[2,114],101:[2,114],102:[2,114],106:[2,114],114:[2,114],122:[2,114],124:[2,114],125:[2,114],126:[2,114],127:[2,114],128:[2,114],129:[2,114],130:[2,114],131:[2,114],132:[2,114],133:[2,114],134:[2,114]},{1:[2,115],6:[2,115],25:[2,115],26:[2,115],37:[2,115],46:[2,115],51:[2,115],54:[2,115],63:[2,115],64:[2,115],65:[2,115],68:[2,115],69:[2,115],70:[2,115],71:[2,115],74:[2,115],76:[2,115],80:[2,115],81:[2,115],82:[2,115],87:[2,115],89:[2,115],98:[2,115],100:[2,115],101:[2,115],102:[2,115],106:[2,115],114:[2,115],122:[2,115],124:[2,115],125:[2,115],126:[2,115],127:[2,115],128:[2,115],129:[2,115],130:[2,115],131:[2,115],132:[2,115],133:[2,115],134:[2,115]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],46:[2,34],51:[2,34],54:[2,34],69:[2,34],74:[2,34],82:[2,34],87:[2,34],89:[2,34],98:[2,34],100:[2,34],101:[2,34],102:[2,34],106:[2,34],114:[2,34],122:[2,34],124:[2,34],125:[2,34],128:[2,34],129:[2,34],130:[2,34],131:[2,34],132:[2,34],133:[2,34]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],46:[2,104],51:[2,104],54:[2,104],63:[2,104],64:[2,104],65:[2,104],68:[2,104],69:[2,104],70:[2,104],71:[2,104],74:[2,104],80:[2,104],81:[2,104],82:[2,104],87:[2,104],89:[2,104],98:[2,104],100:[2,104],101:[2,104],102:[2,104],106:[2,104],114:[2,104],122:[2,104],124:[2,104],125:[2,104],128:[2,104],129:[2,104],130:[2,104],131:[2,104],132:[2,104],133:[2,104]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],46:[2,45],51:[2,45],54:[2,45],69:[2,45],74:[2,45],82:[2,45],87:[2,45],89:[2,45],98:[2,45],100:[2,45],101:[2,45],102:[2,45],106:[2,45],114:[2,45],122:[2,45],124:[2,45],125:[2,45],128:[2,45],129:[2,45],130:[2,45],131:[2,45],132:[2,45],133:[2,45]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],46:[2,192],51:[2,192],54:[2,192],69:[2,192],74:[2,192],82:[2,192],87:[2,192],89:[2,192],98:[2,192],100:[2,192],101:[2,192],102:[2,192],106:[2,192],114:[2,192],122:[2,192],124:[2,192],125:[2,192],128:[2,192],129:[2,192],130:[2,192],131:[2,192],132:[2,192],133:[2,192]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],46:[2,171],51:[2,171],54:[2,171],69:[2,171],74:[2,171],82:[2,171],87:[2,171],89:[2,171],98:[2,171],100:[2,171],101:[2,171],102:[2,171],106:[2,171],114:[2,171],117:[2,171],122:[2,171],124:[2,171],125:[2,171],128:[2,171],129:[2,171],130:[2,171],131:[2,171],132:[2,171],133:[2,171]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],46:[2,128],51:[2,128],54:[2,128],69:[2,128],74:[2,128],82:[2,128],87:[2,128],89:[2,128],98:[2,128],100:[2,128],101:[2,128],102:[2,128],106:[2,128],114:[2,128],122:[2,128],124:[2,128],125:[2,128],128:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],46:[2,129],51:[2,129],54:[2,129],69:[2,129],74:[2,129],82:[2,129],87:[2,129],89:[2,129],94:[2,129],98:[2,129],100:[2,129],101:[2,129],102:[2,129],106:[2,129],114:[2,129],122:[2,129],124:[2,129],125:[2,129],128:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],46:[2,162],51:[2,162],54:[2,162],69:[2,162],74:[2,162],82:[2,162],87:[2,162],89:[2,162],98:[2,162],100:[2,162],101:[2,162],102:[2,162],106:[2,162],114:[2,162],122:[2,162],124:[2,162],125:[2,162],128:[2,162],129:[2,162],130:[2,162],131:[2,162],132:[2,162],133:[2,162]},{5:305,25:[1,5]},{26:[1,306]},{6:[1,307],26:[2,168],117:[2,168],119:[2,168]},{8:308,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{1:[2,96],6:[2,96],25:[2,96],26:[2,96],46:[2,96],51:[2,96],54:[2,96],69:[2,96],74:[2,96],82:[2,96],87:[2,96],89:[2,96],98:[2,96],100:[2,96],101:[2,96],102:[2,96],106:[2,96],114:[2,96],122:[2,96],124:[2,96],125:[2,96],128:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],46:[2,132],51:[2,132],54:[2,132],63:[2,132],64:[2,132],65:[2,132],68:[2,132],69:[2,132],70:[2,132],71:[2,132],74:[2,132],80:[2,132],81:[2,132],82:[2,132],87:[2,132],89:[2,132],98:[2,132],100:[2,132],101:[2,132],102:[2,132],106:[2,132],114:[2,132],122:[2,132],124:[2,132],125:[2,132],128:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132]},{1:[2,112],6:[2,112],25:[2,112],26:[2,112],46:[2,112],51:[2,112],54:[2,112],63:[2,112],64:[2,112],65:[2,112],68:[2,112],69:[2,112],70:[2,112],71:[2,112],74:[2,112],80:[2,112],81:[2,112],82:[2,112],87:[2,112],89:[2,112],98:[2,112],100:[2,112],101:[2,112],102:[2,112],106:[2,112],114:[2,112],122:[2,112],124:[2,112],125:[2,112],128:[2,112],129:[2,112],130:[2,112],131:[2,112],132:[2,112],133:[2,112]},{6:[2,118],25:[2,118],26:[2,118],51:[2,118],82:[2,118],87:[2,118]},{6:[2,49],25:[2,49],26:[2,49],50:309,51:[1,223]},{6:[2,119],25:[2,119],26:[2,119],51:[2,119],82:[2,119],87:[2,119]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],46:[2,157],51:[2,157],54:[2,157],69:[2,157],74:[2,157],82:[2,157],87:[2,157],89:[2,157],98:[2,157],99:84,100:[2,157],101:[2,157],102:[2,157],105:85,106:[2,157],107:66,114:[1,310],122:[2,157],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],46:[2,159],51:[2,159],54:[2,159],69:[2,159],74:[2,159],82:[2,159],87:[2,159],89:[2,159],98:[2,159],99:84,100:[2,159],101:[1,311],102:[2,159],105:85,106:[2,159],107:66,114:[2,159],122:[2,159],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],46:[2,158],51:[2,158],54:[2,158],69:[2,158],74:[2,158],82:[2,158],87:[2,158],89:[2,158],98:[2,158],99:84,100:[2,158],101:[2,158],102:[2,158],105:85,106:[2,158],107:66,114:[2,158],122:[2,158],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{6:[2,87],25:[2,87],26:[2,87],51:[2,87],74:[2,87]},{6:[2,49],25:[2,49],26:[2,49],50:312,51:[1,233]},{26:[1,313],99:84,100:[1,62],102:[1,63],105:85,106:[1,65],107:66,122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],37:[2,113],46:[2,113],51:[2,113],54:[2,113],63:[2,113],64:[2,113],65:[2,113],68:[2,113],69:[2,113],70:[2,113],71:[2,113],74:[2,113],76:[2,113],80:[2,113],81:[2,113],82:[2,113],87:[2,113],89:[2,113],98:[2,113],100:[2,113],101:[2,113],102:[2,113],106:[2,113],114:[2,113],122:[2,113],124:[2,113],125:[2,113],126:[2,113],127:[2,113],128:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113]},{26:[1,314]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],46:[2,165],51:[2,165],54:[2,165],69:[2,165],74:[2,165],82:[2,165],87:[2,165],89:[2,165],98:[2,165],100:[2,165],101:[2,165],102:[2,165],106:[2,165],114:[2,165],122:[2,165],124:[2,165],125:[2,165],128:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165]},{26:[2,169],117:[2,169],119:[2,169]},{25:[2,124],51:[2,124],99:84,100:[1,62],102:[1,63],105:85,106:[1,65],107:66,122:[1,83],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{6:[1,261],25:[1,262],26:[1,315]},{8:316,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{8:317,9:116,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,72:[1,67],75:[1,43],79:[1,28],84:[1,55],85:[1,56],86:[1,54],92:[1,38],96:[1,45],97:[1,53],99:39,100:[1,62],102:[1,63],103:40,104:[1,64],105:41,106:[1,65],107:66,115:[1,42],120:37,121:[1,61],123:[1,31],124:[1,32],125:[1,33],126:[1,34],127:[1,35]},{6:[1,272],25:[1,273],26:[1,318]},{6:[2,37],25:[2,37],26:[2,37],51:[2,37],74:[2,37]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],46:[2,163],51:[2,163],54:[2,163],69:[2,163],74:[2,163],82:[2,163],87:[2,163],89:[2,163],98:[2,163],100:[2,163],101:[2,163],102:[2,163],106:[2,163],114:[2,163],122:[2,163],124:[2,163],125:[2,163],128:[2,163],129:[2,163],130:[2,163],131:[2,163],132:[2,163],133:[2,163]},{6:[2,120],25:[2,120],26:[2,120],51:[2,120],82:[2,120],87:[2,120]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],46:[2,160],51:[2,160],54:[2,160],69:[2,160],74:[2,160],82:[2,160],87:[2,160],89:[2,160],98:[2,160],99:84,100:[2,160],101:[2,160],102:[2,160],105:85,106:[2,160],107:66,114:[2,160],122:[2,160],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],46:[2,161],51:[2,161],54:[2,161],69:[2,161],74:[2,161],82:[2,161],87:[2,161],89:[2,161],98:[2,161],99:84,100:[2,161],101:[2,161],102:[2,161],105:85,106:[2,161],107:66,114:[2,161],122:[2,161],124:[1,77],125:[1,76],128:[1,75],129:[1,78],130:[1,79],131:[1,80],132:[1,81],133:[1,82]},{6:[2,88],25:[2,88],26:[2,88],51:[2,88],74:[2,88]}],defaultActions:{57:[2,47],58:[2,48],72:[2,3],91:[2,102]},parseError:function d(a,b){throw new Error(a)},parse:function e(a){var b=this,c=[0],d=[null],e=this.table,f="",g=0,h=0,i=0,j=2,k=1;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.yy.parseError==="function"&&(this.parseError=this.yy.parseError);function l(a){c.length=c.length-2*a,d.length=d.length-a}function m(){var a;a=b.lexer.lex()||1,typeof a!=="number"&&(a=b.symbols_[a]||a);return a}var n,o,p,q,r,s,t={},u,v,w,x;while(true){p=c[c.length-1],this.defaultActions[p]?q=this.defaultActions[p]:(n==null&&(n=m()),q=e[p]&&e[p][n]);if(typeof q==="undefined"||!q.length||!q[0]){if(!i){x=[];for(u in e[p])this.terminals_[u]&&u>2&&x.push("'"+this.terminals_[u]+"'");var y="";this.lexer.showPosition?y="Parse error on line "+(g+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+x.join(", "):y="Parse error on line "+(g+1)+": Unexpected "+(n==1?"end of input":"'"+(this.terminals_[n]||n)+"'"),this.parseError(y,{text:this.lexer.match,token:this.terminals_[n]||n,line:this.lexer.yylineno,expected:x})}if(i==3){if(n==k)throw new Error(y||"Parsing halted.");h=this.lexer.yyleng,f=this.lexer.yytext,g=this.lexer.yylineno,n=m()}while(1){if(j.toString()in e[p])break;if(p==0)throw new Error(y||"Parsing halted.");l(1),p=c[c.length-1]}o=n,n=j,p=c[c.length-1],q=e[p]&&e[p][j],i=3}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+p+", token: "+n);switch(q[0]){case 1:c.push(n),d.push(this.lexer.yytext),c.push(q[1]),n=null,o?(n=o,o=null):(h=this.lexer.yyleng,f=this.lexer.yytext,g=this.lexer.yylineno,i>0&&i--);break;case 2:v=this.productions_[q[1]][1],t.$=d[d.length-v],s=this.performAction.call(t,f,h,g,this.yy,q[1],d);if(typeof s!=="undefined")return s;v&&(c=c.slice(0,-1*v*2),d=d.slice(0,-1*v)),c.push(this.productions_[q[1]][0]),d.push(t.$),w=e[c[c.length-2]][c[c.length-1]],c.push(w);break;case 3:return true}}return true}};return a}();typeof require!=="undefined"&&(a.parser=b,a.parse=function(){return b.parse.apply(b,arguments)},a.main=function c(b){if(!b[1])throw new Error("Usage: "+b[0]+" FILE");if(typeof process!=="undefined")var c=require("fs").readFileSync(require("path").join(process.cwd(),b[1]),"utf8");else{var d=require("file").path(require("file").cwd());var c=d.join(b[1]).read({charset:"utf-8"})}return a.parser.parse(c)},typeof module!=="undefined"&&require.main===module&&a.main(typeof process!=="undefined"?process.argv.slice(1):require("system").args))},require["./scope"]=new function(){var a=this;(function(){var b,c,d,e;e=require("./helpers"),c=e.extend,d=e.last,a.Scope=b=function(){a.root=null;function a(b,c,d){this.parent=b,this.expressions=c,this.method=d,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(a.root=this)}a.prototype.add=function(a,b,c){var d;if(this.shared&&!c)return this.parent.add(a,b,c);return typeof (d=this.positions[a])==="number"?this.variables[d].type=b:this.positions[a]=this.variables.push({name:a,type:b})-1},a.prototype.find=function(a,b){if(this.check(a,b))return true;this.add(a,"var");return false},a.prototype.parameter=function(a){if(!(this.shared&&this.parent.check(a,true)))return this.add(a,"param")},a.prototype.check=function(a,b){var c,d;c=!!this.type(a);if(c||b)return c;return!!((d=this.parent)!=null?d.check(a):void 0)},a.prototype.temporary=function(a,b){return a.length>1?"_"+a+(b>1?b:""):"_"+(b+parseInt(a,36)).toString(36).replace(/\d/g,"a")},a.prototype.type=function(a){var b,c,d,e;e=this.variables;for(c=0,d=e.length;c1&&a.level>=v?"("+b+")":b},a.prototype.compileRoot=function(a){var b;a.indent=this.tab=a.bare?"":O,a.scope=new K(null,this,null),a.level=y,b=this.compileWithDeclarations(a),b=b.replace(Q,"");return a.bare?b:"(function() {\n"+b+"\n}).call(this);\n"},a.prototype.compileWithDeclarations=function(a){var b,c,d,e,f,g,h,i;b=e="",i=this.expressions;for(d=0,h=i.length;d"+this.equals+" "+this.toVar+")",g=f?f.compile(a):"1",d=f?""+c+" += "+g:""+e+" += "+g+" : "+c+" -= "+g+")";return""+h+"; "+b+"; "+d},a.prototype.compileSimple=function(a){var b,c,d,e,f;f=[+this.fromNum,+this.toNum],b=f[0],e=f[1],c=Y(a,"index"),d=Y(a,"step"),d&&(d=""+c+" += "+d.compile(a));return b<=e?""+c+" = "+b+"; "+c+" <"+this.equals+" "+e+"; "+(d||""+c+"++"):""+c+" = "+b+"; "+c+" >"+this.equals+" "+e+"; "+(d||""+c+"--")},a.prototype.compileArray=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;if(this.fromNum&&this.toNum&&Math.abs(this.fromNum-this.toNum)<=20){h=function(){n=[];for(var a=l=+this.fromNum,b=+this.toNum;l<=b?a<=b:a>=b;l<=b?a+=1:a-=1)n.push(a);return n}.call(this),this.exclusive&&h.pop();return"["+h.join(", ")+"]"}e=this.tab+O,d=a.scope.freeVariable("i"),i=a.scope.freeVariable("results"),g="\n"+e+i+" = [];",this.fromNum&&this.toNum?(a.index=d,b=this.compileSimple(a)):(j=""+d+" = "+this.from+(this.to!==this.toVar?", "+this.to:""),c=""+this.fromVar+" <= "+this.toVar+" ?",b="var "+j+"; "+c+" "+d+" <"+this.equals+" "+this.toVar+" : "+d+" >"+this.equals+" "+this.toVar+"; "+c+" "+d+" += 1 : "+d+" -= 1"),f="{ "+i+".push("+d+"); }\n"+e+"return "+i+";\n"+a.indent;return"(function() {"+g+"\n"+e+"for ("+b+")"+f+"}).call(this)"};return a}(),a.Slice=L=function(){bi(a,e),a.prototype.children=["range"];function a(b){this.range=b,a.__super__.constructor.call(this)}a.prototype.compileNode=function(a){var b,c,d,e,f,g;g=this.range,e=g.to,c=g.from,d=c&&c.compile(a,x)||"0",b=e&&e.compile(a,x),e&&!(!this.range.exclusive&&+b===-1)&&(f=", "+(this.range.exclusive?b:J.test(b)?(+b+1).toString():"("+b+" + 1) || 9e9"));return".slice("+d+(f||"")+")"};return a}(),a.Obj=C=function(){bi(a,e);function a(a,b){this.generated=b!=null?b:false,this.objects=this.properties=a||[]}a.prototype.children=["properties"],a.prototype.compileNode=function(a){var b,c,e,f,g,h,i,k;k=this.properties;if(!k.length)return this.front?"({})":"{}";c=a.indent+=O,g=this.lastNonComment(this.properties),k=function(){var h,l;l=[];for(b=0,h=k.length;b=0?"[\n"+a.indent+b+"\n"+this.tab+"]":"["+b+"]"},a.prototype.assigns=function(a){var b,c,d,e;e=this.objects;for(c=0,d=e.length;cy?"("+b+")":b};return a}(),a.Code=i=function(){bi(a,e);function a(a,b,c){this.params=a||[],this.body=b||new l,this.bound=c==="boundfunc",this.bound&&(this.context="this")}a.prototype.children=["params","body"],a.prototype.isStatement=function(){return!!this.ctor},a.prototype.jumps=B,a.prototype.compileNode=function(a){var b,e,f,g,h,i,j,k,l,m,n,o,p,r,s,u,v,w,x,y,A;a.scope=new K(a.scope,this.body,this),a.scope.shared=Y(a,"sharedScope"),a.indent+=O,delete a.bare,delete a.globals,o=[],e=[],x=this.params;for(r=0,u=x.length;r=t?"("+b+")":b},a.prototype.traverseChildren=function(b,c){if(b)return a.__super__.traverseChildren.call(this,b,c)};return a}(),a.Param=E=function(){bi(a,e);function a(a,b,c){this.name=a,this.value=b,this.splat=c}a.prototype.children=["name","value"],a.prototype.compile=function(a){return this.name.compile(a,v)},a.prototype.asReference=function(a){var b;if(this.reference)return this.reference;b=this.name,b["this"]?(b=b.properties[0].name,b.value.reserved&&(b=new z("_"+b.value))):b.isComplex()&&(b=new z(a.scope.freeVariable("arg"))),b=new U(b),this.splat&&(b=new M(b));return this.reference=b},a.prototype.isComplex=function(){return this.name.isComplex()};return a}(),a.Splat=M=function(){bi(a,e),a.prototype.children=["name"],a.prototype.isAssignable=W;function a(a){this.name=a.compile?a:new z(a)}a.prototype.assigns=function(a){return this.name.assigns(a)},a.prototype.compile=function(a){return this.index!=null?this.compileParam(a):this.name.compile(a)},a.compileSplattedArray=function(b,c,d){var e,f,g,h,i,j,k;i=-1;while((j=c[++i])&&!(j instanceof a))continue;if(i>=c.length)return"";if(c.length===1){g=c[0].compile(b,v);if(d)return g;return""+bf("slice")+".call("+g+")"}e=c.slice(i);for(h=0,k=e.length;hy||this.returns)d=a.scope.freeVariable("results"),e=""+this.tab+d+" = [];\n",b&&(b=G.wrap(d,b));this.guard&&(b=l.wrap([new q(this.guard,b)])),b="\n"+b.compile(a,y)+"\n"+this.tab}c=e+this.tab+("while ("+this.condition.compile(a,x)+") {"+b+"}"),this.returns&&(c+="\n"+this.tab+"return "+d+";");return c};return a}(),a.Op=D=function(){var a,b;bi(c,e);function c(b,c,d,e){if(b==="in")return new r(c,d);if(b==="do")return new f(c,c.params||[]);if(b==="new"){if(c instanceof f)return c.newInstance();c instanceof i&&c.bound&&(c=new F(c))}this.operator=a[b]||b,this.first=c,this.second=d,this.flip=!!e;return this}a={"==":"===","!=":"!==",of:"in"},b={"!==":"===","===":"!=="},c.prototype.children=["first","second"],c.prototype.isSimpleNumber=B,c.prototype.isUnary=function(){return!this.second},c.prototype.isChainable=function(){var a;return(a=this.operator)==="<"||a===">"||a===">="||a==="<="||a==="==="||a==="!=="},c.prototype.invert=function(){var a,d,e,f,g;if(this.isChainable()&&this.first.isChainable()){a=true,d=this;while(d&&d.operator)a&&(a=d.operator in b),d=d.first;if(!a)return(new F(this)).invert();d=this;while(d&&d.operator)d.invert=!d.invert,d.operator=b[d.operator],d=d.first;return this}if(f=b[this.operator]){this.operator=f,this.first.unwrap()instanceof c&&this.first.invert();return this}return this.second?(new F(this)).invert():this.operator==="!"&&(e=this.first.unwrap())instanceof c&&((g=e.operator)==="!"||g==="in"||g==="instanceof")?e:new c("!",this)},c.prototype.unfoldSoak=function(a){var b;return((b=this.operator)==="++"||b==="--"||b==="delete")&&be(a,this,"first")},c.prototype.compileNode=function(a){var b;if(this.isUnary())return this.compileUnary(a);if(this.isChainable()&&this.first.isChainable())return this.compileChain(a);if(this.operator==="?")return this.compileExistence(a);this.first.front=this.front,b=this.first.compile(a,w)+" "+this.operator+" "+this.second.compile(a,w);return a.level<=w?b:"("+b+")"},c.prototype.compileChain=function(a){var b,c,d,e;e=this.first.second.cache(a),this.first.second=e[0],d=e[1],c=this.first.compile(a,w),b=""+c+" "+(this.invert?"&&":"||")+" "+d.compile(a)+" "+this.operator+" "+this.second.compile(a,w);return"("+b+")"},c.prototype.compileExistence=function(a){var b,c;this.first.isComplex()?(c=a.scope.freeVariable("ref"),b=new F(new d(new z(c),this.first))):(b=this.first,c=b.compile(a));return(new k(b)).compile(a)+(" ? "+c+" : "+this.second.compile(a,v))},c.prototype.compileUnary=function(a){var b,d;d=[b=this.operator],(b==="new"||b==="typeof"||b==="delete"||(b==="+"||b==="-")&&this.first instanceof c&&this.first.operator===b)&&d.push(" "),d.push(this.first.compile(a,w)),this.flip&&d.reverse();return d.join("")},c.prototype.toString=function(a){return c.__super__.toString.call(this,a,this.constructor.name+" "+this.operator)};return c}(),a.In=r=function(){bi(a,e);function a(a,b){this.object=a,this.array=b}a.prototype.children=["object","array"],a.prototype.invert=A,a.prototype.compileNode=function(a){return this.array instanceof U&&this.array.isArray()?this.compileOrTest(a):this.compileLoopTest(a)},a.prototype.compileOrTest=function(a){var b,c,d,e,f,g,h,i,j;i=this.object.cache(a,w),g=i[0],f=i[1],j=this.negated?[" !== "," && "]:[" === "," || "],b=j[0],c=j[1],h=function(){var c,h,i;h=this.array.base.objects,i=[];for(d=0,c=h.length;d= 0");if(d===c)return b;b=d+", "+b;return a.level=u?"("+d+")":d},a.prototype.unfoldSoak=function(){return this.soak&&this};return a}(),G={wrap:function(a,c){if(c.isEmpty()||ba(c.expressions).jumps())return c;return c.push(new f(new U(new z(a),[new b(new z("push"))]),[c.pop()]))}},h={wrap:function(a,c,d){var e,g,h,j,k;if(a.jumps())return a;h=new i([],l.wrap([a])),e=[];if((j=a.contains(this.literalArgs))||a.contains(this.literalThis))k=new z(j?"apply":"call"),e=[new z("this")],j&&e.push(new z("arguments")),h=new U(h,[new b(k)]);h.noReturn=d,g=new f(h,e);return c?l.wrap([g]):g},literalArgs:function(a){return a instanceof z&&a.value==="arguments"&&!a.asKey},literalThis:function(a){return a instanceof z&&a.value==="this"&&!a.asKey||a instanceof i&&a.bound}},be=function(a,b,c){var d;if(d=b[c].unfoldSoak(a)){b[c]=d.body,d.body=new U(b);return d}},T={"extends":"function(child, parent) {\n for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor;\n child.__super__ = parent.prototype;\n return child;\n}",bind:"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }",indexOf:"Array.prototype.indexOf || function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === item) return i;\n }\n return -1;\n}",hasProp:"Object.prototype.hasOwnProperty",slice:"Array.prototype.slice"},y=1,x=2,v=3,u=4,w=5,t=6,O=" ",Q=/[ \t]+$/gm,o=/^[$A-Za-z_][$\w]*$/,J=/^[+-]?\d+$/,p=/^['"]/,bf=function(a){var b;b="__"+a,K.root.assign(b,T[a]);return b},bc=function(a,b){return a.replace(/\n/g,"$&"+b)}}).call(this)},require["./coffee-script"]=new function(){var exports=this;(function(){var Lexer,RESERVED,compile,fs,lexer,parser,path,_ref;fs=require("fs"),path=require("path"),_ref=require("./lexer"),Lexer=_ref.Lexer,RESERVED=_ref.RESERVED,parser=require("./parser").parser,require.extensions?require.extensions[".coffee"]=function(a,b){var c;c=compile(fs.readFileSync(b,"utf8"));return a._compile(c,b)}:require.registerExtension&&require.registerExtension(".coffee",function(a){return compile(a)}),exports.VERSION="1.0.0",exports.RESERVED=RESERVED,exports.helpers=require("./helpers"),exports.compile=compile=function(a,b){b==null&&(b={});try{return parser.parse(lexer.tokenize(a)).compile(b)}catch(c){b.fileName&&(c.message="In "+b.fileName+", "+c.message);throw c}},exports.tokens=function(a,b){return lexer.tokenize(a,b)},exports.nodes=function(a,b){return typeof a==="string"?parser.parse(lexer.tokenize(a,b)):parser.parse(a)},exports.run=function(a,b){var c;c=module;while(c.parent)c=c.parent;c.filename=fs.realpathSync(b.fileName||"."),c.moduleCache&&(c.moduleCache={});return path.extname(c.filename)!==".coffee"||require.extensions?c._compile(compile(a,b),c.filename):c._compile(a,c.filename)},exports.eval=function(code,options){var __dirname,__filename;__filename=options.fileName,__dirname=path.dirname(__filename);return eval(compile(code,options))},lexer=new Lexer,parser.lexer={lex:function(){var a,b;b=this.tokens[this.pos++]||[""],a=b[0],this.yytext=b[1],this.yylineno=b[2];return a},setInput:function(a){this.tokens=a;return this.pos=0},upcomingInput:function(){return""}},parser.yy=require("./nodes")}).call(this)},require["./browser"]=new function(){var exports=this;(function(){var CoffeeScript,runScripts;CoffeeScript=require("./coffee-script"),CoffeeScript.require=require,CoffeeScript.eval=function(code,options){return eval(CoffeeScript.compile(code,options))},CoffeeScript.run=function(a,b){b==null&&(b={}),b.bare=true;return Function(CoffeeScript.compile(a,b))()};typeof window=="undefined"||window===null||(CoffeeScript.load=function(a,b){var c;c=new(window.ActiveXObject||XMLHttpRequest)("Microsoft.XMLHTTP"),c.open("GET",a,true),"overrideMimeType"in c&&c.overrideMimeType("text/plain"),c.onreadystatechange=function(){if(c.readyState===4)return CoffeeScript.run(c.responseText,b)};return c.send(null)},runScripts=function(){var a,b,c,d;d=document.getElementsByTagName("script");for(b=0,c=d.length;b

    -
    
    +          
    Run

    @@ -109,7 +109,7 @@

    Latest Version: - 0.9.6 + 1.0.0

    @@ -747,67 +747,8 @@ alert("The Field: " + rest);;'>run

    - Loops - The only low-level loop that CoffeeScript provides is the while loop. The - main difference from JavaScript is that the while loop can be used - as an expression, returning an array containing the result of each iteration - through the loop. -

    -
    # Econ 101
    -if this.studyingEconomics
    -  buy()  while supply > demand
    -  sell() until supply > demand
    -
    -# Nursery Rhyme
    -num = 6
    -lyrics = while num -= 1
    -  num + " little monkeys, jumping on the bed.
    -    One fell out and bumped his head."
    -
    var lyrics, num;
    -if (this.studyingEconomics) {
    -  while (supply > demand) {
    -    buy();
    -  }
    -  while (!(supply > demand)) {
    -    sell();
    -  }
    -}
    -num = 6;
    -lyrics = (function() {
    -  var _results;
    -  _results = [];
    -  while (num -= 1) {
    -    _results.push(num + " little monkeys, jumping on the bed.    One fell out and bumped his head.");
    -  }
    -  return _results;
    -})();
    -
    load
    run: lyrics.join("\n")

    -

    - For readability, the until keyword is equivalent to while not, - and the loop keyword is equivalent to while true. -

    - -

    - - Comprehensions - Hopefully, the majority of your loops can be implemented with comprehensions + Loops and Comprehensions + Most of the loops you'll write in CoffeeScript will be comprehensions over arrays, objects, and ranges. Comprehensions replace (and compile into) for loops, with optional guard clauses and the value of the current array index. Unlike for loops, array comprehensions are expressions, and can be returned @@ -822,7 +763,7 @@ _ref = [' food = _ref[_i]; eat(food); } -

    load

    +
    load

    If you know the start and end of your loop, or would like to step through in fixed-size increments, you can use a range to specify the start and @@ -839,7 +780,7 @@ countdown = (function( } return _results; })(); -

    load
    load
    load
    load
    # Econ 101
    +if this.studyingEconomics
    +  buy()  while supply > demand
    +  sell() until supply > demand
    +
    +# Nursery Rhyme
    +num = 6
    +lyrics = while num -= 1
    +  num + " little monkeys, jumping on the bed.
    +    One fell out and bumped his head."
    +
    var lyrics, num;
    +if (this.studyingEconomics) {
    +  while (supply > demand) {
    +    buy();
    +  }
    +  while (!(supply > demand)) {
    +    sell();
    +  }
    +}
    +num = 6;
    +lyrics = (function() {
    +  var _results;
    +  _results = [];
    +  while (num -= 1) {
    +    _results.push(num + " little monkeys, jumping on the bed.    One fell out and bumped his head.");
    +  }
    +  return _results;
    +})();
    +
    load
    run: lyrics.join("\n")

    +

    + For readability, the until keyword is equivalent to while not, + and the loop keyword is equivalent to while true. +

    When using a JavaScript loop to generate functions, it's common to insert a closure wrapper in order to ensure that loop variables are closed over, and all the generated functions don't just share the final values. CoffeeScript - provides the do keyword, which immediately invokes a passed function. + provides the do keyword, which immediately invokes a passed function, + forwarding any arguments.

    for fileName in list
    -  do (fileName) ->
    +  do (fileName) ->
         fs.readFile fileName, (err, contents) ->
           compile fileName, contents.toString()
     
    var fileName, _fn, _i, _len;
    @@ -1409,6 +1407,7 @@ theSwitch = 0
     
     [theBait, theSwitch] = [theSwitch, theBait]
     
    +
     
    var theBait, theSwitch, _ref;
     theBait = 1000;
     theSwitch = 0;
    @@ -1711,16 +1710,16 @@ html = '<
           are preserved in the generated code.
         

    ###
    -CoffeeScript Compiler v0.9.6
    +CoffeeScript Compiler v1.0.0
     Released under the MIT License
     ###
     
     
     
    /*
    -CoffeeScript Compiler v0.9.6
    +CoffeeScript Compiler v1.0.0
     Released under the MIT License
     */
    -
    load

    +
    load

    @@ -1887,7 +1886,10 @@ task('build:parserCoco - — a CoffeeScript dialect that aims to be more radical and practical. + — An avant-garde dialect of CoffeeScript that frequently pioneers + features and optimizations, some of which CoffeeScript later adopts. + Check out the list of additions + to the language.

  • yeungda's JCoffeeScript @@ -1995,6 +1997,20 @@ task('build:parser1.0.0 + Dec 24, 2010 + + CoffeeScript loops no longer try to preserve block scope when functions + are being generated within the loop body. Instead, you can use the + do keyword to create a convenient closure wrapper. + Added a --nodejs flag for passing through options directly + to the node executable. + Better behavior around the use of pure statements within expressions. + Fixed inclusive slicing through -1, for all browsers, and splicing + with arbitrary expressions as endpoints. +

    +

    0.9.6 Dec 6, 2010 @@ -2441,7 +2457,11 @@ task('build:parser=0.1.99" + "node": ">=0.2.5" }, "directories" : { "lib" : "./lib" diff --git a/src/coffee-script.coffee b/src/coffee-script.coffee index 21aa9c55..c12d4bc5 100755 --- a/src/coffee-script.coffee +++ b/src/coffee-script.coffee @@ -20,7 +20,7 @@ else if require.registerExtension require.registerExtension '.coffee', (content) -> compile content # The current CoffeeScript version number. -exports.VERSION = '1.0.0-pre' +exports.VERSION = '1.0.0' # Words that cannot be used as identifiers in CoffeeScript code exports.RESERVED = RESERVED diff --git a/test/arguments.coffee b/test/arguments.coffee index c798756e..6ec3c136 100644 --- a/test/arguments.coffee +++ b/test/arguments.coffee @@ -34,8 +34,10 @@ test "passing arguments on separate lines", -> test "reference `arguments` inside of functions", -> sumOfArgs = -> - sum = (a,b)-> a + b - Array::reduce.call(arguments,sum,0) + sum = (a,b) -> a + b + sum = 0 + sum += num for num in arguments + sum eq 10, sumOfArgs(0, 1, 2, 3, 4) diff --git a/test/test.html b/test/test.html index dcf0b46b..b22b37de 100644 --- a/test/test.html +++ b/test/test.html @@ -62,8 +62,16 @@ @arrayEq = (a, b, msg) -> ok arrayEqual(a,b), msg @throws = (fun, err, msg) -> - try fun(); throw new String 'No Error' - catch e then eq e, err + try + fun() + catch e + if err + eq e, err + else + ok yes + return + ok no + CoffeeScript.run = (code, cb) -> try Function(CoffeeScript.compile code, wrap: no)() diff --git a/test/test_comprehensions.coffee b/test/test_comprehensions.coffee index 6f610db6..45567f8e 100644 --- a/test/test_comprehensions.coffee +++ b/test/test_comprehensions.coffee @@ -76,10 +76,9 @@ all = 1 # Ensure that the closure wrapper preserves local variables. obj = {} -for method in ['one', 'two', 'three'] - do (method) -> - obj[method] = -> - "I'm " + method +for method in ['one', 'two', 'three'] then do (method) -> + obj[method] = -> + "I'm " + method ok obj.one() is "I'm one" ok obj.two() is "I'm two"