#
# DO NOT MODIFY!!!!
# This file is automatically generated by Racc 1.5.2
# from Racc grammar file "riml.y".
#

require 'racc/parser.rb'

  require File.expand_path("../lexer", __FILE__)
  require File.expand_path("../nodes", __FILE__)
  require File.expand_path("../errors", __FILE__)
  require File.expand_path("../ast_rewriter", __FILE__)
module Riml
  class Parser < Racc::Parser

module_eval(<<'...end riml.y/module_eval...', 'riml.y', 592)
  # This code will be put as-is in the parser class

  attr_accessor :ast_rewriter
  attr_writer :options

  # The Parser and AST_Rewriter share this same hash of options
  def options
    @options ||= {}
  end

  def self.ast_cache
    @ast_cache
  end
  @ast_cache = {}

  # parses tokens or code into output nodes
  def parse(object, ast_rewriter = Riml::AST_Rewriter.new, filename = nil, included = false)
    if (ast = self.class.ast_cache[filename])
    else
      if tokens?(object)
        @tokens = object
      elsif code?(object)
        @lexer = Riml::Lexer.new(object, filename, true)
      end

      begin
        ast = do_parse
      rescue Racc::ParseError => e
        raise unless @lexer
        if (invalid_token = @lexer.prev_token_is_keyword?)
          warning = "#{invalid_token.inspect} is a keyword, and cannot " \
            "be used as a variable name"
        end
        error_msg = e.message
        error_msg << "\nWARNING: #{warning}" if warning
        error = Riml::ParseError.new(error_msg, @lexer.filename, @lexer.lineno)
        raise error
      end
      self.class.ast_cache[filename] = ast if filename
    end
    @ast_rewriter ||= ast_rewriter
    return ast unless @ast_rewriter
    @ast_rewriter.ast = ast.dup
    @ast_rewriter.options ||= options
    @ast_rewriter.rewrite(filename, included)
    @ast_rewriter.ast
  end

  # get the next token from either the list of tokens provided, or
  # the lexer getting the next token
  def next_token
    return @tokens.shift unless @lexer
    token = @lexer.next_token
    if token && @lexer.parser_info
      @current_parser_info = token.pop
    end
    token
  end

  private

  def tokens?(object)
    Array === object
  end

  def code?(object)
    String === object
  end

  def make_node(racc_val)
    node = yield racc_val
    node.parser_info = @current_parser_info
    node
  end
...end riml.y/module_eval...
##### State transition tables begin ###

