content: /* This file was generated by SableCC (http://www.sablecc.org/). */
  
  package com.abstratt.mdd.frontend.textuml.grammar.lexer;
  
  import java.io.*;
  import com.abstratt.mdd.frontend.textuml.grammar.node.*;
  
  @SuppressWarnings("nls")
  public class Lexer
  {
      protected Token token;
      protected State state = State.INITIAL;
  
      private PushbackReader in;
      private int line;
      private int pos;
      private boolean cr;
      private boolean eof;
      private final StringBuffer text = new StringBuffer();
  
      @SuppressWarnings("unused")
      protected void filter() throws LexerException, IOException
      {
          // Do nothing
      }
  
      public Lexer(@SuppressWarnings("hiding") PushbackReader in)
      {
          this.in = in;
      }
   
      public Token peek() throws LexerException, IOException
      {
          while(this.token == null)
          {
              this.token = getToken();
              filter();
          }
  
          return this.token;
      }
  
      public Token next() throws LexerException, IOException
      {
          while(this.token == null)
          {
              this.token = getToken();
              filter();
          }
  
          Token result = this.token;
          this.token = null;
          return result;
      }
  
      protected Token getToken() throws IOException, LexerException
      {
          int dfa_state = 0;
  
          int start_pos = this.pos;
          int start_line = this.line;
  
          int accept_state = -1;
          int accept_token = -1;
          int accept_length = -1;
          int accept_pos = -1;
          int accept_line = -1;
  
          @SuppressWarnings("hiding") int[][][] gotoTable = Lexer.gotoTable[this.state.id()];
          @SuppressWarnings("hiding") int[] accept = Lexer.accept[this.state.id()];
          this.text.setLength(0);
  
          while(true)
          {
              int c = getChar();
  
              if(c != -1)
              {
                  switch(c)
                  {
                  case 10:
                      if(this.cr)
                      {
                          this.cr = false;
                      }
                      else
                      {
                          this.line++;
                          this.pos = 0;
                      }
                      break;
                  case 13:
                      this.line++;
                      this.pos = 0;
                      this.cr = true;
                      break;
                  default:
                      this.pos++;
                      this.cr = false;
                      break;
                  }
  
                  this.text.append((char) c);
  
                  do
                  {
                      int oldState = (dfa_state < -1) ? (-2 -dfa_state) : dfa_state;
  
                      dfa_state = -1;
  
                      int[][] tmp1 =  gotoTable[oldState];
                      int low = 0;
                      int high = tmp1.length - 1;
  
                      while(low <= high)
                      {
                          int middle = (low + high) / 2;
                          int[] tmp2 = tmp1[middle];
  
                          if(c < tmp2[0])
                          {
                              high = middle - 1;
                          }
                          else if(c > tmp2[1])
                          {
                              low = middle + 1;
                          }
                          else
                          {
                              dfa_state = tmp2[2];
                              break;
                          }
                      }
                  }while(dfa_state < -1);
              }
              else
              {
                  dfa_state = -1;
              }
  
              if(dfa_state >= 0)
              {
                  if(accept[dfa_state] != -1)
                  {
                      accept_state = dfa_state;
                      accept_token = accept[dfa_state];
                      accept_length = this.text.length();
                      accept_pos = this.pos;
                      accept_line = this.line;
                  }
              }
              else
              {
                  if(accept_state != -1)
                  {
                      switch(accept_token)
                      {
                      case 0:
                          {
                              @SuppressWarnings("hiding") Token token = new0(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 1:
                          {
                              @SuppressWarnings("hiding") Token token = new1(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 2:
                          {
                              @SuppressWarnings("hiding") Token token = new2(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 3:
                          {
                              @SuppressWarnings("hiding") Token token = new3(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 4:
                          {
                              @SuppressWarnings("hiding") Token token = new4(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 5:
                          {
                              @SuppressWarnings("hiding") Token token = new5(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 6:
                          {
                              @SuppressWarnings("hiding") Token token = new6(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 7:
                          {
                              @SuppressWarnings("hiding") Token token = new7(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 8:
                          {
                              @SuppressWarnings("hiding") Token token = new8(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 9:
                          {
                              @SuppressWarnings("hiding") Token token = new9(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 10:
                          {
                              @SuppressWarnings("hiding") Token token = new10(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 11:
                          {
                              @SuppressWarnings("hiding") Token token = new11(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 12:
                          {
                              @SuppressWarnings("hiding") Token token = new12(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 13:
                          {
                              @SuppressWarnings("hiding") Token token = new13(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 14:
                          {
                              @SuppressWarnings("hiding") Token token = new14(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 15:
                          {
                              @SuppressWarnings("hiding") Token token = new15(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 16:
                          {
                              @SuppressWarnings("hiding") Token token = new16(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 17:
                          {
                              @SuppressWarnings("hiding") Token token = new17(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 18:
                          {
                              @SuppressWarnings("hiding") Token token = new18(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 19:
                          {
                              @SuppressWarnings("hiding") Token token = new19(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 20:
                          {
                              @SuppressWarnings("hiding") Token token = new20(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 21:
                          {
                              @SuppressWarnings("hiding") Token token = new21(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 22:
                          {
                              @SuppressWarnings("hiding") Token token = new22(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 23:
                          {
                              @SuppressWarnings("hiding") Token token = new23(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 24:
                          {
                              @SuppressWarnings("hiding") Token token = new24(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 25:
                          {
                              @SuppressWarnings("hiding") Token token = new25(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 26:
                          {
                              @SuppressWarnings("hiding") Token token = new26(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 27:
                          {
                              @SuppressWarnings("hiding") Token token = new27(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 28:
                          {
                              @SuppressWarnings("hiding") Token token = new28(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 29:
                          {
                              @SuppressWarnings("hiding") Token token = new29(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 30:
                          {
                              @SuppressWarnings("hiding") Token token = new30(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 31:
                          {
                              @SuppressWarnings("hiding") Token token = new31(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 32:
                          {
                              @SuppressWarnings("hiding") Token token = new32(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 33:
                          {
                              @SuppressWarnings("hiding") Token token = new33(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 34:
                          {
                              @SuppressWarnings("hiding") Token token = new34(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 35:
                          {
                              @SuppressWarnings("hiding") Token token = new35(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 36:
                          {
                              @SuppressWarnings("hiding") Token token = new36(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 37:
                          {
                              @SuppressWarnings("hiding") Token token = new37(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 38:
                          {
                              @SuppressWarnings("hiding") Token token = new38(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 39:
                          {
                              @SuppressWarnings("hiding") Token token = new39(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 40:
                          {
                              @SuppressWarnings("hiding") Token token = new40(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 41:
                          {
                              @SuppressWarnings("hiding") Token token = new41(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 42:
                          {
                              @SuppressWarnings("hiding") Token token = new42(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 43:
                          {
                              @SuppressWarnings("hiding") Token token = new43(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 44:
                          {
                              @SuppressWarnings("hiding") Token token = new44(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 45:
                          {
                              @SuppressWarnings("hiding") Token token = new45(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 46:
                          {
                              @SuppressWarnings("hiding") Token token = new46(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 47:
                          {
                              @SuppressWarnings("hiding") Token token = new47(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 48:
                          {
                              @SuppressWarnings("hiding") Token token = new48(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 49:
                          {
                              @SuppressWarnings("hiding") Token token = new49(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 50:
                          {
                              @SuppressWarnings("hiding") Token token = new50(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 51:
                          {
                              @SuppressWarnings("hiding") Token token = new51(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 52:
                          {
                              @SuppressWarnings("hiding") Token token = new52(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 53:
                          {
                              @SuppressWarnings("hiding") Token token = new53(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 54:
                          {
                              @SuppressWarnings("hiding") Token token = new54(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 55:
                          {
                              @SuppressWarnings("hiding") Token token = new55(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 56:
                          {
                              @SuppressWarnings("hiding") Token token = new56(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 57:
                          {
                              @SuppressWarnings("hiding") Token token = new57(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 58:
                          {
                              @SuppressWarnings("hiding") Token token = new58(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 59:
                          {
                              @SuppressWarnings("hiding") Token token = new59(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 60:
                          {
                              @SuppressWarnings("hiding") Token token = new60(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 61:
                          {
                              @SuppressWarnings("hiding") Token token = new61(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 62:
                          {
                              @SuppressWarnings("hiding") Token token = new62(
                                  getText(accept_length),
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 63:
                          {
                              @SuppressWarnings("hiding") Token token = new63(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 64:
                          {
                              @SuppressWarnings("hiding") Token token = new64(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 65:
                          {
                              @SuppressWarnings("hiding") Token token = new65(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 66:
                          {
                              @SuppressWarnings("hiding") Token token = new66(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 67:
                          {
                              @SuppressWarnings("hiding") Token token = new67(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 68:
                          {
                              @SuppressWarnings("hiding") Token token = new68(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 69:
                          {
                              @SuppressWarnings("hiding") Token token = new69(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 70:
                          {
                              @SuppressWarnings("hiding") Token token = new70(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 71:
                          {
                              @SuppressWarnings("hiding") Token token = new71(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 72:
                          {
                              @SuppressWarnings("hiding") Token token = new72(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 73:
                          {
                              @SuppressWarnings("hiding") Token token = new73(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 74:
                          {
                              @SuppressWarnings("hiding") Token token = new74(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 75:
                          {
                              @SuppressWarnings("hiding") Token token = new75(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 76:
                          {
                              @SuppressWarnings("hiding") Token token = new76(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 77:
                          {
                              @SuppressWarnings("hiding") Token token = new77(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 78:
                          {
                              @SuppressWarnings("hiding") Token token = new78(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 79:
                          {
                              @SuppressWarnings("hiding") Token token = new79(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 80:
                          {
                              @SuppressWarnings("hiding") Token token = new80(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 81:
                          {
                              @SuppressWarnings("hiding") Token token = new81(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 82:
                          {
                              @SuppressWarnings("hiding") Token token = new82(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 83:
                          {
                              @SuppressWarnings("hiding") Token token = new83(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 84:
                          {
                              @SuppressWarnings("hiding") Token token = new84(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 85:
                          {
                              @SuppressWarnings("hiding") Token token = new85(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 86:
                          {
                              @SuppressWarnings("hiding") Token token = new86(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 87:
                          {
                              @SuppressWarnings("hiding") Token token = new87(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 88:
                          {
                              @SuppressWarnings("hiding") Token token = new88(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 89:
                          {
                              @SuppressWarnings("hiding") Token token = new89(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 90:
                          {
                              @SuppressWarnings("hiding") Token token = new90(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 91:
                          {
                              @SuppressWarnings("hiding") Token token = new91(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 92:
                          {
                              @SuppressWarnings("hiding") Token token = new92(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 93:
                          {
                              @SuppressWarnings("hiding") Token token = new93(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 94:
                          {
                              @SuppressWarnings("hiding") Token token = new94(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 95:
                          {
                              @SuppressWarnings("hiding") Token token = new95(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 96:
                          {
                              @SuppressWarnings("hiding") Token token = new96(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 97:
                          {
                              @SuppressWarnings("hiding") Token token = new97(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 98:
                          {
                              @SuppressWarnings("hiding") Token token = new98(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 99:
                          {
                              @SuppressWarnings("hiding") Token token = new99(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 100:
                          {
                              @SuppressWarnings("hiding") Token token = new100(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 101:
                          {
                              @SuppressWarnings("hiding") Token token = new101(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 102:
                          {
                              @SuppressWarnings("hiding") Token token = new102(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 103:
                          {
                              @SuppressWarnings("hiding") Token token = new103(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 104:
                          {
                              @SuppressWarnings("hiding") Token token = new104(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 105:
                          {
                              @SuppressWarnings("hiding") Token token = new105(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 106:
                          {
                              @SuppressWarnings("hiding") Token token = new106(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 107:
                          {
                              @SuppressWarnings("hiding") Token token = new107(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 108:
                          {
                              @SuppressWarnings("hiding") Token token = new108(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 109:
                          {
                              @SuppressWarnings("hiding") Token token = new109(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 110:
                          {
                              @SuppressWarnings("hiding") Token token = new110(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 111:
                          {
                              @SuppressWarnings("hiding") Token token = new111(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 112:
                          {
                              @SuppressWarnings("hiding") Token token = new112(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 113:
                          {
                              @SuppressWarnings("hiding") Token token = new113(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 114:
                          {
                              @SuppressWarnings("hiding") Token token = new114(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 115:
                          {
                              @SuppressWarnings("hiding") Token token = new115(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 116:
                          {
                              @SuppressWarnings("hiding") Token token = new116(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 117:
                          {
                              @SuppressWarnings("hiding") Token token = new117(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 118:
                          {
                              @SuppressWarnings("hiding") Token token = new118(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 119:
                          {
                              @SuppressWarnings("hiding") Token token = new119(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 120:
                          {
                              @SuppressWarnings("hiding") Token token = new120(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 121:
                          {
                              @SuppressWarnings("hiding") Token token = new121(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 122:
                          {
                              @SuppressWarnings("hiding") Token token = new122(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 123:
                          {
                              @SuppressWarnings("hiding") Token token = new123(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 124:
                          {
                              @SuppressWarnings("hiding") Token token = new124(
                                  getText(accept_length),
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 125:
                          {
                              @SuppressWarnings("hiding") Token token = new125(
                                  getText(accept_length),
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 126:
                          {
                              @SuppressWarnings("hiding") Token token = new126(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 127:
                          {
                              @SuppressWarnings("hiding") Token token = new127(
                                  getText(accept_length),
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 128:
                          {
                              @SuppressWarnings("hiding") Token token = new128(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 129:
                          {
                              @SuppressWarnings("hiding") Token token = new129(
                                  getText(accept_length),
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 130:
                          {
                              @SuppressWarnings("hiding") Token token = new130(
                                  getText(accept_length),
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 131:
                          {
                              @SuppressWarnings("hiding") Token token = new131(
                                  getText(accept_length),
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 132:
                          {
                              @SuppressWarnings("hiding") Token token = new132(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 133:
                          {
                              @SuppressWarnings("hiding") Token token = new133(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 134:
                          {
                              @SuppressWarnings("hiding") Token token = new134(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 135:
                          {
                              @SuppressWarnings("hiding") Token token = new135(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 136:
                          {
                              @SuppressWarnings("hiding") Token token = new136(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 137:
                          {
                              @SuppressWarnings("hiding") Token token = new137(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 138:
                          {
                              @SuppressWarnings("hiding") Token token = new138(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 139:
                          {
                              @SuppressWarnings("hiding") Token token = new139(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 140:
                          {
                              @SuppressWarnings("hiding") Token token = new140(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 141:
                          {
                              @SuppressWarnings("hiding") Token token = new141(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 142:
                          {
                              @SuppressWarnings("hiding") Token token = new142(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 143:
                          {
                              @SuppressWarnings("hiding") Token token = new143(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 144:
                          {
                              @SuppressWarnings("hiding") Token token = new144(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 145:
                          {
                              @SuppressWarnings("hiding") Token token = new145(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 146:
                          {
                              @SuppressWarnings("hiding") Token token = new146(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 147:
                          {
                              @SuppressWarnings("hiding") Token token = new147(
                                  getText(accept_length),
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 148:
                          {
                              @SuppressWarnings("hiding") Token token = new148(
                                  getText(accept_length),
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 149:
                          {
                              @SuppressWarnings("hiding") Token token = new149(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 150:
                          {
                              @SuppressWarnings("hiding") Token token = new150(
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 151:
                          {
                              @SuppressWarnings("hiding") Token token = new151(
                                  getText(accept_length),
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 152:
                          {
                              @SuppressWarnings("hiding") Token token = new152(
                                  getText(accept_length),
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 153:
                          {
                              @SuppressWarnings("hiding") Token token = new153(
                                  getText(accept_length),
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 154:
                          {
                              @SuppressWarnings("hiding") Token token = new154(
                                  getText(accept_length),
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 155:
                          {
                              @SuppressWarnings("hiding") Token token = new155(
                                  getText(accept_length),
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 156:
                          {
                              @SuppressWarnings("hiding") Token token = new156(
                                  getText(accept_length),
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 157:
                          {
                              @SuppressWarnings("hiding") Token token = new157(
                                  getText(accept_length),
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      case 158:
                          {
                              @SuppressWarnings("hiding") Token token = new158(
                                  getText(accept_length),
                                  start_line + 1,
                                  start_pos + 1);
                              pushBack(accept_length);
                              this.pos = accept_pos;
                              this.line = accept_line;
                              return token;
                          }
                      }
                  }
                  else
                  {
                      if(this.text.length() > 0)
                      {
                          throw new LexerException(
                              "[" + (start_line + 1) + "," + (start_pos + 1) + "]" +
                              " Unknown token: " + this.text);
                      }
  
                      @SuppressWarnings("hiding") EOF token = new EOF(
                          start_line + 1,
                          start_pos + 1);
                      return token;
                  }
              }
          }
      }
  
      Token new0(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAbstract(line, pos); }
      Token new1(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAccess(line, pos); }
      Token new2(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TActor(line, pos); }
      Token new3(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAggregation(line, pos); }
      Token new4(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAlias(line, pos); }
      Token new5(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAllow(line, pos); }
      Token new6(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAll(line, pos); }
      Token new7(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAnd(line, pos); }
      Token new8(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAny(line, pos); }
      Token new9(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAnyone(line, pos); }
      Token new10(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TApply(line, pos); }
      Token new11(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAssociation(line, pos); }
      Token new12(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAs(line, pos); }
      Token new13(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAttribute(line, pos); }
      Token new14(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TBegin(line, pos); }
      Token new15(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TBroadcast(line, pos); }
      Token new16(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TBy(line, pos); }
      Token new17(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCall(line, pos); }
      Token new18(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCatch(line, pos); }
      Token new19(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TClazz(line, pos); }
      Token new20(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TComponent(line, pos); }
      Token new21(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TComposition(line, pos); }
      Token new22(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TConnector(line, pos); }
      Token new23(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TConstructor(line, pos); }
      Token new24(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCreate(line, pos); }
      Token new25(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDatatype(line, pos); }
      Token new26(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDelete(line, pos); }
      Token new27(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDependency(line, pos); }
      Token new28(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDerived(line, pos); }
      Token new29(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDestroy(line, pos); }
      Token new30(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDo(line, pos); }
      Token new31(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TElse(line, pos); }
      Token new32(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TElseif(line, pos); }
      Token new33(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEnd(line, pos); }
      Token new34(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEntry(line, pos); }
      Token new35(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEnumeration(line, pos); }
      Token new36(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TExit(line, pos); }
      Token new37(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TExtends(line, pos); }
      Token new38(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TExtent(line, pos); }
      Token new39(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TExternal(line, pos); }
      Token new40(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TFalse(line, pos); }
      Token new41(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TFinal(line, pos); }
      Token new42(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TFinally(line, pos); }
      Token new43(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TFunction(line, pos); }
      Token new44(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TId(line, pos); }
      Token new45(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TIf(line, pos); }
      Token new46(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TImplements(line, pos); }
      Token new47(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TImport(line, pos); }
      Token new48(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TIn(line, pos); }
      Token new49(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TInitial(line, pos); }
      Token new50(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TInout(line, pos); }
      Token new51(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TInterface(line, pos); }
      Token new52(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TInvariant(line, pos); }
      Token new53(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TIs(line, pos); }
      Token new54(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLink(line, pos); }
      Token new55(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEnumerationLiteral(line, pos); }
      Token new56(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLoad(line, pos); }
      Token new57(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TModel(line, pos); }
      Token new58(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TNavigable(line, pos); }
      Token new59(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TNew(line, pos); }
      Token new60(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TNone(line, pos); }
      Token new61(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TNonunique(line, pos); }
      Token new62(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TNot(text, line, pos); }
      Token new63(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TNull(line, pos); }
      Token new64(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TOn(line, pos); }
      Token new65(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TOperation(line, pos); }
      Token new66(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TOpposite(line, pos); }
      Token new67(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TOr(line, pos); }
      Token new68(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TOrdered(line, pos); }
      Token new69(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TOut(line, pos); }
      Token new70(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TPackage(line, pos); }
      Token new71(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TParameterset(line, pos); }
      Token new72(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TPort(line, pos); }
      Token new73(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TPostcondition(line, pos); }
      Token new74(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TPrecondition(line, pos); }
      Token new75(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TPrimitive(line, pos); }
      Token new76(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TPrivate(line, pos); }
      Token new77(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TProfile(line, pos); }
      Token new78(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TProperty(line, pos); }
      Token new79(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TProtected(line, pos); }
      Token new80(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TProvided(line, pos); }
      Token new81(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TPublic(line, pos); }
      Token new82(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TQuery(line, pos); }
      Token new83(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TRaise(line, pos); }
      Token new84(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TRaises(line, pos); }
      Token new85(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TRead(line, pos); }
      Token new86(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TReadonly(line, pos); }
      Token new87(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TReception(line, pos); }
      Token new88(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TReference(line, pos); }
      Token new89(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TRepeat(line, pos); }
      Token new90(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TRequired(line, pos); }
      Token new91(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TReturn(line, pos); }
      Token new92(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TRole(line, pos); }
      Token new93(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSelf(line, pos); }
      Token new94(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSend(line, pos); }
      Token new95(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSignal(line, pos); }
      Token new96(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSpecializes(line, pos); }
      Token new97(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TState(line, pos); }
      Token new98(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TStatemachine(line, pos); }
      Token new99(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TStatic(line, pos); }
      Token new100(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TStereotype(line, pos); }
      Token new101(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSubsets(line, pos); }
      Token new102(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TTerminate(line, pos); }
      Token new103(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TThen(line, pos); }
      Token new104(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TTo(line, pos); }
      Token new105(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TTransition(line, pos); }
      Token new106(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TTrue(line, pos); }
      Token new107(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TTry(line, pos); }
      Token new108(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TType(line, pos); }
      Token new109(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TUnique(line, pos); }
      Token new110(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TUnlink(line, pos); }
      Token new111(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TUnordered(line, pos); }
      Token new112(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TUntil(line, pos); }
      Token new113(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TUpdate(line, pos); }
      Token new114(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TVar(line, pos); }
      Token new115(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TWhen(line, pos); }
      Token new116(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TWhere(line, pos); }
      Token new117(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TWhile(line, pos); }
      Token new118(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TPlus(line, pos); }
      Token new119(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TMinus(line, pos); }
      Token new120(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TMult(line, pos); }
      Token new121(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDiv(line, pos); }
      Token new122(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAssignop(line, pos); }
      Token new123(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEquals(line, pos); }
      Token new124(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEqualsEquals(text, line, pos); }
      Token new125(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TNotEqualsEquals(text, line, pos); }
      Token new126(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLab(line, pos); }
      Token new127(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLabEquals(text, line, pos); }
      Token new128(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TRab(line, pos); }
      Token new129(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TRabEquals(text, line, pos); }
      Token new130(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TNotEquals(text, line, pos); }
      Token new131(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TElvis(text, line, pos); }
      Token new132(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TQuestion(line, pos); }
      Token new133(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TBangs(line, pos); }
      Token new134(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TComma(line, pos); }
      Token new135(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TColon(line, pos); }
      Token new136(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSemicolon(line, pos); }
      Token new137(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDot(line, pos); }
      Token new138(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TOptionalDot(line, pos); }
      Token new139(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TNamespaceSeparator(line, pos); }
      Token new140(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new THash(line, pos); }
      Token new141(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLParen(line, pos); }
      Token new142(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TRParen(line, pos); }
      Token new143(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLBracket(line, pos); }
      Token new144(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TRBracket(line, pos); }
      Token new145(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLCurlyBracket(line, pos); }
      Token new146(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TRCurlyBracket(line, pos); }
      Token new147(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TRightArrow(text, line, pos); }
      Token new148(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLeftArrow(text, line, pos); }
      Token new149(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLGuillemot(line, pos); }
      Token new150(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TRGuillemot(line, pos); }
      Token new151(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TIdentifier(text, line, pos); }
      Token new152(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TInteger(text, line, pos); }
      Token new153(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TReal(text, line, pos); }
      Token new154(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TString(text, line, pos); }
      Token new155(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TUri(text, line, pos); }
      Token new156(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TComment(text, line, pos); }
      Token new157(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TModelComment(text, line, pos); }
      Token new158(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TWhiteSpace(text, line, pos); }
  
      private int getChar() throws IOException
      {
          if(this.eof)
          {
              return -1;
          }
  
          int result = this.in.read();
  
          if(result == -1)
          {
              this.eof = true;
          }
  
          return result;
      }
  
      private void pushBack(int acceptLength) throws IOException
      {
          int length = this.text.length();
          for(int i = length - 1; i >= acceptLength; i--)
          {
              this.eof = false;
  
              this.in.unread(this.text.charAt(i));
          }
      }
  
      protected void unread(@SuppressWarnings("hiding") Token token) throws IOException
      {
          @SuppressWarnings("hiding") String text = token.getText();
          int length = text.length();
  
          for(int i = length - 1; i >= 0; i--)
          {
              this.eof = false;
  
              this.in.unread(text.charAt(i));
          }
  
          this.pos = token.getPos() - 1;
          this.line = token.getLine() - 1;
      }
  
      private String getText(int acceptLength)
      {
          StringBuffer s = new StringBuffer(acceptLength);
          for(int i = 0; i < acceptLength; i++)
          {
              s.append(this.text.charAt(i));
          }
  
          return s.toString();
      }
  
      private static int[][][][] gotoTable;
  /*  {
          { // INITIAL
              {{0, 8, 1}, {9, 9, 2}, {10, 10, 3}, {11, 11, 1}, {12, 12, 4}, {13, 13, 5}, {14, 31, 1}, {32, 32, 6}, {33, 33, 7}, {34, 34, 8}, {35, 35, 9}, {40, 40, 10}, {41, 41, 11}, {42, 42, 12}, {43, 43, 13}, {44, 44, 14}, {45, 45, 15}, {46, 46, 16}, {47, 47, 17}, {48, 57, 18}, {58, 58, 19}, {59, 59, 20}, {60, 60, 21}, {61, 61, 22}, {62, 62, 23}, {63, 63, 24}, {65, 90, 1}, {91, 91, 25}, {92, 92, 26}, {93, 93, 27}, {95, 95, 1}, {97, 97, 28}, {98, 98, 29}, {99, 99, 30}, {100, 100, 31}, {101, 101, 32}, {102, 102, 33}, {103, 104, 1}, {105, 105, 34}, {106, 107, 1}, {108, 108, 35}, {109, 109, 36}, {110, 110, 37}, {111, 111, 38}, {112, 112, 39}, {113, 113, 40}, {114, 114, 41}, {115, 115, 42}, {116, 116, 43}, {117, 117, 44}, {118, 118, 45}, {119, 119, 46}, {120, 122, 1}, {123, 123, 47}, {125, 125, 48}, {127, 170, 1}, {171, 171, 49}, {172, 186, 1}, {187, 187, 50}, {188, 65535, 1}, },
              {{0, 9, 51}, {11, 12, 51}, {14, 31, 51}, {48, 57, 51}, {65, 90, 51}, {92, 92, 52}, {95, 95, 51}, {97, 122, 51}, {127, 65535, 51}, },
              {{0, 8, 51}, {9, 9, 53}, {10, 10, 3}, {11, 11, 51}, {12, 12, 54}, {13, 13, 5}, {14, 31, 51}, {32, 32, 6}, {48, 65535, -3}, },
              {{9, 9, 55}, {10, 10, 3}, {12, 12, 56}, {13, 13, 5}, {32, 32, 6}, },
              {{0, 65535, -4}, },
              {{9, 9, 55}, {10, 10, 57}, {12, 32, -5}, },
              {{9, 32, -5}, },
              {{33, 33, 58}, {61, 61, 59}, },
              {{0, 33, 60}, {34, 34, 61}, {35, 65535, 60}, },
              {},
              {{42, 42, 62}, },
              {},
              {},
              {},
              {},
              {{62, 62, 63}, },
              {},
              {{42, 42, 64}, },
              {{46, 46, 65}, {48, 57, 18}, },
              {{58, 58, 66}, {61, 61, 67}, },
              {},
              {{45, 45, 68}, {60, 60, 69}, {61, 61, 70}, },
              {{61, 61, 71}, },
              {{61, 61, 72}, },
              {{46, 46, 73}, {58, 58, 74}, },
              {},
              {{0, 9, 75}, {11, 12, 75}, {14, 31, 75}, {32, 47, 76}, {48, 57, 75}, {58, 64, 76}, {65, 90, 75}, {91, 91, 76}, {92, 92, 77}, {93, 94, 76}, {95, 95, 75}, {96, 96, 76}, {97, 122, 75}, {123, 126, 76}, {127, 65535, 75}, },
              {},
              {{0, 95, -3}, {97, 97, 51}, {98, 98, 78}, {99, 99, 79}, {100, 102, 51}, {103, 103, 80}, {104, 107, 51}, {108, 108, 81}, {109, 109, 51}, {110, 110, 82}, {111, 111, 51}, {112, 112, 83}, {113, 114, 51}, {115, 115, 84}, {116, 116, 85}, {117, 122, 51}, {127, 65535, 51}, },
              {{0, 95, -3}, {97, 100, 51}, {101, 101, 86}, {102, 113, 51}, {114, 114, 87}, {115, 120, 51}, {121, 121, 88}, {122, 122, 51}, {127, 65535, 51}, },
              {{0, 95, -3}, {97, 97, 89}, {98, 107, 51}, {108, 108, 90}, {109, 110, 51}, {111, 111, 91}, {112, 113, 51}, {114, 114, 92}, {115, 122, 51}, {127, 65535, 51}, },
              {{0, 95, -3}, {97, 97, 93}, {98, 100, 51}, {101, 101, 94}, {102, 110, 51}, {111, 111, 95}, {112, 122, 51}, {127, 65535, 51}, },
              {{0, 95, -3}, {97, 107, 51}, {108, 108, 96}, {109, 109, 51}, {110, 110, 97}, {111, 119, 51}, {120, 120, 98}, {121, 122, 51}, {127, 65535, 51}, },
              {{0, 95, -3}, {97, 97, 99}, {98, 104, 51}, {105, 105, 100}, {106, 116, 51}, {117, 117, 101}, {118, 122, 51}, {127, 65535, 51}, },
              {{0, 95, -3}, {97, 99, 51}, {100, 100, 102}, {101, 101, 51}, {102, 102, 103}, {103, 108, 51}, {109, 109, 104}, {110, 110, 105}, {111, 114, 51}, {115, 115, 106}, {116, 122, 51}, {127, 65535, 51}, },
              {{0, 95, -3}, {97, 104, 51}, {105, 105, 107}, {106, 110, 51}, {111, 111, 108}, {112, 65535, -33}, },
              {{0, 95, -3}, {97, 110, 51}, {111, 111, 109}, {112, 65535, -33}, },
              {{0, 95, -3}, {97, 97, 110}, {98, 100, 51}, {101, 101, 111}, {102, 110, 51}, {111, 111, 112}, {112, 116, 51}, {117, 117, 113}, {118, 65535, -35}, },
              {{0, 95, -3}, {97, 109, 51}, {110, 110, 114}, {111, 111, 51}, {112, 112, 115}, {113, 113, 51}, {114, 114, 116}, {115, 116, 51}, {117, 117, 117}, {118, 65535, -35}, },
              {{0, 95, -3}, {97, 97, 118}, {98, 110, 51}, {111, 111, 119}, {112, 113, 51}, {114, 114, 120}, {115, 116, 51}, {117, 117, 121}, {118, 65535, -35}, },
              {{0, 95, -3}, {97, 116, 51}, {117, 117, 122}, {118, 65535, -35}, },
              {{0, 95, -3}, {97, 97, 123}, {98, 100, 51}, {101, 101, 124}, {102, 110, 51}, {111, 111, 125}, {112, 65535, -33}, },
              {{0, 100, -31}, {101, 101, 126}, {102, 104, 51}, {105, 105, 127}, {106, 111, 51}, {112, 112, 128}, {113, 115, 51}, {116, 116, 129}, {117, 117, 130}, {118, 65535, -35}, },
              {{0, 100, -31}, {101, 101, 131}, {102, 103, 51}, {104, 104, 132}, {105, 110, 51}, {111, 111, 133}, {112, 113, 51}, {114, 114, 134}, {115, 120, 51}, {121, 121, 135}, {122, 65535, -31}, },
              {{0, 109, -40}, {110, 110, 136}, {111, 111, 51}, {112, 112, 137}, {113, 122, 51}, {127, 65535, 51}, },
              {{0, 95, -3}, {97, 97, 138}, {98, 122, 51}, {127, 65535, 51}, },
              {{0, 95, -3}, {97, 103, 51}, {104, 104, 139}, {105, 122, 51}, {127, 65535, 51}, },
              {},
              {},
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 9, 140}, {11, 12, 140}, {14, 31, 140}, {32, 47, 141}, {48, 57, 140}, {58, 64, 141}, {65, 90, 140}, {91, 91, 141}, {92, 92, 142}, {93, 94, 141}, {95, 95, 140}, {96, 96, 141}, {97, 122, 140}, {123, 126, 141}, {127, 65535, 140}, },
              {{0, 65535, -4}, },
              {{0, 65535, -4}, },
              {{9, 32, -5}, },
              {{9, 32, -5}, },
              {{9, 32, -5}, },
              {},
              {{61, 61, 143}, },
              {{0, 65535, -10}, },
              {},
              {{0, 9, 144}, {10, 10, 145}, {11, 12, 144}, {13, 13, 146}, {14, 41, 144}, {43, 65535, 144}, },
              {},
              {{0, 9, 147}, {10, 10, 148}, {11, 12, 147}, {13, 13, 149}, {14, 41, 147}, {43, 65535, 147}, },
              {{48, 57, 150}, },
              {},
              {},
              {},
              {{0, 61, 151}, {62, 62, 152}, {63, 255, 151}, },
              {},
              {},
              {},
              {},
              {},
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 65535, -54}, },
              {{0, 95, -3}, {97, 114, 51}, {115, 115, 153}, {116, 65535, -36}, },
              {{0, 95, -3}, {97, 98, 51}, {99, 99, 154}, {100, 115, 51}, {116, 116, 155}, {117, 65535, -30}, },
              {{0, 95, -3}, {97, 102, 51}, {103, 103, 156}, {104, 122, 51}, {127, 65535, 51}, },
              {{0, 104, -37}, {105, 105, 157}, {106, 107, 51}, {108, 108, 158}, {109, 122, 51}, {127, 65535, 51}, },
              {{0, 99, -36}, {100, 100, 159}, {101, 120, 51}, {121, 121, 160}, {122, 65535, -31}, },
              {{0, 95, -3}, {97, 111, 51}, {112, 112, 161}, {113, 65535, -46}, },
              {{0, 114, -80}, {115, 115, 162}, {116, 65535, -36}, },
              {{0, 95, -3}, {97, 115, 51}, {116, 116, 163}, {117, 65535, -30}, },
              {{0, 102, -82}, {103, 103, 164}, {104, 65535, -82}, },
              {{0, 110, -38}, {111, 111, 165}, {112, 65535, -33}, },
              {{0, 65535, -3}, },
              {{0, 107, -34}, {108, 108, 166}, {109, 115, 51}, {116, 116, 167}, {117, 65535, -30}, },
              {{0, 95, -3}, {97, 97, 168}, {98, 65535, -47}, },
              {{0, 95, -3}, {97, 108, 51}, {109, 109, 169}, {110, 110, 170}, {111, 122, 51}, {127, 65535, 51}, },
              {{0, 100, -31}, {101, 101, 171}, {102, 122, 51}, {127, 65535, 51}, },
              {{0, 115, -87}, {116, 116, 172}, {117, 65535, -30}, },
              {{0, 107, -34}, {108, 108, 173}, {109, 111, 51}, {112, 112, 174}, {113, 113, 51}, {114, 114, 175}, {115, 115, 176}, {116, 65535, -36}, },
              {{0, 65535, -3}, },
              {{0, 114, -80}, {115, 115, 177}, {116, 65535, -36}, },
              {{0, 99, -36}, {100, 100, 178}, {101, 115, 51}, {116, 116, 179}, {117, 117, 180}, {118, 65535, -35}, },
              {{0, 104, -37}, {105, 105, 181}, {106, 115, 51}, {116, 116, 182}, {117, 65535, -30}, },
              {{0, 107, -34}, {108, 108, 183}, {109, 65535, -83}, },
              {{0, 109, -40}, {110, 110, 184}, {111, 65535, -93}, },
              {{0, 109, -40}, {110, 110, 185}, {111, 65535, -93}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 111, -85}, {112, 112, 186}, {113, 65535, -46}, },
              {{0, 104, -37}, {105, 105, 187}, {106, 110, 51}, {111, 111, 188}, {112, 115, 51}, {116, 116, 189}, {117, 117, 51}, {118, 118, 190}, {119, 122, 51}, {127, 65535, 51}, },
              {{0, 65535, -3}, },
              {{0, 109, -40}, {110, 110, 191}, {111, 115, 51}, {116, 116, 192}, {117, 65535, -30}, },
              {{0, 95, -3}, {97, 97, 193}, {98, 65535, -47}, },
              {{0, 99, -36}, {100, 100, 194}, {101, 122, 51}, {127, 65535, 51}, },
              {{0, 95, -3}, {97, 117, 51}, {118, 118, 195}, {119, 65535, -107}, },
              {{0, 95, -3}, {97, 118, 51}, {119, 119, 196}, {120, 122, 51}, {127, 65535, 51}, },
              {{0, 109, -40}, {110, 110, 197}, {111, 115, 51}, {116, 116, 198}, {117, 65535, -30}, },
              {{0, 107, -34}, {108, 108, 199}, {109, 65535, -83}, },
              {{0, 65535, -3}, },
              {{0, 100, -31}, {101, 101, 200}, {102, 111, 51}, {112, 112, 201}, {113, 65535, -46}, },
              {{0, 99, -36}, {100, 100, 202}, {101, 65535, -111}, },
              {{0, 115, -87}, {116, 116, 203}, {117, 65535, -30}, },
              {{0, 98, -81}, {99, 99, 204}, {100, 113, 51}, {114, 114, 205}, {115, 65535, -32}, },
              {{0, 95, -3}, {97, 113, 51}, {114, 114, 206}, {115, 115, 207}, {116, 65535, -36}, },
              {{0, 100, -31}, {101, 101, 208}, {102, 104, 51}, {105, 105, 209}, {106, 110, 51}, {111, 111, 210}, {112, 65535, -33}, },
              {{0, 97, -30}, {98, 98, 211}, {99, 122, 51}, {127, 65535, 51}, },
              {{0, 100, -31}, {101, 101, 212}, {102, 65535, -94}, },
              {{0, 104, -37}, {105, 105, 213}, {106, 122, 51}, {127, 65535, 51}, },
              {{0, 95, -3}, {97, 97, 214}, {98, 98, 51}, {99, 99, 215}, {100, 101, 51}, {102, 102, 216}, {103, 111, 51}, {112, 112, 217}, {113, 113, 218}, {114, 115, 51}, {116, 116, 219}, {117, 65535, -30}, },
              {{0, 107, -34}, {108, 108, 220}, {109, 65535, -83}, },
              {{0, 107, -34}, {108, 108, 221}, {109, 109, 51}, {110, 110, 222}, {111, 65535, -93}, },
              {{0, 102, -82}, {103, 103, 223}, {104, 65535, -82}, },
              {{0, 100, -31}, {101, 101, 224}, {102, 65535, -94}, },
              {{0, 95, -3}, {97, 97, 225}, {98, 100, 51}, {101, 101, 226}, {102, 65535, -94}, },
              {{0, 97, -30}, {98, 98, 227}, {99, 65535, -123}, },
              {{0, 113, -121}, {114, 114, 228}, {115, 65535, -32}, },
              {{0, 100, -31}, {101, 101, 229}, {102, 65535, -94}, },
              {{0, 65535, -3}, },
              {{0, 95, -3}, {97, 97, 230}, {98, 116, 51}, {117, 117, 231}, {118, 120, 51}, {121, 121, 232}, {122, 65535, -31}, },
              {{0, 111, -85}, {112, 112, 233}, {113, 65535, -46}, },
              {{0, 104, -37}, {105, 105, 234}, {106, 107, 51}, {108, 108, 235}, {109, 110, 51}, {111, 111, 236}, {112, 115, 51}, {116, 116, 237}, {117, 65535, -30}, },
              {{0, 99, -36}, {100, 100, 238}, {101, 65535, -111}, },
              {{0, 113, -121}, {114, 114, 239}, {115, 65535, -32}, },
              {{0, 100, -31}, {101, 101, 240}, {102, 104, 51}, {105, 105, 241}, {106, 65535, -125}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 65535, -54}, },
              {},
              {{0, 41, -64}, {42, 42, 242}, {43, 65535, 144}, },
              {{0, 65535, -146}, },
              {{0, 9, 144}, {10, 10, 243}, {11, 65535, -146}, },
              {{0, 41, -66}, {42, 42, 244}, {43, 65535, 147}, },
              {{0, 65535, -149}, },
              {{0, 9, 147}, {10, 10, 245}, {11, 65535, -149}, },
              {{48, 57, 150}, },
              {{0, 255, -71}, },
              {{62, 62, 246}, },
              {{0, 115, -87}, {116, 116, 247}, {117, 65535, -30}, },
              {{0, 100, -31}, {101, 101, 248}, {102, 65535, -94}, },
              {{0, 110, -38}, {111, 111, 249}, {112, 65535, -33}, },
              {{0, 113, -121}, {114, 114, 250}, {115, 65535, -32}, },
              {{0, 95, -3}, {97, 97, 251}, {98, 65535, -47}, },
              {{0, 110, -38}, {111, 111, 252}, {112, 65535, -33}, },
              {{0, 65535, -3}, },
              {{0, 110, -38}, {111, 111, 253}, {112, 65535, -33}, },
              {{0, 107, -34}, {108, 108, 254}, {109, 65535, -83}, },
              {{0, 110, -38}, {111, 111, 255}, {112, 65535, -33}, },
              {{0, 113, -121}, {114, 114, 256}, {115, 65535, -32}, },
              {{0, 104, -37}, {105, 105, 257}, {106, 65535, -125}, },
              {{0, 95, -3}, {97, 97, 258}, {98, 65535, -47}, },
              {{0, 107, -34}, {108, 108, 259}, {109, 65535, -83}, },
              {{0, 98, -81}, {99, 99, 260}, {100, 122, 51}, {127, 65535, 51}, },
              {{0, 114, -80}, {115, 115, 261}, {116, 65535, -36}, },
              {{0, 111, -85}, {112, 112, 262}, {113, 65535, -46}, },
              {{0, 109, -40}, {110, 110, 263}, {111, 114, 51}, {115, 115, 264}, {116, 65535, -36}, },
              {{0, 95, -3}, {97, 97, 265}, {98, 65535, -47}, },
              {{0, 95, -3}, {97, 97, 266}, {98, 65535, -47}, },
              {{0, 100, -31}, {101, 101, 267}, {102, 65535, -94}, },
              {{0, 100, -31}, {101, 101, 268}, {102, 65535, -94}, },
              {{0, 104, -37}, {105, 105, 269}, {106, 65535, -125}, },
              {{0, 115, -87}, {116, 116, 270}, {117, 65535, -30}, },
              {{0, 100, -31}, {101, 101, 271}, {102, 65535, -94}, },
              {{0, 65535, -3}, },
              {{0, 113, -121}, {114, 114, 272}, {115, 65535, -32}, },
              {{0, 108, -93}, {109, 109, 273}, {110, 122, 51}, {127, 65535, 51}, },
              {{0, 115, -87}, {116, 116, 274}, {117, 65535, -30}, },
              {{0, 100, -31}, {101, 101, 275}, {102, 65535, -94}, },
              {{0, 114, -80}, {115, 115, 276}, {116, 65535, -36}, },
              {{0, 95, -3}, {97, 97, 277}, {98, 65535, -47}, },
              {{0, 98, -81}, {99, 99, 278}, {100, 65535, -169}, },
              {{0, 107, -34}, {108, 108, 279}, {109, 110, 51}, {111, 111, 280}, {112, 65535, -33}, },
              {{0, 115, -87}, {116, 116, 281}, {117, 65535, -30}, },
              {{0, 116, -42}, {117, 117, 282}, {118, 65535, -35}, },
              {{0, 100, -31}, {101, 101, 283}, {102, 65535, -94}, },
              {{0, 95, -3}, {97, 97, 284}, {98, 65535, -47}, },
              {{0, 95, -3}, {97, 106, 51}, {107, 107, 285}, {108, 122, 51}, {127, 65535, 51}, },
              {{0, 100, -31}, {101, 101, 286}, {102, 65535, -94}, },
              {{0, 99, -36}, {100, 100, 287}, {101, 65535, -111}, },
              {{0, 100, -31}, {101, 101, 288}, {102, 65535, -94}, },
              {{0, 104, -37}, {105, 105, 289}, {106, 65535, -125}, },
              {{0, 65535, -3}, },
              {{0, 100, -31}, {101, 101, 290}, {102, 116, 51}, {117, 117, 291}, {118, 65535, -35}, },
              {{0, 65535, -3}, },
              {{0, 107, -34}, {108, 108, 292}, {109, 65535, -83}, },
              {{0, 113, -121}, {114, 114, 293}, {115, 65535, -32}, },
              {{0, 110, -38}, {111, 111, 294}, {112, 65535, -33}, },
              {{0, 100, -31}, {101, 101, 295}, {102, 65535, -94}, },
              {{0, 65535, -3}, },
              {{0, 106, -193}, {107, 107, 296}, {108, 65535, -193}, },
              {{0, 95, -3}, {97, 97, 297}, {98, 65535, -47}, },
              {{0, 115, -87}, {116, 116, 298}, {117, 65535, -30}, },
              {{0, 115, -87}, {116, 116, 299}, {117, 65535, -30}, },
              {{0, 98, -81}, {99, 99, 300}, {100, 65535, -169}, },
              {{0, 108, -93}, {109, 109, 301}, {110, 117, 51}, {118, 118, 302}, {119, 65535, -107}, },
              {{0, 95, -3}, {97, 101, 51}, {102, 102, 303}, {103, 111, 51}, {112, 112, 304}, {113, 115, 51}, {116, 116, 305}, {117, 117, 51}, {118, 118, 306}, {119, 65535, -107}, },
              {{0, 107, -34}, {108, 108, 307}, {109, 65535, -83}, },
              {{0, 113, -121}, {114, 114, 308}, {115, 65535, -32}, },
              {{0, 114, -80}, {115, 115, 309}, {116, 65535, -36}, },
              {{0, 99, -36}, {100, 100, 310}, {101, 65535, -111}, },
              {{0, 100, -31}, {101, 101, 311}, {102, 65535, -94}, },
              {{0, 100, -31}, {101, 101, 312}, {102, 65535, -94}, },
              {{0, 100, -31}, {101, 101, 313}, {102, 65535, -94}, },
              {{0, 116, -42}, {117, 117, 314}, {118, 65535, -35}, },
              {{0, 116, -42}, {117, 117, 315}, {118, 65535, -35}, },
              {{0, 100, -31}, {101, 101, 316}, {102, 65535, -94}, },
              {{0, 101, -212}, {102, 102, 317}, {103, 122, 51}, {127, 65535, 51}, },
              {{0, 99, -36}, {100, 100, 318}, {101, 65535, -111}, },
              {{0, 109, -40}, {110, 110, 319}, {111, 65535, -93}, },
              {{0, 98, -81}, {99, 99, 320}, {100, 65535, -169}, },
              {{0, 115, -87}, {116, 116, 321}, {117, 65535, -30}, },
              {{0, 113, -121}, {114, 114, 322}, {115, 65535, -32}, },
              {{0, 114, -80}, {115, 115, 323}, {116, 65535, -36}, },
              {{0, 108, -93}, {109, 109, 324}, {110, 65535, -182}, },
              {{0, 109, -40}, {110, 110, 325}, {111, 65535, -93}, },
              {{0, 109, -40}, {110, 110, 326}, {111, 65535, -93}, },
              {{0, 100, -31}, {101, 101, 327}, {102, 65535, -94}, },
              {{0, 65535, -3}, },
              {{0, 100, -31}, {101, 101, 328}, {102, 65535, -94}, },
              {{0, 95, -3}, {97, 112, 51}, {113, 113, 329}, {114, 122, 51}, {127, 65535, 51}, },
              {{0, 104, -37}, {105, 105, 330}, {106, 65535, -125}, },
              {{0, 113, -121}, {114, 114, 331}, {115, 65535, -32}, },
              {{0, 104, -37}, {105, 105, 332}, {106, 65535, -125}, },
              {{0, 95, -3}, {97, 97, 333}, {98, 65535, -47}, },
              {{0, 65535, -3}, },
              {{0, 109, -40}, {110, 110, 334}, {111, 113, 51}, {114, 114, 335}, {115, 65535, -32}, },
              {{0, 107, -34}, {108, 108, 336}, {109, 65535, -83}, },
              {{0, 9, 337}, {10, 10, 338}, {11, 12, 337}, {13, 13, 339}, {14, 40, 337}, {41, 41, 340}, {42, 42, 242}, {43, 65535, 337}, },
              {{0, 65535, -146}, },
              {{0, 9, 341}, {10, 10, 342}, {11, 12, 341}, {13, 13, 343}, {14, 41, 341}, {42, 42, 244}, {43, 46, 341}, {47, 47, 344}, {48, 65535, 341}, },
              {{0, 65535, -149}, },
              {},
              {{0, 113, -121}, {114, 114, 345}, {115, 65535, -32}, },
              {{0, 114, -80}, {115, 115, 346}, {116, 65535, -36}, },
              {{0, 113, -121}, {114, 114, 347}, {115, 65535, -32}, },
              {{0, 100, -31}, {101, 101, 348}, {102, 65535, -94}, },
              {{0, 114, -80}, {115, 115, 349}, {116, 65535, -36}, },
              {{0, 118, -113}, {119, 119, 350}, {120, 65535, -113}, },
              {{0, 109, -40}, {110, 110, 351}, {111, 65535, -93}, },
              {{0, 95, -3}, {97, 120, 51}, {121, 121, 352}, {122, 65535, -31}, },
              {{0, 98, -81}, {99, 99, 353}, {100, 65535, -169}, },
              {{0, 104, -37}, {105, 105, 354}, {106, 65535, -125}, },
              {{0, 109, -40}, {110, 110, 355}, {111, 65535, -93}, },
              {{0, 99, -36}, {100, 100, 356}, {101, 65535, -111}, },
              {{0, 65535, -3}, },
              {{0, 103, -48}, {104, 104, 357}, {105, 65535, -48}, },
              {{0, 114, -80}, {115, 115, 358}, {116, 65535, -36}, },
              {{0, 110, -38}, {111, 111, 359}, {112, 65535, -33}, },
              {{0, 100, -31}, {101, 101, 360}, {102, 65535, -94}, },
              {{0, 115, -87}, {116, 116, 361}, {117, 65535, -30}, },
              {{0, 115, -87}, {116, 116, 362}, {117, 65535, -30}, },
              {{0, 115, -87}, {116, 116, 363}, {117, 65535, -30}, },
              {{0, 115, -87}, {116, 116, 364}, {117, 65535, -30}, },
              {{0, 109, -40}, {110, 110, 365}, {111, 65535, -93}, },
              {{0, 117, -112}, {118, 118, 366}, {119, 65535, -107}, },
              {{0, 113, -121}, {114, 114, 367}, {115, 65535, -32}, },
              {{0, 104, -37}, {105, 105, 368}, {106, 65535, -125}, },
              {{0, 120, -256}, {121, 121, 369}, {122, 65535, -31}, },
              {{0, 100, -31}, {101, 101, 370}, {102, 65535, -94}, },
              {{0, 65535, -3}, },
              {{0, 109, -40}, {110, 110, 371}, {111, 113, 51}, {114, 114, 372}, {115, 65535, -32}, },
              {{0, 100, -31}, {101, 101, 373}, {102, 65535, -94}, },
              {{0, 107, -34}, {108, 108, 374}, {109, 65535, -83}, },
              {{0, 115, -87}, {116, 116, 375}, {117, 65535, -30}, },
              {{0, 100, -31}, {101, 101, 376}, {102, 65535, -94}, },
              {{0, 113, -121}, {114, 114, 377}, {115, 65535, -32}, },
              {{0, 104, -37}, {105, 105, 378}, {106, 65535, -125}, },
              {{0, 115, -87}, {116, 116, 379}, {117, 65535, -30}, },
              {{0, 113, -121}, {114, 114, 380}, {115, 65535, -32}, },
              {{0, 113, -121}, {114, 114, 381}, {115, 65535, -32}, },
              {{0, 65535, -3}, },
              {{0, 113, -121}, {114, 114, 382}, {115, 65535, -32}, },
              {{0, 65535, -3}, },
              {{0, 107, -34}, {108, 108, 383}, {109, 65535, -83}, },
              {{0, 102, -82}, {103, 103, 384}, {104, 65535, -82}, },
              {{0, 65535, -3}, },
              {{0, 109, -40}, {110, 110, 385}, {111, 65535, -93}, },
              {{0, 65535, -3}, },
              {{0, 95, -3}, {97, 97, 386}, {98, 65535, -47}, },
              {{0, 114, -80}, {115, 115, 387}, {116, 65535, -36}, },
              {{0, 113, -121}, {114, 114, 388}, {115, 65535, -32}, },
              {{0, 95, -3}, {97, 97, 389}, {98, 65535, -47}, },
              {{0, 108, -93}, {109, 109, 390}, {110, 65535, -182}, },
              {{0, 65535, -3}, },
              {{0, 98, -81}, {99, 99, 391}, {100, 65535, -169}, },
              {{0, 110, -38}, {111, 111, 392}, {112, 65535, -33}, },
              {{0, 104, -37}, {105, 105, 393}, {106, 65535, -125}, },
              {{0, 95, -3}, {97, 97, 394}, {98, 65535, -47}, },
              {{0, 104, -37}, {105, 105, 395}, {106, 65535, -125}, },
              {{0, 100, -31}, {101, 101, 396}, {102, 65535, -94}, },
              {{0, 100, -31}, {101, 101, 397}, {102, 65535, -94}, },
              {{0, 104, -37}, {105, 105, 398}, {106, 65535, -125}, },
              {{0, 104, -37}, {105, 105, 399}, {106, 65535, -125}, },
              {{0, 120, -256}, {121, 121, 400}, {122, 65535, -31}, },
              {{0, 100, -31}, {101, 101, 401}, {102, 65535, -94}, },
              {{0, 110, -38}, {111, 111, 402}, {112, 65535, -33}, },
              {{0, 111, -85}, {112, 112, 403}, {113, 65535, -46}, },
              {{0, 113, -121}, {114, 114, 404}, {115, 65535, -32}, },
              {{0, 95, -3}, {97, 97, 405}, {98, 65535, -47}, },
              {{0, 104, -37}, {105, 105, 406}, {106, 65535, -125}, },
              {{0, 113, -121}, {114, 114, 407}, {115, 65535, -32}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 95, -3}, {97, 97, 408}, {98, 65535, -47}, },
              {{0, 104, -37}, {105, 105, 409}, {106, 65535, -125}, },
              {{0, 100, -31}, {101, 101, 410}, {102, 104, 51}, {105, 105, 411}, {106, 65535, -125}, },
              {{0, 100, -31}, {101, 101, 412}, {102, 65535, -94}, },
              {{0, 100, -31}, {101, 101, 413}, {102, 65535, -94}, },
              {{0, 104, -37}, {105, 105, 414}, {106, 65535, -125}, },
              {{0, 65535, -3}, },
              {{0, 114, -80}, {115, 115, 415}, {116, 65535, -36}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 116, -42}, {117, 117, 416}, {118, 65535, -35}, },
              {{0, 109, -40}, {110, 110, 417}, {111, 65535, -93}, },
              {{0, 99, -36}, {100, 100, 418}, {101, 65535, -111}, },
              {{0, 107, -34}, {108, 108, 419}, {109, 65535, -83}, },
              {{0, 115, -87}, {116, 116, 420}, {117, 65535, -30}, },
              {{0, 65535, -3}, },
              {{0, 100, -31}, {101, 101, 421}, {102, 65535, -94}, },
              {{0, 100, -31}, {101, 101, 422}, {102, 65535, -94}, },
              {{0, 9, 423}, {10, 10, 424}, {11, 12, 423}, {13, 13, 425}, {14, 41, 423}, {42, 42, 426}, {43, 65535, 423}, },
              {{0, 65535, -339}, },
              {{0, 9, 423}, {10, 10, 427}, {11, 65535, -339}, },
              {},
              {{0, 9, 428}, {10, 10, 429}, {11, 12, 428}, {13, 13, 430}, {14, 41, 428}, {42, 42, 431}, {43, 65535, 428}, },
              {{0, 65535, -343}, },
              {{0, 9, 428}, {10, 10, 432}, {11, 65535, -343}, },
              {},
              {{0, 95, -3}, {97, 97, 433}, {98, 65535, -47}, },
              {{0, 114, -80}, {115, 115, 434}, {116, 65535, -36}, },
              {{0, 65535, -3}, },
              {{0, 102, -82}, {103, 103, 435}, {104, 65535, -82}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 100, -31}, {101, 101, 436}, {102, 65535, -94}, },
              {{0, 65535, -3}, },
              {{0, 104, -37}, {105, 105, 437}, {106, 65535, -125}, },
              {{0, 97, -30}, {98, 98, 438}, {99, 65535, -123}, },
              {{0, 65535, -3}, },
              {{0, 98, -81}, {99, 99, 439}, {100, 65535, -169}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 109, -40}, {110, 110, 440}, {111, 114, 51}, {115, 115, 441}, {116, 65535, -36}, },
              {{0, 98, -81}, {99, 99, 442}, {100, 65535, -169}, },
              {{0, 113, -121}, {114, 114, 443}, {115, 65535, -32}, },
              {{0, 100, -31}, {101, 101, 444}, {102, 65535, -94}, },
              {{0, 120, -256}, {121, 121, 445}, {122, 65535, -31}, },
              {{0, 100, -31}, {101, 101, 446}, {102, 65535, -94}, },
              {{0, 99, -36}, {100, 100, 447}, {101, 65535, -111}, },
              {{0, 100, -31}, {101, 101, 448}, {102, 65535, -94}, },
              {{0, 110, -38}, {111, 111, 449}, {112, 65535, -33}, },
              {{0, 101, -212}, {102, 102, 450}, {103, 65535, -223}, },
              {{0, 65535, -3}, },
              {{0, 113, -121}, {114, 114, 451}, {115, 65535, -32}, },
              {{0, 99, -36}, {100, 100, 452}, {101, 115, 51}, {116, 116, 453}, {117, 65535, -30}, },
              {{0, 109, -40}, {110, 110, 454}, {111, 65535, -93}, },
              {{0, 65535, -3}, },
              {{0, 107, -34}, {108, 108, 455}, {109, 65535, -83}, },
              {{0, 104, -37}, {105, 105, 456}, {106, 65535, -125}, },
              {{0, 108, -93}, {109, 109, 457}, {110, 65535, -182}, },
              {{0, 115, -87}, {116, 116, 458}, {117, 65535, -30}, },
              {{0, 95, -3}, {97, 97, 459}, {98, 65535, -47}, },
              {{0, 65535, -3}, },
              {{0, 101, -212}, {102, 102, 460}, {103, 65535, -223}, },
              {{0, 104, -37}, {105, 105, 461}, {106, 65535, -125}, },
              {{0, 95, -3}, {97, 97, 462}, {98, 65535, -47}, },
              {{0, 65535, -3}, },
              {{0, 95, -3}, {97, 97, 463}, {98, 65535, -47}, },
              {{0, 104, -37}, {105, 105, 464}, {106, 65535, -125}, },
              {{0, 115, -87}, {116, 116, 465}, {117, 65535, -30}, },
              {{0, 104, -37}, {105, 105, 466}, {106, 65535, -125}, },
              {{0, 100, -31}, {101, 101, 467}, {102, 65535, -94}, },
              {{0, 102, -82}, {103, 103, 468}, {104, 65535, -82}, },
              {{0, 100, -31}, {101, 101, 469}, {102, 65535, -94}, },
              {{0, 110, -38}, {111, 111, 470}, {112, 65535, -33}, },
              {{0, 109, -40}, {110, 110, 471}, {111, 65535, -93}, },
              {{0, 115, -87}, {116, 116, 472}, {117, 65535, -30}, },
              {{0, 115, -87}, {116, 116, 473}, {117, 65535, -30}, },
              {{0, 107, -34}, {108, 108, 474}, {109, 65535, -83}, },
              {{0, 113, -121}, {114, 114, 475}, {115, 65535, -32}, },
              {{0, 98, -81}, {99, 99, 476}, {100, 65535, -169}, },
              {{0, 99, -36}, {100, 100, 477}, {101, 65535, -111}, },
              {{0, 98, -81}, {99, 99, 478}, {100, 65535, -169}, },
              {{0, 65535, -3}, },
              {{0, 114, -80}, {115, 115, 479}, {116, 65535, -36}, },
              {{0, 109, -40}, {110, 110, 480}, {111, 65535, -93}, },
              {{0, 115, -87}, {116, 116, 481}, {117, 65535, -30}, },
              {{0, 100, -31}, {101, 101, 482}, {102, 65535, -94}, },
              {{0, 115, -87}, {116, 116, 483}, {117, 65535, -30}, },
              {{0, 113, -121}, {114, 114, 484}, {115, 65535, -32}, },
              {{0, 109, -40}, {110, 110, 485}, {111, 65535, -93}, },
              {{0, 107, -34}, {108, 108, 486}, {109, 65535, -83}, },
              {{0, 95, -3}, {97, 97, 487}, {98, 65535, -47}, },
              {{0, 108, -93}, {109, 109, 488}, {110, 65535, -182}, },
              {{0, 98, -81}, {99, 99, 489}, {100, 65535, -169}, },
              {{0, 110, -38}, {111, 111, 490}, {112, 65535, -33}, },
              {{0, 115, -87}, {116, 116, 491}, {117, 65535, -30}, },
              {{0, 109, -40}, {110, 110, 492}, {111, 65535, -93}, },
              {{0, 104, -37}, {105, 105, 493}, {106, 65535, -125}, },
              {{0, 100, -31}, {101, 101, 494}, {102, 65535, -94}, },
              {{0, 106, -193}, {107, 107, 495}, {108, 65535, -193}, },
              {{0, 100, -31}, {101, 101, 496}, {102, 65535, -94}, },
              {{0, 65535, -3}, },
              {{0, 100, -31}, {101, 101, 497}, {102, 65535, -94}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 65535, -339}, },
              {{0, 65535, -339}, },
              {{0, 9, 423}, {10, 10, 498}, {11, 65535, -339}, },
              {{0, 41, -244}, {42, 42, 426}, {43, 65535, 337}, },
              {{0, 65535, -339}, },
              {{0, 65535, -343}, },
              {{0, 65535, -343}, },
              {{0, 9, 428}, {10, 10, 499}, {11, 65535, -343}, },
              {{0, 41, -246}, {42, 42, 431}, {43, 65535, -246}, },
              {{0, 65535, -343}, },
              {{0, 98, -81}, {99, 99, 500}, {100, 65535, -169}, },
              {{0, 65535, -3}, },
              {{0, 95, -3}, {97, 97, 501}, {98, 65535, -47}, },
              {{0, 65535, -3}, },
              {{0, 95, -3}, {97, 97, 502}, {98, 65535, -47}, },
              {{0, 116, -42}, {117, 117, 503}, {118, 65535, -35}, },
              {{0, 95, -3}, {97, 97, 504}, {98, 65535, -47}, },
              {{0, 100, -31}, {101, 101, 505}, {102, 65535, -94}, },
              {{0, 104, -37}, {105, 105, 506}, {106, 65535, -125}, },
              {{0, 115, -87}, {116, 116, 507}, {117, 65535, -30}, },
              {{0, 116, -42}, {117, 117, 508}, {118, 65535, -35}, },
              {{0, 65535, -3}, },
              {{0, 111, -85}, {112, 112, 509}, {113, 65535, -46}, },
              {{0, 65535, -3}, },
              {{0, 100, -31}, {101, 101, 510}, {102, 65535, -94}, },
              {{0, 99, -36}, {100, 100, 511}, {101, 65535, -111}, },
              {{0, 120, -256}, {121, 121, 512}, {122, 65535, -31}, },
              {{0, 65535, -3}, },
              {{0, 95, -3}, {97, 97, 513}, {98, 65535, -47}, },
              {{0, 114, -80}, {115, 115, 514}, {116, 65535, -36}, },
              {{0, 65535, -3}, },
              {{0, 95, -3}, {97, 97, 515}, {98, 65535, -47}, },
              {{0, 120, -256}, {121, 121, 516}, {122, 65535, -31}, },
              {{0, 110, -38}, {111, 111, 517}, {112, 65535, -33}, },
              {{0, 100, -31}, {101, 101, 518}, {102, 65535, -94}, },
              {{0, 65535, -3}, },
              {{0, 107, -34}, {108, 108, 519}, {109, 65535, -83}, },
              {{0, 95, -3}, {97, 97, 520}, {98, 65535, -47}, },
              {{0, 95, -3}, {97, 97, 521}, {98, 65535, -47}, },
              {{0, 107, -34}, {108, 108, 522}, {109, 65535, -83}, },
              {{0, 97, -30}, {98, 98, 523}, {99, 65535, -123}, },
              {{0, 112, -236}, {113, 113, 524}, {114, 65535, -236}, },
              {{0, 104, -37}, {105, 105, 525}, {106, 65535, -125}, },
              {{0, 115, -87}, {116, 116, 526}, {117, 65535, -30}, },
              {{0, 99, -36}, {100, 100, 527}, {101, 65535, -111}, },
              {{0, 100, -31}, {101, 101, 528}, {102, 65535, -94}, },
              {{0, 115, -87}, {116, 116, 529}, {117, 65535, -30}, },
              {{0, 109, -40}, {110, 110, 530}, {111, 65535, -93}, },
              {{0, 99, -36}, {100, 100, 531}, {101, 65535, -111}, },
              {{0, 104, -37}, {105, 105, 532}, {106, 65535, -125}, },
              {{0, 100, -31}, {101, 101, 533}, {102, 65535, -94}, },
              {{0, 100, -31}, {101, 101, 534}, {102, 65535, -94}, },
              {{0, 115, -87}, {116, 116, 535}, {117, 65535, -30}, },
              {{0, 115, -87}, {116, 116, 536}, {117, 65535, -30}, },
              {{0, 100, -31}, {101, 101, 537}, {102, 65535, -94}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 107, -34}, {108, 108, 538}, {109, 65535, -83}, },
              {{0, 104, -37}, {105, 105, 539}, {106, 65535, -125}, },
              {{0, 109, -40}, {110, 110, 540}, {111, 65535, -93}, },
              {{0, 65535, -3}, },
              {{0, 100, -31}, {101, 101, 541}, {102, 65535, -94}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 107, -34}, {108, 108, 542}, {109, 65535, -83}, },
              {{0, 95, -3}, {97, 97, 543}, {98, 65535, -47}, },
              {{0, 65535, -3}, },
              {{0, 115, -87}, {116, 116, 544}, {117, 65535, -30}, },
              {{0, 114, -80}, {115, 115, 545}, {116, 65535, -36}, },
              {{0, 95, -3}, {97, 97, 546}, {98, 65535, -47}, },
              {{0, 115, -87}, {116, 116, 547}, {117, 65535, -30}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 113, -121}, {114, 114, 548}, {115, 65535, -32}, },
              {{0, 65535, -3}, },
              {{0, 65535, -339}, },
              {{0, 65535, -343}, },
              {{0, 115, -87}, {116, 116, 549}, {117, 65535, -30}, },
              {{0, 115, -87}, {116, 116, 550}, {117, 65535, -30}, },
              {{0, 115, -87}, {116, 116, 551}, {117, 65535, -30}, },
              {{0, 115, -87}, {116, 116, 552}, {117, 65535, -30}, },
              {{0, 114, -80}, {115, 115, 553}, {116, 65535, -36}, },
              {{0, 109, -40}, {110, 110, 554}, {111, 65535, -93}, },
              {{0, 115, -87}, {116, 116, 555}, {117, 65535, -30}, },
              {{0, 110, -38}, {111, 111, 556}, {112, 65535, -33}, },
              {{0, 98, -81}, {99, 99, 557}, {100, 65535, -169}, },
              {{0, 100, -31}, {101, 101, 558}, {102, 65535, -94}, },
              {{0, 109, -40}, {110, 110, 559}, {111, 65535, -93}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 115, -87}, {116, 116, 560}, {117, 65535, -30}, },
              {{0, 65535, -3}, },
              {{0, 107, -34}, {108, 108, 561}, {109, 65535, -83}, },
              {{0, 65535, -3}, },
              {{0, 109, -40}, {110, 110, 562}, {111, 65535, -93}, },
              {{0, 109, -40}, {110, 110, 563}, {111, 65535, -93}, },
              {{0, 65535, -3}, },
              {{0, 98, -81}, {99, 99, 564}, {100, 65535, -169}, },
              {{0, 109, -40}, {110, 110, 565}, {111, 65535, -93}, },
              {{0, 65535, -3}, },
              {{0, 107, -34}, {108, 108, 566}, {109, 65535, -83}, },
              {{0, 116, -42}, {117, 117, 567}, {118, 65535, -35}, },
              {{0, 110, -38}, {111, 111, 568}, {112, 65535, -33}, },
              {{0, 100, -31}, {101, 101, 569}, {102, 65535, -94}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 100, -31}, {101, 101, 570}, {102, 65535, -94}, },
              {{0, 99, -36}, {100, 100, 571}, {101, 65535, -111}, },
              {{0, 104, -37}, {105, 105, 572}, {106, 65535, -125}, },
              {{0, 117, -112}, {118, 118, 573}, {119, 65535, -107}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 120, -256}, {121, 121, 574}, {122, 65535, -31}, },
              {{0, 100, -31}, {101, 101, 575}, {102, 65535, -94}, },
              {{0, 99, -36}, {100, 100, 576}, {101, 65535, -111}, },
              {{0, 120, -256}, {121, 121, 577}, {122, 65535, -31}, },
              {{0, 110, -38}, {111, 111, 578}, {112, 65535, -33}, },
              {{0, 98, -81}, {99, 99, 579}, {100, 65535, -169}, },
              {{0, 99, -36}, {100, 100, 580}, {101, 65535, -111}, },
              {{0, 104, -37}, {105, 105, 581}, {106, 65535, -125}, },
              {{0, 98, -81}, {99, 99, 582}, {100, 65535, -169}, },
              {{0, 120, -256}, {121, 121, 583}, {122, 65535, -31}, },
              {{0, 65535, -3}, },
              {{0, 115, -87}, {116, 116, 584}, {117, 65535, -30}, },
              {{0, 104, -37}, {105, 105, 585}, {106, 65535, -125}, },
              {{0, 100, -31}, {101, 101, 586}, {102, 65535, -94}, },
              {{0, 65535, -3}, },
              {{0, 104, -37}, {105, 105, 587}, {106, 65535, -125}, },
              {{0, 104, -37}, {105, 105, 588}, {106, 65535, -125}, },
              {{0, 100, -31}, {101, 101, 589}, {102, 65535, -94}, },
              {{0, 115, -87}, {116, 116, 590}, {117, 65535, -30}, },
              {{0, 115, -87}, {116, 116, 591}, {117, 65535, -30}, },
              {{0, 104, -37}, {105, 105, 592}, {106, 65535, -125}, },
              {{0, 113, -121}, {114, 114, 593}, {115, 65535, -32}, },
              {{0, 115, -87}, {116, 116, 594}, {117, 65535, -30}, },
              {{0, 65535, -3}, },
              {{0, 98, -81}, {99, 99, 595}, {100, 65535, -169}, },
              {{0, 104, -37}, {105, 105, 596}, {106, 65535, -125}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 115, -87}, {116, 116, 597}, {117, 65535, -30}, },
              {{0, 100, -31}, {101, 101, 598}, {102, 65535, -94}, },
              {{0, 115, -87}, {116, 116, 599}, {117, 65535, -30}, },
              {{0, 100, -31}, {101, 101, 600}, {102, 65535, -94}, },
              {{0, 100, -31}, {101, 101, 601}, {102, 65535, -94}, },
              {{0, 109, -40}, {110, 110, 602}, {111, 65535, -93}, },
              {{0, 65535, -3}, },
              {{0, 113, -121}, {114, 114, 603}, {115, 65535, -32}, },
              {{0, 104, -37}, {105, 105, 604}, {106, 65535, -125}, },
              {{0, 115, -87}, {116, 116, 605}, {117, 65535, -30}, },
              {{0, 100, -31}, {101, 101, 606}, {102, 65535, -94}, },
              {{0, 65535, -3}, },
              {{0, 99, -36}, {100, 100, 607}, {101, 65535, -111}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 109, -40}, {110, 110, 608}, {111, 65535, -93}, },
              {{0, 100, -31}, {101, 101, 609}, {102, 65535, -94}, },
              {{0, 65535, -3}, },
              {{0, 95, -3}, {97, 121, 51}, {122, 122, 610}, {127, 65535, 51}, },
              {{0, 103, -48}, {104, 104, 611}, {105, 65535, -48}, },
              {{0, 111, -85}, {112, 112, 612}, {113, 65535, -46}, },
              {{0, 100, -31}, {101, 101, 613}, {102, 65535, -94}, },
              {{0, 110, -38}, {111, 111, 614}, {112, 65535, -33}, },
              {{0, 99, -36}, {100, 100, 615}, {101, 65535, -111}, },
              {{0, 110, -38}, {111, 111, 616}, {112, 65535, -33}, },
              {{0, 110, -38}, {111, 111, 617}, {112, 65535, -33}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 110, -38}, {111, 111, 618}, {112, 65535, -33}, },
              {{0, 65535, -3}, },
              {{0, 110, -38}, {111, 111, 619}, {112, 65535, -33}, },
              {{0, 120, -256}, {121, 121, 620}, {122, 65535, -31}, },
              {{0, 110, -38}, {111, 111, 621}, {112, 65535, -33}, },
              {{0, 114, -80}, {115, 115, 622}, {116, 65535, -36}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 114, -80}, {115, 115, 623}, {116, 65535, -36}, },
              {{0, 115, -87}, {116, 116, 624}, {117, 65535, -30}, },
              {{0, 104, -37}, {105, 105, 625}, {106, 65535, -125}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 100, -31}, {101, 101, 626}, {102, 65535, -94}, },
              {{0, 104, -37}, {105, 105, 627}, {106, 65535, -125}, },
              {{0, 100, -31}, {101, 101, 628}, {102, 65535, -94}, },
              {{0, 65535, -3}, },
              {{0, 109, -40}, {110, 110, 629}, {111, 65535, -93}, },
              {{0, 65535, -3}, },
              {{0, 109, -40}, {110, 110, 630}, {111, 65535, -93}, },
              {{0, 109, -40}, {110, 110, 631}, {111, 65535, -93}, },
              {{0, 109, -40}, {110, 110, 632}, {111, 65535, -93}, },
              {{0, 113, -121}, {114, 114, 633}, {115, 65535, -32}, },
              {{0, 65535, -3}, },
              {{0, 109, -40}, {110, 110, 634}, {111, 65535, -93}, },
              {{0, 65535, -3}, },
              {{0, 100, -31}, {101, 101, 635}, {102, 65535, -94}, },
              {{0, 104, -37}, {105, 105, 636}, {106, 65535, -125}, },
              {{0, 110, -38}, {111, 111, 637}, {112, 65535, -33}, },
              {{0, 114, -80}, {115, 115, 638}, {116, 65535, -36}, },
              {{0, 109, -40}, {110, 110, 639}, {111, 65535, -93}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 115, -87}, {116, 116, 640}, {117, 65535, -30}, },
              {{0, 110, -38}, {111, 111, 641}, {112, 65535, -33}, },
              {{0, 109, -40}, {110, 110, 642}, {111, 65535, -93}, },
              {{0, 65535, -3}, },
              {{0, 100, -31}, {101, 101, 643}, {102, 65535, -94}, },
              {{0, 65535, -3}, },
              {{0, 109, -40}, {110, 110, 644}, {111, 65535, -93}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
              {{0, 65535, -3}, },
          }
      };*/
  
      private static int[][] accept;
  /*  {
          // INITIAL
          {158, 151, 151, 158, 151, 158, 158, 62, -1, 140, 141, 142, 120, 118, 134, 119, 137, 121, 152, 135, 136, 126, 123, 128, 132, 143, 151, 144, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 145, 146, 149, 150, 151, 151, 151, 151, 158, 158, 158, 133, 130, -1, 154, -1, 147, -1, -1, 139, 122, 148, -1, 127, 124, 129, 138, 131, 151, 151, 151, 151, 151, 151, 151, 151, 151, 12, 151, 151, 151, 16, 151, 151, 151, 151, 151, 151, 30, 151, 151, 151, 151, 151, 151, 44, 45, 151, 48, 53, 151, 151, 151, 151, 151, 151, 151, 64, 151, 67, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 104, 151, 151, 151, 151, 151, 151, 151, 151, 151, 125, -1, -1, -1, -1, -1, -1, 153, -1, -1, 151, 151, 151, 151, 151, 6, 7, 8, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 33, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 59, 151, 62, 151, 151, 151, 151, 69, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 107, 151, 151, 151, 151, 151, 151, 114, 151, 151, -1, -1, -1, -1, 155, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 17, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 31, 151, 151, 36, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 54, 151, 56, 151, 151, 60, 151, 63, 151, 151, 151, 151, 151, 72, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 85, 151, 151, 151, 151, 151, 92, 93, 94, 151, 151, 151, 151, 151, 151, 103, 151, 106, 108, 151, 151, 151, 151, 151, 115, 151, 151, -1, -1, -1, 157, -1, -1, -1, 156, 151, 151, 2, 151, 4, 5, 151, 10, 151, 151, 14, 151, 18, 19, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 34, 151, 151, 151, 40, 41, 151, 151, 151, 151, 50, 151, 151, 151, 57, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 82, 83, 151, 151, 151, 151, 151, 151, 151, 151, 97, 151, 151, 151, 151, 151, 151, 151, 151, 112, 151, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 151, 1, 151, 9, 151, 151, 151, 151, 151, 151, 151, 24, 151, 26, 151, 151, 151, 32, 151, 151, 38, 151, 151, 151, 151, 47, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 81, 84, 151, 151, 151, 89, 151, 91, 95, 151, 151, 99, 151, 151, 151, 151, 109, 110, 151, 113, -1, -1, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 28, 29, 151, 37, 151, 42, 151, 151, 49, 151, 151, 55, 151, 151, 151, 151, 68, 70, 151, 151, 151, 151, 76, 77, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 101, 151, 151, 151, 0, 151, 151, 151, 151, 151, 151, 151, 151, 25, 151, 151, 39, 43, 151, 151, 151, 151, 151, 151, 66, 151, 151, 151, 151, 78, 151, 80, 86, 151, 151, 90, 151, 151, 151, 151, 151, 151, 151, 151, 13, 15, 20, 151, 22, 151, 151, 151, 151, 51, 52, 58, 61, 65, 151, 151, 151, 75, 79, 87, 88, 151, 151, 151, 102, 151, 111, 151, 151, 151, 151, 27, 151, 46, 151, 151, 151, 151, 151, 100, 105, 3, 11, 21, 23, 35, 151, 151, 151, 96, 151, 71, 151, 74, 98, 73, },
  
      };*/
  
      public static class State
      {
          public final static State INITIAL = new State(0);
  
          private int id;
  
          private State(@SuppressWarnings("hiding") int id)
          {
              this.id = id;
          }
  
          public int id()
          {
              return this.id;
          }
      }
  
      static 
      {
          try
          {
              DataInputStream s = new DataInputStream(
                  new BufferedInputStream(
                  Lexer.class.getResourceAsStream("lexer.dat")));
  
              // read gotoTable
              int length = s.readInt();
              gotoTable = new int[length][][][];
              for(int i = 0; i < gotoTable.length; i++)
              {
                  length = s.readInt();
                  gotoTable[i] = new int[length][][];
                  for(int j = 0; j < gotoTable[i].length; j++)
                  {
                      length = s.readInt();
                      gotoTable[i][j] = new int[length][3];
                      for(int k = 0; k < gotoTable[i][j].length; k++)
                      {
                          for(int l = 0; l < 3; l++)
                          {
                              gotoTable[i][j][k][l] = s.readInt();
                          }
                      }
                  }
              }
  
              // read accept
              length = s.readInt();
              accept = new int[length][];
              for(int i = 0; i < accept.length; i++)
              {
                  length = s.readInt();
                  accept[i] = new int[length];
                  for(int j = 0; j < accept[i].length; j++)
                  {
                      accept[i][j] = s.readInt();
                  }
              }
  
              s.close();
          }
          catch(Exception e)
          {
              throw new RuntimeException("The file \"lexer.dat\" is either missing or corrupted.");
          }
      }
  }
  