From b795ae7fe1dd43885ef2323ffdbb310b9e6b4429 Mon Sep 17 00:00:00 2001 From: Jeremy Ashkenas Date: Fri, 5 Feb 2010 22:01:11 -0500 Subject: [PATCH] removing arguments as a keyword -- we can detect its use at code-generation time. --- lib/coffee_script/grammar.y | 2 - lib/coffee_script/lexer.rb | 3 +- lib/coffee_script/nodes.rb | 10 +- lib/coffee_script/parser.rb | 2761 ++++++++--------- lib/coffee_script/rewriter.rb | 4 +- test/fixtures/execution/test_arguments.coffee | 5 + 6 files changed, 1385 insertions(+), 1400 deletions(-) diff --git a/lib/coffee_script/grammar.y b/lib/coffee_script/grammar.y index c9fb2802..df1c2a60 100644 --- a/lib/coffee_script/grammar.y +++ b/lib/coffee_script/grammar.y @@ -13,7 +13,6 @@ token FOR IN OF BY WHEN WHILE token SWITCH LEADING_WHEN token DELETE INSTANCEOF TYPEOF token SUPER EXTENDS -token ARGUMENTS token NEWLINE token COMMENT token JS @@ -102,7 +101,6 @@ rule | REGEX { result = LiteralNode.new(val[0]) } | BREAK { result = LiteralNode.new(val[0]) } | CONTINUE { result = LiteralNode.new(val[0]) } - | ARGUMENTS { result = LiteralNode.new(val[0]) } | TRUE { result = LiteralNode.new(Value.new(true)) } | FALSE { result = LiteralNode.new(Value.new(false)) } | YES { result = LiteralNode.new(Value.new(true)) } diff --git a/lib/coffee_script/lexer.rb b/lib/coffee_script/lexer.rb index ecb56021..620d9733 100644 --- a/lib/coffee_script/lexer.rb +++ b/lib/coffee_script/lexer.rb @@ -15,8 +15,7 @@ module CoffeeScript "for", "in", "of", "by", "where", "while", "delete", "instanceof", "typeof", "switch", "when", - "super", "extends", - "arguments"] + "super", "extends"] # Token matching regexes. IDENTIFIER = /\A([a-zA-Z$_](\w|\$)*)/ diff --git a/lib/coffee_script/nodes.rb b/lib/coffee_script/nodes.rb index aaaec0a4..87648c24 100644 --- a/lib/coffee_script/nodes.rb +++ b/lib/coffee_script/nodes.rb @@ -153,7 +153,7 @@ module CoffeeScript # at the top. def compile_with_declarations(o={}) code = compile_node(o) - args = self.contains? {|n| n.is_a?(LiteralNode) && n.arguments? } + args = self.contains? {|n| n.is_a?(ValueNode) && n.arguments? } argv = args && o[:scope].check('arguments') ? '' : 'var ' code = "#{idt}#{argv}arguments = Array.prototype.slice.call(arguments, 0);\n#{code}" if args code = "#{idt}var #{o[:scope].compiled_assignments};\n#{code}" if o[:scope].assignments?(self) @@ -203,10 +203,6 @@ module CoffeeScript end alias_method :statement_only?, :statement? - def arguments? - @value.to_s == 'arguments' - end - def compile_node(o) indent = statement? ? idt : '' ending = statement? ? ';' : '' @@ -361,6 +357,10 @@ module CoffeeScript properties? && @properties.last.is_a?(SliceNode) end + def arguments? + @base.to_s == 'arguments' + end + def unwrap @properties.empty? ? @base : self end diff --git a/lib/coffee_script/parser.rb b/lib/coffee_script/parser.rb index b87861d6..5aa620c6 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', 466) +module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 464) # Lex and parse a CoffeeScript. def parse(code) # Uncomment the following line to enable grammar debugging, in combination @@ -34,349 +34,347 @@ module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 466) ##### State transition tables begin ### clist = [ -'136,11,144,29,32,35,41,44,49,54,58,63,66,106,107,108,61,1,178,281,21', -'26,103,300,105,112,43,163,262,55,59,67,132,138,-186,-186,51,152,12,280', -'22,166,33,37,171,45,279,51,56,61,61,163,13,17,74,4,9,15,151,155,158', -'161,165,169,131,135,140,143,147,150,154,157,160,164,168,130,134,139', -'142,146,149,153,156,159,162,167,129,133,137,141,145,148,172,2,7,125', -'177,310,30,274,36,39,11,48,208,29,32,35,41,44,49,54,58,63,66,283,271', -'202,61,1,212,213,21,26,287,288,202,98,43,296,61,55,59,67,68,97,270,122', -'61,6,12,210,22,202,33,37,163,45,113,51,56,114,77,-186,-186,290,74,4', -'9,15,19,24,13,17,200,40,47,262,262,201,51,13,17,200,61,51,51,98,297', -'13,17,13,17,186,98,97,13,17,13,17,200,163,97,206,207,2,7,61,-186,-186', -'30,176,36,39,11,48,84,29,32,35,41,44,49,54,58,63,66,61,13,17,51,1,99', -'98,21,26,84,51,189,99,43,97,98,55,59,67,68,287,288,190,97,6,12,195,22', -'196,33,37,163,45,197,51,56,13,17,151,155,163,74,4,9,15,19,24,-186,-186', -'51,40,47,163,13,17,186,291,187,51,151,155,158,161,165,169,131,135,140', -'143,147,150,154,157,160,164,168,130,134,139,142,2,7,2,7,77,30,61,36', -'39,11,48,319,29,32,35,41,44,49,54,58,63,66,106,107,108,224,1,13,17,21', -'26,103,209,105,125,43,163,211,55,59,67,68,258,-186,-186,,6,12,,22,,33', -'37,163,45,,51,56,212,213,151,155,,74,4,9,15,19,24,163,,,40,47,,,151', -'155,158,161,165,169,131,135,140,143,147,150,154,157,160,164,168,130', -'134,139,142,313,163,,,,2,7,,-186,-186,30,,36,39,11,48,,29,32,35,41,44', -'49,54,58,63,66,106,107,108,,1,,,21,26,103,,105,,43,163,,55,59,67,68', -',151,155,,6,12,,22,,33,37,163,45,,51,56,,,-186,-186,,74,4,9,15,19,24', -'163,,,40,47,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157', -'160,164,168,130,134,139,142,106,107,108,,,2,7,,,103,30,105,36,39,11', -'48,,29,32,35,41,44,49,54,58,63,66,106,107,108,,1,,,21,26,103,,105,,43', -'163,,55,59,67,68,,-186,-186,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9', -'15,19,24,163,,,40,47,,,151,155,158,161,165,169,131,135,140,143,147,150', -'154,157,160,164,168,130,134,139,142,106,107,108,,,2,7,,,103,30,105,36', -'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', -'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,163,,,40,47', -',,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160,164,168', -'130,134,139,142,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58', -'63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51', -'56,,,,,,74,4,9,15,19,24,163,,,40,47,,,151,155,158,161,165,169,131,135', -'140,143,147,150,154,157,160,164,168,130,134,139,142,,,,,,2,7,,,,30,', -'36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55', -'59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,163,,,40', -'47,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160,164', -'168,130,134,139,142,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54', -'58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45', -',51,56,,,,,,74,4,9,15,19,24,163,,,40,47,,,151,155,158,161,165,169,131', -'135,140,143,147,150,154,157,160,164,168,130,134,139,142,,,,,,2,7,,,', -'30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43', -',,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,163', -',,40,47,,,151,155,158,161,165,169,131,135,140,143,147,150,154,163,,', -',,,,151,155,158,161,165,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54', -'58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45', -',51,56,,,,,,74,4,9,15,19,24,163,,,40,47,,,151,155,158,161,165,169,131', -'135,140,143,147,150,154,163,,,,,,,151,155,158,161,165,,2,7,,,,30,,36', -'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', -'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,163,,,40,47', -',,151,155,158,161,165,169,131,135,140,143,147,150,154,,,,,,,,,,,,,,2', -'7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,', -',,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19', -'24,163,,,40,47,,,151,155,158,161,165,169,131,135,140,143,147,150,154', -',,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,', -',,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,', -',,74,4,9,15,19,24,163,,,40,47,,,151,155,158,161,165,169,131,135,140', -'143,,,,,,,,,,,,303,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54', -'58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45', -',51,56,,,,,,74,4,9,15,19,24,163,,,40,47,,,151,155,158,161,165,169,131', -'135,140,143,163,,,,,,,151,155,158,161,165,169,131,,,2,7,,,,30,,36,39', -'11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67', -'68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,163,,,40,47,', -',151,155,158,161,165,169,131,135,140,143,163,,,,,,,151,155,158,161,165', -'169,131,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,', -'1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74', -'4,9,15,19,24,163,,,40,47,,,151,155,158,161,165,169,131,,,,,,,,,,,,,', -',,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,', -'21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4', -'9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11', -'48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68', -',,,,6,12,,22,,33,37,,45,,51,56,114,,,,,74,4,9,15,19,24,,,,40,47,,,,', -',,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54', -'58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45', -',51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7', -',,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,', -'43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24', -',,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35', -'41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22', -',33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,', -',,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1', -',,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74', -'4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11', -'48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68', -',,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,', -',,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58', -'63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51', -'56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,', -'30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43', -',,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,123,,,,74,4,9,15,19,24', -',,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35', -'41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22', -',33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,', -',,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1', -',,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,275,,,,', -'74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,13,17,,30,', -'36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55', -'59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49', -'54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,', -'45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,', -'2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26', -',,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19', -'24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32', -'35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12', -',22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,', -',,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,', -',,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,', -',74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36', -'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', -'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,', -',,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49', -'54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,', -'45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,', -'2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26', -',,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19', -'24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32', -'35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12', -',22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,', -',,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,', -',,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,', -',74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36', -'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', -'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,', -',,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49', -'54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,', -'45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,', -'2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26', -',,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19', -'24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32', -'35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12', -',22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,', -',,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,', -',,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,', -',74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36', -'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', -'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,', -',,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49', -'54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,', -'45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,', -'2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26', -',,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19', -'24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32', -'35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12', -',22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,', -',,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,', -',,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,', -',74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36', -'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', -'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,', -',,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49', -'54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,', -'45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,', -'2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26', -',,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19', -'24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32', -'35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12', -',22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,', -',,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,', -',,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,', -',74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36', -'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', -'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,', -',,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49', -'54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,', -'45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,', -'2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26', -',,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19', -'24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32', -'35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12', -',22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,', -',,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,', -',,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,', -',74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36', -'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', -'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,', -',,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49', -'54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,', -'45,,51,56,114,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,', -',,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21', -'26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15', -'19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29', -'32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6', -'12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,', -',,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66', -',,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,', -',,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36', -'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', -'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,', -',,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49', -'54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,', -'45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,', -'2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26', -',,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19', -'24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32', -'35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12', -',22,,33,37,,45,,51,56,61,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,', -',,,,,,,,,,,,,,2,7,13,17,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63', -'66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56', -',,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30', -',36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55', -'59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49', -'54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,', -'45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,', -'2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26', -',,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19', -'24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32', -'35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12', -',22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,', -',,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,', -',,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,', -',74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36', -'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', -'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,136,,144,74,4,9,15,19,24,,,,40', -'47,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,2,7,,,,30,,36,39,163,48,', -',,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160,164', -'168,130,134,139,142,146,149,153,156,159,162,167,129,133,137,141,145', -'148,136,,144,,,,,,,,322,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,', -',,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154', -'157,160,164,168,130,134,139,142,146,149,153,156,159,162,167,129,133', -'137,141,145,148,29,32,35,41,44,49,54,58,63,66,316,,,,1,,,21,26,,,,,43', -',,55,59,67,,,,,,,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40', -'47,,,,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,2,7,55,59', -'67,30,,36,39,,48,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40', -'47,,,,29,32,35,41,44,49,54,58,63,66,,,,,,,,,,,,,,,,2,7,59,67,,30,,36', -'39,,48,,,,,,,45,,,56,,,,,,,,,,,,,,,,,,,29,32,35,41,44,49,54,58,63,66', -',,,,1,,,21,26,,,,,43,,,55,59,67,68,,30,,36,39,12,48,22,,33,37,,45,,51', -'56,,,,,,74,4,9,15,19,24,,,,40,47,,,,29,32,35,41,44,49,54,58,63,66,,', -',,,,,,,,,,,,,2,7,59,67,,30,,36,39,,48,,,,,,,45,,,56,,,136,,144,,,,,', -',,,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,,,,,,30,,36,39,163,48', -',,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160,164', -'168,130,134,139,142,146,149,153,156,159,162,167,129,133,137,141,145', -'148,136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,,,,', -',,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157', -'160,164,168,130,134,139,142,146,149,153,156,159,162,167,129,133,204', -'141,145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,321,,,,,,,132,138,,,,152', -',,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143,147', -'150,154,157,160,164,168,130,134,139,142,146,149,153,156,159,162,167', -'129,133,137,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,138', -',,,152,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140', -'143,147,150,154,157,160,164,168,130,134,139,142,146,149,153,156,159', -'162,167,129,133,137,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,', -',,132,138,,,,152,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131', -'135,140,143,147,150,154,157,160,164,168,130,134,139,142,146,149,153', -'156,159,162,167,129,133,137,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,', -',,,323,,,,,,,132,138,,,,152,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161', -'165,169,131,135,140,143,147,150,154,157,160,164,168,130,134,139,142', -'146,149,153,156,159,162,167,129,133,137,141,145,148,136,,144,,,,,,,', -',,,,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,,,,,,,,,,163,,,,,,,151,155', -'158,161,165,169,131,135,140,143,147,150,154,157,160,164,168,130,134', -'139,142,146,149,153,156,159,162,167,129,133,137,141,145,148,136,,144', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,,,,,,,,,,163,,,,', -',,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160,164,168', -'130,134,139,142,146,149,153,156,159,162,167,129,133,137,141,145,148', -'136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,,,,,,,,', -',163,,,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160', -'164,168,130,134,139,142,146,149,153,156,159,162,167,129,133,137,141', -'145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166', -',,,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154', -'157,160,164,168,130,134,139,142,146,149,153,156,159,162,167,129,133', -'137,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152', -',,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143,147', -'150,154,157,160,164,168,130,134,139,142,146,149,153,156,159,162,167', -'129,133,137,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,138', -',,,152,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140', -'143,147,150,154,157,160,164,168,130,134,139,142,146,149,153,156,159', -'162,167,129,133,137,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,', -',,132,138,,,,152,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131', -'135,140,143,147,150,154,157,160,164,168,130,134,139,142,146,149,153', -'156,159,162,167,129,133,137,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,', -',,,,,,,,,,132,138,,,,152,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165', -'169,131,135,140,143,147,150,154,157,160,164,168,130,134,139,142,146', -'149,153,156,159,162,167,129,133,137,141,145,148,136,,144,,,,,,,,,,,', -',,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,,,,,,,,,,163,,,,,,,151,155,158', -'161,165,169,131,135,140,143,147,150,154,157,160,164,168,130,134,139', -'142,146,149,153,156,159,162,167,129,133,137,141,145,148,136,,144,,,', -',,,,,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,,,,,,,,,,163,,,,,,,151', -'155,158,161,165,169,131,135,140,143,147,150,154,157,160,164,168,130', -'134,139,142,146,149,153,156,159,162,167,129,133,137,141,145,148,136', -',144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,,,,,,,,,,163', -',,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160,164', -'168,130,134,139,142,146,149,153,156,159,162,167,129,133,137,141,145', -'148,136,,144,,,,,,,,,,,,,,,,,,,,,,,273,,,,,,,132,138,,,,152,,,,166,', -',,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154', -'157,160,164,168,130,134,139,142,146,149,153,156,159,162,167,129,133', -'272,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152', -',,,166,,,,,,,,185,,163,,,,,,,151,155,158,161,165,169,131,135,140,143', -'147,150,154,157,160,164,168,130,134,139,142,146,149,153,156,159,162', -'167,129,133,137,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132', -'138,,,,152,,,,166,,,,,,,,61,,163,,,,,,,151,155,158,161,165,169,131,135', -'140,143,147,150,154,157,160,164,168,130,134,139,142,146,149,153,156', -'159,162,167,129,133,137,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,', -',,,,,,132,138,,,,152,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169', -'131,135,140,143,147,150,154,157,160,164,168,130,134,139,142,146,149', -'153,156,159,162,167,129,133,137,141,145,148,136,,144,,,,,,,,,,,,,,,', -',,,,,,,,,,,,,,132,138,,,,152,,,,166,,,,,,,,61,,163,,,,,,,151,155,158', -'161,165,169,131,135,140,143,147,150,154,157,160,164,168,130,134,139', -'142,146,149,153,156,159,162,167,129,133,137,141,145,148,132,138,,,,', -',,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143,147', -'150,154,157,160,164,168,130,134,139,142,146,149,153,156,159,162,167', -'129,133,137,141,145,148,132,138,,,,,,,,166,,,,,,,,,,163,,,,,,,151,155', -'158,161,165,169,131,135,140,143,147,150,154,157,160,164,168,130,134', -'139,142,146,149,153,156,159,162,167,129,133,137,141,145,148,132,138', -',,,,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143', -'147,150,154,157,160,164,168,130,134,139,142,146,149,153,156,159,162', -'167,129,133,137,132,138,,,,,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161', -'165,169,131,135,140,143,147,150,154,157,160,164,168,130,134,139,142', -'146,149,153,156,159,162,167,129,133,137,132,138,,,,,,,,166,,,,,,,,,', -'163,,,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160', -'164,168,130,134,139,142,146,149,153,156,159,162,167,129,133,137,132', -'138,,,,,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140', -'143,147,150,154,157,160,164,168,130,134,139,142,146,149,153,156,159', -'162,167,129,133,137,138,,,,,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161', -'165,169,131,135,140,143,147,150,154,157,160,164,168,130,134,139,142', -'146,149,153,156,159,162,167,129,133,137,138,,,,,,,,166,,,,,,,,,,163', -',,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160,164', -'168,130,134,139,142,146,149,153,156,159,162,167,129,133,137,138,,,,', -',,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143,147', -'150,154,157,160,164,168,130,134,139,142,146,149,153,156,159,162,167', -'129,133,137,138,,,,,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169', -'131,135,140,143,147,150,154,157,160,164,168,130,134,139,142,146,149', -'153,156,159,162,167,129,133,137,138,,,,,,,,166,,,,,,,,,,163,,,,,,,151', -'155,158,161,165,169,131,135,140,143,147,150,154,157,160,164,168,130', -'134,139,142,146,149,153,156,159,162,167,129,133,137,166,,,,,,,,,,163', -',,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160,164', -'168,130,134,139,142,146,149,153,156,159,162,167,129,133,166,,,,,,,,', -',163,,,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160', -'164,168,130,134,139,142,146,149,153,156,159,162,167,129,133,166,,,,', -',,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157', -'160,164,168,130,134,139,142,146,149,153,156,159,162,167,129,133,163', -',,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160,164', -'168,130,134,139,142,146,149,153,156,159,162,167,129,133,163,,,,,,,151', -'155,158,161,165,169,131,135,140,143,147,150,154,157,160,164,168,130', -'134,139,142,146,149,153,156,159,162,167,129,133,163,,,,,,,151,155,158', -'161,165,169,131,135,140,143,147,150,154,157,160,164,168,130,134,139', -'142,146,149,153,156,159,162,167,129,133,163,,,,,,,151,155,158,161,165', -'169,131,135,140,143,147,150,154,157,160,164,168,130,134,139,142,146', -'149,153,156,159,162,167,129,133,163,,,,,,,151,155,158,161,165,169,131', -'135,140,143,147,150,154,157,160,164,168,130,134,139,142,146,149,153', -'156,159,162,167,129,133' ] - racc_action_table = arr = Array.new(11069, nil) +'134,194,142,28,31,35,40,44,46,52,57,61,64,103,104,105,181,115,103,104', +'105,299,101,270,102,286,287,101,158,102,58,65,130,135,195,146,149,150', +'55,262,55,164,8,14,170,158,47,50,290,199,158,196,146,149,153,156,160', +'146,149,153,156,160,163,167,129,133,138,141,145,148,152,155,159,162', +'166,128,132,137,140,144,147,151,154,157,161,165,127,131,136,139,143', +'171,55,180,8,14,201,26,278,32,36,12,42,204,28,31,35,40,44,46,52,57,61', +'64,187,199,262,12,2,212,213,21,25,47,199,55,97,43,293,209,53,58,65,66', +'94,265,206,207,7,13,311,22,97,33,37,97,55,47,50,185,94,286,287,94,71', +'74,5,10,16,19,8,14,201,34,39,55,262,198,47,8,14,201,289,47,8,14,294', +'8,14,55,8,14,190,97,47,120,95,47,97,95,282,94,55,72,3,55,94,280,26,279', +'32,36,12,42,81,28,31,35,40,44,46,52,57,61,64,277,8,14,124,2,8,14,21', +'25,81,47,8,14,43,158,47,53,58,65,66,208,-185,-185,257,7,13,55,22,158', +'33,37,72,3,47,50,146,149,153,156,160,71,74,5,10,16,19,158,212,213,34', +'39,316,78,146,149,153,156,160,163,167,129,133,138,141,145,148,152,155', +'159,162,166,128,132,137,312,158,78,179,211,72,3,219,-185,-185,26,124', +'32,36,12,42,109,28,31,35,40,44,46,52,57,61,64,103,104,105,,2,,,21,25', +'101,,102,,43,158,,53,58,65,66,,146,149,,7,13,,22,158,33,37,158,,47,50', +'-185,-185,,-185,-185,71,74,5,10,16,19,158,,,34,39,,,146,149,153,156', +'160,163,167,129,133,138,141,145,148,152,155,159,162,166,128,132,137', +'103,104,105,,,72,3,,,101,26,102,32,36,12,42,,28,31,35,40,44,46,52,57', +'61,64,103,104,105,,2,,,21,25,101,,102,,43,158,,53,58,65,66,,146,149', +',7,13,,22,158,33,37,158,,47,50,-185,-185,,-185,-185,71,74,5,10,16,19', +'158,,,34,39,,,146,149,153,156,160,163,167,129,133,138,141,145,148,152', +'155,159,162,166,128,132,137,103,104,105,,,72,3,,,101,26,102,32,36,12', +'42,,28,31,35,40,44,46,52,57,61,64,,,158,,2,,,21,25,-185,-185,,,43,158', +',53,58,65,66,,-185,-185,,7,13,,22,,33,37,,,47,50,8,14,190,,188,71,74', +'5,10,16,19,158,,,34,39,,,146,149,153,156,160,163,167,129,133,138,141', +'145,148,152,155,159,162,166,128,132,137,,,,,,72,3,,,,26,,32,36,12,42', +',28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,', +',,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,158,,,34,39,,,146,149', +'153,156,160,163,167,129,133,138,141,145,148,152,155,159,162,166,128', +'132,137,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64', +',,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,', +'71,74,5,10,16,19,158,,,34,39,,,146,149,153,156,160,163,167,129,133,138', +'141,145,148,152,155,159,162,166,128,132,137,,,,,,72,3,,,,26,,32,36,12', +'42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66', +',,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,158,,,34,39,,,146', +'149,153,156,160,163,167,129,133,138,141,145,148,152,155,159,162,166', +'128,132,137,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61', +'64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,', +',,,71,74,5,10,16,19,158,,,34,39,,,146,149,153,156,160,163,167,129,133', +'138,141,145,148,152,155,159,162,166,128,132,137,,,,,,72,3,,,,26,,32', +'36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58', +'65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,158,,,34,39', +',,146,149,153,156,160,163,167,129,133,138,141,145,148,,,,,,,,,,,,,,72', +'3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,', +',,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19', +'158,,,34,39,,,146,149,153,156,160,163,167,129,133,138,141,145,148,,', +',,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,', +',,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71', +'74,5,10,16,19,158,,,34,39,,,146,149,153,156,160,163,167,129,133,138', +'141,145,148,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46', +'52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,', +',47,50,,,,,,71,74,5,10,16,19,158,,,34,39,,,146,149,153,156,160,163,167', +'129,133,138,141,145,148,,,,,,,,,302,,,,,72,3,,,,26,,32,36,12,42,,28', +'31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7', +'13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,158,,,34,39,,,146,149,153', +'156,160,163,167,129,133,138,158,,,,,,,146,149,153,156,160,163,167,,', +'72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25', +',,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16', +'19,158,,,34,39,,,146,149,153,156,160,163,167,129,133,138,158,,,,,,,146', +'149,153,156,160,163,167,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46', +'52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,', +',47,50,,,,,,71,74,5,10,16,19,158,,,34,39,,,146,149,153,156,160,163,167', +'129,133,138,158,,,,,,,146,149,153,156,160,163,167,,,72,3,,,,26,,32,36', +'12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65', +'66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,', +',,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52', +'57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47', +'50,112,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72', +'3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,', +',,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19', +',,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31', +'35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13', +',22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,', +',,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,', +',2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71', +'74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36', +'12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65', +'66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,', +',,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52', +'57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47', +'50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,', +',,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43', +',,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34', +'39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40', +'44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33', +'37,,,47,50,,121,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,', +',,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,', +'21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,274,,,,,71,74', +'5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,8,14,,26,,32,36', +'12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65', +'66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,', +',,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52', +'57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47', +'50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,', +',,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43', +',,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34', +'39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40', +'44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33', +'37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,', +',,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21', +'25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10', +'16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,', +'28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,', +',7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,', +',,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61', +'64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,', +',,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26', +',32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53', +'58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44', +'46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37', +',,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72', +'3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,', +',,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19', +',,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31', +'35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13', +',22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,', +',,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,', +',2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71', +'74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36', +'12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65', +'66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,', +',,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52', +'57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47', +'50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,', +',,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43', +',,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34', +'39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40', +'44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33', +'37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,', +',,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21', +'25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10', +'16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,', +'28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,', +',7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,', +',,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61', +'64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,', +',,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26', +',32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53', +'58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44', +'46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37', +',,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72', +'3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,', +',,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19', +',,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31', +'35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13', +',22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,', +',,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,', +',2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71', +'74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36', +'12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65', +'66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,', +',,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52', +'57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47', +'50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,', +',,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43', +',,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,112,,,,,71,74,5,10,16,19,', +',,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35', +'40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22', +',33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,', +',,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,', +',21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5', +'10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42', +',28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,', +',,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,', +',,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61', +'64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,', +',,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26', +',32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53', +'58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44', +'46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37', +',,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72', +'3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,', +',,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19', +',,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31', +'35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13', +',22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,', +',,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,', +',2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71', +'74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36', +'12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65', +'66,,,,,7,13,,22,,33,37,,,47,50,112,,,,,71,74,5,10,16,19,,,,34,39,,,', +',,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46', +'52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,', +',47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72', +'3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,', +',,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,55,,,,,71,74,5,10,16', +'19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,8,14,,26,,32,36,12,42,', +'28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,', +',7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,', +',,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61', +'64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,', +',,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26', +',32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53', +'58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44', +'46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37', +',,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72', +'3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,', +',,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19', +',,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31', +'35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13', +',22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,', +',,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52,57,61,64,,,', +',2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71', +'74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36', +'12,42,,28,31,35,40,44,46,52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65', +'66,,,,,7,13,,22,,33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,,', +',,,,,,,,,,,,,,,,,,,,,,72,3,,,,26,,32,36,12,42,,28,31,35,40,44,46,52', +'57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,,,,7,13,,22,,33,37,,,47', +'50,134,,142,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,130,135,,,,150', +',,,164,,,72,3,,,,26,158,32,36,,42,,,146,149,153,156,160,163,167,129', +'133,138,141,145,148,152,155,159,162,166,128,132,137,140,144,147,151', +'154,157,161,165,127,131,136,139,143,134,,142,,,,,,,,321,,,,,,,,,,,,', +',,,,,,,,,130,135,,,,150,,,,164,,,,,,,,,158,,,,,,,146,149,153,156,160', +'163,167,129,133,138,141,145,148,152,155,159,162,166,128,132,137,140', +'144,147,151,154,157,161,165,127,131,136,139,143,28,31,35,40,44,46,52', +'57,61,64,315,,,,2,,,21,25,,,,,43,,,53,58,65,,,,,,,13,,22,,33,37,,,47', +'50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,28,31,35,40,44,46,52,57,61,64', +',,,,2,,,21,25,,,,,43,72,3,53,58,65,26,,32,36,,42,13,,22,,33,37,,,47', +'50,,,,,,71,74,5,10,28,31,35,40,44,46,52,57,61,64,,,,,,,,,,,,,,,,,,58', +'65,,,,,,,72,3,,,,26,,32,36,50,42,,,,,,,,,,,,,,,,,,28,31,35,40,44,46', +'52,57,61,64,,,,,2,,,21,25,,,,,43,,,53,58,65,66,,26,,32,36,13,42,22,', +'33,37,,,47,50,,,,,,71,74,5,10,16,19,,,,34,39,,,,,28,31,35,40,44,46,52', +'57,61,64,,,,,2,,,21,25,,,,,43,72,3,53,58,65,26,,32,36,,42,13,,22,,33', +'37,,,47,50,134,,142,,,71,74,5,10,16,19,,,,34,39,,,,,,,,,,,,,,,,,130', +'135,,,,150,,,,164,,,72,3,,,,26,158,32,36,,42,,,146,149,153,156,160,163', +'167,129,133,138,141,145,148,152,155,159,162,166,128,132,137,140,144', +'147,151,154,157,161,165,127,131,136,139,143,134,,142,,,,,,,,,,,,,,,', +',,,,,,,,,,,,,,130,135,,,,150,,,,164,,,,,,,,,158,,,,,,,146,149,153,156', +'160,163,167,129,133,138,141,145,148,152,155,159,162,166,128,132,137', +'140,144,147,151,154,157,161,165,127,131,136,139,143,134,,142,,,,,,,', +',,,,,,,,,,,,,,,,,,,,,,130,135,,,,150,,,,164,,,,,,,,,158,,,,,,,146,149', +'153,156,160,163,167,129,133,138,141,145,148,152,155,159,162,166,128', +'132,137,140,144,147,151,154,157,161,165,127,131,136,139,143,134,,142', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,135,,,,150,,,,164,,,,,,,,,158,,,,,', +',146,149,153,156,160,163,167,129,133,138,141,145,148,152,155,159,162', +'166,128,132,137,140,144,147,151,154,157,161,165,127,131,136,139,143', +'134,,142,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,135,,,,150,,,,164,,,,,,,,', +'158,,,,,,,146,149,153,156,160,163,167,129,133,138,141,145,148,152,155', +'159,162,166,128,132,137,140,144,147,151,154,157,161,165,127,131,136', +'139,143,134,,142,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,135,,,,150,,,,164', +',,,,,,,,158,,,,,,,146,149,153,156,160,163,167,129,133,138,141,145,148', +'152,155,159,162,166,128,132,137,140,144,147,151,154,157,161,165,127', +'131,136,139,143,134,,142,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,135,,,,150', +',,,164,,,,,,,,,158,,,,,,,146,149,153,156,160,163,167,129,133,138,141', +'145,148,152,155,159,162,166,128,132,137,140,144,147,151,154,157,161', +'165,127,202,136,139,143,134,,142,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,135', +',,,150,,,,164,,,,,,,,,158,,,,,,,146,149,153,156,160,163,167,129,133', +'138,141,145,148,152,155,159,162,166,128,132,137,140,144,147,151,154', +'157,161,165,127,131,136,139,143,134,,142,,,,,,,,,,,,,,,,,,,,,,,,,,,', +',,130,135,,,,150,,,,164,,,,,,,,,158,,,,,,,146,149,153,156,160,163,167', +'129,133,138,141,145,148,152,155,159,162,166,128,132,137,140,144,147', +'151,154,157,161,165,127,131,136,139,143,134,,142,,,,,,,,,,,,,,,,,,,', +',,,,,,,,,,130,135,,,,150,,,,164,,,,,,,,,158,,,,,,,146,149,153,156,160', +'163,167,129,133,138,141,145,148,152,155,159,162,166,128,132,137,140', +'144,147,151,154,157,161,165,127,131,136,139,143,134,,142,,,,,,,,,,,', +',,,,,,,,,,,,,,,,,,130,135,,,,150,,,,164,,,,,,,,,158,,,,,,,146,149,153', +'156,160,163,167,129,133,138,141,145,148,152,155,159,162,166,128,132', +'137,140,144,147,151,154,157,161,165,127,131,136,139,143,134,,142,,,', +',,,,,,,,,,,,,,,,,,,,,,,,,,130,135,,,,150,,,,164,,,,,,,,,158,,,,,,,146', +'149,153,156,160,163,167,129,133,138,141,145,148,152,155,159,162,166', +'128,132,137,140,144,147,151,154,157,161,165,127,131,136,139,143,134', +',142,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,135,,,,150,,,,164,,,,,,,,,158', +',,,,,,146,149,153,156,160,163,167,129,133,138,141,145,148,152,155,159', +'162,166,128,132,137,140,144,147,151,154,157,161,165,127,131,136,139', +'143,134,,142,,,,,,,,,,,,,,,,,,,,,,,272,,,,,,,130,135,,,,150,,,,164,', +',,,,,,,158,,,,,,,146,149,153,156,160,163,167,129,133,138,141,145,148', +'152,155,159,162,166,128,132,137,140,144,147,151,154,157,161,165,127', +'271,136,139,143,134,,142,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,135,,,,150', +',,,164,,,,,,,,,158,,,,,,,146,149,153,156,160,163,167,129,133,138,141', +'145,148,152,155,159,162,166,128,132,137,140,144,147,151,154,157,161', +'165,127,131,136,139,143,134,,142,,,,,,,,,,,,,,,,,,,,,,,320,,,,,,,130', +'135,,,,150,,,,164,,,,,,,,,158,,,,,,,146,149,153,156,160,163,167,129', +'133,138,141,145,148,152,155,159,162,166,128,132,137,140,144,147,151', +'154,157,161,165,127,131,136,139,143,134,,142,,,,,,,,,,,,,,,,,,,,,,,', +',,,,,,130,135,,,,150,,,,164,,,,,,,,,158,,,,,,,146,149,153,156,160,163', +'167,129,133,138,141,145,148,152,155,159,162,166,128,132,137,140,144', +'147,151,154,157,161,165,127,131,136,139,143,134,,142,,,,,,,,,,,,,,,', +',,,,,,,,,,,,,,130,135,,,,150,,,,164,,,,,,,184,,158,,,,,,,146,149,153', +'156,160,163,167,129,133,138,141,145,148,152,155,159,162,166,128,132', +'137,140,144,147,151,154,157,161,165,127,131,136,139,143,134,,142,,,', +',,,,,,,,,,,,,,,,,,,322,,,,,,,130,135,,,,150,,,,164,,,,,,,,,158,,,,,', +',146,149,153,156,160,163,167,129,133,138,141,145,148,152,155,159,162', +'166,128,132,137,140,144,147,151,154,157,161,165,127,131,136,139,143', +'134,,142,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,135,,,,150,,,,164,,,,,,,55', +',158,,,,,,,146,149,153,156,160,163,167,129,133,138,141,145,148,152,155', +'159,162,166,128,132,137,140,144,147,151,154,157,161,165,127,131,136', +'139,143,134,,142,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,135,,,,150,,,,164', +',,,,,,,,158,,,,,,,146,149,153,156,160,163,167,129,133,138,141,145,148', +'152,155,159,162,166,128,132,137,140,144,147,151,154,157,161,165,127', +'131,136,139,143,134,,142,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,135,,,,150', +',,,164,,,,,,,55,,158,,,,,,,146,149,153,156,160,163,167,129,133,138,141', +'145,148,152,155,159,162,166,128,132,137,140,144,147,151,154,157,161', +'165,127,131,136,139,143,130,135,,,,,,,,164,,,,,,,,,158,,,,,,,146,149', +'153,156,160,163,167,129,133,138,141,145,148,152,155,159,162,166,128', +'132,137,140,144,147,151,154,157,161,165,127,131,136,139,143,130,135', +',,,,,,,164,,,,,,,,,158,,,,,,,146,149,153,156,160,163,167,129,133,138', +'141,145,148,152,155,159,162,166,128,132,137,140,144,147,151,154,157', +'161,165,127,131,136,139,143,130,135,,,,,,,,164,,,,,,,,,158,,,,,,,146', +'149,153,156,160,163,167,129,133,138,141,145,148,152,155,159,162,166', +'128,132,137,140,144,147,151,154,157,161,165,127,131,130,135,,,,,,,,164', +',,,,,,,,158,,,,,,,146,149,153,156,160,163,167,129,133,138,141,145,148', +'152,155,159,162,166,128,132,137,140,144,147,151,154,157,161,165,127', +'131,130,135,,,,,,,,164,,,,,,,,,158,,,,,,,146,149,153,156,160,163,167', +'129,133,138,141,145,148,152,155,159,162,166,128,132,137,140,144,147', +'151,154,157,161,165,127,131,130,135,,,,,,,,164,,,,,,,,,158,,,,,,,146', +'149,153,156,160,163,167,129,133,138,141,145,148,152,155,159,162,166', +'128,132,137,140,144,147,151,154,157,161,165,127,131,135,,,,,,,,164,', +',,,,,,,158,,,,,,,146,149,153,156,160,163,167,129,133,138,141,145,148', +'152,155,159,162,166,128,132,137,140,144,147,151,154,157,161,165,127', +'131,135,,,,,,,,164,,,,,,,,,158,,,,,,,146,149,153,156,160,163,167,129', +'133,138,141,145,148,152,155,159,162,166,128,132,137,140,144,147,151', +'154,157,161,165,127,131,135,,,,,,,,164,,,,,,,,,158,,,,,,,146,149,153', +'156,160,163,167,129,133,138,141,145,148,152,155,159,162,166,128,132', +'137,140,144,147,151,154,157,161,165,127,131,135,,,,,,,,164,,,,,,,,,158', +',,,,,,146,149,153,156,160,163,167,129,133,138,141,145,148,152,155,159', +'162,166,128,132,137,140,144,147,151,154,157,161,165,127,131,135,,,,', +',,,164,,,,,,,,,158,,,,,,,146,149,153,156,160,163,167,129,133,138,141', +'145,148,152,155,159,162,166,128,132,137,140,144,147,151,154,157,161', +'165,127,131,164,,,,,,,,,158,,,,,,,146,149,153,156,160,163,167,129,133', +'138,141,145,148,152,155,159,162,166,128,132,137,140,144,147,151,154', +'157,161,165,127,164,,,,,,,,,158,,,,,,,146,149,153,156,160,163,167,129', +'133,138,141,145,148,152,155,159,162,166,128,132,137,140,144,147,151', +'154,157,161,165,127,164,,,,,,,,,158,,,,,,,146,149,153,156,160,163,167', +'129,133,138,141,145,148,152,155,159,162,166,128,132,137,140,144,147', +'151,154,157,161,165,127,158,,,,,,,146,149,153,156,160,163,167,129,133', +'138,141,145,148,152,155,159,162,166,128,132,137,140,144,147,151,154', +'157,161,165,127,158,,,,,,,146,149,153,156,160,163,167,129,133,138,141', +'145,148,152,155,159,162,166,128,132,137,140,144,147,151,154,157,161', +'165,127,158,,,,,,,146,149,153,156,160,163,167,129,133,138,141,145,148', +'152,155,159,162,166,128,132,137,140,144,147,151,154,157,161,165,127', +'158,,,,,,,146,149,153,156,160,163,167,129,133,138,141,145,148,152,155', +'159,162,166,128,132,137,140,144,147,151,154,157,161,165,127,158,,,,', +',,146,149,153,156,160,163,167,129,133,138,141,145,148,152,155,159,162', +'166,128,132,137,140,144,147,151,154,157,161,165,127' ] + racc_action_table = arr = Array.new(10938, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| @@ -386,384 +384,379 @@ clist = [ end clist = [ -'120,84,120,163,163,163,163,163,163,163,163,163,163,73,73,73,207,163', -'78,206,163,163,73,272,73,36,163,119,293,163,163,163,120,120,119,119', -'293,120,163,205,163,120,163,163,73,163,204,163,163,294,84,120,261,261', -'163,163,163,163,120,120,120,120,120,120,120,120,120,120,120,120,120', -'120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120', -'120,120,120,120,73,163,163,68,78,294,163,198,163,163,103,163,120,103', -'103,103,103,103,103,103,103,103,103,211,192,115,280,103,219,219,103', -'103,214,214,198,186,103,263,281,103,103,103,103,186,191,60,214,103,103', -'124,103,192,103,103,117,103,37,103,103,103,177,117,117,224,103,103,103', -'103,103,103,115,115,115,103,103,263,185,115,186,198,198,198,260,263', -'185,30,263,311,311,191,191,191,99,30,124,124,192,192,192,174,99,118', -'118,103,103,75,174,174,103,77,103,103,4,103,81,4,4,4,4,4,4,4,4,4,4,296', -'186,186,30,4,30,188,4,4,5,99,97,99,4,188,266,4,4,4,4,289,289,98,266', -'4,4,106,4,107,4,4,243,4,108,4,4,70,70,243,243,94,4,4,4,4,4,4,94,94,188', -'4,4,226,96,96,96,258,96,266,226,226,226,226,226,226,226,226,226,226', -'226,226,226,226,226,226,226,226,226,226,226,4,4,178,178,1,4,43,4,4,300', -'4,312,300,300,300,300,300,300,300,300,300,300,91,91,91,137,300,71,71', -'300,300,91,122,91,132,300,90,125,300,300,300,300,176,90,90,,300,300', -',300,,300,300,246,300,,300,300,126,126,246,246,,300,300,300,300,300', -'300,236,,,300,300,,,236,236,236,236,236,236,236,236,236,236,236,236', -'236,236,236,236,236,236,236,236,236,300,86,,,,300,300,,86,86,300,,300', -'300,6,300,,6,6,6,6,6,6,6,6,6,6,34,34,34,,6,,,6,6,34,,34,,6,250,,6,6', -'6,6,,250,250,,6,6,,6,,6,6,79,6,,6,6,,,79,79,,6,6,6,6,6,6,229,,,6,6,', -',229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229', -'229,229,229,229,92,92,92,,,6,6,,,92,6,92,6,6,9,6,,9,9,9,9,9,9,9,9,9', -'9,255,255,255,,9,,,9,9,255,,255,,9,89,,9,9,9,9,,89,89,,9,9,,9,,9,9,', -'9,,9,9,,,,,,9,9,9,9,9,9,217,,,9,9,,,217,217,217,217,217,217,217,217', -'217,217,217,217,217,217,217,217,217,217,217,217,217,256,256,256,,,9', -'9,,,256,9,256,9,9,11,9,,11,11,11,11,11,11,11,11,11,11,,,,,11,,,11,11', -',,,,11,,,11,11,11,11,,,,,11,11,,11,,11,11,,11,,11,11,,,,,,11,11,11,11', -'11,11,241,,,11,11,,,241,241,241,241,241,241,241,241,241,241,241,241', -'241,241,241,241,241,241,241,241,241,,,,,,11,11,,,,11,,11,11,12,11,,12', +'117,103,117,21,21,21,21,21,21,21,21,21,21,70,70,70,82,37,30,30,30,271', +'70,191,70,214,214,30,239,30,21,21,117,117,104,239,239,117,214,292,259', +'117,67,67,70,249,292,21,257,191,117,105,249,249,249,249,249,117,117', +'117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117', +'117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,70,296,82', +'191,191,191,21,203,21,21,144,21,117,144,144,144,144,144,144,144,144', +'144,144,97,113,184,78,144,218,218,144,144,184,203,279,190,144,261,122', +'144,144,144,144,190,186,118,118,144,144,296,144,26,144,144,95,280,144', +'144,94,26,288,288,95,144,144,144,144,144,144,113,113,113,144,144,78', +'261,113,190,203,203,203,219,261,122,122,261,62,62,43,186,186,186,189', +'26,54,26,95,269,95,211,189,207,144,144,293,269,206,144,205,144,144,299', +'144,2,299,299,299,299,299,299,299,299,299,299,202,190,190,66,299,260', +'260,299,299,180,189,310,310,299,89,269,299,299,299,299,120,89,89,179', +'299,299,69,299,253,299,299,181,181,299,299,253,253,253,253,253,299,299', +'299,299,299,299,216,125,125,299,299,309,75,216,216,216,216,216,216,216', +'216,216,216,216,216,216,216,216,216,216,216,216,216,216,299,83,1,81', +'124,299,299,131,83,83,299,130,299,299,5,299,32,5,5,5,5,5,5,5,5,5,5,254', +'254,254,,5,,,5,5,254,,254,,5,242,,5,5,5,5,,242,242,,5,5,,5,173,5,5,88', +',5,5,173,173,,88,88,5,5,5,5,5,5,228,,,5,5,,,228,228,228,228,228,228', +'228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,255,255', +'255,,,5,5,,,255,5,255,5,5,7,5,,7,7,7,7,7,7,7,7,7,7,91,91,91,,7,,,7,7', +'91,,91,,7,246,,7,7,7,7,,246,246,,7,7,,7,85,7,7,116,,7,7,85,85,,116,116', +'7,7,7,7,7,7,237,,,7,7,,,237,237,237,237,237,237,237,237,237,237,237', +'237,237,237,237,237,237,237,237,237,237,90,90,90,,,7,7,,,90,7,90,7,7', +'10,7,,10,10,10,10,10,10,10,10,10,10,,,174,,10,,,10,10,174,174,,,10,111', +',10,10,10,10,,111,111,,10,10,,10,,10,10,,,10,10,99,99,99,,99,10,10,10', +'10,10,10,252,,,10,10,,,252,252,252,252,252,252,252,252,252,252,252,252', +'252,252,252,252,252,252,252,252,252,,,,,,10,10,,,,10,,10,10,12,10,,12', '12,12,12,12,12,12,12,12,12,,,,,12,,,12,12,,,,,12,,,12,12,12,12,,,,,12', -'12,,12,,12,12,,12,,12,12,,,,,,12,12,12,12,12,12,221,,,12,12,,,221,221', -'221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221', -'221,221,,,,,,12,12,,,,12,,12,12,15,12,,15,15,15,15,15,15,15,15,15,15', -',,,,15,,,15,15,,,,,15,,,15,15,15,15,,,,,15,15,,15,,15,15,,15,,15,15', -',,,,,15,15,15,15,15,15,233,,,15,15,,,233,233,233,233,233,233,233,233', -'233,233,233,233,233,233,233,233,233,233,233,233,233,,,,,,15,15,,,,15', -',15,15,19,15,,19,19,19,19,19,19,19,19,19,19,,,,,19,,,19,19,,,,,19,,', -'19,19,19,19,,,,,19,19,,19,,19,19,,19,,19,19,,,,,,19,19,19,19,19,19,239', -',,19,19,,,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239', -'239,239,239,239,239,239,,,,,,19,19,,,,19,,19,19,288,19,,288,288,288', -'288,288,288,288,288,288,288,,,,,288,,,288,288,,,,,288,,,288,288,288', -'288,,,,,288,288,,288,,288,288,,288,,288,288,,,,,,288,288,288,288,288', -'288,242,,,288,288,,,242,242,242,242,242,242,242,242,242,242,242,242', -'242,218,,,,,,,218,218,218,218,218,,288,288,,,,288,,288,288,22,288,,22', -'22,22,22,22,22,22,22,22,22,,,,,22,,,22,22,,,,,22,,,22,22,22,22,,,,,22', -'22,,22,,22,22,,22,,22,22,,,,,,22,22,22,22,22,22,249,,,22,22,,,249,249', -'249,249,249,249,249,249,249,249,249,249,249,254,,,,,,,254,254,254,254', -'254,,22,22,,,,22,,22,22,24,22,,24,24,24,24,24,24,24,24,24,24,,,,,24', -',,24,24,,,,,24,,,24,24,24,24,,,,,24,24,,24,,24,24,,24,,24,24,,,,,,24', -'24,24,24,24,24,245,,,24,24,,,245,245,245,245,245,245,245,245,245,245', -'245,245,245,,,,,,,,,,,,,,24,24,,,,24,,24,24,287,24,,287,287,287,287', -'287,287,287,287,287,287,,,,,287,,,287,287,,,,,287,,,287,287,287,287', -',,,,287,287,,287,,287,287,,287,,287,287,,,,,,287,287,287,287,287,287', -'253,,,287,287,,,253,253,253,253,253,253,253,253,253,253,253,253,253', -',,,,,,,,,,,,,287,287,,,,287,,287,287,279,287,,279,279,279,279,279,279', -'279,279,279,279,,,,,279,,,279,279,,,,,279,,,279,279,279,279,,,,,279', -'279,,279,,279,279,,279,,279,279,,,,,,279,279,279,279,279,279,237,,,279', -'279,,,237,237,237,237,237,237,237,237,237,237,,,,,,,,,,,,279,,,,,279', -'279,,,,279,,279,279,33,279,,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,33,240,,,33,33,,,240,240,240,240,240,240,240,240,240,240,227,', -',,,,,227,227,227,227,227,227,227,,,33,33,,,,33,,33,33,276,33,,276,276', -'276,276,276,276,276,276,276,276,,,,,276,,,276,276,,,,,276,,,276,276', -'276,276,,,,,276,276,,276,,276,276,,276,,276,276,,,,,,276,276,276,276', -'276,276,234,,,276,276,,,234,234,234,234,234,234,234,234,234,234,222', -',,,,,,222,222,222,222,222,222,222,,,276,276,,,,276,,276,276,275,276', -',275,275,275,275,275,275,275,275,275,275,,,,,275,,,275,275,,,,,275,', -',275,275,275,275,,,,,275,275,,275,,275,275,,275,,275,275,,,,,,275,275', -'275,275,275,275,230,,,275,275,,,230,230,230,230,230,230,230,,,,,,,,', -',,,,,,,,,,,275,275,,,,275,,275,275,262,275,,262,262,262,262,262,262', -'262,262,262,262,,,,,262,,,262,262,,,,,262,,,262,262,262,262,,,,,262', -'262,,262,,262,262,,262,,262,262,,,,,,262,262,262,262,262,262,,,,262', -'262,,,,,,,,,,,,,,,,,,,,,,,,,,,,,262,262,,,,262,,262,262,39,262,,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,39,39,,,,39,39,,,,,,,,,,,,', -',,,,,,,,,,,,,,,,39,39,,,,39,,39,39,40,39,,40,40,40,40,40,40,40,40,40', -'40,,,,,40,,,40,40,,,,,40,,,40,40,40,40,,,,,40,40,,40,,40,40,,40,,40', -'40,,,,,,40,40,40,40,40,40,,,,40,40,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40,40', -',,,40,,40,40,129,40,,129,129,129,129,129,129,129,129,129,129,,,,,129', -',,129,129,,,,,129,,,129,129,129,129,,,,,129,129,,129,,129,129,,129,', -'129,129,,,,,,129,129,129,129,129,129,,,,129,129,,,,,,,,,,,,,,,,,,,,', -',,,,,,,,129,129,,,,129,,129,129,47,129,,47,47,47,47,47,47,47,47,47,47', -',,,,47,,,47,47,,,,,47,,,47,47,47,47,,,,,47,47,,47,,47,47,,47,,47,47', -',,,,,47,47,47,47,47,47,,,,47,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,47,47,,', -',47,,47,47,48,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,48,,,,,,,,,,,,,,,,,,,,,,,,,,,,,48,48,,,,48,,48,48,55,48,,55,55', -'55,55,55,55,55,55,55,55,,,,,55,,,55,55,,,,,55,,,55,55,55,55,,,,,55,55', -',55,,55,55,,55,,55,55,,,,,,55,55,55,55,55,55,,,,55,55,,,,,,,,,,,,,,', -',,,,,,,,,,,,,,55,55,,,,55,,55,55,212,55,,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', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,212,212,,,,212,,212,212,61,212,,61,61,61', -'61,61,61,61,61,61,61,,,,,61,,,61,61,,,,,61,,,61,61,61,61,,,,,61,61,', -'61,,61,61,,61,,61,61,,61,,,,61,61,61,61,61,61,,,,61,61,,,,,,,,,,,,,', -',,,,,,,,,,,,,,,61,61,,,,61,,61,61,203,61,,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,203', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,203,203,,,,203,,203,203,200,203,,200,200', -'200,200,200,200,200,200,200,200,,,,,200,,,200,200,,,,,200,,,200,200', -'200,200,,,,,200,200,,200,,200,200,,200,,200,200,200,,,,,200,200,200', -'200,200,200,,,,200,200,,,,,,,,,,,,,,,,,,,,,,,,,,,,,200,200,200,200,', -'200,,200,200,190,200,,190,190,190,190,190,190,190,190,190,190,,,,,190', -',,190,190,,,,,190,,,190,190,190,190,,,,,190,190,,190,,190,190,,190,', -'190,190,,,,,,190,190,190,190,190,190,,,,190,190,,,,,,,,,,,,,,,,,,,,', -',,,,,,,,190,190,,,,190,,190,190,189,190,,189,189,189,189,189,189,189', -'189,189,189,,,,,189,,,189,189,,,,,189,,,189,189,189,189,,,,,189,189', -',189,,189,189,,189,,189,189,,,,,,189,189,189,189,189,189,,,,189,189', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,189,189,,,,189,,189,189,172,189,,172,172', -'172,172,172,172,172,172,172,172,,,,,172,,,172,172,,,,,172,,,172,172', -'172,172,,,,,172,172,,172,,172,172,,172,,172,172,,,,,,172,172,172,172', -'172,172,,,,172,172,,,,,,,,,,,,,,,,,,,,,,,,,,,,,172,172,,,,172,,172,172', -'74,172,,74,74,74,74,74,74,74,74,74,74,,,,,74,,,74,74,,,,,74,,,74,74', -'74,74,,,,,74,74,,74,,74,74,,74,,74,74,,,,,,74,74,74,74,74,74,,,,74,74', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,74,74,,,,74,,74,74,169,74,,169,169,169,169', -'169,169,169,169,169,169,,,,,169,,,169,169,,,,,169,,,169,169,169,169', -',,,,169,169,,169,,169,169,,169,,169,169,,,,,,169,169,169,169,169,169', -',,,169,169,,,,,,,,,,,,,,,,,,,,,,,,,,,,,169,169,,,,169,,169,169,168,169', -',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,168,,,,,,,,,,,,,,,,,,,,,,,,,,,,,168,168,,,,168', -',168,168,167,168,,167,167,167,167,167,167,167,167,167,167,,,,,167,,', -'167,167,,,,,167,,,167,167,167,167,,,,,167,167,,167,,167,167,,167,,167', -'167,,,,,,167,167,167,167,167,167,,,,167,167,,,,,,,,,,,,,,,,,,,,,,,,', -',,,,167,167,,,,167,,167,167,166,167,,166,166,166,166,166,166,166,166', -'166,166,,,,,166,,,166,166,,,,,166,,,166,166,166,166,,,,,166,166,,166', -',166,166,,166,,166,166,,,,,,166,166,166,166,166,166,,,,166,166,,,,,', -',,,,,,,,,,,,,,,,,,,,,,,166,166,,,,166,,166,166,165,166,,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,,,,165,165,,,,,,,,,,,,,,,,,,,,,,,,,,,,,165,165,,,,165,,165,165,164', -'165,,164,164,164,164,164,164,164,164,164,164,,,,,164,,,164,164,,,,,164', -',,164,164,164,164,,,,,164,164,,164,,164,164,,164,,164,164,,,,,,164,164', -'164,164,164,164,,,,164,164,,,,,,,,,,,,,,,,,,,,,,,,,,,,,164,164,,,,164', -',164,164,162,164,,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,,,,,,,,,,,,,,,,,,,,,,,,', -',,,,162,162,,,,162,,162,162,161,162,,161,161,161,161,161,161,161,161', -'161,161,,,,,161,,,161,161,,,,,161,,,161,161,161,161,,,,,161,161,,161', -',161,161,,161,,161,161,,,,,,161,161,161,161,161,161,,,,161,161,,,,,', -',,,,,,,,,,,,,,,,,,,,,,,161,161,,,,161,,161,161,160,161,,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,160,,,,,,,,,,,,,,,,,,,,,,,,,,,,,160,160,,,,160,,160,160,159', -'160,,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,159,,,,,,,,,,,,,,,,,,,,,,,,,,,,,159,159,,,,159', -',159,159,158,159,,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,158,,,,158,158,,,,,,,,,,,,,,,,,,,,,,,,', -',,,,158,158,,,,158,,158,158,157,158,,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,157,,,,,', -',,,,,,,,,,,,,,,,,,,,,,,157,157,,,,157,,157,157,156,157,,156,156,156', -'156,156,156,156,156,156,156,,,,,156,,,156,156,,,,,156,,,156,156,156', -'156,,,,,156,156,,156,,156,156,,156,,156,156,,,,,,156,156,156,156,156', -'156,,,,156,156,,,,,,,,,,,,,,,,,,,,,,,,,,,,,156,156,,,,156,,156,156,154', -'156,,154,154,154,154,154,154,154,154,154,154,,,,,154,,,154,154,,,,,154', -',,154,154,154,154,,,,,154,154,,154,,154,154,,154,,154,154,,,,,,154,154', -'154,154,154,154,,,,154,154,,,,,,,,,,,,,,,,,,,,,,,,,,,,,154,154,,,,154', -',154,154,153,154,,153,153,153,153,153,153,153,153,153,153,,,,,153,,', -'153,153,,,,,153,,,153,153,153,153,,,,,153,153,,153,,153,153,,153,,153', -'153,,,,,,153,153,153,153,153,153,,,,153,153,,,,,,,,,,,,,,,,,,,,,,,,', -',,,,153,153,,,,153,,153,153,152,153,,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,152,,,,152,152,,,,,', -',,,,,,,,,,,,,,,,,,,,,,,152,152,,,,152,,152,152,150,152,,150,150,150', -'150,150,150,150,150,150,150,,,,,150,,,150,150,,,,,150,,,150,150,150', -'150,,,,,150,150,,150,,150,150,,150,,150,150,,,,,,150,150,150,150,150', -'150,,,,150,150,,,,,,,,,,,,,,,,,,,,,,,,,,,,,150,150,,,,150,,150,150,149', -'150,,149,149,149,149,149,149,149,149,149,149,,,,,149,,,149,149,,,,,149', -',,149,149,149,149,,,,,149,149,,149,,149,149,,149,,149,149,,,,,,149,149', -'149,149,149,149,,,,149,149,,,,,,,,,,,,,,,,,,,,,,,,,,,,,149,149,,,,149', -',149,149,148,149,,148,148,148,148,148,148,148,148,148,148,,,,,148,,', -'148,148,,,,,148,,,148,148,148,148,,,,,148,148,,148,,148,148,,148,,148', -'148,,,,,,148,148,148,148,148,148,,,,148,148,,,,,,,,,,,,,,,,,,,,,,,,', -',,,,148,148,,,,148,,148,148,147,148,,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,147,,,,147,147,,,,,', -',,,,,,,,,,,,,,,,,,,,,,,147,147,,,,147,,147,147,146,147,,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,146,,,,,,,,,,,,,,,,,,,,,,,,,,,,,146,146,,,,146,,146,146,145', -'146,,145,145,145,145,145,145,145,145,145,145,,,,,145,,,145,145,,,,,145', -',,145,145,145,145,,,,,145,145,,145,,145,145,,145,,145,145,,,,,,145,145', -'145,145,145,145,,,,145,145,,,,,,,,,,,,,,,,,,,,,,,,,,,,,145,145,,,,145', -',145,145,310,145,,310,310,310,310,310,310,310,310,310,310,,,,,310,,', -'310,310,,,,,310,,,310,310,310,310,,,,,310,310,,310,,310,310,,310,,310', -'310,,,,,,310,310,310,310,310,310,,,,310,310,,,,,,,,,,,,,,,,,,,,,,,,', -',,,,310,310,,,,310,,310,310,105,310,,105,105,105,105,105,105,105,105', -'105,105,,,,,105,,,105,105,,,,,105,,,105,105,105,105,,,,,105,105,,105', -',105,105,,105,,105,105,,,,,,105,105,105,105,105,105,,,,105,105,,,,,', -',,,,,,,,,,,,,,,,,,,,,,,105,105,,,,105,,105,105,144,105,,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', -'144,,,,144,144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,144,144,,,,144,,144,144,143', -'144,,143,143,143,143,143,143,143,143,143,143,,,,,143,,,143,143,,,,,143', -',,143,143,143,143,,,,,143,143,,143,,143,143,,143,,143,143,,,,,,143,143', -'143,143,143,143,,,,143,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,143,143,,,,143', -',143,143,142,143,,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,142,,,,,,,,,,,,,,,,,,,,,,,,', -',,,,142,142,,,,142,,142,142,113,142,,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,,,,113,113,,', -',,,,,,,,,,,,,,,,,,,,,,,,,,113,113,,,,113,,113,113,114,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,114,,,,,,,,,,,,,,,,,,,,,,,,,,,,,114,114,,,,114,,114,114,141', -'114,,141,141,141,141,141,141,141,141,141,141,,,,,141,,,141,141,,,,,141', -',,141,141,141,141,,,,,141,141,,141,,141,141,,141,,141,141,,,,,,141,141', -'141,141,141,141,,,,141,141,,,,,,,,,,,,,,,,,,,,,,,,,,,,,141,141,,,,141', -',141,141,140,141,,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,140,,,,,,,,,,,,,,,,,,,,,,,,', -',,,,140,140,,,,140,,140,140,139,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,139,,,,,', -',,,,,,,,,,,,,,,,,,,,,,,139,139,,,,139,,139,139,138,139,,138,138,138', -'138,138,138,138,138,138,138,,,,,138,,,138,138,,,,,138,,,138,138,138', -'138,,,,,138,138,,138,,138,138,,138,,138,138,,,,,,138,138,138,138,138', -'138,,,,138,138,,,,,,,,,,,,,,,,,,,,,,,,,,,,,138,138,,,,138,,138,138,136', -'138,,136,136,136,136,136,136,136,136,136,136,,,,,136,,,136,136,,,,,136', -',,136,136,136,136,,,,,136,136,,136,,136,136,,136,,136,136,,,,,,136,136', -'136,136,136,136,,,,136,136,,,,,,,,,,,,,,,,,,,,,,,,,,,,,136,136,,,,136', -',136,136,0,136,,0,0,0,0,0,0,0,0,0,0,,,,,0,,,0,0,,,,,0,,,0,0,0,0,,,,', -'0,0,,0,,0,0,,0,,0,0,0,,,,,0,0,0,0,0,0,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,', -',,,,,0,0,0,0,,0,,0,0,135,0,,135,135,135,135,135,135,135,135,135,135', -',,,,135,,,135,135,,,,,135,,,135,135,135,135,,,,,135,135,,135,,135,135', -',135,,135,135,,,,,,135,135,135,135,135,135,,,,135,135,,,,,,,,,,,,,,', -',,,,,,,,,,,,,,135,135,,,,135,,135,135,134,135,,134,134,134,134,134,134', -'134,134,134,134,,,,,134,,,134,134,,,,,134,,,134,134,134,134,,,,,134', -'134,,134,,134,134,,134,,134,134,,,,,,134,134,134,134,134,134,,,,134', -'134,,,,,,,,,,,,,,,,,,,,,,,,,,,,,134,134,,,,134,,134,134,133,134,,133', -'133,133,133,133,133,133,133,133,133,,,,,133,,,133,133,,,,,133,,,133', -'133,133,133,,,,,133,133,,133,,133,133,,133,,133,133,,,,,,133,133,133', -'133,133,133,,,,133,133,,,,,,,,,,,,,,,,,,,,,,,,,,,,,133,133,,,,133,,133', -'133,131,133,,131,131,131,131,131,131,131,131,131,131,,,,,131,,,131,131', -',,,,131,,,131,131,131,131,,,,,131,131,,131,,131,131,,131,,131,131,,', -',,,131,131,131,131,131,131,,,,131,131,,,,,,,,,,,,,,,,,,,,,,,,,,,,,131', -'131,,,,131,,131,131,130,131,,130,130,130,130,130,130,130,130,130,130', -',,,,130,,,130,130,,,,,130,,,130,130,130,130,,,,,130,130,,130,,130,130', -',130,,130,130,,,,,,130,130,130,130,130,130,,,,130,130,,,,,,,,,,,,,,', -',,,,,,,,,,,,,,130,130,,,,130,,130,130,127,130,,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,213,127,,213', -'213,213,213,213,213,213,213,213,213,,,,,213,,,213,213,,,,,213,,,213', -'213,213,213,,,,,213,213,,213,,213,213,,213,,213,213,,,315,,315,213,213', -'213,213,213,213,,,,213,213,,,,,,,,,,,,,,,,,,,315,315,,,,315,,,,315,213', -'213,,,,213,,213,213,315,213,,,,,,315,315,315,315,315,315,315,315,315', -'315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315', -'315,315,315,315,315,315,315,315,304,,304,,,,,,,,315,,,,,,,,,,,,,,,,', -',,,,,304,304,,,,304,,,,304,,,,,,,,,,304,,,,,,,304,304,304,304,304,304', -'304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304', -'304,304,304,304,304,304,304,304,304,304,304,303,303,303,303,303,303', -'303,303,303,303,304,,,,303,,,303,303,,,,,303,,,303,303,303,,,,,,,303', -',303,,303,303,,303,,303,303,,,,,,303,303,303,303,303,303,,,,303,303', -',,,,313,313,313,313,313,313,313,313,313,313,,,,,313,,,313,313,,,,,313', -'303,303,313,313,313,303,,303,303,,303,313,,313,,313,313,,313,,313,313', -',,,,,313,313,313,313,313,313,,,,313,313,,,,171,171,171,171,171,171,171', -'171,171,171,,,,,,,,,,,,,,,,313,313,171,171,,313,,313,313,,313,,,,,,', -'171,,,171,,,,,,,,,,,,,,,,,,,26,26,26,26,26,26,26,26,26,26,,,,,26,,,26', -'26,,,,,26,,,26,26,26,26,,171,,171,171,26,171,26,,26,26,,26,,26,26,,', -',,,26,26,26,26,26,26,,,,26,26,,,,21,21,21,21,21,21,21,21,21,21,,,,,', -',,,,,,,,,,26,26,21,21,,26,,26,26,,26,,,,,,,21,,,21,,,215,,215,,,,,,', -',,,,,,,,,,,,,,,,,,,,,,,215,215,,,,215,,,,215,,,,,,21,,21,21,215,21,', -',,,,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215', -'215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215', -'215,116,,116,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,116,116,,,,116,,,,116,,,,', -',,,,,116,,,,,,,116,116,116,116,116,116,116,116,116,116,116,116,116,116', -'116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116', -'116,116,116,314,,314,,,,,,,,,,,,,,,,,,,,,,,314,,,,,,,314,314,,,,314', -',,,314,,,,,,,,,,314,,,,,,,314,314,314,314,314,314,314,314,314,314,314', -'314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314', -'314,314,314,314,314,314,223,,223,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,223,223', -',,,223,,,,223,,,,,,,,,,223,,,,,,,223,223,223,223,223,223,223,223,223', -'223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223', -'223,223,223,223,223,223,223,223,238,,238,,,,,,,,,,,,,,,,,,,,,,,,,,,', -',,238,238,,,,238,,,,238,,,,,,,,,,238,,,,,,,238,238,238,238,238,238,238', -'238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238', -'238,238,238,238,238,238,238,238,238,238,320,,320,,,,,,,,,,,,,,,,,,,', -',,,320,,,,,,,320,320,,,,320,,,,320,,,,,,,,,,320,,,,,,,320,320,320,320', -'320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320', -'320,320,320,320,320,320,320,320,320,320,320,320,320,231,,231,,,,,,,', -',,,,,,,,,,,,,,,,,,,,,,231,231,,,,231,,,,231,,,,,,,,,,231,,,,,,,231,231', -'231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231', -'231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,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,72,72,302,,302,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,302', -'302,,,,302,,,,302,,,,,,,,,,302,,,,,,,302,302,302,302,302,302,302,302', -'302,302,302,302,302,302,302,302,302,302,302,302,302,302,302,302,302', -'302,302,302,302,302,302,302,302,302,301,,301,,,,,,,,,,,,,,,,,,,,,,,', -',,,,,,301,301,,,,301,,,,301,,,,,,,,,,301,,,,,,,301,301,301,301,301,301', -'301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301', -'301,301,301,301,301,301,301,301,301,301,301,268,,268,,,,,,,,,,,,,,,', -',,,,,,,,,,,,,,268,268,,,,268,,,,268,,,,,,,,,,268,,,,,,,268,268,268,268', -'268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268', -'268,268,268,268,268,268,268,268,268,268,268,268,268,317,,317,,,,,,,', -',,,,,,,,,,,,,,,,,,,,,,317,317,,,,317,,,,317,,,,,,,,,,317,,,,,,,317,317', -'317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317', -'317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,269,,269', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,,269,269,,,,269,,,,269,,,,,,,,,,269,,,,', -',,269,269,269,269,269,269,269,269,269,269,269,269,269,269,269,269,269', -'269,269,269,269,269,269,269,269,269,269,269,269,269,269,269,269,269', -'277,,277,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,277,277,,,,277,,,,277,,,,,,,,', -',277,,,,,,,277,277,277,277,277,277,277,277,277,277,277,277,277,277,277', -'277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,277', -'277,277,278,,278,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,278,278,,,,278,,,,278', -',,,,,,,,,278,,,,,,,278,278,278,278,278,278,278,278,278,278,278,278,278', -'278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278', -'278,278,278,278,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,199,199', -'199,199,199,199,199,199,295,,295,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,295,295', -',,,295,,,,295,,,,,,,,,,295,,,,,,,295,295,295,295,295,295,295,295,295', -'295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295', -'295,295,295,295,295,295,295,295,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,194,194,194,194,194,194,194,194,194,88,,88,,,,,,,,,,,,,,,,,', -',,,,,,,,,,,,88,88,,,,88,,,,88,,,,,,,,88,,88,,,,,,,88,88,88,88,88,88', -'88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88', -'88,88,88,88,88,87,,87,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,87,87,,,,87,,,,87', -',,,,,,,87,,87,,,,,,,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87', -'87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,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,193,193,193,193,193,193,193,193,193,193,85,', -'85,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,85,85,,,,85,,,,85,,,,,,,,85,,85,,,,', -',,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85', -'85,85,85,85,85,85,85,85,85,85,85,85,257,257,,,,,,,,257,,,,,,,,,,257', -',,,,,,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257', -'257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257', -'257,95,95,,,,,,,,95,,,,,,,,,,95,,,,,,,95,95,95,95,95,95,95,95,95,95', -'95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95', -'95,235,235,,,,,,,,235,,,,,,,,,,235,,,,,,,235,235,235,235,235,235,235', -'235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235', -'235,235,235,235,235,235,235,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,232,232,,,,,,,,232', -',,,,,,,,,232,,,,,,,232,232,232,232,232,232,232,232,232,232,232,232,232', +'12,,12,,12,12,,,12,12,,,,,,12,12,12,12,12,12,232,,,12,12,,,232,232,232', '232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232', -'232,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,228,228,225,,,,,,,,225,,,,,,,,,,225,,,,,,,225,225', -'225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225', -'225,225,225,225,225,225,225,225,225,225,225,225,308,,,,,,,,308,,,,,', -',,,,308,,,,,,,308,308,308,308,308,308,308,308,308,308,308,308,308,308', -'308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308', -'285,,,,,,,,285,,,,,,,,,,285,,,,,,,285,285,285,285,285,285,285,285,285', -'285,285,285,285,285,285,285,285,285,285,285,285,285,285,285,285,285', -'285,285,285,285,285,284,,,,,,,,284,,,,,,,,,,284,,,,,,,284,284,284,284', -'284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284', -'284,284,284,284,284,284,284,284,284,284,307,,,,,,,,307,,,,,,,,,,307', -',,,,,,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307', -'307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,251,,,,', -',,,,,251,,,,,,,251,251,251,251,251,251,251,251,251,251,251,251,251,251', -'251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,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,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,216,,,,,,,216,216,216,216', -'216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216', -'216,216,216,216,216,216,216,216,216,244,,,,,,,244,244,244,244,244,244', -'244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244', -'244,244,244,244,244,244,244,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,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,247,,,,,,,247,247,247,247,247,247,247,247,247,247,247,247', +'232,,,,,,12,12,,,,12,,12,12,13,12,,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,234,,,13,13,,,234,234,234,234,234,234,234,234,234,234', +'234,234,234,234,234,234,234,234,234,234,234,,,,,,13,13,,,,13,,13,13', +'16,13,,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,220,,,16,16,', +',220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220', +'220,220,220,220,,,,,,16,16,,,,16,,16,16,19,16,,19,19,19,19,19,19,19', +'19,19,19,,,,,19,,,19,19,,,,,19,,,19,19,19,19,,,,,19,19,,19,,19,19,,', +'19,19,,,,,,19,19,19,19,19,19,225,,,19,19,,,225,225,225,225,225,225,225', +'225,225,225,225,225,225,225,225,225,225,225,225,225,225,,,,,,19,19,', +',,19,,19,19,287,19,,287,287,287,287,287,287,287,287,287,287,,,,,287', +',,287,287,,,,,287,,,287,287,287,287,,,,,287,287,,287,,287,287,,,287', +'287,,,,,,287,287,287,287,287,287,245,,,287,287,,,245,245,245,245,245', +'245,245,245,245,245,245,245,245,,,,,,,,,,,,,,287,287,,,,287,,287,287', +'22,287,,22,22,22,22,22,22,22,22,22,22,,,,,22,,,22,22,,,,,22,,,22,22', +'22,22,,,,,22,22,,22,,22,22,,,22,22,,,,,,22,22,22,22,22,22,238,,,22,22', +',,238,238,238,238,238,238,238,238,238,238,238,238,238,,,,,,,,,,,,,,22', +'22,,,,22,,22,22,286,22,,286,286,286,286,286,286,286,286,286,286,,,,', +'286,,,286,286,,,,,286,,,286,286,286,286,,,,,286,286,,286,,286,286,,', +'286,286,,,,,,286,286,286,286,286,286,248,,,286,286,,,248,248,248,248', +'248,248,248,248,248,248,248,248,248,,,,,,,,,,,,,,286,286,,,,286,,286', +'286,277,286,,277,277,277,277,277,277,277,277,277,277,,,,,277,,,277,277', +',,,,277,,,277,277,277,277,,,,,277,277,,277,,277,277,,,277,277,,,,,,277', +'277,277,277,277,277,241,,,277,277,,,241,241,241,241,241,241,241,241', +'241,241,241,241,241,,,,,,,,,277,,,,,277,277,,,,277,,277,277,275,277', +',275,275,275,275,275,275,275,275,275,275,,,,,275,,,275,275,,,,,275,', +',275,275,275,275,,,,,275,275,,275,,275,275,,,275,275,,,,,,275,275,275', +'275,275,275,235,,,275,275,,,235,235,235,235,235,235,235,235,235,235', +'217,,,,,,,217,217,217,217,217,217,217,,,275,275,,,,275,,275,275,274', +'275,,274,274,274,274,274,274,274,274,274,274,,,,,274,,,274,274,,,,,274', +',,274,274,274,274,,,,,274,274,,274,,274,274,,,274,274,,,,,,274,274,274', +'274,274,274,229,,,274,274,,,229,229,229,229,229,229,229,229,229,229', +'226,,,,,,,226,226,226,226,226,226,226,,,274,274,,,,274,,274,274,33,274', +',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,233,,,33,33,,,233', +'233,233,233,233,233,233,233,233,233,221,,,,,,,221,221,221,221,221,221', +'221,,,33,33,,,,33,,33,33,34,33,,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,,,,34,34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,34,,,,34,,34,34', +'36,34,,36,36,36,36,36,36,36,36,36,36,,,,,36,,,36,36,,,,,36,,,36,36,36', +'36,,,,,36,36,,36,,36,36,,,36,36,36,,,,,36,36,36,36,36,36,,,,36,36,,', +',,,,,,,,,,,,,,,,,,,,,,,,,,36,36,,,,36,,36,36,262,36,,262,262,262,262', +'262,262,262,262,262,262,,,,,262,,,262,262,,,,,262,,,262,262,262,262', +',,,,262,262,,262,,262,262,,,262,262,,,,,,262,262,262,262,262,262,,,', +'262,262,,,,,,,,,,,,,,,,,,,,,,,,,,,,,262,262,,,,262,,262,262,39,262,', +'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,,,,39,39,,,,,,,,,', +',,,,,,,,,,,,,,,,,,,39,39,,,,39,,39,39,42,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,,,,42,42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,42,42', +',,,42,,42,42,213,42,,213,213,213,213,213,213,213,213,213,213,,,,,213', +',,213,213,,,,,213,,,213,213,213,213,,,,,213,213,,213,,213,213,,,213', +'213,,,,,,213,213,213,213,213,213,,,,213,213,,,,,,,,,,,,,,,,,,,,,,,,', +',,,,213,213,,,,213,,213,213,53,213,,53,53,53,53,53,53,53,53,53,53,,', +',,53,,,53,53,,,,,53,,,53,53,53,53,,,,,53,53,,53,,53,53,,,53,53,,,,,', +'53,53,53,53,53,53,,,,53,53,,,,,,,,,,,,,,,,,,,,,,,,,,,,,53,53,,,,53,', +'53,53,128,53,,128,128,128,128,128,128,128,128,128,128,,,,,128,,,128', +'128,,,,,128,,,128,128,128,128,,,,,128,128,,128,,128,128,,,128,128,,', +',,,128,128,128,128,128,128,,,,128,128,,,,,,,,,,,,,,,,,,,,,,,,,,,,,128', +'128,,,,128,,128,128,55,128,,55,55,55,55,55,55,55,55,55,55,,,,,55,,,55', +'55,,,,,55,,,55,55,55,55,,,,,55,55,,55,,55,55,,,55,55,,55,,,,55,55,55', +'55,55,55,,,,55,55,,,,,,,,,,,,,,,,,,,,,,,,,,,,,55,55,,,,55,,55,55,201', +'55,,201,201,201,201,201,201,201,201,201,201,,,,,201,,,201,201,,,,,201', +',,201,201,201,201,,,,,201,201,,201,,201,201,,,201,201,201,,,,,201,201', +'201,201,201,201,,,,201,201,,,,,,,,,,,,,,,,,,,,,,,,,,,,,201,201,201,201', +',201,,201,201,200,201,,200,200,200,200,200,200,200,200,200,200,,,,,200', +',,200,200,,,,,200,,,200,200,200,200,,,,,200,200,,200,,200,200,,,200', +'200,,,,,,200,200,200,200,200,200,,,,200,200,,,,,,,,,,,,,,,,,,,,,,,,', +',,,,200,200,,,,200,,200,200,187,200,,187,187,187,187,187,187,187,187', +'187,187,,,,,187,,,187,187,,,,,187,,,187,187,187,187,,,,,187,187,,187', +',187,187,,,187,187,,,,,,187,187,187,187,187,187,,,,187,187,,,,,,,,,', +',,,,,,,,,,,,,,,,,,,187,187,,,,187,,187,187,185,187,,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,185,,,', +'185,185,,,,,,,,,,,,,,,,,,,,,,,,,,,,,185,185,,,,185,,185,185,171,185', +',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,167,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,167,,,,,,,,,,,,,,,,,,,,,,,,,,,,,167,167,', +',,167,,167,167,71,167,,71,71,71,71,71,71,71,71,71,71,,,,,71,,,71,71', +',,,,71,,,71,71,71,71,,,,,71,71,,71,,71,71,,,71,71,,,,,,71,71,71,71,71', +'71,,,,71,71,,,,,,,,,,,,,,,,,,,,,,,,,,,,,71,71,,,,71,,71,71,74,71,,74', +'74,74,74,74,74,74,74,74,74,,,,,74,,,74,74,,,,,74,,,74,74,74,74,,,,,74', +'74,,74,,74,74,,,74,74,,,,,,74,74,74,74,74,74,,,,74,74,,,,,,,,,,,,,,', +',,,,,,,,,,,,,,74,74,,,,74,,74,74,166,74,,166,166,166,166,166,166,166', +'166,166,166,,,,,166,,,166,166,,,,,166,,,166,166,166,166,,,,,166,166', +',166,,166,166,,,166,166,,,,,,166,166,166,166,166,166,,,,166,166,,,,', +',,,,,,,,,,,,,,,,,,,,,,,,166,166,,,,166,,166,166,165,166,,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,165,,,,,,,,,,,,,,,,,,,,,,,,,,,,,165,165,,,,165,,165,165,164,165', +',164,164,164,164,164,164,164,164,164,164,,,,,164,,,164,164,,,,,164,', +',164,164,164,164,,,,,164,164,,164,,164,164,,,164,164,,,,,,164,164,164', +'164,164,164,,,,164,164,,,,,,,,,,,,,,,,,,,,,,,,,,,,,164,164,,,,164,,164', +'164,163,164,,163,163,163,163,163,163,163,163,163,163,,,,,163,,,163,163', +',,,,163,,,163,163,163,163,,,,,163,163,,163,,163,163,,,163,163,,,,,,163', +'163,163,163,163,163,,,,163,163,,,,,,,,,,,,,,,,,,,,,,,,,,,,,163,163,', +',,163,,163,163,162,163,,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,162,,,,162,,162,162,161,162,,161,161,161,161,161,161,161', +'161,161,161,,,,,161,,,161,161,,,,,161,,,161,161,161,161,,,,,161,161', +',161,,161,161,,,161,161,,,,,,161,161,161,161,161,161,,,,161,161,,,,', +',,,,,,,,,,,,,,,,,,,,,,,,161,161,,,,161,,161,161,160,161,,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,,,,,,,,,,,,,,,,,,,,,,,,,,,,,160,160,,,,160,,160,160,159,160', +',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,,,,,,,,,,,,,,,,,,,,,,,,,,,,,159,159,,,,159,,159', +'159,157,159,,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,,,,,,,,,,,,,,,,,,,,,,,,,,,,,157,157,', +',,157,,157,157,156,157,,156,156,156,156,156,156,156,156,156,156,,,,', +'156,,,156,156,,,,,156,,,156,156,156,156,,,,,156,156,,156,,156,156,,', +'156,156,,,,,,156,156,156,156,156,156,,,,156,156,,,,,,,,,,,,,,,,,,,,', +',,,,,,,,156,156,,,,156,,156,156,155,156,,155,155,155,155,155,155,155', +'155,155,155,,,,,155,,,155,155,,,,,155,,,155,155,155,155,,,,,155,155', +',155,,155,155,,,155,155,,,,,,155,155,155,155,155,155,,,,155,155,,,,', +',,,,,,,,,,,,,,,,,,,,,,,,155,155,,,,155,,155,155,154,155,,154,154,154', +'154,154,154,154,154,154,154,,,,,154,,,154,154,,,,,154,,,154,154,154', +'154,,,,,154,154,,154,,154,154,,,154,154,,,,,,154,154,154,154,154,154', +',,,154,154,,,,,,,,,,,,,,,,,,,,,,,,,,,,,154,154,,,,154,,154,154,153,154', +',153,153,153,153,153,153,153,153,153,153,,,,,153,,,153,153,,,,,153,', +',153,153,153,153,,,,,153,153,,153,,153,153,,,153,153,,,,,,153,153,153', +'153,153,153,,,,153,153,,,,,,,,,,,,,,,,,,,,,,,,,,,,,153,153,,,,153,,153', +'153,152,153,,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,,,,152,152,,,,,,,,,,,,,,,,,,,,,,,,,,,,,152,152,', +',,152,,152,152,151,152,,151,151,151,151,151,151,151,151,151,151,,,,', +'151,,,151,151,,,,,151,,,151,151,151,151,,,,,151,151,,151,,151,151,,', +'151,151,,,,,,151,151,151,151,151,151,,,,151,151,,,,,,,,,,,,,,,,,,,,', +',,,,,,,,151,151,,,,151,,151,151,150,151,,150,150,150,150,150,150,150', +'150,150,150,,,,,150,,,150,150,,,,,150,,,150,150,150,150,,,,,150,150', +',150,,150,150,,,150,150,,,,,,150,150,150,150,150,150,,,,150,150,,,,', +',,,,,,,,,,,,,,,,,,,,,,,,150,150,,,,150,,150,150,148,150,,148,148,148', +'148,148,148,148,148,148,148,,,,,148,,,148,148,,,,,148,,,148,148,148', +'148,,,,,148,148,,148,,148,148,,,148,148,,,,,,148,148,148,148,148,148', +',,,148,148,,,,,,,,,,,,,,,,,,,,,,,,,,,,,148,148,,,,148,,148,148,147,148', +',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,,,,147,147,,,,,,,,,,,,,,,,,,,,,,,,,,,,,147,147,,,,147,,147', +'147,145,147,,145,145,145,145,145,145,145,145,145,145,,,,,145,,,145,145', +',,,,145,,,145,145,145,145,,,,,145,145,,145,,145,145,,,145,145,,,,,,145', +'145,145,145,145,145,,,,145,145,,,,,,,,,,,,,,,,,,,,,,,,,,,,,145,145,', +',,145,,145,145,101,145,,101,101,101,101,101,101,101,101,101,101,,,,', +'101,,,101,101,,,,,101,,,101,101,101,101,,,,,101,101,,101,,101,101,,', +'101,101,101,,,,,101,101,101,101,101,101,,,,101,101,,,,,,,,,,,,,,,,,', +',,,,,,,,,,,101,101,,,,101,,101,101,102,101,,102,102,102,102,102,102', +'102,102,102,102,,,,,102,,,102,102,,,,,102,,,102,102,102,102,,,,,102', +'102,,102,,102,102,,,102,102,,,,,,102,102,102,102,102,102,,,,102,102', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,102,102,,,,102,,102,102,311,102,,311,311', +'311,311,311,311,311,311,311,311,,,,,311,,,311,311,,,,,311,,,311,311', +'311,311,,,,,311,311,,311,,311,311,,,311,311,,,,,,311,311,311,311,311', +'311,,,,311,311,,,,,,,,,,,,,,,,,,,,,,,,,,,,,311,311,,,,311,,311,311,143', +'311,,143,143,143,143,143,143,143,143,143,143,,,,,143,,,143,143,,,,,143', +',,143,143,143,143,,,,,143,143,,143,,143,143,,,143,143,,,,,,143,143,143', +'143,143,143,,,,143,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,143,143,,,,143,,143', +'143,142,143,,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,,,,,,,,,,,,,,,,,,,,,,,,,,,,,142,142,', +',,142,,142,142,141,142,,141,141,141,141,141,141,141,141,141,141,,,,', +'141,,,141,141,,,,,141,,,141,141,141,141,,,,,141,141,,141,,141,141,,', +'141,141,,,,,,141,141,141,141,141,141,,,,141,141,,,,,,,,,,,,,,,,,,,,', +',,,,,,,,141,141,,,,141,,141,141,140,141,,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,,,,', +',,,,,,,,,,,,,,,,,,,,,,,,140,140,,,,140,,140,140,112,140,,112,112,112', +'112,112,112,112,112,112,112,,,,,112,,,112,112,,,,,112,,,112,112,112', +'112,,,,,112,112,,112,,112,112,,,112,112,,,,,,112,112,112,112,112,112', +',,,112,112,,,,,,,,,,,,,,,,,,,,,,,,,,,,,112,112,,,,112,,112,112,139,112', +',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,,,,,,,,,,,,,,,,,,,,,,,,,,,,,139,139,,,,139,,139', +'139,138,139,,138,138,138,138,138,138,138,138,138,138,,,,,138,,,138,138', +',,,,138,,,138,138,138,138,,,,,138,138,,138,,138,138,,,138,138,,,,,,138', +'138,138,138,138,138,,,,138,138,,,,,,,,,,,,,,,,,,,,,,,,,,,,,138,138,', +',,138,,138,138,115,138,,115,115,115,115,115,115,115,115,115,115,,,,', +'115,,,115,115,,,,,115,,,115,115,115,115,,,,,115,115,,115,,115,115,,', +'115,115,115,,,,,115,115,115,115,115,115,,,,115,115,,,,,,,,,,,,,,,,,', +',,,,,,,,,,,115,115,,,,115,,115,115,137,115,,137,137,137,137,137,137', +'137,137,137,137,,,,,137,,,137,137,,,,,137,,,137,137,137,137,,,,,137', +'137,,137,,137,137,,,137,137,,,,,,137,137,137,137,137,137,,,,137,137', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,137,137,,,,137,,137,137,0,137,,0,0,0,0,0', +'0,0,0,0,0,,,,,0,,,0,0,,,,,0,,,0,0,0,0,,,,,0,0,,0,,0,0,,,0,0,0,,,,,0', +'0,0,0,0,0,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,,0,,0,0,136,0,', +'136,136,136,136,136,136,136,136,136,136,,,,,136,,,136,136,,,,,136,,', +'136,136,136,136,,,,,136,136,,136,,136,136,,,136,136,,,,,,136,136,136', +'136,136,136,,,,136,136,,,,,,,,,,,,,,,,,,,,,,,,,,,,,136,136,,,,136,,136', +'136,135,136,,135,135,135,135,135,135,135,135,135,135,,,,,135,,,135,135', +',,,,135,,,135,135,135,135,,,,,135,135,,135,,135,135,,,135,135,,,,,,135', +'135,135,135,135,135,,,,135,135,,,,,,,,,,,,,,,,,,,,,,,,,,,,,135,135,', +',,135,,135,135,134,135,,134,134,134,134,134,134,134,134,134,134,,,,', +'134,,,134,134,,,,,134,,,134,134,134,134,,,,,134,134,,134,,134,134,,', +'134,134,,,,,,134,134,134,134,134,134,,,,134,134,,,,,,,,,,,,,,,,,,,,', +',,,,,,,,134,134,,,,134,,134,134,133,134,,133,133,133,133,133,133,133', +'133,133,133,,,,,133,,,133,133,,,,,133,,,133,133,133,133,,,,,133,133', +',133,,133,133,,,133,133,,,,,,133,133,133,133,133,133,,,,133,133,,,,', +',,,,,,,,,,,,,,,,,,,,,,,,133,133,,,,133,,133,133,123,133,,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,,123,123,132,123', +',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,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,132,,,,132,,132', +'132,129,132,,129,129,129,129,129,129,129,129,129,129,,,,,129,,,129,129', +',,,,129,,,129,129,129,129,,,,,129,129,,129,,129,129,,,129,129,,,,,,129', +'129,129,129,129,129,,,,129,129,,,,,,,,,,,,,,,,,,,,,,,,,,,,,129,129,', +',,129,,129,129,127,129,,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,212,127,,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,314,,314,,,212,212,212,212,212,212,,,,212,212', +',,,,,,,,,,,,,,,,314,314,,,,314,,,,314,,,212,212,,,,212,314,212,212,', +'212,,,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314', +'314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314', +'314,303,,303,,,,,,,,314,,,,,,,,,,,,,,,,,,,,,,303,303,,,,303,,,,303,', +',,,,,,,303,,,,,,,303,303,303,303,303,303,303,303,303,303,303,303,303', +'303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303', +'303,303,303,303,312,312,312,312,312,312,312,312,312,312,303,,,,312,', +',312,312,,,,,312,,,312,312,312,,,,,,,312,,312,,312,312,,,312,312,,,', +',,312,312,312,312,312,312,,,,312,312,,,,,158,158,158,158,158,158,158', +'158,158,158,,,,,158,,,158,158,,,,,158,312,312,158,158,158,312,,312,312', +',312,158,,158,,158,158,,,158,158,,,,,,158,158,158,158,170,170,170,170', +'170,170,170,170,170,170,,,,,,,,,,,,,,,,,,170,170,,,,,,,158,158,,,,158', +',158,158,170,158,,,,,,,,,,,,,,,,,,25,25,25,25,25,25,25,25,25,25,,,,', +'25,,,25,25,,,,,25,,,25,25,25,25,,170,,170,170,25,170,25,,25,25,,,25', +'25,,,,,,25,25,25,25,25,25,,,,25,25,,,,,302,302,302,302,302,302,302,302', +'302,302,,,,,302,,,302,302,,,,,302,25,25,302,302,302,25,,25,25,,25,302', +',302,,302,302,,,302,302,266,,266,,,302,302,302,302,302,302,,,,302,302', +',,,,,,,,,,,,,,,,266,266,,,,266,,,,266,,,302,302,,,,302,266,302,302,', +'302,,,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,297,,297,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,297,297,,,,297,,,,297,,,,', +',,,,297,,,,,,,297,297,297,297,297,297,297,297,297,297,297,297,297,297', +'297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297', +'297,297,297,300,,300,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,300,300,,,,300,,,', +'300,,,,,,,,,300,,,,,,,300,300,300,300,300,300,300,300,300,300,300,300', +'300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300', +'300,300,300,300,300,301,,301,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,301,301,,', +',301,,,,301,,,,,,,,,301,,,,,,,301,301,301,301,301,301,301,301,301,301', +'301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301', +'301,301,301,301,301,301,301,276,,276,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,276', +'276,,,,276,,,,276,,,,,,,,,276,,,,,,,276,276,276,276,276,276,276,276', +'276,276,276,276,276,276,276,276,276,276,276,276,276,276,276,276,276', +'276,276,276,276,276,276,276,276,276,273,,273,,,,,,,,,,,,,,,,,,,,,,,', +',,,,,,273,273,,,,273,,,,273,,,,,,,,,273,,,,,,,273,273,273,273,273,273', +'273,273,273,273,273,273,273,273,273,273,273,273,273,273,273,273,273', +'273,273,273,273,273,273,273,273,273,273,273,114,,114,,,,,,,,,,,,,,,', +',,,,,,,,,,,,,,114,114,,,,114,,,,114,,,,,,,,,114,,,,,,,114,114,114,114', +'114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114', +'114,114,114,114,114,114,114,114,114,114,114,114,114,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,264,264,264,264,264,264,264,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,236,236,236,236,236,236,236,236', +'230,,230,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,230,230,,,,230,,,,230,,,,,,,,', +'230,,,,,,,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230', +'230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230', +'230,230,222,,222,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,222,222,,,,222,,,,222', +',,,,,,,,222,,,,,,,222,222,222,222,222,222,222,222,222,222,222,222,222', +'222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222', +'222,222,222,222,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,210,210', +'210,210,210,210,210,210,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,197,197,197,197,197,197,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', +'193,193,193,193,193,193,193,193,193,193,193,192,,192,,,,,,,,,,,,,,,', +',,,,,,,,,,,,,,192,192,,,,192,,,,192,,,,,,,,,192,,,,,,,192,192,192,192', +'192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192', +'192,192,192,192,192,192,192,192,192,192,192,192,192,313,,313,,,,,,,', +',,,,,,,,,,,,,,,313,,,,,,,313,313,,,,313,,,,313,,,,,,,,,313,,,,,,,313', +'313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313', +'313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,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,68,68,68,68,68,68,87,,87,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,87', +'87,,,,87,,,,87,,,,,,,87,,87,,,,,,,87,87,87,87,87,87,87,87,87,87,87,87', +'87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,319', +',319,,,,,,,,,,,,,,,,,,,,,,,319,,,,,,,319,319,,,,319,,,,319,,,,,,,,,319', +',,,,,,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319', +'319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319', +'319,86,,86,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,86,86,,,,86,,,,86,,,,,,,86,', +'86,,,,,,,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86', +'86,86,86,86,86,86,86,86,86,86,86,86,86,86,318,,318,,,,,,,,,,,,,,,,,', +',,,,,,,,,,,,318,318,,,,318,,,,318,,,,,,,,,318,,,,,,,318,318,318,318', +'318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318', +'318,318,318,318,318,318,318,318,318,318,318,318,318,84,,84,,,,,,,,,', +',,,,,,,,,,,,,,,,,,,,84,84,,,,84,,,,84,,,,,,,84,,84,,,,,,,84,84,84,84', +'84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84', +'84,84,84,84,84,84,84,93,93,,,,,,,,93,,,,,,,,,93,,,,,,,93,93,93,93,93', +'93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93', +'93,93,93,93,93,93,256,256,,,,,,,,256,,,,,,,,,256,,,,,,,256,256,256,256', +'256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256', +'256,256,256,256,256,256,256,256,256,256,256,256,256,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,227', +'227,231,231,,,,,,,,231,,,,,,,,,231,,,,,,,231,231,231,231,231,231,231', +'231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231', +'231,231,231,231,231,231,231,224,224,,,,,,,,224,,,,,,,,,224,,,,,,,224', +'224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224', +'224,224,224,224,224,224,224,224,224,224,224,224,224,119,119,,,,,,,,119', +',,,,,,,,119,,,,,,,119,119,119,119,119,119,119,119,119,119,119,119,119', +'119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119', +'119,306,,,,,,,,306,,,,,,,,,306,,,,,,,306,306,306,306,306,306,306,306', +'306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306', +'306,306,306,306,306,306,307,,,,,,,,307,,,,,,,,,307,,,,,,,307,307,307', +'307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307', +'307,307,307,307,307,307,307,307,307,307,307,284,,,,,,,,284,,,,,,,,,284', +',,,,,,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284', +'284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,223,,,,', +',,,223,,,,,,,,,223,,,,,,,223,223,223,223,223,223,223,223,223,223,223', +'223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223', +'223,223,223,283,,,,,,,,283,,,,,,,,,283,,,,,,,283,283,283,283,283,283', +'283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283', +'283,283,283,283,283,283,283,283,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,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,250,,,,,,,,,250,,,,,,,250,250,250,250,250,250,250,250,250,250', +'250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250', +'250,250,250,251,,,,,,,251,251,251,251,251,251,251,251,251,251,251,251', +'251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251', +'251,240,,,,,,,240,240,240,240,240,240,240,240,240,240,240,240,240,240', +'240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,243', +',,,,,,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243', +'243,243,243,243,243,243,243,243,243,243,243,243,243,243,215,,,,,,,215', +'215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215', +'215,215,215,215,215,215,215,215,215,215,215,215,247,,,,,,,247,247,247', '247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247', -'247' ] - racc_action_check = arr = Array.new(11069, nil) +'247,247,247,247,247,247,247,247,247,247' ] + racc_action_check = arr = Array.new(10938, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| @@ -773,350 +766,349 @@ clist = [ end racc_action_pointer = [ - 6832, 281, nil, nil, 202, 223, 406, nil, nil, 508, - nil, 610, 712, nil, nil, 814, nil, nil, nil, 916, - nil, 8038, 1120, nil, 1222, nil, 7973, nil, nil, nil, - 171, nil, nil, 1528, 406, nil, 11, 124, nil, 1936, - 2038, nil, nil, 252, nil, nil, nil, 2242, 2344, nil, - nil, nil, nil, nil, nil, 2446, nil, nil, nil, nil, - 137, 2650, nil, nil, nil, nil, nil, nil, 81, nil, - 156, 227, 8733, -2, 3262, 146, nil, 111, -3, 399, - nil, 203, nil, nil, -1, 10021, 342, 9837, 9745, 484, - 280, 304, 481, 10747, 204, 10141, 173, 134, 145, 178, - nil, nil, 10794, 100, nil, 5710, 229, 231, 236, nil, - nil, nil, nil, 6118, 6220, 65, 8181, 93, 164, -26, - -2, 10258, 329, nil, 89, 235, 320, 7444, nil, 2140, - 7342, 7240, 317, 7138, 7036, 6934, 6730, 232, 6628, 6526, - 6424, 6322, 6016, 5914, 5812, 5506, 5404, 5302, 5200, 5098, - 4996, nil, 4894, 4792, 4690, nil, 4588, 4486, 4384, 4282, - 4180, 4078, 3976, -2, 3874, 3772, 3670, 3568, 3466, 3364, - nil, 7909, 3160, nil, 138, nil, 249, 132, 204, nil, - nil, nil, nil, nil, nil, 127, 121, nil, 217, 3058, - 2956, 84, 91, 9929, 9653, nil, nil, nil, 74, 9469, - 2854, nil, nil, 2752, -44, 9, 5, -35, nil, nil, - nil, 101, 2548, 7546, 87, 8089, 10831, 517, 1047, 85, - 10905, 721, 1656, 8365, 65, 10428, 216, 1554, 10372, 415, - 1741, 8641, 10315, 823, 1639, 10201, 313, 1435, 8457, 925, - 1537, 619, 1027, 195, 10868, 1231, 297, 10979, nil, 1129, - 382, 10700, 10942, 1333, 1149, 508, 583, 10081, 183, nil, - 123, -45, 1834, 126, nil, nil, 226, nil, 9009, 9193, - nil, nil, -67, nil, nil, 1732, 1630, 9285, 9377, 1426, - 67, 79, nil, nil, 10596, 10540, nil, 1324, 1018, 200, - nil, nil, nil, -13, -2, 9561, 166, nil, nil, nil, - 304, 8917, 8825, 7778, 7689, nil, nil, 10652, 10484, nil, - 5608, 82, 256, 7844, 8273, 7597, nil, 9101, nil, nil, - 8549, nil, nil, nil ] + 6563, 288, 184, nil, nil, 301, nil, 402, nil, nil, + 503, nil, 604, 705, nil, nil, 806, nil, nil, 907, + nil, -2, 1109, nil, nil, 7881, 136, nil, nil, nil, + 3, nil, 291, 1614, 1715, nil, 1816, -7, nil, 2018, + nil, nil, 2119, 129, nil, nil, nil, nil, nil, nil, + nil, nil, nil, 2321, 185, 2523, nil, nil, nil, nil, + nil, nil, 81, nil, nil, nil, 204, -54, 9450, 191, + -2, 3230, nil, nil, 3331, 264, nil, nil, 115, nil, + nil, 203, -5, 238, 9905, 393, 9723, 9541, 295, 177, + 476, 402, 10618, 9964, 56, 139, nil, 21, nil, 457, + nil, 5351, 5452, -13, 20, 37, nil, nil, nil, nil, + 10572, 480, 6058, 64, 8540, 6361, 396, -2, 107, 10250, + 235, nil, 78, 7068, 195, 227, nil, 7371, 2422, 7270, + 286, 207, 7169, 6967, 6866, 6765, 6664, 6462, 6260, 6159, + 5957, 5856, 5755, 5654, 99, 5250, nil, 5149, 5048, nil, + 4947, 4846, 4745, 4644, 4543, 4442, 4341, 4240, 7764, 4139, + 4038, 3937, 3836, 3735, 3634, 3533, 3432, 3129, nil, nil, + 7818, 3028, nil, 292, 468, nil, nil, nil, nil, 149, + 204, 152, nil, nil, 75, 2927, 84, 2826, nil, 177, + 120, -2, 9268, 9177, nil, nil, nil, 9086, nil, nil, + 2725, 2624, 126, 73, nil, 169, 183, 142, nil, nil, + 8995, 176, 7472, 2220, -12, 10812, 209, 1438, 84, 83, + 815, 1640, 8904, 10470, 10194, 916, 1539, 10082, 310, 1522, + 8813, 10138, 613, 1623, 714, 1421, 8722, 411, 1118, -24, + 10738, 1320, 278, 10775, nil, 1017, 379, 10849, 1219, -7, + 10664, 10701, 512, 191, 301, 375, 10023, -41, nil, -10, + 124, 125, 1917, nil, 8631, nil, 7994, nil, nil, 182, + nil, -68, nil, 8449, 1513, 1412, 8358, 1311, nil, 75, + 96, nil, nil, 10525, 10415, nil, 1210, 1008, 114, nil, + nil, nil, -2, 145, nil, nil, 42, 8085, nil, 200, + 8176, 8267, 7946, 7611, nil, nil, 10305, 10360, nil, 215, + 130, 5553, 7699, 9359, 7520, nil, nil, nil, 9814, 9632, + nil, nil, nil ] racc_action_default = [ - -1, -186, -97, -9, -186, -179, -186, -98, -10, -186, - -106, -186, -186, -26, -11, -186, -107, -27, -12, -186, - -108, -186, -186, -13, -186, -109, -46, -14, -110, -28, - -120, -15, -29, -186, -126, -31, -134, -186, -16, -141, - -186, -35, -17, -186, -36, -34, -18, -186, -186, -37, - -19, -47, -20, -128, -38, -186, -30, -21, -39, -32, - -186, -186, -22, -40, -2, -23, -104, -33, -186, -105, - -3, -186, -5, -8, -186, -186, -99, -101, -186, -48, - -177, -179, -181, -183, -186, -158, -49, -186, -186, -53, - -55, -186, -127, -56, -54, -45, -186, -186, -186, -120, - -44, -121, -57, -141, -131, -186, -186, -186, -186, -112, - -116, -117, -135, -141, -186, -186, -142, -51, -186, -50, - -186, -155, -186, -25, -186, -162, -186, -7, -4, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -59, -186, -186, -186, -58, -186, -186, -186, -186, - -186, -186, -186, -94, -186, -186, -186, -186, -186, -186, - -130, -186, -186, -111, -52, -96, -186, -186, -186, -178, - -182, -180, -176, -157, -175, -186, -186, -119, -186, -186, - -186, -186, -186, -142, -186, -113, -114, -115, -186, -143, - -186, -140, -148, -186, -186, -151, -186, -186, -156, 324, - -24, -186, -186, -186, -186, -6, -87, -75, -64, -186, - -88, -76, -65, -184, -186, -93, -77, -66, -89, -78, - -67, -185, -90, -79, -68, -91, -80, -69, -159, -81, - -70, -82, -71, -60, -84, -72, -61, -85, -83, -73, - -62, -92, -86, -74, -63, -129, -186, -41, -186, -100, - -186, -186, -186, -186, -170, -122, -186, -123, -42, -43, - -125, -132, -186, -118, -133, -186, -186, -144, -145, -186, - -186, -186, -152, -163, -164, -165, -161, -186, -186, -160, - -103, -102, -95, -186, -186, -149, -186, -168, -171, -124, - -186, -147, -146, -103, -186, -153, -154, -167, -166, -174, - -186, -172, -186, -103, -186, -186, -136, -150, -173, -169, - -186, -138, -137, -139 ] + -1, -178, -185, -97, -10, -185, -105, -185, -26, -11, + -185, -106, -185, -185, -27, -12, -185, -107, -13, -185, + -108, -185, -185, -14, -109, -45, -119, -15, -28, -16, + -125, -29, -133, -185, -185, -31, -140, -185, -17, -185, + -34, -18, -185, -185, -35, -19, -36, -46, -20, -127, + -30, -21, -37, -185, -185, -185, -22, -38, -32, -2, + -23, -39, -3, -104, -103, -33, -185, -185, -5, -185, + -8, -185, -96, -9, -185, -178, -180, -182, -185, -176, + -98, -100, -185, -48, -157, -52, -185, -185, -54, -53, + -185, -126, -55, -44, -185, -119, -43, -185, -120, -185, + -130, -140, -185, -185, -185, -185, -111, -115, -116, -134, + -56, -50, -185, -185, -141, -140, -49, -185, -185, -154, + -185, -25, -185, -7, -161, -185, -4, -185, -185, -185, + -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, + -185, -185, -185, -185, -185, -185, -58, -185, -185, -57, + -185, -185, -185, -185, -185, -185, -185, -185, -93, -185, + -185, -185, -185, -185, -185, -185, -185, -185, -95, -129, + -185, -185, -110, -51, -47, -181, -177, -179, -175, -185, + -185, -185, -156, -174, -185, -185, -185, -185, -118, -185, + -185, -185, -141, -185, -112, -113, -114, -142, -139, -147, + -185, -185, -185, -185, -155, -150, -185, -185, 323, -24, + -6, -185, -185, -185, -185, -87, -75, -64, -185, -185, + -76, -65, -183, -92, -88, -77, -66, -89, -78, -67, + -184, -90, -79, -68, -80, -69, -158, -81, -70, -59, + -83, -71, -60, -84, -82, -72, -61, -85, -73, -62, + -91, -86, -74, -63, -128, -185, -40, -185, -99, -185, + -185, -185, -185, -169, -41, -124, -42, -122, -121, -185, + -131, -185, -117, -144, -185, -185, -143, -185, -132, -185, + -185, -151, -162, -163, -164, -160, -185, -185, -159, -102, + -101, -94, -185, -185, -167, -170, -185, -148, -123, -185, + -146, -145, -102, -185, -152, -153, -166, -165, -173, -185, + -171, -185, -102, -185, -185, -135, -168, -172, -149, -185, + -137, -136, -138 ] racc_goto_table = [ - 64, 173, 170, 71, 76, 264, 214, 79, 91, 85, - 80, 265, 86, 267, 87, 88, 126, 82, 89, 173, - 170, 115, 90, 100, 92, 93, 60, 94, 96, 95, - 294, 263, 205, 70, 182, 260, 102, 81, 78, 83, - nil, nil, 116, 117, nil, nil, 118, nil, nil, nil, - 119, 120, nil, nil, nil, nil, nil, nil, 121, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - 127, 128, nil, nil, nil, nil, nil, 174, 175, nil, - 219, nil, nil, 298, nil, 192, 179, 181, 183, nil, - 184, 299, 100, 180, 124, 198, 188, 191, nil, 289, - nil, nil, nil, nil, nil, nil, 193, nil, 194, nil, - nil, nil, nil, 309, nil, nil, 193, 199, nil, nil, - nil, nil, nil, nil, 127, nil, nil, nil, nil, nil, - 215, nil, 216, 217, 218, nil, 220, 221, 222, 223, - nil, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, nil, 238, 239, 240, 255, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, nil, 256, 257, nil, nil, 261, 100, - 259, 100, nil, 173, 170, nil, 266, nil, nil, nil, - nil, 188, 268, 269, nil, nil, nil, nil, nil, nil, - 276, nil, nil, 277, nil, nil, 278, nil, nil, nil, - 282, nil, nil, nil, nil, 284, 285, 286, nil, nil, + 59, 80, 67, 214, 263, 267, 268, 83, 172, 84, + 169, 125, 85, 113, 86, 87, 76, 79, 88, 62, + 96, 89, 90, 91, 92, 99, 54, 93, 172, 296, + 169, 261, 205, 178, 259, 110, 111, 75, 114, 82, + 77, 116, nil, nil, 117, 118, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 119, nil, nil, nil, nil, + nil, nil, 123, nil, nil, nil, nil, 126, nil, nil, + nil, 168, nil, 173, 122, 218, 174, nil, 191, nil, + 177, 295, nil, nil, nil, 298, 182, nil, 183, 96, + 175, 176, 203, nil, 186, nil, 288, nil, nil, 189, + nil, nil, nil, 192, 193, nil, nil, nil, nil, nil, + nil, nil, 308, nil, 197, nil, nil, 192, nil, nil, + nil, nil, 123, nil, nil, 210, nil, nil, nil, 215, + 216, 217, nil, nil, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, nil, 234, + 235, nil, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + nil, 254, 255, 256, nil, nil, nil, nil, 260, 258, + nil, nil, nil, 96, 96, nil, 189, 264, nil, 266, + 269, nil, 172, nil, 169, nil, nil, nil, nil, nil, + nil, 275, 273, 276, nil, nil, nil, nil, nil, 281, + nil, nil, nil, nil, 283, 284, 285, 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, 261, nil, nil, 100, - nil, 293, nil, 292, nil, 295, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 301, 302, - nil, nil, 304, 305, 306, nil, 261, nil, nil, nil, - 307, 308, nil, nil, nil, nil, nil, 311, nil, 312, - nil, nil, nil, 314, nil, nil, 315, nil, nil, nil, - nil, 318, nil, 317, nil, nil, 320 ] + nil, nil, nil, nil, nil, 260, nil, nil, nil, nil, + 292, 291, nil, 96, 297, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 300, 301, nil, 303, + nil, 304, 305, nil, nil, nil, 260, nil, 306, 307, + nil, nil, nil, nil, nil, 309, nil, nil, 310, nil, + nil, 313, nil, nil, 314, nil, nil, nil, nil, nil, + 317, nil, nil, 318, 319 ] racc_goto_check = [ - 2, 32, 38, 4, 26, 45, 43, 5, 6, 5, - 47, 23, 5, 23, 5, 5, 42, 49, 5, 32, - 38, 39, 5, 21, 33, 5, 1, 5, 36, 5, - 40, 44, 41, 3, 46, 25, 5, 48, 24, 50, - nil, nil, 5, 5, nil, nil, 4, nil, nil, nil, - 5, 5, nil, nil, nil, nil, nil, nil, 5, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - 2, 2, nil, nil, nil, nil, nil, 5, 4, nil, - 42, nil, nil, 45, nil, 39, 47, 4, 4, nil, - 4, 23, 21, 49, 3, 39, 2, 36, nil, 43, - nil, nil, nil, nil, nil, nil, 5, nil, 5, nil, - nil, nil, nil, 45, nil, nil, 5, 5, nil, nil, - nil, nil, nil, nil, 2, nil, nil, nil, nil, nil, - 5, nil, 5, 5, 5, nil, 5, 5, 5, 5, - nil, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, nil, 5, 5, 5, 6, 5, + 2, 26, 4, 43, 45, 23, 23, 5, 32, 5, + 38, 42, 5, 39, 5, 5, 49, 47, 5, 3, + 21, 5, 6, 33, 5, 36, 1, 5, 32, 40, + 38, 44, 41, 46, 25, 5, 5, 48, 5, 24, + 50, 5, nil, nil, 5, 4, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 5, nil, nil, nil, nil, + nil, nil, 2, nil, nil, nil, nil, 2, nil, nil, + nil, 4, nil, 5, 3, 42, 5, nil, 39, nil, + 4, 45, nil, nil, nil, 23, 4, nil, 4, 21, + 49, 47, 39, nil, 36, nil, 43, nil, nil, 2, + nil, nil, nil, 5, 5, nil, nil, nil, nil, nil, + nil, nil, 45, nil, 5, nil, nil, 5, nil, nil, + nil, nil, 2, nil, nil, 5, nil, nil, nil, 5, + 5, 5, nil, nil, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, nil, 5, + 5, nil, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, nil, 33, 5, nil, nil, 21, 21, - 26, 21, nil, 32, 38, nil, 2, nil, nil, nil, - nil, 2, 5, 5, nil, nil, nil, nil, nil, nil, - 2, nil, nil, 5, nil, nil, 5, nil, nil, nil, - 4, nil, nil, nil, nil, 5, 5, 4, nil, nil, + nil, 6, 33, 5, nil, nil, nil, nil, 21, 26, + nil, nil, nil, 21, 21, nil, 2, 5, nil, 5, + 2, nil, 32, nil, 38, nil, nil, nil, nil, nil, + nil, 2, 5, 5, nil, nil, nil, nil, nil, 4, + nil, nil, nil, nil, 5, 5, 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, 21, nil, nil, 21, - nil, 2, nil, 4, nil, 5, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 5, 5, - nil, nil, 5, 4, 4, nil, 21, nil, nil, nil, - 5, 5, nil, nil, nil, nil, nil, 4, nil, 4, - nil, nil, nil, 5, nil, nil, 5, nil, nil, nil, - nil, 2, nil, 5, nil, nil, 5 ] + nil, nil, nil, nil, nil, 21, nil, nil, nil, nil, + 2, 4, nil, 21, 5, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 5, 5, nil, 5, + nil, 4, 4, nil, nil, nil, 21, nil, 5, 5, + nil, nil, nil, nil, nil, 4, nil, nil, 4, nil, + nil, 5, nil, nil, 5, nil, nil, nil, nil, nil, + 2, nil, nil, 5, 5 ] racc_goto_pointer = [ - nil, 26, 0, 33, 3, 3, -13, nil, nil, nil, + nil, 26, 0, 19, 2, 2, 1, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, -7, nil, -175, 37, -143, 3, nil, nil, nil, - nil, nil, -72, 3, nil, nil, -2, nil, -71, -18, - -232, -86, -52, -120, -154, -180, -50, 5, 32, 12, - 34 ] + nil, -6, nil, -184, 37, -147, -1, nil, nil, nil, + nil, nil, -62, 2, nil, nil, -1, nil, -60, -23, + -233, -86, -55, -122, -153, -180, -45, 16, 36, 15, + 39 ] racc_goto_default = [ - nil, nil, 203, nil, nil, 72, 73, 3, 8, 14, - 18, 23, 27, 31, 38, 42, 46, 50, 52, 57, - 62, 65, 69, 101, nil, 75, nil, 10, 16, 20, - 25, 28, 109, 34, 110, 111, nil, 53, 104, nil, - nil, nil, nil, nil, nil, nil, 5, nil, nil, nil, + nil, nil, 200, nil, nil, 68, 70, 73, 4, 9, + 15, 18, 23, 27, 29, 38, 41, 45, 48, 51, + 56, 60, 63, 98, nil, 69, nil, 6, 11, 17, + 20, 24, 106, 30, 107, 108, nil, 49, 100, nil, + nil, nil, nil, nil, nil, nil, 1, nil, nil, nil, nil ] racc_reduce_table = [ 0, 0, :racc_error, - 0, 108, :_reduce_1, - 1, 108, :_reduce_2, - 1, 108, :_reduce_3, - 2, 108, :_reduce_4, - 1, 110, :_reduce_5, - 3, 110, :_reduce_6, - 2, 110, :_reduce_7, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 3, 111, :_reduce_24, - 2, 111, :_reduce_25, - 1, 109, :_reduce_none, - 1, 109, :_reduce_none, - 1, 129, :_reduce_28, - 1, 129, :_reduce_29, - 1, 129, :_reduce_30, - 1, 129, :_reduce_31, - 1, 129, :_reduce_32, - 1, 129, :_reduce_33, - 1, 129, :_reduce_34, - 1, 129, :_reduce_35, - 1, 129, :_reduce_36, - 1, 129, :_reduce_37, - 1, 129, :_reduce_38, - 1, 129, :_reduce_39, - 1, 129, :_reduce_40, - 3, 117, :_reduce_41, - 3, 130, :_reduce_42, - 3, 130, :_reduce_43, - 1, 130, :_reduce_44, - 2, 121, :_reduce_45, - 1, 121, :_reduce_46, - 1, 128, :_reduce_47, - 2, 116, :_reduce_48, - 2, 116, :_reduce_49, - 2, 116, :_reduce_50, - 2, 116, :_reduce_51, - 2, 116, :_reduce_52, - 2, 116, :_reduce_53, - 2, 116, :_reduce_54, - 2, 116, :_reduce_55, - 2, 116, :_reduce_56, - 2, 116, :_reduce_57, - 2, 116, :_reduce_58, - 2, 116, :_reduce_59, - 3, 116, :_reduce_60, - 3, 116, :_reduce_61, - 3, 116, :_reduce_62, - 3, 116, :_reduce_63, - 3, 116, :_reduce_64, - 3, 116, :_reduce_65, - 3, 116, :_reduce_66, - 3, 116, :_reduce_67, - 3, 116, :_reduce_68, - 3, 116, :_reduce_69, - 3, 116, :_reduce_70, - 3, 116, :_reduce_71, - 3, 116, :_reduce_72, - 3, 116, :_reduce_73, - 3, 116, :_reduce_74, - 3, 116, :_reduce_75, - 3, 116, :_reduce_76, - 3, 116, :_reduce_77, - 3, 116, :_reduce_78, - 3, 116, :_reduce_79, - 3, 116, :_reduce_80, - 3, 116, :_reduce_81, - 3, 116, :_reduce_82, - 3, 116, :_reduce_83, - 3, 116, :_reduce_84, - 3, 116, :_reduce_85, - 3, 116, :_reduce_86, - 3, 116, :_reduce_87, - 3, 116, :_reduce_88, - 3, 116, :_reduce_89, - 3, 116, :_reduce_90, - 3, 116, :_reduce_91, - 3, 116, :_reduce_92, - 3, 116, :_reduce_93, - 2, 127, :_reduce_94, - 5, 115, :_reduce_95, - 2, 115, :_reduce_96, - 1, 132, :_reduce_97, - 1, 132, :_reduce_98, - 1, 131, :_reduce_99, - 3, 131, :_reduce_100, - 1, 133, :_reduce_none, - 4, 133, :_reduce_102, - 4, 126, :_reduce_103, - 1, 113, :_reduce_104, - 1, 113, :_reduce_105, - 1, 113, :_reduce_106, - 1, 113, :_reduce_107, - 1, 113, :_reduce_108, - 1, 113, :_reduce_109, - 1, 113, :_reduce_110, - 2, 113, :_reduce_111, - 2, 113, :_reduce_112, - 2, 139, :_reduce_113, - 2, 139, :_reduce_114, - 2, 139, :_reduce_115, - 1, 139, :_reduce_116, - 1, 139, :_reduce_117, - 3, 141, :_reduce_118, - 3, 135, :_reduce_119, - 0, 143, :_reduce_120, - 1, 143, :_reduce_121, - 3, 143, :_reduce_122, - 3, 143, :_reduce_123, - 4, 143, :_reduce_124, - 3, 143, :_reduce_125, - 1, 114, :_reduce_126, - 2, 114, :_reduce_127, - 1, 114, :_reduce_128, - 3, 125, :_reduce_129, - 2, 140, :_reduce_130, - 2, 140, :_reduce_131, - 3, 145, :_reduce_132, - 4, 144, :_reduce_133, - 1, 138, :_reduce_134, - 2, 138, :_reduce_135, - 6, 137, :_reduce_136, - 7, 137, :_reduce_137, - 6, 142, :_reduce_138, - 7, 142, :_reduce_139, - 3, 134, :_reduce_140, - 0, 146, :_reduce_141, - 1, 146, :_reduce_142, - 2, 146, :_reduce_143, - 3, 146, :_reduce_144, - 3, 146, :_reduce_145, - 4, 146, :_reduce_146, - 4, 146, :_reduce_147, - 2, 146, :_reduce_148, - 1, 147, :_reduce_149, - 3, 147, :_reduce_150, - 3, 119, :_reduce_151, - 4, 119, :_reduce_152, - 5, 119, :_reduce_153, - 3, 148, :_reduce_154, - 2, 120, :_reduce_155, - 3, 136, :_reduce_156, - 3, 122, :_reduce_157, - 2, 122, :_reduce_158, - 3, 122, :_reduce_159, - 4, 123, :_reduce_160, - 4, 123, :_reduce_161, - 1, 149, :_reduce_162, - 3, 149, :_reduce_163, - 2, 150, :_reduce_164, - 2, 150, :_reduce_165, - 3, 150, :_reduce_166, - 3, 150, :_reduce_167, - 5, 124, :_reduce_168, - 7, 124, :_reduce_169, - 1, 151, :_reduce_170, - 2, 151, :_reduce_171, - 3, 152, :_reduce_172, - 4, 152, :_reduce_173, + 0, 107, :_reduce_1, + 1, 107, :_reduce_2, + 1, 107, :_reduce_3, + 2, 107, :_reduce_4, + 1, 109, :_reduce_5, + 3, 109, :_reduce_6, + 2, 109, :_reduce_7, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 3, 110, :_reduce_24, + 2, 110, :_reduce_25, + 1, 108, :_reduce_none, + 1, 108, :_reduce_none, + 1, 128, :_reduce_28, + 1, 128, :_reduce_29, + 1, 128, :_reduce_30, + 1, 128, :_reduce_31, + 1, 128, :_reduce_32, + 1, 128, :_reduce_33, + 1, 128, :_reduce_34, + 1, 128, :_reduce_35, + 1, 128, :_reduce_36, + 1, 128, :_reduce_37, + 1, 128, :_reduce_38, + 1, 128, :_reduce_39, + 3, 116, :_reduce_40, + 3, 129, :_reduce_41, + 3, 129, :_reduce_42, + 1, 129, :_reduce_43, + 2, 120, :_reduce_44, + 1, 120, :_reduce_45, + 1, 127, :_reduce_46, + 2, 115, :_reduce_47, + 2, 115, :_reduce_48, + 2, 115, :_reduce_49, + 2, 115, :_reduce_50, + 2, 115, :_reduce_51, + 2, 115, :_reduce_52, + 2, 115, :_reduce_53, + 2, 115, :_reduce_54, + 2, 115, :_reduce_55, + 2, 115, :_reduce_56, + 2, 115, :_reduce_57, + 2, 115, :_reduce_58, + 3, 115, :_reduce_59, + 3, 115, :_reduce_60, + 3, 115, :_reduce_61, + 3, 115, :_reduce_62, + 3, 115, :_reduce_63, + 3, 115, :_reduce_64, + 3, 115, :_reduce_65, + 3, 115, :_reduce_66, + 3, 115, :_reduce_67, + 3, 115, :_reduce_68, + 3, 115, :_reduce_69, + 3, 115, :_reduce_70, + 3, 115, :_reduce_71, + 3, 115, :_reduce_72, + 3, 115, :_reduce_73, + 3, 115, :_reduce_74, + 3, 115, :_reduce_75, + 3, 115, :_reduce_76, + 3, 115, :_reduce_77, + 3, 115, :_reduce_78, + 3, 115, :_reduce_79, + 3, 115, :_reduce_80, + 3, 115, :_reduce_81, + 3, 115, :_reduce_82, + 3, 115, :_reduce_83, + 3, 115, :_reduce_84, + 3, 115, :_reduce_85, + 3, 115, :_reduce_86, + 3, 115, :_reduce_87, + 3, 115, :_reduce_88, + 3, 115, :_reduce_89, + 3, 115, :_reduce_90, + 3, 115, :_reduce_91, + 3, 115, :_reduce_92, + 2, 126, :_reduce_93, + 5, 114, :_reduce_94, + 2, 114, :_reduce_95, + 1, 131, :_reduce_96, + 1, 131, :_reduce_97, + 1, 130, :_reduce_98, + 3, 130, :_reduce_99, + 1, 132, :_reduce_none, + 4, 132, :_reduce_101, + 4, 125, :_reduce_102, + 1, 112, :_reduce_103, + 1, 112, :_reduce_104, + 1, 112, :_reduce_105, + 1, 112, :_reduce_106, + 1, 112, :_reduce_107, + 1, 112, :_reduce_108, + 1, 112, :_reduce_109, + 2, 112, :_reduce_110, + 2, 112, :_reduce_111, + 2, 138, :_reduce_112, + 2, 138, :_reduce_113, + 2, 138, :_reduce_114, + 1, 138, :_reduce_115, + 1, 138, :_reduce_116, + 3, 140, :_reduce_117, + 3, 134, :_reduce_118, + 0, 142, :_reduce_119, + 1, 142, :_reduce_120, + 3, 142, :_reduce_121, + 3, 142, :_reduce_122, + 4, 142, :_reduce_123, + 3, 142, :_reduce_124, + 1, 113, :_reduce_125, + 2, 113, :_reduce_126, + 1, 113, :_reduce_127, + 3, 124, :_reduce_128, + 2, 139, :_reduce_129, + 2, 139, :_reduce_130, + 3, 144, :_reduce_131, + 4, 143, :_reduce_132, + 1, 137, :_reduce_133, + 2, 137, :_reduce_134, + 6, 136, :_reduce_135, + 7, 136, :_reduce_136, + 6, 141, :_reduce_137, + 7, 141, :_reduce_138, + 3, 133, :_reduce_139, + 0, 145, :_reduce_140, + 1, 145, :_reduce_141, + 2, 145, :_reduce_142, + 3, 145, :_reduce_143, + 3, 145, :_reduce_144, + 4, 145, :_reduce_145, + 4, 145, :_reduce_146, + 2, 145, :_reduce_147, + 1, 146, :_reduce_148, + 3, 146, :_reduce_149, + 3, 118, :_reduce_150, + 4, 118, :_reduce_151, + 5, 118, :_reduce_152, + 3, 147, :_reduce_153, + 2, 119, :_reduce_154, + 3, 135, :_reduce_155, + 3, 121, :_reduce_156, + 2, 121, :_reduce_157, + 3, 121, :_reduce_158, + 4, 122, :_reduce_159, + 4, 122, :_reduce_160, + 1, 148, :_reduce_161, + 3, 148, :_reduce_162, + 2, 149, :_reduce_163, + 2, 149, :_reduce_164, + 3, 149, :_reduce_165, + 3, 149, :_reduce_166, + 5, 123, :_reduce_167, + 7, 123, :_reduce_168, + 1, 150, :_reduce_169, + 2, 150, :_reduce_170, + 3, 151, :_reduce_171, + 4, 151, :_reduce_172, + 3, 151, :_reduce_173, 3, 152, :_reduce_174, - 3, 153, :_reduce_175, - 2, 154, :_reduce_176, - 1, 155, :_reduce_177, - 2, 155, :_reduce_178, - 0, 156, :_reduce_179, - 2, 156, :_reduce_180, - 1, 157, :_reduce_181, - 2, 157, :_reduce_182, - 2, 118, :_reduce_183, - 3, 118, :_reduce_184, - 3, 118, :_reduce_185 ] + 2, 153, :_reduce_175, + 1, 154, :_reduce_176, + 2, 154, :_reduce_177, + 0, 155, :_reduce_178, + 2, 155, :_reduce_179, + 1, 156, :_reduce_180, + 2, 156, :_reduce_181, + 2, 117, :_reduce_182, + 3, 117, :_reduce_183, + 3, 117, :_reduce_184 ] -racc_reduce_n = 186 +racc_reduce_n = 185 -racc_shift_n = 324 +racc_shift_n = 323 racc_token_table = { false => 0, @@ -1166,68 +1158,67 @@ racc_token_table = { :TYPEOF => 44, :SUPER => 45, :EXTENDS => 46, - :ARGUMENTS => 47, - :NEWLINE => 48, - :COMMENT => 49, - :JS => 50, - :INDENT => 51, - :OUTDENT => 52, - "?" => 53, - :UMINUS => 54, - :UPLUS => 55, - :NOT => 56, - "!" => 57, - "!!" => 58, - "~" => 59, - "++" => 60, - "--" => 61, - "*" => 62, - "/" => 63, - "%" => 64, - "+" => 65, - "-" => 66, - "<<" => 67, - ">>" => 68, - ">>>" => 69, - "&" => 70, - "|" => 71, - "^" => 72, - "<=" => 73, - "<" => 74, - ">" => 75, - ">=" => 76, - "==" => 77, - "!=" => 78, - :IS => 79, - :ISNT => 80, - "&&" => 81, - "||" => 82, - :AND => 83, - :OR => 84, - "-=" => 85, - "+=" => 86, - "/=" => 87, - "*=" => 88, - "%=" => 89, - "." => 90, - "||=" => 91, - "&&=" => 92, - "?=" => 93, - :ASSIGN => 94, - "->" => 95, - "=>" => 96, - "\n" => 97, - ";" => 98, - "," => 99, - "{" => 100, - "}" => 101, - "@" => 102, - "[" => 103, - "]" => 104, - "(" => 105, - ")" => 106 } + :NEWLINE => 47, + :COMMENT => 48, + :JS => 49, + :INDENT => 50, + :OUTDENT => 51, + "?" => 52, + :UMINUS => 53, + :UPLUS => 54, + :NOT => 55, + "!" => 56, + "!!" => 57, + "~" => 58, + "++" => 59, + "--" => 60, + "*" => 61, + "/" => 62, + "%" => 63, + "+" => 64, + "-" => 65, + "<<" => 66, + ">>" => 67, + ">>>" => 68, + "&" => 69, + "|" => 70, + "^" => 71, + "<=" => 72, + "<" => 73, + ">" => 74, + ">=" => 75, + "==" => 76, + "!=" => 77, + :IS => 78, + :ISNT => 79, + "&&" => 80, + "||" => 81, + :AND => 82, + :OR => 83, + "-=" => 84, + "+=" => 85, + "/=" => 86, + "*=" => 87, + "%=" => 88, + "." => 89, + "||=" => 90, + "&&=" => 91, + "?=" => 92, + :ASSIGN => 93, + "->" => 94, + "=>" => 95, + "\n" => 96, + ";" => 97, + "," => 98, + "{" => 99, + "}" => 100, + "@" => 101, + "[" => 102, + "]" => 103, + "(" => 104, + ")" => 105 } -racc_nt_base = 107 +racc_nt_base = 106 racc_use_result_var = true @@ -1295,7 +1286,6 @@ Racc_token_to_s_table = [ "TYPEOF", "SUPER", "EXTENDS", - "ARGUMENTS", "NEWLINE", "COMMENT", "JS", @@ -1413,49 +1403,49 @@ Racc_debug_parser = false # reduce 0 omitted -module_eval(<<'.,.,', 'grammar.y', 49) +module_eval(<<'.,.,', 'grammar.y', 48) def _reduce_1(val, _values, result) result = Expressions.new result end .,., -module_eval(<<'.,.,', 'grammar.y', 50) +module_eval(<<'.,.,', 'grammar.y', 49) def _reduce_2(val, _values, result) result = Expressions.new result end .,., -module_eval(<<'.,.,', 'grammar.y', 51) +module_eval(<<'.,.,', 'grammar.y', 50) def _reduce_3(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 52) +module_eval(<<'.,.,', 'grammar.y', 51) def _reduce_4(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 57) +module_eval(<<'.,.,', 'grammar.y', 56) def _reduce_5(val, _values, result) result = Expressions.wrap(val) result end .,., -module_eval(<<'.,.,', 'grammar.y', 58) +module_eval(<<'.,.,', 'grammar.y', 57) def _reduce_6(val, _values, result) result = val[0] << val[2] result end .,., -module_eval(<<'.,.,', 'grammar.y', 59) +module_eval(<<'.,.,', 'grammar.y', 58) def _reduce_7(val, _values, result) result = val[0] result @@ -1494,14 +1484,14 @@ module_eval(<<'.,.,', 'grammar.y', 59) # reduce 23 omitted -module_eval(<<'.,.,', 'grammar.y', 86) +module_eval(<<'.,.,', 'grammar.y', 85) def _reduce_24(val, _values, result) result = val[1] result end .,., -module_eval(<<'.,.,', 'grammar.y', 87) +module_eval(<<'.,.,', 'grammar.y', 86) def _reduce_25(val, _values, result) result = Expressions.new result @@ -1512,217 +1502,217 @@ module_eval(<<'.,.,', 'grammar.y', 87) # reduce 27 omitted -module_eval(<<'.,.,', 'grammar.y', 98) +module_eval(<<'.,.,', 'grammar.y', 97) def _reduce_28(val, _values, result) result = LiteralNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 99) +module_eval(<<'.,.,', 'grammar.y', 98) def _reduce_29(val, _values, result) result = LiteralNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 100) +module_eval(<<'.,.,', 'grammar.y', 99) def _reduce_30(val, _values, result) result = LiteralNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 101) +module_eval(<<'.,.,', 'grammar.y', 100) def _reduce_31(val, _values, result) result = LiteralNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 102) +module_eval(<<'.,.,', 'grammar.y', 101) def _reduce_32(val, _values, result) result = LiteralNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 103) +module_eval(<<'.,.,', 'grammar.y', 102) def _reduce_33(val, _values, result) result = LiteralNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 104) +module_eval(<<'.,.,', 'grammar.y', 103) def _reduce_34(val, _values, result) - result = LiteralNode.new(val[0]) + result = LiteralNode.new(Value.new(true)) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 104) + def _reduce_35(val, _values, result) + result = LiteralNode.new(Value.new(false)) result end .,., module_eval(<<'.,.,', 'grammar.y', 105) - def _reduce_35(val, _values, result) + def _reduce_36(val, _values, result) result = LiteralNode.new(Value.new(true)) result end .,., module_eval(<<'.,.,', 'grammar.y', 106) - def _reduce_36(val, _values, result) + def _reduce_37(val, _values, result) result = LiteralNode.new(Value.new(false)) result end .,., module_eval(<<'.,.,', 'grammar.y', 107) - def _reduce_37(val, _values, result) + def _reduce_38(val, _values, result) result = LiteralNode.new(Value.new(true)) result end .,., module_eval(<<'.,.,', 'grammar.y', 108) - def _reduce_38(val, _values, result) - result = LiteralNode.new(Value.new(false)) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 109) def _reduce_39(val, _values, result) - result = LiteralNode.new(Value.new(true)) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 110) - def _reduce_40(val, _values, result) result = LiteralNode.new(Value.new(false)) result end .,., -module_eval(<<'.,.,', 'grammar.y', 115) - def _reduce_41(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 113) + def _reduce_40(val, _values, result) result = AssignNode.new(val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 120) - def _reduce_42(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 118) + def _reduce_41(val, _values, result) result = AssignNode.new(ValueNode.new(val[0]), val[2], :object) result end .,., -module_eval(<<'.,.,', 'grammar.y', 121) - def _reduce_43(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 119) + def _reduce_42(val, _values, result) result = AssignNode.new(ValueNode.new(LiteralNode.new(val[0])), val[2], :object) result end .,., -module_eval(<<'.,.,', 'grammar.y', 122) - def _reduce_44(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 120) + def _reduce_43(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 127) - def _reduce_45(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 125) + def _reduce_44(val, _values, result) result = ReturnNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 128) - def _reduce_46(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 126) + def _reduce_45(val, _values, result) result = ReturnNode.new(ValueNode.new(Value.new('null'))) result end .,., -module_eval(<<'.,.,', 'grammar.y', 133) - def _reduce_47(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 131) + def _reduce_46(val, _values, result) result = CommentNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 140) +module_eval(<<'.,.,', 'grammar.y', 138) + def _reduce_47(val, _values, result) + result = OpNode.new(val[0], val[1]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 139) def _reduce_48(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 141) +module_eval(<<'.,.,', 'grammar.y', 140) def _reduce_49(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 142) +module_eval(<<'.,.,', 'grammar.y', 141) def _reduce_50(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 143) +module_eval(<<'.,.,', 'grammar.y', 142) def _reduce_51(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 144) +module_eval(<<'.,.,', 'grammar.y', 143) def _reduce_52(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 145) +module_eval(<<'.,.,', 'grammar.y', 144) def _reduce_53(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 146) +module_eval(<<'.,.,', 'grammar.y', 145) def _reduce_54(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 147) +module_eval(<<'.,.,', 'grammar.y', 146) def _reduce_55(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 148) +module_eval(<<'.,.,', 'grammar.y', 147) def _reduce_56(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 149) +module_eval(<<'.,.,', 'grammar.y', 148) def _reduce_57(val, _values, result) - result = OpNode.new(val[0], val[1]) + result = OpNode.new(val[1], val[0], nil, true) result end .,., -module_eval(<<'.,.,', 'grammar.y', 150) +module_eval(<<'.,.,', 'grammar.y', 149) def _reduce_58(val, _values, result) result = OpNode.new(val[1], val[0], nil, true) result @@ -1731,19 +1721,19 @@ module_eval(<<'.,.,', 'grammar.y', 150) module_eval(<<'.,.,', 'grammar.y', 151) def _reduce_59(val, _values, result) - result = OpNode.new(val[1], val[0], nil, true) + result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 153) +module_eval(<<'.,.,', 'grammar.y', 152) def _reduce_60(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 154) +module_eval(<<'.,.,', 'grammar.y', 153) def _reduce_61(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result @@ -1757,7 +1747,7 @@ module_eval(<<'.,.,', 'grammar.y', 155) end .,., -module_eval(<<'.,.,', 'grammar.y', 157) +module_eval(<<'.,.,', 'grammar.y', 156) def _reduce_63(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result @@ -1771,14 +1761,14 @@ module_eval(<<'.,.,', 'grammar.y', 158) end .,., -module_eval(<<'.,.,', 'grammar.y', 160) +module_eval(<<'.,.,', 'grammar.y', 159) def _reduce_65(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 161) +module_eval(<<'.,.,', 'grammar.y', 160) def _reduce_66(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result @@ -1792,14 +1782,14 @@ module_eval(<<'.,.,', 'grammar.y', 162) end .,., -module_eval(<<'.,.,', 'grammar.y', 164) +module_eval(<<'.,.,', 'grammar.y', 163) def _reduce_68(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 165) +module_eval(<<'.,.,', 'grammar.y', 164) def _reduce_69(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result @@ -1813,21 +1803,21 @@ module_eval(<<'.,.,', 'grammar.y', 166) end .,., -module_eval(<<'.,.,', 'grammar.y', 168) +module_eval(<<'.,.,', 'grammar.y', 167) def _reduce_71(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 169) +module_eval(<<'.,.,', 'grammar.y', 168) def _reduce_72(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 170) +module_eval(<<'.,.,', 'grammar.y', 169) def _reduce_73(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result @@ -1841,21 +1831,21 @@ module_eval(<<'.,.,', 'grammar.y', 171) end .,., -module_eval(<<'.,.,', 'grammar.y', 173) +module_eval(<<'.,.,', 'grammar.y', 172) def _reduce_75(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 174) +module_eval(<<'.,.,', 'grammar.y', 173) def _reduce_76(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 175) +module_eval(<<'.,.,', 'grammar.y', 174) def _reduce_77(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result @@ -1869,28 +1859,28 @@ module_eval(<<'.,.,', 'grammar.y', 176) end .,., -module_eval(<<'.,.,', 'grammar.y', 178) +module_eval(<<'.,.,', 'grammar.y', 177) def _reduce_79(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 179) +module_eval(<<'.,.,', 'grammar.y', 178) def _reduce_80(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 180) +module_eval(<<'.,.,', 'grammar.y', 179) def _reduce_81(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 181) +module_eval(<<'.,.,', 'grammar.y', 180) def _reduce_82(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result @@ -1904,49 +1894,49 @@ module_eval(<<'.,.,', 'grammar.y', 182) end .,., -module_eval(<<'.,.,', 'grammar.y', 184) +module_eval(<<'.,.,', 'grammar.y', 183) def _reduce_84(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 185) +module_eval(<<'.,.,', 'grammar.y', 184) def _reduce_85(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 186) +module_eval(<<'.,.,', 'grammar.y', 185) def _reduce_86(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 187) +module_eval(<<'.,.,', 'grammar.y', 186) def _reduce_87(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 188) +module_eval(<<'.,.,', 'grammar.y', 187) def _reduce_88(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 189) +module_eval(<<'.,.,', 'grammar.y', 188) def _reduce_89(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 190) +module_eval(<<'.,.,', 'grammar.y', 189) def _reduce_90(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result @@ -1960,212 +1950,212 @@ module_eval(<<'.,.,', 'grammar.y', 191) end .,., -module_eval(<<'.,.,', 'grammar.y', 193) +module_eval(<<'.,.,', 'grammar.y', 192) def _reduce_92(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 194) +module_eval(<<'.,.,', 'grammar.y', 197) def _reduce_93(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 199) - def _reduce_94(val, _values, result) result = ExistenceNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 205) - def _reduce_95(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 203) + def _reduce_94(val, _values, result) result = CodeNode.new(val[1], val[4], val[3]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 206) - def _reduce_96(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 204) + def _reduce_95(val, _values, result) result = CodeNode.new([], val[1], val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 211) - def _reduce_97(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 209) + def _reduce_96(val, _values, result) result = :func result end .,., -module_eval(<<'.,.,', 'grammar.y', 212) - def _reduce_98(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 210) + def _reduce_97(val, _values, result) result = :boundfunc result end .,., -module_eval(<<'.,.,', 'grammar.y', 217) - def _reduce_99(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 215) + def _reduce_98(val, _values, result) result = val result end .,., -module_eval(<<'.,.,', 'grammar.y', 218) - def _reduce_100(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 216) + def _reduce_99(val, _values, result) result = val[0] << val[2] result end .,., -# reduce 101 omitted +# reduce 100 omitted -module_eval(<<'.,.,', 'grammar.y', 224) +module_eval(<<'.,.,', 'grammar.y', 222) + def _reduce_101(val, _values, result) + result = SplatNode.new(val[0]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 227) def _reduce_102(val, _values, result) result = SplatNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 229) +module_eval(<<'.,.,', 'grammar.y', 232) def _reduce_103(val, _values, result) - result = SplatNode.new(val[0]) + result = ValueNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 234) +module_eval(<<'.,.,', 'grammar.y', 233) def _reduce_104(val, _values, result) result = ValueNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 235) +module_eval(<<'.,.,', 'grammar.y', 234) def _reduce_105(val, _values, result) result = ValueNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 236) +module_eval(<<'.,.,', 'grammar.y', 235) def _reduce_106(val, _values, result) result = ValueNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 237) +module_eval(<<'.,.,', 'grammar.y', 236) def _reduce_107(val, _values, result) result = ValueNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 238) +module_eval(<<'.,.,', 'grammar.y', 237) def _reduce_108(val, _values, result) result = ValueNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 239) +module_eval(<<'.,.,', 'grammar.y', 238) def _reduce_109(val, _values, result) result = ValueNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 240) +module_eval(<<'.,.,', 'grammar.y', 239) def _reduce_110(val, _values, result) - result = ValueNode.new(val[0]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 241) - def _reduce_111(val, _values, result) result = val[0] << val[1] result end .,., -module_eval(<<'.,.,', 'grammar.y', 242) - def _reduce_112(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 240) + def _reduce_111(val, _values, result) result = ValueNode.new(val[0], [val[1]]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 247) - def _reduce_113(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 245) + def _reduce_112(val, _values, result) result = AccessorNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 248) - def _reduce_114(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 246) + def _reduce_113(val, _values, result) result = AccessorNode.new(val[1], :prototype) result end .,., -module_eval(<<'.,.,', 'grammar.y', 249) - def _reduce_115(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 247) + def _reduce_114(val, _values, result) result = AccessorNode.new(val[1], :soak) result end .,., -module_eval(<<'.,.,', 'grammar.y', 250) - def _reduce_116(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 248) + def _reduce_115(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 251) - def _reduce_117(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 249) + def _reduce_116(val, _values, result) result = SliceNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 256) - def _reduce_118(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 254) + def _reduce_117(val, _values, result) result = IndexNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 261) - def _reduce_119(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 259) + def _reduce_118(val, _values, result) result = ObjectNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 266) - def _reduce_120(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 264) + def _reduce_119(val, _values, result) result = [] result end .,., -module_eval(<<'.,.,', 'grammar.y', 267) - def _reduce_121(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 265) + def _reduce_120(val, _values, result) result = val result end .,., -module_eval(<<'.,.,', 'grammar.y', 268) +module_eval(<<'.,.,', 'grammar.y', 266) + def _reduce_121(val, _values, result) + result = val[0] << val[2] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 267) def _reduce_122(val, _values, result) result = val[0] << val[2] result @@ -2174,347 +2164,347 @@ module_eval(<<'.,.,', 'grammar.y', 268) module_eval(<<'.,.,', 'grammar.y', 269) def _reduce_123(val, _values, result) - result = val[0] << val[2] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 271) - def _reduce_124(val, _values, result) result = val[0] << val[3] result end .,., -module_eval(<<'.,.,', 'grammar.y', 272) - def _reduce_125(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 270) + def _reduce_124(val, _values, result) result = val[1] result end .,., -module_eval(<<'.,.,', 'grammar.y', 277) - def _reduce_126(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 275) + def _reduce_125(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 278) - def _reduce_127(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 276) + def _reduce_126(val, _values, result) result = val[1].new_instance result end .,., -module_eval(<<'.,.,', 'grammar.y', 279) - def _reduce_128(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 277) + def _reduce_127(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 284) - def _reduce_129(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 282) + def _reduce_128(val, _values, result) result = ExtendsNode.new(val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 289) +module_eval(<<'.,.,', 'grammar.y', 287) + def _reduce_129(val, _values, result) + result = CallNode.new(val[0], val[1]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 288) def _reduce_130(val, _values, result) result = CallNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 290) +module_eval(<<'.,.,', 'grammar.y', 293) def _reduce_131(val, _values, result) - result = CallNode.new(val[0], val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 295) - def _reduce_132(val, _values, result) result = val[1] result end .,., -module_eval(<<'.,.,', 'grammar.y', 300) - def _reduce_133(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 298) + def _reduce_132(val, _values, result) result = CallNode.new(Value.new('super'), val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 305) - def _reduce_134(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 303) + def _reduce_133(val, _values, result) result = ThisNode.new result end .,., -module_eval(<<'.,.,', 'grammar.y', 306) - def _reduce_135(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 304) + def _reduce_134(val, _values, result) result = ThisNode.new(val[1]) result end .,., +module_eval(<<'.,.,', 'grammar.y', 310) + def _reduce_135(val, _values, result) + result = RangeNode.new(val[1], val[4]) + result + end +.,., + module_eval(<<'.,.,', 'grammar.y', 312) def _reduce_136(val, _values, result) - result = RangeNode.new(val[1], val[4]) + result = RangeNode.new(val[1], val[5], true) result end .,., -module_eval(<<'.,.,', 'grammar.y', 314) +module_eval(<<'.,.,', 'grammar.y', 318) def _reduce_137(val, _values, result) - result = RangeNode.new(val[1], val[5], true) + result = RangeNode.new(val[1], val[4]) result end .,., module_eval(<<'.,.,', 'grammar.y', 320) def _reduce_138(val, _values, result) - result = RangeNode.new(val[1], val[4]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 322) - def _reduce_139(val, _values, result) result = RangeNode.new(val[1], val[5], true) result end .,., -module_eval(<<'.,.,', 'grammar.y', 327) - def _reduce_140(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 325) + def _reduce_139(val, _values, result) result = ArrayNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 332) - def _reduce_141(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 330) + def _reduce_140(val, _values, result) result = [] result end .,., -module_eval(<<'.,.,', 'grammar.y', 333) - def _reduce_142(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 331) + def _reduce_141(val, _values, result) result = val result end .,., -module_eval(<<'.,.,', 'grammar.y', 334) - def _reduce_143(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 332) + def _reduce_142(val, _values, result) result = [val[1]] result end .,., -module_eval(<<'.,.,', 'grammar.y', 335) +module_eval(<<'.,.,', 'grammar.y', 333) + def _reduce_143(val, _values, result) + result = val[0] << val[2] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 334) def _reduce_144(val, _values, result) result = val[0] << val[2] result end .,., -module_eval(<<'.,.,', 'grammar.y', 336) +module_eval(<<'.,.,', 'grammar.y', 335) def _reduce_145(val, _values, result) - result = val[0] << val[2] + result = val[0] << val[3] result end .,., -module_eval(<<'.,.,', 'grammar.y', 337) +module_eval(<<'.,.,', 'grammar.y', 336) def _reduce_146(val, _values, result) result = val[0] << val[3] result end .,., -module_eval(<<'.,.,', 'grammar.y', 338) +module_eval(<<'.,.,', 'grammar.y', 337) def _reduce_147(val, _values, result) - result = val[0] << val[3] + result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 339) +module_eval(<<'.,.,', 'grammar.y', 342) def _reduce_148(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 344) +module_eval(<<'.,.,', 'grammar.y', 343) def _reduce_149(val, _values, result) - result = val[0] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 345) - def _reduce_150(val, _values, result) result = ([val[0]] << val[2]).flatten result end .,., -module_eval(<<'.,.,', 'grammar.y', 350) - def _reduce_151(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 348) + def _reduce_150(val, _values, result) result = TryNode.new(val[1], val[2][0], val[2][1]) result end .,., +module_eval(<<'.,.,', 'grammar.y', 349) + def _reduce_151(val, _values, result) + result = TryNode.new(val[1], nil, nil, val[3]) + result + end +.,., + module_eval(<<'.,.,', 'grammar.y', 351) def _reduce_152(val, _values, result) - result = TryNode.new(val[1], nil, nil, val[3]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 353) - def _reduce_153(val, _values, result) result = TryNode.new(val[1], val[2][0], val[2][1], val[4]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 358) - def _reduce_154(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 356) + def _reduce_153(val, _values, result) result = [val[1], val[2]] result end .,., -module_eval(<<'.,.,', 'grammar.y', 363) - def _reduce_155(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 361) + def _reduce_154(val, _values, result) result = ThrowNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 368) - def _reduce_156(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 366) + def _reduce_155(val, _values, result) result = ParentheticalNode.new(val[1], val[0].line) result end .,., -module_eval(<<'.,.,', 'grammar.y', 373) - def _reduce_157(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 371) + def _reduce_156(val, _values, result) result = WhileNode.new(val[1], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 374) - def _reduce_158(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 372) + def _reduce_157(val, _values, result) result = WhileNode.new(val[1], nil) result end .,., -module_eval(<<'.,.,', 'grammar.y', 375) - def _reduce_159(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 373) + def _reduce_158(val, _values, result) result = WhileNode.new(val[2], Expressions.wrap(val[0])) result end .,., -module_eval(<<'.,.,', 'grammar.y', 382) - def _reduce_160(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 380) + def _reduce_159(val, _values, result) result = ForNode.new(val[0], val[3], val[2][0], val[2][1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 383) - def _reduce_161(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 381) + def _reduce_160(val, _values, result) result = ForNode.new(val[3], val[2], val[1][0], val[1][1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 388) - def _reduce_162(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 386) + def _reduce_161(val, _values, result) result = val result end .,., -module_eval(<<'.,.,', 'grammar.y', 389) - def _reduce_163(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 387) + def _reduce_162(val, _values, result) result = [val[0], val[2]] result end .,., -module_eval(<<'.,.,', 'grammar.y', 394) - def _reduce_164(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 392) + def _reduce_163(val, _values, result) result = {:source => val[1]} result end .,., +module_eval(<<'.,.,', 'grammar.y', 393) + def _reduce_164(val, _values, result) + result = {:source => val[1], :object => true} + result + end +.,., + module_eval(<<'.,.,', 'grammar.y', 395) def _reduce_165(val, _values, result) - result = {:source => val[1], :object => true} + result = val[0].merge(:filter => val[2]) result end .,., module_eval(<<'.,.,', 'grammar.y', 397) def _reduce_166(val, _values, result) - result = val[0].merge(:filter => val[2]) + result = val[0].merge(:step => val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 399) +module_eval(<<'.,.,', 'grammar.y', 403) def _reduce_167(val, _values, result) - result = val[0].merge(:step => val[2]) + result = val[3].rewrite_condition(val[1]) result end .,., module_eval(<<'.,.,', 'grammar.y', 405) def _reduce_168(val, _values, result) - result = val[3].rewrite_condition(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 407) - def _reduce_169(val, _values, result) result = val[3].rewrite_condition(val[1]).add_else(val[5]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 412) - def _reduce_170(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 410) + def _reduce_169(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 413) - def _reduce_171(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 411) + def _reduce_170(val, _values, result) result = val[0] << val[1] result end .,., +module_eval(<<'.,.,', 'grammar.y', 416) + def _reduce_171(val, _values, result) + result = IfNode.new(val[1], val[2], nil, {:statement => true}) + result + end +.,., + module_eval(<<'.,.,', 'grammar.y', 418) def _reduce_172(val, _values, result) result = IfNode.new(val[1], val[2], nil, {:statement => true}) @@ -2522,92 +2512,85 @@ module_eval(<<'.,.,', 'grammar.y', 418) end .,., -module_eval(<<'.,.,', 'grammar.y', 420) +module_eval(<<'.,.,', 'grammar.y', 419) def _reduce_173(val, _values, result) - result = IfNode.new(val[1], val[2], nil, {:statement => true}) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 421) - def _reduce_174(val, _values, result) result = val[2].add_comment(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 426) - def _reduce_175(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 424) + def _reduce_174(val, _values, result) result = IfNode.new(val[1], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 431) - def _reduce_176(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 429) + def _reduce_175(val, _values, result) result = val[1].force_statement result end .,., -module_eval(<<'.,.,', 'grammar.y', 436) - def _reduce_177(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 434) + def _reduce_176(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 437) - def _reduce_178(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 435) + def _reduce_177(val, _values, result) result = val[0].add_else(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 442) - def _reduce_179(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 440) + def _reduce_178(val, _values, result) result = nil result end .,., -module_eval(<<'.,.,', 'grammar.y', 443) - def _reduce_180(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 441) + def _reduce_179(val, _values, result) result = val[1] result end .,., -module_eval(<<'.,.,', 'grammar.y', 448) - def _reduce_181(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 446) + def _reduce_180(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 449) +module_eval(<<'.,.,', 'grammar.y', 447) + def _reduce_181(val, _values, result) + result = val[0].add_else(val[1]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 452) def _reduce_182(val, _values, result) result = val[0].add_else(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 454) +module_eval(<<'.,.,', 'grammar.y', 453) def _reduce_183(val, _values, result) - result = val[0].add_else(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 455) - def _reduce_184(val, _values, result) result = IfNode.new(val[2], Expressions.wrap(val[0]), nil, {:statement => true}) result end .,., -module_eval(<<'.,.,', 'grammar.y', 456) - def _reduce_185(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 454) + def _reduce_184(val, _values, result) result = IfNode.new(val[2], Expressions.wrap(val[0]), nil, {:statement => true, :invert => true}) result end diff --git a/lib/coffee_script/rewriter.rb b/lib/coffee_script/rewriter.rb index 287d11c2..d3e30347 100644 --- a/lib/coffee_script/rewriter.rb +++ b/lib/coffee_script/rewriter.rb @@ -22,9 +22,9 @@ module CoffeeScript IMPLICIT_FUNC = [:IDENTIFIER, :SUPER, ')', :CALL_END, ']', :INDEX_END] IMPLICIT_END = [:IF, :UNLESS, :FOR, :WHILE, "\n", :OUTDENT] IMPLICIT_CALL = [:IDENTIFIER, :NUMBER, :STRING, :JS, :REGEX, :NEW, :PARAM_START, - :TRY, :DELETE, :TYPEOF, :SWITCH, :ARGUMENTS, + :TRY, :DELETE, :TYPEOF, :SWITCH, :TRUE, :FALSE, :YES, :NO, :ON, :OFF, '!', '!!', :NOT, - '->', '=>', '[', '(', '{'] + '@', '->', '=>', '[', '(', '{'] # The inverse mappings of token pairs we're trying to fix up. INVERSES = BALANCED_PAIRS.inject({}) do |memo, pair| diff --git a/test/fixtures/execution/test_arguments.coffee b/test/fixtures/execution/test_arguments.coffee index 71a6c9c7..de23c445 100644 --- a/test/fixtures/execution/test_arguments.coffee +++ b/test/fixtures/execution/test_arguments.coffee @@ -30,3 +30,8 @@ func: -> arguments print func(100) is 25 + + +# Arguments can be accessed as a property. +this.arguments: 10 +print @arguments is 10