racc_action_table = [
   135,   265,    60,   139,   136,   211,   417,   418,    48,    47,
   411,   211,   448,   274,   146,    56,   199,    89,   272,    60,
   273,   270,   409,   271,    37,    46,    48,    47,    37,    49,
    44,    45,   392,   412,    37,   449,   384,    60,    50,    70,
   316,    61,   386,   385,   317,    62,    63,   129,   130,   132,
   127,   128,   131,   115,   116,   117,   121,   122,   123,   118,
   119,   120,   124,   125,   126,   102,   104,   103,   109,   111,
   110,   112,   114,   113,   106,   108,   107,   133,   134,   101,
   100,   137,   171,    80,    38,   173,    37,    81,    38,    82,
    85,    83,    84,    87,    38,   105,    86,    37,    75,    76,
   153,   152,    57,    56,    88,    89,    77,    37,    90,    58,
    59,    78,    37,    46,    48,    47,    91,    49,    44,    45,
    64,    72,    73,  -116,   161,    60,    50,    70,    79,    61,
   272,    37,    92,    62,    63,   271,    48,    47,  -178,  -178,
  -178,  -178,   211,   147,   211,   211,    38,    60,   -43,   -43,
   153,   152,   329,   409,    99,   409,   409,    38,   331,   153,
   152,   -42,   -42,   161,    60,    50,    70,    38,   139,   313,
    29,   313,    38,    52,    80,    54,   164,   277,    81,   277,
    82,    85,    83,    84,    87,   279,   279,    86,   149,    75,
    76,    38,   182,    57,    56,    88,    89,    77,   149,    90,
    58,    59,    78,    37,    46,    48,    47,    91,    49,    44,
    45,    64,    72,    73,  -116,   164,    60,    50,    70,    79,
    61,   164,    60,   164,    62,    63,  -204,   277,   149,   164,
   279,   164,  -203,   305,   149,   366,   141,   164,   164,   -44,
   -44,   129,   130,   132,   -85,   -85,   -85,   -85,   142,   -48,
   -48,  -116,   258,    60,    50,    70,   -99,   -98,    60,    50,
    70,    29,   149,    38,    52,    80,    54,   371,   149,    81,
    52,    82,    85,    83,    84,    87,   149,   139,    86,   164,
    75,    76,   164,   139,    57,    56,    88,    89,    77,   105,
    90,    58,    59,    78,    37,    46,    48,    47,    91,    49,
    44,    45,    64,    72,    73,   -99,   -98,    60,    50,    70,
    79,    61,   -46,   -46,   370,    62,    63,  -175,  -175,  -175,
  -175,   139,   129,   130,   132,   -47,   -47,   -45,   -45,   433,
   195,   432,   129,   130,   132,   127,   128,   131,   115,   116,
   117,   121,   122,   123,   118,   119,   120,   124,   125,   126,
   164,   354,    29,   211,    38,    52,    80,    54,   153,   152,
    81,    60,    82,    85,    83,    84,    87,   149,    60,    86,
   105,    75,    76,   417,   437,    57,    56,    88,    89,    77,
   105,    90,    58,    59,    78,   215,    46,    48,    47,    91,
    49,    44,    45,    64,    72,    73,  -116,   216,    60,    50,
    70,    79,    61,   139,   218,   319,    62,    63,  -175,  -175,
  -175,  -175,  -178,  -178,  -178,  -178,   211,   147,    48,    47,
   211,    49,    48,    47,   262,    49,  -176,  -176,  -176,  -176,
   263,   320,   191,   192,   193,   194,   267,   129,   130,   132,
   127,   128,   131,    29,   269,   269,    52,   269,    54,   129,
   130,   132,   127,   128,   131,   115,   116,   117,   121,   122,
   123,   118,   119,   120,   124,   125,   126,   102,   104,   103,
   109,   111,   110,   112,   114,   113,   106,   108,   107,   133,
   134,   101,   100,   137,   323,   105,   258,   276,   294,   295,
   149,   139,   302,   305,   306,   105,   139,   105,   312,   326,
   327,   328,   333,   105,   105,   105,   342,   346,   357,   361,
   320,   258,   362,   363,    60,   129,   130,   132,   127,   128,
   131,   129,   130,   132,   127,   128,   131,   368,   129,   130,
   132,   127,   128,   131,   115,   116,   117,   121,   122,   123,
   118,   119,   120,   124,   125,   126,   102,   104,   103,   109,
   111,   110,   112,   114,   113,   106,   108,   107,   133,   134,
   101,   100,   137,   105,    80,   129,   130,   132,    81,   105,
    82,    85,    83,    84,    87,   374,   105,    86,   377,    75,
    76,   379,   380,    57,    56,    88,    89,    77,   393,    90,
    58,    59,    78,    37,    46,    48,    47,    91,    49,    44,
    45,    64,    72,    73,  -116,   302,    60,    50,    70,    79,
    61,   394,   397,   105,    62,    63,   269,   258,   129,   130,
   132,   127,   128,   131,   115,   116,   117,   121,   122,   123,
   118,   119,   120,   124,   125,   126,   102,   104,   103,   109,
   111,   110,   112,   114,   113,   106,   108,   107,   133,   134,
   101,    29,   400,    38,    52,    80,    54,   401,   402,    81,
  -245,    82,    85,    83,    84,    87,   105,   403,    86,   406,
    75,    76,    60,   211,    57,    56,    88,    89,    77,   211,
    90,    58,    59,    78,    37,    46,    48,    47,    91,    49,
    44,    45,    64,    72,    73,   427,    60,    60,    50,    70,
    79,    61,   430,   431,   434,    62,    63,   435,   438,   129,
   130,   132,   127,   128,   131,   115,   116,   117,   121,   122,
   123,   118,   119,   120,   124,   125,   126,   102,   104,   103,
   109,   111,   110,   112,   114,   113,   106,   108,   107,   133,
   134,   440,    29,   441,    38,    52,    80,    54,   442,   443,
    81,   211,    82,    85,    83,    84,    87,   105,   445,    86,
   446,    75,    76,   371,   371,    57,    56,    88,    89,    77,
   211,    90,    58,    59,    78,    37,    46,    48,    47,    91,
    49,    44,    45,    64,    72,    73,   458,   435,    60,    50,
    70,    79,    61,   462,   463,   371,    62,    63,   465,   468,
   129,   130,   132,   127,   128,   131,   115,   116,   117,   121,
   122,   123,   118,   119,   120,   124,   125,   126,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   129,
   130,   132,   nil,    29,   nil,    38,    52,    80,    54,   nil,
   nil,    81,   nil,    82,    85,    83,    84,    87,   105,   nil,
    86,   nil,    75,    76,   nil,   nil,    57,    56,    88,    89,
    77,   nil,    90,    58,    59,    78,    37,    46,    48,    47,
    91,    49,    44,    45,    64,    72,    73,   105,   nil,    60,
    50,    70,    79,    61,   nil,   nil,   nil,    62,    63,   nil,
   nil,   129,   130,   132,   127,   128,   131,   115,   116,   117,
   121,   122,   123,   118,   119,   120,   124,   125,   126,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   129,   130,   132,   nil,    29,   nil,    38,    52,    80,    54,
   nil,   nil,    81,   nil,    82,    85,    83,    84,    87,   105,
   nil,    86,   nil,    75,    76,   nil,   nil,    57,    56,    88,
    89,    77,   nil,    90,    58,    59,    78,    37,    46,    48,
    47,    91,    49,    44,    45,    64,    72,    73,   105,   nil,
    60,    50,    70,    79,    61,   nil,   nil,   nil,    62,    63,
   414,   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,    29,   nil,    38,    52,   nil,
    54,   nil,   129,   130,   132,   127,   128,   131,   115,   116,
   117,   121,   122,   123,   118,   119,   120,   124,   125,   126,
   102,   104,   103,   109,   111,   110,   112,   114,   113,   106,
   108,   107,   133,   134,   101,   100,   137,   419,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   146,    56,   nil,    89,
   105,   nil,    90,   nil,   nil,   nil,   nil,    46,    48,    47,
   nil,    49,    44,    45,    64,   nil,   nil,   nil,   nil,    60,
    50,    70,   nil,    61,   nil,   nil,   nil,    62,    63,   129,
   130,   132,   127,   128,   131,   115,   116,   117,   121,   122,
   123,   118,   119,   120,   124,   125,   126,   102,   104,   103,
   109,   111,   110,   112,   114,   113,   106,   108,   107,   133,
   134,   101,   100,   137,    29,   nil,   nil,    52,   nil,    54,
   nil,   261,   146,    56,   nil,    89,   nil,   105,    90,   nil,
   nil,   nil,   nil,    46,    48,    47,   nil,    49,    44,    45,
    64,   nil,   nil,   nil,   nil,    60,    50,    70,   nil,    61,
   nil,   nil,   nil,    62,    63,   180,   146,    56,   nil,    89,
   nil,   nil,    90,   nil,   nil,   nil,   nil,    46,    48,    47,
   nil,    49,    44,    45,    64,   nil,   nil,  -116,   nil,    60,
    50,    70,   nil,    61,   nil,   nil,   nil,    62,    63,   nil,
    29,   nil,   nil,    52,   nil,    54,   nil,   261,   nil,   129,
   130,   132,   127,   128,   131,   115,   116,   117,   121,   122,
   123,   118,   119,   120,   124,   125,   126,   nil,   180,   146,
    56,   nil,    89,   nil,   176,    90,   nil,    52,   nil,    54,
    46,    48,    47,   nil,    49,    44,    45,    64,   nil,   nil,
   nil,   nil,    60,    50,    70,   nil,    61,   105,   nil,   nil,
    62,    63,   180,   146,    56,   nil,    89,   nil,   nil,    90,
   nil,   nil,   nil,   nil,    46,    48,    47,   nil,    49,    44,
    45,    64,   nil,   nil,   nil,   nil,    60,    50,    70,   nil,
    61,   nil,   nil,   nil,    62,    63,   nil,    29,  -119,   nil,
    52,   nil,    54,   nil,   nil,   129,   130,   132,   127,   128,
   131,   115,   116,   117,   121,   122,   123,   118,   119,   120,
   124,   125,   126,   nil,   nil,   nil,   180,   146,    56,   nil,
    89,    29,  -119,    90,    52,   nil,    54,   nil,    46,    48,
    47,   nil,    49,    44,    45,    64,   nil,   nil,   nil,   nil,
    60,    50,    70,   105,    61,   nil,   nil,   nil,    62,    63,
   180,   146,    56,   nil,    89,   nil,   nil,    90,   nil,   nil,
   nil,   nil,    46,    48,    47,   nil,    49,    44,    45,    64,
   nil,   nil,   nil,   nil,    60,    50,    70,   nil,    61,   nil,
   nil,   nil,    62,    63,   nil,    29,  -119,   nil,    52,   nil,
    54,   nil,   nil,   129,   130,   132,   127,   128,   131,   115,
   116,   117,   121,   122,   123,   118,   119,   120,   124,   125,
   126,   nil,   nil,   nil,   180,   146,    56,   nil,    89,    29,
  -119,    90,    52,   nil,    54,   nil,    46,    48,    47,   nil,
    49,    44,    45,    64,   nil,   nil,   nil,   nil,    60,    50,
    70,   105,    61,   nil,   nil,   nil,    62,    63,   180,   146,
    56,   nil,    89,   nil,   nil,    90,   nil,   nil,   nil,   nil,
    46,    48,    47,   nil,    49,    44,    45,    64,   nil,   nil,
   nil,   nil,    60,    50,    70,   nil,    61,   nil,   nil,   nil,
    62,    63,   nil,    29,  -121,   nil,    52,   nil,    54,   nil,
   nil,   129,   130,   132,   127,   128,   131,   115,   116,   117,
   121,   122,   123,   118,   119,   120,   124,   125,   126,   nil,
   nil,   nil,   nil,   146,    56,   nil,    89,    29,  -119,    90,
    52,   nil,    54,   nil,    46,    48,    47,   nil,    49,    44,
    45,    64,   nil,   nil,   nil,   nil,    60,    50,    70,   105,
    61,   nil,   nil,   nil,    62,    63,   180,   146,    56,   nil,
    89,   nil,   nil,    90,   nil,   nil,   nil,   nil,    46,    48,
    47,   nil,    49,    44,    45,    64,   nil,   nil,   nil,   nil,
    60,    50,    70,   nil,    61,   nil,   nil,   nil,    62,    63,
   nil,    29,   nil,   nil,    52,   nil,    54,   350,   nil,   129,
   130,   132,   127,   128,   131,   115,   116,   117,   121,   122,
   123,   118,   119,   120,   124,   125,   126,   nil,   nil,   nil,
   180,   146,    56,   nil,    89,    29,  -119,    90,    52,   nil,
    54,   nil,    46,    48,    47,   nil,    49,    44,    45,    64,
   nil,   nil,   nil,   nil,    60,    50,    70,   105,    61,   nil,
   nil,   nil,    62,    63,   365,   146,    56,   nil,    89,   nil,
   nil,    90,   nil,   nil,   nil,   nil,    46,    48,    47,   nil,
    49,    44,    45,    64,   nil,   nil,   nil,   nil,    60,    50,
    70,   nil,    61,   nil,   nil,   nil,    62,    63,   nil,    29,
  -119,   nil,    52,   nil,    54,   nil,   129,   130,   132,   127,
   128,   131,   115,   116,   117,   121,   122,   123,   118,   119,
   120,   124,   125,   126,   nil,   nil,   nil,   180,   146,    56,
   nil,    89,   nil,    29,    90,   nil,    52,   nil,    54,    46,
    48,    47,   nil,    49,    44,    45,    64,   nil,   nil,   nil,
   nil,    60,    50,    70,   105,    61,   nil,   nil,   nil,    62,
    63,   180,   146,    56,   nil,    89,   nil,   nil,    90,   nil,
   nil,   nil,   nil,    46,    48,    47,   nil,    49,    44,    45,
    64,   nil,   nil,   nil,   nil,    60,    50,    70,   nil,    61,
   nil,   nil,   nil,    62,    63,   nil,    29,  -119,   nil,    52,
   nil,    54,   nil,   nil,   129,   130,   132,   127,   128,   131,
   115,   116,   117,   121,   122,   123,   118,   119,   120,   124,
   125,   126,   nil,   nil,   nil,   nil,   146,    56,   nil,    89,
    29,  -119,    90,    52,   nil,    54,   nil,    46,    48,    47,
   nil,    49,    44,    45,    64,   nil,   nil,   nil,   nil,    60,
    50,    70,   105,    61,   nil,   nil,   nil,    62,    63,   146,
    56,   nil,    89,   nil,   nil,    90,   nil,   nil,   nil,   nil,
    46,    48,    47,   nil,    49,    44,    45,    64,   nil,   nil,
  -116,   nil,    60,    50,    70,   nil,    61,   nil,   nil,   nil,
    62,    63,   146,    56,    29,    89,   nil,    52,    90,    54,
   nil,   nil,   nil,    46,    48,    47,   nil,    49,    44,    45,
    64,   nil,   nil,  -116,   nil,    60,    50,    70,   nil,    61,
   nil,   nil,   nil,    62,    63,   146,    56,    29,    89,   nil,
    52,    90,    54,   nil,   nil,   167,    46,    48,    47,   nil,
    49,    44,    45,    64,   nil,   nil,   nil,   nil,    60,    50,
    70,   nil,    61,   nil,   nil,   nil,    62,    63,   146,    56,
    29,    89,   nil,    52,    90,    54,   nil,   nil,   nil,    46,
    48,    47,   nil,    49,    44,    45,    64,   nil,   nil,   nil,
   nil,    60,    50,    70,   nil,    61,   nil,   nil,   nil,    62,
    63,   146,    56,   165,    89,   nil,    52,    90,    54,   nil,
   nil,   nil,    46,    48,    47,   nil,    49,    44,    45,    64,
   nil,   nil,   nil,   nil,    60,    50,    70,   nil,    61,   nil,
   nil,   nil,    62,    63,   146,    56,    29,    89,   nil,    52,
    90,    54,   nil,   nil,   nil,    46,    48,    47,   nil,    49,
    44,    45,    64,   nil,   nil,   nil,   nil,    60,    50,    70,
   nil,    61,   nil,   nil,   nil,    62,    63,   146,    56,    29,
    89,   nil,    52,    90,    54,   nil,   nil,   nil,    46,    48,
    47,   nil,    49,    44,    45,    64,   nil,   nil,  -116,   nil,
    60,    50,    70,   nil,    61,   nil,   nil,   nil,    62,    63,
   146,    56,    29,    89,   nil,    52,    90,    54,   nil,   nil,
   nil,    46,    48,    47,   nil,    49,    44,    45,    64,   nil,
   nil,   nil,   nil,    60,    50,    70,   nil,    61,   nil,   nil,
   nil,    62,    63,   146,    56,    29,    89,   nil,    52,    90,
    54,   nil,   nil,   nil,    46,    48,    47,   nil,    49,    44,
    45,    64,   nil,   nil,   nil,   nil,    60,    50,    70,   nil,
    61,   nil,   nil,   nil,    62,    63,   146,    56,    29,    89,
   nil,    52,    90,    54,   nil,   nil,   nil,    46,    48,    47,
   nil,    49,    44,    45,    64,   nil,   nil,   nil,   nil,    60,
    50,    70,   nil,    61,   nil,   nil,   nil,    62,    63,   146,
    56,    29,    89,   nil,    52,    90,    54,   nil,   nil,   nil,
    46,    48,    47,   nil,    49,    44,    45,    64,   nil,   nil,
   nil,   nil,    60,    50,    70,   nil,    61,   nil,   nil,   nil,
    62,    63,   146,    56,    29,    89,   nil,    52,    90,    54,
   nil,   nil,   nil,    46,    48,    47,   nil,    49,    44,    45,
    64,   nil,   nil,   nil,   nil,    60,    50,    70,   nil,    61,
   nil,   nil,   nil,    62,    63,   146,    56,    29,    89,   nil,
    52,    90,    54,   nil,   nil,   nil,    46,    48,    47,   nil,
    49,    44,    45,    64,   nil,   nil,   nil,   nil,    60,    50,
    70,   nil,    61,   nil,   nil,   nil,    62,    63,   146,    56,
    29,    89,   nil,    52,    90,    54,   nil,   nil,   nil,    46,
    48,    47,   nil,    49,    44,    45,    64,   nil,   nil,   nil,
   nil,    60,    50,    70,   nil,    61,   nil,   nil,   nil,    62,
    63,   146,    56,    29,    89,   nil,    52,    90,    54,   nil,
   nil,   nil,    46,    48,    47,   nil,    49,    44,    45,    64,
   nil,   nil,   nil,   nil,    60,    50,    70,   nil,    61,   nil,
   nil,   nil,    62,    63,   146,    56,    29,    89,   nil,    52,
    90,    54,   nil,   nil,   nil,    46,    48,    47,   nil,    49,
    44,    45,    64,   nil,   nil,   nil,   nil,    60,    50,    70,
   nil,    61,   nil,   nil,   nil,    62,    63,   146,    56,    29,
    89,   nil,    52,    90,    54,   nil,   nil,   nil,    46,    48,
    47,   nil,    49,    44,    45,    64,   nil,   nil,   nil,   nil,
    60,    50,    70,   nil,    61,   nil,   nil,   nil,    62,    63,
   146,    56,    29,    89,   nil,    52,    90,    54,   nil,   nil,
   nil,    46,    48,    47,   nil,    49,    44,    45,    64,   nil,
   nil,   nil,   nil,    60,    50,    70,   nil,    61,   nil,   nil,
   nil,    62,    63,   146,    56,    29,    89,   nil,    52,    90,
    54,   nil,   nil,   nil,    46,    48,    47,   nil,    49,    44,
    45,    64,   nil,   nil,   nil,   nil,    60,    50,    70,   nil,
    61,   nil,   nil,   nil,    62,    63,   146,    56,    29,    89,
   nil,    52,    90,    54,   nil,   nil,   nil,    46,    48,    47,
   nil,    49,    44,    45,    64,   nil,   nil,   nil,   nil,    60,
    50,    70,   nil,    61,   nil,   nil,   nil,    62,    63,   146,
    56,    29,    89,   nil,    52,    90,    54,   nil,   nil,   nil,
    46,    48,    47,   nil,    49,    44,    45,    64,   nil,   nil,
   nil,   nil,    60,    50,    70,   nil,    61,   nil,   nil,   nil,
    62,    63,   146,    56,    29,    89,   nil,    52,    90,    54,
   nil,   nil,   nil,    46,    48,    47,   nil,    49,    44,    45,
    64,   nil,   nil,   nil,   nil,    60,    50,    70,   nil,    61,
   nil,   nil,   nil,    62,    63,   146,    56,    29,    89,   nil,
    52,    90,    54,   nil,   nil,   nil,    46,    48,    47,   nil,
    49,    44,    45,    64,   nil,   nil,   nil,   nil,    60,    50,
    70,   nil,    61,   nil,   nil,   nil,    62,    63,   146,    56,
    29,    89,   nil,    52,    90,    54,   nil,   nil,   nil,    46,
    48,    47,   nil,    49,    44,    45,    64,   nil,   nil,   nil,
   nil,    60,    50,    70,   nil,    61,   nil,   nil,   nil,    62,
    63,   146,    56,    29,    89,   nil,    52,    90,    54,   nil,
   nil,   nil,    46,    48,    47,   nil,    49,    44,    45,    64,
   nil,   nil,   nil,   nil,    60,    50,    70,   nil,    61,   nil,
   nil,   nil,    62,    63,   146,    56,    29,    89,   nil,    52,
    90,    54,   nil,   nil,   nil,    46,    48,    47,   nil,    49,
    44,    45,    64,   nil,   nil,   nil,   nil,    60,    50,    70,
   nil,    61,   nil,   nil,   nil,    62,    63,   146,    56,    29,
    89,   nil,    52,    90,    54,   nil,   nil,   nil,    46,    48,
    47,   nil,    49,    44,    45,    64,   nil,   nil,   nil,   nil,
    60,    50,    70,   nil,    61,   nil,   nil,   nil,    62,    63,
   146,    56,    29,    89,   nil,    52,    90,    54,   nil,   nil,
   nil,    46,    48,    47,   nil,    49,    44,    45,    64,   nil,
   nil,   nil,   nil,    60,    50,    70,   nil,    61,   nil,   nil,
   nil,    62,    63,   146,    56,    29,    89,   nil,    52,    90,
    54,   nil,   nil,   nil,    46,    48,    47,   nil,    49,    44,
    45,    64,   nil,   nil,   nil,   nil,    60,    50,    70,   nil,
    61,   nil,   nil,   nil,    62,    63,   146,    56,    29,    89,
   nil,    52,    90,    54,   nil,   nil,   nil,    46,    48,    47,
   nil,    49,    44,    45,    64,   nil,   nil,   nil,   nil,    60,
    50,    70,   nil,    61,   nil,   nil,   nil,    62,    63,   146,
    56,    29,    89,   nil,    52,    90,    54,   nil,   nil,   nil,
    46,    48,    47,   nil,    49,    44,    45,    64,   nil,   nil,
   nil,   nil,    60,    50,    70,   nil,    61,   nil,   nil,   nil,
    62,    63,   146,    56,    29,    89,   nil,    52,    90,    54,
   nil,   nil,   nil,    46,    48,    47,   nil,    49,    44,    45,
    64,   nil,   nil,   nil,   nil,    60,    50,    70,   nil,    61,
   nil,   nil,   nil,    62,    63,   146,    56,    29,    89,   nil,
    52,    90,    54,   nil,   nil,   nil,    46,    48,    47,   nil,
    49,    44,    45,    64,   nil,   nil,   nil,   nil,    60,    50,
    70,   nil,    61,   nil,   nil,   nil,    62,    63,   146,    56,
    29,    89,   nil,    52,    90,    54,   nil,   nil,   nil,    46,
    48,    47,   nil,    49,    44,    45,    64,   nil,   nil,   nil,
   nil,    60,    50,    70,   nil,    61,   nil,   nil,   nil,    62,
    63,   146,    56,    29,    89,   nil,    52,    90,    54,   nil,
   nil,   nil,    46,    48,    47,   nil,    49,    44,    45,    64,
   nil,   nil,   nil,   nil,    60,    50,    70,   nil,    61,   nil,
   nil,   nil,    62,    63,   146,    56,    29,    89,   nil,    52,
    90,    54,   nil,   nil,   nil,    46,    48,    47,   nil,    49,
    44,    45,    64,   nil,   nil,   nil,   nil,    60,    50,    70,
   nil,    61,   nil,   nil,   nil,    62,    63,   146,    56,    29,
    89,   nil,    52,    90,    54,   nil,   nil,   nil,    46,    48,
    47,   nil,    49,    44,    45,    64,   nil,   nil,   nil,   nil,
    60,    50,    70,   nil,    61,   nil,   nil,   nil,    62,    63,
   146,    56,    29,    89,   nil,    52,    90,    54,   nil,   nil,
   nil,    46,    48,    47,   nil,    49,    44,    45,    64,   nil,
   nil,   nil,   nil,    60,    50,    70,   nil,    61,   nil,   nil,
   nil,    62,    63,   146,    56,    29,    89,   nil,    52,    90,
    54,   nil,   nil,   nil,    46,    48,    47,   nil,    49,    44,
    45,    64,   nil,   nil,   nil,   nil,    60,    50,    70,   nil,
    61,   nil,   nil,   nil,    62,    63,   146,    56,    29,    89,
   nil,    52,    90,    54,   nil,   nil,   nil,    46,    48,    47,
   nil,    49,    44,    45,    64,   nil,   nil,   nil,   nil,    60,
    50,    70,   nil,    61,   nil,   nil,   nil,    62,    63,   146,
    56,    29,    89,   nil,    52,    90,    54,   nil,   nil,   nil,
    46,    48,    47,   nil,    49,    44,    45,    64,   nil,   nil,
   nil,   nil,    60,    50,    70,   nil,    61,   nil,   nil,   nil,
    62,    63,   146,    56,    29,    89,   nil,    52,    90,    54,
   nil,   nil,   nil,    46,    48,    47,   nil,    49,    44,    45,
    64,   nil,   nil,   nil,   nil,    60,    50,    70,   nil,    61,
   nil,   nil,   nil,    62,    63,   146,    56,    29,    89,   nil,
    52,    90,    54,   nil,   nil,   nil,    46,    48,    47,   nil,
    49,    44,    45,    64,   nil,   nil,   nil,   nil,    60,    50,
    70,   nil,    61,   nil,   nil,   nil,    62,    63,   146,    56,
    29,    89,   nil,    52,    90,    54,   nil,   nil,   nil,    46,
    48,    47,   nil,    49,    44,    45,    64,   nil,   nil,   nil,
   nil,    60,    50,    70,   nil,    61,   nil,   nil,   nil,    62,
    63,   146,    56,    29,    89,   nil,    52,    90,    54,   nil,
   nil,   nil,    46,    48,    47,   nil,    49,    44,    45,    64,
   nil,   nil,   nil,   nil,    60,    50,    70,   nil,    61,   nil,
   nil,   nil,    62,    63,   146,    56,    29,    89,   nil,    52,
    90,    54,   nil,   nil,   nil,    46,    48,    47,   nil,    49,
    44,    45,    64,   nil,   nil,   nil,   nil,    60,    50,    70,
   nil,    61,   nil,   nil,   nil,    62,    63,   146,    56,    29,
    89,   nil,    52,    90,    54,   nil,   nil,   nil,    46,    48,
    47,   nil,    49,    44,    45,    64,   nil,   nil,   nil,   nil,
    60,    50,    70,   nil,    61,   nil,   nil,   nil,    62,    63,
   146,    56,    29,    89,   nil,    52,    90,    54,   nil,   nil,
   nil,    46,    48,    47,   nil,    49,    44,    45,    64,   nil,
   nil,   nil,   nil,    60,    50,    70,   nil,    61,   nil,   nil,
   nil,    62,    63,   146,    56,    29,    89,   nil,    52,    90,
    54,   nil,   nil,   nil,    46,    48,    47,   nil,    49,    44,
    45,    64,   nil,   nil,   nil,   nil,    60,    50,    70,   nil,
    61,   nil,   nil,   nil,    62,    63,   146,    56,    29,    89,
   nil,    52,    90,    54,   nil,   nil,   nil,    46,    48,    47,
   nil,    49,    44,    45,    64,   nil,   nil,   nil,   nil,    60,
    50,    70,   nil,    61,   nil,   nil,   nil,    62,    63,   146,
    56,    29,    89,   nil,    52,    90,    54,   nil,   nil,   nil,
    46,    48,    47,   nil,    49,    44,    45,    64,   nil,   nil,
  -116,   nil,    60,    50,    70,   nil,    61,   nil,   nil,   nil,
    62,    63,   146,    56,    29,    89,   nil,    52,    90,   288,
   nil,   nil,   nil,    46,    48,    47,   nil,    49,    44,    45,
    64,   nil,   nil,   nil,   nil,    60,    50,    70,   nil,    61,
   nil,   nil,   nil,    62,    63,   146,    56,    29,    89,   nil,
    52,    90,    54,   nil,   nil,   nil,    46,    48,    47,   nil,
    49,    44,    45,    64,   nil,   nil,   nil,   nil,    60,    50,
    70,   nil,    61,   nil,   nil,   nil,    62,    63,   146,    56,
    29,    89,   nil,    52,    90,    54,   nil,   nil,   nil,    46,
    48,    47,   nil,    49,    44,    45,    64,   nil,   nil,   nil,
   nil,    60,    50,    70,   nil,    61,   nil,   nil,   nil,    62,
    63,   146,    56,    29,    89,   nil,    52,    90,    54,   nil,
   nil,   nil,    46,    48,    47,   nil,    49,    44,    45,    64,
   nil,   nil,   nil,   nil,    60,    50,    70,   nil,    61,   nil,
   nil,   nil,    62,    63,   146,    56,    29,    89,   nil,    52,
    90,    54,   nil,   nil,   nil,    46,    48,    47,   nil,    49,
    44,    45,    64,   nil,   nil,   nil,   nil,    60,    50,    70,
   nil,    61,   nil,   nil,   nil,    62,    63,   146,    56,    29,
    89,   nil,    52,    90,    54,   nil,   nil,   nil,    46,    48,
    47,   nil,    49,    44,    45,    64,   nil,   nil,   nil,   nil,
    60,    50,    70,   nil,    61,   nil,   nil,   nil,    62,    63,
   146,    56,    29,    89,   nil,    52,    90,    54,   nil,   nil,
   nil,    46,    48,    47,   nil,    49,    44,    45,    64,   nil,
   nil,  -116,   nil,    60,    50,    70,   nil,    61,   nil,   nil,
   nil,    62,    63,   146,    56,    29,    89,   nil,    52,    90,
    54,   nil,   nil,   nil,    46,    48,    47,   nil,    49,    44,
    45,    64,   nil,   nil,   nil,   nil,    60,    50,    70,   nil,
    61,   nil,   nil,   nil,    62,    63,   146,    56,    29,    89,
   nil,    52,    90,    54,   nil,   nil,   nil,    46,    48,    47,
   nil,    49,    44,    45,    64,   nil,   nil,   nil,   nil,    60,
    50,    70,   nil,    61,   nil,   nil,   nil,    62,    63,   146,
    56,    29,    89,   nil,    52,    90,    54,   nil,   nil,   nil,
    46,    48,    47,   nil,    49,    44,    45,    64,   nil,   nil,
   nil,   nil,    60,    50,    70,   nil,    61,   nil,   nil,   nil,
    62,    63,   nil,   nil,    29,   nil,   nil,    52,   348,    54,
   129,   130,   132,   127,   128,   131,   115,   116,   117,   121,
   122,   123,   118,   119,   120,   124,   125,   126,   nil,   nil,
   nil,   nil,   146,    56,   nil,    89,   nil,    29,    90,   nil,
    52,   nil,    54,    46,    48,    47,   nil,    49,    44,    45,
    64,   nil,   nil,  -116,   nil,    60,    50,    70,   105,    61,
   nil,   nil,   nil,    62,    63,   146,    56,   nil,    89,   nil,
   nil,    90,   nil,   nil,   nil,   nil,    46,    48,    47,   nil,
    49,    44,    45,    64,   nil,   nil,   nil,   nil,    60,    50,
    70,   nil,    61,   nil,   nil,   nil,    62,    63,   146,    56,
    29,    89,   nil,    52,    90,   288,   nil,   nil,   nil,    46,
    48,    47,   nil,    49,    44,    45,    64,   nil,   nil,   nil,
   nil,    60,    50,    70,   nil,    61,   nil,   nil,   nil,    62,
    63,   146,    56,    29,    89,   nil,    52,    90,    54,   nil,
   nil,   nil,    46,    48,    47,   nil,    49,    44,    45,    64,
   nil,   nil,   nil,   nil,    60,    50,    70,   nil,    61,   nil,
   nil,   nil,    62,    63,   146,    56,    29,    89,   nil,    52,
    90,    54,   nil,   nil,   nil,    46,    48,    47,   nil,    49,
    44,    45,    64,   nil,   nil,   nil,   nil,    60,    50,    70,
   nil,    61,   nil,   nil,   nil,    62,    63,   146,    56,    29,
    89,   nil,    52,    90,    54,   nil,   nil,   nil,    46,    48,
    47,   nil,    49,    44,    45,    64,   nil,   nil,   nil,   nil,
    60,    50,    70,   nil,    61,   nil,   nil,   nil,    62,    63,
   146,    56,    29,    89,   nil,    52,    90,    54,   nil,   nil,
   nil,    46,    48,    47,   nil,    49,    44,    45,    64,   nil,
   nil,   nil,   nil,    60,    50,    70,   nil,    61,   nil,   nil,
   nil,    62,    63,   146,    56,    29,    89,   nil,    52,    90,
    54,   nil,   nil,   nil,    46,    48,    47,   nil,    49,    44,
    45,    64,   nil,   nil,   nil,   nil,    60,    50,    70,   nil,
    61,   nil,   nil,   nil,    62,    63,   146,    56,    29,    89,
   nil,    52,    90,    54,   nil,   nil,   nil,    46,    48,    47,
   nil,    49,    44,    45,    64,   nil,   nil,   nil,   nil,    60,
    50,    70,   nil,    61,   nil,   nil,   nil,    62,    63,   146,
    56,    29,    89,   nil,    52,    90,    54,   nil,   nil,   nil,
    46,    48,    47,   nil,    49,    44,    45,    64,   nil,   nil,
   nil,   nil,    60,    50,    70,   nil,    61,   nil,   nil,   nil,
    62,    63,   146,    56,    29,    89,   nil,    52,    90,    54,
   nil,   nil,   nil,    46,    48,    47,   nil,    49,    44,    45,
    64,   nil,   nil,   nil,   nil,    60,    50,    70,   nil,    61,
   nil,   nil,   nil,    62,    63,   146,    56,    29,    89,   nil,
    52,    90,    54,   nil,   nil,   nil,    46,    48,    47,   nil,
    49,    44,    45,    64,   nil,   nil,  -116,   nil,    60,    50,
    70,   nil,    61,   nil,   nil,   nil,    62,    63,   146,    56,
    29,    89,   nil,    52,    90,    54,   nil,   nil,   nil,    46,
    48,    47,   nil,    49,    44,    45,    64,   nil,   nil,   nil,
   nil,    60,    50,    70,   nil,    61,   nil,   nil,   nil,    62,
    63,   146,    56,    29,    89,   nil,    52,    90,    54,   nil,
   nil,   nil,    46,    48,    47,   nil,    49,    44,    45,    64,
   nil,   nil,   nil,   nil,    60,    50,    70,   nil,    61,   nil,
   nil,   nil,    62,    63,   146,    56,    29,    89,   nil,    52,
    90,    54,   nil,   nil,   nil,    46,    48,    47,   nil,    49,
    44,    45,    64,   nil,   nil,   nil,   nil,    60,    50,    70,
   nil,    61,   nil,   nil,   nil,    62,    63,   146,    56,    29,
    89,   nil,    52,    90,    54,   nil,   nil,   nil,    46,    48,
    47,   nil,    49,    44,    45,    64,   nil,   nil,   nil,   nil,
    60,    50,    70,   nil,    61,   nil,   nil,   nil,    62,    63,
   146,    56,    29,    89,   nil,    52,   nil,    54,   nil,   nil,
   nil,    46,    48,    47,   nil,    49,    44,    45,   nil,   nil,
   nil,   nil,   nil,    60,    50,    70,   nil,    61,   nil,   nil,
   nil,    62,    63,   146,    56,    29,    89,   nil,    52,   nil,
    54,   nil,   nil,   nil,    46,    48,    47,   nil,    49,    44,
    45,    64,   nil,   nil,   nil,   nil,    60,    50,    70,   nil,
    61,   nil,   nil,   nil,    62,    63,   146,    56,   188,    89,
   nil,    52,   nil,   nil,   nil,   nil,   nil,    46,    48,    47,
   nil,    49,    44,    45,    64,   nil,   nil,   nil,   nil,    60,
    50,    70,   nil,    61,   nil,   nil,   nil,    62,    63,   nil,
   nil,   188,   nil,   nil,    52,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   211,   nil,   nil,   nil,   nil,   nil,   129,   130,   132,   127,
   128,   131,   nil,   nil,   188,   nil,   nil,    52,   129,   130,
   132,   127,   128,   131,   115,   116,   117,   121,   122,   123,
   118,   119,   120,   124,   125,   126,   102,   104,   103,   109,
   111,   110,   112,   114,   113,   106,   108,   107,   133,   134,
   101,   100,   137,   211,   105,   nil,   nil,   nil,   nil,   129,
   130,   132,   127,   128,   131,   nil,   105,   nil,   nil,   nil,
   nil,   129,   130,   132,   127,   128,   131,   115,   116,   117,
   121,   122,   123,   118,   119,   120,   124,   125,   126,   102,
   104,   103,   109,   111,   110,   112,   114,   113,   106,   108,
   107,   133,   134,   101,   100,   137,   211,   105,   nil,   nil,
   nil,   nil,   129,   130,   132,   127,   128,   131,   nil,   105,
   nil,   nil,   nil,   nil,   129,   130,   132,   127,   128,   131,
   115,   116,   117,   121,   122,   123,   118,   119,   120,   124,
   125,   126,   102,   104,   103,   109,   111,   110,   112,   114,
   113,   106,   108,   107,   133,   134,   101,   100,   137,   211,
   105,   nil,   nil,   nil,   nil,   129,   130,   132,   127,   128,
   131,   nil,   105,   nil,   nil,   nil,   nil,   129,   130,   132,
   127,   128,   131,   115,   116,   117,   121,   122,   123,   118,
   119,   120,   124,   125,   126,   102,   104,   103,   109,   111,
   110,   112,   114,   113,   106,   108,   107,   133,   134,   101,
   100,   137,   211,   105,   nil,   nil,   nil,   nil,   129,   130,
   132,   127,   128,   131,   nil,   105,   nil,   nil,   nil,   nil,
   129,   130,   132,   127,   128,   131,   115,   116,   117,   121,
   122,   123,   118,   119,   120,   124,   125,   126,   102,   104,
   103,   109,   111,   110,   112,   114,   113,   106,   108,   107,
   133,   134,   101,   100,   137,   455,   105,   nil,   nil,   nil,
   nil,   129,   130,   132,   127,   128,   131,   nil,   105,   nil,
   nil,   nil,   nil,   129,   130,   132,   127,   128,   131,   115,
   116,   117,   121,   122,   123,   118,   119,   120,   124,   125,
   126,   102,   104,   103,   109,   111,   110,   112,   114,   113,
   106,   108,   107,   133,   134,   101,   100,   137,   460,   105,
   nil,   nil,   nil,   129,   130,   132,   127,   128,   131,   nil,
   nil,   105,   nil,   nil,   nil,   nil,   129,   130,   132,   127,
   128,   131,   115,   116,   117,   121,   122,   123,   118,   119,
   120,   124,   125,   126,   102,   104,   103,   109,   111,   110,
   112,   114,   113,   106,   108,   107,   133,   134,   101,   100,
   137,   105,   129,   130,   132,   127,   128,   131,   nil,   nil,
   nil,   nil,   nil,   nil,   105,   129,   130,   132,   127,   128,
   131,   115,   116,   117,   121,   122,   123,   118,   119,   120,
   124,   125,   126,   102,   104,   103,   109,   111,   110,   112,
   114,   113,   106,   108,   107,   133,   134,   101,   100,   137,
   105,   nil,   nil,   nil,   nil,   nil,   266,   129,   130,   132,
   127,   128,   131,   105,   129,   130,   132,   127,   128,   131,
   115,   116,   117,   121,   122,   123,   118,   119,   120,   124,
   125,   126,   102,   104,   103,   109,   111,   110,   112,   114,
   113,   106,   108,   107,   133,   134,   101,   100,   137,   nil,
   nil,   nil,   nil,   nil,   nil,   105,   nil,   nil,   nil,   nil,
   nil,   nil,   105,   129,   130,   132,   127,   128,   131,   115,
   116,   117,   121,   122,   123,   118,   119,   120,   124,   125,
   126,   102,   104,   103,   109,   111,   110,   112,   114,   113,
   106,   108,   107,   133,   134,   101,   100,   137,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   275,   105,   129,   130,   132,   127,   128,   131,   115,   116,
   117,   121,   122,   123,   118,   119,   120,   124,   125,   126,
   102,   104,   103,   109,   111,   110,   112,   114,   113,   106,
   108,   107,   133,   134,   101,   100,   137,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   105,   129,   130,   132,   127,   128,   131,   115,   116,   117,
   121,   122,   123,   118,   119,   120,   124,   125,   126,   102,
   104,   103,   109,   111,   110,   112,   114,   113,   106,   108,
   107,   133,   134,   101,   100,   137,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   105,
   129,   130,   132,   127,   128,   131,   115,   116,   117,   121,
   122,   123,   118,   119,   120,   124,   125,   126,   102,   104,
   103,   109,   111,   110,   112,   114,   113,   106,   108,   107,
   133,   134,   101,   100,   137,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   105,   129,
   130,   132,   127,   128,   131,   115,   116,   117,   121,   122,
   123,   118,   119,   120,   124,   125,   126,   102,   104,   103,
   109,   111,   110,   112,   114,   113,   106,   108,   107,   133,
   134,   101,   100,   137,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   105,   129,   130,
   132,   127,   128,   131,   115,   116,   117,   121,   122,   123,
   118,   119,   120,   124,   125,   126,   129,   130,   132,   127,
   128,   131,   115,   116,   117,   121,   122,   123,   118,   119,
   120,   124,   125,   126,   102,   104,   103,   109,   111,   110,
   112,   114,   113,   106,   108,   107,   105,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   105,   129,   130,   132,   127,   128,
   131,   115,   116,   117,   121,   122,   123,   118,   119,   120,
   124,   125,   126,   102,   104,   103,   109,   111,   110,   112,
   114,   113,   106,   108,   107,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   105,   129,   130,   132,   127,   128,   131,
   115,   116,   117,   121,   122,   123,   118,   119,   120,   124,
   125,   126,   102,   104,   103,   109,   111,   110,   112,   114,
   113,   106,   108,   107,   133,   134,   101,   100,   137,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   105,   129,   130,   132,   127,   128,   131,   115,
   116,   117,   121,   122,   123,   118,   119,   120,   124,   125,
   126,   102,   104,   103,   109,   111,   110,   112,   114,   113,
   106,   108,   107,   133,   134,   101,   100,   137,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   105,   129,   130,   132,   127,   128,   131,   115,   116,
   117,   121,   122,   123,   118,   119,   120,   124,   125,   126,
   102,   104,   103,   109,   111,   110,   112,   114,   113,   106,
   108,   107,   133,   134,   101,   100,   137,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   337,
   105,   129,   130,   132,   127,   128,   131,   115,   116,   117,
   121,   122,   123,   118,   119,   120,   124,   125,   126,   102,
   104,   103,   109,   111,   110,   112,   114,   113,   106,   108,
   107,   133,   134,   101,   100,   137,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   340,   nil,   nil,   341,   105,
   129,   130,   132,   127,   128,   131,   115,   116,   117,   121,
   122,   123,   118,   119,   120,   124,   125,   126,   102,   104,
   103,   109,   111,   110,   112,   114,   113,   106,   108,   107,
   133,   134,   101,   100,   137,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   105,   129,
   130,   132,   127,   128,   131,   115,   116,   117,   121,   122,
   123,   118,   119,   120,   124,   125,   126,   102,   104,   103,
   109,   111,   110,   112,   114,   113,   106,   108,   107,   133,
   134,   101,   100,   137,   nil,   nil,   nil,   nil,   nil,   nil,
   266,   nil,   nil,   nil,   nil,   nil,   nil,   105,   129,   130,
   132,   127,   128,   131,   115,   116,   117,   121,   122,   123,
   118,   119,   120,   124,   125,   126,   102,   104,   103,   109,
   111,   110,   112,   114,   113,   106,   108,   107,   133,   134,
   101,   100,   137,   nil,   nil,   nil,   nil,   nil,   nil,   360,
   nil,   nil,   nil,   nil,   nil,   nil,   105,   129,   130,   132,
   127,   128,   131,   115,   116,   117,   121,   122,   123,   118,
   119,   120,   124,   125,   126,   102,   104,   103,   109,   111,
   110,   112,   114,   113,   106,   108,   107,   133,   134,   101,
   100,   137,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   105,   129,   130,   132,   127,
   128,   131,   115,   116,   117,   121,   122,   123,   118,   119,
   120,   124,   125,   126,   102,   104,   103,   109,   111,   110,
   112,   114,   113,   106,   108,   107,   133,   134,   101,   100,
   137,   nil,   nil,   nil,   nil,   nil,   nil,   360,   nil,   nil,
   nil,   nil,   nil,   nil,   105,   129,   130,   132,   127,   128,
   131,   115,   116,   117,   121,   122,   123,   118,   119,   120,
   124,   125,   126,   102,   104,   103,   109,   111,   110,   112,
   114,   113,   106,   108,   107,   133,   134,   101,   100,   137,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   105,   129,   130,   132,   127,   128,   131,
   115,   116,   117,   121,   122,   123,   118,   119,   120,   124,
   125,   126,   102,   104,   103,   109,   111,   110,   112,   114,
   113,   106,   108,   107,   133,   134,   101,   100,   137,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   105,   129,   130,   132,   127,   128,   131,   115,
   116,   117,   121,   122,   123,   118,   119,   120,   124,   125,
   126,   102,   104,   103,   109,   111,   110,   112,   114,   113,
   106,   108,   107,   133,   134,   101,   100,   137,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   105,   129,   130,   132,   127,   128,   131,   115,   116,
   117,   121,   122,   123,   118,   119,   120,   124,   125,   126,
   102,   104,   103,   109,   111,   110,   112,   114,   113,   106,
   108,   107,   133,   134,   101,   100,   137,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   105,   129,   130,   132,   127,   128,   131,   115,   116,   117,
   121,   122,   123,   118,   119,   120,   124,   125,   126,   102,
   104,   103,   109,   111,   110,   112,   114,   113,   106,   108,
   107,   133,   134,   101,   100,   137,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   396,   nil,   nil,   341,   105,
   129,   130,   132,   127,   128,   131,   115,   116,   117,   121,
   122,   123,   118,   119,   120,   124,   125,   126,   102,   104,
   103,   109,   111,   110,   112,   114,   113,   106,   108,   107,
   133,   134,   101,   100,   137,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   105,   129,
   130,   132,   127,   128,   131,   115,   116,   117,   121,   122,
   123,   118,   119,   120,   124,   125,   126,   102,   104,   103,
   109,   111,   110,   112,   114,   113,   106,   108,   107,   133,
   134,   101,   100,   137,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   399,   nil,   nil,   nil,   105,   129,   130,
   132,   127,   128,   131,   115,   116,   117,   121,   122,   123,
   118,   119,   120,   124,   125,   126,   102,   104,   103,   109,
   111,   110,   112,   114,   113,   106,   108,   107,   133,   134,
   101,   100,   137,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   105,   129,   130,   132,
   127,   128,   131,   115,   116,   117,   121,   122,   123,   118,
   119,   120,   124,   125,   126,   102,   104,   103,   109,   111,
   110,   112,   114,   113,   106,   108,   107,   133,   134,   101,
   100,   137,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   105,   129,   130,   132,   127,
   128,   131,   115,   116,   117,   121,   122,   123,   118,   119,
   120,   124,   125,   126,   102,   104,   103,   109,   111,   110,
   112,   114,   113,   106,   108,   107,   133,   134,   101,   100,
   137,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   105,   129,   130,   132,   127,   128,
   131,   115,   116,   117,   121,   122,   123,   118,   119,   120,
   124,   125,   126,   102,   104,   103,   109,   111,   110,   112,
   114,   113,   106,   108,   107,   133,   134,   101,   100,   137,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   105,   129,   130,   132,   127,   128,   131,
   115,   116,   117,   121,   122,   123,   118,   119,   120,   124,
   125,   126,   102,   104,   103,   109,   111,   110,   112,   114,
   113,   106,   108,   107,   133,   134,   101,   100,   137,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   105,   129,   130,   132,   127,   128,   131,   115,
   116,   117,   121,   122,   123,   118,   119,   120,   124,   125,
   126,   102,   104,   103,   109,   111,   110,   112,   114,   113,
   106,   108,   107,   133,   134,   101,   100,   137,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   105,   129,   130,   132,   127,   128,   131,   115,   116,
   117,   121,   122,   123,   118,   119,   120,   124,   125,   126,
   102,   104,   103,   109,   111,   110,   112,   114,   113,   106,
   108,   107,   133,   134,   101,   100,   137,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   105,   129,   130,   132,   127,   128,   131,   115,   116,   117,
   121,   122,   123,   118,   119,   120,   124,   125,   126,   102,
   104,   103,   109,   111,   110,   112,   114,   113,   106,   108,
   107,   133,   134,   101,   100,   137,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   105,
   129,   130,   132,   127,   128,   131,   115,   116,   117,   121,
   122,   123,   118,   119,   120,   124,   125,   126,   102,   104,
   103,   109,   111,   110,   112,   114,   113,   106,   108,   107,
   133,   134,   101,   100,   137,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   105,   129,
   130,   132,   127,   128,   131,   115,   116,   117,   121,   122,
   123,   118,   119,   120,   124,   125,   126,   102,   104,   103,
   109,   111,   110,   112,   114,   113,   106,   108,   107,   133,
   134,   101,   100,   137,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   105 ]

