diff --git a/lib/coffee_script/CoffeeScript.tmbundle/Syntaxes/CoffeeScript.tmLanguage b/lib/coffee_script/CoffeeScript.tmbundle/Syntaxes/CoffeeScript.tmLanguage index 990a2368..df92adbf 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-Z_?.$]*)\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-Z_?., $]*)\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 6fd9df12..b8089cdb 100644 --- a/lib/coffee_script/grammar.y +++ b/lib/coffee_script/grammar.y @@ -33,7 +33,7 @@ prechigh right THROW FOR IN WHILE NEW SUPER left UNLESS IF ELSE EXTENDS left ASSIGN '||=' '&&=' - right RETURN + right RETURN INDENT left OUTDENT preclow @@ -88,8 +88,8 @@ rule ; Block: - Expression { result = Expressions.new(val) } - | INDENT Expressions Outdent { result = val[1] } + # Expression { result = Expressions.new(val) } + INDENT Expressions Outdent { result = val[1] } ; Outdent: diff --git a/lib/coffee_script/lexer.rb b/lib/coffee_script/lexer.rb index b0fb531d..abd45592 100644 --- a/lib/coffee_script/lexer.rb +++ b/lib/coffee_script/lexer.rb @@ -131,17 +131,16 @@ module CoffeeScript size = indent.size return literal_token if size == @indent if size > @indent - tag = :INDENT + token(:INDENT, size - @indent) @indent = size @indents << @indent else - tag = :OUTDENT + token(:OUTDENT, @indent - size) @indents.pop while @indents.last && ((@indents.last || 0) > size) @indent = @indents.last || 0 end @line += 1 @i += (size + 1) - token(tag, size) end # Matches and consumes non-meaningful whitespace. @@ -150,18 +149,20 @@ module CoffeeScript @i += whitespace.length end + # Multiple newlines get merged together. + # Use a trailing \ to escape newlines. + def newline_token(newlines) + return false unless newlines = @chunk[NEWLINE, 1] + @line += newlines.length + token("\n", "\n") unless ["\n", "\\"].include?(last_value) + @tokens.pop if last_value == "\\" + @i += newlines.length + end + # We treat all other single characters as a token. Eg.: ( ) , . ! # Multi-character operators are also literal tokens, so that Racc can assign - # the proper order of operations. Multiple newlines get merged together. - # Use a trailing \ to escape newlines. + # the proper order of operations. def literal_token - value = @chunk[NEWLINE, 1] - if value - @line += value.length - token("\n", "\n") unless ["\n", "\\"].include?(last_value) - @tokens.pop if last_value == "\\" - return @i += value.length - end value = @chunk[OPERATOR, 1] tag_parameters if value && value.match(CODE) value ||= @chunk[0,1] diff --git a/lib/coffee_script/parser.rb b/lib/coffee_script/parser.rb index 46c2806e..ff90d409 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', 400) +module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 411) # Lex and parse a CoffeeScript. def parse(code) # Uncomment the following line to enable grammar debugging, in combination @@ -34,258 +34,250 @@ module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 400) ##### State transition tables begin ### clist = [ -'9,259,175,239,36,43,51,56,64,2,7,15,19,24,234,156,41,47,55,60,16,21', -'10,20,27,-152,-152,39,46,210,62,239,5,11,16,21,30,35,131,50,54,63,1', -'6,14,249,130,-152,-152,42,154,36,43,51,56,64,2,7,15,19,24,16,21,202', -'200,203,235,206,201,30,20,27,153,226,260,240,136,16,21,25,216,33,9,48', -'35,59,36,43,51,56,64,2,7,15,19,24,217,211,41,47,55,60,218,240,10,20', -'27,16,21,39,46,222,62,226,5,11,74,251,30,35,243,50,54,63,1,6,14,72,124', -'233,48,42,59,36,43,51,56,64,2,7,15,19,24,137,,267,,139,131,16,21,,20', -'27,16,21,130,,136,136,,25,,33,9,48,35,59,36,43,51,56,64,2,7,15,19,24', -',30,41,47,55,60,,265,10,20,27,16,21,39,46,,62,,5,11,16,21,30,35,,50', -'54,63,1,6,14,,124,,48,42,59,36,43,51,56,64,2,7,15,19,24,137,137,269', -'270,146,139,,16,21,20,27,131,89,93,,136,136,136,25,130,33,9,48,35,59', -'36,43,51,56,64,2,7,15,19,24,-152,-152,41,47,55,60,,30,10,20,27,79,80', -'39,46,,62,,5,11,89,93,30,35,247,50,54,63,1,6,14,,124,,48,42,59,36,43', -'51,56,64,2,7,15,19,24,137,137,137,261,139,146,139,248,,20,27,16,21,136', -',136,136,,25,,33,9,48,35,59,36,43,51,56,64,2,7,15,19,24,135,135,41,47', -'55,60,,240,10,20,27,16,21,39,46,,62,,5,11,89,93,30,35,,50,54,63,1,6', -'14,,124,,48,42,59,-152,-152,196,140,140,-152,-152,,137,,137,137,146', -',139,139,16,21,,194,16,21,,194,,215,16,21,25,236,33,9,48,,59,36,43,51', -'56,64,2,7,15,19,24,-152,-152,41,47,55,60,16,21,10,20,27,16,21,39,46', -',62,,5,11,-152,-152,30,35,,50,54,63,1,6,14,,,,,42,89,93,96,99,104,107', -'110,113,115,117,85,88,92,95,98,103,106,109,112,114,116,16,21,,194,,', -',,25,232,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10', -'20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,89,93,96,99', -'104,107,110,113,115,117,85,88,92,95,98,103,106,109,112,114,116,16,21', -',194,,195,16,21,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47', -'55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,89', -'93,96,99,104,107,110,113,115,117,85,88,92,95,98,103,106,109,112,114', -'116,89,93,96,99,104,107,110,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19', -'24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6', -'14,,,,,42,89,93,96,99,104,107,110,113,115,117,85,88,92,95,98,103,106', -'109,112,114,116,89,93,96,99,104,107,110,,25,,33,9,48,,59,36,43,51,56', -'64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,', -'50,54,63,1,6,14,,,,,42,89,93,96,99,104,107,110,113,115,117,85,88,92', -'95,98,103,106,109,112,114,116,89,93,96,99,104,,16,21,25,,33,9,48,,59', -'36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5', -'11,,,30,35,,50,54,63,1,6,14,,,,,42,89,93,96,99,104,107,110,113,115,117', -'85,88,92,95,98,103,106,109,112,114,116,89,93,96,99,104,,16,21,25,,33', -'9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46', -',62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,89,93,96,99,104,107,110,113', -'115,117,85,88,92,95,98,103,106,109,112,114,116,,,,,,,16,21,25,,33,9', -'48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46', -',62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,89,93,96,99,104,107,110,113', -'115,117,85,88,92,95,98,103,106,109,112,114,116,,,,,,,16,21,25,,33,9', -'48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46', -',62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,89,93,96,99,104,107,110,113', -'115,117,85,88,92,89,93,96,99,104,107,110,113,115,117,85,88,92,,,,25', -',33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,', -'39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,89,93,96,99,104,107', -'110,113,115,117,85,88,92,89,93,96,99,104,107,110,113,115,117,85,88,92', -',,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20', -'27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,89,93,96,99,104', -'107,110,113,115,117,89,93,96,99,104,107,110,113,115,117,89,93,96,99', -'104,107,110,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55', -'60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,89,93', -'96,99,104,107,110,113,115,117,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36', -'43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11', -',,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33', -'9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46', -',62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,', -',16,21,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10', -'20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,', -',,,,,,,,,,,,,,,16,21,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41', -'47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19', -'24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6', -'14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64', -'2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50', -'54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36', -'43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11', -',,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33', -'9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46', -',62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,', -',16,21,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10', -'20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,', -',,,,,,,,,,,,,,,16,21,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41', -'47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19', -'24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6', -'14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64', -'2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50', -'54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36', -'43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11', -',,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,16,21,25', -',33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,', -'39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,', -',,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,', -',10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,', -',,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41', -'47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,255,48,,59,36,43,51,56,64,2,7,15', -'19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1', -'6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,16,21,25,,33,9,48,,59,36,43,51', -'56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35', -',50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59', -'36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5', -'11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,', -'33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39', -'46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,', -',,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10', -'20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,', -',,,,,,,,,,,,,,,16,21,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41', -'47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19', -'24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6', -'14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64', -'2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50', -'54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36', -'43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11', -',,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,16,21,25', -',33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,', -'39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,', -',,,,,,,16,21,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55', -'60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,', -',,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24', -',,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14', -',,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2', -'7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54', -'63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43', -'51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30', -'35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48', -',59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62', -',5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25', -',33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,', -'39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,', -',,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,', -',10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,', -',,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41', -'47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19', -'24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6', -'14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64', -'2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50', -'54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36', -'43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11', -',,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33', -'9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46', -',62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,', -',,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20', -'27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,', -',,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55', -'60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,', -',,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24', -',,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14', -',,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2', -'7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54', -'63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43', -'51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30', -'35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48', -',59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62', -',5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25', -',33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,', -'39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,', -',,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,', -',10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,', -',,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41', -'47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19', -'24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6', -'14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64', -'2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50', -'54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36', -'43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11', -',,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33', -'9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46', -',62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,', -',,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20', -'27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,', -',,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55', -'60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,', -',,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24', -',,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14', -',,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2', -'7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54', -'63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43', -'51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30', -'35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48', -',59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,,39,46,,62', -',5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25', -',33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,,,10,20,27,,', -'39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,,,,,,,,,,,,,', -',,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41,47,55,60,', -',10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42,,,,,,,,', -',,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19,24,,,41', -'47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6,14,,,,,42', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,,33,9,48,,59,36,43,51,56,64,2,7,15,19', -'24,,,41,47,55,60,,,10,20,27,,,39,46,,62,,5,11,,,30,35,,50,54,63,1,6', -'14,90,,,100,42,,,,,,,,,,,,,,,,,,,,,101,,,,,,82,,,25,,33,,48,,59,,,89', -'93,96,99,104,107,110,113,115,117,85,88,92,95,98,103,106,109,112,114', -'116,84,87,91,94,97,102,105,108,111,,,83,86,90,,151,100,,231,,,,,,,,', -',,,,,,,,,,,101,,,,,,82,,,,,,,,,,,,89,93,96,99,104,107,110,113,115,117', -'85,88,92,95,98,103,106,109,112,114,116,84,87,91,94,97,102,105,108,111', -',,83,86,16,21,90,,151,100,,,,,,,,,,,,,,,,,,,,,,101,,,,,,82,,,,,,,,,', -',,89,93,96,99,104,107,110,113,115,117,85,88,92,95,98,103,106,109,112', -'114,116,84,87,91,94,97,102,105,108,111,,,83,86,16,21,90,,151,100,,,', -',,,,,,,,,,,,,,,,,,101,,,,,,82,,,,,,,,,,,,89,93,96,99,104,107,110,113', -'115,117,85,88,92,95,98,103,106,109,112,114,116,84,87,91,94,97,102,105', -'108,111,,,83,86,16,21,90,,151,100,,,,,,,,,,,,,,,,,,,,,,101,,,,,,82,', -',,,,,,,,,,89,93,96,99,104,107,110,113,115,117,85,88,92,95,98,103,106', -'109,112,114,116,84,87,91,94,97,102,105,108,111,,,83,86,16,21,90,,151', -'100,,,,,,,,,,,,,,,,,,,,,,101,,,,,,82,,,,,,,,,,,,89,93,96,99,104,107', -'110,113,115,117,85,88,92,95,98,103,106,109,112,114,116,84,87,91,94,97', -'102,105,108,111,,,83,86,16,21,90,,,100,,,,,,,,,,,,,,,,,,,,,,101,,,,', -',82,,,,,,,,,,,,89,93,96,99,104,107,110,113,115,117,85,88,92,95,98,103', -'106,109,112,114,116,84,87,91,94,97,102,105,108,111,,90,83,86,100,,,', -',,,,,,,,,,,,,,,,,,101,,,,,,82,,,,,,,,,,,,89,93,96,99,104,107,110,113', -'115,117,85,88,92,95,98,103,106,109,112,114,116,84,87,91,94,97,102,105', -'108,111,,90,83,86,100,,,,,,,,,,,,,,,,,,,,,,101,,,,,,82,,,,,,,,,,,,89', -'93,96,99,104,107,110,113,115,117,85,88,92,95,98,103,106,109,112,114', -'116,84,87,91,94,97,102,105,108,111,,90,83,86,100,,,,,,,,,,,,,,,,,,,', -',,101,,,,,,82,,,,,,,,,,,,89,93,96,99,104,107,110,113,115,117,85,88,92', -'95,98,103,106,109,112,114,116,84,87,91,94,97,102,105,108,111,273,90', -'83,86,100,,,,,,,,,,,,,,,,,,,,,,101,,,,,,82,,,,,,,,,,,,89,93,96,99,104', -'107,110,113,115,117,85,88,92,95,98,103,106,109,112,114,116,84,87,91', -'94,97,102,105,108,111,,90,83,86,100,,,,,,,,,,,,,,,,,,,,,,101,,,,,,82', -',,,,,,,,,,,89,93,96,99,104,107,110,113,115,117,85,88,92,95,98,103,106', -'109,112,114,116,84,87,91,94,97,102,105,108,111,,90,83,86,100,,,,,,,', -',,,,,,,,,,,,,,101,,,,,,82,,,,,,,,,,,,89,93,96,99,104,107,110,113,115', -'117,85,88,92,95,98,103,106,109,112,114,116,84,87,91,94,97,102,105,108', -'111,,90,83,86,100,,,,,,,,,,,,,,,,,,,,,,101,,,,,,82,,,,,,,,,,,,89,93', -'96,99,104,107,110,113,115,117,85,88,92,95,98,103,106,109,112,114,116', -'84,87,91,94,97,102,105,108,111,,90,83,86,100,,,,,,,,,,,,,,,,,,,,,,101', -',,,,,82,,,,,,,,,,,,89,93,96,99,104,107,110,113,115,117,85,88,92,95,98', -'103,106,109,112,114,116,84,87,91,94,97,102,105,108,111,,90,83,86,100', -',,,,,,,,,,,,,,,,,,,,,101,,,,,,82,,,,,,,,,,,,89,93,96,99,104,107,110', -'113,115,117,85,88,92,95,98,103,106,109,112,114,116,84,87,91,94,97,102', -'105,108,111,,90,83,86,100,,,,,,,,,,,,,,,,,,,,,,101,,,,,,82,,,,,,,,,', -',,89,93,96,99,104,107,110,113,115,117,85,88,92,95,98,103,106,109,112', -'114,116,84,87,91,94,97,102,105,108,111,90,,,100,,,,,,,,,,,,,,,,,,,,', -',101,,,,,,82,,,,,,,,,,,,89,93,96,99,104,107,110,113,115,117,85,88,92', -'95,98,103,106,109,112,114,116,84,87,91,94,97,102,105,108,111,90,,,100', -',,,,,,,,,,,,,,,,,,,,,101,,,,,,82,,,,,,,,,,,,89,93,96,99,104,107,110', -'113,115,117,85,88,92,95,98,103,106,109,112,114,116,84,87,91,94,97,102', -'105,108,111,101,,,,,,82,,,,,,,,,,,,89,93,96,99,104,107,110,113,115,117', -'85,88,92,95,98,103,106,109,112,114,116,84,87,91,94,97,102,105,108,111', -'101,,,,,,82,,,,,,,,,,,,89,93,96,99,104,107,110,113,115,117,85,88,92', -'95,98,103,106,109,112,114,116,84,87,91,94,97,102,105,108,111,101,,,', -',,82,,,,,,,,,,,,89,93,96,99,104,107,110,113,115,117,85,88,92,95,98,103', -'106,109,112,114,116,84,87,91,94,97,102,105,108,111,82,,,,,,,,,,,,89', -'93,96,99,104,107,110,113,115,117,85,88,92,95,98,103,106,109,112,114', -'116,84,87,91,94,97,102,105,108,111,82,,,,,,,,,,,,89,93,96,99,104,107', -'110,113,115,117,85,88,92,95,98,103,106,109,112,114,116,84,87,91,94,97', -'102,105,108,111,82,,,,,,,,,,,,89,93,96,99,104,107,110,113,115,117,85', -'88,92,95,98,103,106,109,112,114,116,84,87,91,94,97,102,105,108,111,89', -'93,96,99,104,107,110,113,115,117,85,88,92,95,98,103,106,109,112,114', -'116,84,87,91,94,97,102,105,108,111,89,93,96,99,104,107,110,113,115,117', -'85,88,92,95,98,103,106,109,112,114,116,84,87,91,94,97,102,105,108,111', -'89,93,96,99,104,107,110,113,115,117,85,88,92,95,98,103,106,109,112,114', -'116,84,87,91,94,97,102,105,108,111,89,93,96,99,104,107,110,113,115,117', -'85,88,92,95,98,103,106,109,112,114,116,84,87,91,94,97,102,105,108,111', -'89,93,96,99,104,107,110,113,115,117,85,88,92,95,98,103,106,109,112,114', -'116,84,87,91,94,97,102,105,108,111' ] - racc_action_table = arr = Array.new(8210, nil) +'13,258,80,247,39,44,51,56,64,3,10,17,22,25,255,158,43,49,55,59,240,177', +'14,23,27,220,243,42,47,87,62,227,8,15,-155,-155,31,38,87,143,80,63,2', +'9,16,21,26,140,156,80,203,54,87,39,44,51,56,64,3,10,17,22,25,-155,-155', +'28,32,240,28,32,31,81,23,27,143,146,257,150,80,28,32,37,140,48,13,60', +'38,6,39,44,51,56,64,3,10,17,22,25,28,32,43,49,55,59,204,31,14,23,27', +'81,262,42,47,146,62,206,8,15,81,266,31,38,146,143,80,63,2,9,16,21,26', +'140,132,80,60,54,6,39,44,51,56,64,3,10,17,22,25,81,232,28,32,76,199', +'231,31,87,23,27,217,134,135,230,80,28,32,37,210,48,13,60,38,6,39,44', +'51,56,64,3,10,17,22,25,28,32,43,49,55,59,103,106,14,23,27,81,227,42', +'47,76,62,223,8,15,81,222,31,38,76,-155,-155,63,2,9,16,21,26,87,132,87', +'60,54,6,39,44,51,56,64,3,10,17,22,25,81,87,28,32,146,199,-155,-155,84', +'23,27,237,28,32,74,209,28,32,37,207,48,13,60,38,6,39,44,51,56,64,3,10', +'17,22,25,-155,-155,43,49,55,59,28,32,14,23,27,103,106,42,47,87,62,,8', +'15,-155,-155,31,38,-155,-155,249,63,2,9,16,21,26,,132,,60,54,6,39,44', +'51,56,64,3,10,17,22,25,103,106,28,32,,199,28,32,,23,27,216,,,,80,80', +',37,,48,13,60,38,6,39,44,51,56,64,3,10,17,22,25,149,149,43,49,55,59', +',,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,132,,60,54', +'6,,,201,147,147,103,106,111,114,117,81,81,,,146,146,103,106,111,114', +'117,120,123,126,93,95,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25', +',,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26', +',,,,54,103,106,111,114,117,120,123,126,93,95,99,102,105,110,113,116', +'119,122,125,92,94,103,106,111,114,117,120,123,,37,,48,13,60,,6,39,44', +'51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,', +'31,38,,,,63,2,9,16,21,26,,,,,54,103,106,111,114,117,120,123,126,93,95', +'99,102,105,110,113,116,119,122,125,92,94,103,106,111,114,117,120,123', +',37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23', +'27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,103,106,111,114', +'117,120,123,126,93,95,99,102,105,110,113,116,119,122,125,92,94,28,32', +',199,,200,28,32,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49', +'55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54', +'103,106,111,114,117,120,123,126,93,95,99,102,105,110,113,116,119,122', +'125,92,94,103,106,111,114,117,120,123,,37,,48,13,60,,6,39,44,51,56,64', +'3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,', +'63,2,9,16,21,26,,,,,54,103,106,111,114,117,120,123,126,93,95,99,102', +'105,110,113,116,119,122,125,92,94,103,106,111,114,117,,28,32,37,,48', +'13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42', +'47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,103,106,111,114,117,120', +'123,126,93,95,99,102,105,110,113,116,119,122,125,92,94,,,,,,,,,37,,48', +'13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42', +'47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,103,106,111,114,117,120', +'123,126,93,95,99,102,105,110,113,116,119,122,125,92,94,,,,,,,,,37,,48', +'13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42', +'47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,103,106,111,114,117,120', +'123,126,93,95,99,102,105,110,113,116,119,122,125,92,94,,,,,,,,,37,,48', +'13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42', +'47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,103,106,111,114,117,120', +'123,126,93,95,99,102,105,103,106,111,114,117,120,123,126,93,95,99,102', +'105,,28,32,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59', +',,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,103,106', +'111,114,117,120,123,126,93,95,99,102,105,103,106,111,114,117,120,123', +'126,93,95,99,102,105,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25', +',,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26', +',,,,54,103,106,111,114,117,120,123,126,93,95,103,106,111,114,117,120', +'123,126,93,95,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25', +',,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26', +',,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3', +'10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63', +'2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39', +'44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15', +',,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48', +'13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42', +'47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,', +',,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,', +',14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,', +',,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25', +',,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26', +',,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3', +'10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63', +'2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39', +'44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15', +',,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48', +'13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42', +'47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,', +',,,,,,28,32,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55', +'59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,', +',,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22', +'25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21', +'26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64', +'3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,', +'63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6', +'39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8', +'15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37', +',48,13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,', +',42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,', +',,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55', +'59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,', +',,,,,,,,,,,,,,,,,,,,,,,,,28,32,37,,48,13,60,,6,39,44,51,56,64,3,10,17', +'22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16', +'21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56', +'64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38', +',,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60', +',6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62', +',8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,', +',37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23', +'27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,', +',,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49', +'55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17', +'22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16', +'21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56', +'64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38', +',,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60', +',6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62', +',8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,', +',37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23', +'27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,', +',,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49', +'55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17', +'22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16', +'21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56', +'64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38', +',,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60', +',6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62', +',8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,', +',37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23', +'27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,', +',,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49', +'55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54', +',,,,,,,,,,,,,,,,,,,,,,,,,,,28,32,37,,48,13,60,,6,39,44,51,56,64,3,10', +'17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2', +'9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44', +'51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,', +'31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48', +'13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42', +'47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,', +',,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,', +',14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,', +',,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25', +',,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26', +',,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3', +'10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63', +'2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39', +'44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15', +',,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48', +'13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42', +'47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,', +',,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,', +',14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,', +',,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25', +',,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26', +',,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3', +'10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63', +'2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39', +'44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15', +',,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48', +'13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42', +'47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,', +',,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,', +',14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,', +',,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25', +',,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26', +',,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3', +'10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63', +'2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39', +'44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15', +',,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48', +'13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42', +'47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,', +',,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,', +',14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,', +',,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25', +',,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26', +',,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3', +'10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63', +'2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39', +'44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15', +',,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,48', +'13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,,,14,23,27,,,42', +'47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,,,,,,,,,,,,,,,,', +',,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25,,,43,49,55,59,', +',14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26,,,,,54,,,,,,', +',,,,,,,,,,,,,,,,,,,,,,,37,,48,13,60,,6,39,44,51,56,64,3,10,17,22,25', +',,43,49,55,59,,,14,23,27,,,42,47,,62,,8,15,,,31,38,,,,63,2,9,16,21,26', +'96,,,107,54,,,,,,,,,,,,,,,,,,,,,108,,,,,,91,,,37,,48,,60,,6,,,,,103', +'106,111,114,117,120,123,126,93,95,99,102,105,110,113,116,119,122,125', +'92,94,98,101,104,109,112,115,118,121,124,,,97,100,96,,151,107,,218,', +',,,,,,,,,,,,,,,,,,108,,,,,,91,,,,,,,,,,,,,,103,106,111,114,117,120,123', +'126,93,95,99,102,105,110,113,116,119,122,125,92,94,98,101,104,109,112', +'115,118,121,124,,,97,100,28,32,96,,151,107,,,,,,,,,,,,,,,,,,,,,,108', +',,,,,91,,,,,,,,,,,,,,103,106,111,114,117,120,123,126,93,95,99,102,105', +'110,113,116,119,122,125,92,94,98,101,104,109,112,115,118,121,124,,,97', +'100,28,32,96,,151,107,,,,,,,,,,,,,,,,,,,,,,108,,,,,,91,,,,,,,,,,,,,', +'103,106,111,114,117,120,123,126,93,95,99,102,105,110,113,116,119,122', +'125,92,94,98,101,104,109,112,115,118,121,124,,,97,100,28,32,96,,151', +'107,,,,,,,,,,,,,,,,,,,,,,108,,,,,,91,,,,,,,,,,,,,,103,106,111,114,117', +'120,123,126,93,95,99,102,105,110,113,116,119,122,125,92,94,98,101,104', +'109,112,115,118,121,124,,,97,100,28,32,96,,151,107,,,,,,,,,,,,,,,,,', +',,,,108,,,,,,91,,,,,,,,,,,,,,103,106,111,114,117,120,123,126,93,95,99', +'102,105,110,113,116,119,122,125,92,94,98,101,104,109,112,115,118,121', +'124,,,97,100,28,32,96,,,107,,,,,,,,,,,,,,,,,,,,,,108,,,,,,91,,,,,,,', +',,,,,,103,106,111,114,117,120,123,126,93,95,99,102,105,110,113,116,119', +'122,125,92,94,98,101,104,109,112,115,118,121,124,,96,97,100,107,,,,', +',,,,,,,,,,,,,,,,,108,,,,,,91,,,,,,,,,,,,,,103,106,111,114,117,120,123', +'126,93,95,99,102,105,110,113,116,119,122,125,92,94,98,101,104,109,112', +'115,118,121,124,,96,97,100,107,,,,,,,,,,,,,,,,,,,,,,108,,,,,,91,,,,', +',,,,,,,,,103,106,111,114,117,120,123,126,93,95,99,102,105,110,113,116', +'119,122,125,92,94,98,101,104,109,112,115,118,121,124,,96,97,100,107', +',,,,,,,,,,,,,,,,,,,,,108,,,,,,91,,,,,,,,,,,,,,103,106,111,114,117,120', +'123,126,93,95,99,102,105,110,113,116,119,122,125,92,94,98,101,104,109', +'112,115,118,121,124,268,96,97,100,107,,,,,,,,,,,,,,,,,,,,,,108,,,,,', +'91,,,,,,,,,,,,,,103,106,111,114,117,120,123,126,93,95,99,102,105,110', +'113,116,119,122,125,92,94,98,101,104,109,112,115,118,121,124,,96,97', +'100,107,,,,,,,,,,,,,,,,,,,,,,108,,,,,,91,,,,,,,,,,,,,,103,106,111,114', +'117,120,123,126,93,95,99,102,105,110,113,116,119,122,125,92,94,98,101', +'104,109,112,115,118,121,124,,96,97,100,107,,,,,,,,,,,,,,,,,,,,,,108', +',,,,,91,,,,,,,,,,,,,,103,106,111,114,117,120,123,126,93,95,99,102,105', +'110,113,116,119,122,125,92,94,98,101,104,109,112,115,118,121,124,,96', +'97,100,107,,,,,,,,,,,,,,,,,,,,,,108,,,,,,91,,,,,,,,,,,,,,103,106,111', +'114,117,120,123,126,93,95,99,102,105,110,113,116,119,122,125,92,94,98', +'101,104,109,112,115,118,121,124,,96,97,100,107,,,,,,,,,,,,,,,,,,,,,', +'108,,,,,,91,,,,,,,,,,,,,,103,106,111,114,117,120,123,126,93,95,99,102', +'105,110,113,116,119,122,125,92,94,98,101,104,109,112,115,118,121,124', +',96,97,100,107,,,,,,,,,,,,,,,,,,,,,,108,,,,,,91,,,,,,,,,,,,,,103,106', +'111,114,117,120,123,126,93,95,99,102,105,110,113,116,119,122,125,92', +'94,98,101,104,109,112,115,118,121,124,,96,97,100,107,,,,,,,,,,,,,,,', +',,,,,,108,,,,,,91,,,,,,,,,,,,,,103,106,111,114,117,120,123,126,93,95', +'99,102,105,110,113,116,119,122,125,92,94,98,101,104,109,112,115,118', +'121,124,96,,,107,,,,,,,,,,,,,,,,,,,,,,108,,,,,,91,,,,,,,,,,,,,,103,106', +'111,114,117,120,123,126,93,95,99,102,105,110,113,116,119,122,125,92', +'94,98,101,104,109,112,115,118,121,124,96,,,107,,,,,,,,,,,,,,,,,,,,,', +'108,,,,,,91,,,,,,,,,,,,,,103,106,111,114,117,120,123,126,93,95,99,102', +'105,110,113,116,119,122,125,92,94,98,101,104,109,112,115,118,121,124', +'108,,,,,,91,,,,,,,,,,,,,,103,106,111,114,117,120,123,126,93,95,99,102', +'105,110,113,116,119,122,125,92,94,98,101,104,109,112,115,118,121,124', +'108,,,,,,91,,,,,,,,,,,,,,103,106,111,114,117,120,123,126,93,95,99,102', +'105,110,113,116,119,122,125,92,94,98,101,104,109,112,115,118,121,124', +'108,,,,,,91,,,,,,,,,,,,,,103,106,111,114,117,120,123,126,93,95,99,102', +'105,110,113,116,119,122,125,92,94,98,101,104,109,112,115,118,121,124', +'91,,,,,,,,,,,,,,103,106,111,114,117,120,123,126,93,95,99,102,105,110', +'113,116,119,122,125,92,94,98,101,104,109,112,115,118,121,124,91,,,,', +',,,,,,,,,103,106,111,114,117,120,123,126,93,95,99,102,105,110,113,116', +'119,122,125,92,94,98,101,104,109,112,115,118,121,124,91,,,,,,,,,,,,', +',103,106,111,114,117,120,123,126,93,95,99,102,105,110,113,116,119,122', +'125,92,94,98,101,104,109,112,115,118,121,124,103,106,111,114,117,120', +'123,126,93,95,99,102,105,110,113,116,119,122,125,92,94,98,101,104,109', +'112,115,118,121,124,103,106,111,114,117,120,123,126,93,95,99,102,105', +'110,113,116,119,122,125,92,94,98,101,104,109,112,115,118,121,124,103', +'106,111,114,117,120,123,126,93,95,99,102,105,110,113,116,119,122,125', +'92,94,98,101,104,109,112,115,118,121,124,103,106,111,114,117,120,123', +'126,93,95,99,102,105,110,113,116,119,122,125,92,94,98,101,104,109,112', +'115,118,121,124,103,106,111,114,117,120,123,126,93,95,99,102,105,110', +'113,116,119,122,125,92,94,98,101,104,109,112,115,118,121,124' ] + racc_action_table = arr = Array.new(7828, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| @@ -295,291 +287,275 @@ clist = [ end clist = [ -'0,245,101,242,0,0,0,0,0,0,0,0,0,0,212,80,0,0,0,0,143,143,0,0,0,69,69', -'0,0,143,0,214,0,0,29,29,0,0,200,0,0,0,0,0,0,224,200,141,141,0,78,47', -'47,47,47,47,47,47,47,47,47,128,128,130,128,131,212,136,128,200,47,47', -'74,224,245,242,204,0,0,0,155,0,1,0,47,0,1,1,1,1,1,1,1,1,1,1,175,144', -'1,1,1,1,176,214,1,1,1,214,214,1,1,196,1,198,1,1,18,224,1,1,217,1,1,1', -'1,1,1,11,47,211,47,1,47,135,135,135,135,135,135,135,135,135,135,204', -',256,,204,48,256,256,,135,135,144,144,48,,205,262,,1,,1,5,1,135,1,5', -'5,5,5,5,5,5,5,5,5,,48,5,5,5,5,,254,5,5,5,254,254,5,5,,5,,5,5,271,271', -'5,5,,5,5,5,5,5,5,,135,,135,5,135,222,222,222,222,222,222,222,222,222', -'222,205,262,262,263,205,262,,263,263,222,222,199,179,179,,125,61,246', -'5,199,5,6,5,222,5,6,6,6,6,6,6,6,6,6,6,67,67,6,6,6,6,,199,6,6,6,26,26', -'6,6,,6,,6,6,173,173,6,6,222,6,6,6,6,6,6,,222,,222,6,222,247,247,247', -'247,247,247,247,247,247,247,125,61,246,246,125,61,246,223,,247,247,223', -'223,126,,120,53,,6,,6,9,6,247,6,9,9,9,9,9,9,9,9,9,9,120,53,9,9,9,9,', -'274,9,9,9,274,274,9,9,,9,,9,9,170,170,9,9,,9,9,9,9,9,9,,247,,247,9,247', -'73,73,120,120,53,148,148,,126,,120,53,126,,120,53,152,152,,152,213,213', -',213,,152,76,76,9,213,9,10,9,,9,10,10,10,10,10,10,10,10,10,10,132,132', -'10,10,10,10,77,77,10,10,10,253,253,10,10,,10,,10,10,122,122,10,10,,10', -'10,10,10,10,10,,,,,10,191,191,191,191,191,191,191,191,191,191,191,191', -'191,191,191,191,191,191,191,191,191,208,208,,208,,,,,10,208,10,272,10', -',10,272,272,272,272,272,272,272,272,272,272,,,272,272,272,272,,,272', -'272,272,,,272,272,,272,,272,272,,,272,272,,272,272,272,272,272,272,', -',,,272,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160', -'160,160,160,160,160,118,118,,118,,118,272,272,272,,272,14,272,,272,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,189,189,189,189,189,189,189,189', -'189,189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,190', -'190,190,190,,14,,14,226,14,,14,226,226,226,226,226,226,226,226,226,226', -',,226,226,226,226,,,226,226,226,,,226,226,,226,,226,226,,,226,226,,226', -'226,226,226,226,226,,,,,226,184,184,184,184,184,184,184,184,184,184', -'184,184,184,184,184,184,184,184,184,184,184,188,188,188,188,188,188', -'188,,226,,226,23,226,,226,23,23,23,23,23,23,23,23,23,23,,,23,23,23,23', -',,23,23,23,,,23,23,,23,,23,23,,,23,23,,23,23,23,23,23,23,,,,,23,168', -'168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168', -'168,168,168,185,185,185,185,185,,23,23,23,,23,25,23,,23,25,25,25,25', -'25,25,25,25,25,25,,,25,25,25,25,,,25,25,25,,,25,25,,25,,25,25,,,25,25', -',25,25,25,25,25,25,,,,,25,166,166,166,166,166,166,166,166,166,166,166', -'166,166,166,166,166,166,166,166,166,166,182,182,182,182,182,,25,25,25', -',25,233,25,,25,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,187,187,187,187,187,187,187,187,187,187,187,187,187', -'187,187,187,187,187,187,187,187,,,,,,,233,233,233,,233,264,233,,233', -'264,264,264,264,264,264,264,264,264,264,,,264,264,264,264,,,264,264', -'264,,,264,264,,264,,264,264,,,264,264,,264,264,264,264,264,264,,,,,264', -'163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163', -'163,163,163,163,,,,,,,264,264,264,,264,193,264,,264,193,193,193,193', -'193,193,193,193,193,193,,,193,193,193,193,,,193,193,193,,,193,193,,193', -',193,193,,,193,193,,193,193,193,193,193,193,,,,,193,178,178,178,178', -'178,178,178,178,178,178,178,178,178,172,172,172,172,172,172,172,172', -'172,172,172,172,172,,,,193,,193,33,193,,193,33,33,33,33,33,33,33,33', -'33,33,,,33,33,33,33,,,33,33,33,,,33,33,,33,,33,33,,,33,33,,33,33,33', -'33,33,33,,,,,33,181,181,181,181,181,181,181,181,181,181,181,181,181', -'169,169,169,169,169,169,169,169,169,169,169,169,169,,,,33,,33,39,33', -',33,39,39,39,39,39,39,39,39,39,39,,,39,39,39,39,,,39,39,39,,,39,39,', -'39,,39,39,,,39,39,,39,39,39,39,39,39,,,,,39,164,164,164,164,164,164', -'164,164,164,164,161,161,161,161,161,161,161,161,161,161,192,192,192', -'192,192,192,192,,,39,,39,42,39,,39,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,167,167,167,167,167,167,167,167,167,167,,,,,,,,,,,,,,,,,,,,42,', -'42,46,42,,42,46,46,46,46,46,46,46,46,46,46,,,46,46,46,46,,,46,46,46', -',,46,46,,46,,46,46,,,46,46,,46,46,46,46,46,46,,,,,46,,,,,,,,,,,,,,,', -',,,,,,,,,,,,,,46,,46,149,46,,46,149,149,149,149,149,149,149,149,149', -'149,,,149,149,149,149,,,149,149,149,,,149,149,,149,,149,149,,,149,149', -',149,149,149,149,149,149,,,,,149,,,,,,,,,,,,,,,,,,,,,,,,,,,,149,149', -'149,,149,234,149,,149,234,234,234,234,234,234,234,234,234,234,,,234', -'234,234,234,,,234,234,234,,,234,234,,234,,234,234,,,234,234,,234,234', -'234,234,234,234,,,,,234,,,,,,,,,,,,,,,,,,,,,,,,,,,,234,234,234,,234', -'50,234,,234,50,50,50,50,50,50,50,50,50,50,,,50,50,50,50,,,50,50,50,', -',50,50,,50,,50,50,,,50,50,,50,50,50,50,50,50,,,,,50,,,,,,,,,,,,,,,,', -',,,,,,,,,,,,,50,,50,194,50,,50,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,,,,,194,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,194,,194,54', -'194,,194,54,54,54,54,54,54,54,54,54,54,,,54,54,54,54,,,54,54,54,,,54', -'54,,54,,54,54,,,54,54,,54,54,54,54,54,54,,,,,54,,,,,,,,,,,,,,,,,,,,', -',,,,,,,,,54,,54,55,54,,54,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,59,55,,55,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,60,59,,59,60,60', -'60,60,60,60,60,60,60,60,,,60,60,60,60,,,60,60,60,,,60,60,,60,,60,60', -',,60,60,,60,60,60,60,60,60,,,,,60,,,,,,,,,,,,,,,,,,,,,,,,,,,,60,60,60', -',60,146,60,,60,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,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,146,,146,62,146,,146,62', -'62,62,62,62,62,62,62,62,62,,,62,62,62,62,,,62,62,62,,,62,62,,62,,62', -'62,,,62,62,,62,62,62,62,62,62,,,,,62,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,62', -',62,117,62,,62,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,197,117,,117,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,,,,,197,', -',,,,,,,,,,,,,,,,,,,,,,,,,,197,197,197,,197,140,197,,197,140,140,140', -'140,140,140,140,140,140,140,,,140,140,140,140,,,140,140,140,,,140,140', -',140,,140,140,,,140,140,,140,140,140,140,140,140,,,,,140,,,,,,,,,,,', -',,,,,,,,,,,,,,,,,,140,,140,139,140,,140,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,,139,137,139,,139,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,239', -'137,,137,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,72,239,,239', -'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,259,72,,72,259,259,259,259,259,259,259,259,259,259,,,259,259', -'259,259,,,259,259,259,,,259,259,,259,,259,259,,,259,259,,259,259,259', -'259,259,259,,,,,259,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,259,,259,218,259,,259', -'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,,218,75,218,,218,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,255,75', -',75,255,255,255,255,255,255,255,255,255,255,,,255,255,255,255,,,255', -'255,255,,,255,255,,255,,255,255,,,255,255,,255,255,255,255,255,255,', -',,,255,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,255,,255,203,255,,255,203,203,203', -'203,203,203,203,203,203,203,,,203,203,203,203,,,203,203,203,,,203,203', -',203,,203,203,,,203,203,,203,203,203,203,203,203,,,,,203,,,,,,,,,,,', -',,,,,,,,,,,,,,,,,,203,,203,124,203,,203,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,,124,79,124,,124,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,249,79,,79,249,249,249,249,249,249', -'249,249,249,249,,,249,249,249,249,,,249,249,249,,,249,249,,249,,249', -'249,,,249,249,,249,249,249,249,249,249,,,,,249,,,,,,,,,,,,,,,,,,,,,', -',,,,,,249,249,249,,249,81,249,,249,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,,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,83,82,,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,84,83,,83,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,85,84,,84,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,,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,87,86,,86', +'0,245,214,225,0,0,0,0,0,0,0,0,0,0,240,84,0,0,0,0,215,108,0,0,0,159,222', +'0,0,134,0,225,0,0,145,145,0,0,232,208,250,0,0,0,0,0,0,208,80,261,135', +'0,240,49,49,49,49,49,49,49,49,49,49,71,71,159,159,239,69,69,208,214', +'49,49,209,214,245,69,131,0,0,0,209,0,2,0,49,0,2,2,2,2,2,2,2,2,2,2,215', +'215,2,2,2,2,138,209,2,2,2,250,250,2,2,250,2,140,2,2,261,261,2,2,261', +'60,20,2,2,2,2,2,2,60,49,213,49,2,49,149,149,149,149,149,149,149,149', +'149,149,131,205,155,155,131,155,204,60,247,149,149,155,50,50,201,133', +'138,138,2,143,2,6,2,149,2,6,6,6,6,6,6,6,6,6,6,41,41,6,6,6,6,181,181', +'6,6,6,20,197,6,6,20,6,178,6,6,213,177,6,6,213,67,67,6,6,6,6,6,6,260', +'149,161,149,6,149,230,230,230,230,230,230,230,230,230,230,133,37,211', +'211,133,211,136,136,30,230,230,211,141,141,15,141,6,6,6,141,6,8,6,230', +'6,8,8,8,8,8,8,8,8,8,8,75,75,8,8,8,8,85,85,8,8,8,184,184,8,8,231,8,,8', +'8,82,82,8,8,83,83,230,8,8,8,8,8,8,,230,,230,8,230,249,249,249,249,249', +'249,249,249,249,249,187,187,154,154,,154,269,269,,249,249,154,,,,130', +'66,,8,,8,9,8,249,8,9,9,9,9,9,9,9,9,9,9,130,66,9,9,9,9,,,9,9,9,,,9,9', +',9,,9,9,,,9,9,,,,9,9,9,9,9,9,,249,,249,9,249,,,130,130,66,190,190,190', +'190,190,130,66,,,130,66,175,175,175,175,175,175,175,175,175,175,,,9', +',9,13,9,,9,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,195,195,195,195', +'195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195', +'196,196,196,196,196,196,196,,13,,13,14,13,,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,163,163,163,163,163,163,163,163,163,163,163,163,163', +'163,163,163,163,163,163,163,163,166,166,166,166,166,166,166,,14,,14', +'267,14,,14,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,174,174,174,174,174,174,174,174,174,174,174,174,174,174', +'174,174,174,174,174,174,174,128,128,,128,,128,267,267,267,,267,16,267', +',267,16,16,16,16,16,16,16,16,16,16,,,16,16,16,16,,,16,16,16,,,16,16', +',16,,16,16,,,16,16,,,,16,16,16,16,16,16,,,,,16,179,179,179,179,179,179', +'179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,164,164', +'164,164,164,164,164,,16,,16,152,16,,16,152,152,152,152,152,152,152,152', +'152,152,,,152,152,152,152,,,152,152,152,,,152,152,,152,,152,152,,,152', +'152,,,,152,152,152,152,152,152,,,,,152,172,172,172,172,172,172,172,172', +'172,172,172,172,172,172,172,172,172,172,172,172,172,193,193,193,193', +'193,,152,152,152,,152,21,152,,152,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,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165', +'165,165,165,165,165,,,,,,,,,21,,21,26,21,,21,26,26,26,26,26,26,26,26', +'26,26,,,26,26,26,26,,,26,26,26,,,26,26,,26,,26,26,,,26,26,,,,26,26,26', +'26,26,26,,,,,26,169,169,169,169,169,169,169,169,169,169,169,169,169', +'169,169,169,169,169,169,169,169,,,,,,,,,26,,26,147,26,,26,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,,,,,147,192,192,192', +'192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192', +'192,,,,,,,,,147,,147,34,147,,147,34,34,34,34,34,34,34,34,34,34,,,34', +'34,34,34,,,34,34,34,,,34,34,,34,,34,34,,,34,34,,,,34,34,34,34,34,34', +',,,,34,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,,34,34,34,,34,146,34,,34,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', +'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,,,,146,,146,198,146,,146,198,198', +'198,198,198,198,198,198,198,198,,,198,198,198,198,,,198,198,198,,,198', +'198,,198,,198,198,,,198,198,,,,198,198,198,198,198,198,,,,,198,170,170', +'170,170,170,170,170,170,170,170,173,173,173,173,173,173,173,173,173', +'173,,,,,,,,,,198,,198,42,198,,198,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,199,42,,42,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,,199,47,199,,199,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,48,47,,47,48,48,48,48', +'48,48,48,48,48,48,,,48,48,48,48,,,48,48,48,,,48,48,,48,,48,48,,,48,48', +',,,48,48,48,48,48,48,,,,,48,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,48,,48,206', +'48,,48,206,206,206,206,206,206,206,206,206,206,,,206,206,206,206,,,206', +'206,206,,,206,206,,206,,206,206,,,206,206,,,,206,206,206,206,206,206', +',,,,206,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,206,,206,258,206,,206,258,258,258', +'258,258,258,258,258,258,258,,,258,258,258,258,,,258,258,258,,,258,258', +',258,,258,258,,,258,258,,,,258,258,258,258,258,258,,,,,258,,,,,,,,,', +',,,,,,,,,,,,,,,,,,,,258,,258,54,258,,258,54,54,54,54,54,54,54,54,54', +'54,,,54,54,54,54,,,54,54,54,,,54,54,,54,,54,54,,,54,54,,,,54,54,54,54', +'54,54,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,54,,54,55,54,,54,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,59', +'55,,55,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,255,59,,59,255,255,255,255,255,255,255,255,255,255', +',,255,255,255,255,,,255,255,255,,,255,255,,255,,255,255,,,255,255,,', +',255,255,255,255,255,255,,,,,255,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,255,,255', +'62,255,,255,62,62,62,62,62,62,62,62,62,62,,,62,62,62,62,,,62,62,62,', +',62,62,,62,,62,62,,,62,62,,,,62,62,62,62,62,62,,,,,62,,,,,,,,,,,,,,', +',,,,,,,,,,,,,,,62,,62,63,62,,62,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,210,63,,63,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,132,210,,210,132,132,132,132,132,132,132,132', +'132,132,,,132,132,132,132,,,132,132,132,,,132,132,,132,,132,132,,,132', +'132,,,,132,132,132,132,132,132,,,,,132,,,,,,,,,,,,,,,,,,,,,,,,,,,,,', +'132,,132,68,132,,132,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,,,,,,,', +',,,,,,,,,,,,,,,,,,,,68,68,68,,68,126,68,,68,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,125,126,,126,125,125,125,125,125,125,125,125,125', +'125,,,125,125,125,125,,,125,125,125,,,125,125,,125,,125,125,,,125,125', +',,,125,125,125,125,125,125,,,,,125,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,125', +',125,124,125,,125,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,,124,115,124,,124', +'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,122,115,,115,122,122,122', +'122,122,122,122,122,122,122,,,122,122,122,122,,,122,122,122,,,122,122', +',122,,122,122,,,122,122,,,,122,122,122,122,122,122,,,,,122,,,,,,,,,', +',,,,,,,,,,,,,,,,,,,,122,,122,74,122,,122,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,121,74,,74,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,76,121,,121,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,120,76,,76,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,81,120,,120,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,119,81,,81,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,,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,117,118,,118,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,227,117,,117,227,227,227,227,227,227,227,227,227,227,,,227,227', +'227,227,,,227,227,227,,,227,227,,227,,227,227,,,227,227,,,,227,227,227', +'227,227,227,,,,,227,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,227,,227,87,227,,227', '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,88,87,,87,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,90,88,,88,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,,90,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,,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,94,92,,92,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,,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,96,95,,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,97,96,,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,98,97,,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,99,98,,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,100,99,,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,202,100,,100,202,202,202,202,202,202,202,202,202', -'202,,,202,202,202,202,,,202,202,202,,,202,202,,202,,202,202,,,202,202', -',202,202,202,202,202,202,,,,,202,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,202,,202', -'102,202,,202,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,,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,104,103,,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,105,104,,104,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,,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,107,106,,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,108,107,,107,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,109,108,,108,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,110', -'109,,109,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', +'87,87,,,87,87,,,,87,87,87,87,87,87,,,,,87,,,,,,,,,,,,,,,,,,,,,,,,,,', +',87,87,87,,87,89,87,,87,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,116,89,,89,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,91,116,,116,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,,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,93,92,,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,94,93,,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,95,94,,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,96,95,,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,97,96', +',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,98,97,,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,99,98,,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,100,99,,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,101,100,,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,102,101,,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,104,102,,102,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,,104', +'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,107,105,,105,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,223,107,,107,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,109,223,,223,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', +'110,109,,109,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,111,110,,110,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,112,111,,111,112,112,112,112,112,112', +'111,,111,,111,111,,,111,111,,,,111,111,111,111,111,111,,,,,111,,,,,', +',,,,,,,,,,,,,,,,,,,,,,,,111,,111,112,111,,111,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,113,112,,112,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,,113,114', -'113,,113,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,115,114,,114,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,116,115,,115,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,63,116,,116,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,207,,,207', -'63,,,,,,,,,,,,,,,,,,,,,207,,,,,,207,,,63,,63,,63,,63,,,207,207,207,207', -'207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207', -'207,207,207,207,207,207,207,207,207,,,207,207,123,,123,123,,207,,,,', -',,,,,,,,,,,,,,,123,,,,,,123,,,,,,,,,,,,123,123,123,123,123,123,123,123', -'123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123', -'123,123,123,123,123,,,123,123,123,123,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,252,252,252,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', -'121,,,121,121,121,121,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,70,70,70,,,70,70,70,70,266,,266,266,,,,,,,,,,,,,,', -',,,,,,,266,,,,,,266,,,,,,,,,,,,266,266,266,266,266,266,266,266,266,266', -'266,266,266,266,266,266,266,266,266,266,266,266,266,266,266,266,266', -'266,266,266,,,266,266,266,266,229,,,229,,,,,,,,,,,,,,,,,,,,,,229,,,', -',,229,,,,,,,,,,,,229,229,229,229,229,229,229,229,229,229,229,229,229', -'229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229', -',32,229,229,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,,221,32,32,221,,,,,,,,,,,,,,,,,,,,,,221,,,,,,221,,,,,,,,,,', -',221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221', -'221,221,221,221,221,221,221,221,221,221,221,221,221,,268,221,221,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,268,268,244,,,,,,,,,,,,,,,,,,,,', -',244,,,,,,244,,,,,,,,,,,,244,244,244,244,244,244,244,244,244,244,244', +'112,,,112,112,,,,112,112,112,112,112,112,,,,,112,,,,,,,,,,,,,,,,,,,', +',,,,,,,,,,112,,112,113,112,,112,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', +',113,114,113,,113,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,123,114,,114', +'123,123,123,123,123,123,123,123,123,123,,,123,123,123,123,,,123,123', +'123,,,123,123,,123,,123,123,,,123,123,,,,123,123,123,123,123,123,157', +',,157,123,,,,,,,,,,,,,,,,,,,,,157,,,,,,157,,,123,,123,,123,,123,,,,', +'157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157', +'157,157,157,157,157,157,157,157,157,157,157,157,157,,,157,157,90,,90', +'90,,157,,,,,,,,,,,,,,,,,,,,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,90,263,,263,263,,,,,,,,,,,,,,,,,,,,,,263,,,,,,263,,,,', +',,,,,,,,,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263', +'263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,,,263,263', +'263,263,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,72,72,72,127,,127,127,,,,,,,,,,,,,,,,,,,,,,127,', +',,,,127,,,,,,,,,,,,,,127,127,127,127,127,127,127,127,127,127,127,127', +'127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127', +'127,,,127,127,127,127,248,,248,248,,,,,,,,,,,,,,,,,,,,,,248,,,,,,248', +',,,,,,,,,,,,,248,248,248,248,248,248,248,248,248,248,248,248,248,248', +'248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,,,248', +'248,248,248,229,,,229,,,,,,,,,,,,,,,,,,,,,,229,,,,,,229,,,,,,,,,,,,', +',229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229', +'229,229,229,229,229,229,229,229,229,229,229,229,229,,233,229,229,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,,129,233,233,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,,264,129,129,264,,,,,,,,,,,,,,,,,,,,,,264,,,,,,264,,,,,,,,,,,,,', +'264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264', +'264,264,264,264,264,264,264,264,264,264,264,264,264,264,244,264,264', +'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,,157,244,244,157,,,,,,,,,,,,,,,,,,,,,,157,,,,,,157,,,,,,,,,', -',,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157', -'157,157,157,157,157,157,157,157,157,157,157,157,157,,119,157,157,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,,220,119,119,220,,,,,,,,,,,,,,,,,,,,,,220', -',,,,,220,,,,,,,,,,,,220,220,220,220,220,220,220,220,220,220,220,220', -'220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220', -'220,,142,220,220,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,,230,142,142,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,,159,230,230,159,,,,,,,,,,,,,,,,,,,,,,159,,', -',,,159,,,,,,,,,,,,159,159,159,159,159,159,159,159,159,159,159,159,159', -'159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159', -'162,,,162,,,,,,,,,,,,,,,,,,,,,,162,,,,,,162,,,,,,,,,,,,162,162,162,162', -'162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162', -'162,162,162,162,162,162,162,162,162,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,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,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,165,,,,,,165', -',,,,,,,,,,,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165', -'165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,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,147,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,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,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,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,171,171,171,171,171,171,171,171', +'244,244,244,244,244,244,244,244,,46,244,244,46,,,,,,,,,,,,,,,,,,,,,', +'46,,,,,,46,,,,,,,,,,,,,,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46', +'46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,,137,46,46,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,,228,137,137,228,,,,,,,,,,,,,,,,,,,,,,228,,,,,,228', +',,,,,,,,,,,,,228,228,228,228,228,228,228,228,228,228,228,228,228,228', +'228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,,236', +'228,228,236,,,,,,,,,,,,,,,,,,,,,,236,,,,,,236,,,,,,,,,,,,,,236,236,236', +'236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236', +'236,236,236,236,236,236,236,236,236,236,,160,236,236,160,,,,,,,,,,,', +',,,,,,,,,,160,,,,,,160,,,,,,,,,,,,,,160,160,160,160,160,160,160,160', +'160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160', +'160,160,160,160,160,,168,160,160,168,,,,,,,,,,,,,,,,,,,,,,168,,,,,,168', +',,,,,,,,,,,,,168,168,168,168,168,168,168,168,168,168,168,168,168,168', +'168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,212', +',,212,,,,,,,,,,,,,,,,,,,,,,212,,,,,,212,,,,,,,,,,,,,,212,212,212,212', +'212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212', +'212,212,212,212,212,212,212,212,212,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,171,171,171,171,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' ] - racc_action_check = arr = Array.new(8210, nil) +'171,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,176,,,,,,176,,,,,,,,,,,,,,176,176,176,176,176,176,176,176', +'176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176', +'176,176,176,176,176,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,144', +',,,,,,,,,,,,,144,144,144,144,144,144,144,144,144,144,144,144,144,144', +'144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,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,162,,,,,,,,,,,,,,162,162,162,162,162', +'162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162', +'162,162,162,162,162,162,162,162,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,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', +'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,182,182,182,182', +'182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182', +'182,182,182,182,182,182,182,182,182,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' ] + racc_action_check = arr = Array.new(7828, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| @@ -589,340 +565,295 @@ clist = [ end racc_action_pointer = [ - -2, 80, nil, nil, nil, 162, 244, nil, nil, 326, - 408, 40, nil, nil, 572, nil, nil, nil, 116, nil, - nil, nil, nil, 736, nil, 818, 190, nil, nil, -45, - nil, nil, 6903, 1146, nil, nil, nil, nil, nil, 1228, - nil, nil, 1310, nil, nil, nil, 1392, 45, 141, nil, - 1638, nil, nil, 307, 1802, 1884, nil, nil, nil, 1966, - 2048, 225, 2212, 6312, nil, nil, nil, 215, 7985, -20, - 6671, 7763, 2786, 334, 72, 3032, 326, 351, -25, 3360, - -3, 3524, 3606, 3688, 3770, 3852, 3934, 4016, 4098, nil, - 4180, 4262, 4344, nil, 4426, 4508, 4590, 4672, 4754, 4836, - 4918, -13, 5082, 5164, 5246, 5328, 5410, 5492, 5574, 5656, - 5738, 5820, 5902, 5984, 6066, 6148, 6230, 2294, 484, 7273, - 306, 6592, 399, 6434, 3278, 224, 304, nil, -18, nil, - -13, -11, 379, nil, nil, 127, 52, 2622, nil, 2540, - 2458, 2, 7421, -59, 75, nil, 2130, 7901, 339, 1474, - nil, nil, 316, nil, nil, 5, nil, 7199, 7943, 7569, - 497, 1245, 7642, 989, 1235, 7859, 825, 1317, 743, 1166, - 317, 8105, 1084, 235, 7811, 14, 74, 8015, 1071, 192, - 8075, 1153, 846, 8135, 661, 764, 8045, 907, 682, 579, - 600, 415, 1255, 1064, 1720, nil, 36, 2376, 82, 229, - 31, nil, 5000, 3196, 60, 142, nil, 6357, 402, 7715, - nil, 114, -9, 320, 28, nil, nil, 105, 2950, nil, - 7347, 6977, 209, 239, 42, nil, 654, nil, nil, 6829, - 7495, nil, nil, 900, 1556, nil, nil, nil, nil, 2704, - nil, nil, 0, nil, 7125, -1, 226, 291, nil, 3442, - nil, nil, 6513, 356, 110, 3114, 70, nil, nil, 2868, - nil, nil, 143, 153, 982, nil, 6750, nil, 7051, nil, - nil, 119, 490, nil, 274 ] + -2, nil, 82, nil, nil, nil, 166, nil, 250, 334, + nil, nil, nil, 418, 502, 156, 670, nil, nil, nil, + 108, 838, nil, nil, nil, nil, 922, nil, nil, nil, + 239, nil, nil, nil, 1090, nil, nil, 192, nil, nil, + nil, 101, 1342, nil, nil, nil, 6789, 1510, 1594, 47, + 76, nil, nil, nil, 1846, 1930, nil, nil, nil, 2014, + 116, nil, 2182, 2266, nil, nil, 315, 160, 2518, -13, + 7557, 16, 6166, 7469, 3022, 219, 3190, nil, nil, nil, + 33, 3358, 239, 243, 15, 191, nil, 3778, nil, 3862, + 6004, 4030, 4114, 4198, 4282, 4366, 4450, 4534, 4618, 4702, + 4786, 4870, 4954, nil, 5038, 5122, nil, 5206, 6, 5374, + 5458, 5542, 5626, 5710, 5794, 2854, 3946, 3610, 3526, 3442, + 3274, 3106, 2938, 5878, 2770, 2686, 2602, 6247, 580, 6561, + 314, 62, 2434, 146, -11, 32, 190, 6865, 82, nil, + 37, 162, nil, 88, 7513, -13, 1174, 1006, nil, 131, + nil, nil, 754, nil, 236, 68, nil, 5925, nil, -16, + 7093, 177, 7601, 509, 698, 845, 530, 7369, 7169, 929, + 1265, 7319, 761, 1275, 593, 358, 7419, 119, 171, 677, + 1110, 141, 7721, 1097, 230, 7691, 1181, 268, 7751, 1194, + 347, 7631, 1013, 782, 7661, 425, 446, 163, 1258, 1426, + nil, 84, nil, nil, 138, 125, 1678, nil, 32, 67, + 2350, 152, 7244, 117, -14, 17, nil, nil, nil, nil, + nil, nil, 11, 5290, nil, 0, nil, 3694, 6941, 6409, + 215, 241, -2, 6485, nil, nil, 7017, nil, nil, 64, + 12, nil, nil, nil, 6713, -1, nil, 115, 6328, 299, + 24, nil, nil, nil, nil, 2098, nil, nil, 1762, nil, + 175, 33, nil, 6085, 6637, nil, nil, 586, nil, 240 ] racc_action_default = [ - -1, -152, -37, -24, -13, -152, -152, -38, -14, -152, - -152, -152, -113, -96, -152, -39, -25, -15, -152, -40, - -33, -26, -16, -2, -95, -91, -152, -34, -17, -3, - -46, -18, -4, -121, -97, -31, -29, -19, -8, -152, - -98, -93, -152, -30, -20, -9, -152, -152, -107, -99, - -152, -32, -21, -10, -152, -152, -35, -22, -11, -152, - -152, -111, -152, -152, -36, -23, -12, -51, -87, -53, - -152, -129, -121, -52, -152, -152, -7, -92, -152, -91, - -152, -6, -152, -152, -152, -152, -152, -152, -152, -55, - -152, -152, -152, -54, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, -152, -152, -122, - -10, -152, -49, -152, -121, -152, -112, -44, -152, -108, - -152, -152, -50, -103, -104, -152, -152, -152, -100, -121, - -152, -47, -45, -152, -127, -101, -121, -86, -48, -152, - -28, -27, -152, 275, -90, -152, -94, -5, -88, -84, - -75, -64, -85, -76, -65, -150, -77, -66, -78, -67, - -56, -79, -68, -57, -151, -133, -152, -80, -69, -58, - -81, -70, -59, -82, -71, -60, -83, -72, -61, -73, - -62, -74, -63, -152, -152, -120, -152, -152, -152, -152, - -152, -106, -152, -152, -114, -152, -102, -152, -152, -41, - -130, -152, -152, -152, -152, -117, -89, -152, -152, -132, - -124, -123, -152, -152, -152, -139, -152, -110, -109, -42, - -43, -105, -115, -152, -152, -125, -116, -147, -149, -152, - -145, -143, -152, -134, -152, -8, -152, -152, -131, -152, - -140, -137, -152, -128, -152, -152, -152, -148, -144, -152, - -135, -118, -152, -152, -152, -126, -152, -146, -152, -119, - -138, -141, -152, -136, -142 ] + -1, -101, -155, -40, -22, -11, -155, -102, -155, -155, + -41, -23, -12, -155, -155, -155, -155, -42, -24, -13, + -114, -155, -43, -36, -14, -98, -155, -37, -28, -15, + -155, -49, -29, -16, -2, -116, -99, -94, -34, -32, + -17, -3, -155, -96, -33, -18, -4, -155, -124, -155, + -155, -35, -19, -8, -155, -155, -38, -20, -9, -155, + -110, -100, -155, -155, -39, -21, -10, -50, -155, -155, + -90, -51, -155, -132, -124, -54, -124, -104, -107, -106, + -155, -155, -56, -55, -155, -7, -95, -155, -93, -6, + -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, + -155, -155, -155, -58, -155, -155, -57, -155, -155, -155, + -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, + -155, -155, -155, -155, -155, -155, -155, -155, -155, -125, + -10, -115, -124, -155, -94, -155, -52, -48, -130, -47, + -155, -155, -111, -155, -89, -53, -124, -155, -103, -155, + -133, -30, -155, -31, -155, -155, -105, -155, 270, -26, + -5, -155, -91, -76, -65, -77, -66, -153, -87, -78, + -67, -88, -79, -68, -80, -69, -154, -136, -155, -81, + -70, -59, -82, -71, -60, -83, -72, -61, -84, -73, + -62, -85, -74, -63, -86, -75, -64, -155, -155, -155, + -123, -155, -92, -97, -155, -128, -155, -109, -155, -155, + -155, -155, -44, -155, -117, -148, -120, -119, -108, -25, + -27, -134, -155, -155, -135, -140, -142, -155, -127, -126, + -155, -155, -155, -45, -113, -112, -46, -118, -146, -148, + -155, -150, -152, -137, -155, -8, -143, -155, -155, -155, + -155, -131, -129, -147, -151, -155, -149, -138, -155, -141, + -155, -155, -121, -155, -155, -144, -122, -155, -139, -145 ] racc_goto_table = [ - 23, 29, 120, 126, 149, 78, 134, 145, 127, 225, - 129, 18, 128, 212, 134, 152, 125, 176, 219, 224, - 245, 258, 257, nil, nil, nil, 77, nil, nil, 81, - nil, nil, nil, nil, nil, 250, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, 197, nil, 198, nil, 155, - 143, 144, nil, nil, nil, nil, nil, nil, nil, nil, - 150, nil, 145, 134, nil, nil, 81, 81, 134, 134, - 77, nil, 208, nil, nil, nil, nil, nil, nil, 213, - nil, 205, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, 204, nil, 120, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 193, nil, - nil, 150, nil, 150, nil, nil, nil, nil, 199, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, 81, 81, nil, nil, nil, nil, nil, - 214, 145, 193, nil, nil, nil, nil, 134, 134, 127, - 127, 227, 228, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 205, nil, - nil, nil, nil, nil, nil, nil, 264, nil, nil, nil, - nil, 246, nil, nil, nil, nil, nil, nil, 223, 134, - 272, nil, nil, 205, nil, nil, nil, nil, 193, nil, - nil, nil, nil, 193, 81, 134, 262, nil, nil, nil, - nil, nil, nil, 81, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, 253, 254, nil, nil, 67, nil, - 256, nil, 68, 69, nil, nil, 70, 71, nil, nil, - 263, 73, 150, 81, 81, nil, 81, nil, nil, nil, - nil, nil, nil, 81, nil, 271, 150, nil, nil, nil, - 119, 81, nil, 274, 81, nil, 121, nil, nil, 122, - nil, nil, nil, 123, nil, nil, nil, 132, nil, nil, - nil, 141, 142, nil, nil, nil, nil, nil, nil, 147, - 148, nil, nil, nil, nil, nil, nil, nil, nil, 119, - nil, nil, nil, nil, nil, nil, nil, nil, 157, 158, - 159, 160, 161, 162, 163, 164, nil, 165, 166, 167, - nil, 168, 169, 170, 171, 172, 173, 174, nil, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, nil, nil, nil, nil, nil, - nil, 119, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, 207, nil, 119, 209, nil, nil, - nil, nil, nil, 119, 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, - 220, 221, nil, nil, nil, nil, nil, nil, nil, 229, - 230, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, 244, nil, nil, nil, nil, - nil, nil, nil, 252, 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, 266, nil, nil, nil, 268 ] + 34, 41, 67, 131, 152, 226, 241, 69, 70, 71, + 30, 88, 139, 72, 73, 142, 75, 205, 178, 238, + 78, 82, 161, 224, 225, 77, 83, 141, 219, 239, + 254, 245, 242, 246, 130, 133, nil, nil, nil, nil, + nil, 89, 90, 253, nil, nil, nil, 127, 129, nil, + nil, nil, nil, nil, 136, 137, nil, nil, nil, 197, + 138, nil, 144, 145, nil, nil, 78, 130, 154, 89, + 155, nil, 153, nil, 129, nil, 129, nil, nil, 221, + nil, 157, nil, nil, nil, 89, nil, nil, 159, 160, + 153, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 213, 174, 175, nil, 176, 202, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 153, 198, nil, + 78, 78, 129, 78, nil, 214, 77, nil, 89, nil, + 211, 208, nil, nil, nil, nil, 129, 212, nil, 251, + 252, nil, nil, 215, 198, 198, nil, nil, 256, 89, + 139, 139, nil, 234, 235, 259, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 265, nil, + 260, nil, nil, nil, 213, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 267, nil, nil, 228, 229, + nil, nil, nil, 213, nil, nil, 233, nil, nil, nil, + 236, 198, nil, 78, 78, 89, 250, nil, 77, nil, + nil, nil, nil, 244, nil, nil, nil, 248, nil, nil, + nil, nil, nil, nil, nil, 261, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 153, nil, + 78, nil, nil, nil, nil, 263, nil, nil, 264, nil, + nil, 78, nil, 153, nil, nil, nil, nil, 269, 89 ] racc_goto_check = [ - 2, 3, 7, 31, 22, 26, 11, 30, 21, 40, - 24, 1, 33, 36, 11, 35, 7, 37, 38, 39, - 5, 41, 43, nil, nil, nil, 3, nil, nil, 2, - nil, nil, nil, nil, nil, 40, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, 22, nil, 22, nil, 26, - 3, 3, nil, nil, nil, nil, nil, nil, nil, nil, - 2, nil, 30, 11, nil, nil, 2, 2, 11, 11, - 3, nil, 35, nil, nil, nil, nil, nil, nil, 35, - nil, 31, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, 7, nil, 7, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 2, nil, - nil, 2, nil, 2, nil, nil, nil, nil, 2, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, 2, 2, nil, nil, nil, nil, nil, - 3, 30, 2, nil, nil, nil, nil, 11, 11, 21, - 21, 24, 24, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 31, nil, - nil, nil, nil, nil, nil, nil, 22, nil, nil, nil, - nil, 7, nil, nil, nil, nil, nil, nil, 3, 11, - 22, nil, nil, 31, nil, nil, nil, nil, 2, nil, - nil, nil, nil, 2, 2, 11, 7, nil, nil, nil, - nil, nil, nil, 2, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, 3, 3, nil, nil, 4, nil, - 3, nil, 4, 4, nil, nil, 4, 4, nil, nil, - 3, 4, 2, 2, 2, nil, 2, nil, nil, nil, - nil, nil, nil, 2, nil, 3, 2, nil, nil, nil, - 4, 2, nil, 3, 2, nil, 4, nil, nil, 4, - nil, nil, nil, 4, nil, nil, nil, 4, nil, nil, - nil, 4, 4, nil, nil, nil, nil, nil, nil, 4, - 4, nil, nil, nil, nil, nil, nil, nil, nil, 4, - nil, nil, nil, nil, nil, nil, nil, nil, 4, 4, - 4, 4, 4, 4, 4, 4, nil, 4, 4, 4, - nil, 4, 4, 4, 4, 4, 4, 4, nil, 4, + 2, 3, 4, 33, 24, 42, 45, 3, 4, 4, + 1, 28, 21, 4, 4, 26, 4, 38, 39, 43, + 11, 4, 24, 40, 41, 32, 4, 35, 23, 44, + 45, 5, 46, 42, 7, 7, nil, nil, nil, nil, + nil, 2, 4, 43, nil, nil, nil, 4, 4, nil, + nil, nil, nil, nil, 4, 4, nil, nil, nil, 24, + 3, nil, 4, 4, nil, nil, 11, 7, 37, 2, + 37, nil, 2, nil, 4, nil, 4, nil, nil, 22, + nil, 4, nil, nil, nil, 2, nil, nil, 3, 4, + 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 33, 4, 4, nil, 4, 28, 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, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, 4, nil, 4, 4, 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, - 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, 4, 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, 4, nil, nil, nil, 4 ] + 4, 4, 4, 4, 4, 4, 4, 2, 2, nil, + 11, 11, 4, 11, nil, 7, 32, nil, 2, nil, + 37, 2, nil, nil, nil, nil, 4, 4, nil, 22, + 22, nil, nil, 3, 2, 2, nil, nil, 22, 2, + 21, 21, nil, 26, 26, 22, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 22, nil, + 24, nil, nil, nil, 33, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 24, nil, nil, 4, 4, + nil, nil, nil, 33, nil, nil, 4, nil, nil, nil, + 4, 2, nil, 11, 11, 2, 7, nil, 32, nil, + nil, nil, nil, 4, nil, nil, nil, 4, nil, nil, + nil, nil, nil, nil, nil, 7, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 2, nil, + 11, nil, nil, nil, nil, 4, nil, nil, 4, nil, + nil, 11, nil, 2, nil, nil, nil, nil, 3, 2 ] racc_goto_pointer = [ - nil, 11, 0, 1, 237, -198, nil, -31, nil, nil, - nil, -47, nil, nil, nil, nil, nil, nil, nil, nil, - nil, -40, -66, nil, -38, nil, -20, nil, nil, nil, - -54, -44, nil, -36, nil, -57, -131, -84, -158, -179, - -189, -221, nil, -220, nil ] + nil, 10, 0, 1, 0, -192, nil, -14, nil, nil, + nil, 0, nil, nil, nil, nil, nil, nil, nil, nil, + nil, -48, -82, -131, -68, nil, -45, nil, -26, nil, + nil, nil, 5, -46, nil, -33, nil, -6, -121, -90, + -155, -173, -192, -196, -186, -209, -183 ] racc_goto_default = [ - nil, nil, 75, 76, 32, 38, 45, 53, 58, 66, - 4, 8, 17, 22, 28, 31, 37, 44, 52, 57, - 65, 3, nil, 13, nil, 26, nil, 34, 40, 49, - 138, 61, 133, nil, 12, 118, nil, nil, nil, nil, - nil, 241, 242, 237, 238 ] + nil, nil, 68, 85, 46, 53, 58, 66, 5, 12, + 19, 24, 29, 33, 40, 45, 52, 57, 65, 4, + 11, 18, 86, nil, nil, 36, nil, 50, nil, 61, + 1, 7, 148, 20, 79, nil, 35, 128, nil, nil, + nil, nil, nil, nil, nil, nil, nil ] racc_reduce_table = [ 0, 0, :racc_error, - 0, 90, :_reduce_1, - 1, 90, :_reduce_2, - 1, 90, :_reduce_3, - 1, 92, :_reduce_4, - 3, 92, :_reduce_5, - 2, 92, :_reduce_6, - 2, 92, :_reduce_7, + 0, 92, :_reduce_1, + 1, 92, :_reduce_2, + 1, 92, :_reduce_3, + 1, 94, :_reduce_4, + 3, 94, :_reduce_5, + 2, 94, :_reduce_6, + 2, 94, :_reduce_7, + 1, 95, :_reduce_none, + 1, 95, :_reduce_none, + 1, 96, :_reduce_none, + 1, 96, :_reduce_none, + 1, 96, :_reduce_none, + 1, 96, :_reduce_none, + 1, 96, :_reduce_none, + 1, 97, :_reduce_none, + 1, 97, :_reduce_none, + 1, 97, :_reduce_none, + 1, 97, :_reduce_none, + 1, 97, :_reduce_none, + 1, 97, :_reduce_none, + 1, 97, :_reduce_none, + 1, 97, :_reduce_none, + 1, 97, :_reduce_none, + 1, 97, :_reduce_none, + 3, 113, :_reduce_25, + 0, 114, :_reduce_none, + 1, 114, :_reduce_none, 1, 93, :_reduce_none, 1, 93, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_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, 91, :_reduce_none, - 1, 91, :_reduce_none, - 1, 111, :_reduce_none, - 1, 111, :_reduce_none, - 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, - 1, 112, :_reduce_38, - 1, 112, :_reduce_39, - 1, 112, :_reduce_40, - 3, 101, :_reduce_41, - 3, 113, :_reduce_42, - 3, 113, :_reduce_43, - 1, 113, :_reduce_44, - 2, 105, :_reduce_45, - 1, 110, :_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, - 2, 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, - 2, 99, :_reduce_86, - 2, 99, :_reduce_87, - 3, 99, :_reduce_88, - 4, 98, :_reduce_89, - 3, 98, :_reduce_90, - 0, 115, :_reduce_91, - 1, 115, :_reduce_92, - 1, 114, :_reduce_93, - 3, 114, :_reduce_94, - 1, 96, :_reduce_95, - 1, 96, :_reduce_96, - 1, 96, :_reduce_97, - 1, 96, :_reduce_98, - 1, 96, :_reduce_99, - 2, 96, :_reduce_100, - 2, 96, :_reduce_101, - 2, 119, :_reduce_102, - 1, 119, :_reduce_103, - 1, 119, :_reduce_104, - 3, 121, :_reduce_105, - 3, 117, :_reduce_106, - 0, 122, :_reduce_107, - 1, 122, :_reduce_108, - 3, 122, :_reduce_109, - 3, 122, :_reduce_110, - 1, 97, :_reduce_111, - 2, 97, :_reduce_112, - 1, 97, :_reduce_113, - 3, 109, :_reduce_114, - 4, 120, :_reduce_115, - 4, 120, :_reduce_116, - 4, 123, :_reduce_117, - 6, 100, :_reduce_118, - 7, 100, :_reduce_119, - 3, 116, :_reduce_120, - 0, 124, :_reduce_121, - 1, 124, :_reduce_122, - 3, 124, :_reduce_123, - 3, 124, :_reduce_124, - 4, 103, :_reduce_125, - 6, 103, :_reduce_126, - 0, 125, :_reduce_127, - 3, 125, :_reduce_128, - 2, 104, :_reduce_129, - 3, 118, :_reduce_130, - 5, 106, :_reduce_131, - 4, 107, :_reduce_132, - 1, 126, :_reduce_133, - 3, 126, :_reduce_134, - 3, 127, :_reduce_135, - 5, 127, :_reduce_136, - 5, 108, :_reduce_137, - 7, 108, :_reduce_138, - 1, 128, :_reduce_139, - 2, 128, :_reduce_140, - 4, 129, :_reduce_141, - 5, 130, :_reduce_142, - 1, 131, :_reduce_143, - 2, 131, :_reduce_144, - 1, 132, :_reduce_145, - 3, 132, :_reduce_146, - 1, 133, :_reduce_147, - 2, 133, :_reduce_148, - 5, 102, :_reduce_149, - 3, 102, :_reduce_150, - 3, 102, :_reduce_151 ] + 1, 115, :_reduce_none, + 1, 115, :_reduce_none, + 1, 116, :_reduce_32, + 1, 116, :_reduce_33, + 1, 116, :_reduce_34, + 1, 116, :_reduce_35, + 1, 116, :_reduce_36, + 1, 116, :_reduce_37, + 1, 116, :_reduce_38, + 1, 116, :_reduce_39, + 1, 116, :_reduce_40, + 1, 116, :_reduce_41, + 1, 116, :_reduce_42, + 1, 116, :_reduce_43, + 3, 103, :_reduce_44, + 3, 117, :_reduce_45, + 3, 117, :_reduce_46, + 1, 117, :_reduce_47, + 2, 107, :_reduce_48, + 1, 112, :_reduce_49, + 2, 101, :_reduce_50, + 2, 101, :_reduce_51, + 2, 101, :_reduce_52, + 2, 101, :_reduce_53, + 2, 101, :_reduce_54, + 2, 101, :_reduce_55, + 2, 101, :_reduce_56, + 2, 101, :_reduce_57, + 2, 101, :_reduce_58, + 3, 101, :_reduce_59, + 3, 101, :_reduce_60, + 3, 101, :_reduce_61, + 3, 101, :_reduce_62, + 3, 101, :_reduce_63, + 3, 101, :_reduce_64, + 3, 101, :_reduce_65, + 3, 101, :_reduce_66, + 3, 101, :_reduce_67, + 3, 101, :_reduce_68, + 3, 101, :_reduce_69, + 3, 101, :_reduce_70, + 3, 101, :_reduce_71, + 3, 101, :_reduce_72, + 3, 101, :_reduce_73, + 3, 101, :_reduce_74, + 3, 101, :_reduce_75, + 3, 101, :_reduce_76, + 3, 101, :_reduce_77, + 3, 101, :_reduce_78, + 3, 101, :_reduce_79, + 3, 101, :_reduce_80, + 3, 101, :_reduce_81, + 3, 101, :_reduce_82, + 3, 101, :_reduce_83, + 3, 101, :_reduce_84, + 3, 101, :_reduce_85, + 3, 101, :_reduce_86, + 3, 101, :_reduce_87, + 3, 101, :_reduce_88, + 2, 101, :_reduce_89, + 2, 101, :_reduce_90, + 3, 101, :_reduce_91, + 3, 100, :_reduce_92, + 2, 100, :_reduce_93, + 0, 119, :_reduce_94, + 1, 119, :_reduce_95, + 1, 118, :_reduce_96, + 3, 118, :_reduce_97, + 1, 98, :_reduce_98, + 1, 98, :_reduce_99, + 1, 98, :_reduce_100, + 1, 98, :_reduce_101, + 1, 98, :_reduce_102, + 2, 98, :_reduce_103, + 2, 98, :_reduce_104, + 2, 123, :_reduce_105, + 1, 123, :_reduce_106, + 1, 123, :_reduce_107, + 3, 125, :_reduce_108, + 3, 121, :_reduce_109, + 0, 126, :_reduce_110, + 1, 126, :_reduce_111, + 3, 126, :_reduce_112, + 3, 126, :_reduce_113, + 1, 99, :_reduce_114, + 2, 99, :_reduce_115, + 1, 99, :_reduce_116, + 3, 111, :_reduce_117, + 4, 124, :_reduce_118, + 4, 124, :_reduce_119, + 4, 127, :_reduce_120, + 6, 102, :_reduce_121, + 7, 102, :_reduce_122, + 3, 120, :_reduce_123, + 0, 128, :_reduce_124, + 1, 128, :_reduce_125, + 3, 128, :_reduce_126, + 3, 128, :_reduce_127, + 3, 105, :_reduce_128, + 5, 105, :_reduce_129, + 0, 129, :_reduce_130, + 3, 129, :_reduce_131, + 2, 106, :_reduce_132, + 3, 122, :_reduce_133, + 4, 108, :_reduce_134, + 4, 109, :_reduce_135, + 1, 130, :_reduce_136, + 3, 130, :_reduce_137, + 3, 131, :_reduce_138, + 5, 131, :_reduce_139, + 4, 110, :_reduce_140, + 6, 110, :_reduce_141, + 1, 132, :_reduce_142, + 2, 132, :_reduce_143, + 4, 133, :_reduce_144, + 5, 134, :_reduce_145, + 1, 135, :_reduce_146, + 2, 135, :_reduce_147, + 0, 136, :_reduce_148, + 2, 136, :_reduce_149, + 1, 137, :_reduce_150, + 2, 137, :_reduce_151, + 5, 104, :_reduce_152, + 3, 104, :_reduce_153, + 3, 104, :_reduce_154 ] -racc_reduce_n = 152 +racc_reduce_n = 155 -racc_shift_n = 275 +racc_shift_n = 270 racc_token_table = { false => 0, @@ -965,57 +896,59 @@ racc_token_table = { :NEWLINE => 37, :COMMENT => 38, :JS => 39, - :UMINUS => 40, - :NOT => 41, - "!" => 42, - "!!" => 43, - "~" => 44, - "++" => 45, - "--" => 46, - "*" => 47, - "/" => 48, - "%" => 49, - "+" => 50, - "-" => 51, - "<<" => 52, - ">>" => 53, - ">>>" => 54, - "&" => 55, - "|" => 56, - "^" => 57, - "<=" => 58, - "<" => 59, - ">" => 60, - ">=" => 61, - "==" => 62, - "!=" => 63, - :IS => 64, - :ISNT => 65, - "&&" => 66, - "||" => 67, - :AND => 68, - :OR => 69, - "-=" => 70, - "+=" => 71, - "/=" => 72, - "*=" => 73, - "%=" => 74, - "." => 75, - :ASSIGN => 76, - "||=" => 77, - "&&=" => 78, - "\n" => 79, - ";" => 80, - "=>" => 81, - "," => 82, - "[" => 83, - "]" => 84, - "{" => 85, - "}" => 86, - "(" => 87, - ")" => 88 } + :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, + "\n" => 81, + ";" => 82, + "=>" => 83, + "," => 84, + "[" => 85, + "]" => 86, + "{" => 87, + "}" => 88, + "(" => 89, + ")" => 90 } -racc_nt_base = 89 +racc_nt_base = 91 racc_use_result_var = true @@ -1264,15 +1197,7 @@ module_eval(<<'.,.,', 'grammar.y', 57) # reduce 24 omitted -# reduce 25 omitted - -# reduce 26 omitted - -# reduce 27 omitted - -# reduce 28 omitted - -module_eval(<<'.,.,', 'grammar.y', 90) +module_eval(<<'.,.,', 'grammar.y', 91) def _reduce_25(val, _values, result) result = val[1] result @@ -1291,203 +1216,203 @@ module_eval(<<'.,.,', 'grammar.y', 90) # reduce 31 omitted -module_eval(<<'.,.,', 'grammar.y', 112) +module_eval(<<'.,.,', 'grammar.y', 113) def _reduce_32(val, _values, result) result = LiteralNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 113) +module_eval(<<'.,.,', 'grammar.y', 114) def _reduce_33(val, _values, result) result = LiteralNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 114) +module_eval(<<'.,.,', 'grammar.y', 115) def _reduce_34(val, _values, result) result = LiteralNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 115) - def _reduce_35(val, _values, result) - result = LiteralNode.new(true) - result - end -.,., - module_eval(<<'.,.,', 'grammar.y', 116) - def _reduce_36(val, _values, result) - result = LiteralNode.new(false) + def _reduce_35(val, _values, result) + result = LiteralNode.new(val[0]) result end .,., module_eval(<<'.,.,', 'grammar.y', 117) - def _reduce_37(val, _values, result) - result = LiteralNode.new(true) + def _reduce_36(val, _values, result) + result = LiteralNode.new(val[0]) result end .,., module_eval(<<'.,.,', 'grammar.y', 118) - def _reduce_38(val, _values, result) - result = LiteralNode.new(false) + def _reduce_37(val, _values, result) + result = LiteralNode.new(val[0]) result end .,., module_eval(<<'.,.,', 'grammar.y', 119) - def _reduce_39(val, _values, result) + def _reduce_38(val, _values, result) result = LiteralNode.new(true) result end .,., -module_eval(<<'.,.,', 'grammar.y', 112) - def _reduce_40(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 120) + def _reduce_39(val, _values, result) result = LiteralNode.new(false) result end .,., -module_eval(<<'.,.,', 'grammar.y', 117) - def _reduce_41(val, _values, result) - result = AssignNode.new(val[0], val[2]) +module_eval(<<'.,.,', 'grammar.y', 121) + def _reduce_40(val, _values, result) + result = LiteralNode.new(true) result end .,., module_eval(<<'.,.,', 'grammar.y', 122) - def _reduce_42(val, _values, result) - result = AssignNode.new(ValueNode.new(val[0]), val[2], :object) + def _reduce_41(val, _values, result) + result = LiteralNode.new(false) result end .,., module_eval(<<'.,.,', 'grammar.y', 123) - def _reduce_43(val, _values, result) - result = AssignNode.new(ValueNode.new(LiteralNode.new(val[0])), val[2], :object) + def _reduce_42(val, _values, result) + result = LiteralNode.new(true) result end .,., module_eval(<<'.,.,', 'grammar.y', 124) - def _reduce_44(val, _values, result) - result = val[0] + def _reduce_43(val, _values, result) + result = LiteralNode.new(false) result end .,., module_eval(<<'.,.,', 'grammar.y', 129) - def _reduce_45(val, _values, result) - result = ReturnNode.new(val[1]) + def _reduce_44(val, _values, result) + result = AssignNode.new(val[0], val[2]) result end .,., module_eval(<<'.,.,', 'grammar.y', 134) - def _reduce_46(val, _values, result) - result = CommentNode.new(val[0]) + def _reduce_45(val, _values, result) + result = AssignNode.new(ValueNode.new(val[0]), val[2], :object) result end .,., -module_eval(<<'.,.,', 'grammar.y', 139) +module_eval(<<'.,.,', 'grammar.y', 135) + def _reduce_46(val, _values, result) + result = AssignNode.new(ValueNode.new(LiteralNode.new(val[0])), val[2], :object) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 136) def _reduce_47(val, _values, result) + result = val[0] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 141) + def _reduce_48(val, _values, result) result = ReturnNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 144) - def _reduce_48(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 146) + def _reduce_49(val, _values, result) result = CommentNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 151) - def _reduce_49(val, _values, result) - result = OpNode.new(val[0], val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 152) +module_eval(<<'.,.,', 'grammar.y', 153) def _reduce_50(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 153) +module_eval(<<'.,.,', 'grammar.y', 154) def _reduce_51(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 154) +module_eval(<<'.,.,', 'grammar.y', 155) def _reduce_52(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 155) +module_eval(<<'.,.,', 'grammar.y', 156) def _reduce_53(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 148) +module_eval(<<'.,.,', 'grammar.y', 157) def _reduce_54(val, _values, result) - result = OpNode.new(val[1], val[0], nil, true) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 149) - def _reduce_55(val, _values, result) - result = OpNode.new(val[1], val[0], nil, true) + result = OpNode.new(val[0], val[1]) result end .,., module_eval(<<'.,.,', 'grammar.y', 158) - def _reduce_56(val, _values, result) - result = OpNode.new(val[1], val[0], nil, true) + def _reduce_55(val, _values, result) + result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 152) +module_eval(<<'.,.,', 'grammar.y', 159) + def _reduce_56(val, _values, result) + result = OpNode.new(val[0], val[1]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 160) def _reduce_57(val, _values, result) result = OpNode.new(val[1], val[0], nil, true) result end .,., -module_eval(<<'.,.,', 'grammar.y', 153) +module_eval(<<'.,.,', 'grammar.y', 161) def _reduce_58(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) + result = OpNode.new(val[1], val[0], nil, true) result end .,., -module_eval(<<'.,.,', 'grammar.y', 155) +module_eval(<<'.,.,', 'grammar.y', 163) def _reduce_59(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 156) +module_eval(<<'.,.,', 'grammar.y', 164) def _reduce_60(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result @@ -1501,133 +1426,133 @@ module_eval(<<'.,.,', 'grammar.y', 165) end .,., -module_eval(<<'.,.,', 'grammar.y', 159) +module_eval(<<'.,.,', 'grammar.y', 167) def _reduce_62(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 160) +module_eval(<<'.,.,', 'grammar.y', 168) def _reduce_63(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 169) +module_eval(<<'.,.,', 'grammar.y', 170) def _reduce_64(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 163) +module_eval(<<'.,.,', 'grammar.y', 171) def _reduce_65(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 164) +module_eval(<<'.,.,', 'grammar.y', 172) def _reduce_66(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 173) +module_eval(<<'.,.,', 'grammar.y', 174) def _reduce_67(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 174) +module_eval(<<'.,.,', 'grammar.y', 175) def _reduce_68(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 168) +module_eval(<<'.,.,', 'grammar.y', 176) def _reduce_69(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 169) +module_eval(<<'.,.,', 'grammar.y', 178) def _reduce_70(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 178) +module_eval(<<'.,.,', 'grammar.y', 179) def _reduce_71(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 179) +module_eval(<<'.,.,', 'grammar.y', 180) def _reduce_72(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 173) +module_eval(<<'.,.,', 'grammar.y', 181) def _reduce_73(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 174) +module_eval(<<'.,.,', 'grammar.y', 183) def _reduce_74(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 183) +module_eval(<<'.,.,', 'grammar.y', 184) def _reduce_75(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 184) +module_eval(<<'.,.,', 'grammar.y', 185) def _reduce_76(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 178) +module_eval(<<'.,.,', 'grammar.y', 186) def _reduce_77(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 179) +module_eval(<<'.,.,', 'grammar.y', 188) def _reduce_78(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 188) +module_eval(<<'.,.,', 'grammar.y', 189) def _reduce_79(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 189) +module_eval(<<'.,.,', 'grammar.y', 190) def _reduce_80(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result @@ -1641,491 +1566,512 @@ module_eval(<<'.,.,', 'grammar.y', 191) end .,., -module_eval(<<'.,.,', 'grammar.y', 192) +module_eval(<<'.,.,', 'grammar.y', 193) def _reduce_82(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 185) +module_eval(<<'.,.,', 'grammar.y', 194) def _reduce_83(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 186) +module_eval(<<'.,.,', 'grammar.y', 195) def _reduce_84(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 187) +module_eval(<<'.,.,', 'grammar.y', 196) def _reduce_85(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 189) +module_eval(<<'.,.,', 'grammar.y', 197) def _reduce_86(val, _values, result) - result = OpNode.new(val[0], val[1]) + result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 190) +module_eval(<<'.,.,', 'grammar.y', 198) def _reduce_87(val, _values, result) - result = OpNode.new(val[0], val[1]) + result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 191) +module_eval(<<'.,.,', 'grammar.y', 199) def _reduce_88(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 196) +module_eval(<<'.,.,', 'grammar.y', 201) def _reduce_89(val, _values, result) - result = CodeNode.new(val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 197) - def _reduce_90(val, _values, result) - result = CodeNode.new([], val[1]) + result = OpNode.new(val[0], val[1]) result end .,., module_eval(<<'.,.,', 'grammar.y', 202) - def _reduce_91(val, _values, result) - result = Expressions.new([]) + def _reduce_90(val, _values, result) + result = OpNode.new(val[0], val[1]) result end .,., module_eval(<<'.,.,', 'grammar.y', 203) - def _reduce_92(val, _values, result) - result = val[0] + def _reduce_91(val, _values, result) + result = OpNode.new(val[1], val[0], val[2]) result end .,., module_eval(<<'.,.,', 'grammar.y', 208) - def _reduce_93(val, _values, result) - result = val + def _reduce_92(val, _values, result) + result = CodeNode.new(val[0], val[2]) result end .,., module_eval(<<'.,.,', 'grammar.y', 209) + def _reduce_93(val, _values, result) + result = CodeNode.new([], val[1]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 214) def _reduce_94(val, _values, result) - result = val[0] << val[2] + result = Expressions.new([]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 218) +module_eval(<<'.,.,', 'grammar.y', 215) def _reduce_95(val, _values, result) + result = val[0] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 220) + def _reduce_96(val, _values, result) + result = val + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 221) + def _reduce_97(val, _values, result) result = val[0] << val[2] result end .,., -module_eval(<<'.,.,', 'grammar.y', 223) - def _reduce_96(val, _values, result) - result = ValueNode.new(val[0]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 224) - def _reduce_97(val, _values, result) - result = ValueNode.new(val[0]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 217) +module_eval(<<'.,.,', 'grammar.y', 226) def _reduce_98(val, _values, result) result = ValueNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 218) +module_eval(<<'.,.,', 'grammar.y', 227) def _reduce_99(val, _values, result) result = ValueNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 219) +module_eval(<<'.,.,', 'grammar.y', 228) def _reduce_100(val, _values, result) + result = ValueNode.new(val[0]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 229) + def _reduce_101(val, _values, result) + result = ValueNode.new(val[0]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 230) + def _reduce_102(val, _values, result) + result = ValueNode.new(val[0]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 231) + def _reduce_103(val, _values, result) result = val[0] << val[1] result end .,., -module_eval(<<'.,.,', 'grammar.y', 220) - def _reduce_101(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 232) + def _reduce_104(val, _values, result) result = ValueNode.new(val[0], [val[1]]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 225) - def _reduce_102(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 237) + def _reduce_105(val, _values, result) result = AccessorNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 226) - def _reduce_103(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 238) + def _reduce_106(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 227) - def _reduce_104(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 239) + def _reduce_107(val, _values, result) result = SliceNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 232) - def _reduce_105(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 244) + def _reduce_108(val, _values, result) result = IndexNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 237) - def _reduce_106(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 249) + def _reduce_109(val, _values, result) result = ObjectNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 242) - def _reduce_107(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 254) + def _reduce_110(val, _values, result) result = [] result end .,., -module_eval(<<'.,.,', 'grammar.y', 243) - def _reduce_108(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 255) + def _reduce_111(val, _values, result) result = val result end .,., -module_eval(<<'.,.,', 'grammar.y', 244) - def _reduce_109(val, _values, result) - result = val[0] << val[2] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 245) - def _reduce_110(val, _values, result) - result = val[0] << val[2] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 250) - def _reduce_111(val, _values, result) - result = val[0] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 251) +module_eval(<<'.,.,', 'grammar.y', 256) def _reduce_112(val, _values, result) - result = val[1].new_instance - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 252) - def _reduce_113(val, _values, result) - result = val[0] + result = val[0] << val[2] result end .,., module_eval(<<'.,.,', 'grammar.y', 257) - def _reduce_114(val, _values, result) - result = ExtendsNode.new(val[0], val[2]) + def _reduce_113(val, _values, result) + result = val[0] << val[2] result end .,., module_eval(<<'.,.,', 'grammar.y', 262) - def _reduce_115(val, _values, result) - result = CallNode.new(val[0], val[2]) + def _reduce_114(val, _values, result) + result = val[0] result end .,., module_eval(<<'.,.,', 'grammar.y', 263) + def _reduce_115(val, _values, result) + result = val[1].new_instance + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 264) def _reduce_116(val, _values, result) - result = CallNode.new(val[0], val[2]) + result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 268) +module_eval(<<'.,.,', 'grammar.y', 269) def _reduce_117(val, _values, result) - result = CallNode.new(:super, val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 273) - def _reduce_118(val, _values, result) - result = RangeNode.new(val[1], val[4]) + result = ExtendsNode.new(val[0], val[2]) result end .,., module_eval(<<'.,.,', 'grammar.y', 274) + def _reduce_118(val, _values, result) + result = CallNode.new(val[0], val[2]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 275) def _reduce_119(val, _values, result) - result = RangeNode.new(val[1], val[5], true) + result = CallNode.new(val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 279) +module_eval(<<'.,.,', 'grammar.y', 280) def _reduce_120(val, _values, result) - result = ArrayNode.new(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 284) - def _reduce_121(val, _values, result) - result = [] + result = CallNode.new(:super, val[2]) result end .,., module_eval(<<'.,.,', 'grammar.y', 285) - def _reduce_122(val, _values, result) - result = val + def _reduce_121(val, _values, result) + result = RangeNode.new(val[1], val[4]) result end .,., module_eval(<<'.,.,', 'grammar.y', 286) + def _reduce_122(val, _values, result) + result = RangeNode.new(val[1], val[5], true) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 291) def _reduce_123(val, _values, result) - result = val[0] << val[2] + result = ArrayNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 287) +module_eval(<<'.,.,', 'grammar.y', 296) def _reduce_124(val, _values, result) - result = val[0] << val[2] + result = [] result end .,., -module_eval(<<'.,.,', 'grammar.y', 292) +module_eval(<<'.,.,', 'grammar.y', 297) def _reduce_125(val, _values, result) - result = TryNode.new(val[1], val[2][0], val[2][1]) + result = val result end .,., -module_eval(<<'.,.,', 'grammar.y', 294) +module_eval(<<'.,.,', 'grammar.y', 298) def _reduce_126(val, _values, result) - result = TryNode.new(val[1], val[2][0], val[2][1], val[4]) + result = val[0] << val[2] result end .,., module_eval(<<'.,.,', 'grammar.y', 299) def _reduce_127(val, _values, result) + result = val[0] << val[2] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 304) + def _reduce_128(val, _values, result) + result = TryNode.new(val[1], val[2][0], val[2][1]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 306) + def _reduce_129(val, _values, result) + result = TryNode.new(val[1], val[2][0], val[2][1], val[4]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 311) + def _reduce_130(val, _values, result) result = [nil, nil] result end .,., -module_eval(<<'.,.,', 'grammar.y', 300) - def _reduce_128(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 312) + def _reduce_131(val, _values, result) result = [val[1], val[2]] result end .,., -module_eval(<<'.,.,', 'grammar.y', 305) - def _reduce_129(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 317) + def _reduce_132(val, _values, result) result = ThrowNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 310) - def _reduce_130(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 322) + def _reduce_133(val, _values, result) result = ParentheticalNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 316) - def _reduce_131(val, _values, result) - result = WhileNode.new(val[1], val[3]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 323) - def _reduce_132(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', 328) - def _reduce_133(val, _values, result) - result = val - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 329) +module_eval(<<'.,.,', 'grammar.y', 327) def _reduce_134(val, _values, result) - result = [val[0], val[2]] + result = WhileNode.new(val[1], val[3]) result end .,., module_eval(<<'.,.,', 'grammar.y', 334) def _reduce_135(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', 339) + def _reduce_136(val, _values, result) + result = val + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 340) + def _reduce_137(val, _values, result) + result = [val[0], val[2]] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 345) + def _reduce_138(val, _values, result) result = [val[1]] result end .,., -module_eval(<<'.,.,', 'grammar.y', 336) - def _reduce_136(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 347) + def _reduce_139(val, _values, result) result = [val[1], val[3]] result end .,., -module_eval(<<'.,.,', 'grammar.y', 342) - def _reduce_137(val, _values, result) - result = val[3].rewrite_condition(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 344) - def _reduce_138(val, _values, result) - result = val[3].rewrite_condition(val[1]).add_else(val[5]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 349) - def _reduce_139(val, _values, result) - result = val[0] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 350) +module_eval(<<'.,.,', 'grammar.y', 353) def _reduce_140(val, _values, result) - result = val[0] << val[1] + result = val[3].rewrite_condition(val[1]) result end .,., module_eval(<<'.,.,', 'grammar.y', 355) def _reduce_141(val, _values, result) - result = IfNode.new(val[1], val[3]) + result = val[3].rewrite_condition(val[1]).add_else(val[5]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 364) +module_eval(<<'.,.,', 'grammar.y', 360) def _reduce_142(val, _values, result) - result = IfNode.new(val[2], val[4]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 369) - def _reduce_143(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 370) +module_eval(<<'.,.,', 'grammar.y', 361) + def _reduce_143(val, _values, result) + result = val[0] << val[1] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 366) def _reduce_144(val, _values, result) - result = val[0].add_else(val[1]) + result = IfNode.new(val[1], val[3]) result end .,., module_eval(<<'.,.,', 'grammar.y', 375) def _reduce_145(val, _values, result) - result = nil + result = IfNode.new(val[2], val[4]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 376) +module_eval(<<'.,.,', 'grammar.y', 380) def _reduce_146(val, _values, result) - result = val[1] + result = val[0] result end .,., module_eval(<<'.,.,', 'grammar.y', 381) def _reduce_147(val, _values, result) - result = val[0] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 382) - def _reduce_148(val, _values, result) result = val[0].add_else(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 388) +module_eval(<<'.,.,', 'grammar.y', 386) + def _reduce_148(val, _values, result) + result = nil + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 387) def _reduce_149(val, _values, result) + result = val[1] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 392) + def _reduce_150(val, _values, result) + result = val[0] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 393) + def _reduce_151(val, _values, result) + result = val[0].add_else(val[1]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 399) + def _reduce_152(val, _values, result) result = IfNode.new(val[1], val[3], val[4]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 389) - def _reduce_150(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 400) + def _reduce_153(val, _values, result) result = IfNode.new(val[2], Expressions.new([val[0]]), nil, {:statement => true}) result end .,., -module_eval(<<'.,.,', 'grammar.y', 390) - def _reduce_151(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 401) + def _reduce_154(val, _values, result) result = IfNode.new(val[2], Expressions.new([val[0]]), nil, {:statement => true, :invert => true}) result end diff --git a/test/fixtures/generation/whitespace.coffee b/test/fixtures/generation/whitespace.coffee new file mode 100644 index 00000000..7a5bfaf7 --- /dev/null +++ b/test/fixtures/generation/whitespace.coffee @@ -0,0 +1,6 @@ +# test +f1: x => + x * x + f2: y => + y * x +