package test0002; | |
public class Parser | |
implements BindingIds, ParserBasicInformation, TerminalTokens, | |
CompilerModifiers, OperatorIds, TypeIds { | |
protected ProblemReporter problemReporter; | |
protected CompilerOptions options; | |
public int firstToken; // handle for multiple parsing goals | |
public int lastAct; //handle for multiple parsing goals | |
protected ReferenceContext referenceContext; | |
public int currentToken; | |
private int synchronizedBlockSourceStart; | |
//error recovery management | |
protected int lastCheckPoint; | |
protected RecoveredElement currentElement; | |
public static boolean VERBOSE_RECOVERY = false; | |
protected boolean restartRecovery; | |
protected int listLength; // for recovering some incomplete list (interfaces, throws or parameters) | |
protected boolean hasError; | |
protected boolean hasReportedError; | |
public static boolean fineErrorDiagnose = true; //TODO remove the static modifier when new diagnose is ready | |
public boolean reportSyntaxErrorIsRequired = true; | |
public boolean reportOnlyOneSyntaxError = false; | |
protected int recoveredStaticInitializerStart; | |
protected int lastIgnoredToken, nextIgnoredToken; // comment | |
protected int lastErrorEndPosition; | |
protected boolean ignoreNextOpeningBrace; | |
//internal data for the automat | |
protected final static int StackIncrement = 255; | |
protected int stateStackTop; | |
protected int[] stack = new int[StackIncrement]; | |
//scanner token | |
public Scanner scanner; | |
//ast stack | |
final static int AstStackIncrement = 100; | |
protected int astPtr; | |
protected AstNode[] astStack = | |
new AstNode[AstStackIncrement]; | |
protected int astLengthPtr; | |
protected int[] astLengthStack; | |
public CompilationUnitDeclaration compilationUnit; /*the result from parse()*/ | |
AstNode[] noAstNodes = | |
new AstNode[AstStackIncrement]; | |
//expression stack | |
final static int ExpressionStackIncrement = 100; | |
protected int expressionPtr; | |
protected Expression[] expressionStack = | |
new Expression[ExpressionStackIncrement]; | |
protected int expressionLengthPtr; | |
protected int[] expressionLengthStack; | |
Expression[] noExpressions = | |
new Expression[ExpressionStackIncrement]; | |
//identifiers stacks | |
protected int identifierPtr; | |
protected char[][] identifierStack; | |
protected int identifierLengthPtr; | |
protected int[] identifierLengthStack; | |
protected long[] identifierPositionStack; | |
//positions , dimensions , .... (what ever is int) ..... stack | |
protected int intPtr; | |
protected int[] intStack; | |
protected int endPosition; //accurate only when used ! (the start position is pushed into intStack while the end the current one) | |
protected int endStatementPosition; | |
protected int lParenPos, rParenPos; //accurate only when used ! | |
//modifiers dimensions nestedType etc....... | |
protected boolean optimizeStringLiterals = true; | |
protected int modifiers; | |
protected int modifiersSourceStart; | |
protected int nestedType, dimensions; | |
protected int[] nestedMethod; //the ptr is nestedType | |
protected int[] realBlockStack; | |
protected int realBlockPtr; | |
protected boolean diet = false; //tells the scanner to jump over some parts of the code/expressions like method bodies | |
protected int dietInt = 0; // if > 0 force the none-diet-parsing mode (even if diet if requested) [field parsing with anonymous inner classes...] | |
protected int[] variablesCounter; | |
//===DATA===DATA===DATA===DATA===DATA===DATA===// | |
public final static byte rhs[] = { | |
0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, | |
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |
2, 2, 1, 1, 1, 1, 3, 4, 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, | |
2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 4, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, | |
1, 1, 1, 1, 2, 3, 3, 2, 2, 1, 3, 1, 3, 1, 2, 1, 1, 1, 3, 0, 3, 1, 1, | |
1, 1, 1, 1, 1, 4, 1, 3, 3, 7, 0, 0, 0, 0, 0, 2, 1, 1, 1, 2, 2, 4, 4, | |
5, 4, 4, 2, 1, 2, 3, 3, 1, 3, 3, 1, 3, 1, 4, 0, 2, 1, 2, 2, 4, 1, 1, | |
2, 5, 5, 7, 7, 7, 7, 2, 2, 3, 2, 2, 3, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, | |
1, 1, 1, 3, 3, 4, 1, 3, 4, 0, 1, 2, 1, 1, 1, 1, 2, 3, 4, 0, 1, 1, 1, | |
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, | |
2, 1, 1, 1, 1, 1, 1, 1, 5, 7, 7, 6, 2, 3, 3, 4, 1, 2, 2, 1, 2, 3, 2, | |
5, 5, 7, 9, 9, 1, 1, 1, 1, 3, 3, 5, 2, 3, 2, 3, 3, 3, 5, 1, 3, 4, 1, | |
2, 5, 2, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 3, 3, 3, 3, 1, 1, 5, 6, 8, | |
7, 2, 0, 2, 0, 1, 3, 3, 3, 3, 4, 3, 4, 1, 2, 3, 2, 1, 1, 2, 2, 3, 3, | |
4, 6, 6, 4, 4, 4, 1, 1, 1, 1, 2, 2, 0, 1, 1, 3, 3, 1, 3, 3, 1, 3, 3, | |
1, 6, 6, 5, 0, 0, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, | |
1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 1, 3, 3, 1, 1, 1, 1, | |
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, | |
0, 2, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 0, 1, 0, 1, | |
0, 1, 0, 1 | |
}; | |
public static char asb[] = null; | |
public static char asr[] = null; | |
public static char nasb[] = null; | |
public static char nasr[] = null; | |
public static char terminal_index[] = null; | |
public static char non_terminal_index[] = null; | |
public static char term_action[] = null; | |
public final static byte term_check[] = { | |
0, 0, 0, 0, 0, 3, 0, 3, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, | |
12, 22, 0, 24, 25, 25, 4, 5, 6, 25, 31, 32, 33, 34, 35, 36, 37, 38, | |
39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 0, | |
57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 0, 70, 71, 72, 73, 74, | |
75, 76, 77, 78, 79, 80, 0, 0, 0, 84, 85, 18, 19, 7, 8, 0, 1, 2, 3, 4, | |
5, 6, 7, 8, 9, 10, 11, 12, 22, 21, 24, 25, 0, 26, 27, 28, 55, 31, 32, | |
33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, | |
50, 51, 52, 81, 54, 55, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 81, | |
12, 83, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 56, 0, 84, 85, | |
0, 4, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 22, 0, 24, 25, | |
24, 4, 5, 6, 55, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, | |
44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 56, 57, 58, 59, 60, 61, | |
62, 63, 64, 65, 66, 0, 0, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, | |
80, 0, 13, 14, 15, 16, 17, 82, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, | |
11, 12, 22, 0, 24, 25, 0, 4, 5, 6, 0, 31, 32, 33, 34, 35, 36, 37, 38, | |
39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 81, 54, 55, | |
56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 41, 82, 0, 70, 71, 72, 73, | |
74, 75, 76, 77, 78, 79, 80, 0, 13, 14, 15, 16, 17, 57, 7, 8, 0, 1, 2, | |
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 22, 0, 24, 25, 0, 4, 5, 6, 0, 31, 32, | |
33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, | |
50, 51, 52, 27, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, | |
0, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 13, 14, 15, 16, | |
17, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 22, 0, 24, 25, | |
3, 0, 22, 0, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 91, 41, 42, 43, | |
44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 3, 57, 58, 59, 60, 61, | |
62, 63, 64, 65, 66, 40, 82, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, | |
80, 81, 0, 83, 0, 0, 0, 18, 19, 7, 8, 0, 1, 2, 0, 4, 5, 6, 7, 8, 9, | |
10, 11, 0, 22, 0, 24, 25, 22, 0, 24, 84, 85, 31, 32, 33, 34, 35, 36, | |
37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, | |
55, 3, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 40, 0, 29, 70, 71, 72, | |
73, 74, 75, 76, 77, 78, 79, 80, 81, 0, 83, 0, 1, 2, 0, 86, 7, 8, 0, 1, | |
2, 91, 4, 5, 6, 7, 8, 9, 10, 11, 0, 22, 82, 24, 25, 87, 22, 89, 84, | |
85, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, | |
48, 49, 50, 51, 52, 0, 54, 55, 70, 57, 58, 59, 60, 61, 62, 63, 64, 65, | |
66, 0, 1, 2, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, 83, 0, | |
1, 2, 0, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 12, 22, 3, 24, | |
25, 55, 9, 10, 11, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 21, 41, 42, | |
43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 0, 57, 58, 59, 60, | |
61, 62, 63, 64, 65, 66, 0, 1, 2, 70, 71, 72, 73, 74, 75, 76, 77, 78, | |
79, 80, 0, 26, 0, 28, 55, 0, 87, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, | |
0, 0, 12, 22, 0, 24, 25, 24, 9, 10, 11, 25, 31, 32, 33, 34, 35, 36, | |
37, 38, 39, 20, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 30, | |
54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 0, 70, 71, | |
72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 0, 0, 0, 3, 0, 3, 7, 8, 0, 1, | |
2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 12, 22, 0, 24, 25, 25, 9, 10, 11, 25, | |
31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, | |
49, 50, 51, 52, 0, 54, 69, 0, 1, 2, 0, 4, 5, 6, 7, 8, 25, 7, 8, 0, 0, | |
70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 22, 0, 24, 25, 0, 0, 0, 0, | |
0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 12, 41, 42, 43, 44, 45, 46, 47, | |
48, 49, 50, 51, 52, 23, 54, 0, 30, 0, 3, 4, 5, 6, 7, 8, 7, 8, 40, 12, | |
104, 40, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 24, 25, 55, 0, | |
56, 0, 3, 31, 32, 33, 34, 35, 36, 37, 38, 39, 103, 41, 42, 43, 44, 45, | |
46, 47, 48, 49, 50, 51, 52, 24, 54, 0, 86, 57, 58, 59, 60, 61, 62, 63, | |
64, 65, 66, 0, 1, 2, 41, 4, 5, 6, 7, 8, 9, 10, 11, 0, 13, 14, 15, 16, | |
17, 18, 19, 20, 21, 0, 23, 0, 3, 26, 27, 28, 7, 8, 7, 8, 0, 12, 0, 0, | |
1, 2, 0, 0, 0, 54, 7, 8, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 22, | |
0, 22, 0, 3, 24, 25, 29, 30, 29, 30, 30, 31, 32, 33, 34, 35, 36, 37, | |
38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 90, 55, | |
92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 67, 68, 0, 1, 2, 69, 0, | |
0, 22, 7, 8, 90, 0, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 0, | |
87, 24, 25, 4, 5, 6, 7, 8, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, | |
42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 55, 0, 1, 2, 55, 55, | |
0, 0, 7, 8, 55, 12, 67, 68, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 25, 24, 25, | |
12, 30, 22, 24, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, | |
44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 55, 0, 1, 2, 53, 7, 8, 0, 7, | |
8, 25, 12, 67, 68, 56, 0, 1, 2, 3, 4, 5, 6, 7, 8, 25, 24, 25, 12, 0, | |
22, 0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, | |
46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 0, 0, 0, 7, 8, 4, 5, 6, 7, 8, | |
67, 68, 69, 0, 1, 2, 0, 4, 5, 6, 24, 25, 9, 10, 11, 25, 24, 31, 32, | |
33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, | |
51, 52, 0, 1, 2, 0, 0, 0, 0, 7, 8, 3, 0, 24, 7, 8, 67, 68, 69, 0, 1, | |
2, 0, 4, 5, 6, 24, 25, 22, 24, 41, 42, 43, 31, 32, 33, 34, 35, 36, 37, | |
38, 39, 30, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 55, | |
89, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 67, 68, 9, 10, 11, 12, 13, 14, 15, | |
16, 17, 18, 19, 20, 21, 22, 23, 30, 0, 26, 27, 28, 29, 30, 0, 0, 1, 2, | |
0, 4, 5, 6, 40, 40, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 20, 53, | |
29, 56, 56, 22, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 24, 69, 9, 10, 11, 12, | |
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 0, 26, 27, 28, 29, 30, | |
0, 0, 1, 2, 0, 4, 5, 6, 69, 40, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, | |
19, 0, 53, 29, 3, 56, 22, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 24, 69, 9, 10, | |
11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 88, 55, 26, 27, | |
28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 40, 0, 0, 0, 1, 2, 0, 4, 5, 6, | |
7, 8, 0, 53, 12, 3, 56, 0, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 22, 69, 9, | |
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, | |
28, 29, 30, 0, 0, 9, 10, 11, 40, 40, 0, 54, 40, 56, 57, 58, 59, 60, | |
61, 62, 63, 64, 65, 66, 0, 53, 22, 3, 56, 0, 0, 7, 8, 0, 1, 2, 3, 4, | |
5, 6, 30, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, | |
23, 0, 0, 26, 27, 28, 29, 30, 0, 0, 69, 3, 4, 5, 6, 7, 8, 40, 0, 1, 2, | |
12, 0, 22, 0, 7, 8, 25, 55, 0, 53, 30, 0, 56, 25, 3, 4, 5, 6, 7, 8, | |
12, 24, 25, 12, 0, 69, 25, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, | |
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 0, 0, 0, | |
7, 8, 0, 0, 24, 3, 3, 67, 68, 7, 8, 0, 0, 0, 12, 12, 0, 24, 25, 22, 9, | |
10, 11, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 20, 41, 42, 43, 44, | |
45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 3, 7, 8, 0, 0, 0, 3, | |
3, 67, 68, 7, 8, 7, 8, 0, 12, 12, 53, 24, 25, 22, 22, 25, 0, 0, 31, | |
32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, | |
50, 51, 52, 0, 1, 2, 90, 0, 0, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, | |
7, 8, 0, 12, 12, 0, 24, 25, 22, 7, 8, 24, 24, 31, 32, 33, 34, 35, 36, | |
37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, | |
2, 69, 0, 0, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 7, 8, 0, 12, 12, | |
53, 24, 25, 22, 7, 8, 24, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, | |
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 0, | |
7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 12, 0, 0, 12, 12, 12, 24, 25, 23, | |
40, 0, 25, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 12, 41, 42, 43, 44, | |
45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 40, 7, 8, 0, 0, 0, | |
3, 3, 67, 68, 7, 8, 0, 0, 53, 12, 12, 12, 24, 25, 0, 0, 25, 25, 25, | |
31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, | |
49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 40, 7, 8, 0, 0, 24, 3, 3, 67, 68, 7, | |
8, 0, 0, 55, 12, 12, 0, 24, 25, 22, 0, 25, 24, 0, 31, 32, 33, 34, 35, | |
36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, | |
1, 2, 29, 0, 0, 29, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 0, 0, 0, 12, | |
12, 3, 24, 25, 0, 40, 0, 25, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39, | |
29, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 40, | |
0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 0, 0, 0, 12, 12, 3, 24, 25, 0, | |
0, 25, 25, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 29, 41, 42, 43, 44, | |
45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 0, 40, 0, 7, 8, 0, 0, 0, | |
3, 3, 67, 68, 7, 8, 0, 0, 0, 12, 12, 3, 24, 25, 0, 0, 0, 25, 24, 31, | |
32, 33, 34, 35, 36, 37, 38, 39, 29, 41, 42, 43, 44, 45, 46, 47, 48, | |
49, 50, 51, 52, 0, 1, 2, 30, 29, 0, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, | |
8, 12, 0, 0, 12, 12, 12, 24, 25, 0, 0, 0, 3, 25, 31, 32, 33, 34, 35, | |
36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, | |
1, 2, 29, 0, 30, 0, 7, 8, 0, 0, 0, 3, 0, 67, 68, 7, 8, 0, 0, 0, 12, | |
12, 3, 24, 25, 22, 0, 22, 0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, | |
22, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 89, 30, | |
29, 29, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 0, 0, 0, 12, 88, 0, 24, 25, | |
0, 0, 0, 0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 29, 41, 42, 43, 44, | |
45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 29, 29, 0, 7, 8, 0, 0, 0, | |
3, 0, 67, 68, 7, 8, 0, 0, 0, 12, 0, 0, 24, 25, 0, 0, 22, 0, 0, 31, 32, | |
33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, | |
51, 52, 0, 1, 2, 0, 0, 29, 29, 7, 8, 0, 0, 0, 25, 0, 67, 68, 0, 0, 0, | |
0, 0, 0, 0, 0, 24, 25, 0, 0, 25, 25, 0, 31, 32, 33, 34, 35, 36, 37, | |
38, 39, 29, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 30, 88, | |
29, 29, 0, 0, 29, 0, 1, 2, 3, 4, 5, 6, 67, 68, 9, 10, 11, 12, 13, 14, | |
15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 0, 1, 2, | |
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, | |
53, 23, 30, 56, 26, 27, 28, 0, 0, 1, 2, 3, 4, 5, 6, 0, 69, 9, 10, 11, | |
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 29, | |
30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, | |
19, 20, 21, 53, 23, 0, 56, 26, 27, 28, 0, 0, 1, 2, 3, 4, 5, 6, 0, 69, | |
9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, | |
27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, | |
16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 26, 27, 28, 0, 0, 1, 2, 3, 4, | |
5, 6, 0, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, | |
23, 0, 0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, | |
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 26, 27, 28, 0, | |
0, 1, 2, 3, 4, 5, 6, 0, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, | |
20, 21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, | |
9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 0, | |
1, 2, 3, 4, 5, 6, 0, 0, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, | |
21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 24, 0, 1, 2, 0, 4, 5, 6, 0, 40, | |
9, 10, 11, 0, 13, 14, 15, 16, 17, 0, 0, 0, 53, 29, 0, 56, 0, 1, 2, 3, | |
4, 5, 6, 29, 0, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, | |
23, 29, 0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, | |
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 0, 1, 2, 0, 4, | |
5, 6, 0, 0, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, | |
0, 22, 26, 27, 28, 29, 30, 0, 24, 0, 3, 4, 5, 6, 7, 8, 40, 0, 0, 12, | |
0, 0, 22, 0, 0, 0, 42, 43, 0, 53, 0, 22, 56, 0, 1, 2, 0, 4, 5, 6, 22, | |
24, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 29, 40, | |
26, 27, 28, 29, 30, 0, 81, 0, 0, 0, 0, 0, 0, 54, 40, 0, 57, 58, 59, | |
60, 61, 62, 63, 64, 65, 66, 0, 53, 0, 22, 56, 0, 1, 2, 22, 4, 5, 6, | |
29, 24, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, | |
0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, | |
14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 0, 1, 2, 0, 4, 5, 6, 0, | |
0, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 22, | |
26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | |
15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 26, 27, 28, 0, 0, 1, 2, 3, | |
4, 5, 6, 0, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, | |
23, 0, 0, 26, 27, 28, 22, 30, 0, 0, 1, 2, 3, 4, 5, 6, 0, 40, 9, 10, | |
11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, | |
0, 30, 0, 0, 1, 2, 3, 4, 5, 6, 0, 40, 9, 10, 11, 12, 13, 14, 15, 16, | |
17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 0, 30, 0, 0, 1, 2, 3, 4, | |
5, 6, 0, 40, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, | |
23, 0, 0, 26, 27, 28, 0, 30, 0, 0, 1, 2, 3, 4, 5, 6, 0, 40, 9, 10, 11, | |
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 0, | |
30, 0, 3, 4, 5, 6, 7, 8, 0, 0, 40, 12, 3, 4, 5, 6, 7, 8, 24, 25, 0, | |
}; | |
} |