racc_action_check = [
    22,   143,    74,   143,    22,   333,   376,   376,   182,   182,
   370,   369,   433,   157,    57,    57,    74,    57,   155,   182,
   157,   155,   369,   155,     3,    57,    57,    57,    93,    57,
    57,    57,   333,   370,   376,   433,   330,    57,    57,    57,
   202,    57,   330,   330,   202,    57,    57,    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,    22,
    22,    22,    57,     0,     3,    57,   332,     0,    93,     0,
     0,     0,     0,     0,   376,    22,     0,   454,     0,     0,
   287,   287,     0,     0,     0,     0,     0,   461,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,    55,     0,     0,     0,     0,     0,
   298,   466,     1,     0,     0,   298,    59,    59,   283,   283,
   283,   283,   447,   283,   451,   464,   332,    59,   283,   283,
    40,    40,   210,   447,    19,   451,   464,   454,   210,   181,
   181,   287,   287,   175,    72,    72,    72,   461,    23,   200,
     0,   213,     0,     0,     2,     0,    55,   277,     2,   161,
     2,     2,     2,     2,     2,   162,   278,     2,   284,     2,
     2,   466,    59,     2,     2,     2,     2,     2,   286,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,   175,     2,     2,     2,     2,
     2,   200,    86,   213,     2,     2,   161,   313,   266,   277,
   314,   161,   162,   304,   360,   304,    24,   162,   278,   284,
   284,   186,   186,   186,   138,   138,   138,   138,    27,   286,
   286,     8,   138,     8,     8,     8,   403,   430,    73,    73,
    73,     2,    32,     2,     2,    94,     2,   315,    35,    94,
    86,    94,    94,    94,    94,    94,   285,   266,    94,   313,
    94,    94,   314,   360,    94,    94,    94,    94,    94,   186,
    94,    94,    94,    94,    94,    94,    94,    94,    94,    94,
    94,    94,    94,    94,    94,   403,   430,    94,    94,    94,
    94,    94,   281,   281,   315,    94,    94,   285,   285,   285,
   285,    43,   187,   187,   187,   282,   282,   285,   285,   410,
    70,   410,   222,   222,   222,   222,   222,   222,   222,   222,
   222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
   290,   290,    94,    87,    94,    94,    95,    94,   387,   387,
    95,    88,    95,    95,    95,    95,    95,    33,    89,    95,
   187,    95,    95,   416,   416,    95,    95,    95,    95,    95,
   222,    95,    95,    95,    95,    90,    95,    95,    95,    95,
    95,    95,    95,    95,    95,    95,    95,    92,    95,    95,
    95,    95,    95,    96,    97,   203,    95,    95,    33,    33,
    33,    33,    31,    31,    31,    31,   331,    31,   331,   331,
   386,   331,   386,   386,   140,   386,    42,    42,    42,    42,
   141,   203,    66,    66,    66,    66,   146,   235,   235,   235,
   235,   235,   235,    95,   148,   150,    95,   151,    95,   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,   204,   235,   154,   160,   166,   169,
   170,   174,   178,   183,   184,   185,   189,   203,   199,   207,
   208,   209,   212,   249,   250,   252,   260,   268,   293,   297,
   204,   299,   300,   301,   305,   236,   236,   236,   236,   236,
   236,   237,   237,   237,   237,   237,   237,   312,   204,   204,
   204,   204,   204,   204,   204,   204,   204,   204,   204,   204,
   204,   204,   204,   204,   204,   204,   204,   204,   204,   204,
   204,   204,   204,   204,   204,   204,   204,   204,   204,   204,
   204,   204,   204,   236,   211,   247,   247,   247,   211,   237,
   211,   211,   211,   211,   211,   318,   204,   211,   322,   211,
   211,   324,   325,   211,   211,   211,   211,   211,   334,   211,
   211,   211,   211,   211,   211,   211,   211,   211,   211,   211,
   211,   211,   211,   211,   211,   335,   211,   211,   211,   211,
   211,   336,   339,   247,   211,   211,   344,   345,   220,   220,
   220,   220,   220,   220,   220,   220,   220,   220,   220,   220,
   220,   220,   220,   220,   220,   220,   220,   220,   220,   220,
   220,   220,   220,   220,   220,   220,   220,   220,   220,   220,
   220,   211,   353,   211,   211,   320,   211,   355,   356,   320,
   320,   320,   320,   320,   320,   320,   220,   359,   320,   367,
   320,   320,   368,   385,   320,   320,   320,   320,   320,   389,
   320,   320,   320,   320,   320,   320,   320,   320,   320,   320,
   320,   320,   320,   320,   320,   391,   392,   320,   320,   320,
   320,   320,   404,   408,   411,   320,   320,   412,   417,   221,
   221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
   221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
   221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
   221,   420,   320,   421,   320,   320,   438,   320,   422,   423,
   438,   425,   438,   438,   438,   438,   438,   221,   428,   438,
   429,   438,   438,   432,   434,   438,   438,   438,   438,   438,
   445,   438,   438,   438,   438,   438,   438,   438,   438,   438,
   438,   438,   438,   438,   438,   438,   448,   449,   438,   438,
   438,   438,   438,   456,   457,   458,   438,   438,   459,   467,
   223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
   223,   223,   223,   223,   223,   223,   223,   223,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   248,
   248,   248,   nil,   438,   nil,   438,   438,   455,   438,   nil,
   nil,   455,   nil,   455,   455,   455,   455,   455,   223,   nil,
   455,   nil,   455,   455,   nil,   nil,   455,   455,   455,   455,
   455,   nil,   455,   455,   455,   455,   455,   455,   455,   455,
   455,   455,   455,   455,   455,   455,   455,   248,   nil,   455,
   455,   455,   455,   455,   nil,   nil,   nil,   455,   455,   nil,
   nil,   224,   224,   224,   224,   224,   224,   224,   224,   224,
   224,   224,   224,   224,   224,   224,   224,   224,   224,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   251,   251,   251,   nil,   455,   nil,   455,   455,   460,   455,
   nil,   nil,   460,   nil,   460,   460,   460,   460,   460,   224,
   nil,   460,   nil,   460,   460,   nil,   nil,   460,   460,   460,
   460,   460,   nil,   460,   460,   460,   460,   460,   460,   460,
   460,   460,   460,   460,   460,   460,   460,   460,   251,   nil,
   460,   460,   460,   460,   460,   nil,   nil,   nil,   460,   460,
   375,   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,   460,   nil,   460,   460,   nil,
   460,   nil,   375,   375,   375,   375,   375,   375,   375,   375,
   375,   375,   375,   375,   375,   375,   375,   375,   375,   375,
   375,   375,   375,   375,   375,   375,   375,   375,   375,   375,
   375,   375,   375,   375,   375,   375,   375,   378,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   139,   139,   nil,   139,
   375,   nil,   139,   nil,   nil,   nil,   nil,   139,   139,   139,
   nil,   139,   139,   139,   139,   nil,   nil,   nil,   nil,   139,
   139,   139,   nil,   139,   nil,   nil,   nil,   139,   139,   378,
   378,   378,   378,   378,   378,   378,   378,   378,   378,   378,
   378,   378,   378,   378,   378,   378,   378,   378,   378,   378,
   378,   378,   378,   378,   378,   378,   378,   378,   378,   378,
   378,   378,   378,   378,   139,   nil,   nil,   139,   nil,   139,
   nil,   139,   258,   258,   nil,   258,   nil,   378,   258,   nil,
   nil,   nil,   nil,   258,   258,   258,   nil,   258,   258,   258,
   258,   nil,   nil,   nil,   nil,   258,   258,   258,   nil,   258,
   nil,   nil,   nil,   258,   258,    58,    58,    58,   nil,    58,
   nil,   nil,    58,   nil,   nil,   nil,   nil,    58,    58,    58,
   nil,    58,    58,    58,    58,   nil,   nil,    58,   nil,    58,
    58,    58,   nil,    58,   nil,   nil,   nil,    58,    58,   nil,
   258,   nil,   nil,   258,   nil,   258,   nil,   258,   nil,   226,
   226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
   226,   226,   226,   226,   226,   226,   226,   nil,   147,   147,
   147,   nil,   147,   nil,    58,   147,   nil,    58,   nil,    58,
   147,   147,   147,   nil,   147,   147,   147,   147,   nil,   nil,
   nil,   nil,   147,   147,   147,   nil,   147,   226,   nil,   nil,
   147,   147,   165,   165,   165,   nil,   165,   nil,   nil,   165,
   nil,   nil,   nil,   nil,   165,   165,   165,   nil,   165,   165,
   165,   165,   nil,   nil,   nil,   nil,   165,   165,   165,   nil,
   165,   nil,   nil,   nil,   165,   165,   nil,   147,   147,   nil,
   147,   nil,   147,   nil,   nil,   227,   227,   227,   227,   227,
   227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
   227,   227,   227,   nil,   nil,   nil,   171,   171,   171,   nil,
   171,   165,   165,   171,   165,   nil,   165,   nil,   171,   171,
   171,   nil,   171,   171,   171,   171,   nil,   nil,   nil,   nil,
   171,   171,   171,   227,   171,   nil,   nil,   nil,   171,   171,
   176,   176,   176,   nil,   176,   nil,   nil,   176,   nil,   nil,
   nil,   nil,   176,   176,   176,   nil,   176,   176,   176,   176,
   nil,   nil,   nil,   nil,   176,   176,   176,   nil,   176,   nil,
   nil,   nil,   176,   176,   nil,   171,   171,   nil,   171,   nil,
   171,   nil,   nil,   228,   228,   228,   228,   228,   228,   228,
   228,   228,   228,   228,   228,   228,   228,   228,   228,   228,
   228,   nil,   nil,   nil,   215,   215,   215,   nil,   215,   176,
   176,   215,   176,   nil,   176,   nil,   215,   215,   215,   nil,
   215,   215,   215,   215,   nil,   nil,   nil,   nil,   215,   215,
   215,   228,   215,   nil,   nil,   nil,   215,   215,   267,   267,
   267,   nil,   267,   nil,   nil,   267,   nil,   nil,   nil,   nil,
   267,   267,   267,   nil,   267,   267,   267,   267,   nil,   nil,
   nil,   nil,   267,   267,   267,   nil,   267,   nil,   nil,   nil,
   267,   267,   nil,   215,   215,   nil,   215,   nil,   215,   nil,
   nil,   229,   229,   229,   229,   229,   229,   229,   229,   229,
   229,   229,   229,   229,   229,   229,   229,   229,   229,   nil,
   nil,   nil,   nil,   274,   274,   nil,   274,   267,   267,   274,
   267,   nil,   267,   nil,   274,   274,   274,   nil,   274,   274,
   274,   274,   nil,   nil,   nil,   nil,   274,   274,   274,   229,
   274,   nil,   nil,   nil,   274,   274,   276,   276,   276,   nil,
   276,   nil,   nil,   276,   nil,   nil,   nil,   nil,   276,   276,
   276,   nil,   276,   276,   276,   276,   nil,   nil,   nil,   nil,
   276,   276,   276,   nil,   276,   nil,   nil,   nil,   276,   276,
   nil,   274,   nil,   nil,   274,   nil,   274,   274,   nil,   230,
   230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
   230,   230,   230,   230,   230,   230,   230,   nil,   nil,   nil,
   295,   295,   295,   nil,   295,   276,   276,   295,   276,   nil,
   276,   nil,   295,   295,   295,   nil,   295,   295,   295,   295,
   nil,   nil,   nil,   nil,   295,   295,   295,   230,   295,   nil,
   nil,   nil,   295,   295,   302,   302,   302,   nil,   302,   nil,
   nil,   302,   nil,   nil,   nil,   nil,   302,   302,   302,   nil,
   302,   302,   302,   302,   nil,   nil,   nil,   nil,   302,   302,
   302,   nil,   302,   nil,   nil,   nil,   302,   302,   nil,   295,
   295,   nil,   295,   nil,   295,   nil,   231,   231,   231,   231,
   231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
   231,   231,   231,   231,   nil,   nil,   nil,   362,   362,   362,
   nil,   362,   nil,   302,   362,   nil,   302,   nil,   302,   362,
   362,   362,   nil,   362,   362,   362,   362,   nil,   nil,   nil,
   nil,   362,   362,   362,   231,   362,   nil,   nil,   nil,   362,
   362,   393,   393,   393,   nil,   393,   nil,   nil,   393,   nil,
   nil,   nil,   nil,   393,   393,   393,   nil,   393,   393,   393,
   393,   nil,   nil,   nil,   nil,   393,   393,   393,   nil,   393,
   nil,   nil,   nil,   393,   393,   nil,   362,   362,   nil,   362,
   nil,   362,   nil,   nil,   232,   232,   232,   232,   232,   232,
   232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
   232,   232,   nil,   nil,   nil,   nil,    29,    29,   nil,    29,
   393,   393,    29,   393,   nil,   393,   nil,    29,    29,    29,
   nil,    29,    29,    29,    29,   nil,   nil,   nil,   nil,    29,
    29,    29,   232,    29,   nil,   nil,   nil,    29,    29,    52,
    52,   nil,    52,   nil,   nil,    52,   nil,   nil,   nil,   nil,
    52,    52,    52,   nil,    52,    52,    52,    52,   nil,   nil,
    52,   nil,    52,    52,    52,   nil,    52,   nil,   nil,   nil,
    52,    52,    54,    54,    29,    54,   nil,    29,    54,    29,
   nil,   nil,   nil,    54,    54,    54,   nil,    54,    54,    54,
    54,   nil,   nil,    54,   nil,    54,    54,    54,   nil,    54,
   nil,   nil,   nil,    54,    54,    56,    56,    52,    56,   nil,
    52,    56,    52,   nil,   nil,    56,    56,    56,    56,   nil,
    56,    56,    56,    56,   nil,   nil,   nil,   nil,    56,    56,
    56,   nil,    56,   nil,   nil,   nil,    56,    56,    61,    61,
    54,    61,   nil,    54,    61,    54,   nil,   nil,   nil,    61,
    61,    61,   nil,    61,    61,    61,    61,   nil,   nil,   nil,
   nil,    61,    61,    61,   nil,    61,   nil,   nil,   nil,    61,
    61,    62,    62,    56,    62,   nil,    56,    62,    56,   nil,
   nil,   nil,    62,    62,    62,   nil,    62,    62,    62,    62,
   nil,   nil,   nil,   nil,    62,    62,    62,   nil,    62,   nil,
   nil,   nil,    62,    62,    63,    63,    61,    63,   nil,    61,
    63,    61,   nil,   nil,   nil,    63,    63,    63,   nil,    63,
    63,    63,    63,   nil,   nil,   nil,   nil,    63,    63,    63,
   nil,    63,   nil,   nil,   nil,    63,    63,    78,    78,    62,
    78,   nil,    62,    78,    62,   nil,   nil,   nil,    78,    78,
    78,   nil,    78,    78,    78,    78,   nil,   nil,    78,   nil,
    78,    78,    78,   nil,    78,   nil,   nil,   nil,    78,    78,
    80,    80,    63,    80,   nil,    63,    80,    63,   nil,   nil,
   nil,    80,    80,    80,   nil,    80,    80,    80,    80,   nil,
   nil,   nil,   nil,    80,    80,    80,   nil,    80,   nil,   nil,
   nil,    80,    80,    81,    81,    78,    81,   nil,    78,    81,
    78,   nil,   nil,   nil,    81,    81,    81,   nil,    81,    81,
    81,    81,   nil,   nil,   nil,   nil,    81,    81,    81,   nil,
    81,   nil,   nil,   nil,    81,    81,    82,    82,    80,    82,
   nil,    80,    82,    80,   nil,   nil,   nil,    82,    82,    82,
   nil,    82,    82,    82,    82,   nil,   nil,   nil,   nil,    82,
    82,    82,   nil,    82,   nil,   nil,   nil,    82,    82,    85,
    85,    81,    85,   nil,    81,    85,    81,   nil,   nil,   nil,
    85,    85,    85,   nil,    85,    85,    85,    85,   nil,   nil,
   nil,   nil,    85,    85,    85,   nil,    85,   nil,   nil,   nil,
    85,    85,   100,   100,    82,   100,   nil,    82,   100,    82,
   nil,   nil,   nil,   100,   100,   100,   nil,   100,   100,   100,
   100,   nil,   nil,   nil,   nil,   100,   100,   100,   nil,   100,
   nil,   nil,   nil,   100,   100,   101,   101,    85,   101,   nil,
    85,   101,    85,   nil,   nil,   nil,   101,   101,   101,   nil,
   101,   101,   101,   101,   nil,   nil,   nil,   nil,   101,   101,
   101,   nil,   101,   nil,   nil,   nil,   101,   101,   102,   102,
   100,   102,   nil,   100,   102,   100,   nil,   nil,   nil,   102,
   102,   102,   nil,   102,   102,   102,   102,   nil,   nil,   nil,
   nil,   102,   102,   102,   nil,   102,   nil,   nil,   nil,   102,
   102,   103,   103,   101,   103,   nil,   101,   103,   101,   nil,
   nil,   nil,   103,   103,   103,   nil,   103,   103,   103,   103,
   nil,   nil,   nil,   nil,   103,   103,   103,   nil,   103,   nil,
   nil,   nil,   103,   103,   104,   104,   102,   104,   nil,   102,
   104,   102,   nil,   nil,   nil,   104,   104,   104,   nil,   104,
   104,   104,   104,   nil,   nil,   nil,   nil,   104,   104,   104,
   nil,   104,   nil,   nil,   nil,   104,   104,   105,   105,   103,
   105,   nil,   103,   105,   103,   nil,   nil,   nil,   105,   105,
   105,   nil,   105,   105,   105,   105,   nil,   nil,   nil,   nil,
   105,   105,   105,   nil,   105,   nil,   nil,   nil,   105,   105,
   106,   106,   104,   106,   nil,   104,   106,   104,   nil,   nil,
   nil,   106,   106,   106,   nil,   106,   106,   106,   106,   nil,
   nil,   nil,   nil,   106,   106,   106,   nil,   106,   nil,   nil,
   nil,   106,   106,   107,   107,   105,   107,   nil,   105,   107,
   105,   nil,   nil,   nil,   107,   107,   107,   nil,   107,   107,
   107,   107,   nil,   nil,   nil,   nil,   107,   107,   107,   nil,
   107,   nil,   nil,   nil,   107,   107,   108,   108,   106,   108,
   nil,   106,   108,   106,   nil,   nil,   nil,   108,   108,   108,
   nil,   108,   108,   108,   108,   nil,   nil,   nil,   nil,   108,
   108,   108,   nil,   108,   nil,   nil,   nil,   108,   108,   109,
   109,   107,   109,   nil,   107,   109,   107,   nil,   nil,   nil,
   109,   109,   109,   nil,   109,   109,   109,   109,   nil,   nil,
   nil,   nil,   109,   109,   109,   nil,   109,   nil,   nil,   nil,
   109,   109,   110,   110,   108,   110,   nil,   108,   110,   108,
   nil,   nil,   nil,   110,   110,   110,   nil,   110,   110,   110,
   110,   nil,   nil,   nil,   nil,   110,   110,   110,   nil,   110,
   nil,   nil,   nil,   110,   110,   111,   111,   109,   111,   nil,
   109,   111,   109,   nil,   nil,   nil,   111,   111,   111,   nil,
   111,   111,   111,   111,   nil,   nil,   nil,   nil,   111,   111,
   111,   nil,   111,   nil,   nil,   nil,   111,   111,   112,   112,
   110,   112,   nil,   110,   112,   110,   nil,   nil,   nil,   112,
   112,   112,   nil,   112,   112,   112,   112,   nil,   nil,   nil,
   nil,   112,   112,   112,   nil,   112,   nil,   nil,   nil,   112,
   112,   113,   113,   111,   113,   nil,   111,   113,   111,   nil,
   nil,   nil,   113,   113,   113,   nil,   113,   113,   113,   113,
   nil,   nil,   nil,   nil,   113,   113,   113,   nil,   113,   nil,
   nil,   nil,   113,   113,   114,   114,   112,   114,   nil,   112,
   114,   112,   nil,   nil,   nil,   114,   114,   114,   nil,   114,
   114,   114,   114,   nil,   nil,   nil,   nil,   114,   114,   114,
   nil,   114,   nil,   nil,   nil,   114,   114,   115,   115,   113,
   115,   nil,   113,   115,   113,   nil,   nil,   nil,   115,   115,
   115,   nil,   115,   115,   115,   115,   nil,   nil,   nil,   nil,
   115,   115,   115,   nil,   115,   nil,   nil,   nil,   115,   115,
   116,   116,   114,   116,   nil,   114,   116,   114,   nil,   nil,
   nil,   116,   116,   116,   nil,   116,   116,   116,   116,   nil,
   nil,   nil,   nil,   116,   116,   116,   nil,   116,   nil,   nil,
   nil,   116,   116,   117,   117,   115,   117,   nil,   115,   117,
   115,   nil,   nil,   nil,   117,   117,   117,   nil,   117,   117,
   117,   117,   nil,   nil,   nil,   nil,   117,   117,   117,   nil,
   117,   nil,   nil,   nil,   117,   117,   118,   118,   116,   118,
   nil,   116,   118,   116,   nil,   nil,   nil,   118,   118,   118,
   nil,   118,   118,   118,   118,   nil,   nil,   nil,   nil,   118,
   118,   118,   nil,   118,   nil,   nil,   nil,   118,   118,   119,
   119,   117,   119,   nil,   117,   119,   117,   nil,   nil,   nil,
   119,   119,   119,   nil,   119,   119,   119,   119,   nil,   nil,
   nil,   nil,   119,   119,   119,   nil,   119,   nil,   nil,   nil,
   119,   119,   120,   120,   118,   120,   nil,   118,   120,   118,
   nil,   nil,   nil,   120,   120,   120,   nil,   120,   120,   120,
   120,   nil,   nil,   nil,   nil,   120,   120,   120,   nil,   120,
   nil,   nil,   nil,   120,   120,   121,   121,   119,   121,   nil,
   119,   121,   119,   nil,   nil,   nil,   121,   121,   121,   nil,
   121,   121,   121,   121,   nil,   nil,   nil,   nil,   121,   121,
   121,   nil,   121,   nil,   nil,   nil,   121,   121,   122,   122,
   120,   122,   nil,   120,   122,   120,   nil,   nil,   nil,   122,
   122,   122,   nil,   122,   122,   122,   122,   nil,   nil,   nil,
   nil,   122,   122,   122,   nil,   122,   nil,   nil,   nil,   122,
   122,   123,   123,   121,   123,   nil,   121,   123,   121,   nil,
   nil,   nil,   123,   123,   123,   nil,   123,   123,   123,   123,
   nil,   nil,   nil,   nil,   123,   123,   123,   nil,   123,   nil,
   nil,   nil,   123,   123,   124,   124,   122,   124,   nil,   122,
   124,   122,   nil,   nil,   nil,   124,   124,   124,   nil,   124,
   124,   124,   124,   nil,   nil,   nil,   nil,   124,   124,   124,
   nil,   124,   nil,   nil,   nil,   124,   124,   125,   125,   123,
   125,   nil,   123,   125,   123,   nil,   nil,   nil,   125,   125,
   125,   nil,   125,   125,   125,   125,   nil,   nil,   nil,   nil,
   125,   125,   125,   nil,   125,   nil,   nil,   nil,   125,   125,
   126,   126,   124,   126,   nil,   124,   126,   124,   nil,   nil,
   nil,   126,   126,   126,   nil,   126,   126,   126,   126,   nil,
   nil,   nil,   nil,   126,   126,   126,   nil,   126,   nil,   nil,
   nil,   126,   126,   127,   127,   125,   127,   nil,   125,   127,
   125,   nil,   nil,   nil,   127,   127,   127,   nil,   127,   127,
   127,   127,   nil,   nil,   nil,   nil,   127,   127,   127,   nil,
   127,   nil,   nil,   nil,   127,   127,   128,   128,   126,   128,
   nil,   126,   128,   126,   nil,   nil,   nil,   128,   128,   128,
   nil,   128,   128,   128,   128,   nil,   nil,   nil,   nil,   128,
   128,   128,   nil,   128,   nil,   nil,   nil,   128,   128,   129,
   129,   127,   129,   nil,   127,   129,   127,   nil,   nil,   nil,
   129,   129,   129,   nil,   129,   129,   129,   129,   nil,   nil,
   nil,   nil,   129,   129,   129,   nil,   129,   nil,   nil,   nil,
   129,   129,   130,   130,   128,   130,   nil,   128,   130,   128,
   nil,   nil,   nil,   130,   130,   130,   nil,   130,   130,   130,
   130,   nil,   nil,   nil,   nil,   130,   130,   130,   nil,   130,
   nil,   nil,   nil,   130,   130,   131,   131,   129,   131,   nil,
   129,   131,   129,   nil,   nil,   nil,   131,   131,   131,   nil,
   131,   131,   131,   131,   nil,   nil,   nil,   nil,   131,   131,
   131,   nil,   131,   nil,   nil,   nil,   131,   131,   132,   132,
   130,   132,   nil,   130,   132,   130,   nil,   nil,   nil,   132,
   132,   132,   nil,   132,   132,   132,   132,   nil,   nil,   nil,
   nil,   132,   132,   132,   nil,   132,   nil,   nil,   nil,   132,
   132,   133,   133,   131,   133,   nil,   131,   133,   131,   nil,
   nil,   nil,   133,   133,   133,   nil,   133,   133,   133,   133,
   nil,   nil,   nil,   nil,   133,   133,   133,   nil,   133,   nil,
   nil,   nil,   133,   133,   134,   134,   132,   134,   nil,   132,
   134,   132,   nil,   nil,   nil,   134,   134,   134,   nil,   134,
   134,   134,   134,   nil,   nil,   nil,   nil,   134,   134,   134,
   nil,   134,   nil,   nil,   nil,   134,   134,   135,   135,   133,
   135,   nil,   133,   135,   133,   nil,   nil,   nil,   135,   135,
   135,   nil,   135,   135,   135,   135,   nil,   nil,   nil,   nil,
   135,   135,   135,   nil,   135,   nil,   nil,   nil,   135,   135,
   136,   136,   134,   136,   nil,   134,   136,   134,   nil,   nil,
   nil,   136,   136,   136,   nil,   136,   136,   136,   136,   nil,
   nil,   nil,   nil,   136,   136,   136,   nil,   136,   nil,   nil,
   nil,   136,   136,   137,   137,   135,   137,   nil,   135,   137,
   135,   nil,   nil,   nil,   137,   137,   137,   nil,   137,   137,
   137,   137,   nil,   nil,   nil,   nil,   137,   137,   137,   nil,
   137,   nil,   nil,   nil,   137,   137,   164,   164,   136,   164,
   nil,   136,   164,   136,   nil,   nil,   nil,   164,   164,   164,
   nil,   164,   164,   164,   164,   nil,   nil,   nil,   nil,   164,
   164,   164,   nil,   164,   nil,   nil,   nil,   164,   164,   173,
   173,   137,   173,   nil,   137,   173,   137,   nil,   nil,   nil,
   173,   173,   173,   nil,   173,   173,   173,   173,   nil,   nil,
   173,   nil,   173,   173,   173,   nil,   173,   nil,   nil,   nil,
   173,   173,   180,   180,   164,   180,   nil,   164,   180,   164,
   nil,   nil,   nil,   180,   180,   180,   nil,   180,   180,   180,
   180,   nil,   nil,   nil,   nil,   180,   180,   180,   nil,   180,
   nil,   nil,   nil,   180,   180,   188,   188,   173,   188,   nil,
   173,   188,   173,   nil,   nil,   nil,   188,   188,   188,   nil,
   188,   188,   188,   188,   nil,   nil,   nil,   nil,   188,   188,
   188,   nil,   188,   nil,   nil,   nil,   188,   188,   191,   191,
   180,   191,   nil,   180,   191,   180,   nil,   nil,   nil,   191,
   191,   191,   nil,   191,   191,   191,   191,   nil,   nil,   nil,
   nil,   191,   191,   191,   nil,   191,   nil,   nil,   nil,   191,
   191,   192,   192,   188,   192,   nil,   188,   192,   188,   nil,
   nil,   nil,   192,   192,   192,   nil,   192,   192,   192,   192,
   nil,   nil,   nil,   nil,   192,   192,   192,   nil,   192,   nil,
   nil,   nil,   192,   192,   193,   193,   191,   193,   nil,   191,
   193,   191,   nil,   nil,   nil,   193,   193,   193,   nil,   193,
   193,   193,   193,   nil,   nil,   nil,   nil,   193,   193,   193,
   nil,   193,   nil,   nil,   nil,   193,   193,   194,   194,   192,
   194,   nil,   192,   194,   192,   nil,   nil,   nil,   194,   194,
   194,   nil,   194,   194,   194,   194,   nil,   nil,   nil,   nil,
   194,   194,   194,   nil,   194,   nil,   nil,   nil,   194,   194,
   261,   261,   193,   261,   nil,   193,   261,   193,   nil,   nil,
   nil,   261,   261,   261,   nil,   261,   261,   261,   261,   nil,
   nil,   261,   nil,   261,   261,   261,   nil,   261,   nil,   nil,
   nil,   261,   261,   270,   270,   194,   270,   nil,   194,   270,
   194,   nil,   nil,   nil,   270,   270,   270,   nil,   270,   270,
   270,   270,   nil,   nil,   nil,   nil,   270,   270,   270,   nil,
   270,   nil,   nil,   nil,   270,   270,   272,   272,   261,   272,
   nil,   261,   272,   261,   nil,   nil,   nil,   272,   272,   272,
   nil,   272,   272,   272,   272,   nil,   nil,   nil,   nil,   272,
   272,   272,   nil,   272,   nil,   nil,   nil,   272,   272,   275,
   275,   270,   275,   nil,   270,   275,   270,   nil,   nil,   nil,
   275,   275,   275,   nil,   275,   275,   275,   275,   nil,   nil,
   nil,   nil,   275,   275,   275,   nil,   275,   nil,   nil,   nil,
   275,   275,   nil,   nil,   272,   nil,   nil,   272,   272,   272,
   233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
   233,   233,   233,   233,   233,   233,   233,   233,   nil,   nil,
   nil,   nil,   288,   288,   nil,   288,   nil,   275,   288,   nil,
   275,   nil,   275,   288,   288,   288,   nil,   288,   288,   288,
   288,   nil,   nil,   288,   nil,   288,   288,   288,   233,   288,
   nil,   nil,   nil,   288,   288,   291,   291,   nil,   291,   nil,
   nil,   291,   nil,   nil,   nil,   nil,   291,   291,   291,   nil,
   291,   291,   291,   291,   nil,   nil,   nil,   nil,   291,   291,
   291,   nil,   291,   nil,   nil,   nil,   291,   291,   294,   294,
   288,   294,   nil,   288,   294,   288,   nil,   nil,   nil,   294,
   294,   294,   nil,   294,   294,   294,   294,   nil,   nil,   nil,
   nil,   294,   294,   294,   nil,   294,   nil,   nil,   nil,   294,
   294,   316,   316,   291,   316,   nil,   291,   316,   291,   nil,
   nil,   nil,   316,   316,   316,   nil,   316,   316,   316,   316,
   nil,   nil,   nil,   nil,   316,   316,   316,   nil,   316,   nil,
   nil,   nil,   316,   316,   317,   317,   294,   317,   nil,   294,
   317,   294,   nil,   nil,   nil,   317,   317,   317,   nil,   317,
   317,   317,   317,   nil,   nil,   nil,   nil,   317,   317,   317,
   nil,   317,   nil,   nil,   nil,   317,   317,   319,   319,   316,
   319,   nil,   316,   319,   316,   nil,   nil,   nil,   319,   319,
   319,   nil,   319,   319,   319,   319,   nil,   nil,   nil,   nil,
   319,   319,   319,   nil,   319,   nil,   nil,   nil,   319,   319,
   323,   323,   317,   323,   nil,   317,   323,   317,   nil,   nil,
   nil,   323,   323,   323,   nil,   323,   323,   323,   323,   nil,
   nil,   nil,   nil,   323,   323,   323,   nil,   323,   nil,   nil,
   nil,   323,   323,   326,   326,   319,   326,   nil,   319,   326,
   319,   nil,   nil,   nil,   326,   326,   326,   nil,   326,   326,
   326,   326,   nil,   nil,   nil,   nil,   326,   326,   326,   nil,
   326,   nil,   nil,   nil,   326,   326,   327,   327,   323,   327,
   nil,   323,   327,   323,   nil,   nil,   nil,   327,   327,   327,
   nil,   327,   327,   327,   327,   nil,   nil,   nil,   nil,   327,
   327,   327,   nil,   327,   nil,   nil,   nil,   327,   327,   328,
   328,   326,   328,   nil,   326,   328,   326,   nil,   nil,   nil,
   328,   328,   328,   nil,   328,   328,   328,   328,   nil,   nil,
   nil,   nil,   328,   328,   328,   nil,   328,   nil,   nil,   nil,
   328,   328,   337,   337,   327,   337,   nil,   327,   337,   327,
   nil,   nil,   nil,   337,   337,   337,   nil,   337,   337,   337,
   337,   nil,   nil,   nil,   nil,   337,   337,   337,   nil,   337,
   nil,   nil,   nil,   337,   337,   341,   341,   328,   341,   nil,
   328,   341,   328,   nil,   nil,   nil,   341,   341,   341,   nil,
   341,   341,   341,   341,   nil,   nil,   341,   nil,   341,   341,
   341,   nil,   341,   nil,   nil,   nil,   341,   341,   365,   365,
   337,   365,   nil,   337,   365,   337,   nil,   nil,   nil,   365,
   365,   365,   nil,   365,   365,   365,   365,   nil,   nil,   nil,
   nil,   365,   365,   365,   nil,   365,   nil,   nil,   nil,   365,
   365,   418,   418,   341,   418,   nil,   341,   418,   341,   nil,
   nil,   nil,   418,   418,   418,   nil,   418,   418,   418,   418,
   nil,   nil,   nil,   nil,   418,   418,   418,   nil,   418,   nil,
   nil,   nil,   418,   418,   435,   435,   365,   435,   nil,   365,
   435,   365,   nil,   nil,   nil,   435,   435,   435,   nil,   435,
   435,   435,   435,   nil,   nil,   nil,   nil,   435,   435,   435,
   nil,   435,   nil,   nil,   nil,   435,   435,   437,   437,   418,
   437,   nil,   418,   437,   418,   nil,   nil,   nil,   437,   437,
   437,   nil,   437,   437,   437,   437,   nil,   nil,   nil,   nil,
   437,   437,   437,   nil,   437,   nil,   nil,   nil,   437,   437,
    64,    64,   435,    64,   nil,   435,   nil,   435,   nil,   nil,
   nil,    64,    64,    64,   nil,    64,    64,    64,   nil,   nil,
   nil,   nil,   nil,    64,    64,    64,   nil,    64,   nil,   nil,
   nil,    64,    64,    99,    99,   437,    99,   nil,   437,   nil,
   437,   nil,   nil,   nil,    99,    99,    99,   nil,    99,    99,
    99,    99,   nil,   nil,   nil,   nil,    99,    99,    99,   nil,
    99,   nil,   nil,   nil,    99,    99,   142,   142,    64,   142,
   nil,    64,   nil,   nil,   nil,   nil,   nil,   142,   142,   142,
   nil,   142,   142,   142,   142,   nil,   nil,   nil,   nil,   142,
   142,   142,   nil,   142,   nil,   nil,   nil,   142,   142,   nil,
   nil,    99,   nil,   nil,    99,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   205,   nil,   nil,   nil,   nil,   nil,   238,   238,   238,   238,
   238,   238,   nil,   nil,   142,   nil,   nil,   142,   205,   205,
   205,   205,   205,   205,   205,   205,   205,   205,   205,   205,
   205,   205,   205,   205,   205,   205,   205,   205,   205,   205,
   205,   205,   205,   205,   205,   205,   205,   205,   205,   205,
   205,   205,   205,   206,   238,   nil,   nil,   nil,   nil,   239,
   239,   239,   239,   239,   239,   nil,   205,   nil,   nil,   nil,
   nil,   206,   206,   206,   206,   206,   206,   206,   206,   206,
   206,   206,   206,   206,   206,   206,   206,   206,   206,   206,
   206,   206,   206,   206,   206,   206,   206,   206,   206,   206,
   206,   206,   206,   206,   206,   206,   381,   239,   nil,   nil,
   nil,   nil,   240,   240,   240,   240,   240,   240,   nil,   206,
   nil,   nil,   nil,   nil,   381,   381,   381,   381,   381,   381,
   381,   381,   381,   381,   381,   381,   381,   381,   381,   381,
   381,   381,   381,   381,   381,   381,   381,   381,   381,   381,
   381,   381,   381,   381,   381,   381,   381,   381,   381,   382,
   240,   nil,   nil,   nil,   nil,   241,   241,   241,   241,   241,
   241,   nil,   381,   nil,   nil,   nil,   nil,   382,   382,   382,
   382,   382,   382,   382,   382,   382,   382,   382,   382,   382,
   382,   382,   382,   382,   382,   382,   382,   382,   382,   382,
   382,   382,   382,   382,   382,   382,   382,   382,   382,   382,
   382,   382,   383,   241,   nil,   nil,   nil,   nil,   242,   242,
   242,   242,   242,   242,   nil,   382,   nil,   nil,   nil,   nil,
   383,   383,   383,   383,   383,   383,   383,   383,   383,   383,
   383,   383,   383,   383,   383,   383,   383,   383,   383,   383,
   383,   383,   383,   383,   383,   383,   383,   383,   383,   383,
   383,   383,   383,   383,   383,   439,   242,   nil,   nil,   nil,
   nil,   243,   243,   243,   243,   243,   243,   nil,   383,   nil,
   nil,   nil,   nil,   439,   439,   439,   439,   439,   439,   439,
   439,   439,   439,   439,   439,   439,   439,   439,   439,   439,
   439,   439,   439,   439,   439,   439,   439,   439,   439,   439,
   439,   439,   439,   439,   439,   439,   439,   439,   453,   243,
   nil,   nil,   nil,   244,   244,   244,   244,   244,   244,   nil,
   nil,   439,   nil,   nil,   nil,   nil,   453,   453,   453,   453,
   453,   453,   453,   453,   453,   453,   453,   453,   453,   453,
   453,   453,   453,   453,   453,   453,   453,   453,   453,   453,
   453,   453,   453,   453,   453,   453,   453,   453,   453,   453,
   453,   244,   245,   245,   245,   245,   245,   245,   nil,   nil,
   nil,   nil,   nil,   nil,   453,   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,
   245,   nil,   nil,   nil,   nil,   nil,   145,   246,   246,   246,
   246,   246,   246,   145,   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,   nil,
   nil,   nil,   nil,   nil,   nil,   246,   nil,   nil,   nil,   nil,
   nil,   nil,   156,   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,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   159,   159,   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,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   168,   179,   179,   179,   179,   179,   179,   179,   179,   179,
   179,   179,   179,   179,   179,   179,   179,   179,   179,   179,
   179,   179,   179,   179,   179,   179,   179,   179,   179,   179,
   179,   179,   179,   179,   179,   179,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   179,
   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,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   201,   225,
   225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
   225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
   225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
   225,   225,   225,   225,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   225,   234,   234,
   234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
   234,   234,   234,   234,   234,   234,   253,   253,   253,   253,
   253,   253,   253,   253,   253,   253,   253,   253,   253,   253,
   253,   253,   253,   253,   253,   253,   253,   253,   253,   253,
   253,   253,   253,   253,   253,   253,   234,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   253,   254,   254,   254,   254,   254,
   254,   254,   254,   254,   254,   254,   254,   254,   254,   254,
   254,   254,   254,   254,   254,   254,   254,   254,   254,   254,
   254,   254,   254,   254,   254,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   254,   255,   255,   255,   255,   255,   255,
   255,   255,   255,   255,   255,   255,   255,   255,   255,   255,
   255,   255,   255,   255,   255,   255,   255,   255,   255,   255,
   255,   255,   255,   255,   255,   255,   255,   255,   255,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   255,   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,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   256,   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,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   257,
   257,   259,   259,   259,   259,   259,   259,   259,   259,   259,
   259,   259,   259,   259,   259,   259,   259,   259,   259,   259,
   259,   259,   259,   259,   259,   259,   259,   259,   259,   259,
   259,   259,   259,   259,   259,   259,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   259,   nil,   nil,   259,   259,
   289,   289,   289,   289,   289,   289,   289,   289,   289,   289,
   289,   289,   289,   289,   289,   289,   289,   289,   289,   289,
   289,   289,   289,   289,   289,   289,   289,   289,   289,   289,
   289,   289,   289,   289,   289,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   289,   292,
   292,   292,   292,   292,   292,   292,   292,   292,   292,   292,
   292,   292,   292,   292,   292,   292,   292,   292,   292,   292,
   292,   292,   292,   292,   292,   292,   292,   292,   292,   292,
   292,   292,   292,   292,   nil,   nil,   nil,   nil,   nil,   nil,
   292,   nil,   nil,   nil,   nil,   nil,   nil,   292,   296,   296,
   296,   296,   296,   296,   296,   296,   296,   296,   296,   296,
   296,   296,   296,   296,   296,   296,   296,   296,   296,   296,
   296,   296,   296,   296,   296,   296,   296,   296,   296,   296,
   296,   296,   296,   nil,   nil,   nil,   nil,   nil,   nil,   296,
   nil,   nil,   nil,   nil,   nil,   nil,   296,   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,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   303,   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,
   307,   nil,   nil,   nil,   nil,   nil,   nil,   307,   nil,   nil,
   nil,   nil,   nil,   nil,   307,   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,   308,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   308,   309,   309,   309,   309,   309,   309,
   309,   309,   309,   309,   309,   309,   309,   309,   309,   309,
   309,   309,   309,   309,   309,   309,   309,   309,   309,   309,
   309,   309,   309,   309,   309,   309,   309,   309,   309,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   309,   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,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   310,   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,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   311,   338,   338,   338,   338,   338,   338,   338,   338,   338,
   338,   338,   338,   338,   338,   338,   338,   338,   338,   338,
   338,   338,   338,   338,   338,   338,   338,   338,   338,   338,
   338,   338,   338,   338,   338,   338,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   338,   nil,   nil,   338,   338,
   343,   343,   343,   343,   343,   343,   343,   343,   343,   343,
   343,   343,   343,   343,   343,   343,   343,   343,   343,   343,
   343,   343,   343,   343,   343,   343,   343,   343,   343,   343,
   343,   343,   343,   343,   343,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   343,   347,
   347,   347,   347,   347,   347,   347,   347,   347,   347,   347,
   347,   347,   347,   347,   347,   347,   347,   347,   347,   347,
   347,   347,   347,   347,   347,   347,   347,   347,   347,   347,
   347,   347,   347,   347,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   347,   nil,   nil,   nil,   347,   349,   349,
   349,   349,   349,   349,   349,   349,   349,   349,   349,   349,
   349,   349,   349,   349,   349,   349,   349,   349,   349,   349,
   349,   349,   349,   349,   349,   349,   349,   349,   349,   349,
   349,   349,   349,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   349,   352,   352,   352,
   352,   352,   352,   352,   352,   352,   352,   352,   352,   352,
   352,   352,   352,   352,   352,   352,   352,   352,   352,   352,
   352,   352,   352,   352,   352,   352,   352,   352,   352,   352,
   352,   352,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   352,   358,   358,   358,   358,
   358,   358,   358,   358,   358,   358,   358,   358,   358,   358,
   358,   358,   358,   358,   358,   358,   358,   358,   358,   358,
   358,   358,   358,   358,   358,   358,   358,   358,   358,   358,
   358,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   358,   364,   364,   364,   364,   364,
   364,   364,   364,   364,   364,   364,   364,   364,   364,   364,
   364,   364,   364,   364,   364,   364,   364,   364,   364,   364,
   364,   364,   364,   364,   364,   364,   364,   364,   364,   364,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   364,   372,   372,   372,   372,   372,   372,
   372,   372,   372,   372,   372,   372,   372,   372,   372,   372,
   372,   372,   372,   372,   372,   372,   372,   372,   372,   372,
   372,   372,   372,   372,   372,   372,   372,   372,   372,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   372,   373,   373,   373,   373,   373,   373,   373,
   373,   373,   373,   373,   373,   373,   373,   373,   373,   373,
   373,   373,   373,   373,   373,   373,   373,   373,   373,   373,
   373,   373,   373,   373,   373,   373,   373,   373,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   373,   395,   395,   395,   395,   395,   395,   395,   395,
   395,   395,   395,   395,   395,   395,   395,   395,   395,   395,
   395,   395,   395,   395,   395,   395,   395,   395,   395,   395,
   395,   395,   395,   395,   395,   395,   395,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   395,   398,   398,   398,   398,   398,   398,   398,   398,   398,
   398,   398,   398,   398,   398,   398,   398,   398,   398,   398,
   398,   398,   398,   398,   398,   398,   398,   398,   398,   398,
   398,   398,   398,   398,   398,   398,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   398,
   405,   405,   405,   405,   405,   405,   405,   405,   405,   405,
   405,   405,   405,   405,   405,   405,   405,   405,   405,   405,
   405,   405,   405,   405,   405,   405,   405,   405,   405,   405,
   405,   405,   405,   405,   405,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   405,   452,
   452,   452,   452,   452,   452,   452,   452,   452,   452,   452,
   452,   452,   452,   452,   452,   452,   452,   452,   452,   452,
   452,   452,   452,   452,   452,   452,   452,   452,   452,   452,
   452,   452,   452,   452,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   452 ]

