diff --git a/lib/coffee_script/CoffeeScript.tmbundle/Syntaxes/CoffeeScript.tmLanguage b/lib/coffee_script/CoffeeScript.tmbundle/Syntaxes/CoffeeScript.tmLanguage
index 88bb3bff..e2922226 100644
--- a/lib/coffee_script/CoffeeScript.tmbundle/Syntaxes/CoffeeScript.tmLanguage
+++ b/lib/coffee_script/CoffeeScript.tmbundle/Syntaxes/CoffeeScript.tmLanguage
@@ -39,7 +39,7 @@
comment
match stuff like: funcName: => …
match
- ([a-zA-Z0-9_?.$]*)\s*(=|:)\s*([\w,\s]*?)\s*(=>)
+ ([a-zA-Z0-9_?.$*]*)\s*(=|:)\s*([\w,\s]*?)\s*(=>)
name
meta.function.coffee
@@ -60,7 +60,7 @@
comment
match stuff like: a => …
match
- ([a-zA-Z0-9_?., $]*)\s*(=>)
+ ([a-zA-Z0-9_?., $*]*)\s*(=>)
name
meta.inline.function.coffee
diff --git a/lib/coffee_script/grammar.y b/lib/coffee_script/grammar.y
index 2b747738..049482f3 100644
--- a/lib/coffee_script/grammar.y
+++ b/lib/coffee_script/grammar.y
@@ -5,7 +5,7 @@ token IF ELSE UNLESS
token NUMBER STRING REGEX
token TRUE FALSE YES NO ON OFF
token IDENTIFIER PROPERTY_ACCESS
-token CODE PARAM NEW RETURN
+token CODE PARAM SPLAT NEW RETURN
token TRY CATCH FINALLY THROW
token BREAK CONTINUE
token FOR IN WHILE
@@ -187,8 +187,13 @@ rule
# The parameters to a function definition.
ParamList:
- PARAM { result = val }
- | ParamList "," PARAM { result = val[0] << val[2] }
+ Param { result = val }
+ | ParamList "," Param { result = val[0] << val[2] }
+ ;
+
+ Param:
+ PARAM
+ | SPLAT { result = SplatNode.new(val[0]) }
;
# Expressions that can be treated as values.
diff --git a/lib/coffee_script/lexer.rb b/lib/coffee_script/lexer.rb
index 48a0a32f..02341497 100644
--- a/lib/coffee_script/lexer.rb
+++ b/lib/coffee_script/lexer.rb
@@ -190,15 +190,23 @@ module CoffeeScript
# A source of ambiguity in our grammar was parameter lists in function
# definitions (as opposed to argument lists in function calls). Tag
- # parameter identifiers in order to avoid this.
+ # parameter identifiers in order to avoid this. Also, parameter lists can
+ # make use of splats.
def tag_parameters
- index = 0
+ i = 0
loop do
- tok = @tokens[index -= 1]
+ i -= 1
+ tok, prev = @tokens[i], @tokens[i - 1]
return if !tok
next if tok[0] == ','
return if tok[0] != :IDENTIFIER
- tok[0] = :PARAM
+ if prev && prev[0] == '*'
+ tok[0] = :SPLAT
+ @tokens.delete_at(i - 1)
+ i -= 1
+ else
+ tok[0] = :PARAM
+ end
end
end
diff --git a/lib/coffee_script/nodes.rb b/lib/coffee_script/nodes.rb
index 060ae24d..d2683292 100644
--- a/lib/coffee_script/nodes.rb
+++ b/lib/coffee_script/nodes.rb
@@ -64,6 +64,11 @@ module CoffeeScript
self
end
+ def unshift(node)
+ @expressions.unshift(node)
+ self
+ end
+
# If this Expressions consists of a single node, pull it back out.
def unwrap
@expressions.length == 1 ? @expressions.first : self
@@ -389,7 +394,7 @@ module CoffeeScript
o[:scope].find(name) unless @variable.properties?
return write(@value.compile(o)) if @value.custom_assign?
val = "#{name} = #{@value.compile(o)}"
- write(o[:return] && !@value.custom_return? ? "return (#{val})" : val)
+ write(o[:return] && !@value.custom_return? ? "#{o[:indent]}return (#{val})" : val)
end
end
@@ -459,12 +464,35 @@ module CoffeeScript
o.delete(:no_wrap)
name = o.delete(:immediate_assign)
@params.each {|id| o[:scope].parameter(id.to_s) }
+ if @params.last.is_a?(SplatNode)
+ splat = @params.pop
+ splat.index = @params.length
+ @body.unshift(splat)
+ end
code = @body.compile(o, :code)
name_part = name ? " #{name}" : ''
write("function#{name_part}(#{@params.join(', ')}) {\n#{code}\n#{indent}}")
end
end
+ # A parameter splat in a function definition.
+ class SplatNode < Node
+ attr_accessor :index
+ attr_reader :name
+
+ def initialize(name)
+ @name = name
+ end
+
+ def to_s
+ @name
+ end
+
+ def compile(o={})
+ "var #{@name} = Array.prototype.slice.call(arguments, #{@index})"
+ end
+ end
+
# An object literal.
class ObjectNode < Node
attr_reader :properties
diff --git a/lib/coffee_script/parser.rb b/lib/coffee_script/parser.rb
index 7bd8ab91..8afed339 100644
--- a/lib/coffee_script/parser.rb
+++ b/lib/coffee_script/parser.rb
@@ -10,7 +10,7 @@ module CoffeeScript
class Parser < Racc::Parser
-module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 390)
+module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 395)
# Lex and parse a CoffeeScript.
def parse(code)
# Uncomment the following line to enable grammar debugging, in combination
@@ -34,244 +34,240 @@ module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 390)
##### State transition tables begin ###
clist = [
-'90,230,98,33,40,47,53,60,64,5,11,15,18,28,34,209,231,28,34,209,249,244',
-'16,22,99,246,28,34,209,77,118,237,78,248,229,217,32,13,27,-155,-155',
-'76,28,34,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110',
-'113,116,119,85,88,92,95,100,103,106,109,112,115,76,138,87,91,138,81',
-'138,138,131,138,57,13,1,156,33,40,47,53,60,64,5,11,15,18,137,138,39',
-'46,52,56,76,257,7,16,22,25,76,37,44,122,58,150,3,8,162,137,27,32,163',
-'148,76,59,63,4,10,14,21,138,237,150,76,51,222,220,76,27,136,148,259',
-'122,139,164,27,139,134,139,139,134,139,142,134,138,142,138,150,225,212',
-'136,81,19,27,76,148,45,139,57,13,1,134,33,40,47,53,60,64,5,11,15,18',
-'94,97,39,46,52,56,27,251,7,16,22,25,242,37,44,80,58,139,3,8,166,142',
-'27,32,76,28,34,59,63,4,10,14,21,28,34,227,71,51,223,228,272,139,270',
-'139,274,134,243,134,28,34,227,28,34,28,34,209,94,97,102,105,108,111',
-'114,94,97,19,28,34,209,45,210,57,13,1,166,33,40,47,53,60,64,5,11,15',
-'18,28,34,39,46,52,56,,150,7,16,22,25,150,37,44,148,58,,3,8,148,,27,32',
-'-155,-155,,59,63,4,10,14,21,-155,-155,-155,-155,51,27,,149,-155,-155',
-'27,,149,94,97,102,105,108,111,114,117,120,86,89,93,96,94,97,102,105',
-'108,,19,-155,-155,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,-155,-155',
-'39,46,52,56,94,97,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14',
-'21,,,,,51,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107',
-'110,113,116,119,85,94,97,102,105,108,,19,,,,45,,57,13,1,,33,40,47,53',
-'60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32',
-',,,59,63,4,10,14,21,,,,,51,94,97,102,105,108,111,114,117,120,86,89,93',
-'96,101,104,107,110,113,116,119,85,,,,,,,19,,,,45,,57,13,1,,33,40,47',
-'53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27',
-'32,,,,59,63,4,10,14,21,,,,,51,94,97,102,105,108,111,114,117,120,86,89',
-'93,96,101,104,107,110,113,116,119,85,,,,,,,19,,,,45,,57,13,1,,33,40',
-'47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,',
-'27,32,,,,59,63,4,10,14,21,,,,,51,94,97,102,105,108,111,114,117,120,86',
-'89,93,96,101,104,107,110,113,116,119,85,,,,,,,19,,,,45,,57,13,1,,33',
-'40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8',
-',,27,32,,,,59,63,4,10,14,21,,,,,51,94,97,102,105,108,111,114,117,120',
-'86,89,93,96,101,104,107,110,113,116,119,85,,,,,,,19,,,,45,,57,13,1,',
-'33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,',
-'3,8,,,27,32,128,,,59,63,4,10,14,21,,,,,51,94,97,102,105,108,111,114',
-'117,120,86,89,93,96,101,104,107,110,113,116,119,85,,,,,,,19,,,,45,,57',
-'13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44',
-',58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,94,97,102,105,108,111,114',
-'117,120,86,89,93,96,101,104,107,110,113,116,119,85,,,,,,,19,,,,45,,57',
-'13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44',
-',58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,94,97,102,105,108,111,114',
-'117,120,86,89,93,96,101,104,107,110,113,116,119,85,,,,,,,19,,,,45,,57',
-'13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44',
-',58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,94,97,102,105,108,111,114',
-'117,120,86,89,93,96,94,97,102,105,108,111,114,117,120,86,89,93,96,,19',
-',,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22',
-'25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,94,97,102,105',
-'108,111,114,117,120,86,89,93,96,94,97,102,105,108,111,114,117,120,86',
-',,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,',
-'7,16,22,25,,37,44,,58,,3,8,,,27,32,128,,,59,63,4,10,14,21,,,,,51,94',
-'97,102,105,108,111,114,117,120,86,94,97,102,105,108,111,114,117,120',
-'86,94,97,102,105,108,111,114,19,,,,45,,57,13,1,,33,40,47,53,60,64,5',
-'11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63',
-'4,10,14,21,,,,,51,94,97,102,105,108,111,114,,,,,,,,,,,,,,,,,,,,,19,',
-',,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22',
-'25,,37,44,,58,,3,8,,,27,32,128,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,',
-',,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39',
-'46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,128,,,59,63,4,10,14,21',
-',,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60',
-'64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,',
-'59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1',
-',33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58',
-',3,8,,,27,32,128,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,',
-',,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7',
-'16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,',
-',,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,',
-',39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21',
-',,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60',
-'64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,',
-'59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1',
-',33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58',
-',3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19',
-',,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22',
-'25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46',
-'52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11',
-'15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4',
-'10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40',
-'47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,',
-'27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45',
-',57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37',
-'44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56',
-',,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15',
-'18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10',
-'14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,28,34,,45,,57,13,1,,33,40',
-'47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,',
-'27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45',
-',57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37',
-'44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56',
-',,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15',
-'18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,128,,,59,63,4',
-'10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40',
-'47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,',
-'27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45',
-',57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37',
-'44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56',
-',,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15',
-'18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,160,,59,63,4',
-'10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40',
-'47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,',
-'27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45',
-',57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37',
-'44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56',
-',,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15',
-'18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10',
-'14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47',
-'53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27',
-'32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57',
-'13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44',
-',58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,',
-',,,19,28,34,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56',
-',,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15',
-'18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10',
-'14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47',
-'53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27',
-'32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57',
-'13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44',
-',58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,',
-',,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7',
-'16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,',
-',,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,',
-',39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21',
-',,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60',
-'64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,',
-'59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1',
-',33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58',
-',3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19',
-',,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22',
-'25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46',
-'52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11',
-'15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4',
-'10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40',
-'47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,',
-'27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45',
-',57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37',
-'44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56',
-',,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,',
-',,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15',
-'18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10',
-'14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47',
-'53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27',
-'32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57',
-'13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44',
-',58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,',
-',,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7',
-'16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,',
-',,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,',
-',39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21',
-',,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60',
-'64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,',
-'59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1',
-',33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58',
-',3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19',
-',,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22',
-'25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46',
-'52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51',
-',33,40,47,53,60,64,5,11,15,18,,,,,,,,,,16,22,,,,,,19,,,,45,,57,32,1',
-'33,40,47,53,60,64,5,11,15,18,,,,,,,,,,16,22,33,40,47,53,60,64,5,11,15',
-'18,,,32,,,,,,,16,22,,,131,,57,,1,,,,,,32,,,,,,,90,,98,,,,,,,,,,,,,,',
-',131,,57,,1,,99,,,,,,118,263,,,,,,,,131,,57,,1,94,97,102,105,108,111',
-'114,117,120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95,100',
-'103,106,109,112,115,,,87,91,90,,98,,,245,,,,,,,,,,,,,,,,,,,99,,,,,,118',
-',,,,,,207,,,,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104',
-'107,110,113,116,119,85,88,92,95,100,103,106,109,112,115,,,87,91,90,',
-'98,,,,,,,,,,,,,,,,,,,,,,99,,,,,,118,,,,,,,76,,,,,,,94,97,102,105,108',
-'111,114,117,120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95',
-'100,103,106,109,112,115,,,87,91,90,,98,,,,,,,,,,,,,,,,,,,,,,99,,,,,',
-'118,,,,,,,,,,,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104',
-'107,110,113,116,119,85,88,92,95,100,103,106,109,112,115,,,87,91,90,',
-'98,,,,,,,,,,,,,,,,,,,,,,99,,,,,,118,,,,,,,,,,,,,,94,97,102,105,108,111',
-'114,117,120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95,100',
-'103,106,109,112,115,,,87,91,90,,98,,,,,,,,,,,,,,,,,,,,,,99,,,,,,118',
-',,,,,,,,,,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107',
-'110,113,116,119,85,88,92,95,100,103,106,109,112,115,,,87,91,90,,98,',
-',,,,,,,,,,,,,,,,,,,,99,,,,,,118,,,,,,,,,,,,,,94,97,102,105,108,111,114',
-'117,120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95,100,103',
-'106,109,112,115,,,87,91,90,,98,,,,,,,,,,,,,,,,,,,,,,99,,,,,,118,,,,',
-',,76,,,,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107',
-'110,113,116,119,85,88,92,95,100,103,106,109,112,115,,,87,91,90,,98,',
-',,,,,,,,,,,,,,,,,,,,99,,,,,,118,,,,,,,,,,,,,,94,97,102,105,108,111,114',
-'117,120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95,100,103',
-'106,109,112,115,,,87,91,90,,98,,,,,,,,,,,,,,,,,,,,,,99,,,,,,118,,,,',
-',,,,,,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110',
-'113,116,119,85,88,92,95,100,103,106,109,112,115,,,87,91,90,,98,,,,,',
-',,,,,,,,,,,,,,,,99,,,,,,118,,,,,,,,,,,,,,94,97,102,105,108,111,114,117',
-'120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95,100,103,106',
-'109,112,115,,,87,91,90,,98,,,,,,,,,,,,,,,,,,,,,,99,,,,,,118,,,,,,,76',
-',,,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110',
-'113,116,119,85,88,92,95,100,103,106,109,112,115,,,87,91,90,,98,,,,,',
-',,,,,,,,,,,,,,,,99,,,,,,118,,,,,,,,,,,,,,94,97,102,105,108,111,114,117',
-'120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95,100,103,106',
-'109,112,115,,,87,91,90,,98,,,,,,,,,,,,,,,,,,,,,,99,,,,,,118,,,,,,,,',
-',,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110,113',
-'116,119,85,88,92,95,100,103,106,109,112,115,,,87,91,90,,98,,,,,,,,,',
-',,,,,,,,,,,,99,,,,,,118,,,,,,,,,,,,,,94,97,102,105,108,111,114,117,120',
-'86,89,93,96,101,104,107,110,113,116,119,85,88,92,95,100,103,106,109',
-'112,115,90,,98,,,,,,,,,,,,,,,,,,,,,,99,,,,,,118,,,,,,,,,,,,,,94,97,102',
-'105,108,111,114,117,120,86,89,93,96,101,104,107,110,113,116,119,85,88',
-'92,95,100,103,106,109,112,115,90,,98,,,,,,,,,,,,,,,,,,,,,,99,,,,,,118',
-',,,,,,,,,,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107',
-'110,113,116,119,85,88,92,95,100,103,106,109,112,115,99,,,,,,118,,,,',
-',,,,,,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110',
-'113,116,119,85,88,92,95,100,103,106,109,112,115,99,,,,,,118,,,,,,,,',
-',,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110,113',
-'116,119,85,88,92,95,100,103,106,109,112,115,99,,,,,,118,,,,,,,,,,,,',
-',94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110,113,116',
-'119,85,88,92,95,100,103,106,109,112,115,99,,,,256,,118,,,,,,,,,,,,,',
-'94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110,113,116',
-'119,85,88,92,95,100,103,106,109,112,115,99,,,,,,118,,,,,,,,,,,,,,94',
-'97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110,113,116,119',
-'85,88,92,95,100,103,106,109,112,115,118,,,,,,,,,,,,,,94,97,102,105,108',
-'111,114,117,120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95',
-'100,103,106,109,112,115,118,,,,,,,,,,,,,,94,97,102,105,108,111,114,117',
-'120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95,100,103,106',
-'109,112,115,118,,,,,,,,,,,,,,94,97,102,105,108,111,114,117,120,86,89',
-'93,96,101,104,107,110,113,116,119,85,88,92,95,100,103,106,109,112,115',
-'94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110,113,116',
-'119,85,88,92,95,100,103,106,109,112,115,94,97,102,105,108,111,114,117',
-'120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95,100,103,106',
-'109,112,115,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107',
-'110,113,116,119,85,88,92,95,100,103,106,109,112,115,94,97,102,105,108',
-'111,114,117,120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95',
-'100,103,106,109,112,115,94,97,102,105,108,111,114,117,120,86,89,93,96',
-'101,104,107,110,113,116,119,85,88,92,95,100,103,106,109,112,115' ]
- racc_action_table = arr = Array.new(7689, nil)
+'77,252,85,18,23,28,33,37,42,49,51,54,57,84,88,92,95,98,101,104,107,74',
+'76,25,30,89,24,29,211,256,108,72,121,109,238,246,3,7,9,-157,-157,220',
+'24,29,218,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103',
+'106,73,75,79,82,86,90,93,96,99,102,105,262,121,78,81,237,116,116,208',
+'69,219,46,9,55,223,18,23,28,33,37,42,49,51,54,57,84,88,64,67,1,5,10',
+'84,88,20,25,30,34,121,43,47,245,52,207,59,63,24,29,3,7,201,202,153,17',
+'27,32,36,40,45,116,24,29,211,58,212,121,18,23,28,33,37,42,49,51,54,57',
+'117,117,271,228,125,112,24,29,211,239,25,30,24,29,211,19,116,116,198',
+'38,257,46,9,55,7,18,23,28,33,37,42,49,51,54,57,-157,-157,64,67,1,5,10',
+'236,143,20,25,30,34,121,43,47,142,52,117,59,63,129,112,3,7,133,64,67',
+'17,27,32,36,40,45,116,69,121,46,58,55,3,18,23,28,33,37,42,49,51,54,57',
+'117,117,274,156,125,112,24,29,211,155,25,30,-157,-157,232,19,153,116',
+'129,38,121,46,9,55,7,18,23,28,33,37,42,49,51,54,57,-157,-157,64,67,1',
+'5,10,121,143,20,25,30,34,121,43,47,142,52,117,59,63,234,112,3,7,275',
+'143,208,17,27,32,36,40,45,142,69,,46,58,55,3,18,23,28,33,37,42,49,51',
+'54,57,,117,-157,-157,143,125,,3,,144,25,30,142,,116,19,84,88,,38,,46',
+'9,55,7,18,23,28,33,37,42,49,51,54,57,115,3,64,67,1,5,10,24,29,20,25',
+'30,34,,43,47,265,52,143,59,63,24,29,3,7,,142,,17,27,32,36,40,45,,69',
+',46,58,55,,214,114,,256,24,29,-157,-157,117,3,3,144,112,267,84,88,92',
+'95,98,101,104,107,74,76,116,19,-157,-157,,38,,46,9,55,,18,23,28,33,37',
+'42,49,51,54,57,115,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3',
+'7,,,,17,27,32,36,40,45,24,29,218,,58,,216,,114,84,88,92,95,98,,117,',
+',,112,84,88,92,95,98,101,104,107,74,76,,,19,,,,38,,46,9,55,,18,23,28',
+'33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63',
+',,3,7,,,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107,74,76,80',
+'83,87,91,94,97,100,103,106,73,75,84,88,92,95,98,,19,,,,38,,46,9,55,',
+'18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52',
+',59,63,,,3,7,133,,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107',
+'74,76,80,83,87,91,94,97,100,103,106,73,75,,,,,,,19,,,,38,,46,9,55,,18',
+'23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,',
+'59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107,74',
+'76,80,83,87,91,94,97,100,103,106,73,75,,,,,,,19,,,,38,,46,9,55,,18,23',
+'28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59',
+'63,,,3,7,,205,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107,74',
+'76,80,83,87,91,94,97,100,103,106,73,75,,,,,,,19,,,,38,,46,9,55,,18,23',
+'28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59',
+'63,,,3,7,,,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107,74,76',
+'80,83,87,91,94,97,100,103,106,73,75,,,,,,,19,,,,38,,46,9,55,,18,23,28',
+'33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63',
+',,3,7,,,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107,74,76,80',
+'83,87,91,94,97,100,103,106,73,75,,,,,,,19,,,,38,,46,9,55,,18,23,28,33',
+'37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3',
+'7,,,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107,74,76,80,83',
+'87,91,94,97,100,103,106,73,75,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37',
+'42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7',
+',,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107,74,76,80,83,87',
+'91,94,97,100,103,106,73,75,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42',
+'49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,',
+'17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107,74,76,80,83,87,84',
+'88,92,95,98,101,104,107,74,76,80,83,87,,19,,,,38,,46,9,55,,18,23,28',
+'33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63',
+',,3,7,,,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107,74,76,80',
+'83,87,84,88,92,95,98,101,104,107,74,76,80,83,87,,19,,,,38,,46,9,55,',
+'18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52',
+',59,63,,,3,7,133,,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,84',
+'88,92,95,98,101,104,84,88,92,95,98,101,104,,,,,,,19,,,,38,,46,9,55,',
+'18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52',
+',59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,',
+'19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20',
+'25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,',
+',,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57',
+',,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36',
+'40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28',
+'33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63',
+',,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,24,29',
+',38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30',
+'34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,',
+',,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64',
+'67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45',
+',,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37',
+'42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7',
+',,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46',
+'9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43',
+'47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,',
+',,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5',
+'10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58',
+',,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51',
+'54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27',
+'32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18',
+'23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,',
+'59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19',
+',,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25',
+'30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,',
+',,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,',
+'64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40',
+'45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33',
+'37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3',
+'7,133,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38',
+',46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34',
+',43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,',
+',,,,,,,,,,,19,24,29,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64',
+'67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,133,,,17,27,32,36,40',
+'45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33',
+'37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3',
+'7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46',
+'9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43',
+'47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,',
+',,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5',
+'10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58',
+',,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51',
+'54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27',
+'32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18',
+'23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,',
+'59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19',
+',,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25',
+'30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,',
+',,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,',
+'64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40',
+'45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33',
+'37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3',
+'7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46',
+'9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43',
+'47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,',
+',,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5',
+'10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58',
+',,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51',
+'54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27',
+'32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18',
+'23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,',
+'59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19',
+',,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25',
+'30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,',
+',,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,',
+'64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40',
+'45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33',
+'37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3',
+'7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46',
+'9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43',
+'47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,',
+',,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5',
+'10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58',
+',,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51',
+'54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27',
+'32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18',
+'23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,',
+'59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19',
+',,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25',
+'30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,',
+',,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,',
+'64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40',
+'45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33',
+'37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3',
+'7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46',
+'9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43',
+'47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,',
+',,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5',
+'10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58',
+',,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51',
+'54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27',
+'32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18',
+'23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,',
+'59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19',
+',,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25',
+'30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,',
+',,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,',
+'64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40',
+'45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33',
+'37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3',
+'7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46',
+'9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43',
+'47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,',
+',,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5',
+'10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,133,,,17,27,32,36,40,45,,,',
+',58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42',
+'49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,',
+'17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55',
+',18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,',
+'52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,',
+',,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,',
+',20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,',
+',,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54',
+'57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32',
+'36,40,45,77,,85,,58,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,19,,,,38,,46,,55',
+',,,,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103,106,73',
+'75,79,82,86,90,93,96,99,102,105,,,78,81,77,,85,,,233,,,,,,,,,,,,,,,',
+',,,,89,,,,,,72,,,,,,,,,,,,,,84,88,92,95,98,101,104,107,74,76,80,83,87',
+'91,94,97,100,103,106,73,75,79,82,86,90,93,96,99,102,105,,,78,81,77,',
+'85,,,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,,,,,,,,84,88,92,95,98,101',
+'104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93,96',
+'99,102,105,,,78,81,77,,85,,,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,121',
+',,,,,,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103,106',
+'73,75,79,82,86,90,93,96,99,102,105,,,78,81,77,,85,,,,,,,,,,,,,,,,,,',
+',,,,89,,,,,,72,,,,,,,121,,,,,,,84,88,92,95,98,101,104,107,74,76,80,83',
+'87,91,94,97,100,103,106,73,75,79,82,86,90,93,96,99,102,105,,,78,81,77',
+',85,,,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,121,,,,,,,84,88,92,95,98',
+'101,104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93',
+'96,99,102,105,,,78,81,77,,85,,,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,',
+',,,,,,,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103,106',
+'73,75,79,82,86,90,93,96,99,102,105,,,78,81,77,,85,,,,,,,,,,,,,,,,,,',
+',,,,89,,,,,,72,,,,,,,222,,,,,,,84,88,92,95,98,101,104,107,74,76,80,83',
+'87,91,94,97,100,103,106,73,75,79,82,86,90,93,96,99,102,105,,,78,81,77',
+',85,,,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,,,,,,,,84,88,92,95,98,101',
+'104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93,96',
+'99,102,105,,,78,81,77,,85,,,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,,,',
+',,,,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103,106,73',
+'75,79,82,86,90,93,96,99,102,105,,,78,81,77,,85,,,,,,,,,,,,,,,,,,,,,',
+',89,,,,,,72,,,,,,,,,,,,,,84,88,92,95,98,101,104,107,74,76,80,83,87,91',
+'94,97,100,103,106,73,75,79,82,86,90,93,96,99,102,105,,,78,81,77,,85',
+',,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,,,,,,,,84,88,92,95,98,101,104',
+'107,74,76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93,96,99,102',
+'105,,,78,81,77,,85,,,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,,,,,,,,84',
+'88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79',
+'82,86,90,93,96,99,102,105,,,78,81,77,,85,,,,,,,,,,,,,,,,,,,,,,,89,,',
+',,,72,,,,,,,,,,,,,,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97',
+'100,103,106,73,75,79,82,86,90,93,96,99,102,105,,,78,81,77,,85,,,,,,',
+',,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,,,,,,,,84,88,92,95,98,101,104,107,74',
+'76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93,96,99,102,105',
+'77,,85,,,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,,,,,,,,84,88,92,95,98',
+'101,104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93',
+'96,99,102,105,77,,85,,,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,,,,,,,,84',
+'88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79',
+'82,86,90,93,96,99,102,105,89,,,,,,72,,,,,,,,,,,,,,84,88,92,95,98,101',
+'104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93,96',
+'99,102,105,89,,,,,,72,,,,,,,,,,,,,,84,88,92,95,98,101,104,107,74,76',
+'80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93,96,99,102,105,89',
+',,,,,72,,,,,,,,,,,,,,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94',
+'97,100,103,106,73,75,79,82,86,90,93,96,99,102,105,89,,,,260,,72,,,,',
+',,,,,,,,,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103',
+'106,73,75,79,82,86,90,93,96,99,102,105,89,,,,,,72,,,,,,,,,,,,,,84,88',
+'92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79,82',
+'86,90,93,96,99,102,105,72,,,,,,,,,,,,,,84,88,92,95,98,101,104,107,74',
+'76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93,96,99,102,105',
+'72,,,,,,,,,,,,,,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100',
+'103,106,73,75,79,82,86,90,93,96,99,102,105,72,,,,,,,,,,,,,,84,88,92',
+'95,98,101,104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79,82,86',
+'90,93,96,99,102,105,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94',
+'97,100,103,106,73,75,79,82,86,90,93,96,99,102,105,84,88,92,95,98,101',
+'104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93,96',
+'99,102,105,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103',
+'106,73,75,79,82,86,90,93,96,99,102,105,84,88,92,95,98,101,104,107,74',
+'76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93,96,99,102,105',
+'84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103,106,73,75',
+'79,82,86,90,93,96,99,102,105' ]
+ racc_action_table = arr = Array.new(7672, nil)
idx = 0
clist.each do |str|
str.split(',', -1).each do |i|
@@ -281,271 +277,271 @@ clist = [
end
clist = [
-'67,159,67,263,263,263,263,263,263,263,263,263,263,213,213,213,164,219',
-'219,219,222,213,263,263,67,219,157,157,157,20,67,207,20,221,157,138',
-'263,122,207,144,144,220,159,159,67,67,67,67,67,67,67,67,67,67,67,67',
-'67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,122,132,67,67',
-'49,99,133,215,263,50,263,87,263,67,87,87,87,87,87,87,87,87,87,87,49',
-'130,87,87,87,87,165,235,87,87,87,87,77,87,87,124,87,255,87,87,78,130',
-'87,87,80,255,56,87,87,87,87,87,87,216,235,227,248,87,146,146,249,235',
-'49,227,235,43,132,81,255,49,132,133,215,49,50,133,215,262,50,271,226',
-'150,130,130,25,87,227,257,226,87,130,87,3,87,130,3,3,3,3,3,3,3,3,3,3',
-'184,184,3,3,3,3,226,224,3,3,3,3,211,3,3,24,3,216,3,3,181,216,3,3,19',
-'227,227,3,3,3,3,3,3,151,151,151,8,3,148,151,268,262,262,271,271,262',
-'212,271,224,224,224,269,269,211,211,211,202,202,202,202,202,202,202',
-'190,190,3,127,127,127,3,127,3,4,3,82,4,4,4,4,4,4,4,4,4,4,36,36,4,4,4',
-'4,,57,4,4,4,4,149,4,4,57,4,,4,4,149,,4,4,154,154,,4,4,4,4,4,4,79,79',
-'155,155,4,57,,57,69,69,149,,149,183,183,183,183,183,183,183,183,183',
-'183,183,183,183,196,196,196,196,196,,4,72,72,,4,,4,7,4,,7,7,7,7,7,7',
-'7,7,7,7,74,74,7,7,7,7,187,187,7,7,7,7,,7,7,,7,,7,7,,,7,7,,,,7,7,7,7',
-'7,7,,,,,7,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176',
-'176,176,176,176,176,176,193,193,193,193,193,,7,,,,7,,7,166,7,,166,166',
-'166,166,166,166,166,166,166,166,,,166,166,166,166,,,166,166,166,166',
-',166,166,,166,,166,166,,,166,166,,,,166,166,166,166,166,166,,,,,166',
-'178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178',
-'178,178,178,178,,,,,,,166,,,,166,,166,10,166,,10,10,10,10,10,10,10,10',
-'10,10,,,10,10,10,10,,,10,10,10,10,,10,10,,10,,10,10,,,10,10,,,,10,10',
-'10,10,10,10,,,,,10,201,201,201,201,201,201,201,201,201,201,201,201,201',
-'201,201,201,201,201,201,201,201,,,,,,,10,,,,10,,10,13,10,,13,13,13,13',
-'13,13,13,13,13,13,,,13,13,13,13,,,13,13,13,13,,13,13,,13,,13,13,,,13',
-'13,,,,13,13,13,13,13,13,,,,,13,172,172,172,172,172,172,172,172,172,172',
-'172,172,172,172,172,172,172,172,172,172,172,,,,,,,13,,,,13,,13,14,13',
-',14,14,14,14,14,14,14,14,14,14,,,14,14,14,14,,,14,14,14,14,,14,14,,14',
-',14,14,,,14,14,,,,14,14,14,14,14,14,,,,,14,195,195,195,195,195,195,195',
-'195,195,195,195,195,195,195,195,195,195,195,195,195,195,,,,,,,14,,,',
-'14,,14,142,14,,142,142,142,142,142,142,142,142,142,142,,,142,142,142',
-'142,,,142,142,142,142,,142,142,,142,,142,142,,,142,142,142,,,142,142',
-'142,142,142,142,,,,,142,182,182,182,182,182,182,182,182,182,182,182',
-'182,182,182,182,182,182,182,182,182,182,,,,,,,142,,,,142,,142,139,142',
-',139,139,139,139,139,139,139,139,139,139,,,139,139,139,139,,,139,139',
-'139,139,,139,139,,139,,139,139,,,139,139,,,,139,139,139,139,139,139',
-',,,,139,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169',
-'169,169,169,169,169,169,,,,,,,139,,,,139,,139,21,139,,21,21,21,21,21',
-'21,21,21,21,21,,,21,21,21,21,,,21,21,21,21,,21,21,,21,,21,21,,,21,21',
-',,,21,21,21,21,21,21,,,,,21,198,198,198,198,198,198,198,198,198,198',
-'198,198,198,198,198,198,198,198,198,198,198,,,,,,,21,,,,21,,21,136,21',
-',136,136,136,136,136,136,136,136,136,136,,,136,136,136,136,,,136,136',
-'136,136,,136,136,,136,,136,136,,,136,136,,,,136,136,136,136,136,136',
-',,,,136,186,186,186,186,186,186,186,186,186,186,186,186,186,189,189',
-'189,189,189,189,189,189,189,189,189,189,189,,136,,,,136,,136,256,136',
-',256,256,256,256,256,256,256,256,256,256,,,256,256,256,256,,,256,256',
-'256,256,,256,256,,256,,256,256,,,256,256,,,,256,256,256,256,256,256',
-',,,,256,192,192,192,192,192,192,192,192,192,192,192,192,192,177,177',
-'177,177,177,177,177,177,177,177,,,,,256,,,,256,,256,134,256,,134,134',
-'134,134,134,134,134,134,134,134,,,134,134,134,134,,,134,134,134,134',
-',134,134,,134,,134,134,,,134,134,134,,,134,134,134,134,134,134,,,,,134',
-'179,179,179,179,179,179,179,179,179,179,173,173,173,173,173,173,173',
-'173,173,173,170,170,170,170,170,170,170,134,,,,134,,134,37,134,,37,37',
-'37,37,37,37,37,37,37,37,,,37,37,37,37,,,37,37,37,37,,37,37,,37,,37,37',
-',,37,37,,,,37,37,37,37,37,37,,,,,37,199,199,199,199,199,199,199,,,,',
-',,,,,,,,,,,,,,,,37,,,,37,,37,131,37,,131,131,131,131,131,131,131,131',
-'131,131,,,131,131,131,131,,,131,131,131,131,,131,131,,131,,131,131,',
-',131,131,131,,,131,131,131,131,131,131,,,,,131,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,131,,,,131,,131,128,131,,128,128,128,128,128,128,128,128,128,128',
-',,128,128,128,128,,,128,128,128,128,,128,128,,128,,128,128,,,128,128',
-'128,,,128,128,128,128,128,128,,,,,128,,,,,,,,,,,,,,,,,,,,,,,,,,,,128',
-',,,128,,128,44,128,,44,44,44,44,44,44,44,44,44,44,,,44,44,44,44,,,44',
-'44,44,44,,44,44,,44,,44,44,,,44,44,,,,44,44,44,44,44,44,,,,,44,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,44,,,,44,,44,45,44,,45,45,45,45,45,45,45,45,45',
-'45,,,45,45,45,45,,,45,45,45,45,,45,45,,45,,45,45,,,45,45,45,,,45,45',
-'45,45,45,45,,,,,45,,,,,,,,,,,,,,,,,,,,,,,,,,,,45,,,,45,,45,120,45,,120',
-'120,120,120,120,120,120,120,120,120,,,120,120,120,120,,,120,120,120',
-'120,,120,120,,120,,120,120,,,120,120,,,,120,120,120,120,120,120,,,,',
-'120,,,,,,,,,,,,,,,,,,,,,,,,,,,,120,,,,120,,120,119,120,,119,119,119',
-'119,119,119,119,119,119,119,,,119,119,119,119,,,119,119,119,119,,119',
-'119,,119,,119,119,,,119,119,,,,119,119,119,119,119,119,,,,,119,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,119,,,,119,,119,118,119,,118,118,118,118,118,118',
-'118,118,118,118,,,118,118,118,118,,,118,118,118,118,,118,118,,118,,118',
-'118,,,118,118,,,,118,118,118,118,118,118,,,,,118,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,118,,,,118,,118,51,118,,51,51,51,51,51,51,51,51,51,51,,,51,51',
-'51,51,,,51,51,51,51,,51,51,,51,,51,51,,,51,51,,,,51,51,51,51,51,51,',
-',,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,,,,51,,51,52,51,,52,52,52,52,52',
-'52,52,52,52,52,,,52,52,52,52,,,52,52,52,52,,52,52,,52,,52,52,,,52,52',
-',,,52,52,52,52,52,52,,,,,52,,,,,,,,,,,,,,,,,,,,,,,,,,,,52,,,,52,,52',
-'117,52,,117,117,117,117,117,117,117,117,117,117,,,117,117,117,117,,',
-'117,117,117,117,,117,117,,117,,117,117,,,117,117,,,,117,117,117,117',
-'117,117,,,,,117,,,,,,,,,,,,,,,,,,,,,,,,,,,,117,,,,117,,117,116,117,',
-'116,116,116,116,116,116,116,116,116,116,,,116,116,116,116,,,116,116',
-'116,116,,116,116,,116,,116,116,,,116,116,,,,116,116,116,116,116,116',
-',,,,116,,,,,,,,,,,,,,,,,,,,,,,,,,,,116,,,,116,,116,58,116,,58,58,58',
-'58,58,58,58,58,58,58,,,58,58,58,58,,,58,58,58,58,,58,58,,58,,58,58,',
-',58,58,,,,58,58,58,58,58,58,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,58,,,',
-'58,,58,59,58,,59,59,59,59,59,59,59,59,59,59,,,59,59,59,59,,,59,59,59',
-'59,,59,59,,59,,59,59,,,59,59,,,,59,59,59,59,59,59,,,,,59,,,,,,,,,,,',
-',,,,,,,,,,,,,,,,59,,,,59,,59,63,59,,63,63,63,63,63,63,63,63,63,63,,',
-'63,63,63,63,,,63,63,63,63,,63,63,,63,,63,63,,,63,63,,,,63,63,63,63,63',
-'63,,,,,63,,,,,,,,,,,,,,,,,,,,,,,,,,,,63,,,,63,,63,0,63,,0,0,0,0,0,0',
-'0,0,0,0,,,0,0,0,0,,,0,0,0,0,,0,0,,0,,0,0,,,0,0,,,,0,0,0,0,0,0,,,,,0',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,,0,,0,240,0,,240,240,240,240,240,240',
-'240,240,240,240,,,240,240,240,240,,,240,240,240,240,,240,240,,240,,240',
-'240,,,240,240,,,,240,240,240,240,240,240,,,,,240,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,240,,,,240,,240,115,240,,115,115,115,115,115,115,115,115,115',
-'115,,,115,115,115,115,,,115,115,115,115,,115,115,,115,,115,115,,,115',
-'115,,,,115,115,115,115,115,115,,,,,115,,,,,,,,,,,,,,,,,,,,,,,,,,,,115',
-',,,115,,115,237,115,,237,237,237,237,237,237,237,237,237,237,,,237,237',
-'237,237,,,237,237,237,237,,237,237,,237,,237,237,,,237,237,,,,237,237',
-'237,237,237,237,,,,,237,,,,,,,,,,,,,,,,,,,,,,,,,,,,237,,,,237,,237,71',
-'237,,71,71,71,71,71,71,71,71,71,71,,,71,71,71,71,,,71,71,71,71,,71,71',
-',71,,71,71,,,71,71,71,,,71,71,71,71,71,71,,,,,71,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,71,,,,71,,71,114,71,,114,114,114,114,114,114,114,114,114,114',
-',,114,114,114,114,,,114,114,114,114,,114,114,,114,,114,114,,,114,114',
-',,,114,114,114,114,114,114,,,,,114,,,,,,,,,,,,,,,,,,,,,,,,,,,,114,,',
-',114,,114,107,114,,107,107,107,107,107,107,107,107,107,107,,,107,107',
-'107,107,,,107,107,107,107,,107,107,,107,,107,107,,,107,107,,,,107,107',
-'107,107,107,107,,,,,107,,,,,,,,,,,,,,,,,,,,,,,,,,,,107,,,,107,,107,225',
-'107,,225,225,225,225,225,225,225,225,225,225,,,225,225,225,225,,,225',
-'225,225,225,,225,225,,225,,225,225,,,225,225,,,,225,225,225,225,225',
-'225,,,,,225,,,,,,,,,,,,,,,,,,,,,,,,,,,,225,,,,225,,225,76,225,,76,76',
-'76,76,76,76,76,76,76,76,,,76,76,76,76,,,76,76,76,76,,76,76,,76,,76,76',
-',,76,76,,76,,76,76,76,76,76,76,,,,,76,,,,,,,,,,,,,,,,,,,,,,,,,,,,76',
-',,,76,,76,223,76,,223,223,223,223,223,223,223,223,223,223,,,223,223',
-'223,223,,,223,223,223,223,,223,223,,223,,223,223,,,223,223,,,,223,223',
-'223,223,223,223,,,,,223,,,,,,,,,,,,,,,,,,,,,,,,,,,,223,,,,223,,223,112',
-'223,,112,112,112,112,112,112,112,112,112,112,,,112,112,112,112,,,112',
-'112,112,112,,112,112,,112,,112,112,,,112,112,,,,112,112,112,112,112',
-'112,,,,,112,,,,,,,,,,,,,,,,,,,,,,,,,,,,112,,,,112,,112,111,112,,111',
-'111,111,111,111,111,111,111,111,111,,,111,111,111,111,,,111,111,111',
-'111,,111,111,,111,,111,111,,,111,111,,,,111,111,111,111,111,111,,,,',
-'111,,,,,,,,,,,,,,,,,,,,,,,,,,,,111,,,,111,,111,110,111,,110,110,110',
-'110,110,110,110,110,110,110,,,110,110,110,110,,,110,110,110,110,,110',
-'110,,110,,110,110,,,110,110,,,,110,110,110,110,110,110,,,,,110,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,110,,,,110,,110,109,110,,109,109,109,109,109,109',
-'109,109,109,109,,,109,109,109,109,,,109,109,109,109,,109,109,,109,,109',
-'109,,,109,109,,,,109,109,109,109,109,109,,,,,109,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,109,,,,109,,109,209,109,,209,209,209,209,209,209,209,209,209',
-'209,,,209,209,209,209,,,209,209,209,209,,209,209,,209,,209,209,,,209',
-'209,,,,209,209,209,209,209,209,,,,,209,,,,,,,,,,,,,,,,,,,,,,,,,,,,209',
-'209,209,,209,,209,83,209,,83,83,83,83,83,83,83,83,83,83,,,83,83,83,83',
-',,83,83,83,83,,83,83,,83,,83,83,,,83,83,,,,83,83,83,83,83,83,,,,,83',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,83,,,,83,,83,108,83,,108,108,108,108,108',
-'108,108,108,108,108,,,108,108,108,108,,,108,108,108,108,,108,108,,108',
-',108,108,,,108,108,,,,108,108,108,108,108,108,,,,,108,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,108,,,,108,,108,85,108,,85,85,85,85,85,85,85,85,85,85,',
-',85,85,85,85,,,85,85,85,85,,85,85,,85,,85,85,,,85,85,,,,85,85,85,85',
-'85,85,,,,,85,,,,,,,,,,,,,,,,,,,,,,,,,,,,85,,,,85,,85,86,85,,86,86,86',
-'86,86,86,86,86,86,86,,,86,86,86,86,,,86,86,86,86,,86,86,,86,,86,86,',
-',86,86,,,,86,86,86,86,86,86,,,,,86,,,,,,,,,,,,,,,,,,,,,,,,,,,,86,,,',
-'86,,86,1,86,,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,,,1,1,1,1,,1,1,,1,,1,1,,',
-'1,1,,,,1,1,1,1,1,1,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,1,,1,88,1,',
-'88,88,88,88,88,88,88,88,88,88,,,88,88,88,88,,,88,88,88,88,,88,88,,88',
-',88,88,,,88,88,,,,88,88,88,88,88,88,,,,,88,,,,,,,,,,,,,,,,,,,,,,,,,',
-',,88,,,,88,,88,89,88,,89,89,89,89,89,89,89,89,89,89,,,89,89,89,89,,',
-'89,89,89,89,,89,89,,89,,89,89,,,89,89,,,,89,89,89,89,89,89,,,,,89,,',
-',,,,,,,,,,,,,,,,,,,,,,,,,89,,,,89,,89,90,89,,90,90,90,90,90,90,90,90',
-'90,90,,,90,90,90,90,,,90,90,90,90,,90,90,,90,,90,90,,,90,90,,,,90,90',
-'90,90,90,90,,,,,90,,,,,,,,,,,,,,,,,,,,,,,,,,,,90,,,,90,,90,91,90,,91',
-'91,91,91,91,91,91,91,91,91,,,91,91,91,91,,,91,91,91,91,,91,91,,91,,91',
+'147,221,147,246,246,246,246,246,246,246,246,246,246,172,172,172,172',
+'172,172,172,172,172,172,246,246,147,206,206,206,222,4,147,234,4,206',
+'214,222,246,153,127,127,143,221,221,221,147,147,147,147,147,147,147',
+'147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147',
+'147,147,147,147,147,147,246,153,147,147,204,197,263,130,246,142,246',
+'90,246,147,90,90,90,90,90,90,90,90,90,90,179,179,90,90,90,90,90,182',
+'182,90,90,90,90,236,90,90,213,90,129,90,90,204,204,90,90,120,120,150',
+'90,90,90,90,90,90,196,132,132,132,90,132,209,1,1,1,1,1,1,1,1,1,1,197',
+'263,263,155,197,263,213,213,213,207,1,1,229,229,229,90,22,270,116,90',
+'229,90,125,90,1,125,125,125,125,125,125,125,125,125,125,122,122,125',
+'125,125,125,125,203,249,125,125,125,125,108,125,125,249,125,196,125',
+'125,89,196,125,125,125,109,109,125,125,125,125,125,125,70,1,202,1,125',
+'1,249,262,262,262,262,262,262,262,262,262,262,22,270,270,63,22,270,194',
+'194,194,62,262,262,128,128,194,125,61,71,34,125,265,125,220,125,262',
+'220,220,220,220,220,220,220,220,220,220,148,148,220,220,220,220,220',
+'19,217,220,220,220,220,10,220,220,217,220,70,220,220,201,70,220,220',
+'272,46,173,220,220,220,220,220,220,46,262,,262,220,262,217,115,115,115',
+'115,115,115,115,115,115,115,,71,131,131,218,71,,46,,46,115,115,218,',
+'135,220,176,176,,220,,220,5,220,115,5,5,5,5,5,5,5,5,5,5,135,218,5,5',
+'5,5,5,68,68,5,5,5,5,,5,5,254,5,144,5,5,273,273,5,5,,144,,5,5,5,5,5,5',
+',115,,115,5,115,,135,135,,254,218,218,138,138,135,144,254,144,135,254',
+'169,169,169,169,169,169,169,169,169,169,6,5,136,136,,5,,5,157,5,,157',
+'157,157,157,157,157,157,157,157,157,6,,157,157,157,157,157,,,157,157',
+'157,157,,157,157,,157,,157,157,,,157,157,,,,157,157,157,157,157,157',
+'140,140,140,,157,,140,,6,188,188,188,188,188,,6,,,,6,166,166,166,166',
+'166,166,166,166,166,166,,,157,,,,157,,157,9,157,,9,9,9,9,9,9,9,9,9,9',
+',,9,9,9,9,9,,,9,9,9,9,,9,9,,9,,9,9,,,9,9,,,,9,9,9,9,9,9,,,,,9,171,171',
+'171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171',
+'171,171,185,185,185,185,185,,9,,,,9,,9,156,9,,156,156,156,156,156,156',
+'156,156,156,156,,,156,156,156,156,156,,,156,156,156,156,,156,156,,156',
+',156,156,,,156,156,156,,,156,156,156,156,156,156,,,,,156,187,187,187',
+'187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187',
+'187,,,,,,,156,,,,156,,156,17,156,,17,17,17,17,17,17,17,17,17,17,,,17',
+'17,17,17,17,,,17,17,17,17,,17,17,,17,,17,17,,,17,17,,,,17,17,17,17,17',
+'17,,,,,17,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174',
+'174,174,174,174,174,174,,,,,,,17,,,,17,,17,121,17,,121,121,121,121,121',
+'121,121,121,121,121,,,121,121,121,121,121,,,121,121,121,121,,121,121',
+',121,,121,121,,,121,121,,121,,121,121,121,121,121,121,,,,,121,168,168',
+'168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168',
+'168,168,,,,,,,121,,,,121,,121,20,121,,20,20,20,20,20,20,20,20,20,20',
+',,20,20,20,20,20,,,20,20,20,20,,20,20,,20,,20,20,,,20,20,,,,20,20,20',
+'20,20,20,,,,,20,159,159,159,159,159,159,159,159,159,159,159,159,159',
+'159,159,159,159,159,159,159,159,,,,,,,20,,,,20,,20,208,20,,208,208,208',
+'208,208,208,208,208,208,208,,,208,208,208,208,208,,,208,208,208,208',
+',208,208,,208,,208,208,,,208,208,,,,208,208,208,208,208,208,,,,,208',
+'161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161',
+'161,161,161,161,,,,,,,208,,,,208,,208,27,208,,27,27,27,27,27,27,27,27',
+'27,27,,,27,27,27,27,27,,,27,27,27,27,,27,27,,27,,27,27,,,27,27,,,,27',
+'27,27,27,27,27,,,,,27,165,165,165,165,165,165,165,165,165,165,165,165',
+'165,165,165,165,165,165,165,165,165,,,,,,,27,,,,27,,27,32,27,,32,32',
+'32,32,32,32,32,32,32,32,,,32,32,32,32,32,,,32,32,32,32,,32,32,,32,,32',
+'32,,,32,32,,,,32,32,32,32,32,32,,,,,32,190,190,190,190,190,190,190,190',
+'190,190,190,190,190,190,190,190,190,190,190,190,190,,,,,,,32,,,,32,',
+'32,210,32,,210,210,210,210,210,210,210,210,210,210,,,210,210,210,210',
+'210,,,210,210,210,210,,210,210,,210,,210,210,,,210,210,,,,210,210,210',
+'210,210,210,,,,,210,178,178,178,178,178,178,178,178,178,178,178,178',
+'178,181,181,181,181,181,181,181,181,181,181,181,181,181,,210,,,,210',
+',210,36,210,,36,36,36,36,36,36,36,36,36,36,,,36,36,36,36,36,,,36,36',
+'36,36,,36,36,,36,,36,36,,,36,36,,,,36,36,36,36,36,36,,,,,36,175,175',
+'175,175,175,175,175,175,175,175,175,175,175,184,184,184,184,184,184',
+'184,184,184,184,184,184,184,,36,,,,36,,36,38,36,,38,38,38,38,38,38,38',
+'38,38,38,,,38,38,38,38,38,,,38,38,38,38,,38,38,,38,,38,38,,,38,38,38',
+',,38,38,38,38,38,38,,,,,38,191,191,191,191,191,191,191,160,160,160,160',
+'160,160,160,162,162,162,162,162,162,162,,,,,,,38,,,,38,,38,40,38,,40',
+'40,40,40,40,40,40,40,40,40,,,40,40,40,40,40,,,40,40,40,40,,40,40,,40',
+',40,40,,,40,40,,,,40,40,40,40,40,40,,,,,40,,,,,,,,,,,,,,,,,,,,,,,,,',
+',,40,,,,40,,40,43,40,,43,43,43,43,43,43,43,43,43,43,,,43,43,43,43,43',
+',,43,43,43,43,,43,43,,43,,43,43,,,43,43,,,,43,43,43,43,43,43,,,,,43',
+',,,,,,,,,,,,,,,,,,,,,,,,,,,43,,,,43,,43,45,43,,45,45,45,45,45,45,45',
+'45,45,45,,,45,45,45,45,45,,,45,45,45,45,,45,45,,45,,45,45,,,45,45,,',
+',45,45,45,45,45,45,,,,,45,,,,,,,,,,,,,,,,,,,,,,,,,,,,45,,,,45,,45,211',
+'45,,211,211,211,211,211,211,211,211,211,211,,,211,211,211,211,211,,',
+'211,211,211,211,,211,211,,211,,211,211,,,211,211,,,,211,211,211,211',
+'211,211,,,,,211,,,,,,,,,,,,,,,,,,,,,,,,,,,,211,211,211,,211,,211,47',
+'211,,47,47,47,47,47,47,47,47,47,47,,,47,47,47,47,47,,,47,47,47,47,,47',
+'47,,47,,47,47,,,47,47,,,,47,47,47,47,47,47,,,,,47,,,,,,,,,,,,,,,,,,',
+',,,,,,,,,47,,,,47,,47,52,47,,52,52,52,52,52,52,52,52,52,52,,,52,52,52',
+'52,52,,,52,52,52,52,,52,52,,52,,52,52,,,52,52,,,,52,52,52,52,52,52,',
+',,,52,,,,,,,,,,,,,,,,,,,,,,,,,,,,52,,,,52,,52,55,52,,55,55,55,55,55',
+'55,55,55,55,55,,,55,55,55,55,55,,,55,55,55,55,,55,55,,55,,55,55,,,55',
+'55,,,,55,55,55,55,55,55,,,,,55,,,,,,,,,,,,,,,,,,,,,,,,,,,,55,,,,55,',
+'55,58,55,,58,58,58,58,58,58,58,58,58,58,,,58,58,58,58,58,,,58,58,58',
+'58,,58,58,,58,,58,58,,,58,58,,,,58,58,58,58,58,58,,,,,58,,,,,,,,,,,',
+',,,,,,,,,,,,,,,,58,,,,58,,58,59,58,,59,59,59,59,59,59,59,59,59,59,,',
+'59,59,59,59,59,,,59,59,59,59,,59,59,,59,,59,59,,,59,59,,,,59,59,59,59',
+'59,59,,,,,59,,,,,,,,,,,,,,,,,,,,,,,,,,,,59,,,,59,,59,117,59,,117,117',
+'117,117,117,117,117,117,117,117,,,117,117,117,117,117,,,117,117,117',
+'117,,117,117,,117,,117,117,,,117,117,,,,117,117,117,117,117,117,,,,',
+'117,,,,,,,,,,,,,,,,,,,,,,,,,,,,117,,,,117,,117,114,117,,114,114,114',
+'114,114,114,114,114,114,114,,,114,114,114,114,114,,,114,114,114,114',
+',114,114,,114,,114,114,,,114,114,,,,114,114,114,114,114,114,,,,,114',
+',,,,,,,,,,,,,,,,,,,,,,,,,,,114,,,,114,,114,260,114,,260,260,260,260',
+'260,260,260,260,260,260,,,260,260,260,260,260,,,260,260,260,260,,260',
+'260,,260,,260,260,,,260,260,,,,260,260,260,260,260,260,,,,,260,,,,,',
+',,,,,,,,,,,,,,,,,,,,,,260,,,,260,,260,256,260,,256,256,256,256,256,256',
+'256,256,256,256,,,256,256,256,256,256,,,256,256,256,256,,256,256,,256',
+',256,256,,,256,256,,,,256,256,256,256,256,256,,,,,256,,,,,,,,,,,,,,',
+',,,,,,,,,,,,,256,,,,256,,256,69,256,,69,69,69,69,69,69,69,69,69,69,',
+',69,69,69,69,69,,,69,69,69,69,,69,69,,69,,69,69,,,69,69,69,,,69,69,69',
+'69,69,69,,,,,69,,,,,,,,,,,,,,,,,,,,,,,,,,,,69,,,,69,,69,0,69,,0,0,0',
+'0,0,0,0,0,0,0,,,0,0,0,0,0,,,0,0,0,0,,0,0,,0,,0,0,,,0,0,,,,0,0,0,0,0',
+'0,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,,0,,0,112,0,,112,112,112,112',
+'112,112,112,112,112,112,,,112,112,112,112,112,,,112,112,112,112,,112',
+'112,,112,,112,112,,,112,112,112,,,112,112,112,112,112,112,,,,,112,,',
+',,,,,,,,,,,,,,,,,,,,,,,,,112,,,,112,,112,72,112,,72,72,72,72,72,72,72',
+'72,72,72,,,72,72,72,72,72,,,72,72,72,72,,72,72,,72,,72,72,,,72,72,,',
+',72,72,72,72,72,72,,,,,72,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,,,,72,,72,73',
+'72,,73,73,73,73,73,73,73,73,73,73,,,73,73,73,73,73,,,73,73,73,73,,73',
+'73,,73,,73,73,,,73,73,,,,73,73,73,73,73,73,,,,,73,,,,,,,,,,,,,,,,,,',
+',,,,,,,,,73,,,,73,,73,74,73,,74,74,74,74,74,74,74,74,74,74,,,74,74,74',
+'74,74,,,74,74,74,74,,74,74,,74,,74,74,,,74,74,,,,74,74,74,74,74,74,',
+',,,74,,,,,,,,,,,,,,,,,,,,,,,,,,,,74,,,,74,,74,75,74,,75,75,75,75,75',
+'75,75,75,75,75,,,75,75,75,75,75,,,75,75,75,75,,75,75,,75,,75,75,,,75',
+'75,,,,75,75,75,75,75,75,,,,,75,,,,,,,,,,,,,,,,,,,,,,,,,,,,75,,,,75,',
+'75,76,75,,76,76,76,76,76,76,76,76,76,76,,,76,76,76,76,76,,,76,76,76',
+'76,,76,76,,76,,76,76,,,76,76,,,,76,76,76,76,76,76,,,,,76,,,,,,,,,,,',
+',,,,,,,,,,,,,,,,76,,,,76,,76,77,76,,77,77,77,77,77,77,77,77,77,77,,',
+'77,77,77,77,77,,,77,77,77,77,,77,77,,77,,77,77,,,77,77,,,,77,77,77,77',
+'77,77,,,,,77,,,,,,,,,,,,,,,,,,,,,,,,,,,,77,,,,77,,77,78,77,,78,78,78',
+'78,78,78,78,78,78,78,,,78,78,78,78,78,,,78,78,78,78,,78,78,,78,,78,78',
+',,78,78,,,,78,78,78,78,78,78,,,,,78,,,,,,,,,,,,,,,,,,,,,,,,,,,,78,,',
+',78,,78,79,78,,79,79,79,79,79,79,79,79,79,79,,,79,79,79,79,79,,,79,79',
+'79,79,,79,79,,79,,79,79,,,79,79,,,,79,79,79,79,79,79,,,,,79,,,,,,,,',
+',,,,,,,,,,,,,,,,,,,79,,,,79,,79,80,79,,80,80,80,80,80,80,80,80,80,80',
+',,80,80,80,80,80,,,80,80,80,80,,80,80,,80,,80,80,,,80,80,,,,80,80,80',
+'80,80,80,,,,,80,,,,,,,,,,,,,,,,,,,,,,,,,,,,80,,,,80,,80,81,80,,81,81',
+'81,81,81,81,81,81,81,81,,,81,81,81,81,81,,,81,81,81,81,,81,81,,81,,81',
+'81,,,81,81,,,,81,81,81,81,81,81,,,,,81,,,,,,,,,,,,,,,,,,,,,,,,,,,,81',
+',,,81,,81,82,81,,82,82,82,82,82,82,82,82,82,82,,,82,82,82,82,82,,,82',
+'82,82,82,,82,82,,82,,82,82,,,82,82,,,,82,82,82,82,82,82,,,,,82,,,,,',
+',,,,,,,,,,,,,,,,,,,,,,82,,,,82,,82,83,82,,83,83,83,83,83,83,83,83,83',
+'83,,,83,83,83,83,83,,,83,83,83,83,,83,83,,83,,83,83,,,83,83,,,,83,83',
+'83,83,83,83,,,,,83,,,,,,,,,,,,,,,,,,,,,,,,,,,,83,,,,83,,83,85,83,,85',
+'85,85,85,85,85,85,85,85,85,,,85,85,85,85,85,,,85,85,85,85,,85,85,,85',
+',85,85,,,85,85,,,,85,85,85,85,85,85,,,,,85,,,,,,,,,,,,,,,,,,,,,,,,,',
+',,85,,,,85,,85,86,85,,86,86,86,86,86,86,86,86,86,86,,,86,86,86,86,86',
+',,86,86,86,86,,86,86,,86,,86,86,,,86,86,,,,86,86,86,86,86,86,,,,,86',
+',,,,,,,,,,,,,,,,,,,,,,,,,,,86,,,,86,,86,87,86,,87,87,87,87,87,87,87',
+'87,87,87,,,87,87,87,87,87,,,87,87,87,87,,87,87,,87,,87,87,,,87,87,,',
+',87,87,87,87,87,87,,,,,87,,,,,,,,,,,,,,,,,,,,,,,,,,,,87,,,,87,,87,219',
+'87,,219,219,219,219,219,219,219,219,219,219,,,219,219,219,219,219,,',
+'219,219,219,219,,219,219,,219,,219,219,,,219,219,,,,219,219,219,219',
+'219,219,,,,,219,,,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,,219,,219,243,219,',
+'243,243,243,243,243,243,243,243,243,243,,,243,243,243,243,243,,,243',
+'243,243,243,,243,243,,243,,243,243,,,243,243,,,,243,243,243,243,243',
+'243,,,,,243,,,,,,,,,,,,,,,,,,,,,,,,,,,,243,,,,243,,243,91,243,,91,91',
+'91,91,91,91,91,91,91,91,,,91,91,91,91,91,,,91,91,91,91,,91,91,,91,,91',
'91,,,91,91,,,,91,91,91,91,91,91,,,,,91,,,,,,,,,,,,,,,,,,,,,,,,,,,,91',
-',,,91,,91,92,91,,92,92,92,92,92,92,92,92,92,92,,,92,92,92,92,,,92,92',
-'92,92,,92,92,,92,,92,92,,,92,92,,,,92,92,92,92,92,92,,,,,92,,,,,,,,',
-',,,,,,,,,,,,,,,,,,,92,,,,92,,92,93,92,,93,93,93,93,93,93,93,93,93,93',
-',,93,93,93,93,,,93,93,93,93,,93,93,,93,,93,93,,,93,93,,,,93,93,93,93',
-'93,93,,,,,93,,,,,,,,,,,,,,,,,,,,,,,,,,,,93,,,,93,,93,95,93,,95,95,95',
-'95,95,95,95,95,95,95,,,95,95,95,95,,,95,95,95,95,,95,95,,95,,95,95,',
-',95,95,,,,95,95,95,95,95,95,,,,,95,,,,,,,,,,,,,,,,,,,,,,,,,,,,95,,,',
-'95,,95,96,95,,96,96,96,96,96,96,96,96,96,96,,,96,96,96,96,,,96,96,96',
-'96,,96,96,,96,,96,96,,,96,96,,,,96,96,96,96,96,96,,,,,96,,,,,,,,,,,',
-',,,,,,,,,,,,,,,,96,,,,96,,96,98,96,,98,98,98,98,98,98,98,98,98,98,,',
-'98,98,98,98,,,98,98,98,98,,98,98,,98,,98,98,,,98,98,,,,98,98,98,98,98',
-'98,,,,,98,,,,,,,,,,,,,,,,,,,,,,,,,,,,98,,,,98,,98,208,98,,208,208,208',
-'208,208,208,208,208,208,208,,,208,208,208,208,,,208,208,208,208,,208',
-'208,,208,,208,208,,,208,208,,,,208,208,208,208,208,208,,,,,208,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,208,,,,208,,208,100,208,,100,100,100,100,100,100',
-'100,100,100,100,,,100,100,100,100,,,100,100,100,100,,100,100,,100,,100',
-'100,,,100,100,,,,100,100,100,100,100,100,,,,,100,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,100,,,,100,,100,101,100,,101,101,101,101,101,101,101,101,101',
-'101,,,101,101,101,101,,,101,101,101,101,,101,101,,101,,101,101,,,101',
-'101,,,,101,101,101,101,101,101,,,,,101,,,,,,,,,,,,,,,,,,,,,,,,,,,,101',
-',,,101,,101,102,101,,102,102,102,102,102,102,102,102,102,102,,,102,102',
-'102,102,,,102,102,102,102,,102,102,,102,,102,102,,,102,102,,,,102,102',
-'102,102,102,102,,,,,102,,,,,,,,,,,,,,,,,,,,,,,,,,,,102,,,,102,,102,103',
-'102,,103,103,103,103,103,103,103,103,103,103,,,103,103,103,103,,,103',
-'103,103,103,,103,103,,103,,103,103,,,103,103,,,,103,103,103,103,103',
-'103,,,,,103,,,,,,,,,,,,,,,,,,,,,,,,,,,,103,,,,103,,103,104,103,,104',
-'104,104,104,104,104,104,104,104,104,,,104,104,104,104,,,104,104,104',
-'104,,104,104,,104,,104,104,,,104,104,,,,104,104,104,104,104,104,,,,',
-'104,,,,,,,,,,,,,,,,,,,,,,,,,,,,104,,,,104,,104,105,104,,105,105,105',
-'105,105,105,105,105,105,105,,,105,105,105,105,,,105,105,105,105,,105',
+',,,91,,91,92,91,,92,92,92,92,92,92,92,92,92,92,,,92,92,92,92,92,,,92',
+'92,92,92,,92,92,,92,,92,92,,,92,92,,,,92,92,92,92,92,92,,,,,92,,,,,',
+',,,,,,,,,,,,,,,,,,,,,,92,,,,92,,92,93,92,,93,93,93,93,93,93,93,93,93',
+'93,,,93,93,93,93,93,,,93,93,93,93,,93,93,,93,,93,93,,,93,93,,,,93,93',
+'93,93,93,93,,,,,93,,,,,,,,,,,,,,,,,,,,,,,,,,,,93,,,,93,,93,94,93,,94',
+'94,94,94,94,94,94,94,94,94,,,94,94,94,94,94,,,94,94,94,94,,94,94,,94',
+',94,94,,,94,94,,,,94,94,94,94,94,94,,,,,94,,,,,,,,,,,,,,,,,,,,,,,,,',
+',,94,,,,94,,94,95,94,,95,95,95,95,95,95,95,95,95,95,,,95,95,95,95,95',
+',,95,95,95,95,,95,95,,95,,95,95,,,95,95,,,,95,95,95,95,95,95,,,,,95',
+',,,,,,,,,,,,,,,,,,,,,,,,,,,95,,,,95,,95,96,95,,96,96,96,96,96,96,96',
+'96,96,96,,,96,96,96,96,96,,,96,96,96,96,,96,96,,96,,96,96,,,96,96,,',
+',96,96,96,96,96,96,,,,,96,,,,,,,,,,,,,,,,,,,,,,,,,,,,96,,,,96,,96,97',
+'96,,97,97,97,97,97,97,97,97,97,97,,,97,97,97,97,97,,,97,97,97,97,,97',
+'97,,97,,97,97,,,97,97,,,,97,97,97,97,97,97,,,,,97,,,,,,,,,,,,,,,,,,',
+',,,,,,,,,97,,,,97,,97,98,97,,98,98,98,98,98,98,98,98,98,98,,,98,98,98',
+'98,98,,,98,98,98,98,,98,98,,98,,98,98,,,98,98,,,,98,98,98,98,98,98,',
+',,,98,,,,,,,,,,,,,,,,,,,,,,,,,,,,98,,,,98,,98,99,98,,99,99,99,99,99',
+'99,99,99,99,99,,,99,99,99,99,99,,,99,99,99,99,,99,99,,99,,99,99,,,99',
+'99,,,,99,99,99,99,99,99,,,,,99,,,,,,,,,,,,,,,,,,,,,,,,,,,,99,,,,99,',
+'99,100,99,,100,100,100,100,100,100,100,100,100,100,,,100,100,100,100',
+'100,,,100,100,100,100,,100,100,,100,,100,100,,,100,100,,,,100,100,100',
+'100,100,100,,,,,100,,,,,,,,,,,,,,,,,,,,,,,,,,,,100,,,,100,,100,101,100',
+',101,101,101,101,101,101,101,101,101,101,,,101,101,101,101,101,,,101',
+'101,101,101,,101,101,,101,,101,101,,,101,101,,,,101,101,101,101,101',
+'101,,,,,101,,,,,,,,,,,,,,,,,,,,,,,,,,,,101,,,,101,,101,102,101,,102',
+'102,102,102,102,102,102,102,102,102,,,102,102,102,102,102,,,102,102',
+'102,102,,102,102,,102,,102,102,,,102,102,,,,102,102,102,102,102,102',
+',,,,102,,,,,,,,,,,,,,,,,,,,,,,,,,,,102,,,,102,,102,103,102,,103,103',
+'103,103,103,103,103,103,103,103,,,103,103,103,103,103,,,103,103,103',
+'103,,103,103,,103,,103,103,,,103,103,,,,103,103,103,103,103,103,,,,',
+'103,,,,,,,,,,,,,,,,,,,,,,,,,,,,103,,,,103,,103,133,103,,133,133,133',
+'133,133,133,133,133,133,133,,,133,133,133,133,133,,,133,133,133,133',
+',133,133,,133,,133,133,,,133,133,133,,,133,133,133,133,133,133,,,,,133',
+',,,,,,,,,,,,,,,,,,,,,,,,,,,133,,,,133,,133,105,133,,105,105,105,105',
+'105,105,105,105,105,105,,,105,105,105,105,105,,,105,105,105,105,,105',
'105,,105,,105,105,,,105,105,,,,105,105,105,105,105,105,,,,,105,,,,,',
',,,,,,,,,,,,,,,,,,,,,,105,,,,105,,105,106,105,,106,106,106,106,106,106',
-'106,106,106,106,,,106,106,106,106,,,106,106,106,106,,106,106,,106,,106',
-'106,,,106,106,,,,106,106,106,106,106,106,,,,,106,,,,,,,,,,,,,,,,,,,',
-',,,,,,,,106,,,,106,,106,113,106,,113,113,113,113,113,113,113,113,113',
-'113,,,113,113,113,113,,,113,113,113,113,,113,113,,113,,113,113,,,113',
-'113,,,,113,113,113,113,113,113,,,,,113,,137,137,137,137,137,137,137',
-'137,137,137,,,,,,,,,,137,137,,,,,,113,,,,113,,113,137,113,46,46,46,46',
-'46,46,46,46,46,46,,,,,,,,,,46,46,243,243,243,243,243,243,243,243,243',
-'243,,,46,,,,,,,243,243,,,137,,137,,137,,,,,,243,,,,,,,218,,218,,,,,',
-',,,,,,,,,,46,,46,,46,,218,,,,,,218,243,,,,,,,,243,,243,,243,218,218',
-'218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218',
-'218,218,218,218,218,218,218,218,218,218,218,,,218,218,126,,126,,,218',
-',,,,,,,,,,,,,,,,,,126,,,,,,126,,,,,,,126,,,,,,,126,126,126,126,126,126',
-'126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126',
-'126,126,126,126,126,126,126,,,126,126,84,,84,,,,,,,,,,,,,,,,,,,,,,84',
-',,,,,84,,,,,,,84,,,,,,,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84',
-'84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,,,84,84,239,,239,,,,,,',
-',,,,,,,,,,,,,,,239,,,,,,239,,,,,,,,,,,,,,239,239,239,239,239,239,239',
-'239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239',
-'239,239,239,239,239,239,,,239,239,241,,241,,,,,,,,,,,,,,,,,,,,,,241',
-',,,,,241,,,,,,,,,,,,,,241,241,241,241,241,241,241,241,241,241,241,241',
-'241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241',
-'241,,,241,241,261,,261,,,,,,,,,,,,,,,,,,,,,,261,,,,,,261,,,,,,,,,,,',
-',,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261',
-'261,261,261,261,261,261,261,261,261,261,261,261,261,,,261,261,167,,167',
-',,,,,,,,,,,,,,,,,,,,,167,,,,,,167,,,,,,,,,,,,,,167,167,167,167,167,167',
-'167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167',
-'167,167,167,167,167,167,167,,,167,167,260,,260,,,,,,,,,,,,,,,,,,,,,',
-'260,,,,,,260,,,,,,,260,,,,,,,260,260,260,260,260,260,260,260,260,260',
-'260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260',
-'260,260,260,,,260,260,252,,252,,,,,,,,,,,,,,,,,,,,,,252,,,,,,252,,,',
-',,,,,,,,,,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252',
-'252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,,,252,252',
-'145,,145,,,,,,,,,,,,,,,,,,,,,,145,,,,,,145,,,,,,,,,,,,,,145,145,145',
-'145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145',
-'145,145,145,145,145,145,145,145,145,145,,,145,145,42,,42,,,,,,,,,,,',
-',,,,,,,,,,42,,,,,,42,,,,,,,,,,,,,,42,42,42,42,42,42,42,42,42,42,42,42',
-'42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,,,42,42,73,,73',
-',,,,,,,,,,,,,,,,,,,,,73,,,,,,73,,,,,,,73,,,,,,,73,73,73,73,73,73,73',
-'73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73',
-',,73,73,250,,250,,,,,,,,,,,,,,,,,,,,,,250,,,,,,250,,,,,,,,,,,,,,250',
+'106,106,106,106,,,106,106,106,106,106,,,106,106,106,106,,106,106,,106',
+',106,106,,,106,106,,,,106,106,106,106,106,106,,,,,106,,,,,,,,,,,,,,',
+',,,,,,,,,,,,,106,,,,106,,106,107,106,,107,107,107,107,107,107,107,107',
+'107,107,,,107,107,107,107,107,,,107,107,107,107,,107,107,,107,,107,107',
+',,107,107,,,,107,107,107,107,107,107,,,,,107,,,,,,,,,,,,,,,,,,,,,,,',
+',,,,107,,,,107,,107,104,107,,104,104,104,104,104,104,104,104,104,104',
+',,104,104,104,104,104,,,104,104,104,104,,104,104,,104,,104,104,,,104',
+'104,,,,104,104,104,104,104,104,199,,199,,104,,,,,,,,,,,,,,,,,,,,,199',
+',,,,,199,104,,,,104,,104,,104,,,,,199,199,199,199,199,199,199,199,199',
+'199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199',
+'199,199,199,199,,,199,199,250,,250,,,199,,,,,,,,,,,,,,,,,,,,250,,,,',
+',250,,,,,,,,,,,,,,250,250,250,250,250,250,250,250,250,250,250,250,250',
'250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250',
-'250,250,250,250,250,250,250,250,250,250,250,250,,,250,250,129,,129,',
-',,,,,,,,,,,,,,,,,,,,129,,,,,,129,,,,,,,,,,,,,,129,129,129,129,129,129',
-'129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129',
-'129,129,129,129,129,129,129,,,129,129,175,,175,,,,,,,,,,,,,,,,,,,,,',
-'175,,,,,,175,,,,,,,,,,,,,,175,175,175,175,175,175,175,175,175,175,175',
-'175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175',
-'175,175,214,,214,,,,,,,,,,,,,,,,,,,,,,214,,,,,,214,,,,,,,,,,,,,,214',
-'214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214',
-'214,214,214,214,214,214,214,214,214,214,214,214,171,,171,,,,,,,,,,,',
-',,,,,,,,,,171,,,,,,171,,,,,,,,,,,,,,171,171,171,171,171,171,171,171',
-'171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171',
-'171,171,171,171,171,70,,,,,,70,,,,,,,,,,,,,,70,70,70,70,70,70,70,70',
-'70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,267',
-',,,,,267,,,,,,,,,,,,,,267,267,267,267,267,267,267,267,267,267,267,267',
-'267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267',
-'267,180,,,,,,180,,,,,,,,,,,,,,180,180,180,180,180,180,180,180,180,180',
+',,250,250,261,,261,,,,,,,,,,,,,,,,,,,,,,,261,,,,,,261,,,,,,,,,,,,,,261',
+'261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261',
+'261,261,261,261,261,261,261,261,261,261,261,261,,,261,261,119,,119,',
+',,,,,,,,,,,,,,,,,,,,,119,,,,,,119,,,,,,,119,,,,,,,119,119,119,119,119',
+'119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119',
+'119,119,119,119,119,119,119,119,,,119,119,137,,137,,,,,,,,,,,,,,,,,',
+',,,,,137,,,,,,137,,,,,,,137,,,,,,,137,137,137,137,137,137,137,137,137',
+'137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137',
+'137,137,137,137,,,137,137,268,,268,,,,,,,,,,,,,,,,,,,,,,,268,,,,,,268',
+',,,,,,268,,,,,,,268,268,268,268,268,268,268,268,268,268,268,268,268',
+'268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268',
+',,268,268,244,,244,,,,,,,,,,,,,,,,,,,,,,,244,,,,,,244,,,,,,,,,,,,,,244',
+'244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244',
+'244,244,244,244,244,244,244,244,244,244,244,244,,,244,244,145,,145,',
+',,,,,,,,,,,,,,,,,,,,,145,,,,,,145,,,,,,,145,,,,,,,145,145,145,145,145',
+'145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145',
+'145,145,145,145,145,145,145,145,,,145,145,2,,2,,,,,,,,,,,,,,,,,,,,,',
+',2,,,,,,2,,,,,,,,,,,,,,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2',
+'2,2,2,2,2,2,2,,,2,2,251,,251,,,,,,,,,,,,,,,,,,,,,,,251,,,,,,251,,,,',
+',,,,,,,,,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251',
+'251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,,,251,251',
+'242,,242,,,,,,,,,,,,,,,,,,,,,,,242,,,,,,242,,,,,,,,,,,,,,242,242,242',
+'242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242',
+'242,242,242,242,242,242,242,242,242,242,,,242,242,134,,134,,,,,,,,,',
+',,,,,,,,,,,,,134,,,,,,134,,,,,,,,,,,,,,134,134,134,134,134,134,134,134',
+'134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134',
+'134,134,134,134,134,,,134,134,230,,230,,,,,,,,,,,,,,,,,,,,,,,230,,,',
+',,230,,,,,,,,,,,,,,230,230,230,230,230,230,230,230,230,230,230,230,230',
+'230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230',
+',,230,230,110,,110,,,,,,,,,,,,,,,,,,,,,,,110,,,,,,110,,,,,,,,,,,,,,110',
+'110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110',
+'110,110,110,110,110,110,110,110,110,110,110,110,,,110,110,195,,195,',
+',,,,,,,,,,,,,,,,,,,,,195,,,,,,195,,,,,,,,,,,,,,195,195,195,195,195,195',
+'195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195',
+'195,195,195,195,195,195,195,167,,167,,,,,,,,,,,,,,,,,,,,,,,167,,,,,',
+'167,,,,,,,,,,,,,,167,167,167,167,167,167,167,167,167,167,167,167,167',
+'167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167',
+'164,,164,,,,,,,,,,,,,,,,,,,,,,,164,,,,,,164,,,,,,,,,,,,,,164,164,164',
+'164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164',
+'164,164,164,164,164,164,164,164,164,164,170,,,,,,170,,,,,,,,,,,,,,170',
+'170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170',
+'170,170,170,170,170,170,170,170,170,170,170,170,124,,,,,,124,,,,,,,',
+',,,,,,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124',
+'124,124,124,124,124,124,124,124,124,124,124,124,124,124,269,,,,,,269',
+',,,,,,,,,,,,,269,269,269,269,269,269,269,269,269,269,269,269,269,269',
+'269,269,269,269,269,269,269,269,269,269,269,269,269,269,269,269,240',
+',,,240,,240,,,,,,,,,,,,,,240,240,240,240,240,240,240,240,240,240,240',
+'240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240',
+'240,240,163,,,,,,163,,,,,,,,,,,,,,163,163,163,163,163,163,163,163,163',
+'163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163',
+'163,163,163,163,149,,,,,,,,,,,,,,149,149,149,149,149,149,149,149,149',
+'149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149',
+'149,149,149,149,146,,,,,,,,,,,,,,146,146,146,146,146,146,146,146,146',
+'146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146',
+'146,146,146,146,158,,,,,,,,,,,,,,158,158,158,158,158,158,158,158,158',
+'158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158',
+'158,158,158,158,177,177,177,177,177,177,177,177,177,177,177,177,177',
+'177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177',
+'186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186',
+'186,186,186,186,186,186,186,186,186,186,186,186,186,189,189,189,189',
+'189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189',
+'189,189,189,189,189,189,189,189,189,183,183,183,183,183,183,183,183',
+'183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183',
+'183,183,183,183,183,180,180,180,180,180,180,180,180,180,180,180,180',
'180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180',
-'180,180,180,233,,,,233,,233,,,,,,,,,,,,,,233,233,233,233,233,233,233',
-'233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233',
-'233,233,233,233,233,233,174,,,,,,174,,,,,,,,,,,,,,174,174,174,174,174',
-'174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174',
-'174,174,174,174,174,174,174,174,200,,,,,,,,,,,,,,200,200,200,200,200',
-'200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200',
-'200,200,200,200,200,200,200,200,68,,,,,,,,,,,,,,68,68,68,68,68,68,68',
-'68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68',
-'153,,,,,,,,,,,,,,153,153,153,153,153,153,153,153,153,153,153,153,153',
-'153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153',
-'197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197',
-'197,197,197,197,197,197,197,197,197,197,197,197,197,194,194,194,194',
-'194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194',
-'194,194,194,194,194,194,194,194,194,188,188,188,188,188,188,188,188',
-'188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188',
-'188,188,188,188,188,191,191,191,191,191,191,191,191,191,191,191,191',
-'191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191',
-'191,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185',
-'185,185,185,185,185,185,185,185,185,185,185,185,185,185' ]
- racc_action_check = arr = Array.new(7689, nil)
+'180' ]
+ racc_action_check = arr = Array.new(7672, nil)
idx = 0
clist.each do |str|
str.split(',', -1).each do |i|
@@ -555,299 +551,345 @@ clist = [
end
racc_action_pointer = [
- 2548, 4163, nil, 168, 253, nil, nil, 338, 131, nil,
- 508, nil, nil, 593, 678, nil, nil, nil, nil, 168,
- -51, 933, nil, nil, 198, 148, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, 187, 1273, nil, nil,
- nil, nil, 6621, 140, 1528, 1613, 5777, nil, nil, 63,
- 68, 1953, 2038, nil, nil, nil, 85, 269, 2293, 2378,
- nil, nil, nil, 2463, nil, nil, nil, -2, 7419, 263,
- 7131, 2888, 288, 6699, 307, nil, 3228, 71, 101, 255,
- 122, 62, 230, 3823, 5997, 3993, 4078, 83, 4248, 4333,
- 4418, 4503, 4588, 4673, nil, 4758, 4843, nil, 4928, 65,
- 5098, 5183, 5268, 5353, 5438, 5523, 5608, 3058, 3908, 3653,
- 3568, 3483, 3398, 5693, 2973, 2718, 2208, 2123, 1868, 1783,
- 1698, nil, 35, nil, 110, nil, 5919, 168, 1443, 6855,
- 84, 1358, 60, 65, 1188, nil, 1018, 5742, 21, 848,
- nil, nil, 763, nil, -7, 6543, 115, nil, 144, 274,
- 82, 135, nil, 7463, 246, 257, nil, -55, nil, -39,
- nil, nil, nil, nil, 2, 65, 423, 6309, nil, 855,
- 1215, 7081, 600, 1205, 7331, 6933, 345, 1123, 430, 1195,
- 7231, 176, 770, 268, 137, 7613, 1025, 313, 7553, 1038,
- 200, 7583, 1110, 366, 7523, 685, 281, 7493, 940, 1280,
- 7375, 515, 193, nil, nil, nil, nil, 1, 5013, 3738,
- nil, 155, 153, -68, 7007, 66, 116, nil, 5841, -64,
- 2, 11, 6, 3313, 150, 3143, 152, 127, nil, nil,
- nil, nil, nil, 7281, nil, 102, nil, 2803, nil, 6075,
- 2633, 6153, nil, 5798, nil, nil, nil, nil, 95, 99,
- 6777, nil, 6465, nil, nil, 109, 1103, 126, nil, nil,
- 6387, 6231, 140, -2, nil, nil, nil, 7181, 183, 153,
- nil, 142, nil, nil, nil ]
+ 2664, 135, 6439, nil, -51, 342, 407, nil, nil, 514,
+ 244, nil, nil, nil, nil, nil, nil, 686, nil, 238,
+ 858, nil, 151, nil, nil, nil, nil, 1030, nil, nil,
+ nil, nil, 1116, nil, 240, nil, 1288, nil, 1374, nil,
+ 1460, nil, nil, 1546, nil, 1632, 291, 1804, nil, nil,
+ nil, nil, 1890, nil, nil, 1976, nil, nil, 2062, 2148,
+ nil, 249, 245, 150, nil, nil, nil, nil, 282, 2578,
+ 204, 238, 2836, 2922, 3008, 3094, 3180, 3266, 3352, 3438,
+ 3524, 3610, 3696, 3782, nil, 3868, 3954, 4040, nil, 192,
+ 84, 4298, 4384, 4470, 4556, 4642, 4728, 4814, 4900, 4986,
+ 5072, 5158, 5244, 5330, 5760, 5502, 5588, 5674, 158, 194,
+ 6834, nil, 2750, nil, 2320, 307, 154, 2234, nil, 6044,
+ 102, 772, 138, nil, 7163, 170, nil, -8, 201, 33,
+ 54, 277, 52, 5416, 6676, 321, 377, 6123, 357, nil,
+ 395, nil, 6, -37, 369, 6360, 7401, -2, 224, 7357,
+ 123, nil, nil, 36, nil, 153, 600, 428, 7445, 865,
+ 1388, 951, 1395, 7313, 7063, 1037, 450, 6988, 779, 365,
+ 7113, 521, -34, 270, 693, 1295, 291, 7475, 1209, 52,
+ 7595, 1222, 59, 7565, 1308, 542, 7505, 607, 439, 7535,
+ 1123, 1381, nil, nil, 160, 6913, 118, 65, nil, 5807,
+ nil, 278, 181, 169, 38, nil, -56, 145, 944, 99,
+ 1202, 1718, nil, 74, -42, nil, nil, 273, 320, 4126,
+ 256, -40, -2, nil, nil, nil, nil, nil, nil, 80,
+ 6755, nil, nil, nil, -8, nil, 72, nil, nil, nil,
+ 7263, nil, 6597, 4212, 6281, nil, -2, nil, nil, 187,
+ 5886, 6518, nil, nil, 370, nil, 2492, nil, nil, nil,
+ 2406, 5965, 221, 66, nil, 216, nil, nil, 6202, 7213,
+ 152, nil, 255, 296, nil, nil, nil ]
racc_action_default = [
- -1, -155, -110, -155, -155, -35, -11, -155, -155, -91,
- -155, -36, -12, -155, -155, -37, -30, -13, -90, -155,
- -155, -155, -31, -14, -155, -155, -92, -43, -24, -15,
- -2, -93, -28, -26, -25, -16, -3, -155, -94, -88,
- -27, -17, -4, -148, -155, -118, -155, -29, -18, -7,
- -108, -155, -155, -32, -19, -8, -155, -102, -155, -155,
- -33, -20, -9, -155, -34, -21, -10, -155, -52, -45,
- -128, -118, -48, -155, -50, -87, -155, -155, -155, -49,
- -155, -133, -155, -6, -155, -155, -155, -155, -155, -155,
- -155, -155, -155, -155, -54, -155, -155, -53, -155, -155,
- -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
- -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
- -155, -152, -155, -146, -148, -150, -155, -155, -118, -119,
- -7, -118, -155, -109, -118, -99, -155, -155, -155, -155,
- -95, -98, -118, -96, -46, -42, -155, -103, -155, -102,
- -155, -155, -41, -51, -47, -44, -129, -155, -144, -155,
- -23, -86, -89, 275, -155, -155, -155, -5, -130, -73,
- -62, -83, -74, -63, -153, -84, -75, -64, -76, -65,
- -154, -155, -77, -66, -55, -78, -67, -56, -79, -68,
- -57, -80, -69, -58, -81, -70, -59, -82, -71, -60,
- -85, -72, -61, -149, -145, -147, -151, -155, -155, -155,
- -117, -155, -155, -155, -38, -111, -155, -97, -155, -155,
- -155, -124, -155, -155, -155, -155, -155, -155, -101, -114,
- -22, -134, -132, -135, -131, -155, -139, -155, -143, -121,
- -155, -120, -123, -155, -112, -100, -113, -125, -155, -155,
- -39, -107, -40, -105, -104, -155, -155, -155, -140, -137,
- -155, -122, -155, -155, -126, -127, -106, -136, -155, -141,
- -115, -155, -138, -142, -116 ]
+ -1, -157, -4, -43, -157, -157, -7, -28, -88, -157,
+ -157, -8, -94, -9, -95, -96, -10, -157, -26, -157,
+ -157, -11, -110, -27, -24, -30, -12, -157, -29, -25,
+ -31, -13, -157, -32, -157, -14, -157, -33, -120, -15,
+ -157, -112, -34, -157, -16, -157, -104, -157, -17, -35,
+ -18, -36, -157, -19, -37, -157, -20, -92, -157, -157,
+ -21, -150, -157, -157, -90, -2, -93, -91, -3, -120,
+ -157, -111, -157, -157, -157, -157, -157, -157, -157, -157,
+ -157, -157, -157, -157, -54, -157, -157, -157, -53, -157,
+ -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+ -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+ -42, -100, -120, -101, -157, -157, -157, -157, -97, -157,
+ -157, -157, -47, -87, -130, -120, -98, -44, -45, -135,
+ -157, -48, -157, -120, -121, -7, -50, -157, -49, -41,
+ -157, -105, -157, -157, -104, -157, -51, -157, -46, -52,
+ -150, -152, -154, -157, -148, -157, -120, -6, -85, -72,
+ -61, -73, -62, -155, -83, -74, -63, -84, -75, -64,
+ -156, -76, -65, -157, -77, -66, -55, -78, -67, -56,
+ -79, -68, -57, -80, -69, -58, -81, -70, -59, -82,
+ -71, -60, -86, -89, -157, -38, -113, -157, -99, -157,
+ -146, -157, -157, -126, -157, -23, -157, -157, -157, -157,
+ -157, -157, -119, -157, -157, -132, -103, -157, -157, -157,
+ -157, -157, -157, -131, -153, -149, -151, -147, 277, -157,
+ -5, -133, -114, -102, -157, -127, -157, -22, -115, -136,
+ -137, -134, -123, -157, -122, -125, -157, -107, -106, -157,
+ -39, -40, -109, -145, -157, -141, -157, -116, -129, -128,
+ -157, -124, -157, -157, -108, -157, -142, -139, -157, -138,
+ -157, -117, -157, -143, -118, -140, -144 ]
racc_goto_table = [
- 30, 143, 123, 42, 67, 152, 68, 69, 151, 36,
- 70, 157, 24, 72, 253, 254, 73, 74, 236, 204,
- 221, 125, 75, 124, 79, 235, 121, nil, 165, nil,
- nil, nil, 130, 132, nil, nil, 83, 133, nil, nil,
- 84, nil, nil, 266, nil, nil, 258, 126, 135, 135,
- nil, nil, nil, nil, 144, 145, 82, nil, nil, 146,
- nil, 153, 154, nil, nil, nil, 155, nil, 211, nil,
- nil, nil, nil, nil, 213, nil, 158, nil, nil, 42,
- 161, nil, 219, 205, 143, 159, 167, 168, 169, 170,
- 171, 172, 173, 174, 175, 176, 177, 152, 178, 179,
- 224, 180, 206, 182, 183, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 202, 215, 203, 130, 234, 216, 135,
- 181, 135, 135, nil, nil, nil, nil, nil, nil, 214,
- nil, nil, 218, nil, nil, nil, nil, nil, nil, nil,
- nil, 226, nil, nil, nil, 238, nil, nil, nil, 83,
- nil, nil, nil, nil, nil, nil, nil, 143, 232, 233,
- nil, nil, nil, nil, 152, 152, nil, nil, nil, nil,
- nil, nil, nil, 238, nil, nil, nil, nil, nil, nil,
+ 65, 113, 71, 70, 120, 139, 68, 126, 140, 154,
+ 151, 194, 130, 123, 209, 255, 62, 113, 247, 248,
+ 203, 227, 254, 150, 206, 193, 152, nil, nil, nil,
+ nil, nil, 213, nil, nil, nil, nil, nil, nil, nil,
+ 135, nil, nil, nil, nil, nil, nil, 266, nil, nil,
+ 264, nil, nil, nil, nil, 229, 126, 231, nil, nil,
+ nil, nil, nil, nil, nil, 113, 113, 173, 157, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, 152, nil, nil, nil, nil, nil, 240,
- nil, 239, 241, nil, 135, 135, nil, nil, nil, nil,
- nil, nil, nil, 247, 226, nil, 250, 255, 252, nil,
- 262, nil, nil, nil, 216, nil, nil, nil, nil, nil,
- 260, nil, nil, 261, nil, nil, nil, nil, nil, nil,
- 271, 264, 265, nil, 216, nil, nil, nil, nil, 267,
- 268, 135, nil, 269, nil, nil, nil, nil, nil, 273,
- 135 ]
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, 225, 224,
+ nil, nil, 192, 139, nil, nil, 221, nil, nil, nil,
+ nil, nil, nil, 200, nil, nil, 197, 196, nil, 135,
+ nil, nil, nil, nil, nil, nil, nil, 204, nil, nil,
+ 113, 215, nil, nil, nil, nil, nil, nil, nil, nil,
+ 217, nil, nil, nil, nil, nil, nil, 226, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, 139, 139, nil, nil,
+ nil, 253, 126, nil, nil, nil, nil, nil, nil, nil,
+ nil, 113, 113, nil, nil, nil, 235, nil, nil, nil,
+ nil, nil, nil, 241, 157, nil, nil, nil, 139, nil,
+ nil, 243, nil, 253, nil, nil, nil, nil, 249, nil,
+ nil, 217, nil, nil, nil, nil, nil, nil, 258, nil,
+ 259, nil, nil, nil, 2, nil, nil, nil, nil, 110,
+ nil, nil, nil, 119, nil, nil, nil, 197, 263, nil,
+ nil, 122, nil, nil, 124, nil, nil, nil, 113, 272,
+ nil, 127, 273, 197, 270, 113, 128, nil, nil, nil,
+ 131, nil, nil, 276, 136, nil, nil, 137, nil, 138,
+ nil, 145, nil, nil, nil, nil, 146, nil, nil, 147,
+ nil, nil, 148, 149, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, 158, 159, 160, 161,
+ 162, 163, 164, 165, 166, 167, 168, 169, nil, 170,
+ 171, 172, nil, nil, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
+ 190, 191, nil, nil, nil, nil, nil, nil, 195, nil,
+ nil, 199, nil, nil, nil, 2, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, 230, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, 240, nil, 242, 244, nil, nil, nil, nil,
+ nil, nil, nil, 250, 251, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, 261, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ 268, nil, nil, nil, 269 ]
racc_goto_check = [
- 2, 27, 39, 4, 4, 19, 4, 4, 30, 3,
- 4, 32, 1, 4, 22, 22, 4, 4, 37, 38,
- 33, 41, 20, 40, 4, 36, 42, nil, 35, nil,
- nil, nil, 5, 5, nil, nil, 2, 28, nil, nil,
- 4, nil, nil, 22, nil, nil, 37, 4, 9, 9,
- nil, nil, nil, nil, 4, 4, 34, nil, nil, 20,
- nil, 4, 4, nil, nil, nil, 4, nil, 32, nil,
- nil, nil, nil, nil, 32, nil, 20, nil, nil, 4,
- 20, nil, 32, 39, 27, 3, 4, 20, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 19, 4, 4,
- 30, 4, 41, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 5, 20, 5, 35, 28, 9,
- 34, 9, 9, nil, nil, nil, nil, nil, nil, 4,
- nil, nil, 4, nil, nil, nil, nil, nil, nil, nil,
- nil, 2, nil, nil, nil, 19, nil, nil, nil, 2,
- nil, nil, nil, nil, nil, nil, nil, 27, 20, 4,
- nil, nil, nil, nil, 19, 19, nil, nil, nil, nil,
- nil, nil, nil, 19, nil, nil, nil, nil, nil, nil,
+ 2, 9, 29, 5, 20, 19, 3, 28, 31, 40,
+ 42, 33, 35, 20, 36, 38, 1, 9, 22, 22,
+ 34, 39, 37, 41, 33, 24, 43, nil, nil, nil,
+ nil, nil, 33, nil, nil, nil, nil, nil, nil, nil,
+ 5, nil, nil, nil, nil, nil, nil, 38, nil, nil,
+ 22, nil, nil, nil, nil, 33, 28, 36, nil, nil,
+ nil, nil, nil, nil, nil, 9, 9, 35, 2, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, 19, nil, nil, nil, nil, nil, 2,
- nil, 4, 4, nil, 9, 9, nil, nil, nil, nil,
- nil, nil, nil, 20, 2, nil, 4, 2, 4, nil,
- 5, nil, nil, nil, 28, nil, nil, nil, nil, nil,
- 4, nil, nil, 4, nil, nil, nil, nil, nil, nil,
- 5, 20, 20, nil, 28, nil, nil, nil, nil, 4,
- 20, 9, nil, 20, nil, nil, nil, nil, nil, 2,
- 9 ]
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, 40, 42,
+ nil, nil, 20, 19, nil, nil, 31, nil, nil, nil,
+ nil, nil, nil, 20, nil, nil, 29, 5, nil, 5,
+ nil, nil, nil, nil, nil, nil, nil, 3, nil, nil,
+ 9, 20, nil, nil, nil, nil, nil, nil, nil, nil,
+ 2, nil, nil, nil, nil, nil, nil, 20, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, 19, 19, nil, nil,
+ nil, 19, 28, nil, nil, nil, nil, nil, nil, nil,
+ nil, 9, 9, nil, nil, nil, 20, nil, nil, nil,
+ nil, nil, nil, 20, 2, nil, nil, nil, 19, nil,
+ nil, 2, nil, 19, nil, nil, nil, nil, 2, nil,
+ nil, 2, nil, nil, nil, nil, nil, nil, 20, nil,
+ 20, nil, nil, nil, 4, nil, nil, nil, nil, 4,
+ nil, nil, nil, 4, nil, nil, nil, 29, 5, nil,
+ nil, 4, nil, nil, 4, nil, nil, nil, 9, 20,
+ nil, 4, 20, 29, 5, 9, 4, nil, nil, nil,
+ 4, nil, nil, 2, 4, nil, nil, 4, nil, 4,
+ nil, 4, nil, nil, nil, nil, 4, nil, nil, 4,
+ nil, nil, 4, 4, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, nil, 4,
+ 4, 4, nil, nil, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, nil, nil, nil, nil, nil, nil, 4, nil,
+ nil, 4, nil, nil, nil, 4, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, 4, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, 4, nil, 4, 4, nil, nil, nil, nil,
+ nil, nil, nil, 4, 4, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, 4, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ 4, nil, nil, nil, 4 ]
racc_goto_pointer = [
- nil, 12, 0, 9, 3, -13, nil, nil, nil, -1,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, -52,
- 3, nil, -212, nil, nil, nil, nil, -49, -9, nil,
- -49, nil, -60, -126, 31, -54, -182, -189, -103, -41,
- -20, -22, -17 ]
+ nil, 16, 0, 6, 234, 2, nil, nil, nil, -5,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, -41,
+ -6, nil, -199, nil, -84, nil, nil, nil, -15, 1,
+ nil, -38, nil, -101, -100, -22, -116, -200, -207, -132,
+ -52, -38, -51, -35 ]
racc_goto_default = [
- nil, nil, 208, nil, 129, 49, 55, 62, 66, 6,
- 12, 17, 23, 29, 35, 41, 48, 54, 61, 65,
- nil, 9, 147, 20, 26, 31, 38, 140, 50, 141,
- nil, 2, 127, nil, nil, nil, nil, nil, 43, nil,
- nil, nil, nil ]
+ nil, nil, 210, nil, 134, 6, 11, 13, 16, 21,
+ 26, 31, 35, 39, 44, 48, 50, 53, 56, 60,
+ nil, 66, 141, 4, 8, 12, 14, 15, 118, 22,
+ 111, nil, 41, 132, nil, nil, nil, nil, nil, 61,
+ nil, nil, nil, nil ]
racc_reduce_table = [
0, 0, :racc_error,
- 0, 91, :_reduce_1,
- 1, 91, :_reduce_2,
- 1, 91, :_reduce_3,
- 1, 93, :_reduce_4,
- 3, 93, :_reduce_5,
- 2, 93, :_reduce_6,
- 1, 94, :_reduce_none,
- 1, 94, :_reduce_none,
- 1, 94, :_reduce_none,
- 1, 94, :_reduce_none,
- 1, 94, :_reduce_none,
- 1, 94, :_reduce_none,
- 1, 94, :_reduce_none,
- 1, 94, :_reduce_none,
- 1, 94, :_reduce_none,
- 1, 94, :_reduce_none,
- 1, 94, :_reduce_none,
- 1, 94, :_reduce_none,
- 1, 94, :_reduce_none,
- 1, 94, :_reduce_none,
- 1, 94, :_reduce_none,
- 3, 110, :_reduce_22,
- 2, 110, :_reduce_23,
- 1, 92, :_reduce_none,
- 1, 92, :_reduce_none,
- 1, 111, :_reduce_26,
- 1, 111, :_reduce_27,
- 1, 111, :_reduce_28,
- 1, 111, :_reduce_29,
- 1, 111, :_reduce_30,
- 1, 111, :_reduce_31,
- 1, 111, :_reduce_32,
- 1, 111, :_reduce_33,
- 1, 111, :_reduce_34,
- 1, 111, :_reduce_35,
- 1, 111, :_reduce_36,
- 1, 111, :_reduce_37,
- 3, 100, :_reduce_38,
- 3, 112, :_reduce_39,
- 3, 112, :_reduce_40,
- 1, 112, :_reduce_41,
- 2, 104, :_reduce_42,
- 1, 109, :_reduce_43,
- 2, 98, :_reduce_44,
- 2, 98, :_reduce_45,
- 2, 98, :_reduce_46,
- 2, 98, :_reduce_47,
- 2, 98, :_reduce_48,
- 2, 98, :_reduce_49,
- 2, 98, :_reduce_50,
- 2, 98, :_reduce_51,
- 2, 98, :_reduce_52,
- 2, 98, :_reduce_53,
- 2, 98, :_reduce_54,
- 3, 98, :_reduce_55,
- 3, 98, :_reduce_56,
- 3, 98, :_reduce_57,
- 3, 98, :_reduce_58,
- 3, 98, :_reduce_59,
- 3, 98, :_reduce_60,
- 3, 98, :_reduce_61,
- 3, 98, :_reduce_62,
- 3, 98, :_reduce_63,
- 3, 98, :_reduce_64,
- 3, 98, :_reduce_65,
- 3, 98, :_reduce_66,
- 3, 98, :_reduce_67,
- 3, 98, :_reduce_68,
- 3, 98, :_reduce_69,
- 3, 98, :_reduce_70,
- 3, 98, :_reduce_71,
- 3, 98, :_reduce_72,
- 3, 98, :_reduce_73,
- 3, 98, :_reduce_74,
- 3, 98, :_reduce_75,
- 3, 98, :_reduce_76,
- 3, 98, :_reduce_77,
- 3, 98, :_reduce_78,
- 3, 98, :_reduce_79,
- 3, 98, :_reduce_80,
- 3, 98, :_reduce_81,
- 3, 98, :_reduce_82,
- 3, 98, :_reduce_83,
- 3, 98, :_reduce_84,
- 3, 98, :_reduce_85,
- 3, 97, :_reduce_86,
- 2, 97, :_reduce_87,
- 1, 113, :_reduce_88,
- 3, 113, :_reduce_89,
- 1, 95, :_reduce_90,
- 1, 95, :_reduce_91,
- 1, 95, :_reduce_92,
- 1, 95, :_reduce_93,
- 1, 95, :_reduce_94,
- 2, 95, :_reduce_95,
- 2, 95, :_reduce_96,
- 2, 117, :_reduce_97,
- 1, 117, :_reduce_98,
- 1, 117, :_reduce_99,
- 3, 119, :_reduce_100,
- 3, 115, :_reduce_101,
- 0, 120, :_reduce_102,
- 1, 120, :_reduce_103,
- 3, 120, :_reduce_104,
- 3, 120, :_reduce_105,
- 4, 120, :_reduce_106,
- 3, 120, :_reduce_107,
- 1, 96, :_reduce_108,
- 2, 96, :_reduce_109,
- 1, 96, :_reduce_110,
- 3, 108, :_reduce_111,
- 4, 118, :_reduce_112,
- 4, 118, :_reduce_113,
- 4, 121, :_reduce_114,
- 6, 99, :_reduce_115,
- 7, 99, :_reduce_116,
- 3, 114, :_reduce_117,
- 0, 122, :_reduce_118,
- 1, 122, :_reduce_119,
- 3, 122, :_reduce_120,
- 3, 122, :_reduce_121,
- 4, 122, :_reduce_122,
- 3, 122, :_reduce_123,
- 3, 102, :_reduce_124,
- 4, 102, :_reduce_125,
- 5, 102, :_reduce_126,
- 3, 123, :_reduce_127,
- 2, 103, :_reduce_128,
- 3, 116, :_reduce_129,
- 3, 105, :_reduce_130,
- 4, 106, :_reduce_131,
- 4, 106, :_reduce_132,
- 1, 124, :_reduce_133,
- 3, 124, :_reduce_134,
- 2, 125, :_reduce_135,
- 4, 125, :_reduce_136,
- 5, 107, :_reduce_137,
- 7, 107, :_reduce_138,
- 1, 126, :_reduce_139,
- 2, 126, :_reduce_140,
- 3, 127, :_reduce_141,
- 4, 127, :_reduce_142,
- 1, 127, :_reduce_none,
- 3, 128, :_reduce_144,
- 2, 129, :_reduce_145,
- 1, 130, :_reduce_146,
- 2, 130, :_reduce_147,
- 0, 131, :_reduce_148,
- 2, 131, :_reduce_149,
- 1, 132, :_reduce_150,
- 2, 132, :_reduce_151,
- 2, 101, :_reduce_152,
- 3, 101, :_reduce_153,
- 3, 101, :_reduce_154 ]
+ 0, 92, :_reduce_1,
+ 1, 92, :_reduce_2,
+ 1, 92, :_reduce_3,
+ 1, 94, :_reduce_4,
+ 3, 94, :_reduce_5,
+ 2, 94, :_reduce_6,
+ 1, 95, :_reduce_none,
+ 1, 95, :_reduce_none,
+ 1, 95, :_reduce_none,
+ 1, 95, :_reduce_none,
+ 1, 95, :_reduce_none,
+ 1, 95, :_reduce_none,
+ 1, 95, :_reduce_none,
+ 1, 95, :_reduce_none,
+ 1, 95, :_reduce_none,
+ 1, 95, :_reduce_none,
+ 1, 95, :_reduce_none,
+ 1, 95, :_reduce_none,
+ 1, 95, :_reduce_none,
+ 1, 95, :_reduce_none,
+ 1, 95, :_reduce_none,
+ 3, 111, :_reduce_22,
+ 2, 111, :_reduce_23,
+ 1, 93, :_reduce_none,
+ 1, 93, :_reduce_none,
+ 1, 112, :_reduce_26,
+ 1, 112, :_reduce_27,
+ 1, 112, :_reduce_28,
+ 1, 112, :_reduce_29,
+ 1, 112, :_reduce_30,
+ 1, 112, :_reduce_31,
+ 1, 112, :_reduce_32,
+ 1, 112, :_reduce_33,
+ 1, 112, :_reduce_34,
+ 1, 112, :_reduce_35,
+ 1, 112, :_reduce_36,
+ 1, 112, :_reduce_37,
+ 3, 101, :_reduce_38,
+ 3, 113, :_reduce_39,
+ 3, 113, :_reduce_40,
+ 1, 113, :_reduce_41,
+ 2, 105, :_reduce_42,
+ 1, 110, :_reduce_43,
+ 2, 99, :_reduce_44,
+ 2, 99, :_reduce_45,
+ 2, 99, :_reduce_46,
+ 2, 99, :_reduce_47,
+ 2, 99, :_reduce_48,
+ 2, 99, :_reduce_49,
+ 2, 99, :_reduce_50,
+ 2, 99, :_reduce_51,
+ 2, 99, :_reduce_52,
+ 2, 99, :_reduce_53,
+ 2, 99, :_reduce_54,
+ 3, 99, :_reduce_55,
+ 3, 99, :_reduce_56,
+ 3, 99, :_reduce_57,
+ 3, 99, :_reduce_58,
+ 3, 99, :_reduce_59,
+ 3, 99, :_reduce_60,
+ 3, 99, :_reduce_61,
+ 3, 99, :_reduce_62,
+ 3, 99, :_reduce_63,
+ 3, 99, :_reduce_64,
+ 3, 99, :_reduce_65,
+ 3, 99, :_reduce_66,
+ 3, 99, :_reduce_67,
+ 3, 99, :_reduce_68,
+ 3, 99, :_reduce_69,
+ 3, 99, :_reduce_70,
+ 3, 99, :_reduce_71,
+ 3, 99, :_reduce_72,
+ 3, 99, :_reduce_73,
+ 3, 99, :_reduce_74,
+ 3, 99, :_reduce_75,
+ 3, 99, :_reduce_76,
+ 3, 99, :_reduce_77,
+ 3, 99, :_reduce_78,
+ 3, 99, :_reduce_79,
+ 3, 99, :_reduce_80,
+ 3, 99, :_reduce_81,
+ 3, 99, :_reduce_82,
+ 3, 99, :_reduce_83,
+ 3, 99, :_reduce_84,
+ 3, 99, :_reduce_85,
+ 3, 98, :_reduce_86,
+ 2, 98, :_reduce_87,
+ 1, 114, :_reduce_88,
+ 3, 114, :_reduce_89,
+ 1, 115, :_reduce_none,
+ 1, 115, :_reduce_91,
+ 1, 96, :_reduce_92,
+ 1, 96, :_reduce_93,
+ 1, 96, :_reduce_94,
+ 1, 96, :_reduce_95,
+ 1, 96, :_reduce_96,
+ 2, 96, :_reduce_97,
+ 2, 96, :_reduce_98,
+ 2, 119, :_reduce_99,
+ 1, 119, :_reduce_100,
+ 1, 119, :_reduce_101,
+ 3, 121, :_reduce_102,
+ 3, 117, :_reduce_103,
+ 0, 122, :_reduce_104,
+ 1, 122, :_reduce_105,
+ 3, 122, :_reduce_106,
+ 3, 122, :_reduce_107,
+ 4, 122, :_reduce_108,
+ 3, 122, :_reduce_109,
+ 1, 97, :_reduce_110,
+ 2, 97, :_reduce_111,
+ 1, 97, :_reduce_112,
+ 3, 109, :_reduce_113,
+ 4, 120, :_reduce_114,
+ 4, 120, :_reduce_115,
+ 4, 123, :_reduce_116,
+ 6, 100, :_reduce_117,
+ 7, 100, :_reduce_118,
+ 3, 116, :_reduce_119,
+ 0, 124, :_reduce_120,
+ 1, 124, :_reduce_121,
+ 3, 124, :_reduce_122,
+ 3, 124, :_reduce_123,
+ 4, 124, :_reduce_124,
+ 3, 124, :_reduce_125,
+ 3, 103, :_reduce_126,
+ 4, 103, :_reduce_127,
+ 5, 103, :_reduce_128,
+ 3, 125, :_reduce_129,
+ 2, 104, :_reduce_130,
+ 3, 118, :_reduce_131,
+ 3, 106, :_reduce_132,
+ 4, 107, :_reduce_133,
+ 4, 107, :_reduce_134,
+ 1, 126, :_reduce_135,
+ 3, 126, :_reduce_136,
+ 2, 127, :_reduce_137,
+ 4, 127, :_reduce_138,
+ 5, 108, :_reduce_139,
+ 7, 108, :_reduce_140,
+ 1, 128, :_reduce_141,
+ 2, 128, :_reduce_142,
+ 3, 129, :_reduce_143,
+ 4, 129, :_reduce_144,
+ 1, 129, :_reduce_none,
+ 3, 130, :_reduce_146,
+ 2, 131, :_reduce_147,
+ 1, 132, :_reduce_148,
+ 2, 132, :_reduce_149,
+ 0, 133, :_reduce_150,
+ 2, 133, :_reduce_151,
+ 1, 134, :_reduce_152,
+ 2, 134, :_reduce_153,
+ 2, 102, :_reduce_154,
+ 3, 102, :_reduce_155,
+ 3, 102, :_reduce_156 ]
-racc_reduce_n = 155
+racc_reduce_n = 157
-racc_shift_n = 275
+racc_shift_n = 277
racc_token_table = {
false => 0,
@@ -868,80 +910,81 @@ racc_token_table = {
:PROPERTY_ACCESS => 15,
:CODE => 16,
:PARAM => 17,
- :NEW => 18,
- :RETURN => 19,
- :TRY => 20,
- :CATCH => 21,
- :FINALLY => 22,
- :THROW => 23,
- :BREAK => 24,
- :CONTINUE => 25,
- :FOR => 26,
- :IN => 27,
- :WHILE => 28,
- :SWITCH => 29,
- :WHEN => 30,
- :DELETE => 31,
- :INSTANCEOF => 32,
- :TYPEOF => 33,
- :SUPER => 34,
- :EXTENDS => 35,
- :NEWLINE => 36,
- :COMMENT => 37,
- :JS => 38,
- :INDENT => 39,
- :OUTDENT => 40,
- :UMINUS => 41,
- :NOT => 42,
- "!" => 43,
- "!!" => 44,
- "~" => 45,
- "++" => 46,
- "--" => 47,
- "*" => 48,
- "/" => 49,
- "%" => 50,
- "+" => 51,
- "-" => 52,
- "<<" => 53,
- ">>" => 54,
- ">>>" => 55,
- "&" => 56,
- "|" => 57,
- "^" => 58,
- "<=" => 59,
- "<" => 60,
- ">" => 61,
- ">=" => 62,
- "==" => 63,
- "!=" => 64,
- :IS => 65,
- :ISNT => 66,
- "&&" => 67,
- "||" => 68,
- :AND => 69,
- :OR => 70,
- "-=" => 71,
- "+=" => 72,
- "/=" => 73,
- "*=" => 74,
- "%=" => 75,
- "." => 76,
- :ASSIGN => 77,
- "||=" => 78,
- "&&=" => 79,
- "=>" => 80,
- "\n" => 81,
- ";" => 82,
- "," => 83,
- "[" => 84,
- "]" => 85,
- "{" => 86,
- "}" => 87,
- "(" => 88,
- ")" => 89 }
+ :SPLAT => 18,
+ :NEW => 19,
+ :RETURN => 20,
+ :TRY => 21,
+ :CATCH => 22,
+ :FINALLY => 23,
+ :THROW => 24,
+ :BREAK => 25,
+ :CONTINUE => 26,
+ :FOR => 27,
+ :IN => 28,
+ :WHILE => 29,
+ :SWITCH => 30,
+ :WHEN => 31,
+ :DELETE => 32,
+ :INSTANCEOF => 33,
+ :TYPEOF => 34,
+ :SUPER => 35,
+ :EXTENDS => 36,
+ :NEWLINE => 37,
+ :COMMENT => 38,
+ :JS => 39,
+ :INDENT => 40,
+ :OUTDENT => 41,
+ :UMINUS => 42,
+ :NOT => 43,
+ "!" => 44,
+ "!!" => 45,
+ "~" => 46,
+ "++" => 47,
+ "--" => 48,
+ "*" => 49,
+ "/" => 50,
+ "%" => 51,
+ "+" => 52,
+ "-" => 53,
+ "<<" => 54,
+ ">>" => 55,
+ ">>>" => 56,
+ "&" => 57,
+ "|" => 58,
+ "^" => 59,
+ "<=" => 60,
+ "<" => 61,
+ ">" => 62,
+ ">=" => 63,
+ "==" => 64,
+ "!=" => 65,
+ :IS => 66,
+ :ISNT => 67,
+ "&&" => 68,
+ "||" => 69,
+ :AND => 70,
+ :OR => 71,
+ "-=" => 72,
+ "+=" => 73,
+ "/=" => 74,
+ "*=" => 75,
+ "%=" => 76,
+ "." => 77,
+ :ASSIGN => 78,
+ "||=" => 79,
+ "&&=" => 80,
+ "=>" => 81,
+ "\n" => 82,
+ ";" => 83,
+ "," => 84,
+ "[" => 85,
+ "]" => 86,
+ "{" => 87,
+ "}" => 88,
+ "(" => 89,
+ ")" => 90 }
-racc_nt_base = 90
+racc_nt_base = 91
racc_use_result_var = true
@@ -980,6 +1023,7 @@ Racc_token_to_s_table = [
"PROPERTY_ACCESS",
"CODE",
"PARAM",
+ "SPLAT",
"NEW",
"RETURN",
"TRY",
@@ -1076,6 +1120,7 @@ Racc_token_to_s_table = [
"Literal",
"AssignObj",
"ParamList",
+ "Param",
"Array",
"Object",
"Parenthetical",
@@ -1640,451 +1685,460 @@ module_eval(<<'.,.,', 'grammar.y', 190)
end
.,.,
+# reduce 90 omitted
+
module_eval(<<'.,.,', 'grammar.y', 195)
- def _reduce_90(val, _values, result)
- result = ValueNode.new(val[0])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'grammar.y', 196)
def _reduce_91(val, _values, result)
- result = ValueNode.new(val[0])
+ result = SplatNode.new(val[0])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 197)
+module_eval(<<'.,.,', 'grammar.y', 200)
def _reduce_92(val, _values, result)
result = ValueNode.new(val[0])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 198)
+module_eval(<<'.,.,', 'grammar.y', 201)
def _reduce_93(val, _values, result)
result = ValueNode.new(val[0])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 199)
+module_eval(<<'.,.,', 'grammar.y', 202)
def _reduce_94(val, _values, result)
result = ValueNode.new(val[0])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 200)
+module_eval(<<'.,.,', 'grammar.y', 203)
def _reduce_95(val, _values, result)
+ result = ValueNode.new(val[0])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.y', 204)
+ def _reduce_96(val, _values, result)
+ result = ValueNode.new(val[0])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.y', 205)
+ def _reduce_97(val, _values, result)
result = val[0] << val[1]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 201)
- def _reduce_96(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 206)
+ def _reduce_98(val, _values, result)
result = ValueNode.new(val[0], [val[1]])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 206)
- def _reduce_97(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 211)
+ def _reduce_99(val, _values, result)
result = AccessorNode.new(val[1])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 207)
- def _reduce_98(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 212)
+ def _reduce_100(val, _values, result)
result = val[0]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 208)
- def _reduce_99(val, _values, result)
- result = SliceNode.new(val[0])
- result
- end
-.,.,
-
module_eval(<<'.,.,', 'grammar.y', 213)
- def _reduce_100(val, _values, result)
- result = IndexNode.new(val[1])
+ def _reduce_101(val, _values, result)
+ result = SliceNode.new(val[0])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 218)
- def _reduce_101(val, _values, result)
- result = ObjectNode.new(val[1])
+ def _reduce_102(val, _values, result)
+ result = IndexNode.new(val[1])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 223)
- def _reduce_102(val, _values, result)
- result = []
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'grammar.y', 224)
def _reduce_103(val, _values, result)
- result = val
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'grammar.y', 225)
- def _reduce_104(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'grammar.y', 226)
- def _reduce_105(val, _values, result)
- result = val[0] << val[2]
+ result = ObjectNode.new(val[1])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 228)
- def _reduce_106(val, _values, result)
- result = val[0] << val[3]
+ def _reduce_104(val, _values, result)
+ result = []
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 229)
+ def _reduce_105(val, _values, result)
+ result = val
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.y', 230)
+ def _reduce_106(val, _values, result)
+ result = val[0] << val[2]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.y', 231)
def _reduce_107(val, _values, result)
- result = val[1]
+ result = val[0] << val[2]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.y', 233)
+ def _reduce_108(val, _values, result)
+ result = val[0] << val[3]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 234)
- def _reduce_108(val, _values, result)
- result = val[0]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'grammar.y', 235)
def _reduce_109(val, _values, result)
- result = val[1].new_instance
+ result = val[1]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 236)
+module_eval(<<'.,.,', 'grammar.y', 239)
def _reduce_110(val, _values, result)
result = val[0]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 241)
+module_eval(<<'.,.,', 'grammar.y', 240)
def _reduce_111(val, _values, result)
- result = ExtendsNode.new(val[0], val[2])
+ result = val[1].new_instance
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.y', 241)
+ def _reduce_112(val, _values, result)
+ result = val[0]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 246)
- def _reduce_112(val, _values, result)
- result = CallNode.new(val[0], val[2])
+ def _reduce_113(val, _values, result)
+ result = ExtendsNode.new(val[0], val[2])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 247)
- def _reduce_113(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 251)
+ def _reduce_114(val, _values, result)
result = CallNode.new(val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 252)
- def _reduce_114(val, _values, result)
- result = CallNode.new(:super, val[2])
+ def _reduce_115(val, _values, result)
+ result = CallNode.new(val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 257)
- def _reduce_115(val, _values, result)
+ def _reduce_116(val, _values, result)
+ result = CallNode.new(:super, val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.y', 262)
+ def _reduce_117(val, _values, result)
result = RangeNode.new(val[1], val[4])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 258)
- def _reduce_116(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 263)
+ def _reduce_118(val, _values, result)
result = RangeNode.new(val[1], val[5], true)
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 263)
- def _reduce_117(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 268)
+ def _reduce_119(val, _values, result)
result = ArrayNode.new(val[1])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 268)
- def _reduce_118(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 273)
+ def _reduce_120(val, _values, result)
result = []
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 269)
- def _reduce_119(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 274)
+ def _reduce_121(val, _values, result)
result = val
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 270)
- def _reduce_120(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'grammar.y', 271)
- def _reduce_121(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'grammar.y', 272)
+module_eval(<<'.,.,', 'grammar.y', 275)
def _reduce_122(val, _values, result)
+ result = val[0] << val[2]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.y', 276)
+ def _reduce_123(val, _values, result)
+ result = val[0] << val[2]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.y', 277)
+ def _reduce_124(val, _values, result)
result = val[0] << val[3]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 273)
- def _reduce_123(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 278)
+ def _reduce_125(val, _values, result)
result = val[1]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 278)
- def _reduce_124(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 283)
+ def _reduce_126(val, _values, result)
result = TryNode.new(val[1], val[2][0], val[2][1])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 279)
- def _reduce_125(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 284)
+ def _reduce_127(val, _values, result)
result = TryNode.new(val[1], nil, nil, val[3])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 281)
- def _reduce_126(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 286)
+ def _reduce_128(val, _values, result)
result = TryNode.new(val[1], val[2][0], val[2][1], val[4])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 286)
- def _reduce_127(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 291)
+ def _reduce_129(val, _values, result)
result = [val[1], val[2]]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 291)
- def _reduce_128(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 296)
+ def _reduce_130(val, _values, result)
result = ThrowNode.new(val[1])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 296)
- def _reduce_129(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 301)
+ def _reduce_131(val, _values, result)
result = ParentheticalNode.new(val[1], val[0].line)
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 301)
- def _reduce_130(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 306)
+ def _reduce_132(val, _values, result)
result = WhileNode.new(val[1], val[2])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 308)
- def _reduce_131(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 313)
+ def _reduce_133(val, _values, result)
result = ForNode.new(val[0], val[3][0], val[2][0], val[3][1], val[2][1])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 309)
- def _reduce_132(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 314)
+ def _reduce_134(val, _values, result)
result = ForNode.new(val[3], val[2][0], val[1][0], val[2][1], val[1][1])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 314)
- def _reduce_133(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 319)
+ def _reduce_135(val, _values, result)
result = val
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 315)
- def _reduce_134(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 320)
+ def _reduce_136(val, _values, result)
result = [val[0], val[2]]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 320)
- def _reduce_135(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 325)
+ def _reduce_137(val, _values, result)
result = [val[1]]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 322)
- def _reduce_136(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 327)
+ def _reduce_138(val, _values, result)
result = [val[1], val[3]]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 328)
- def _reduce_137(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 333)
+ def _reduce_139(val, _values, result)
result = val[3].rewrite_condition(val[1])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 330)
- def _reduce_138(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 335)
+ def _reduce_140(val, _values, result)
result = val[3].rewrite_condition(val[1]).add_else(val[5])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 335)
- def _reduce_139(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 340)
+ def _reduce_141(val, _values, result)
result = val[0]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 336)
- def _reduce_140(val, _values, result)
- result = val[0] << val[1]
- result
- end
-.,.,
-
module_eval(<<'.,.,', 'grammar.y', 341)
- def _reduce_141(val, _values, result)
- result = IfNode.new(val[1], val[2], nil, {:statement => true})
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'grammar.y', 342)
def _reduce_142(val, _values, result)
+ result = val[0] << val[1]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.y', 346)
+ def _reduce_143(val, _values, result)
result = IfNode.new(val[1], val[2], nil, {:statement => true})
result
end
.,.,
-# reduce 143 omitted
-
-module_eval(<<'.,.,', 'grammar.y', 350)
+module_eval(<<'.,.,', 'grammar.y', 347)
def _reduce_144(val, _values, result)
+ result = IfNode.new(val[1], val[2], nil, {:statement => true})
+ result
+ end
+.,.,
+
+# reduce 145 omitted
+
+module_eval(<<'.,.,', 'grammar.y', 355)
+ def _reduce_146(val, _values, result)
result = IfNode.new(val[1], val[2])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 355)
- def _reduce_145(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 360)
+ def _reduce_147(val, _values, result)
result = val[1].force_statement
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 360)
- def _reduce_146(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 365)
+ def _reduce_148(val, _values, result)
result = val[0]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 361)
- def _reduce_147(val, _values, result)
- result = val[0].add_else(val[1])
- result
- end
-.,.,
-
module_eval(<<'.,.,', 'grammar.y', 366)
- def _reduce_148(val, _values, result)
+ def _reduce_149(val, _values, result)
+ result = val[0].add_else(val[1])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.y', 371)
+ def _reduce_150(val, _values, result)
result = nil
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 367)
- def _reduce_149(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 372)
+ def _reduce_151(val, _values, result)
result = val[1]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 372)
- def _reduce_150(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 377)
+ def _reduce_152(val, _values, result)
result = val[0]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 373)
- def _reduce_151(val, _values, result)
- result = val[0].add_else(val[1])
- result
- end
-.,.,
-
module_eval(<<'.,.,', 'grammar.y', 378)
- def _reduce_152(val, _values, result)
+ def _reduce_153(val, _values, result)
result = val[0].add_else(val[1])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 379)
- def _reduce_153(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 383)
+ def _reduce_154(val, _values, result)
+ result = val[0].add_else(val[1])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.y', 384)
+ def _reduce_155(val, _values, result)
result = IfNode.new(val[2], Expressions.new([val[0]]), nil, {:statement => true})
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 380)
- def _reduce_154(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 385)
+ def _reduce_156(val, _values, result)
result = IfNode.new(val[2], Expressions.new([val[0]]), nil, {:statement => true, :invert => true})
result
end
diff --git a/test/fixtures/execution/test_splats.coffee b/test/fixtures/execution/test_splats.coffee
new file mode 100644
index 00000000..6b273137
--- /dev/null
+++ b/test/fixtures/execution/test_splats.coffee
@@ -0,0 +1,6 @@
+func: first, second, *rest =>
+ rest.join(' ')
+
+result: func(1, 2, 3, 4, 5)
+
+print(result is "3 4 5")
\ No newline at end of file