racc_action_pointer = [
    81,   132,   172,    -7,   nil,   nil,   nil,   nil,   209,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    66,
   nil,   nil,    -2,    76,   182,   nil,   nil,   160,   nil,  1805,
   nil,   328,   219,   324,   nil,   225,   nil,   nil,   nil,   nil,
   117,   nil,   342,   229,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,  1838,   nil,  1871,    82,  1904,    -7,  1155,   103,
   nil,  1937,  1970,  2003,  4409,   nil,   348,   nil,   nil,   nil,
   288,   nil,   120,   214,   -42,   nil,   nil,   nil,  2036,   nil,
  2069,  2102,  2135,   nil,   nil,  2168,   178,   322,   317,   324,
   296,   nil,   397,    -3,   263,   354,   311,   362,   nil,  4442,
  2201,  2234,  2267,  2300,  2333,  2366,  2399,  2432,  2465,  2498,
  2531,  2564,  2597,  2630,  2663,  2696,  2729,  2762,  2795,  2828,
  2861,  2894,  2927,  2960,  2993,  3026,  3059,  3092,  3125,  3158,
  3191,  3224,  3257,  3290,  3323,  3356,  3389,  3422,   160,  1045,
   381,   388,  4475,   -89,   nil,  4886,   347,  1218,   401,   nil,
   402,   404,   nil,   nil,   394,   -70,  4935,   -75,   nil,  4984,
   398,   137,   143,   nil,  3455,  1252,   400,   nil,  5033,   400,
   447,  1316,   nil,  3488,   399,   121,  1350,   nil,   404,  5082,
  3521,   126,   -25,   405,   452,   398,   192,   273,  3554,   404,
   nil,  3587,  3620,  3653,  3686,   nil,   nil,   nil,   nil,   456,
   127,  5131,    38,   400,   479,  4519,  4572,   483,   484,   485,
   145,   562,   460,   129,   nil,  1414,   nil,   nil,   nil,   nil,
   569,   660,   283,   751,   842,  5180,  1170,  1266,  1364,  1462,
  1560,  1657,  1755,  3831,  5229,   388,   466,   472,  4507,  4560,
  4613,  4666,  4719,  4772,  4824,  4873,  4928,   516,   780,   406,
   407,   871,   408,  5247,  5296,  5345,  5394,  5443,  1121,  5492,
   413,  3719,   nil,   nil,   nil,   nil,   185,  1448,   417,   nil,
  3752,   nil,  3785,   nil,  1512,  3818,  1546,   135,   144,   nil,
   nil,   218,   231,    54,   145,   233,   155,    67,  3881,  5541,
   256,  3914,  5590,   418,  3947,  1610,  5639,   419,    42,   419,
   423,   423,  1644,  5688,   145,   470,   nil,  5737,  5786,  5835,
  5884,  5933,   472,   185,   188,   225,  3980,  4013,   568,  4046,
   653,   nil,   571,  4079,   574,   575,  4112,  4145,  4178,   nil,
    29,   385,    55,   -26,   499,   517,   521,  4211,  5982,   519,
   nil,  4244,   nil,  6031,   573,   525,   nil,  6080,   nil,  6129,
   nil,   nil,  6178,   562,   nil,   562,   563,   nil,  6227,   577,
   191,   nil,  1707,   nil,  6276,  4277,   nil,   627,   628,   -20,
    -9,   nil,  6325,  6374,   nil,   973,     3,   nil,  1050,   nil,
   nil,  4625,  4678,  4731,   nil,   642,   389,   325,   nil,   648,
   nil,   688,   652,  1741,   nil,  6423,   nil,   nil,  6472,   nil,
   nil,   nil,   nil,   213,   612,  6521,   nil,   nil,   696,   nil,
   241,   614,   623,   nil,   nil,   nil,   370,   677,  4310,   nil,
   734,   736,   741,   742,   nil,   720,   nil,   nil,   716,   670,
   214,   nil,   721,    -7,   722,  4343,   nil,  4376,   744,  4784,
   nil,   nil,   nil,   nil,   nil,   739,   nil,   111,   696,   703,
   nil,   113,  6570,  4837,    66,   835,   786,   787,   753,   791,
   926,    76,   nil,   nil,   114,   nil,   100,   792,   nil ]

racc_action_default = [
    -1,  -259,    -2,    -3,    -4,    -8,    -9,   -10,   -11,   -12,
   -13,   -14,   -15,   -16,   -17,   -18,   -19,   -20,   -21,   -22,
   -23,   -24,   -25,   -26,   -27,   -29,   -30,   -31,   -32,  -116,
   -34,   -35,   -36,   -37,   -38,   -39,   -40,   -49,   -50,   -51,
   -52,   -53,   -54,   -55,   -56,   -57,   -58,   -59,   -60,   -63,
   -64,   -65,   -69,   -72,   -75,  -259,  -116,  -116,  -119,  -116,
  -115,  -116,  -116,  -116,  -116,  -168,  -259,  -177,  -179,  -180,
  -259,  -184,  -116,  -116,  -116,  -200,  -201,  -202,  -217,  -219,
  -116,  -116,  -116,  -228,  -229,  -116,  -116,  -259,  -116,  -116,
  -257,  -258,  -259,    -7,  -116,    -6,  -259,  -259,  -188,  -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,   -83,  -116,
   -28,  -259,  -116,   -26,   -31,  -259,  -259,  -116,   -80,   -94,
   -79,   -81,   -61,   -62,  -182,  -259,   -70,  -259,   -76,  -259,
  -259,  -183,  -185,  -189,  -116,  -116,  -101,  -102,  -127,   -35,
   -37,  -116,   -54,   -69,  -259,  -259,  -116,  -107,  -120,  -123,
  -116,  -111,  -116,  -109,  -259,  -164,  -165,  -166,  -116,  -259,
  -167,  -116,  -116,  -116,  -116,  -181,  -186,  -187,  -117,  -259,
  -259,  -218,  -214,  -259,  -259,  -259,  -259,  -259,  -259,  -259,
  -237,  -245,  -259,  -259,  -255,  -116,   469,    -5,  -183,  -170,
  -129,  -130,  -131,  -132,  -133,  -134,  -135,  -136,  -137,  -138,
  -139,  -140,  -141,  -142,  -143,  -144,  -145,  -146,  -147,  -148,
  -149,  -150,  -151,  -152,  -153,  -154,  -155,  -156,  -157,  -158,
  -159,  -160,  -161,  -162,  -163,  -222,  -225,  -259,  -116,  -259,
  -259,   -93,   -97,   -96,  -169,   -41,   -33,  -116,  -259,   -95,
  -116,   -67,  -116,   -73,  -116,  -116,  -116,  -259,  -190,  -191,
  -192,   -29,   -30,   -35,   -36,   -37,   -39,   -52,   -75,  -259,
  -259,  -116,  -123,  -259,  -116,  -116,  -123,  -259,  -259,   -83,
  -259,  -259,  -116,  -124,  -259,  -116,  -110,  -259,  -171,  -172,
  -173,  -174,  -259,  -204,  -203,  -207,  -116,  -116,  -259,  -116,
  -116,  -246,  -259,  -116,  -259,  -259,  -116,  -116,  -116,  -234,
  -259,  -259,  -244,  -259,  -105,  -122,  -259,  -116,  -259,  -259,
   -86,   -91,   -87,   -92,   -82,   -84,   -99,  -259,   -68,   -71,
   -74,   -77,   -78,  -259,  -193,  -259,  -259,  -100,  -128,  -259,
  -259,  -103,  -116,  -106,  -125,  -116,  -108,  -259,  -116,  -259,
  -208,  -205,  -215,  -216,  -220,  -259,  -244,  -223,  -259,  -227,
  -230,  -259,  -259,  -259,  -235,  -259,  -259,  -243,  -238,  -259,
  -242,  -259,  -116,  -116,  -256,  -226,   -88,   -89,   -90,   -66,
   -98,  -194,  -195,  -114,  -259,  -126,  -112,  -118,  -259,  -206,
  -259,  -259,  -209,  -210,  -221,  -247,  -248,  -259,  -116,  -224,
  -259,  -259,  -259,  -259,  -240,  -259,  -239,  -253,  -259,  -259,
  -113,  -196,  -207,  -259,  -207,  -116,  -249,  -116,  -116,  -259,
  -231,  -232,  -233,  -236,  -241,  -259,  -104,  -259,  -259,  -211,
  -212,  -259,  -213,  -259,  -250,  -116,  -259,  -259,  -207,  -259,
  -116,  -251,  -254,  -197,  -259,  -198,  -252,  -259,  -199 ]

racc_goto_table = [
     2,   154,     3,    95,    27,   169,    27,    96,   210,    98,
   390,   170,   148,   281,   155,   151,   183,   369,   413,   260,
   389,   415,   172,   318,   322,     1,   282,   217,   140,   356,
   284,   286,   209,   351,   166,   214,    97,   200,   335,   336,
   190,   207,   410,   202,   177,   330,   416,   nil,   nil,   nil,
   nil,   208,   nil,   nil,   154,   nil,   nil,   nil,   nil,   nil,
   nil,   436,   nil,   nil,   nil,   390,   nil,   nil,   nil,   nil,
   nil,    96,    96,   196,   197,   425,   nil,   nil,   nil,   nil,
   nil,   450,   nil,   nil,   nil,   175,   nil,   184,   nil,   nil,
   nil,   nil,   160,    95,   nil,   nil,   145,   nil,    27,    27,
    97,    97,   198,   219,   nil,   nil,   181,   nil,   nil,   nil,
   nil,   nil,   283,   nil,    97,   nil,   212,   213,   285,   156,
   nil,   159,   nil,   168,   nil,   179,   324,   325,   185,   186,
   187,   162,   299,   268,   447,   298,   451,   281,   339,   304,
   281,   280,   nil,   291,   nil,   201,   264,   203,   204,   205,
   282,   293,   206,   282,   284,   286,   nil,   284,   286,   nil,
   464,   nil,   301,   nil,   nil,   nil,   nil,   220,   221,   222,
   223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
   233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
   243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
   253,   254,   255,   256,   257,   nil,   259,   nil,   nil,   nil,
   184,   287,   300,   332,   179,    27,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   345,   nil,   nil,   nil,   nil,   181,
   nil,   289,   292,   nil,   nil,   nil,   283,   315,   296,   283,
   156,   nil,   285,   292,   nil,   285,   344,   303,   nil,   nil,
   334,   162,   388,   nil,   391,   307,   nil,   280,   308,   309,
   310,   311,   353,   nil,   148,   nil,   151,   291,   nil,   355,
   nil,   nil,   nil,   nil,   nil,   nil,   314,   nil,   nil,   nil,
   nil,   359,   179,   nil,   nil,   nil,   nil,   nil,   nil,   314,
   408,   nil,   nil,   280,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   420,   421,   422,   nil,   423,   424,   nil,   nil,
   426,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   345,   nil,
   nil,   nil,   376,   nil,    27,   338,   nil,   nil,   343,   nil,
   nil,   nil,    95,   367,   179,   287,   143,   347,   287,   349,
   344,   159,   352,   179,   nil,   nil,   444,   nil,   404,   nil,
   nil,   nil,   nil,   nil,   nil,   159,   nil,   nil,   289,   nil,
   nil,   358,   179,   nil,   174,   nil,   456,   nil,   457,   364,
   nil,   189,   459,   nil,   nil,   nil,    95,   nil,   387,   429,
   nil,   nil,   nil,   372,   373,   467,   375,   nil,   nil,   nil,
   378,   nil,   nil,   381,   382,   383,   407,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   395,   nil,   189,   nil,   398,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   428,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   179,
   nil,   nil,   405,   387,   nil,   nil,   nil,   nil,   nil,   nil,
   454,   nil,    27,   nil,   nil,   nil,   nil,   nil,   nil,   189,
   nil,   nil,   nil,   nil,    95,   nil,   nil,   461,   nil,    27,
   179,    95,   466,   nil,    27,   nil,    95,   nil,   nil,   nil,
   nil,   nil,   143,   nil,   nil,   nil,   nil,   nil,   143,   nil,
   nil,   nil,   nil,   143,   nil,   439,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   143,   nil,   nil,   nil,   nil,
   nil,   nil,   452,   nil,   453 ]

racc_goto_check = [
     2,    50,     3,     2,    28,    31,    28,    42,    70,    64,
    40,    33,    49,    26,    45,    49,    58,    69,    72,    52,
    76,    77,    41,    74,    74,     1,    27,     4,    25,    37,
    32,    35,    44,    48,    56,    57,    53,    59,    60,    61,
    62,    65,    71,    73,    55,    75,    78,   nil,   nil,   nil,
   nil,    41,   nil,   nil,    50,   nil,   nil,   nil,   nil,   nil,
   nil,    77,   nil,   nil,   nil,    40,   nil,   nil,   nil,   nil,
   nil,    42,    42,    64,    64,    76,   nil,   nil,   nil,   nil,
   nil,    72,   nil,   nil,   nil,    53,   nil,    53,   nil,   nil,
   nil,   nil,    54,     2,   nil,   nil,    22,   nil,    28,    28,
    53,    53,    53,    28,   nil,   nil,    38,   nil,   nil,   nil,
   nil,   nil,    31,   nil,    53,   nil,    53,    53,    33,    22,
   nil,    22,   nil,    22,   nil,    22,    70,    70,    22,    22,
    22,    66,    50,    55,    69,    45,    69,    26,    52,    58,
    26,    67,   nil,    67,   nil,    22,    28,    22,    22,    22,
    27,    55,    22,    27,    32,    35,   nil,    32,    35,   nil,
    69,   nil,    55,   nil,   nil,   nil,   nil,    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,    22,
    22,    22,    22,    22,    22,   nil,    22,   nil,   nil,   nil,
    53,    38,    54,     3,    22,    28,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,    50,   nil,   nil,   nil,   nil,    38,
   nil,    22,    22,   nil,   nil,   nil,    31,    54,    22,    31,
    22,   nil,    33,    22,   nil,    33,    49,    22,   nil,   nil,
    54,    66,    70,   nil,    70,    22,   nil,    67,    22,    22,
    22,    22,    55,   nil,    49,   nil,    49,    67,   nil,    67,
   nil,   nil,   nil,   nil,   nil,   nil,    66,   nil,   nil,   nil,
   nil,    55,    22,   nil,   nil,   nil,   nil,   nil,   nil,    66,
    70,   nil,   nil,    67,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,    70,    70,    70,   nil,    70,    70,   nil,   nil,
    70,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    50,   nil,
   nil,   nil,     3,   nil,    28,    22,   nil,   nil,    22,   nil,
   nil,   nil,     2,    53,    22,    38,    23,    22,    38,    22,
    49,    22,    22,    22,   nil,   nil,    70,   nil,    55,   nil,
   nil,   nil,   nil,   nil,   nil,    22,   nil,   nil,    22,   nil,
   nil,    22,    22,   nil,    23,   nil,    70,   nil,    70,    22,
   nil,    23,    70,   nil,   nil,   nil,     2,   nil,    38,    55,
   nil,   nil,   nil,    22,    22,    70,    22,   nil,   nil,   nil,
    22,   nil,   nil,    22,    22,    22,    53,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,    22,   nil,    23,   nil,    22,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    53,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    22,
   nil,   nil,    22,    38,   nil,   nil,   nil,   nil,   nil,   nil,
     3,   nil,    28,   nil,   nil,   nil,   nil,   nil,   nil,    23,
   nil,   nil,   nil,   nil,     2,   nil,   nil,     3,   nil,    28,
    22,     2,     3,   nil,    28,   nil,     2,   nil,   nil,   nil,
   nil,   nil,    23,   nil,   nil,   nil,   nil,   nil,    23,   nil,
   nil,   nil,   nil,    23,   nil,    22,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,    23,   nil,   nil,   nil,   nil,
   nil,   nil,    22,   nil,    22 ]

racc_goto_pointer = [
   nil,    25,     0,     2,   -68,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,    67,   307,   nil,     4,  -151,  -138,     4,   nil,
   nil,   -52,  -134,   -46,   nil,  -133,   nil,  -262,    47,   nil,
  -321,   -35,    -1,   nil,   -54,   -38,   nil,   nil,  -241,   -20,
   -42,   nil,  -120,    28,    37,   -14,   -22,   -54,   -43,   -37,
  -177,  -176,   -24,   nil,     1,   -45,    76,   -21,   nil,  -298,
   -79,  -328,  -352,   -35,  -180,  -165,  -311,  -355,  -330 ]

racc_goto_default = [
   nil,   nil,    94,    93,     4,     5,     6,     7,     8,     9,
    10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    20,    21,    22,    23,    24,   nil,    25,    26,   144,    28,
    30,    31,    32,    33,    34,    35,    36,   290,    40,    39,
    41,    42,    43,    51,    67,   nil,    53,   157,   158,   150,
   138,    68,   nil,    55,   nil,   297,   nil,   nil,   nil,   nil,
   178,   nil,    65,    66,    71,    69,   278,   163,    74,   nil,
   321,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil ]

racc_reduce_table = [
  0, 0, :racc_error,
  0, 99, :_reduce_1,
  1, 99, :_reduce_2,
  1, 99, :_reduce_3,
  1, 101, :_reduce_4,
  3, 101, :_reduce_5,
  2, 101, :_reduce_6,
  2, 101, :_reduce_7,
  1, 102, :_reduce_8,
  1, 102, :_reduce_9,
  1, 102, :_reduce_10,
  1, 102, :_reduce_11,
  1, 102, :_reduce_12,
  1, 102, :_reduce_13,
  1, 102, :_reduce_14,
  1, 102, :_reduce_15,
  1, 102, :_reduce_16,
  1, 102, :_reduce_17,
  1, 102, :_reduce_18,
  1, 102, :_reduce_19,
  1, 102, :_reduce_20,
  1, 102, :_reduce_21,
  1, 102, :_reduce_22,
  1, 102, :_reduce_23,
  1, 102, :_reduce_24,
  1, 102, :_reduce_25,
  1, 120, :_reduce_26,
  1, 120, :_reduce_27,
  2, 120, :_reduce_28,
  1, 120, :_reduce_29,
  1, 120, :_reduce_30,
  1, 120, :_reduce_31,
  1, 120, :_reduce_32,
  3, 120, :_reduce_33,
  1, 121, :_reduce_34,
  1, 121, :_reduce_35,
  1, 121, :_reduce_36,
  1, 121, :_reduce_37,
  1, 121, :_reduce_38,
  1, 121, :_reduce_39,
  1, 121, :_reduce_40,
  3, 121, :_reduce_41,
  1, 135, :_reduce_42,
  1, 135, :_reduce_43,
  1, 135, :_reduce_44,
  1, 135, :_reduce_45,
  1, 135, :_reduce_46,
  1, 135, :_reduce_47,
  1, 135, :_reduce_48,
  1, 100, :_reduce_49,
  1, 100, :_reduce_50,
  1, 132, :_reduce_51,
  1, 132, :_reduce_52,
  1, 132, :_reduce_53,
  1, 132, :_reduce_54,
  1, 132, :_reduce_55,
  1, 132, :_reduce_56,
  1, 132, :_reduce_57,
  1, 137, :_reduce_58,
  1, 136, :_reduce_59,
  1, 136, :_reduce_60,
  2, 136, :_reduce_61,
  2, 136, :_reduce_62,
  1, 138, :_reduce_63,
  1, 140, :_reduce_64,
  1, 139, :_reduce_65,
  5, 142, :_reduce_66,
  3, 141, :_reduce_67,
  4, 141, :_reduce_68,
  0, 143, :_reduce_69,
  1, 143, :_reduce_70,
  3, 143, :_reduce_71,
  1, 122, :_reduce_72,
  3, 144, :_reduce_73,
  4, 144, :_reduce_74,
  0, 145, :_reduce_75,
  1, 145, :_reduce_76,
  3, 145, :_reduce_77,
  3, 146, :_reduce_78,
  2, 129, :_reduce_79,
  2, 129, :_reduce_80,
  2, 129, :_reduce_81,
  4, 129, :_reduce_82,
  2, 130, :_reduce_83,
  4, 130, :_reduce_84,
  2, 149, :_reduce_85,
  3, 148, :_reduce_86,
  3, 148, :_reduce_87,
  4, 148, :_reduce_88,
  4, 148, :_reduce_89,
  3, 150, :_reduce_90,
  2, 150, :_reduce_91,
  2, 150, :_reduce_92,
  1, 150, :_reduce_93,
  1, 147, :_reduce_94,
  2, 147, :_reduce_95,
  2, 123, :_reduce_96,
  2, 123, :_reduce_97,
  5, 133, :_reduce_98,
  4, 133, :_reduce_99,
  4, 133, :_reduce_100,
  2, 133, :_reduce_101,
  2, 133, :_reduce_102,
  4, 133, :_reduce_103,
  5, 155, :_reduce_104,
  2, 155, :_reduce_105,
  4, 115, :_reduce_106,
  2, 115, :_reduce_107,
  4, 116, :_reduce_108,
  2, 116, :_reduce_109,
  2, 156, :_reduce_110,
  1, 156, :_reduce_111,
  4, 156, :_reduce_112,
  6, 103, :_reduce_113,
  5, 103, :_reduce_114,
  1, 151, :_reduce_115,
  0, 151, :_reduce_116,
  1, 157, :_reduce_117,
  4, 157, :_reduce_118,
  0, 153, :_reduce_119,
  1, 153, :_reduce_120,
  0, 159, :_reduce_121,
  1, 159, :_reduce_122,
  1, 158, :_reduce_123,
  2, 158, :_reduce_124,
  3, 158, :_reduce_125,
  4, 158, :_reduce_126,
  1, 154, :_reduce_127,
  3, 154, :_reduce_128,
  3, 124, :_reduce_129,
  3, 124, :_reduce_130,
  3, 124, :_reduce_131,
  3, 124, :_reduce_132,
  3, 124, :_reduce_133,
  3, 124, :_reduce_134,
  3, 124, :_reduce_135,
  3, 124, :_reduce_136,
  3, 124, :_reduce_137,
  3, 124, :_reduce_138,
  3, 124, :_reduce_139,
  3, 124, :_reduce_140,
  3, 124, :_reduce_141,
  3, 124, :_reduce_142,
  3, 124, :_reduce_143,
  3, 124, :_reduce_144,
  3, 124, :_reduce_145,
  3, 124, :_reduce_146,
  3, 124, :_reduce_147,
  3, 124, :_reduce_148,
  3, 124, :_reduce_149,
  3, 124, :_reduce_150,
  3, 124, :_reduce_151,
  3, 124, :_reduce_152,
  3, 124, :_reduce_153,
  3, 124, :_reduce_154,
  3, 124, :_reduce_155,
  3, 124, :_reduce_156,
  3, 124, :_reduce_157,
  3, 124, :_reduce_158,
  3, 124, :_reduce_159,
  3, 124, :_reduce_160,
  3, 124, :_reduce_161,
  3, 124, :_reduce_162,
  3, 124, :_reduce_163,
  2, 128, :_reduce_164,
  2, 128, :_reduce_165,
  2, 128, :_reduce_166,
  2, 126, :_reduce_167,
  1, 126, :_reduce_168,
  3, 117, :_reduce_169,
  3, 117, :_reduce_170,
  3, 160, :_reduce_171,
  3, 160, :_reduce_172,
  3, 160, :_reduce_173,
  3, 160, :_reduce_174,
  1, 161, :_reduce_175,
  1, 161, :_reduce_176,
  1, 161, :_reduce_177,
  1, 161, :_reduce_178,
  1, 161, :_reduce_179,
  1, 162, :_reduce_180,
  2, 162, :_reduce_181,
  2, 162, :_reduce_182,
  2, 163, :_reduce_183,
  1, 131, :_reduce_184,
  2, 131, :_reduce_185,
  2, 106, :_reduce_186,
  2, 106, :_reduce_187,
  2, 106, :_reduce_188,
  1, 164, :_reduce_189,
  2, 164, :_reduce_190,
  2, 164, :_reduce_191,
  2, 164, :_reduce_192,
  3, 165, :_reduce_193,
  4, 165, :_reduce_194,
  4, 165, :_reduce_195,
  6, 104, :_reduce_196,
  9, 104, :_reduce_197,
  9, 104, :_reduce_198,
  11, 104, :_reduce_199,
  1, 166, :_reduce_200,
  1, 166, :_reduce_201,
  1, 166, :_reduce_202,
  1, 152, :_reduce_203,
  1, 152, :_reduce_204,
  1, 167, :_reduce_205,
  2, 167, :_reduce_206,
  0, 167, :_reduce_207,
  0, 169, :_reduce_208,
  1, 169, :_reduce_209,
  1, 169, :_reduce_210,
  3, 169, :_reduce_211,
  3, 169, :_reduce_212,
  3, 170, :_reduce_213,
  2, 105, :_reduce_214,
  4, 105, :_reduce_215,
  4, 105, :_reduce_216,
  0, 171, :_reduce_217,
  1, 171, :_reduce_218,
  1, 114, :_reduce_219,
  4, 118, :_reduce_220,
  5, 118, :_reduce_221,
  3, 118, :_reduce_222,
  4, 119, :_reduce_223,
  5, 119, :_reduce_224,
  3, 119, :_reduce_225,
  5, 125, :_reduce_226,
  4, 109, :_reduce_227,
  1, 113, :_reduce_228,
  1, 113, :_reduce_229,
  4, 110, :_reduce_230,
  6, 108, :_reduce_231,
  6, 108, :_reduce_232,
  6, 108, :_reduce_233,
  3, 111, :_reduce_234,
  4, 111, :_reduce_235,
  6, 111, :_reduce_236,
  0, 173, :_reduce_237,
  2, 173, :_reduce_238,
  3, 173, :_reduce_239,
  3, 173, :_reduce_240,
  4, 173, :_reduce_241,
  1, 174, :_reduce_242,
  1, 174, :_reduce_243,
  2, 168, :_reduce_244,
  1, 168, :_reduce_245,
  1, 172, :_reduce_246,
  3, 172, :_reduce_247,
  3, 172, :_reduce_248,
  4, 172, :_reduce_249,
  3, 175, :_reduce_250,
  4, 176, :_reduce_251,
  5, 176, :_reduce_252,
  5, 112, :_reduce_253,
  8, 112, :_reduce_254,
  2, 134, :_reduce_255,
  4, 127, :_reduce_256,
  1, 127, :_reduce_257,
  1, 107, :_reduce_258 ]

racc_reduce_n = 259

racc_shift_n = 469

racc_token_table = {
  false => 0,
  :error => 1,
  :IF => 2,
  :ELSE => 3,
  :ELSEIF => 4,
  :THEN => 5,
  :UNLESS => 6,
  :END => 7,
  :WHILE => 8,
  :UNTIL => 9,
  :BREAK => 10,
  :CONTINUE => 11,
  :TRY => 12,
  :CATCH => 13,
  :FINALLY => 14,
  :FOR => 15,
  :IN => 16,
  :DEF => 17,
  :DEF_BANG => 18,
  :SPLAT_PARAM => 19,
  :SPLAT_ARG => 20,
  :CALL => 21,
  :BUILTIN_COMMAND => 22,
  :CLASS => 23,
  :NEW => 24,
  :DEFM => 25,
  :DEFM_BANG => 26,
  :SUPER => 27,
  :RIML_FILE_COMMAND => 28,
  :RIML_CLASS_COMMAND => 29,
  :RETURN => 30,
  :NEWLINE => 31,
  :NUMBER => 32,
  :STRING_D => 33,
  :STRING_S => 34,
  :EX_LITERAL => 35,
  :REGEXP => 36,
  :TRUE => 37,
  :FALSE => 38,
  :LET => 39,
  :UNLET => 40,
  :UNLET_BANG => 41,
  :IDENTIFIER => 42,
  :DICT_VAL => 43,
  :SCOPE_MODIFIER => 44,
  :SCOPE_MODIFIER_LITERAL => 45,
  :SPECIAL_VAR_PREFIX => 46,
  :FINISH => 47,
  "!" => 48,
  "*" => 49,
  "/" => 50,
  "%" => 51,
  "+" => 52,
  "-" => 53,
  "." => 54,
  ">" => 55,
  ">#" => 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,
  :ISNOT => 80,
  "&&" => 81,
  "||" => 82,
  "?" => 83,
  "=" => 84,
  "+=" => 85,
  "-=" => 86,
  ".=" => 87,
  "," => 88,
  "(" => 89,
  ")" => 90,
  ";" => 91,
  "[" => 92,
  "]" => 93,
  "{" => 94,
  "}" => 95,
  ":" => 96,
  "===" => 97 }

racc_nt_base = 98

racc_use_result_var = true

Racc_arg = [
  racc_action_table,
  racc_action_check,
  racc_action_default,
  racc_action_pointer,
  racc_goto_table,
  racc_goto_check,
  racc_goto_default,
  racc_goto_pointer,
  racc_nt_base,
  racc_reduce_table,
  racc_token_table,
  racc_shift_n,
  racc_reduce_n,
  racc_use_result_var ]
Ractor.make_shareable(Racc_arg) if defined?(Ractor)

Racc_token_to_s_table = [
  "$end",
  "error",
  "IF",
  "ELSE",
  "ELSEIF",
  "THEN",
  "UNLESS",
  "END",
  "WHILE",
  "UNTIL",
  "BREAK",
  "CONTINUE",
  "TRY",
  "CATCH",
  "FINALLY",
  "FOR",
  "IN",
  "DEF",
  "DEF_BANG",
  "SPLAT_PARAM",
  "SPLAT_ARG",
  "CALL",
  "BUILTIN_COMMAND",
  "CLASS",
  "NEW",
  "DEFM",
  "DEFM_BANG",
  "SUPER",
  "RIML_FILE_COMMAND",
  "RIML_CLASS_COMMAND",
  "RETURN",
  "NEWLINE",
  "NUMBER",
  "STRING_D",
  "STRING_S",
  "EX_LITERAL",
  "REGEXP",
  "TRUE",
  "FALSE",
  "LET",
  "UNLET",
  "UNLET_BANG",
  "IDENTIFIER",
  "DICT_VAL",
  "SCOPE_MODIFIER",
  "SCOPE_MODIFIER_LITERAL",
  "SPECIAL_VAR_PREFIX",
  "FINISH",
  "\"!\"",
  "\"*\"",
  "\"/\"",
  "\"%\"",
  "\"+\"",
  "\"-\"",
  "\".\"",
  "\">\"",
  "\">#\"",
  "\">?\"",
  "\"<\"",
  "\"<#\"",
  "\"<?\"",
  "\">=\"",
  "\">=#\"",
  "\">=?\"",
  "\"<=\"",
  "\"<=#\"",
  "\"<=?\"",
  "\"==\"",
  "\"==?\"",
  "\"==#\"",
  "\"=~\"",
  "\"=~?\"",
  "\"=~#\"",
  "\"!~\"",
  "\"!~?\"",
  "\"!~#\"",
  "\"!=\"",
  "\"!=?\"",
  "\"!=#\"",
  "IS",
  "ISNOT",
  "\"&&\"",
  "\"||\"",
  "\"?\"",
  "\"=\"",
  "\"+=\"",
  "\"-=\"",
  "\".=\"",
  "\",\"",
  "\"(\"",
  "\")\"",
  "\";\"",
  "\"[\"",
  "\"]\"",
  "\"{\"",
  "\"}\"",
  "\":\"",
  "\"===\"",
  "$start",
  "Root",
  "Terminator",
  "Statements",
  "Statement",
  "ExplicitCall",
  "Def",
  "Return",
  "UnletVariable",
  "ExLiteral",
  "For",
  "While",
  "Until",
  "Try",
  "ClassDefinition",
  "LoopKeyword",
  "EndScript",
  "RimlFileCommand",
  "RimlClassCommand",
  "MultiAssign",
  "If",
  "Unless",
  "Expression",
  "ExpressionWithoutDictLiteral",
  "Dictionary",
  "DictGetWithDotLiteral",
  "BinaryOperator",
  "Ternary",
  "Assign",
  "Super",
  "UnaryOperator",
  "DictGet",
  "ListOrDictGet",
  "AllVariableRetrieval",
  "LiteralWithoutDictLiteral",
  "Call",
  "ObjectInstantiation",
  "PossibleStringValue",
  "String",
  "Number",
  "Regexp",
  "List",
  "ScopeModifierLiteral",
  "ListLiteral",
  "ListUnpack",
  "ListItems",
  "DictionaryLiteral",
  "DictItems",
  "DictItem",
  "DictGetWithDot",
  "ListOrDictGetWithBrackets",
  "ListOrDictGetAssign",
  "SubList",
  "Scope",
  "DefCallIdentifier",
  "ArgList",
  "ArgListWithoutNothing",
  "ObjectInstantiationCall",
  "ClassArgList",
  "SIDAndScope",
  "ArgListWithoutNothingWithSplat",
  "ArgListWithSplat",
  "AssignExpression",
  "AssignLHS",
  "VariableRetrieval",
  "SimpleVariableRetrieval",
  "CurlyBraceName",
  "CurlyBraceVarPart",
  "FunctionType",
  "DefKeywords",
  "Block",
  "ParamList",
  "DefaultParam",
  "Returnable",
  "IfBlock",
  "Catch",
  "Catchable",
  "ElseBlock",
  "ElseifBlock" ]
Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)

Racc_debug_parser = false

##### State transition tables end #####

# reduce 0 omitted

module_eval(<<'.,.,', 'riml.y', 61)
  def _reduce_1(val, _values, result)
     result = make_node(val) { |_| Riml::Nodes.new([]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 62)
  def _reduce_2(val, _values, result)
     result = make_node(val) { |_| Riml::Nodes.new([]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 63)
  def _reduce_3(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 68)
  def _reduce_4(val, _values, result)
     result = make_node(val) { |v| Riml::Nodes.new([ v[0] ]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 69)
  def _reduce_5(val, _values, result)
     result = val[0] << val[2]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 70)
  def _reduce_6(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 71)
  def _reduce_7(val, _values, result)
     result = make_node(val) { |v| Riml::Nodes.new(v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 76)
  def _reduce_8(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 77)
  def _reduce_9(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 78)
  def _reduce_10(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 79)
  def _reduce_11(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 80)
  def _reduce_12(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 81)
  def _reduce_13(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 82)
  def _reduce_14(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 83)
  def _reduce_15(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 84)
  def _reduce_16(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 85)
  def _reduce_17(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 86)
  def _reduce_18(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 87)
  def _reduce_19(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 88)
  def _reduce_20(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 89)
  def _reduce_21(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 90)
  def _reduce_22(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 91)
  def _reduce_23(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 92)
  def _reduce_24(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 93)
  def _reduce_25(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 97)
  def _reduce_26(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 98)
  def _reduce_27(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 99)
  def _reduce_28(val, _values, result)
     result = make_node(val) { |v| Riml::DictGetDotNode.new(v[0], v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 100)
  def _reduce_29(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 101)
  def _reduce_30(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 102)
  def _reduce_31(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 103)
  def _reduce_32(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 104)
  def _reduce_33(val, _values, result)
     result = make_node(val) { |v| Riml::WrapInParensNode.new(v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 108)
  def _reduce_34(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 109)
  def _reduce_35(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 110)
  def _reduce_36(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 111)
  def _reduce_37(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 112)
  def _reduce_38(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 113)
  def _reduce_39(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 114)
  def _reduce_40(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 115)
  def _reduce_41(val, _values, result)
     result = make_node(val) { |v| Riml::WrapInParensNode.new(v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 120)
  def _reduce_42(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 121)
  def _reduce_43(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 122)
  def _reduce_44(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 123)
  def _reduce_45(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 124)
  def _reduce_46(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 125)
  def _reduce_47(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 126)
  def _reduce_48(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 130)
  def _reduce_49(val, _values, result)
     result = nil
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 131)
  def _reduce_50(val, _values, result)
     result = nil
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 135)
  def _reduce_51(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 136)
  def _reduce_52(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 137)
  def _reduce_53(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 138)
  def _reduce_54(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 139)
  def _reduce_55(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 140)
  def _reduce_56(val, _values, result)
     result = make_node(val) { |_| Riml::TrueNode.new }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 141)
  def _reduce_57(val, _values, result)
     result = make_node(val) { |_| Riml::FalseNode.new }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 145)
  def _reduce_58(val, _values, result)
     result = make_node(val) { |v| Riml::NumberNode.new(v[0]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 149)
  def _reduce_59(val, _values, result)
     result = make_node(val) { |v| Riml::StringNode.new(v[0], :s) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 150)
  def _reduce_60(val, _values, result)
     result = make_node(val) { |v| Riml::StringNode.new(v[0], :d) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 151)
  def _reduce_61(val, _values, result)
     result = make_node(val) { |v| Riml::StringLiteralConcatNode.new(v[0], Riml::StringNode.new(v[1], :s)) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 152)
  def _reduce_62(val, _values, result)
     result = make_node(val) { |v| Riml::StringLiteralConcatNode.new(v[0], Riml::StringNode.new(v[1], :d)) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 156)
  def _reduce_63(val, _values, result)
     result = make_node(val) { |v| Riml::RegexpNode.new(v[0]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 160)
  def _reduce_64(val, _values, result)
     result = make_node(val) { |v| Riml::ScopeModifierLiteralNode.new(v[0]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 164)
  def _reduce_65(val, _values, result)
     result = make_node(val) { |v| Riml::ListNode.new(v[0]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 168)
  def _reduce_66(val, _values, result)
     result = make_node(val) { |v| Riml::ListUnpackNode.new(v[1] << v[3]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 172)
  def _reduce_67(val, _values, result)
     result = val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 173)
  def _reduce_68(val, _values, result)
     result = val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 177)
  def _reduce_69(val, _values, result)
     result = []
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 178)
  def _reduce_70(val, _values, result)
     result = [val[0]]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 179)
  def _reduce_71(val, _values, result)
     result = val[0] << val[2]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 183)
  def _reduce_72(val, _values, result)
     result = make_node(val) { |v| Riml::DictionaryNode.new(v[0]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 190)
  def _reduce_73(val, _values, result)
     result = val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 191)
  def _reduce_74(val, _values, result)
     result = val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 196)
  def _reduce_75(val, _values, result)
     result = []
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 197)
  def _reduce_76(val, _values, result)
     result = val
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 198)
  def _reduce_77(val, _values, result)
     result = val[0] << val[2]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 203)
  def _reduce_78(val, _values, result)
     result = [val[0], val[2]]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 207)
  def _reduce_79(val, _values, result)
     result = make_node(val) { |v| Riml::DictGetDotNode.new(v[0], v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 208)
  def _reduce_80(val, _values, result)
     result = make_node(val) { |v| Riml::DictGetDotNode.new(v[0], v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 209)
  def _reduce_81(val, _values, result)
     result = make_node(val) { |v| Riml::DictGetDotNode.new(v[0], v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 210)
  def _reduce_82(val, _values, result)
     result = make_node(val) { |v| Riml::DictGetDotNode.new(Riml::WrapInParensNode.new(v[1]), v[3]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 214)
  def _reduce_83(val, _values, result)
     result = make_node(val) { |v| Riml::ListOrDictGetNode.new(v[0], v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 215)
  def _reduce_84(val, _values, result)
     result = make_node(val) { |v| Riml::ListOrDictGetNode.new(Riml::WrapInParensNode.new(v[1]), v[3]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 219)
  def _reduce_85(val, _values, result)
     result = make_node(val) { |v| Riml::ListOrDictGetNode.new(v[0], v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 223)
  def _reduce_86(val, _values, result)
     result = [val[1]]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 224)
  def _reduce_87(val, _values, result)
     result = [val[1]]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 225)
  def _reduce_88(val, _values, result)
     result = val[0] << val[2]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 226)
  def _reduce_89(val, _values, result)
     result = val[0] << val[2]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 230)
  def _reduce_90(val, _values, result)
     result = make_node(val) { |v| Riml::SublistNode.new([v[0], Riml::LiteralNode.new(' : '), v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 231)
  def _reduce_91(val, _values, result)
     result = make_node(val) { |v| Riml::SublistNode.new([v[0], Riml::LiteralNode.new(' :')]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 232)
  def _reduce_92(val, _values, result)
     result = make_node(val) { |v| Riml::SublistNode.new([Riml::LiteralNode.new(': '), v[1]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 233)
  def _reduce_93(val, _values, result)
     result = make_node(val) { |_| Riml::SublistNode.new([Riml::LiteralNode.new(':')]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 237)
  def _reduce_94(val, _values, result)
     result = [val[0]]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 238)
  def _reduce_95(val, _values, result)
     result = val[0] << val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 242)
  def _reduce_96(val, _values, result)
     result = [val[1]]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 243)
  def _reduce_97(val, _values, result)
     result = val[0] << val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 247)
  def _reduce_98(val, _values, result)
     result = make_node(val) { |v| Riml::CallNode.new(v[0], v[1], v[3]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 248)
  def _reduce_99(val, _values, result)
     result = make_node(val) { |v| Riml::CallNode.new(nil, v[0], v[2]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 249)
  def _reduce_100(val, _values, result)
     result = make_node(val) { |v| Riml::CallNode.new(nil, v[0], v[2]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 250)
  def _reduce_101(val, _values, result)
     result = make_node(val) { |v| Riml::CallNode.new(nil, v[0], v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 251)
  def _reduce_102(val, _values, result)
     result = make_node(val) { |v| Riml::CallNode.new(nil, v[0], []) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 252)
  def _reduce_103(val, _values, result)
     result = make_node(val) { |v| Riml::ExplicitCallNode.new(nil, nil, v[2]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 256)
  def _reduce_104(val, _values, result)
     result = make_node(val) { |v| Riml::CallNode.new(v[0], v[1], v[3]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 257)
  def _reduce_105(val, _values, result)
     result = make_node(val) { |v| Riml::CallNode.new(v[0], v[1], []) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 261)
  def _reduce_106(val, _values, result)
     result = make_node(val) { |v| Riml::RimlFileCommandNode.new(nil, v[0], v[2]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 262)
  def _reduce_107(val, _values, result)
     result = make_node(val) { |v| Riml::RimlFileCommandNode.new(nil, v[0], v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 266)
  def _reduce_108(val, _values, result)
     result = make_node(val) { |v| Riml::RimlClassCommandNode.new(nil, v[0], v[2]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 267)
  def _reduce_109(val, _values, result)
     result = make_node(val) { |v| Riml::RimlClassCommandNode.new(nil, v[0], v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 271)
  def _reduce_110(val, _values, result)
     result = ["#{val[0]}#{val[1]}"]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 272)
  def _reduce_111(val, _values, result)
     result = val
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 273)
  def _reduce_112(val, _values, result)
     result = val[0].concat ["#{val[2]}#{val[3]}"]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 277)
  def _reduce_113(val, _values, result)
     result = make_node(val) { |v| Riml::ExplicitCallNode.new(v[1], v[2], v[4]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 278)
  def _reduce_114(val, _values, result)
     result = make_node(val) { |v| Riml::ExplicitCallNode.new(nil, v[1], v[3]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 282)
  def _reduce_115(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 283)
  def _reduce_116(val, _values, result)
     result = nil
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 288)
  def _reduce_117(val, _values, result)
     result = [ nil, val[0] ]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 289)
  def _reduce_118(val, _values, result)
     result = [ make_node(val) { |v| Riml::SIDNode.new(v[1]) }, val[3] ]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 293)
  def _reduce_119(val, _values, result)
     result = []
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 294)
  def _reduce_120(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 298)
  def _reduce_121(val, _values, result)
     result = []
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 299)
  def _reduce_122(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 303)
  def _reduce_123(val, _values, result)
     result = val
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 304)
  def _reduce_124(val, _values, result)
     result = [ make_node(val) { |v| Riml::SplatNode.new(v[1]) } ]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 305)
  def _reduce_125(val, _values, result)
     result = val[0] << val[2]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 306)
  def _reduce_126(val, _values, result)
     result = val[0] << make_node(val) { |v| Riml::SplatNode.new(v[3]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 310)
  def _reduce_127(val, _values, result)
     result = val
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 311)
  def _reduce_128(val, _values, result)
     result = val[0] << val[2]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 315)
  def _reduce_129(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 316)
  def _reduce_130(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 318)
  def _reduce_131(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 319)
  def _reduce_132(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 320)
  def _reduce_133(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 323)
  def _reduce_134(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 325)
  def _reduce_135(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 326)
  def _reduce_136(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 327)
  def _reduce_137(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 329)
  def _reduce_138(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 330)
  def _reduce_139(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 331)
  def _reduce_140(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 333)
  def _reduce_141(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 334)
  def _reduce_142(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 335)
  def _reduce_143(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 337)
  def _reduce_144(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 338)
  def _reduce_145(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 339)
  def _reduce_146(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 341)
  def _reduce_147(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 342)
  def _reduce_148(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 343)
  def _reduce_149(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 345)
  def _reduce_150(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 346)
  def _reduce_151(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 347)
  def _reduce_152(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 349)
  def _reduce_153(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 350)
  def _reduce_154(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 351)
  def _reduce_155(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 353)
  def _reduce_156(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 354)
  def _reduce_157(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 355)
  def _reduce_158(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 356)
  def _reduce_159(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 357)
  def _reduce_160(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 358)
  def _reduce_161(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 360)
  def _reduce_162(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 361)
  def _reduce_163(val, _values, result)
     result = make_node(val) { |v| Riml::BinaryOperatorNode.new(v[1], [v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 365)
  def _reduce_164(val, _values, result)
     result = make_node(val) { |v| Riml::UnaryOperatorNode.new(val[0], [val[1]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 366)
  def _reduce_165(val, _values, result)
     result = make_node(val) { |v| Riml::UnaryOperatorNode.new(val[0], [val[1]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 367)
  def _reduce_166(val, _values, result)
     result = make_node(val) { |v| Riml::UnaryOperatorNode.new(val[0], [val[1]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 372)
  def _reduce_167(val, _values, result)
     result = make_node(val) { |v| Riml::AssignNode.new(v[1][0], v[1][1], v[1][2]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 373)
  def _reduce_168(val, _values, result)
     result = make_node(val) { |v| Riml::AssignNode.new(v[0][0], v[0][1], v[0][2]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 377)
  def _reduce_169(val, _values, result)
     result = make_node(val) { |v| Riml::MultiAssignNode.new([v[0], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 378)
  def _reduce_170(val, _values, result)
     val[0].assigns << val[2]; result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 383)
  def _reduce_171(val, _values, result)
     result = [val[1], val[0], val[2]]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 384)
  def _reduce_172(val, _values, result)
     result = [val[1], val[0], val[2]]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 385)
  def _reduce_173(val, _values, result)
     result = [val[1], val[0], val[2]]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 386)
  def _reduce_174(val, _values, result)
     result = [val[1], val[0], val[2]]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 390)
  def _reduce_175(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 391)
  def _reduce_176(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 392)
  def _reduce_177(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 393)
  def _reduce_178(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 394)
  def _reduce_179(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 399)
  def _reduce_180(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 400)
  def _reduce_181(val, _values, result)
     result = make_node(val) { |v| Riml::GetSpecialVariableNode.new(v[0], v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 401)
  def _reduce_182(val, _values, result)
     result = make_node(val) { |v| Riml::GetVariableByScopeAndDictNameNode.new(v[0], v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 405)
  def _reduce_183(val, _values, result)
     result = make_node(val) { |v| Riml::GetVariableNode.new(v[0], v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 409)
  def _reduce_184(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 410)
  def _reduce_185(val, _values, result)
     result = make_node(val) { |v| Riml::GetCurlyBraceNameNode.new(v[0], v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 414)
  def _reduce_186(val, _values, result)
     result = make_node(val) { |v| Riml::UnletVariableNode.new('!', [ v[1] ]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 415)
  def _reduce_187(val, _values, result)
     result = make_node(val) { |v| Riml::UnletVariableNode.new('!', [ v[1] ]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 416)
  def _reduce_188(val, _values, result)
     result = val[0] << val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 420)
  def _reduce_189(val, _values, result)
     result = make_node(val) { |v| Riml::CurlyBraceVariable.new([ v[0] ]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 421)
  def _reduce_190(val, _values, result)
     result = make_node(val) { |v| Riml::CurlyBraceVariable.new([ Riml::CurlyBracePart.new(v[0]), v[1] ]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 422)
  def _reduce_191(val, _values, result)
     result = val[0] << make_node(val) { |v| Riml::CurlyBracePart.new(v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 423)
  def _reduce_192(val, _values, result)
     result = val[0] << val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 427)
  def _reduce_193(val, _values, result)
     result = make_node(val) { |v| Riml::CurlyBracePart.new(v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 428)
  def _reduce_194(val, _values, result)
     result = make_node(val) { |v| Riml::CurlyBracePart.new([v[1], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 429)
  def _reduce_195(val, _values, result)
     result = make_node(val) { |v| Riml::CurlyBracePart.new([v[1], v[2]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 435)
  def _reduce_196(val, _values, result)
     result = make_node(val) { |v| Riml.const_get(val[0]).new('!', v[1][0], v[1][1], v[2], [], v[3], v[4]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 436)
  def _reduce_197(val, _values, result)
     result = make_node(val) { |v| Riml.const_get(val[0]).new('!', v[1][0], v[1][1], v[2], v[4], v[6], v[7]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 437)
  def _reduce_198(val, _values, result)
     result = make_node(val) { |v| Riml.const_get(val[0]).new('!', v[1][0], v[1][1], v[2], [v[4]], v[6], v[7]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 438)
  def _reduce_199(val, _values, result)
     result = make_node(val) { |v| Riml.const_get(val[0]).new('!', v[1][0], v[1][1], v[2], v[4] << v[6], v[8], v[9]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 442)
  def _reduce_200(val, _values, result)
     result = "DefNode"
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 443)
  def _reduce_201(val, _values, result)
     result = "DefNode"
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 444)
  def _reduce_202(val, _values, result)
     result = "DefMethodNode"
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 449)
  def _reduce_203(val, _values, result)
     result = make_node(val) { |v| Riml::GetCurlyBraceNameNode.new('', v[0]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 450)
  def _reduce_204(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 455)
  def _reduce_205(val, _values, result)
     result = [val[0]]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 456)
  def _reduce_206(val, _values, result)
     result = val[0] << val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 457)
  def _reduce_207(val, _values, result)
     result = nil
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 461)
  def _reduce_208(val, _values, result)
     result = []
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 462)
  def _reduce_209(val, _values, result)
     result = val
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 463)
  def _reduce_210(val, _values, result)
     result = val
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 464)
  def _reduce_211(val, _values, result)
     result = val[0] << val[2]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 465)
  def _reduce_212(val, _values, result)
     result = val[0] << val[2]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 469)
  def _reduce_213(val, _values, result)
     result = make_node(val) { |v| Riml::DefaultParamNode.new(v[0], v[2]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 473)
  def _reduce_214(val, _values, result)
     result = make_node(val) { |v| Riml::ReturnNode.new(v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 474)
  def _reduce_215(val, _values, result)
     result = make_node(val) { |v| Riml::IfNode.new(v[3], Nodes.new([ReturnNode.new(v[1])])) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 475)
  def _reduce_216(val, _values, result)
     result = make_node(val) { |v| Riml::UnlessNode.new(v[3], Nodes.new([ReturnNode.new(v[1])])) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 479)
  def _reduce_217(val, _values, result)
     result = nil
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 480)
  def _reduce_218(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 484)
  def _reduce_219(val, _values, result)
     result = make_node(val) { |_| Riml::FinishNode.new }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 489)
  def _reduce_220(val, _values, result)
     result = make_node(val) { |v| Riml::IfNode.new(v[1], v[2]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 490)
  def _reduce_221(val, _values, result)
     result = make_node(val) { |v| Riml::IfNode.new(v[1], Riml::Nodes.new([v[3]])) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 491)
  def _reduce_222(val, _values, result)
     result = make_node(val) { |v| Riml::IfNode.new(v[2], Riml::Nodes.new([v[0]])) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 495)
  def _reduce_223(val, _values, result)
     result = make_node(val) { |v| Riml::UnlessNode.new(v[1], v[2]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 496)
  def _reduce_224(val, _values, result)
     result = make_node(val) { |v| Riml::UnlessNode.new(v[1], Riml::Nodes.new([v[3]])) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 497)
  def _reduce_225(val, _values, result)
     result = make_node(val) { |v| Riml::UnlessNode.new(v[2], Riml::Nodes.new([v[0]])) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 501)
  def _reduce_226(val, _values, result)
     result = make_node(val) { |v| Riml::TernaryOperatorNode.new([v[0], v[2], v[4]]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 505)
  def _reduce_227(val, _values, result)
     result = make_node(val) { |v| Riml::WhileNode.new(v[1], v[2]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 509)
  def _reduce_228(val, _values, result)
     result = make_node(val) { |_| Riml::BreakNode.new }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 510)
  def _reduce_229(val, _values, result)
     result = make_node(val) { |_| Riml::ContinueNode.new }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 514)
  def _reduce_230(val, _values, result)
     result = make_node(val) { |v| Riml::UntilNode.new(v[1], v[2]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 518)
  def _reduce_231(val, _values, result)
     result = make_node(val) { |v| Riml::ForNode.new(v[1], v[3], v[4]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 519)
  def _reduce_232(val, _values, result)
     result = make_node(val) { |v| Riml::ForNode.new(v[1], v[3], v[4]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 520)
  def _reduce_233(val, _values, result)
     result = make_node(val) { |v| Riml::ForNode.new(v[1], v[3], v[4]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 524)
  def _reduce_234(val, _values, result)
     result = make_node(val) { |v| Riml::TryNode.new(v[1], nil, nil) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 525)
  def _reduce_235(val, _values, result)
     result = make_node(val) { |v| Riml::TryNode.new(v[1], v[2], nil) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 526)
  def _reduce_236(val, _values, result)
     result = make_node(val) { |v| Riml::TryNode.new(v[1], v[2], v[4]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 530)
  def _reduce_237(val, _values, result)
     result = nil
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 531)
  def _reduce_238(val, _values, result)
     result = [ make_node(val) { |v| Riml::CatchNode.new(nil, v[1]) } ]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 532)
  def _reduce_239(val, _values, result)
     result = [ make_node(val) { |v| Riml::CatchNode.new(v[1], v[2]) } ]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 533)
  def _reduce_240(val, _values, result)
     result = val[0] << make_node(val) { |v| Riml::CatchNode.new(nil, v[2]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 534)
  def _reduce_241(val, _values, result)
     result = val[0] << make_node(val) { |v| Riml::CatchNode.new(v[2], v[3]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 538)
  def _reduce_242(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 539)
  def _reduce_243(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 546)
  def _reduce_244(val, _values, result)
     result = val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 547)
  def _reduce_245(val, _values, result)
     result = make_node(val) { |_| Riml::Nodes.new([]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 551)
  def _reduce_246(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 552)
  def _reduce_247(val, _values, result)
     result = val[1] << val[2]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 553)
  def _reduce_248(val, _values, result)
     result = val[1] << val[2]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 554)
  def _reduce_249(val, _values, result)
     result = val[1] << val[2] << val[3]
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 558)
  def _reduce_250(val, _values, result)
     result = make_node(val) { |v| Riml::ElseNode.new(v[2]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 562)
  def _reduce_251(val, _values, result)
     result = make_node(val) { |v| Riml::Nodes.new([Riml::ElseifNode.new(v[1], v[3])]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 563)
  def _reduce_252(val, _values, result)
     result = val[0] << make_node(val) { |v| Riml::ElseifNode.new(v[2], v[4]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 567)
  def _reduce_253(val, _values, result)
     result = make_node(val) { |v| Riml::ClassDefinitionNode.new(v[1], v[2], nil, v[3]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 568)
  def _reduce_254(val, _values, result)
     result = make_node(val) { |v| Riml::ClassDefinitionNode.new(v[1], v[2], (v[4] || ClassDefinitionNode::DEFAULT_SCOPE_MODIFIER) + v[5], v[6]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 572)
  def _reduce_255(val, _values, result)
     result = make_node(val) { |v| Riml::ObjectInstantiationNode.new(v[1]) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 576)
  def _reduce_256(val, _values, result)
     result = make_node(val) { |v| Riml::SuperNode.new(v[2], true) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 577)
  def _reduce_257(val, _values, result)
     result = make_node(val) { |_| Riml::SuperNode.new([], false) }
    result
  end
.,.,

module_eval(<<'.,.,', 'riml.y', 581)
  def _reduce_258(val, _values, result)
     result = make_node(val) { |v| Riml::ExLiteralNode.new(v[0]) }
    result
  end
.,.,

def _reduce_none(val, _values, result)
  val[0]
end

  end   # class Parser
end   # module Riml
